@spw-ds/spw-stencil-library 1.2.4 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/spw-button.spw-loading.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-button_2.cjs.entry.js +1 -1
- package/dist/cjs/spw-button_2.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-custom-select.cjs.entry.js +43 -7
- package/dist/cjs/spw-custom-select.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-custom-select.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-date-picker.cjs.entry.js +48 -28
- package/dist/cjs/spw-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-date-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-field-label.spw-group.spw-icon.spw-link.spw-separator.spw-theme-provider.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-field-label_6.cjs.entry.js +1 -1
- package/dist/cjs/spw-field-label_6.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-pagination.cjs.entry.js +26 -16
- package/dist/cjs/spw-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-pagination.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-search-field.cjs.entry.js +12 -2
- package/dist/cjs/spw-search-field.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-search-field.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-select.cjs.entry.js +3 -1
- package/dist/cjs/spw-select.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-select.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-stencil-library.cjs.js +1 -1
- package/dist/cjs/spw-table-cell.cjs.entry.js +23 -2
- package/dist/cjs/spw-table-cell.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table-cell.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-table-footer.cjs.entry.js +1 -1
- package/dist/cjs/spw-table-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table-footer.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-table-header.cjs.entry.js +33 -3
- package/dist/cjs/spw-table-header.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table-header.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-table-row.cjs.entry.js +34 -2
- package/dist/cjs/spw-table-row.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table-row.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-table.cjs.entry.js +26 -3
- package/dist/cjs/spw-table.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table.entry.cjs.js.map +1 -1
- package/dist/cjs/utils-D_vNTY6w.js.map +1 -1
- package/dist/collection/components/spw-button/spw-button.css +1 -1
- package/dist/collection/components/spw-custom-select/spw-custom-select.css +1 -1
- package/dist/collection/components/spw-custom-select/spw-custom-select.js +42 -6
- package/dist/collection/components/spw-custom-select/spw-custom-select.js.map +1 -1
- package/dist/collection/components/spw-date-picker/spw-date-picker.js +48 -28
- package/dist/collection/components/spw-date-picker/spw-date-picker.js.map +1 -1
- package/dist/collection/components/spw-link/spw-link.css +1 -1
- package/dist/collection/components/spw-pagination/spw-pagination.css +1 -1
- package/dist/collection/components/spw-pagination/spw-pagination.js +54 -13
- package/dist/collection/components/spw-pagination/spw-pagination.js.map +1 -1
- package/dist/collection/components/spw-search-field/spw-search-field.js +50 -2
- package/dist/collection/components/spw-search-field/spw-search-field.js.map +1 -1
- package/dist/collection/components/spw-select/spw-select.js +3 -1
- package/dist/collection/components/spw-select/spw-select.js.map +1 -1
- package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.css +1 -1
- package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.js +82 -1
- package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.js.map +1 -1
- package/dist/collection/components/spw-table/spw-table-footer/spw-table-footer.css +1 -1
- package/dist/collection/components/spw-table/spw-table-header/spw-table-header.css +1 -1
- package/dist/collection/components/spw-table/spw-table-header/spw-table-header.js +92 -2
- package/dist/collection/components/spw-table/spw-table-header/spw-table-header.js.map +1 -1
- package/dist/collection/components/spw-table/spw-table-row/spw-table-row.css +1 -1
- package/dist/collection/components/spw-table/spw-table-row/spw-table-row.js +66 -1
- package/dist/collection/components/spw-table/spw-table-row/spw-table-row.js.map +1 -1
- package/dist/collection/components/spw-table/spw-table.js +27 -2
- package/dist/collection/components/spw-table/spw-table.js.map +1 -1
- package/dist/collection/stories/organisms/spw-footer/spw-footer.stories.js +1 -1
- package/dist/collection/stories/organisms/spw-footer/spw-footer.stories.js.map +1 -1
- package/dist/collection/utils/utils.js +47 -48
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/components/{p-du-Bai6S.js → p-B2toBmC2.js} +32 -21
- package/dist/components/p-B2toBmC2.js.map +1 -0
- package/dist/components/p-BBi01mKM.js.map +1 -1
- package/dist/components/{p-AjhBdYbk.js → p-DjyPtAVX.js} +3 -3
- package/dist/components/p-DjyPtAVX.js.map +1 -0
- package/dist/components/{p-CNNUoO2J.js → p-qROlK2WR.js} +3 -3
- package/dist/components/p-qROlK2WR.js.map +1 -0
- package/dist/components/spw-breadcrumb-item.js +1 -1
- package/dist/components/spw-button.js +1 -1
- package/dist/components/spw-cookies.js +1 -1
- package/dist/components/spw-custom-select.js +43 -7
- package/dist/components/spw-custom-select.js.map +1 -1
- package/dist/components/spw-date-picker.js +48 -28
- package/dist/components/spw-date-picker.js.map +1 -1
- package/dist/components/spw-file-upload.js +1 -1
- package/dist/components/spw-header-lang.js +1 -1
- package/dist/components/spw-header.js +1 -1
- package/dist/components/spw-iodda.js +1 -1
- package/dist/components/spw-link.js +1 -1
- package/dist/components/spw-message.js +1 -1
- package/dist/components/spw-pagination.js +1 -1
- package/dist/components/spw-search-field.js +15 -4
- package/dist/components/spw-search-field.js.map +1 -1
- package/dist/components/spw-select.js +3 -1
- package/dist/components/spw-select.js.map +1 -1
- package/dist/components/spw-table-cell.js +26 -2
- package/dist/components/spw-table-cell.js.map +1 -1
- package/dist/components/spw-table-footer.js +1 -1
- package/dist/components/spw-table-footer.js.map +1 -1
- package/dist/components/spw-table-header.js +37 -4
- package/dist/components/spw-table-header.js.map +1 -1
- package/dist/components/spw-table-row.js +39 -3
- package/dist/components/spw-table-row.js.map +1 -1
- package/dist/components/spw-table.js +28 -4
- package/dist/components/spw-table.js.map +1 -1
- package/dist/components_json.json +268 -12
- package/dist/components_vscode.json +3088 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/spw-button.spw-loading.entry.js.map +1 -1
- package/dist/esm/spw-button_2.entry.js +1 -1
- package/dist/esm/spw-button_2.entry.js.map +1 -1
- package/dist/esm/spw-custom-select.entry.js +43 -7
- package/dist/esm/spw-custom-select.entry.js.map +1 -1
- package/dist/esm/spw-date-picker.entry.js +48 -28
- package/dist/esm/spw-date-picker.entry.js.map +1 -1
- package/dist/esm/spw-field-label.spw-group.spw-icon.spw-link.spw-separator.spw-theme-provider.entry.js.map +1 -1
- package/dist/esm/spw-field-label_6.entry.js +1 -1
- package/dist/esm/spw-field-label_6.entry.js.map +1 -1
- package/dist/esm/spw-pagination.entry.js +26 -16
- package/dist/esm/spw-pagination.entry.js.map +1 -1
- package/dist/esm/spw-search-field.entry.js +13 -3
- package/dist/esm/spw-search-field.entry.js.map +1 -1
- package/dist/esm/spw-select.entry.js +3 -1
- package/dist/esm/spw-select.entry.js.map +1 -1
- package/dist/esm/spw-stencil-library.js +1 -1
- package/dist/esm/spw-table-cell.entry.js +23 -2
- package/dist/esm/spw-table-cell.entry.js.map +1 -1
- package/dist/esm/spw-table-footer.entry.js +1 -1
- package/dist/esm/spw-table-footer.entry.js.map +1 -1
- package/dist/esm/spw-table-header.entry.js +33 -3
- package/dist/esm/spw-table-header.entry.js.map +1 -1
- package/dist/esm/spw-table-row.entry.js +35 -3
- package/dist/esm/spw-table-row.entry.js.map +1 -1
- package/dist/esm/spw-table.entry.js +26 -3
- package/dist/esm/spw-table.entry.js.map +1 -1
- package/dist/esm/utils-BBi01mKM.js.map +1 -1
- package/dist/spw-stencil-library/p-0f69442e.entry.js +2 -0
- package/dist/spw-stencil-library/p-0f69442e.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-14722019.entry.js +2 -0
- package/dist/spw-stencil-library/p-14722019.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-b1de48f3.entry.js → p-152525de.entry.js} +2 -2
- package/dist/spw-stencil-library/p-152525de.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-2ad00dfc.entry.js +2 -0
- package/dist/spw-stencil-library/p-2ad00dfc.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-4a273848.entry.js +2 -0
- package/dist/spw-stencil-library/p-4a273848.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-31793077.entry.js → p-5632f307.entry.js} +2 -2
- package/dist/spw-stencil-library/p-5632f307.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-5e43e2ed.entry.js +2 -0
- package/dist/spw-stencil-library/p-5e43e2ed.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-92583499.entry.js +2 -0
- package/dist/spw-stencil-library/p-92583499.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-9d760073.entry.js +2 -0
- package/dist/spw-stencil-library/p-9d760073.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-9e8a779e.entry.js +2 -0
- package/dist/spw-stencil-library/p-9e8a779e.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-BBi01mKM.js.map +1 -1
- package/dist/spw-stencil-library/p-c4e4cfd4.entry.js +2 -0
- package/dist/spw-stencil-library/p-c4e4cfd4.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-f7760a47.entry.js → p-fcc5884a.entry.js} +2 -2
- package/dist/spw-stencil-library/p-fcc5884a.entry.js.map +1 -0
- package/dist/spw-stencil-library/spw-button.spw-loading.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-custom-select.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-date-picker.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-field-label.spw-group.spw-icon.spw-link.spw-separator.spw-theme-provider.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-pagination.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-search-field.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-select.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-stencil-library.esm.js +1 -1
- package/dist/spw-stencil-library/spw-table-cell.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-table-footer.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-table-header.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-table-row.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-table.entry.esm.js.map +1 -1
- package/dist/stats.json +611 -150
- package/dist/types/components/spw-custom-select/spw-custom-select.d.ts +3 -0
- package/dist/types/components/spw-date-picker/spw-date-picker.d.ts +1 -0
- package/dist/types/components/spw-pagination/spw-pagination.d.ts +4 -1
- package/dist/types/components/spw-search-field/spw-search-field.d.ts +5 -0
- package/dist/types/components/spw-select/spw-select.d.ts +1 -0
- package/dist/types/components/spw-table/spw-table-cell/spw-table-cell.d.ts +6 -0
- package/dist/types/components/spw-table/spw-table-header/spw-table-header.d.ts +6 -0
- package/dist/types/components/spw-table/spw-table-row/spw-table-row.d.ts +8 -0
- package/dist/types/components/spw-table/spw-table.d.ts +2 -0
- package/dist/types/components.d.ts +83 -0
- package/dist/types/utils/utils.d.ts +2 -1
- package/hydrate/index.js +265 -72
- package/hydrate/index.mjs +265 -72
- package/package.json +1 -1
- package/dist/components/p-AjhBdYbk.js.map +0 -1
- package/dist/components/p-CNNUoO2J.js.map +0 -1
- package/dist/components/p-du-Bai6S.js.map +0 -1
- package/dist/spw-stencil-library/p-22f972ca.entry.js +0 -2
- package/dist/spw-stencil-library/p-22f972ca.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-2c28684f.entry.js +0 -2
- package/dist/spw-stencil-library/p-2c28684f.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-31793077.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-4c21a696.entry.js +0 -2
- package/dist/spw-stencil-library/p-4c21a696.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-572188ac.entry.js +0 -2
- package/dist/spw-stencil-library/p-572188ac.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-823b60ae.entry.js +0 -2
- package/dist/spw-stencil-library/p-823b60ae.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-b1de48f3.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-d115a739.entry.js +0 -2
- package/dist/spw-stencil-library/p-d115a739.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-d2258e0a.entry.js +0 -2
- package/dist/spw-stencil-library/p-d2258e0a.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-ecec4588.entry.js +0 -2
- package/dist/spw-stencil-library/p-ecec4588.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-f5caed11.entry.js +0 -2
- package/dist/spw-stencil-library/p-f5caed11.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-f7760a47.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spw-table-header.js","sourceRoot":"","sources":["../../../../src/components/spw-table/spw-table-header/spw-table-header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAgB,CAAC,EAAE,MAAM,eAAe,CAAC;AAOxE,MAAM,OAAO,cAAc;IAL3B;QAYE,+GAA+G;QACvG,kBAAa,GAAa,KAAK,CAAC;QACxC,0GAA0G;QAClG,cAAS,GAAiC,MAAM,CAAC;QACzD,0GAA0G;QAClG,kBAAa,GAAiC,KAAK,CAAC;QAC5D,8FAA8F;QACtF,YAAO,GAAwB,QAAQ,CAAC;QAGhD,2EAA2E;QACnE,aAAQ,GAAa,KAAK,CAAC;QAGnC,gFAAgF;QACxE,aAAQ,GAAa,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"spw-table-header.js","sourceRoot":"","sources":["../../../../src/components/spw-table/spw-table-header/spw-table-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-table-header',\n styleUrl: 'spw-table-header.scss',\n shadow: true,\n})\nexport class SpwTableHeader {\n /** Définit un colspan pour la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() colspan?: HTMLTableCellElement['colSpan'];\n /** Définit un header relationnel pour la cellule, à des fins d'accessibilité (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() headers?: HTMLTableCellElement['headers'];\n /** Définit un rowspan pour la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() rowspan?: HTMLTableCellElement['rowSpan'];\n /** Définit un style visuel qui met en avant la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() isHighlighted?: boolean = false;\n /** Définit un alignement de texte pour la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() textAlign?: 'center' | 'left' | 'right' = 'left';\n /** Définit un alignement vertical pour la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() verticalAlign?: 'top' | 'bottom' | 'middle' = 'top';\n /** Définit le padding pour la cellule (à appliquer sur spw-table-cell ou spw-table-header) */\n @Prop() padding?: 'small' | 'medium' = 'medium';\n /** Définit id pour la colonne (en cas de tri) (à appliquer sur spw-table-header) */\n @Prop() columnId: string;\n /** Définit si la colonne est triable (à appliquer sur spw-table-header) */\n @Prop() sortable?: boolean = false;\n /** Définit la direction pour le tri sur la colonne (ascendant ou descendant) (à appliquer sur spw-table-header) */\n @Prop() sortDirection?: 'asc' | 'desc';\n /** Définit si la colonne est triée ou non (à appliquer sur spw-table-header) */\n @Prop() isSorted?: boolean = false;\n /** Définit un titre pour le tooltip (à appliquer sur spw-table-header) */\n @Prop() tooltipTitle?: string;\n /** Définit un contenu pour le tooltip (à appliquer sur spw-table-header) */\n @Prop() tooltipText?: string;\n /** Rend la cellule sticky lors du défilement horizontal (à appliquer sur spw-table-header ou spw-table-cell) */\n @Prop() sticky?: boolean = false;\n /** Position du sticky : 'start' (left: 0) ou 'end' (right: 0) (à appliquer sur spw-table-header ou spw-table-cell) */\n @Prop() stickyPosition?: 'start' | 'end' = 'start';\n /** Décalage en pixels pour le sticky (utile pour empiler plusieurs colonnes sticky) (à appliquer sur spw-table-header ou spw-table-cell) */\n @Prop() stickyOffset?: number = 0;\n\n @Event() spwHeaderClick: EventEmitter<string>;\n\n private handleClick = (event: MouseEvent) => {\n if ((event.target as HTMLElement).closest('[slot=\"filters\"]')) {\n event.stopPropagation();\n return;\n }\n if (this.sortable) {\n this.spwHeaderClick.emit(this.columnId);\n }\n };\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-table-header': true,\n 'spw-table-header--sortable': this.sortable,\n 'spw-table-header--is-sorted': this.isSorted,\n 'spw-table-header--has-tooltip': !!(this.tooltipTitle || this.tooltipText),\n [`spw-table-header--padding-${this.padding}`]: true,\n [`spw-table-header--text-align-${this.textAlign}`]: true,\n [`spw-table-header--vertical-align-${this.verticalAlign}`]: true,\n 'spw-table-header--sticky': this.sticky,\n [`spw-table-header--sticky-${this.stickyPosition}`]: this.sticky,\n };\n }\n\n render() {\n const attrs: { [key: string]: any } = {\n 'aria-sort': this.isSorted ? this.sortDirection : 'none',\n 'onClick': this.handleClick,\n 'class': this.elementClass,\n 'colSpan': this.colspan,\n 'headers': this.headers,\n 'part': 'cell',\n 'rowSpan': this.rowspan,\n };\n\n if (this.sticky) {\n const stickyStyles: { [key: string]: string } = {\n position: 'sticky',\n zIndex: '60',\n };\n\n if (this.stickyPosition === 'start') {\n stickyStyles.left = `${this.stickyOffset}px`;\n } else {\n stickyStyles.right = `${this.stickyOffset}px`;\n }\n\n attrs.style = stickyStyles;\n }\n\n return (\n <th {...attrs}>\n <div\n class={{\n 'spw-table-header__content': true,\n 'spw-table-header__content--is-sorted': this.isSorted,\n }}\n >\n <slot />\n <div class=\"spw-table-header__icons\">\n <slot name=\"filters\"></slot>\n {(this.tooltipTitle || this.tooltipText) && (\n <spw-tooltip tooltip-title={this.tooltipTitle} tooltip-text={this.tooltipText}>\n <spw-icon variant=\"fa-regular\" icon=\"fa-circle-question\"></spw-icon>\n </spw-tooltip>\n )}\n {this.sortable && (\n <spw-icon\n class=\"spw-table-header__sort-icon\"\n icon={this.isSorted ? (this.sortDirection === 'asc' ? 'fa-arrow-up-short-wide' : 'fa-arrow-down-wide-short') : 'fa-arrow-up-arrow-down'}\n ></spw-icon>\n )}\n </div>\n </div>\n </th>\n );\n }\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:contents;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}:host([data-row-style=odd]) .spw-table-row{background-color:var(--spw-color-themes-grey-grey-50)}.spw-table-row{position:relative}.spw-table-row--disabled{
|
|
2
|
+
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:contents;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}:host([data-row-style=odd]) .spw-table-row{background-color:var(--spw-color-themes-grey-grey-50)}.spw-table-row{position:relative}.spw-table-row--disabled{background:#fff}.spw-table-row--selected{background-color:var(--spw-color-themes-blue-blue-50);box-shadow:inset 3px 0 0 var(--spw-color-themes-blue-blue-500)}
|
|
@@ -4,6 +4,33 @@ export class SpwTableRow {
|
|
|
4
4
|
/** Permet de changer le state du spw-table-row */
|
|
5
5
|
this.state = 'default';
|
|
6
6
|
}
|
|
7
|
+
componentDidLoad() {
|
|
8
|
+
this.applyPropsToChildren();
|
|
9
|
+
}
|
|
10
|
+
slotChanged() {
|
|
11
|
+
this.applyPropsToChildren();
|
|
12
|
+
}
|
|
13
|
+
onStateChange() {
|
|
14
|
+
this.applyPropsToChildren();
|
|
15
|
+
}
|
|
16
|
+
onPaddingChange() {
|
|
17
|
+
this.applyPropsToChildren();
|
|
18
|
+
}
|
|
19
|
+
applyPropsToChildren() {
|
|
20
|
+
requestAnimationFrame(() => {
|
|
21
|
+
const cells = this.el.querySelectorAll('spw-table-cell, spw-table-header');
|
|
22
|
+
const stateClass = `--${this.state}`;
|
|
23
|
+
cells.forEach(cell => {
|
|
24
|
+
cell.classList.remove('--default', '--selected', '--disabled');
|
|
25
|
+
if (this.state !== 'default') {
|
|
26
|
+
cell.classList.add(stateClass);
|
|
27
|
+
}
|
|
28
|
+
if (this.padding && !cell.hasAttribute('padding')) {
|
|
29
|
+
cell.padding = this.padding;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
7
34
|
get elementClass() {
|
|
8
35
|
return {
|
|
9
36
|
'spw-table-row': true,
|
|
@@ -11,7 +38,7 @@ export class SpwTableRow {
|
|
|
11
38
|
};
|
|
12
39
|
}
|
|
13
40
|
render() {
|
|
14
|
-
return (h(Host, { key: '
|
|
41
|
+
return (h(Host, { key: 'a92e7619db6ca66332e5680add2f4f074ddb5db5', part: "row" }, h("tr", { key: '198d8027ea3cd377444f476e0c77d35de50c22c2', class: this.elementClass, part: "row" }, h("slot", { key: '667fb895983eff3077f36da1ac0d31756c8dd691' }))));
|
|
15
42
|
}
|
|
16
43
|
static get is() { return "spw-table-row"; }
|
|
17
44
|
static get encapsulation() { return "shadow"; }
|
|
@@ -46,8 +73,46 @@ export class SpwTableRow {
|
|
|
46
73
|
"attribute": "state",
|
|
47
74
|
"reflect": false,
|
|
48
75
|
"defaultValue": "'default'"
|
|
76
|
+
},
|
|
77
|
+
"padding": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"mutable": false,
|
|
80
|
+
"complexType": {
|
|
81
|
+
"original": "'small' | 'medium'",
|
|
82
|
+
"resolved": "\"medium\" | \"small\"",
|
|
83
|
+
"references": {}
|
|
84
|
+
},
|
|
85
|
+
"required": false,
|
|
86
|
+
"optional": true,
|
|
87
|
+
"docs": {
|
|
88
|
+
"tags": [],
|
|
89
|
+
"text": "D\u00E9finit le padding pour toutes les cellules de la row"
|
|
90
|
+
},
|
|
91
|
+
"getter": false,
|
|
92
|
+
"setter": false,
|
|
93
|
+
"attribute": "padding",
|
|
94
|
+
"reflect": false
|
|
49
95
|
}
|
|
50
96
|
};
|
|
51
97
|
}
|
|
98
|
+
static get elementRef() { return "el"; }
|
|
99
|
+
static get watchers() {
|
|
100
|
+
return [{
|
|
101
|
+
"propName": "state",
|
|
102
|
+
"methodName": "onStateChange"
|
|
103
|
+
}, {
|
|
104
|
+
"propName": "padding",
|
|
105
|
+
"methodName": "onPaddingChange"
|
|
106
|
+
}];
|
|
107
|
+
}
|
|
108
|
+
static get listeners() {
|
|
109
|
+
return [{
|
|
110
|
+
"name": "slotchange",
|
|
111
|
+
"method": "slotChanged",
|
|
112
|
+
"target": undefined,
|
|
113
|
+
"capture": false,
|
|
114
|
+
"passive": false
|
|
115
|
+
}];
|
|
116
|
+
}
|
|
52
117
|
}
|
|
53
118
|
//# sourceMappingURL=spw-table-row.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spw-table-row.js","sourceRoot":"","sources":["../../../../src/components/spw-table/spw-table-row/spw-table-row.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"spw-table-row.js","sourceRoot":"","sources":["../../../../src/components/spw-table/spw-table-row/spw-table-row.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAOjF,MAAM,OAAO,WAAW;IALxB;QAQE,mDAAmD;QAC3C,UAAK,GAAyC,SAAS,CAAC;KAyDjE;IArDC,gBAAgB;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAGD,WAAW;QACT,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAGD,aAAa;QACX,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAGD,eAAe;QACb,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,oBAAoB;QAC1B,qBAAqB,CAAC,GAAG,EAAE;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAErC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;gBAC/D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;gBAED,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;oBACjD,IAAY,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBACvC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAY,YAAY;QACtB,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,CAAC,kBAAkB,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI;SACvC,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDAAC,IAAI,EAAC,KAAK;YACd,2DAAI,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAC,KAAK;gBACtC,8DAAQ,CACL,CACA,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, Prop, Element, Listen, Watch, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-table-row',\n styleUrl: 'spw-table-row.scss',\n shadow: true,\n})\nexport class SpwTableRow {\n @Element() el: HTMLSpwTableRowElement;\n\n /** Permet de changer le state du spw-table-row */\n @Prop() state?: 'default' | 'selected' | 'disabled' = 'default';\n /** Définit le padding pour toutes les cellules de la row */\n @Prop() padding?: 'small' | 'medium';\n\n componentDidLoad() {\n this.applyPropsToChildren();\n }\n\n @Listen('slotchange')\n slotChanged() {\n this.applyPropsToChildren();\n }\n\n @Watch('state')\n onStateChange() {\n this.applyPropsToChildren();\n }\n\n @Watch('padding')\n onPaddingChange() {\n this.applyPropsToChildren();\n }\n\n private applyPropsToChildren() {\n requestAnimationFrame(() => {\n const cells = this.el.querySelectorAll('spw-table-cell, spw-table-header');\n const stateClass = `--${this.state}`;\n\n cells.forEach(cell => {\n cell.classList.remove('--default', '--selected', '--disabled');\n if (this.state !== 'default') {\n cell.classList.add(stateClass);\n }\n\n if (this.padding && !cell.hasAttribute('padding')) {\n (cell as any).padding = this.padding;\n }\n });\n });\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-table-row': true,\n [`spw-table-row--${this.state}`]: true,\n };\n }\n\n render() {\n return (\n <Host part=\"row\">\n <tr class={this.elementClass} part=\"row\">\n <slot />\n </tr>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -18,14 +18,19 @@ export class SpwTable {
|
|
|
18
18
|
this.updateHeadersSortState(newSort);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
+
onIsStickyChange() {
|
|
22
|
+
this.applyStickyToChildren();
|
|
23
|
+
}
|
|
21
24
|
componentDidLoad() {
|
|
22
25
|
var _a;
|
|
23
26
|
this.updateZebra();
|
|
27
|
+
this.applyStickyToChildren();
|
|
24
28
|
const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot');
|
|
25
29
|
if (slot) {
|
|
26
30
|
slot.addEventListener('slotchange', () => {
|
|
27
31
|
this.setupHeaderCheckboxListener();
|
|
28
32
|
this.updateMasterCheckboxState();
|
|
33
|
+
this.applyStickyToChildren();
|
|
29
34
|
});
|
|
30
35
|
}
|
|
31
36
|
this.setupHeaderCheckboxListener();
|
|
@@ -218,6 +223,23 @@ export class SpwTable {
|
|
|
218
223
|
}
|
|
219
224
|
}
|
|
220
225
|
}
|
|
226
|
+
applyStickyToChildren() {
|
|
227
|
+
requestAnimationFrame(() => {
|
|
228
|
+
const stickyClass = '--is-sticky';
|
|
229
|
+
const headers = this.el.querySelectorAll('spw-table-header');
|
|
230
|
+
const cells = this.el.querySelectorAll('spw-table-cell');
|
|
231
|
+
const footer = this.el.querySelector('spw-table-footer');
|
|
232
|
+
if (this.isSticky) {
|
|
233
|
+
headers.forEach(header => header.classList.add(stickyClass));
|
|
234
|
+
footer === null || footer === void 0 ? void 0 : footer.classList.add(stickyClass);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
headers.forEach(header => header.classList.remove(stickyClass));
|
|
238
|
+
cells.forEach(cell => cell.classList.remove(stickyClass));
|
|
239
|
+
footer === null || footer === void 0 ? void 0 : footer.classList.remove(stickyClass);
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
221
243
|
sortRows(columnId, direction) {
|
|
222
244
|
var _a;
|
|
223
245
|
const body = (_a = this.el.shadowRoot
|
|
@@ -268,10 +290,10 @@ export class SpwTable {
|
|
|
268
290
|
};
|
|
269
291
|
}
|
|
270
292
|
render() {
|
|
271
|
-
return (h(Host, { key: '
|
|
293
|
+
return (h(Host, { key: '7cc259ed7e17128348ebd7a6757d48b2d0114e0a', style: {
|
|
272
294
|
'--spw-table-max-height': this.formatSize(this.maxHeight),
|
|
273
295
|
'--spw-table-min-width': this.formatSize(this.minWidth),
|
|
274
|
-
} }, h("div", { key: '
|
|
296
|
+
} }, h("div", { key: 'b5dac474e57841c60312f92045859a1ff0d741c7', class: "spw-table-container" }, h("table", { key: '67790f5adbd07b77c80be97b03406ca6d8296d13', part: "table", class: this.elementClass, role: "table", "aria-label": this.accAriaLabel }, h("slot", { key: '208be3ca21332261306114673e756ca47bc0582d' })))));
|
|
275
297
|
}
|
|
276
298
|
static get is() { return "spw-table"; }
|
|
277
299
|
static get encapsulation() { return "shadow"; }
|
|
@@ -479,6 +501,9 @@ export class SpwTable {
|
|
|
479
501
|
return [{
|
|
480
502
|
"propName": "currentSort",
|
|
481
503
|
"methodName": "onCurrentSortChange"
|
|
504
|
+
}, {
|
|
505
|
+
"propName": "isSticky",
|
|
506
|
+
"methodName": "onIsStickyChange"
|
|
482
507
|
}];
|
|
483
508
|
}
|
|
484
509
|
static get listeners() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spw-table.js","sourceRoot":"","sources":["../../../src/components/spw-table/spw-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, Listen, EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\n\nexport interface SortEvent {\n column: string;\n direction: 'asc' | 'desc';\n}\n\n@Component({\n tag: 'spw-table',\n styleUrl: 'spw-table.scss',\n shadow: true,\n})\nexport class SpwTable {\n @Element() el: HTMLSpwTableElement;\n\n /** Propriété pour l'aria-label, à des fins d'accessibilité */\n @Prop() accAriaLabel?: string;\n /** Si le header du tableau doit être sticky ou non */\n @Prop() isSticky?: boolean = false;\n /** Si défini, apparition d'une scrollbar verticale et max-height */\n @Prop() maxHeight?: string;\n /** Si défini, apparition d'une scrollbar horizontale et max-width */\n @Prop() minWidth?: string = '600';\n /** Permet de définir le table-layout (auto ou fixed) */\n @Prop() tableLayout?: 'auto' | 'fixed' = 'auto';\n /** Définit un background de couleur différent une ligne sur 2 */\n @Prop() isZebra?: boolean = false;\n /** Désactive le tri natif pour permettre l'utilisation d'une fonction de tri personnalisée */\n @Prop() disableSort?: boolean = false;\n /** État du tri actuel (colonne et direction). Peut être défini de l'extérieur pour un tri personnalisé */\n @Prop({ mutable: true }) currentSort?: SortEvent;\n\n @Event() spwSort: EventEmitter<SortEvent>;\n\n private mutationObserver?: MutationObserver;\n\n @Watch('currentSort')\n onCurrentSortChange(newSort: SortEvent | undefined) {\n if (newSort) {\n this.updateHeadersSortState(newSort);\n }\n }\n\n componentDidLoad() {\n this.updateZebra();\n const slot = this.el.shadowRoot?.querySelector('slot');\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.setupHeaderCheckboxListener();\n this.updateMasterCheckboxState();\n });\n }\n this.setupHeaderCheckboxListener();\n this.setupBodyCheckboxListener();\n this.setupTableBodyObserver();\n setTimeout(() => {\n this.updateMasterCheckboxState();\n }, 0);\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n\n private setupTableBodyObserver() {\n const body = Array.from(this.el.children).find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n this.mutationObserver = new MutationObserver(() => {\n this.setupBodyCheckboxListener();\n setTimeout(() => {\n this.updateMasterCheckboxState();\n }, 0);\n });\n\n this.mutationObserver.observe(body, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['checked', 'disabled'],\n });\n }\n\n private getMasterCheckboxColumnIndex(): number | null {\n const slot = this.el.shadowRoot?.querySelector('slot');\n if (!slot) return null;\n\n const assignedElements = slot.assignedElements({ flatten: true }) as HTMLElement[];\n const head = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-head');\n if (!head) return null;\n\n const headerRow = head.querySelector('spw-table-row');\n if (!headerRow) return null;\n\n const headerCells = Array.from(headerRow.querySelectorAll('spw-table-header'));\n\n for (let i = 0; i < headerCells.length; i++) {\n if (headerCells[i].querySelector('spw-checkbox')) {\n return i;\n }\n }\n\n return null;\n }\n\n private isCheckboxDisabled(checkbox: any): boolean {\n return checkbox?.disabled === true || checkbox?.getAttribute('disabled') === 'true' || checkbox?.getAttribute('disabled') === '';\n }\n\n private updateMasterCheckboxState() {\n const columnIndex = this.getMasterCheckboxColumnIndex();\n if (columnIndex === null) return;\n\n const slot = this.el.shadowRoot?.querySelector('slot');\n const assignedElements = slot?.assignedElements({ flatten: true }) as HTMLElement[] | undefined;\n if (!assignedElements) return;\n\n const head = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-head');\n const body = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!head || !body) return;\n\n const headerRow = head.querySelector('spw-table-row');\n const headerCell = headerRow?.querySelectorAll('spw-table-header')[columnIndex];\n const masterCheckbox = headerCell?.querySelector('spw-checkbox') as any;\n\n const rows = body.querySelectorAll('spw-table-row');\n const checkboxData = Array.from(rows).map(row => {\n const cell = row.querySelectorAll('spw-table-cell')[columnIndex];\n const cb = cell?.querySelector('spw-checkbox') as any;\n return {\n checked: cb?.checked === true || cb?.getAttribute('checked') === 'true',\n disabled: this.isCheckboxDisabled(cb),\n };\n });\n\n const enabledCheckboxes = checkboxData.filter(item => !item.disabled);\n\n if (enabledCheckboxes.length === 0) return;\n\n const allChecked = enabledCheckboxes.every(item => item.checked);\n const noneChecked = enabledCheckboxes.every(item => !item.checked);\n\n if (!masterCheckbox) return;\n\n if (allChecked) {\n masterCheckbox.checked = true;\n masterCheckbox.setAttribute('checked', 'true');\n masterCheckbox.setAttribute('icon', 'fa-check');\n } else if (noneChecked) {\n masterCheckbox.checked = false;\n masterCheckbox.setAttribute('checked', 'false');\n masterCheckbox.setAttribute('icon', 'fa-check');\n } else {\n masterCheckbox.checked = true;\n masterCheckbox.setAttribute('checked', 'true');\n masterCheckbox.setAttribute('icon', 'fa-minus');\n }\n }\n\n private setupHeaderCheckboxListener() {\n const assignedElements = this.el.shadowRoot?.querySelector('slot')?.assignedElements({ flatten: true }) as HTMLElement[] | undefined;\n\n if (!assignedElements) return;\n\n const head = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-head');\n if (!head) return;\n\n const headerRows = head.querySelectorAll('spw-table-row');\n\n headerRows.forEach(row => {\n const checkboxes = row.querySelectorAll('spw-checkbox');\n checkboxes.forEach(cb => {\n cb.addEventListener('spwChange', (event: CustomEvent<boolean>) => {\n this.toggleAllRowCheckboxes(event.detail);\n });\n });\n });\n }\n\n private checkboxChangeHandler = () => this.updateMasterCheckboxState();\n\n private setupBodyCheckboxListener() {\n const body = Array.from(this.el.children).find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n const rows = body.querySelectorAll('spw-table-row');\n rows.forEach(row => {\n const checkboxes = row.querySelectorAll('spw-checkbox');\n checkboxes.forEach(cb => {\n cb.removeEventListener('spwChange', this.checkboxChangeHandler);\n cb.addEventListener('spwChange', this.checkboxChangeHandler);\n });\n });\n }\n\n private toggleAllRowCheckboxes(checked: boolean) {\n const columnIndex = this.getMasterCheckboxColumnIndex();\n if (columnIndex === null) return;\n\n const slot = this.el.shadowRoot?.querySelector('slot');\n const assignedElements = slot?.assignedElements({ flatten: true }) as HTMLElement[] | undefined;\n if (!assignedElements) return;\n\n const body = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n const rows = body.querySelectorAll('spw-table-row');\n\n rows.forEach(row => {\n const cells = Array.from(row.querySelectorAll('spw-table-cell'));\n const targetCell = cells[columnIndex];\n const checkbox = targetCell?.querySelector('spw-checkbox') as any;\n\n if (checkbox && !this.isCheckboxDisabled(checkbox)) {\n checkbox.checked = checked;\n checkbox.setAttribute('checked', checked.toString());\n }\n });\n\n setTimeout(() => {\n this.updateMasterCheckboxState();\n }, 0);\n }\n\n @Listen('spwHeaderClick')\n handleHeaderClick(event: CustomEvent<string>) {\n const columnId = event.detail;\n const current = this.currentSort;\n\n const newSort: SortEvent = {\n column: columnId,\n direction: current?.column === columnId && current.direction === 'asc' ? 'desc' : 'asc',\n };\n\n this.currentSort = newSort;\n this.spwSort.emit(newSort);\n\n if (!this.disableSort) {\n this.sortRows(newSort.column, newSort.direction);\n }\n\n this.updateHeadersSortState(newSort);\n this.updateZebra();\n }\n\n private updateZebra() {\n const slot = this.el.shadowRoot.querySelector('slot');\n if (!slot) return;\n\n const assignedElements = slot.assignedElements({ flatten: true });\n const body = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-body') as any;\n\n if (body) {\n if (this.isZebra) {\n body.setAttribute('is-zebra', 'true');\n } else {\n body.removeAttribute('is-zebra');\n }\n\n if (typeof body.updateZebraStyles === 'function') {\n body.updateZebraStyles();\n }\n }\n }\n\n private sortRows(columnId: string, direction: 'asc' | 'desc') {\n const body = this.el.shadowRoot\n .querySelector('slot')\n ?.assignedElements()\n .find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n const rows = Array.from(body.querySelectorAll('spw-table-row'));\n\n const columnIndex = Array.from(this.el.querySelectorAll('spw-table-header')).findIndex((header: any) => header.columnId === columnId);\n if (columnIndex === -1) return;\n\n rows.sort((a: any, b: any) => {\n const aCell = a.querySelectorAll('spw-table-cell')[columnIndex];\n const bCell = b.querySelectorAll('spw-table-cell')[columnIndex];\n if (!aCell || !bCell) return 0;\n\n const aValue = aCell.textContent.trim();\n const bValue = bCell.textContent.trim();\n\n if (!isNaN(Number(aValue)) && !isNaN(Number(bValue))) {\n return direction === 'asc' ? +aValue - +bValue : +bValue - +aValue;\n }\n\n return direction === 'asc' ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue);\n });\n\n rows.forEach(row => body.appendChild(row));\n\n const bodyComponent = body as HTMLSpwTableBodyElement;\n if (bodyComponent?.updateZebraStyles) {\n bodyComponent.updateZebraStyles();\n }\n }\n\n private updateHeadersSortState(sort: SortEvent) {\n const headers = this.el.querySelectorAll('spw-table-header');\n headers.forEach((header: any) => {\n const isCurrent = header.columnId === sort.column;\n header.isSorted = isCurrent;\n header.sortDirection = isCurrent ? sort.direction : undefined;\n });\n }\n\n private formatSize(value?: string): string {\n if (value === undefined || value === null) {\n return 'auto';\n }\n return `${value}px`;\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-table': true,\n 'spw-table--is-sticky': this.isSticky,\n [`spw-table--layout-${this.tableLayout}`]: true,\n };\n }\n\n render() {\n return (\n <Host\n style={{\n '--spw-table-max-height': this.formatSize(this.maxHeight),\n '--spw-table-min-width': this.formatSize(this.minWidth),\n }}\n >\n <div class=\"spw-table-container\">\n <table part=\"table\" class={this.elementClass} role=\"table\" aria-label={this.accAriaLabel}>\n <slot />\n </table>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"spw-table.js","sourceRoot":"","sources":["../../../src/components/spw-table/spw-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, Listen, EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\n\nexport interface SortEvent {\n column: string;\n direction: 'asc' | 'desc';\n}\n\n@Component({\n tag: 'spw-table',\n styleUrl: 'spw-table.scss',\n shadow: true,\n})\nexport class SpwTable {\n @Element() el: HTMLSpwTableElement;\n\n /** Propriété pour l'aria-label, à des fins d'accessibilité */\n @Prop() accAriaLabel?: string;\n /** Si le header du tableau doit être sticky ou non */\n @Prop() isSticky?: boolean = false;\n /** Si défini, apparition d'une scrollbar verticale et max-height */\n @Prop() maxHeight?: string;\n /** Si défini, apparition d'une scrollbar horizontale et max-width */\n @Prop() minWidth?: string = '600';\n /** Permet de définir le table-layout (auto ou fixed) */\n @Prop() tableLayout?: 'auto' | 'fixed' = 'auto';\n /** Définit un background de couleur différent une ligne sur 2 */\n @Prop() isZebra?: boolean = false;\n /** Désactive le tri natif pour permettre l'utilisation d'une fonction de tri personnalisée */\n @Prop() disableSort?: boolean = false;\n /** État du tri actuel (colonne et direction). Peut être défini de l'extérieur pour un tri personnalisé */\n @Prop({ mutable: true }) currentSort?: SortEvent;\n\n @Event() spwSort: EventEmitter<SortEvent>;\n\n private mutationObserver?: MutationObserver;\n\n @Watch('currentSort')\n onCurrentSortChange(newSort: SortEvent | undefined) {\n if (newSort) {\n this.updateHeadersSortState(newSort);\n }\n }\n\n @Watch('isSticky')\n onIsStickyChange() {\n this.applyStickyToChildren();\n }\n\n componentDidLoad() {\n this.updateZebra();\n this.applyStickyToChildren();\n const slot = this.el.shadowRoot?.querySelector('slot');\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.setupHeaderCheckboxListener();\n this.updateMasterCheckboxState();\n this.applyStickyToChildren();\n });\n }\n this.setupHeaderCheckboxListener();\n this.setupBodyCheckboxListener();\n this.setupTableBodyObserver();\n setTimeout(() => {\n this.updateMasterCheckboxState();\n }, 0);\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n\n private setupTableBodyObserver() {\n const body = Array.from(this.el.children).find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n this.mutationObserver = new MutationObserver(() => {\n this.setupBodyCheckboxListener();\n setTimeout(() => {\n this.updateMasterCheckboxState();\n }, 0);\n });\n\n this.mutationObserver.observe(body, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['checked', 'disabled'],\n });\n }\n\n private getMasterCheckboxColumnIndex(): number | null {\n const slot = this.el.shadowRoot?.querySelector('slot');\n if (!slot) return null;\n\n const assignedElements = slot.assignedElements({ flatten: true }) as HTMLElement[];\n const head = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-head');\n if (!head) return null;\n\n const headerRow = head.querySelector('spw-table-row');\n if (!headerRow) return null;\n\n const headerCells = Array.from(headerRow.querySelectorAll('spw-table-header'));\n\n for (let i = 0; i < headerCells.length; i++) {\n if (headerCells[i].querySelector('spw-checkbox')) {\n return i;\n }\n }\n\n return null;\n }\n\n private isCheckboxDisabled(checkbox: any): boolean {\n return checkbox?.disabled === true || checkbox?.getAttribute('disabled') === 'true' || checkbox?.getAttribute('disabled') === '';\n }\n\n private updateMasterCheckboxState() {\n const columnIndex = this.getMasterCheckboxColumnIndex();\n if (columnIndex === null) return;\n\n const slot = this.el.shadowRoot?.querySelector('slot');\n const assignedElements = slot?.assignedElements({ flatten: true }) as HTMLElement[] | undefined;\n if (!assignedElements) return;\n\n const head = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-head');\n const body = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!head || !body) return;\n\n const headerRow = head.querySelector('spw-table-row');\n const headerCell = headerRow?.querySelectorAll('spw-table-header')[columnIndex];\n const masterCheckbox = headerCell?.querySelector('spw-checkbox') as any;\n\n const rows = body.querySelectorAll('spw-table-row');\n const checkboxData = Array.from(rows).map(row => {\n const cell = row.querySelectorAll('spw-table-cell')[columnIndex];\n const cb = cell?.querySelector('spw-checkbox') as any;\n return {\n checked: cb?.checked === true || cb?.getAttribute('checked') === 'true',\n disabled: this.isCheckboxDisabled(cb),\n };\n });\n\n const enabledCheckboxes = checkboxData.filter(item => !item.disabled);\n\n if (enabledCheckboxes.length === 0) return;\n\n const allChecked = enabledCheckboxes.every(item => item.checked);\n const noneChecked = enabledCheckboxes.every(item => !item.checked);\n\n if (!masterCheckbox) return;\n\n if (allChecked) {\n masterCheckbox.checked = true;\n masterCheckbox.setAttribute('checked', 'true');\n masterCheckbox.setAttribute('icon', 'fa-check');\n } else if (noneChecked) {\n masterCheckbox.checked = false;\n masterCheckbox.setAttribute('checked', 'false');\n masterCheckbox.setAttribute('icon', 'fa-check');\n } else {\n masterCheckbox.checked = true;\n masterCheckbox.setAttribute('checked', 'true');\n masterCheckbox.setAttribute('icon', 'fa-minus');\n }\n }\n\n private setupHeaderCheckboxListener() {\n const assignedElements = this.el.shadowRoot?.querySelector('slot')?.assignedElements({ flatten: true }) as HTMLElement[] | undefined;\n\n if (!assignedElements) return;\n\n const head = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-head');\n if (!head) return;\n\n const headerRows = head.querySelectorAll('spw-table-row');\n\n headerRows.forEach(row => {\n const checkboxes = row.querySelectorAll('spw-checkbox');\n checkboxes.forEach(cb => {\n cb.addEventListener('spwChange', (event: CustomEvent<boolean>) => {\n this.toggleAllRowCheckboxes(event.detail);\n });\n });\n });\n }\n\n private checkboxChangeHandler = () => this.updateMasterCheckboxState();\n\n private setupBodyCheckboxListener() {\n const body = Array.from(this.el.children).find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n const rows = body.querySelectorAll('spw-table-row');\n rows.forEach(row => {\n const checkboxes = row.querySelectorAll('spw-checkbox');\n checkboxes.forEach(cb => {\n cb.removeEventListener('spwChange', this.checkboxChangeHandler);\n cb.addEventListener('spwChange', this.checkboxChangeHandler);\n });\n });\n }\n\n private toggleAllRowCheckboxes(checked: boolean) {\n const columnIndex = this.getMasterCheckboxColumnIndex();\n if (columnIndex === null) return;\n\n const slot = this.el.shadowRoot?.querySelector('slot');\n const assignedElements = slot?.assignedElements({ flatten: true }) as HTMLElement[] | undefined;\n if (!assignedElements) return;\n\n const body = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n const rows = body.querySelectorAll('spw-table-row');\n\n rows.forEach(row => {\n const cells = Array.from(row.querySelectorAll('spw-table-cell'));\n const targetCell = cells[columnIndex];\n const checkbox = targetCell?.querySelector('spw-checkbox') as any;\n\n if (checkbox && !this.isCheckboxDisabled(checkbox)) {\n checkbox.checked = checked;\n checkbox.setAttribute('checked', checked.toString());\n }\n });\n\n setTimeout(() => {\n this.updateMasterCheckboxState();\n }, 0);\n }\n\n @Listen('spwHeaderClick')\n handleHeaderClick(event: CustomEvent<string>) {\n const columnId = event.detail;\n const current = this.currentSort;\n\n const newSort: SortEvent = {\n column: columnId,\n direction: current?.column === columnId && current.direction === 'asc' ? 'desc' : 'asc',\n };\n\n this.currentSort = newSort;\n this.spwSort.emit(newSort);\n\n if (!this.disableSort) {\n this.sortRows(newSort.column, newSort.direction);\n }\n\n this.updateHeadersSortState(newSort);\n this.updateZebra();\n }\n\n private updateZebra() {\n const slot = this.el.shadowRoot.querySelector('slot');\n if (!slot) return;\n\n const assignedElements = slot.assignedElements({ flatten: true });\n const body = assignedElements.find(el => el.tagName.toLowerCase() === 'spw-table-body') as any;\n\n if (body) {\n if (this.isZebra) {\n body.setAttribute('is-zebra', 'true');\n } else {\n body.removeAttribute('is-zebra');\n }\n\n if (typeof body.updateZebraStyles === 'function') {\n body.updateZebraStyles();\n }\n }\n }\n\n private applyStickyToChildren() {\n requestAnimationFrame(() => {\n const stickyClass = '--is-sticky';\n const headers = this.el.querySelectorAll('spw-table-header');\n const cells = this.el.querySelectorAll('spw-table-cell');\n const footer = this.el.querySelector('spw-table-footer');\n\n if (this.isSticky) {\n headers.forEach(header => header.classList.add(stickyClass));\n footer?.classList.add(stickyClass);\n } else {\n headers.forEach(header => header.classList.remove(stickyClass));\n cells.forEach(cell => cell.classList.remove(stickyClass));\n footer?.classList.remove(stickyClass);\n }\n });\n }\n\n private sortRows(columnId: string, direction: 'asc' | 'desc') {\n const body = this.el.shadowRoot\n .querySelector('slot')\n ?.assignedElements()\n .find(el => el.tagName.toLowerCase() === 'spw-table-body');\n if (!body) return;\n\n const rows = Array.from(body.querySelectorAll('spw-table-row'));\n\n const columnIndex = Array.from(this.el.querySelectorAll('spw-table-header')).findIndex((header: any) => header.columnId === columnId);\n if (columnIndex === -1) return;\n\n rows.sort((a: any, b: any) => {\n const aCell = a.querySelectorAll('spw-table-cell')[columnIndex];\n const bCell = b.querySelectorAll('spw-table-cell')[columnIndex];\n if (!aCell || !bCell) return 0;\n\n const aValue = aCell.textContent.trim();\n const bValue = bCell.textContent.trim();\n\n if (!isNaN(Number(aValue)) && !isNaN(Number(bValue))) {\n return direction === 'asc' ? +aValue - +bValue : +bValue - +aValue;\n }\n\n return direction === 'asc' ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue);\n });\n\n rows.forEach(row => body.appendChild(row));\n\n const bodyComponent = body as HTMLSpwTableBodyElement;\n if (bodyComponent?.updateZebraStyles) {\n bodyComponent.updateZebraStyles();\n }\n }\n\n private updateHeadersSortState(sort: SortEvent) {\n const headers = this.el.querySelectorAll('spw-table-header');\n headers.forEach((header: any) => {\n const isCurrent = header.columnId === sort.column;\n header.isSorted = isCurrent;\n header.sortDirection = isCurrent ? sort.direction : undefined;\n });\n }\n\n private formatSize(value?: string): string {\n if (value === undefined || value === null) {\n return 'auto';\n }\n return `${value}px`;\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-table': true,\n 'spw-table--is-sticky': this.isSticky,\n [`spw-table--layout-${this.tableLayout}`]: true,\n };\n }\n\n render() {\n return (\n <Host\n style={{\n '--spw-table-max-height': this.formatSize(this.maxHeight),\n '--spw-table-min-width': this.formatSize(this.minWidth),\n }}\n >\n <div class=\"spw-table-container\">\n <table part=\"table\" class={this.elementClass} role=\"table\" aria-label={this.accAriaLabel}>\n <slot />\n </table>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -8,7 +8,7 @@ catch (error) {
|
|
|
8
8
|
}
|
|
9
9
|
import { withComponentControls, extractArgTypes, toKebabCase } from "../../../utils/utils";
|
|
10
10
|
const elementTag = 'spw-footer';
|
|
11
|
-
const subComponentTags = ['spw-footer-bottom', 'spw-footer-content'];
|
|
11
|
+
const subComponentTags = ['spw-footer-bottom', 'spw-footer-content', 'spw-footer-content-col', 'spw-footer-link'];
|
|
12
12
|
const argTypes = Object.assign(Object.assign({}, withComponentControls(componentsData, { tag: elementTag })), extractArgTypes(componentsData, subComponentTags));
|
|
13
13
|
const meta = {
|
|
14
14
|
title: 'Organismes/Pied de page (footer)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spw-footer.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-footer/spw-footer.stories.ts"],"names":[],"mappings":"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","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, extractArgTypes, toKebabCase } from '@utils/utils';\n\nconst elementTag = 'spw-footer';\n\nconst subComponentTags = ['spw-footer-bottom', 'spw-footer-content'];\n\nconst argTypes = {\n ...withComponentControls(componentsData, { tag: elementTag }),\n ...extractArgTypes(componentsData, subComponentTags),\n};\n\nconst meta: Meta = {\n title: 'Organismes/Pied de page (footer)',\n component: elementTag,\n argTypes,\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nSection inférieure récurrente d'une page utilisée pour afficher des informations de contact, des liens importants et des crédits.\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/91a10d-pied-de-page-footer)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent(slotArgs) {\n return /* HTML */ `\n <spw-footer-content>\n <spw-footer-content-col col-title=\"${slotArgs.colTitle1}\">\n <spw-footer-link href=\"https://www.wallonie.be/fr/demarches\">Démarches</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/jobs\">Jobs</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/actualites\">Actualités</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/agenda\">Agenda</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/acteurs-et-institutions\">Acteurs et institutions</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/appels-a-projets\">Appels à projets</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/demarches/se-renseigner-sur-la-charte-graphique-de-la-wallonie\">Charte graphique</spw-footer-link>\n </spw-footer-content-col>\n <spw-footer-content-col col-title=\"${slotArgs.colTitle2}\">\n <spw-footer-link href=\"https://www.wallonie.be/fr/\">Lien 1</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/\">Lien 2</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/\">Lien 3</spw-footer-link>\n </spw-footer-content-col>\n <spw-footer-content-col col-title=\"${slotArgs.colTitle3}\">\n <spw-footer-link href=\"https://spw.wallonie.be/\">Service public de Wallonie</spw-footer-link>\n <spw-footer-link href=\"https://www.parlement-wallonie.be/\">Parlement de Wallonie</spw-footer-link>\n <spw-footer-link href=\"https://geoportail.wallonie.be/\">Géoportail</spw-footer-link>\n <spw-footer-link href=\"http://developpementdurable.wallonie.be/\">Développement durable</spw-footer-link>\n <spw-footer-link href=\"https://wallex.wallonie.be/\">Wallex</spw-footer-link>\n <spw-footer-link href=\"https://marchespublics.wallonie.be/\">Marchés publics wallons</spw-footer-link>\n <spw-footer-link href=\"https://finances.wallonie.be/home/finances-wallonnes/budget-wallon.html\">Budget</spw-footer-link>\n <spw-footer-link href=\"https://cortex.wallonie.be/home.html\">Cortex</spw-footer-link>\n </spw-footer-content-col>\n <spw-footer-content-col col-title=\"${slotArgs.colTitle4}\">\n <spw-footer-link href=\"https://www.wallonie.be/formulaire-de-contact\">Formulaire de contact</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be//les-espaces-wallonie\">Espaces Wallonie</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/presse\">Presse</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/introduire-une-plainte-spw\">Introduire une plainte au SPW</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/signalement-dune-irregularite\">Signalement d'une irrégularité</spw-footer-link>\n </spw-footer-content-col>\n </spw-footer-content>\n <spw-footer-bottom site-title=\"${slotArgs.siteTitle}\">\n <spw-footer-link href=\"https://www.wallonie.be/fr/plan-du-site\">Plan du site</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/mentions-legales\">Mentions légales</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/vie-privee\">Vie privée</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/mediateur\">Médiateur</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/accessibilite\">Accessibilité</spw-footer-link>\n </spw-footer-bottom>\n `;\n}\n\nfunction htmlContentLight(slotArgs) {\n return /* HTML */ `\n <spw-footer-bottom site-title=\"${slotArgs.siteTitle}\">\n <spw-footer-link href=\"https://www.wallonie.be/fr/plan-du-site\">Plan du site</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/mentions-legales\">Mentions légales</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/vie-privee\">Vie privée</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/mediateur\">Médiateur</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/accessibilite\">Accessibilité</spw-footer-link>\n </spw-footer-bottom>\n `;\n}\n\nconst Template: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n element.setAttribute(toKebabCase(key), val as string);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContent(args);\n\n return element;\n};\n\nconst TemplateLight: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n element.setAttribute(key, val);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentLight(args);\n\n return element;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n colTitle1: 'Accès rapides',\n colTitle2: 'Liens utiles',\n colTitle3: 'Sites généraux de Wallonie',\n colTitle4: 'Nous contacter',\n siteTitle: 'Titre du site',\n colsDesktop: 4,\n colsTablet: 2,\n colsMobile: 1,\n};\n\nexport const Light = TemplateLight.bind({});\nLight.args = {\n siteTitle: 'Titre du site',\n};\n"]}
|
|
1
|
+
{"version":3,"file":"spw-footer.stories.js","sourceRoot":"","sources":["../../../../src/stories/organisms/spw-footer/spw-footer.stories.ts"],"names":[],"mappings":"AAAA,IAAI,cAAmB,CAAC;AAExB,IAAI,CAAC;IACH,cAAc,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;AACpE,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpF,cAAc,GAAG,EAAE,CAAC;AACtB,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnF,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;AAElH,MAAM,QAAQ,mCACT,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,GAC1D,eAAe,CAAC,cAAc,EAAE,gBAAgB,CAAC,CACrD,CAAC;AAEF,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,kCAAkC;IACzC,SAAS,EAAE,UAAU;IACrB,QAAQ;IACR,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,SAAS,EAAE;;;;;;SAMV;aACF;SACF;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,SAAS,WAAW,CAAC,QAAQ;IAC3B,OAAO,UAAU,CAAC;;2CAEuB,QAAQ,CAAC,SAAS;;;;;;;;;2CASlB,QAAQ,CAAC,SAAS;;;;;2CAKlB,QAAQ,CAAC,SAAS;;;;;;;;;;2CAUlB,QAAQ,CAAC,SAAS;;;;;;;;qCAQxB,QAAQ,CAAC,SAAS;;;;;;;GAOpD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAQ;IAChC,OAAO,UAAU,CAAC;qCACiB,QAAQ,CAAC,SAAS;;;;;;;GAOpD,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAAY,IAAI,CAAC,EAAE;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QAC1C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAa,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEtC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAY,IAAI,CAAC,EAAE;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QAC1C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE3C,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,cAAc;IACzB,SAAS,EAAE,4BAA4B;IACvC,SAAS,EAAE,gBAAgB;IAC3B,SAAS,EAAE,eAAe;IAC1B,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,KAAK,CAAC,IAAI,GAAG;IACX,SAAS,EAAE,eAAe;CAC3B,CAAC","sourcesContent":["let componentsData: any;\n\ntry {\n componentsData = require('../../../../dist/components_json.json');\n} catch (error) {\n console.warn('components_json.json non trouvé. Utilisation de valeurs par défaut.');\n componentsData = {};\n}\n\nimport { Meta, StoryFn } from '@storybook/web-components';\nimport { withComponentControls, extractArgTypes, toKebabCase } from '@utils/utils';\n\nconst elementTag = 'spw-footer';\n\nconst subComponentTags = ['spw-footer-bottom', 'spw-footer-content', 'spw-footer-content-col', 'spw-footer-link'];\n\nconst argTypes = {\n ...withComponentControls(componentsData, { tag: elementTag }),\n ...extractArgTypes(componentsData, subComponentTags),\n};\n\nconst meta: Meta = {\n title: 'Organismes/Pied de page (footer)',\n component: elementTag,\n argTypes,\n tags: ['autodocs'],\n parameters: {\n docs: {\n description: {\n component: `\n<strong class=\"mr-2\">Statut du composant :</strong> <spw-tag size=\"small\" variant=\"green\">Prêt</spw-tag>\n\nSection inférieure récurrente d'une page utilisée pour afficher des informations de contact, des liens importants et des crédits.\n\n[<spw-link>Consulter la documentation</spw-link>](https://zeroheight.com/2310c7a1e/p/91a10d-pied-de-page-footer)\n `,\n },\n },\n },\n};\n\nexport default meta;\n\nfunction htmlContent(slotArgs) {\n return /* HTML */ `\n <spw-footer-content>\n <spw-footer-content-col col-title=\"${slotArgs.colTitle1}\">\n <spw-footer-link href=\"https://www.wallonie.be/fr/demarches\">Démarches</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/jobs\">Jobs</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/actualites\">Actualités</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/agenda\">Agenda</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/acteurs-et-institutions\">Acteurs et institutions</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/appels-a-projets\">Appels à projets</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/demarches/se-renseigner-sur-la-charte-graphique-de-la-wallonie\">Charte graphique</spw-footer-link>\n </spw-footer-content-col>\n <spw-footer-content-col col-title=\"${slotArgs.colTitle2}\">\n <spw-footer-link href=\"https://www.wallonie.be/fr/\">Lien 1</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/\">Lien 2</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/\">Lien 3</spw-footer-link>\n </spw-footer-content-col>\n <spw-footer-content-col col-title=\"${slotArgs.colTitle3}\">\n <spw-footer-link href=\"https://spw.wallonie.be/\">Service public de Wallonie</spw-footer-link>\n <spw-footer-link href=\"https://www.parlement-wallonie.be/\">Parlement de Wallonie</spw-footer-link>\n <spw-footer-link href=\"https://geoportail.wallonie.be/\">Géoportail</spw-footer-link>\n <spw-footer-link href=\"http://developpementdurable.wallonie.be/\">Développement durable</spw-footer-link>\n <spw-footer-link href=\"https://wallex.wallonie.be/\">Wallex</spw-footer-link>\n <spw-footer-link href=\"https://marchespublics.wallonie.be/\">Marchés publics wallons</spw-footer-link>\n <spw-footer-link href=\"https://finances.wallonie.be/home/finances-wallonnes/budget-wallon.html\">Budget</spw-footer-link>\n <spw-footer-link href=\"https://cortex.wallonie.be/home.html\">Cortex</spw-footer-link>\n </spw-footer-content-col>\n <spw-footer-content-col col-title=\"${slotArgs.colTitle4}\">\n <spw-footer-link href=\"https://www.wallonie.be/formulaire-de-contact\">Formulaire de contact</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be//les-espaces-wallonie\">Espaces Wallonie</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/presse\">Presse</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/introduire-une-plainte-spw\">Introduire une plainte au SPW</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/signalement-dune-irregularite\">Signalement d'une irrégularité</spw-footer-link>\n </spw-footer-content-col>\n </spw-footer-content>\n <spw-footer-bottom site-title=\"${slotArgs.siteTitle}\">\n <spw-footer-link href=\"https://www.wallonie.be/fr/plan-du-site\">Plan du site</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/mentions-legales\">Mentions légales</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/vie-privee\">Vie privée</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/mediateur\">Médiateur</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/accessibilite\">Accessibilité</spw-footer-link>\n </spw-footer-bottom>\n `;\n}\n\nfunction htmlContentLight(slotArgs) {\n return /* HTML */ `\n <spw-footer-bottom site-title=\"${slotArgs.siteTitle}\">\n <spw-footer-link href=\"https://www.wallonie.be/fr/plan-du-site\">Plan du site</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/mentions-legales\">Mentions légales</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/vie-privee\">Vie privée</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/mediateur\">Médiateur</spw-footer-link>\n <spw-footer-link href=\"https://www.wallonie.be/fr/accessibilite\">Accessibilité</spw-footer-link>\n </spw-footer-bottom>\n `;\n}\n\nconst Template: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n element.setAttribute(toKebabCase(key), val as string);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContent(args);\n\n return element;\n};\n\nconst TemplateLight: StoryFn = args => {\n const element = document.createElement(elementTag);\n\n const controls = withComponentControls(componentsData, { tag: elementTag }) || {};\n const masterProps = controls.__realProps || Object.keys(controls);\n\n Object.entries(args).forEach(([key, val]) => {\n if (masterProps.includes(key)) {\n element.setAttribute(key, val);\n } else if (key.startsWith('on')) {\n element.addEventListener(key.substring(2).toLowerCase(), val);\n }\n });\n\n element.innerHTML = htmlContentLight(args);\n\n return element;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n colTitle1: 'Accès rapides',\n colTitle2: 'Liens utiles',\n colTitle3: 'Sites généraux de Wallonie',\n colTitle4: 'Nous contacter',\n siteTitle: 'Titre du site',\n colsDesktop: 4,\n colsTablet: 2,\n colsMobile: 1,\n};\n\nexport const Light = TemplateLight.bind({});\nLight.args = {\n siteTitle: 'Titre du site',\n};\n"]}
|
|
@@ -23,108 +23,109 @@ const enumOptions = (prop) => prop.type
|
|
|
23
23
|
.map(t => t.trim())
|
|
24
24
|
.map(t => (t === '""' ? 'default' : t))
|
|
25
25
|
.map(t => t.replace(/^"(.*)"$/, '$1'));
|
|
26
|
-
const generateProp = (prop) => {
|
|
26
|
+
const generateProp = (prop, componentTag, prefixPropName = false) => {
|
|
27
|
+
const category = componentTag ? `Props - ${componentTag}` : 'properties';
|
|
28
|
+
const propName = prefixPropName && componentTag ? `${componentTag}__${prop.name}` : prop.name;
|
|
29
|
+
const baseTableConfig = {
|
|
30
|
+
category: category,
|
|
31
|
+
defaultValue: { summary: prop.default },
|
|
32
|
+
};
|
|
27
33
|
if (isText(prop)) {
|
|
28
34
|
return {
|
|
29
|
-
[
|
|
35
|
+
[propName]: {
|
|
30
36
|
control: 'text',
|
|
31
37
|
description: description(prop),
|
|
32
38
|
defaultValue: prop.default,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
defaultValue: { summary: prop.default },
|
|
36
|
-
type: { summary: 'string' },
|
|
37
|
-
},
|
|
39
|
+
name: prop.name,
|
|
40
|
+
table: Object.assign(Object.assign({}, baseTableConfig), { type: { summary: 'string' } }),
|
|
38
41
|
},
|
|
39
42
|
};
|
|
40
43
|
}
|
|
41
44
|
if (isBoolean(prop)) {
|
|
42
45
|
return {
|
|
43
|
-
[
|
|
46
|
+
[propName]: {
|
|
44
47
|
control: 'boolean',
|
|
45
48
|
description: description(prop),
|
|
46
49
|
defaultValue: prop.default,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
defaultValue: { summary: prop.default },
|
|
50
|
-
type: { summary: 'boolean' },
|
|
51
|
-
},
|
|
50
|
+
name: prop.name,
|
|
51
|
+
table: Object.assign(Object.assign({}, baseTableConfig), { type: { summary: 'boolean' } }),
|
|
52
52
|
},
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
55
|
if (isNumber(prop)) {
|
|
56
56
|
return {
|
|
57
|
-
[
|
|
57
|
+
[propName]: {
|
|
58
58
|
control: 'number',
|
|
59
59
|
description: description(prop),
|
|
60
60
|
defaultValue: prop.default,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
defaultValue: { summary: prop.default },
|
|
64
|
-
type: { summary: 'number' },
|
|
65
|
-
},
|
|
61
|
+
name: prop.name,
|
|
62
|
+
table: Object.assign(Object.assign({}, baseTableConfig), { type: { summary: 'number' } }),
|
|
66
63
|
},
|
|
67
64
|
};
|
|
68
65
|
}
|
|
69
66
|
if (isEnum(prop)) {
|
|
70
67
|
return {
|
|
71
|
-
[
|
|
68
|
+
[propName]: {
|
|
72
69
|
control: 'select',
|
|
73
70
|
defaultValue: prop.default,
|
|
74
71
|
options: enumOptions(prop),
|
|
75
72
|
description: description(prop),
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
defaultValue: { summary: prop.default },
|
|
79
|
-
type: { summary: 'enum' },
|
|
80
|
-
},
|
|
73
|
+
name: prop.name,
|
|
74
|
+
table: Object.assign(Object.assign({}, baseTableConfig), { type: { summary: 'enum' } }),
|
|
81
75
|
},
|
|
82
76
|
};
|
|
83
77
|
}
|
|
84
78
|
return {};
|
|
85
79
|
};
|
|
86
|
-
const generateProps = (props) => {
|
|
80
|
+
const generateProps = (props, componentTag, prefixPropName = false) => {
|
|
87
81
|
let args = {};
|
|
88
|
-
props.forEach(prop => (args = Object.assign(Object.assign({}, args), generateProp(prop))));
|
|
82
|
+
props.forEach(prop => (args = Object.assign(Object.assign({}, args), generateProp(prop, componentTag, prefixPropName))));
|
|
89
83
|
return args;
|
|
90
84
|
};
|
|
91
|
-
const generateEvent = (event) => {
|
|
85
|
+
const generateEvent = (event, componentTag, prefixEventName = false) => {
|
|
92
86
|
function capitalizeFirstLetter(string) {
|
|
93
87
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
94
88
|
}
|
|
89
|
+
const category = componentTag ? `Events - ${componentTag}` : 'events';
|
|
90
|
+
const originalEventName = `on${capitalizeFirstLetter(event.event)}`;
|
|
91
|
+
const eventName = prefixEventName && componentTag ? `${componentTag}__${originalEventName}` : originalEventName;
|
|
95
92
|
return {
|
|
96
|
-
[
|
|
93
|
+
[eventName]: {
|
|
97
94
|
action: event.event,
|
|
98
95
|
description: description(event),
|
|
96
|
+
name: originalEventName,
|
|
99
97
|
table: {
|
|
100
98
|
defaultValue: { summary: event.event },
|
|
101
|
-
category:
|
|
99
|
+
category: category,
|
|
102
100
|
type: { summary: event.detail },
|
|
103
101
|
},
|
|
104
102
|
},
|
|
105
103
|
};
|
|
106
104
|
};
|
|
107
|
-
const generateEvents = (events) => {
|
|
105
|
+
const generateEvents = (events, componentTag, prefixEventName = false) => {
|
|
108
106
|
let args = {};
|
|
109
|
-
events.forEach(event => (args = Object.assign(Object.assign({}, args), generateEvent(event))));
|
|
107
|
+
events.forEach(event => (args = Object.assign(Object.assign({}, args), generateEvent(event, componentTag, prefixEventName))));
|
|
110
108
|
return args;
|
|
111
109
|
};
|
|
112
|
-
const generateMethod = (method) => {
|
|
110
|
+
const generateMethod = (method, componentTag, prefixMethodName = false) => {
|
|
111
|
+
const category = componentTag ? `Methods - ${componentTag}` : 'methods';
|
|
112
|
+
const methodName = prefixMethodName && componentTag ? `${componentTag}__${method.name}` : method.name;
|
|
113
113
|
return {
|
|
114
|
-
[
|
|
114
|
+
[methodName]: {
|
|
115
115
|
action: method.name,
|
|
116
116
|
description: description(method),
|
|
117
|
+
name: method.name,
|
|
117
118
|
table: {
|
|
118
|
-
category:
|
|
119
|
+
category: category,
|
|
119
120
|
type: { summary: method.signature },
|
|
120
121
|
defaultValue: { summary: method.returns.type },
|
|
121
122
|
},
|
|
122
123
|
},
|
|
123
124
|
};
|
|
124
125
|
};
|
|
125
|
-
const generateMethods = (methods) => {
|
|
126
|
+
const generateMethods = (methods, componentTag, prefixMethodName = false) => {
|
|
126
127
|
let args = {};
|
|
127
|
-
methods.forEach(method => (args = Object.assign(Object.assign({}, args), generateMethod(method))));
|
|
128
|
+
methods.forEach(method => (args = Object.assign(Object.assign({}, args), generateMethod(method, componentTag, prefixMethodName))));
|
|
128
129
|
return args;
|
|
129
130
|
};
|
|
130
131
|
const extractComponentInfoByTag = (componentsData, tag) => {
|
|
@@ -241,39 +242,37 @@ export const generateComponentTable = (componentsData, tag) => {
|
|
|
241
242
|
const componentInfo = extractComponentInfoByTag(componentsData, tag);
|
|
242
243
|
return generateHTMLTable(componentInfo);
|
|
243
244
|
};
|
|
244
|
-
export const withComponentControls = (componentsData, { tag, customTokens = [] }) => {
|
|
245
|
+
export const withComponentControls = (componentsData, { tag, customTokens = [], prefixNames = false }) => {
|
|
245
246
|
const component = componentsData.components.find(c => c.tag === tag);
|
|
246
247
|
const props = (component === null || component === void 0 ? void 0 : component.props) || [];
|
|
247
248
|
const events = (component === null || component === void 0 ? void 0 : component.events) || [];
|
|
248
249
|
const methods = (component === null || component === void 0 ? void 0 : component.methods) || [];
|
|
249
250
|
const tokenControls = customTokens.reduce((acc, token) => {
|
|
250
|
-
|
|
251
|
+
const tokenName = prefixNames ? `${tag}__${token.name}` : token.name;
|
|
252
|
+
acc[tokenName] = {
|
|
251
253
|
control: true,
|
|
252
254
|
description: token.description,
|
|
253
255
|
table: {
|
|
254
|
-
category:
|
|
256
|
+
category: `Tokens - ${tag}`,
|
|
255
257
|
type: { summary: 'CSS Variable' },
|
|
256
258
|
defaultValue: { summary: token.defaultValue },
|
|
257
259
|
},
|
|
258
260
|
};
|
|
259
261
|
return acc;
|
|
260
262
|
}, {});
|
|
261
|
-
|
|
262
|
-
const
|
|
263
|
-
const
|
|
264
|
-
const methodControls = generateMethods(methods);
|
|
265
|
-
// ✅ Regroupement complet pour Storybook
|
|
263
|
+
const propControls = generateProps(props, tag, prefixNames);
|
|
264
|
+
const eventControls = generateEvents(events, tag, prefixNames);
|
|
265
|
+
const methodControls = generateMethods(methods, tag, prefixNames);
|
|
266
266
|
const allControls = Object.assign(Object.assign(Object.assign(Object.assign({}, propControls), eventControls), methodControls), tokenControls);
|
|
267
|
-
// ✅ Indique explicitement quelles sont les props réelles du composant
|
|
268
267
|
Object.defineProperty(allControls, '__realProps', {
|
|
269
268
|
value: Object.keys(propControls).concat(Object.keys(tokenControls)),
|
|
270
|
-
enumerable: false,
|
|
269
|
+
enumerable: false,
|
|
271
270
|
});
|
|
272
271
|
return allControls;
|
|
273
272
|
};
|
|
274
273
|
export function extractArgTypes(componentsData, subComponentTags) {
|
|
275
274
|
return subComponentTags.reduce((acc, tag) => {
|
|
276
|
-
const subComponentArgTypes = withComponentControls(componentsData, { tag });
|
|
275
|
+
const subComponentArgTypes = withComponentControls(componentsData, { tag, prefixNames: true });
|
|
277
276
|
return Object.assign(Object.assign({}, acc), subComponentArgTypes);
|
|
278
277
|
}, {});
|
|
279
278
|
}
|