diff --git a/CHANGELOG.md b/CHANGELOG.md index 9552cdf04..47e7be418 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,8 +12,29 @@ Pour plus d’informations : [Voir la documentation](https://www.systeme-de-desi ## v1.12 +### [v1.12.1](https://github.com/GouvernementFR/dsfr/compare/v1.12.0...v1.12.1) - 25 Juin 2024 + +#### 🐛 fix(artwork): correction pictogrammes firefox et Chrome156 [(#971)](https://github.com/GouvernementFR/dsfr/pull/971) +- changement structurel des svg d'artwork + - corrige la rĂ©gression apportĂ©e par la nouvelle version de chrome qui ne supporte plus la surchage de colorisation sur le svg si le path ciblĂ© est dĂ©ja colorĂ© dans le svg + - le path ciblĂ© est dĂ©ja colorĂ© dans le svg +- corrige l'accentuation des pictogrammes sur firefox + - mise en place d'un script permettant de transformer les anciens pictogrammes vers la nouvelle structure + - `yarn pictogram-converter -p [chemin/picto]` + + +#### 🐛 fix(table): corrige regressions sur les tableaux dĂ©prĂ©cies [(#969)](https://github.com/GouvernementFR/dsfr/pull/969) +- dĂ©place bordures des tableaux dĂ©prĂ©cies sur les thead et tbody +- retire les selecteurs css :has + + + ### [v1.12.0](https://github.com/GouvernementFR/dsfr/compare/v1.11.2...v1.12.0) - 19 Juin 2024 +#### âŹ†ïž chore(dependencies): met a jour les dĂ©pendances npm et correction lint [(#961)](https://github.com/GouvernementFR/dsfr/pull/961) +- mise Ă  jour dĂ©pendances npm + + #### 🐛 fix(*): correctifs pages d'exemple et icone bandeau d'alerte [(#948)](https://github.com/GouvernementFR/dsfr/pull/948) - correction icone bandeau d'alerte - corrections de libellĂ©s dans les pages d'exemples diff --git a/package.json b/package.json index 02e97f428..fb796f8ae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@gouvfr/dsfr", - "version": "1.12.0", + "version": "1.12.1", "description": "SystĂšme de Design de l'Etat - DSFR", "repository": "git@github.com:GouvernementFR/dsfr.git", "author": "Service d'Information du Gouvernement ", @@ -20,6 +20,7 @@ "deploy": "node tool/tool.js deploy", "standalone": "node tool/tool.js standalone", "changelog": "node tool/tool.js changelog", + "pictogram-converter": "node tool/tool.js pictogram-converter", "serve": "browser-sync start --server --port 8080 --startPath example/" }, "files": [ diff --git a/src/component/table/deprecated/example/index.ejs b/src/component/table/deprecated/example/index.ejs index f713ec21f..2da116c1a 100755 --- a/src/component/table/deprecated/example/index.ejs +++ b/src/component/table/deprecated/example/index.ejs @@ -6,12 +6,12 @@ let dataNoScroll = { caption: 'Titre du tableau (caption) non scrollable', noScr let dataLayoutFixed = { caption: 'Titre du tableau (caption) fixĂ©', layout: "fixed", col: 3}; let dataNoCaption = { caption: 'Titre du tableau (caption) cachĂ©', noCaption: true, col: 6}; let dataCaptionBottom = { caption: 'Titre du tableau (caption) en bas', captionBottom: true, col: 6}; - -// @TODO: revoir les grilles avec layout %> <%- sample('Tableau par dĂ©faut', './sample/table-default', {table:data}, true) %> +<%- sample('Tableau minimal', './sample/table-default', {table: { caption: 'Titre du tableau (caption)', col: 2, row: 3}}, true) %> + <%- sample('Tableau avec bordure', './sample/table-default', {table:dataBordered}, true) %> <%- sample('Tableau non scrollable', './sample/table-default', {table:dataNoScroll}, true) %> diff --git a/src/component/table/deprecated/style/_legacy.scss b/src/component/table/deprecated/style/_legacy.scss index d90ea68f2..9ae777b2d 100644 --- a/src/component/table/deprecated/style/_legacy.scss +++ b/src/component/table/deprecated/style/_legacy.scss @@ -11,11 +11,13 @@ @include before(none); & > table { - background-image: none; - thead { background-image: none; + @include after { + background-image: none; + } + tr { &:first-child { th { @@ -32,6 +34,10 @@ } tbody { + @include after { + background-image: none; + } + tr { background-image: none; diff --git a/src/component/table/deprecated/style/_scheme.scss b/src/component/table/deprecated/style/_scheme.scss index efba50138..e19fc08b7 100644 --- a/src/component/table/deprecated/style/_scheme.scss +++ b/src/component/table/deprecated/style/_scheme.scss @@ -8,17 +8,19 @@ @mixin _deprecated-table-scheme($legacy: false) { #{ns(table)} { & > table { - @include after { - @include color.background-image((border contrast grey) (border contrast grey) (border contrast grey) (border contrast grey), (legacy:$legacy)); - } - caption { @include color.text(title grey, (legacy: $legacy)); } + thead, + tbody { + @include after { + @include color.background-image((border contrast grey) (border contrast grey) (border contrast grey), (legacy:$legacy)); + } + } + thead { @include color.background-image(border plain grey, (legacy: $legacy)); - @include color.background(alt grey, (legacy: $legacy)); @include color.text(title grey, (legacy: $legacy)); } diff --git a/src/component/table/deprecated/style/module/_default.scss b/src/component/table/deprecated/style/module/_default.scss index c12c42207..3211e21df 100644 --- a/src/component/table/deprecated/style/module/_default.scss +++ b/src/component/table/deprecated/style/module/_default.scss @@ -4,14 +4,12 @@ //// #{ns(table)} { + @include padding-top(var(--table-offset)); + @include before('', block) { @include size(100%, 0); } - &:not(:has(#{ns(table__container)})) { - @include padding-top(var(--table-offset)); - } - &:not(#{ns(table--no-scroll)}) { & > table { width: 100%; @@ -47,7 +45,7 @@ td, th { font-weight: font-weight(bold); - @include padding-bottom(3.5v); // 0.5v for the box shadow + @include padding-bottom(3.5v); @include padding-bottom(4.5v, md); } } @@ -55,13 +53,30 @@ &#{ns-attr(js-table, true)} { & > table { - @include after('', block) { - @include absolute(var(--table-offset), null, null, 0, 100%, calc(100% - var(--table-offset))); - @include z-index(over); - background-position: 0 0, 0 0, 100% 100%, 0 100%; - background-size: 100% 1px, 1px 100%, 1px 100%, 100% 1px; - background-repeat: no-repeat, no-repeat, no-repeat, no-repeat; - pointer-events: none; + thead, + tbody { + @include relative; + + @include after('', block) { + @include absolute(0, null, null, 0, 100%, 100%); + @include z-index(over); + background-repeat: no-repeat, no-repeat, no-repeat; + pointer-events: none; + } + } + + thead { + @include after { + background-position: 0 0, 0 0, 100% 100%; + background-size: 100% 1px, 1px 100%, 1px 100%; + } + } + + tbody { + @include after { + background-position: 0 0, 0 100%, 100% 0; + background-size: 1px 100%, 100% 1px, 1px 100%; + } } } } diff --git a/src/component/table/deprecated/style/module/_variants.scss b/src/component/table/deprecated/style/module/_variants.scss index 21f2070bb..8fb67e154 100644 --- a/src/component/table/deprecated/style/module/_variants.scss +++ b/src/component/table/deprecated/style/module/_variants.scss @@ -22,11 +22,8 @@ * Fixe le caption en bas du tableau */ &--caption-bottom { - &:not(:has(#{ns(table__container)})) { - @include padding-top(0); - @include margin-bottom(0); - @include margin-top(4v); - } + @include padding-top(0); + @include margin-top(4v); & > table { @include margin-bottom(calc(var(--table-offset) + 11v)); diff --git a/src/component/table/example/data/data-complex-tbody.json.ejs b/src/component/table/example/data/data-complex-tbody.json.ejs index f6bc28d97..e13d925f7 100644 --- a/src/component/table/example/data/data-complex-tbody.json.ejs +++ b/src/component/table/example/data/data-complex-tbody.json.ejs @@ -29,7 +29,7 @@ const tbody = [ }, { attributes: { - headers: 'complex-row-0 complex-thead-0-col-4 complex-thead-1-col-5' + headers: 'complex-row-0 complex-thead-0-col-4 complex-thead-1-col-4' }, content: 'EPS' } @@ -38,7 +38,7 @@ const tbody = [ { attributes: { colspan: 5, - headers: 'complex-row-1 complex-thead-0-col-1 complex-thead-0-col-2 complex-thead-0-col-3 complex-thead-0-col-4 complex-thead-1-col-1 complex-thead-1-col-2 complex-thead-1-col-3 complex-thead-1-col-4 complex-thead-1-col-5' + headers: 'complex-row-1 complex-thead-0-col-1 complex-thead-0-col-2 complex-thead-0-col-3 complex-thead-0-col-4 complex-thead-1-col-1 complex-thead-1-col-2 complex-thead-1-col-3 complex-thead-1-col-4 complex-thead-1-col-4' }, content: 'Etude dirigĂ©e
Exemple de colspan sur toute la ligne' } @@ -71,7 +71,7 @@ const tbody = [ }, { attributes: { - headers: 'complex-row-2 complex-thead-0-col-4 complex-thead-1-col-5' + headers: 'complex-row-2 complex-thead-0-col-4 complex-thead-1-col-4' }, content: 'Sciences' } @@ -97,7 +97,7 @@ const tbody = [ }, { attributes: { - headers: 'complex-row-3 complex-thead-0-col-4 complex-thead-1-col-5' + headers: 'complex-row-3 complex-thead-0-col-4 complex-thead-1-col-4' }, content: 'Physique - Chimie' } @@ -124,7 +124,7 @@ const tbody = [ }, { attributes: { - headers: 'complex-row-4 complex-thead-0-col-4 complex-thead-1-col-5' + headers: 'complex-row-4 complex-thead-0-col-4 complex-thead-1-col-4' }, content: 'LV2' } diff --git a/src/component/table/index.js b/src/component/table/index.js index 073404a87..c892301b9 100644 --- a/src/component/table/index.js +++ b/src/component/table/index.js @@ -1,5 +1,6 @@ import api from './api.js'; import { Table } from './script/table/table.js'; +import { TableWrapper } from './script/table/table-wrapper.js'; import { TableElement } from './script/table/table-element.js'; import { TableSelector } from './script/table/table-selector.js'; import { TableCaption } from './script/table/table-caption.js'; @@ -7,6 +8,7 @@ import { TableRow } from './script/table/table-row.js'; api.table = { Table: Table, + TableWrapper: TableWrapper, TableElement: TableElement, TableCaption: TableCaption, TableSelector: TableSelector, diff --git a/src/component/table/main.js b/src/component/table/main.js index 4fc3de0fa..ee04ee3bf 100644 --- a/src/component/table/main.js +++ b/src/component/table/main.js @@ -1,6 +1,7 @@ import api from './index.js'; api.internals.register(api.table.TableSelector.TABLE, api.table.Table); +api.internals.register(api.table.TableSelector.TABLE_WRAPPER, api.table.TableWrapper); api.internals.register(api.table.TableSelector.ELEMENT, api.table.TableElement); api.internals.register(api.table.TableSelector.CAPTION, api.table.TableCaption); api.internals.register(api.table.TableSelector.ROW, api.table.TableRow); diff --git a/src/component/table/script/table/table-caption.js b/src/component/table/script/table/table-caption.js index 00ff7d331..53740b98b 100644 --- a/src/component/table/script/table/table-caption.js +++ b/src/component/table/script/table/table-caption.js @@ -1,6 +1,7 @@ import api from '../../api.js'; import { TableEmission } from './table-emission.js'; +const PADDING = '1rem'; // padding de 4v sur le caption class TableCaption extends api.core.Instance { static get instanceClassName () { return 'TableCaption'; @@ -15,7 +16,7 @@ class TableCaption extends api.core.Instance { const height = this.getRect().height; if (this.height === height) return; this.height = height; - this.ascend(TableEmission.CAPTION_HEIGHT, height); + this.ascend(TableEmission.CAPTION_HEIGHT, `calc(${height}px + ${PADDING})`); } } diff --git a/src/component/table/script/table/table-selector.js b/src/component/table/script/table/table-selector.js index 313912b49..cf059b8f6 100644 --- a/src/component/table/script/table/table-selector.js +++ b/src/component/table/script/table/table-selector.js @@ -2,6 +2,7 @@ import api from '../../api.js'; export const TableSelector = { TABLE: api.internals.ns.selector('table'), + TABLE_WRAPPER: [`${api.internals.ns.selector('table')} ${api.internals.ns.selector('table__wrapper')}`], SHADOW: api.internals.ns.selector('table__shadow'), SHADOW_LEFT: api.internals.ns.selector('table__shadow--left'), SHADOW_RIGHT: api.internals.ns.selector('table__shadow--right'), diff --git a/src/component/table/script/table/table-wrapper.js b/src/component/table/script/table/table-wrapper.js new file mode 100644 index 000000000..eaa6f38ef --- /dev/null +++ b/src/component/table/script/table/table-wrapper.js @@ -0,0 +1,19 @@ +import api from '../../api.js'; +import { TableEmission } from './table-emission.js'; + +class TableWrapper extends api.core.Instance { + static get instanceClassName () { + return 'TableWrapper'; + } + + init () { + this.addAscent(TableEmission.CAPTION_HEIGHT, this.setCaptionHeight.bind(this)); + } + + setCaptionHeight (value) { + requestAnimationFrame(() => this.ascend(TableEmission.CAPTION_HEIGHT, 0)); + this.setProperty('--table-offset', value); + } +} + +export { TableWrapper }; diff --git a/src/component/table/script/table/table.js b/src/component/table/script/table/table.js index 2eb877868..7cb20baae 100644 --- a/src/component/table/script/table/table.js +++ b/src/component/table/script/table/table.js @@ -1,20 +1,17 @@ import api from '../../api.js'; import { TableEmission } from './table-emission.js'; -const PADDING = '1rem'; // padding de 4v sur le caption - class Table extends api.core.Instance { static get instanceClassName () { return 'Table'; } init () { - this.rowsHeaderWidth = []; this.addAscent(TableEmission.CAPTION_HEIGHT, this.setCaptionHeight.bind(this)); } setCaptionHeight (value) { - this.setProperty('--table-offset', `calc(${value}px + ${PADDING})`); + this.setProperty('--table-offset', value); } } diff --git a/src/component/table/style/_legacy.scss b/src/component/table/style/_legacy.scss index db45b3160..af1f84789 100644 --- a/src/component/table/style/_legacy.scss +++ b/src/component/table/style/_legacy.scss @@ -87,6 +87,7 @@ &#{ns(table--caption-bottom)} { caption { @include relative; + @include margin-bottom(4v); } } diff --git a/src/component/table/style/_scheme.scss b/src/component/table/style/_scheme.scss index a105ae78d..220059947 100644 --- a/src/component/table/style/_scheme.scss +++ b/src/component/table/style/_scheme.scss @@ -37,10 +37,8 @@ tbody { tr { - &[aria-selected=true] { - &::after { - @include color.background-image((border action-high blue-france) (border action-high blue-france) (border action-high blue-france) (border action-high blue-france), (legacy: $legacy)); - } + @include after { + @include color.background-image((border action-high blue-france) (border action-high blue-france) (border action-high blue-france) (border action-high blue-france), (legacy: $legacy)); } } diff --git a/src/component/table/style/module/_default.scss b/src/component/table/style/module/_default.scss index 4069e2c58..6652b3544 100644 --- a/src/component/table/style/module/_default.scss +++ b/src/component/table/style/module/_default.scss @@ -10,7 +10,7 @@ #{ns(table)} { --table-offset: calc(0px); - --row-height: 0; + --row-height: #{spacing.space(0.5v)}; @include set-text-margin(0); @include set-title-margin(0); @@ -165,63 +165,48 @@ background-position: 0 100%, 100% 0; } - tr:first-child[aria-selected=true]:has(+ tr:not([aria-selected=true])), - tr:not([aria-selected=true]) + tr:last-child[aria-selected=true], - tr:not([aria-selected=true]) + tr[aria-selected=true]:has(+ tr:not([aria-selected=true])) { - &::after { - // selected borders left-right + top-bottom - background-size: 100% 2px, 2px 100%, 2px 100%, 100% 2px; + tr { + @include after { + @include absolute(null, null, null, 0, 100%, var(--row-height)); + @include z-index(above); + pointer-events: none; + transform: translateY(spacing.space(-0.5v)); + + background-size: spacing.space(0.5v 100%), spacing.space(0.5v 100%), spacing.space(100% 0.5v), 0 0; background-repeat: no-repeat, no-repeat, no-repeat, no-repeat; - background-position: 100% 100%, 0 0, 100% 0, 100% 0; + background-position: 0 0, 100% 0, 0 0, 0 100%; + + @include preference.forced-colors { + border: 2px solid highlight; + } } - } - tr[aria-selected=true] + tr[aria-selected=true] { - &::after { - // selected borders left-right - background-size: 2px 100%, 2px 100%; - background-repeat: no-repeat, no-repeat; - background-position: 0 0, 100% 0; + &[aria-selected="true"], + &[aria-selected="true"] + tr { + @include after(''); } - } - tr:first-child[aria-selected=true]:has(+ tr[aria-selected=true]), - tr:not([aria-selected=true]) + tr[aria-selected=true] { - &::after { - // selected borders left-right + top - background-size: 2px 100%, 2px 100%, 100% 2px; - background-repeat: no-repeat, no-repeat, no-repeat; - background-position: 0 0, 100% 0, 100% 0; + &[aria-selected="true"] + tr[aria-selected="true"] { + @include after { + background-size: spacing.space(0.5v 100%), spacing.space(0.5v 100%), 0 0, 0 0; + } } - } - tr[aria-selected=true] + tr:last-child[aria-selected=true], - tr[aria-selected=true]:has(+ tr:not([aria-selected=true])) { - &::after { - // selected borders left-right + bottom - background-size: 100% 2px, 2px 100%, 2px 100%; - background-repeat: no-repeat, no-repeat, no-repeat; - background-position: 100% 100%, 0 0, 100% 0; + &[aria-selected="true"] + tr:not([aria-selected="true"]) { + @include after { + background-size: 0 0, 0 0, spacing.space(100% 0.5v), 0 0; + } } - } - tr { - &[aria-selected="true"] { - &::after { - @include absolute(null, null, null, 0, 100%, var(--row-height)); - @include z-index(above); - content: ''; - pointer-events: none; - transform: translateY(spacing.space(-0.5v)); - - // selected borders left-right - background-size: spacing.space(0.5v 100%), spacing.space(0.5v 100%); - background-repeat: no-repeat, no-repeat; - background-position: 0 0, 100% 0; - - @include preference.forced-colors { - border: 2px solid highlight; - } + &:last-of-type[aria-selected="true"] { + @include after { + background-size: spacing.space(0.5v 100%), spacing.space(0.5v 100%), spacing.space(100% 0.5v), spacing.space(100% 0.5v); + } + } + + &[aria-selected="true"] + tr:last-of-type[aria-selected="true"] { + @include after { + background-size: spacing.space(0.5v 100%), spacing.space(0.5v 100%), 0 0, spacing.space(100% 0.5v); } } } @@ -258,6 +243,7 @@ position: initial; @include title-style(h4, true); @include font-weight(bold); + @include margin-bottom(4v); text-align: left; #{ns(table__caption__desc)} { diff --git a/src/component/table/style/module/_variants.scss b/src/component/table/style/module/_variants.scss index 36c2cdcc6..37c2394b8 100644 --- a/src/component/table/style/module/_variants.scss +++ b/src/component/table/style/module/_variants.scss @@ -27,6 +27,7 @@ @include margin-bottom(0); #{ns(table__wrapper)} { + @include margin-top(0); @include margin-bottom(calc(var(--table-offset) + 6v)); &::after { @@ -40,6 +41,7 @@ } caption { + @include margin-bottom(0); @include margin-top(4v); @include height(min-content); caption-side: bottom; diff --git a/src/core/asset/artwork/background/ovoid.svg b/src/core/asset/artwork/background/ovoid.svg index 98d816a1f..91dbedca6 100644 --- a/src/core/asset/artwork/background/ovoid.svg +++ b/src/core/asset/artwork/background/ovoid.svg @@ -1,16 +1,19 @@ - - - - - - - + + + + + + + + + + diff --git a/src/core/asset/artwork/dark.svg b/src/core/asset/artwork/dark.svg index 5754b1fd2..e4d335c29 100644 --- a/src/core/asset/artwork/dark.svg +++ b/src/core/asset/artwork/dark.svg @@ -1,11 +1,14 @@ - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/light.svg b/src/core/asset/artwork/light.svg index 5a301fe27..fbc3d161f 100644 --- a/src/core/asset/artwork/light.svg +++ b/src/core/asset/artwork/light.svg @@ -1,11 +1,14 @@ - + - - + + - - + + - + + + + \ No newline at end of file diff --git a/src/core/asset/artwork/pictograms/buildings/city-hall.svg b/src/core/asset/artwork/pictograms/buildings/city-hall.svg index 7e645005d..b5e8e426c 100644 --- a/src/core/asset/artwork/pictograms/buildings/city-hall.svg +++ b/src/core/asset/artwork/pictograms/buildings/city-hall.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/buildings/factory.svg b/src/core/asset/artwork/pictograms/buildings/factory.svg index 4ff7fd2dd..4f492a017 100644 --- a/src/core/asset/artwork/pictograms/buildings/factory.svg +++ b/src/core/asset/artwork/pictograms/buildings/factory.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/buildings/house.svg b/src/core/asset/artwork/pictograms/buildings/house.svg index c2553ad8a..76f68258e 100644 --- a/src/core/asset/artwork/pictograms/buildings/house.svg +++ b/src/core/asset/artwork/pictograms/buildings/house.svg @@ -10,13 +10,16 @@ fill: #000091; } - + - - + + - - + + - + + + + \ No newline at end of file diff --git a/src/core/asset/artwork/pictograms/buildings/nuclear-plant.svg b/src/core/asset/artwork/pictograms/buildings/nuclear-plant.svg index 3e0329b3a..e50438e31 100644 --- a/src/core/asset/artwork/pictograms/buildings/nuclear-plant.svg +++ b/src/core/asset/artwork/pictograms/buildings/nuclear-plant.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/buildings/school.svg b/src/core/asset/artwork/pictograms/buildings/school.svg index 9fdb0e2db..80cbe9ec8 100644 --- a/src/core/asset/artwork/pictograms/buildings/school.svg +++ b/src/core/asset/artwork/pictograms/buildings/school.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/digital/application.svg b/src/core/asset/artwork/pictograms/digital/application.svg index f8325865f..e5552bf64 100644 --- a/src/core/asset/artwork/pictograms/digital/application.svg +++ b/src/core/asset/artwork/pictograms/digital/application.svg @@ -10,11 +10,11 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/digital/avatar.svg b/src/core/asset/artwork/pictograms/digital/avatar.svg index 51ce8ce30..b74037d2b 100644 --- a/src/core/asset/artwork/pictograms/digital/avatar.svg +++ b/src/core/asset/artwork/pictograms/digital/avatar.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/digital/calendar.svg b/src/core/asset/artwork/pictograms/digital/calendar.svg index efa6a792d..d68be627c 100644 --- a/src/core/asset/artwork/pictograms/digital/calendar.svg +++ b/src/core/asset/artwork/pictograms/digital/calendar.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/digital/coding.svg b/src/core/asset/artwork/pictograms/digital/coding.svg index ad89e7936..cbc85c586 100644 --- a/src/core/asset/artwork/pictograms/digital/coding.svg +++ b/src/core/asset/artwork/pictograms/digital/coding.svg @@ -10,11 +10,11 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/digital/data-visualization.svg b/src/core/asset/artwork/pictograms/digital/data-visualization.svg index 3f9319172..906567a00 100644 --- a/src/core/asset/artwork/pictograms/digital/data-visualization.svg +++ b/src/core/asset/artwork/pictograms/digital/data-visualization.svg @@ -10,13 +10,13 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/digital/in-progress.svg b/src/core/asset/artwork/pictograms/digital/in-progress.svg index b8d8381ef..f409ff18b 100644 --- a/src/core/asset/artwork/pictograms/digital/in-progress.svg +++ b/src/core/asset/artwork/pictograms/digital/in-progress.svg @@ -10,13 +10,16 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/digital/internet.svg b/src/core/asset/artwork/pictograms/digital/internet.svg index 549c17104..ee11b87c9 100644 --- a/src/core/asset/artwork/pictograms/digital/internet.svg +++ b/src/core/asset/artwork/pictograms/digital/internet.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/digital/mail-send.svg b/src/core/asset/artwork/pictograms/digital/mail-send.svg index 9d98e866b..4bece7f8b 100644 --- a/src/core/asset/artwork/pictograms/digital/mail-send.svg +++ b/src/core/asset/artwork/pictograms/digital/mail-send.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/digital/search.svg b/src/core/asset/artwork/pictograms/digital/search.svg index 92b63de65..893dccb93 100644 --- a/src/core/asset/artwork/pictograms/digital/search.svg +++ b/src/core/asset/artwork/pictograms/digital/search.svg @@ -10,13 +10,13 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/document/contract.svg b/src/core/asset/artwork/pictograms/document/contract.svg index 6f2bfde2e..146d5e676 100644 --- a/src/core/asset/artwork/pictograms/document/contract.svg +++ b/src/core/asset/artwork/pictograms/document/contract.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/document/document-add.svg b/src/core/asset/artwork/pictograms/document/document-add.svg index 9f8ba5790..dc6641781 100644 --- a/src/core/asset/artwork/pictograms/document/document-add.svg +++ b/src/core/asset/artwork/pictograms/document/document-add.svg @@ -10,13 +10,16 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/document/document-download.svg b/src/core/asset/artwork/pictograms/document/document-download.svg index 42ea8201c..f88d088ad 100644 --- a/src/core/asset/artwork/pictograms/document/document-download.svg +++ b/src/core/asset/artwork/pictograms/document/document-download.svg @@ -10,13 +10,13 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/document/document-signature.svg b/src/core/asset/artwork/pictograms/document/document-signature.svg index c11e83f5a..6e83f743e 100644 --- a/src/core/asset/artwork/pictograms/document/document-signature.svg +++ b/src/core/asset/artwork/pictograms/document/document-signature.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/document/document.svg b/src/core/asset/artwork/pictograms/document/document.svg index 2fbfddf7c..fd232083c 100644 --- a/src/core/asset/artwork/pictograms/document/document.svg +++ b/src/core/asset/artwork/pictograms/document/document.svg @@ -10,18 +10,18 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/document/driving-licence.svg b/src/core/asset/artwork/pictograms/document/driving-licence.svg index ac8640d78..4f2ac39db 100644 --- a/src/core/asset/artwork/pictograms/document/driving-licence.svg +++ b/src/core/asset/artwork/pictograms/document/driving-licence.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/document/national-identity-card.svg b/src/core/asset/artwork/pictograms/document/national-identity-card.svg index ddcb4cd07..711b7a36b 100644 --- a/src/core/asset/artwork/pictograms/document/national-identity-card.svg +++ b/src/core/asset/artwork/pictograms/document/national-identity-card.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/document/passport.svg b/src/core/asset/artwork/pictograms/document/passport.svg index 0820fb36f..880c0083c 100644 --- a/src/core/asset/artwork/pictograms/document/passport.svg +++ b/src/core/asset/artwork/pictograms/document/passport.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/document/tax-stamp.svg b/src/core/asset/artwork/pictograms/document/tax-stamp.svg index 742cb5378..1caa08f38 100644 --- a/src/core/asset/artwork/pictograms/document/tax-stamp.svg +++ b/src/core/asset/artwork/pictograms/document/tax-stamp.svg @@ -10,14 +10,14 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/document/vehicle-registration.svg b/src/core/asset/artwork/pictograms/document/vehicle-registration.svg index 637ff8bb0..4b54b3f1e 100644 --- a/src/core/asset/artwork/pictograms/document/vehicle-registration.svg +++ b/src/core/asset/artwork/pictograms/document/vehicle-registration.svg @@ -10,11 +10,11 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/environment/environment.svg b/src/core/asset/artwork/pictograms/environment/environment.svg index 0db3c0f01..cb955f995 100644 --- a/src/core/asset/artwork/pictograms/environment/environment.svg +++ b/src/core/asset/artwork/pictograms/environment/environment.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/environment/food.svg b/src/core/asset/artwork/pictograms/environment/food.svg index 07783b4cd..b095c4008 100644 --- a/src/core/asset/artwork/pictograms/environment/food.svg +++ b/src/core/asset/artwork/pictograms/environment/food.svg @@ -10,13 +10,16 @@ fill: #000091; } - + - - + + - - + + - + + + + \ No newline at end of file diff --git a/src/core/asset/artwork/pictograms/environment/grocery.svg b/src/core/asset/artwork/pictograms/environment/grocery.svg index 3e78bf0e2..bf4326561 100644 --- a/src/core/asset/artwork/pictograms/environment/grocery.svg +++ b/src/core/asset/artwork/pictograms/environment/grocery.svg @@ -10,13 +10,16 @@ fill: #000091; } - + - - + + - - + + - + + + + \ No newline at end of file diff --git a/src/core/asset/artwork/pictograms/environment/human-cooperation.svg b/src/core/asset/artwork/pictograms/environment/human-cooperation.svg index 3f4f54b7d..567511297 100644 --- a/src/core/asset/artwork/pictograms/environment/human-cooperation.svg +++ b/src/core/asset/artwork/pictograms/environment/human-cooperation.svg @@ -10,13 +10,13 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/environment/leaf.svg b/src/core/asset/artwork/pictograms/environment/leaf.svg index 7c60559a5..fff358a34 100644 --- a/src/core/asset/artwork/pictograms/environment/leaf.svg +++ b/src/core/asset/artwork/pictograms/environment/leaf.svg @@ -10,19 +10,19 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/environment/moon.svg b/src/core/asset/artwork/pictograms/environment/moon.svg index 14aec933e..51ed8eef9 100644 --- a/src/core/asset/artwork/pictograms/environment/moon.svg +++ b/src/core/asset/artwork/pictograms/environment/moon.svg @@ -10,20 +10,20 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/environment/mountain.svg b/src/core/asset/artwork/pictograms/environment/mountain.svg index d2747e35a..8946234fb 100644 --- a/src/core/asset/artwork/pictograms/environment/mountain.svg +++ b/src/core/asset/artwork/pictograms/environment/mountain.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/environment/sun.svg b/src/core/asset/artwork/pictograms/environment/sun.svg index 1f44531bb..1d2805bc3 100644 --- a/src/core/asset/artwork/pictograms/environment/sun.svg +++ b/src/core/asset/artwork/pictograms/environment/sun.svg @@ -10,17 +10,17 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/environment/tree.svg b/src/core/asset/artwork/pictograms/environment/tree.svg index 14be32188..f000d2d4c 100644 --- a/src/core/asset/artwork/pictograms/environment/tree.svg +++ b/src/core/asset/artwork/pictograms/environment/tree.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/health/health.svg b/src/core/asset/artwork/pictograms/health/health.svg index e24140efd..9f5e6c1a7 100644 --- a/src/core/asset/artwork/pictograms/health/health.svg +++ b/src/core/asset/artwork/pictograms/health/health.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/health/hospital.svg b/src/core/asset/artwork/pictograms/health/hospital.svg index 485b9f7e8..0a5360112 100644 --- a/src/core/asset/artwork/pictograms/health/hospital.svg +++ b/src/core/asset/artwork/pictograms/health/hospital.svg @@ -10,19 +10,19 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/health/vaccine.svg b/src/core/asset/artwork/pictograms/health/vaccine.svg index fe405ca6f..c90ec3c00 100644 --- a/src/core/asset/artwork/pictograms/health/vaccine.svg +++ b/src/core/asset/artwork/pictograms/health/vaccine.svg @@ -10,13 +10,13 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/health/virus.svg b/src/core/asset/artwork/pictograms/health/virus.svg index 7881830b9..5c4ee276e 100644 --- a/src/core/asset/artwork/pictograms/health/virus.svg +++ b/src/core/asset/artwork/pictograms/health/virus.svg @@ -10,17 +10,17 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/institutions/firefighter.svg b/src/core/asset/artwork/pictograms/institutions/firefighter.svg index d892c94c9..a08294352 100644 --- a/src/core/asset/artwork/pictograms/institutions/firefighter.svg +++ b/src/core/asset/artwork/pictograms/institutions/firefighter.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/institutions/gendarmerie.svg b/src/core/asset/artwork/pictograms/institutions/gendarmerie.svg index a73f6f260..e8a1283dd 100644 --- a/src/core/asset/artwork/pictograms/institutions/gendarmerie.svg +++ b/src/core/asset/artwork/pictograms/institutions/gendarmerie.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/institutions/justice.svg b/src/core/asset/artwork/pictograms/institutions/justice.svg index 0f4c06f19..cd562abdf 100644 --- a/src/core/asset/artwork/pictograms/institutions/justice.svg +++ b/src/core/asset/artwork/pictograms/institutions/justice.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/institutions/money.svg b/src/core/asset/artwork/pictograms/institutions/money.svg index 061cf2c12..e3b78b7d4 100644 --- a/src/core/asset/artwork/pictograms/institutions/money.svg +++ b/src/core/asset/artwork/pictograms/institutions/money.svg @@ -10,11 +10,11 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/institutions/police.svg b/src/core/asset/artwork/pictograms/institutions/police.svg index d62590bcf..8ae57ef7f 100644 --- a/src/core/asset/artwork/pictograms/institutions/police.svg +++ b/src/core/asset/artwork/pictograms/institutions/police.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/leisure/book.svg b/src/core/asset/artwork/pictograms/leisure/book.svg index 684df79c0..db94b5143 100644 --- a/src/core/asset/artwork/pictograms/leisure/book.svg +++ b/src/core/asset/artwork/pictograms/leisure/book.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/leisure/community.svg b/src/core/asset/artwork/pictograms/leisure/community.svg index 3cf3c247c..65cf683df 100644 --- a/src/core/asset/artwork/pictograms/leisure/community.svg +++ b/src/core/asset/artwork/pictograms/leisure/community.svg @@ -10,11 +10,11 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/leisure/culture.svg b/src/core/asset/artwork/pictograms/leisure/culture.svg index e14c2a3ab..d4ed776fe 100644 --- a/src/core/asset/artwork/pictograms/leisure/culture.svg +++ b/src/core/asset/artwork/pictograms/leisure/culture.svg @@ -10,13 +10,13 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/leisure/digital-art.svg b/src/core/asset/artwork/pictograms/leisure/digital-art.svg index 9785ae273..e191c3678 100644 --- a/src/core/asset/artwork/pictograms/leisure/digital-art.svg +++ b/src/core/asset/artwork/pictograms/leisure/digital-art.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/leisure/paint.svg b/src/core/asset/artwork/pictograms/leisure/paint.svg index d73b1152f..b2a43431c 100644 --- a/src/core/asset/artwork/pictograms/leisure/paint.svg +++ b/src/core/asset/artwork/pictograms/leisure/paint.svg @@ -10,11 +10,11 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/map/airport.svg b/src/core/asset/artwork/pictograms/map/airport.svg index ceb422b0e..3dbc43030 100644 --- a/src/core/asset/artwork/pictograms/map/airport.svg +++ b/src/core/asset/artwork/pictograms/map/airport.svg @@ -10,11 +10,11 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/map/location-france.svg b/src/core/asset/artwork/pictograms/map/location-france.svg index 1dab4c690..8d3ddc084 100644 --- a/src/core/asset/artwork/pictograms/map/location-france.svg +++ b/src/core/asset/artwork/pictograms/map/location-france.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/map/luggage.svg b/src/core/asset/artwork/pictograms/map/luggage.svg index a826817b1..a2445facc 100644 --- a/src/core/asset/artwork/pictograms/map/luggage.svg +++ b/src/core/asset/artwork/pictograms/map/luggage.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/map/map.svg b/src/core/asset/artwork/pictograms/map/map.svg index d04a7edf1..8d1f63aa1 100644 --- a/src/core/asset/artwork/pictograms/map/map.svg +++ b/src/core/asset/artwork/pictograms/map/map.svg @@ -10,13 +10,13 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/system/connection-lost.svg b/src/core/asset/artwork/pictograms/system/connection-lost.svg index 92049204e..549d1885d 100644 --- a/src/core/asset/artwork/pictograms/system/connection-lost.svg +++ b/src/core/asset/artwork/pictograms/system/connection-lost.svg @@ -10,19 +10,19 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/system/error.svg b/src/core/asset/artwork/pictograms/system/error.svg index ce77e3190..8f0d846dc 100644 --- a/src/core/asset/artwork/pictograms/system/error.svg +++ b/src/core/asset/artwork/pictograms/system/error.svg @@ -10,19 +10,19 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/system/information.svg b/src/core/asset/artwork/pictograms/system/information.svg index f324a9347..5ad090d2c 100644 --- a/src/core/asset/artwork/pictograms/system/information.svg +++ b/src/core/asset/artwork/pictograms/system/information.svg @@ -10,16 +10,16 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/system/notification.svg b/src/core/asset/artwork/pictograms/system/notification.svg index 19d8c84bf..d08ad1571 100644 --- a/src/core/asset/artwork/pictograms/system/notification.svg +++ b/src/core/asset/artwork/pictograms/system/notification.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/system/padlock.svg b/src/core/asset/artwork/pictograms/system/padlock.svg index 5103d4793..ea89c9f32 100644 --- a/src/core/asset/artwork/pictograms/system/padlock.svg +++ b/src/core/asset/artwork/pictograms/system/padlock.svg @@ -10,17 +10,17 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/system/success.svg b/src/core/asset/artwork/pictograms/system/success.svg index 121858e73..bbdc7d53e 100644 --- a/src/core/asset/artwork/pictograms/system/success.svg +++ b/src/core/asset/artwork/pictograms/system/success.svg @@ -10,18 +10,18 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/system/system.svg b/src/core/asset/artwork/pictograms/system/system.svg index 1fe74cca8..5e0ffc821 100644 --- a/src/core/asset/artwork/pictograms/system/system.svg +++ b/src/core/asset/artwork/pictograms/system/system.svg @@ -10,13 +10,16 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/pictograms/system/technical-error.svg b/src/core/asset/artwork/pictograms/system/technical-error.svg index 3c90712e8..62d02b2aa 100644 --- a/src/core/asset/artwork/pictograms/system/technical-error.svg +++ b/src/core/asset/artwork/pictograms/system/technical-error.svg @@ -10,12 +10,12 @@ fill: #000091; } - + - - + + - - + + - + + + + + diff --git a/src/core/asset/artwork/pictograms/system/warning.svg b/src/core/asset/artwork/pictograms/system/warning.svg index 3b595b175..b75aba4c8 100644 --- a/src/core/asset/artwork/pictograms/system/warning.svg +++ b/src/core/asset/artwork/pictograms/system/warning.svg @@ -10,21 +10,24 @@ fill: #000091; } - + - - + + - - + + - + + + + diff --git a/src/core/asset/artwork/system.svg b/src/core/asset/artwork/system.svg index d66e92bc7..1aa24c6bb 100644 --- a/src/core/asset/artwork/system.svg +++ b/src/core/asset/artwork/system.svg @@ -1,11 +1,14 @@ - + - - + + - - + + - + + + + diff --git a/src/core/script/artwork/artwork.js b/src/core/script/artwork/artwork.js index 8221aa350..198cc8b24 100644 --- a/src/core/script/artwork/artwork.js +++ b/src/core/script/artwork/artwork.js @@ -29,9 +29,15 @@ class Artwork extends Instance { const parser = new DOMParser(); const xmlDoc = parser.parseFromString(xhr.responseText, 'text/html'); this.realSvgContent = xmlDoc.getElementById(this.svgName); - if (this.realSvgContent) { - this.realSvgContent.classList.add(this.node.classList); + if (this.realSvgContent.tagName === 'symbol') { + this.use = xmlDoc.querySelector('use[href="#' + this.svgName + '"]'); + if (this.use) this.node.parentNode.insertBefore(this.use, this.node); + } else { + // deprecated svg structure + this.realSvgContent.classList.add(this.node.classList); + } + this.replace(); } }; diff --git a/tool/generate/pictogram.js b/tool/generate/pictogram.js index 7c933f519..5004ea5bf 100644 --- a/tool/generate/pictogram.js +++ b/tool/generate/pictogram.js @@ -2,6 +2,7 @@ const fs = require('fs'); const path = require('path'); const root = require('../utilities/root'); const { createFile } = require('../utilities/file'); +const log = require('../utilities/log'); const generatePictogram = async (dir) => { let sass = '$pictogram-config: (\n'; @@ -30,4 +31,42 @@ const generatePictogram = async (dir) => { createFile(jsonPath, JSON.stringify(json)); }; -module.exports = { generatePictogram }; +const generateNewPictogram = async (dir) => { + _parseFolder(dir); +}; + +const _parseFolder = (mainPath, subPath = '') => { + const dir = `${mainPath}${subPath}`; + log(38, `${dir}`); + const files = fs.readdirSync(dir); + files.forEach((file) => { + const stat = fs.statSync(`${dir}/${file}`); + if (stat.isDirectory()) { + _parseFolder(mainPath, `${subPath}/${file}`); + } else { + if (stat.isFile() && path.extname(file) === '.svg') { + _replaceOldStructure(`${dir}/${file}`); + } + } + }); +}; + +const _replaceOldStructure = (path) => { + log(38, `${path}`); + const svg = fs.readFileSync(`${path}`, 'utf8'); + const newSvg = replaceOldStructureSVG(svg); + fs.writeFileSync(`${path}`, newSvg); +}; + +const replaceOldStructureSVG = (svg) => { + const classes = [...svg.matchAll(//g, ` \n`); + } + return newSvg; +}; + +module.exports = { generatePictogram, generateNewPictogram, replaceOldStructureSVG }; diff --git a/tool/tool.js b/tool/tool.js index 9b7a8d320..d59dadaf3 100755 --- a/tool/tool.js +++ b/tool/tool.js @@ -8,6 +8,7 @@ const buildRouting = require('./generate/routing'); const { deployFavicons, deployFiles, deployRobots } = require('./build/copy'); const { test } = require('./test/test'); const standalone = require('./build/standalone'); +const { generateNewPictogram } = require('./generate/pictogram'); /** * Build @@ -293,6 +294,32 @@ const changelogHandler = async (argv) => { await changelog.build(); }; +/** + * Pictogram converter + * Permet de transformer l'ancienne structure des pictogrammes avec des en une structure avec des et + */ +const newPictogramBuilder = (yargs) => { + return yargs + .usage('Usage: $0 -p [path/to/svg]') + .example( + '$0 -p [path/to/svg]', + 'convertit les pictogrammes en une structure avec des et ' + ) + .option('path', { + alias: '-p', + describe: 'chemin vers le dossier contenant les pictogrammes', + type: 'string' + }); +}; + +const newPictogramHandler = async (argv) => { + const settings = { + path: argv.path + }; + + generateNewPictogram(settings.path || './src/core/asset/artwork'); +}; + yargs .scriptName('tool') .command( @@ -331,5 +358,11 @@ yargs changelogBuilder, changelogHandler ) + .command( + 'pictogram-converter', + 'transforme les pictogrammes en une structure avec des et ', + newPictogramBuilder, + newPictogramHandler + ) .help() .argv;