arengibook 3.3.1-preprod → 3.3.1-preprodtable2

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.
Files changed (2) hide show
  1. package/dist/index.js +486 -59
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ var MESSAGES = {
13
13
  fr: {
14
14
  'arengibook.common.save': 'Enregistrer',
15
15
  'arengibook.common.cancel': 'Annuler',
16
+ 'arengibook.common.close': 'Fermer',
16
17
  'arengibook.table.toolbar.search': 'Rechercher…',
17
18
  'arengibook.table.filter.clearAll': 'Effacer tous les filtres',
18
19
  'arengibook.table.selection.onSelection': 'Sur la sélection',
@@ -36,6 +37,8 @@ var MESSAGES = {
36
37
  'arengibook.table.settings.fitColumn': 'Ajuster à la largeur du contenu',
37
38
  'arengibook.table.settings.hideColumn': 'Masquer cette colonne',
38
39
  'arengibook.table.settings.colVisible': 'Afficher',
40
+ 'arengibook.table.settings.colAll': 'Tout afficher',
41
+ 'arengibook.table.settings.colNone': 'Tout masquer sauf la première',
39
42
  'arengibook.table.settings.colFreeze': 'Geler',
40
43
  'arengibook.table.settings.searchColumns': 'Chercher une colonne…',
41
44
  'arengibook.table.settings.freeze': 'Geler cette colonne à gauche',
@@ -84,6 +87,7 @@ var MESSAGES = {
84
87
  en: {
85
88
  'arengibook.common.save': 'Save',
86
89
  'arengibook.common.cancel': 'Cancel',
90
+ 'arengibook.common.close': 'Close',
87
91
  'arengibook.table.toolbar.search': 'Search…',
88
92
  'arengibook.table.filter.clearAll': 'Clear all filters',
89
93
  'arengibook.table.selection.onSelection': 'On the selection',
@@ -107,6 +111,8 @@ var MESSAGES = {
107
111
  'arengibook.table.settings.fitColumn': 'Fit to content width',
108
112
  'arengibook.table.settings.hideColumn': 'Hide this column',
109
113
  'arengibook.table.settings.colVisible': 'Show',
114
+ 'arengibook.table.settings.colAll': 'Show all',
115
+ 'arengibook.table.settings.colNone': 'Hide all but the first',
110
116
  'arengibook.table.settings.colFreeze': 'Freeze',
111
117
  'arengibook.table.settings.searchColumns': 'Find a column…',
112
118
  'arengibook.table.settings.freeze': 'Freeze this column to the left',
@@ -155,6 +161,7 @@ var MESSAGES = {
155
161
  es: {
156
162
  'arengibook.common.save': 'Guardar',
157
163
  'arengibook.common.cancel': 'Cancelar',
164
+ 'arengibook.common.close': 'Cerrar',
158
165
  'arengibook.table.toolbar.search': 'Buscar…',
159
166
  'arengibook.table.filter.clearAll': 'Borrar todos los filtros',
160
167
  'arengibook.table.selection.onSelection': 'Sobre la selección',
@@ -178,6 +185,8 @@ var MESSAGES = {
178
185
  'arengibook.table.settings.fitColumn': 'Ajustar al ancho del contenido',
179
186
  'arengibook.table.settings.hideColumn': 'Ocultar esta columna',
180
187
  'arengibook.table.settings.colVisible': 'Mostrar',
188
+ 'arengibook.table.settings.colAll': 'Mostrar todo',
189
+ 'arengibook.table.settings.colNone': 'Ocultar todo excepto la primera',
181
190
  'arengibook.table.settings.colFreeze': 'Fijar',
182
191
  'arengibook.table.settings.searchColumns': 'Buscar una columna…',
183
192
  'arengibook.table.settings.freeze': 'Fijar esta columna a la izquierda',
@@ -226,6 +235,7 @@ var MESSAGES = {
226
235
  de: {
227
236
  'arengibook.common.save': 'Speichern',
228
237
  'arengibook.common.cancel': 'Abbrechen',
238
+ 'arengibook.common.close': 'Schließen',
229
239
  'arengibook.table.toolbar.search': 'Suchen…',
230
240
  'arengibook.table.filter.clearAll': 'Alle Filter löschen',
231
241
  'arengibook.table.selection.onSelection': 'Für die Auswahl',
@@ -249,6 +259,8 @@ var MESSAGES = {
249
259
  'arengibook.table.settings.fitColumn': 'An Inhaltsbreite anpassen',
250
260
  'arengibook.table.settings.hideColumn': 'Diese Spalte ausblenden',
251
261
  'arengibook.table.settings.colVisible': 'Anzeigen',
262
+ 'arengibook.table.settings.colAll': 'Alle anzeigen',
263
+ 'arengibook.table.settings.colNone': 'Alle außer der ersten ausblenden',
252
264
  'arengibook.table.settings.colFreeze': 'Fixieren',
253
265
  'arengibook.table.settings.searchColumns': 'Spalte suchen…',
254
266
  'arengibook.table.settings.freeze': 'Diese Spalte links fixieren',
@@ -48136,7 +48148,7 @@ if (typeof window !== 'undefined') {
48136
48148
  window.ArengibookToastPresets = ToastPresets;
48137
48149
  }
48138
48150
 
48139
- var css_248z$3 = "@charset \"UTF-8\";\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: scale(0.85);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n@keyframes toastSlideIn {\n from {\n opacity: 0;\n transform: translateX(40px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes toastIconPop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 60% {\n transform: scale(1.2);\n opacity: 1;\n }\n 100% {\n transform: scale(1);\n }\n}\n@keyframes toastTextSlide {\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n.p-paginator {\n font-size: 14px;\n}\n.p-paginator .p-paginator-first,\n.p-paginator .p-paginator-prev,\n.p-paginator .p-paginator-next,\n.p-paginator .p-paginator-last,\n.p-paginator .p-paginator-pages .p-paginator-page,\n.p-paginator .p-paginator-current,\n.p-paginator .p-dropdown .p-dropdown-label,\n.p-paginator .p-dropdown-item,\n.p-paginator .p-paginator-page-input .p-inputtext {\n font-size: 14px;\n}\n\n.p-datatable .p-datatable-tbody > tr.air-row--selected > td {\n background-color: #f0fdf8 !important;\n}\n\ntable.ab-table {\n font-family: \"Roboto\", sans-serif;\n table-layout: fixed;\n}\ntable.ab-table thead {\n border: 1px solid #e0e3e8;\n}\ntable.ab-table thead th {\n position: sticky;\n top: 0;\n z-index: 800;\n background-color: #e8eaee;\n border-bottom: 1px solid #e0e3e8;\n padding-top: 10px;\n padding-bottom: 10px;\n font-size: 14px;\n}\ntable.ab-table tbody tr {\n background-color: transparent;\n}\n\n.ab-table td {\n overflow: hidden;\n padding-top: 8px;\n padding-bottom: 8px;\n text-align: left;\n border-right: 1px solid #e8eaee;\n border-bottom: 1px solid #e8eaee;\n}\n\n.ab-table .cell-text {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n\n.p-datatable-scrollable .p-datatable-tbody > tr > td.p-frozen-column {\n z-index: 1;\n background: #fff !important;\n}\n\n.p-datatable-scrollable .p-datatable-tbody > tr:hover > td.p-frozen-column {\n background: #f4f5f6 !important;\n}\n\ntable.ab-table thead th.p-frozen-column:not(.row-actions-cell) {\n background: #fff !important;\n}\n\n.p-datatable-scrollable .p-datatable-tbody > tr > td.p-frozen-column.row-actions-cell,\n.p-datatable-scrollable .p-datatable-tbody > tr.p-row-odd > td.p-frozen-column.row-actions-cell {\n background: #ffffff !important;\n box-shadow: none !important;\n padding: 0 !important;\n border-right: 1px solid #e8eaee !important;\n}\n\n.p-datatable .p-datatable-thead > tr > th.row-actions-cell {\n background: #e8eaee !important;\n border: none !important;\n border-right: 1px solid #e0e3e8 !important;\n box-shadow: none !important;\n padding: 0 !important;\n}\n\ntable.ab-table td input.p-inputtext {\n box-sizing: border-box;\n min-height: 26px;\n padding: 0 8px;\n border: 1px solid #e0e3e8;\n border-radius: 3px;\n background: #ffffff;\n box-shadow: none;\n font-family: inherit;\n font-size: 13px;\n font-weight: 300;\n}\ntable.ab-table td input.p-inputtext:enabled:hover {\n border-color: #c8cdd6;\n}\ntable.ab-table td input.p-inputtext:enabled:focus {\n border-color: #3f3f3f;\n box-shadow: none;\n outline: none;\n}\n\n.ab-table .p-cell-editing input,\n.ab-table .p-cell-editing .p-inputtext,\n.ab-table .p-cell-editing .p-dropdown,\n.ab-table .p-cell-editing .p-multiselect,\n.ab-table .p-cell-editing .p-calendar {\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n}\n\n.ab-table .cell-devise {\n display: flex;\n flex-direction: column;\n gap: 1.4px;\n font-size: 12.25px;\n}\n.ab-table .cell-devise--editable {\n cursor: pointer;\n}\n.ab-table .cell-devise--empty {\n display: block;\n width: 100%;\n height: 21px;\n cursor: pointer;\n}\n.ab-table .cell-devise .span-sub {\n font-size: 10.5px;\n color: #71717a;\n}\n\n.ab-table .devise-editor {\n display: flex;\n flex-direction: column;\n gap: 5.6px;\n padding: 3.5px 0;\n}\n.ab-table .devise-editor-fields {\n display: flex;\n flex-direction: column;\n gap: 5.6px;\n width: 100%;\n position: relative;\n}\n.ab-table .devise-editor-fields .p-dropdown-panel {\n position: absolute;\n z-index: 1000;\n top: 100%;\n left: 0;\n width: 100%;\n}\n.ab-table .devise-editor-save {\n align-self: flex-end;\n}\n\n.ab-table .p-cell-editing .devise-editor-fields input,\n.ab-table .p-cell-editing .devise-editor-fields .p-inputtext,\n.ab-table .p-cell-editing .devise-editor-fields .p-dropdown {\n width: 100%;\n min-width: 0;\n}\n\n.ab-table .select-editor .p-dropdown-label > div {\n min-width: 0;\n}\n.ab-table .select-editor .dd-color-badge.is-selected {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ab-table .select-editor .p-multiselect .p-multiselect-label-container {\n margin-right: 1.75rem;\n}\n\n.ab-table .div-col-select .ab-color-badge.is-selected,\n.ab-table .div-col-select-multiple .ab-color-badge.is-selected {\n animation: none;\n}\n.ab-table .div-col-select .ab-chips-lecture,\n.ab-table .div-col-select .p-multiselect .p-multiselect-label,\n.ab-table .div-col-select .p-dropdown .p-dropdown-label,\n.ab-table .div-col-select-multiple .ab-chips-lecture,\n.ab-table .div-col-select-multiple .p-multiselect .p-multiselect-label,\n.ab-table .div-col-select-multiple .p-dropdown .p-dropdown-label {\n overflow: clip visible !important;\n}\n.ab-table .div-col-select > div:not(.select-editor),\n.ab-table .div-col-select-multiple > div:not(.select-editor) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n min-height: 40px !important;\n padding: 0 20px 0 12px;\n border: 1.5px solid transparent;\n}\n.ab-table .div-col-select > div:not(.select-editor):focus-visible,\n.ab-table .div-col-select-multiple > div:not(.select-editor):focus-visible {\n outline: 2px solid #3f3f3f;\n outline-offset: -2px;\n}\n.ab-table .div-col-select > div:not(.select-editor) > *,\n.ab-table .div-col-select-multiple > div:not(.select-editor) > * {\n min-width: 0;\n max-width: 100%;\n}\n.ab-table .div-col-select .p-dropdown-trigger,\n.ab-table .div-col-select .p-multiselect-trigger,\n.ab-table .div-col-select-multiple .p-dropdown-trigger,\n.ab-table .div-col-select-multiple .p-multiselect-trigger {\n display: none;\n}\n.ab-table .div-col-select [data-pc-section=clearicon],\n.ab-table .div-col-select-multiple [data-pc-section=clearicon] {\n right: 12px;\n opacity: 0;\n transition: opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-table .div-col-select .ab-chips-lecture,\n.ab-table .div-col-select-multiple .ab-chips-lecture {\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n gap: 6px;\n width: 100%;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n}\n.ab-table .div-col-select .ab-chip-lecture,\n.ab-table .div-col-select-multiple .ab-chip-lecture {\n padding: 4px 4px 4px 8px;\n gap: 2px;\n margin: 0;\n flex: 0 1 auto;\n width: max-content;\n min-width: 0;\n}\n.ab-table .div-col-select .p-multiselect .p-multiselect-label-container,\n.ab-table .div-col-select-multiple .p-multiselect .p-multiselect-label-container {\n margin-right: 34px;\n}\n.ab-table .div-col-select .dropdown-container .p-dropdown,\n.ab-table .div-col-select .multiselect-container .p-multiselect,\n.ab-table .div-col-select-multiple .dropdown-container .p-dropdown,\n.ab-table .div-col-select-multiple .multiselect-container .p-multiselect {\n border-color: transparent;\n transition: border-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-table .div-col-select .p-dropdown.p-focus,\n.ab-table .div-col-select .p-multiselect.p-focus,\n.ab-table .div-col-select-multiple .p-dropdown.p-focus,\n.ab-table .div-col-select-multiple .p-multiselect.p-focus {\n border-color: #3f3f3f;\n}\n.ab-table .div-col-select .p-dropdown.p-focus [data-pc-section=clearicon],\n.ab-table .div-col-select .p-multiselect.p-focus [data-pc-section=clearicon],\n.ab-table .div-col-select-multiple .p-dropdown.p-focus [data-pc-section=clearicon],\n.ab-table .div-col-select-multiple .p-multiselect.p-focus [data-pc-section=clearicon] {\n opacity: 1;\n}\n\n.ab-table .div-col-select-multiple > div:not(.select-editor) {\n padding-right: 46px;\n}\n\n.p-datatable .p-datatable-tbody > tr > td:hover .div-col-select .dropdown-container .p-dropdown,\n.p-datatable .p-datatable-tbody > tr > td:hover .div-col-select-multiple .multiselect-container .p-multiselect {\n border-color: #c8cdd6;\n}\n.p-datatable .p-datatable-tbody > tr > td:hover .div-col-select [data-pc-section=clearicon],\n.p-datatable .p-datatable-tbody > tr > td:hover .div-col-select-multiple [data-pc-section=clearicon] {\n opacity: 1;\n}\n\n.ab-table .doc-cell-empty {\n color: #aaa;\n font-size: 11.9px;\n}\n\n.ab-table .doc-cell {\n display: flex;\n flex-direction: column;\n gap: 3.5px;\n min-width: 0;\n overflow: hidden;\n}\n.ab-table .doc-cell-summary {\n display: flex;\n align-items: center;\n gap: 4.9px;\n font-size: 12.25px;\n min-width: 0;\n}\n.ab-table .doc-cell-summary .pi-paperclip {\n color: #71717a;\n font-size: 11.2px;\n flex-shrink: 0;\n}\n.ab-table .doc-cell-summary span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n.ab-table .doc-cell-list {\n display: flex;\n flex-direction: column;\n gap: 2.1px;\n padding-left: 15.4px;\n font-size: 11.2px;\n}\n.ab-table .doc-cell-list div {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ab-table .doc-cell-list a {\n color: #3b82f6;\n text-decoration: none;\n}\n.ab-table .doc-cell-list a:hover {\n text-decoration: underline;\n}\n\n.ab-table .doc-editor {\n display: flex;\n flex-direction: column;\n gap: 5.6px;\n padding: 3.5px 0;\n}\n.ab-table .doc-editor-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 11.2px;\n}\n.ab-table .doc-editor-table td {\n padding: 2.8px 4.9px;\n vertical-align: middle;\n}\n.ab-table .doc-editor-table td a {\n color: #3b82f6;\n text-decoration: none;\n word-break: break-all;\n}\n.ab-table .doc-editor-table td a:hover {\n text-decoration: underline;\n}\n.ab-table .doc-editor-table td:last-child {\n width: 28px;\n text-align: center;\n}\n.ab-table .doc-editor-add {\n display: inline-flex;\n align-items: center;\n gap: 4.2px;\n cursor: pointer;\n align-self: center;\n}\n\n.ab-table .ab-titre-box {\n overflow: hidden;\n min-width: 0;\n}\n\n.ab-table .table-item-title {\n display: -webkit-box !important;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--ab-title-lines, 1);\n line-height: 16px;\n min-width: 0 !important;\n white-space: normal;\n overflow-wrap: anywhere;\n overflow: hidden;\n max-height: var(--ab-content-max, none);\n}\n\n.p-datatable .p-column-header-content {\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n min-width: 0;\n padding: 0 1rem;\n overflow: hidden;\n container-type: inline-size;\n}\n\n.p-datatable .p-column-header-content .p-column-title {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.p-datatable .p-column-header-content [data-pc-section=sort] {\n flex: 0 0 auto;\n}\n\n@container (max-width: 77px) {\n .p-datatable .p-column-header-content [data-pc-section=sort] {\n display: none;\n }\n}\n.ab-table .tab_label {\n display: inline-block;\n padding: 5px 10px;\n font-size: 14px;\n font-weight: 600;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n border-radius: 5px;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4705882353);\n height: initial;\n}\n.ab-table .tab_label .tab_label-clear {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n height: 14px;\n min-height: 0;\n margin-left: 3px;\n margin-right: -3px;\n padding: 0;\n border: none;\n border-radius: 3px;\n background: none;\n color: inherit;\n opacity: 0.55;\n cursor: pointer;\n transition: opacity 0.12s, background-color 0.12s;\n}\n.ab-table .tab_label .tab_label-clear:hover, .ab-table .tab_label .tab_label-clear:focus-visible {\n outline: none;\n opacity: 1;\n background: rgba(0, 0, 0, 0.14);\n}\n\n.ab-table .badge,\n.ab-select-badge {\n padding: 8px 12px;\n border-radius: 5px;\n height: auto;\n margin: 2px;\n font-weight: 400;\n box-shadow: 2px 4px 5px grey;\n white-space: inherit;\n min-width: 90px;\n}\n.ab-table .badge:not(.badge-small),\n.ab-select-badge:not(.badge-small) {\n width: 100%;\n}\n\ntable.ab-table a.table-item-title {\n color: #2563eb;\n font-weight: 500;\n text-decoration: none;\n}\ntable.ab-table a.table-item-title:hover {\n color: #1d4ed8;\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n.ab-table .RiskNumber-table div {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ab-table .RiskNumber-table div span {\n width: 30px;\n height: 30px;\n min-width: 30px;\n min-height: 30px;\n max-width: 30px;\n max-height: 30px;\n border-radius: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.ab-table .RiskLabel-table .etiquetteMatrix-risque {\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n min-height: 26px;\n width: fit-content;\n max-width: 190px;\n display: flex;\n justify-content: flex-start;\n border-radius: 3px;\n background-color: #fff;\n color: black;\n margin: 0;\n padding: 0;\n border: 0;\n}\n.ab-table .RiskLabel-table .etiquetteMatrix-risque .matrix-RisqueLabelColor {\n min-width: 20px;\n max-width: 20px;\n margin-right: 5px;\n border-right: 1px solid rgba(0, 0, 0, 0.3607843137);\n border-radius: 3px 0 0 3px;\n}\n.ab-table .RiskLabel-table .etiquetteMatrix-risque .matrix-RisqueLabel {\n font-size: 13px;\n font-weight: 300;\n padding: 3px 10px 3px 5px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n display: flex;\n align-items: center;\n}\n.ab-table .RiskLabel-table .etiquetteMatrix-risque .matrix-RisqueLabel > p {\n margin: 0;\n display: inline;\n font: inherit;\n}\n\n.ab-table .RiskOwner-table .risk_owner {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: max-content;\n}\n.ab-table .RiskOwner-table .risk_owner a {\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4705882353);\n padding: 5px 10px;\n border-radius: 5px;\n background-color: white;\n opacity: 1;\n margin: 2px;\n position: relative;\n}\n.ab-table .RiskOwner-table .risk_owner a:hover {\n z-index: 9999;\n}\n\n.ab-table .limite_txt_table {\n min-width: 0 !important;\n max-width: 100% !important;\n min-height: 0;\n max-height: var(--ab-content-max, none);\n margin: 0;\n overflow: hidden;\n text-align: left;\n white-space: normal;\n overflow-wrap: anywhere;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--ab-html-lines, none);\n line-height: 17px;\n font-size: 14px;\n}\n.ab-table .limite_txt_table p {\n line-height: 17px;\n font-size: 14px;\n margin: 0;\n}\n.ab-table .limite_txt_table p,\n.ab-table .limite_txt_table div,\n.ab-table .limite_txt_table ul,\n.ab-table .limite_txt_table ol,\n.ab-table .limite_txt_table li,\n.ab-table .limite_txt_table blockquote,\n.ab-table .limite_txt_table h1,\n.ab-table .limite_txt_table h2,\n.ab-table .limite_txt_table h3,\n.ab-table .limite_txt_table h4,\n.ab-table .limite_txt_table h5,\n.ab-table .limite_txt_table h6 {\n display: inline;\n margin: 0;\n padding: 0;\n font-size: 14px;\n line-height: 17px;\n}\n.ab-table .limite_txt_table h1,\n.ab-table .limite_txt_table h2,\n.ab-table .limite_txt_table h3,\n.ab-table .limite_txt_table h4,\n.ab-table .limite_txt_table h5,\n.ab-table .limite_txt_table h6,\n.ab-table .limite_txt_table strong,\n.ab-table .limite_txt_table b {\n font-weight: 600;\n}\n.ab-table .limite_txt_table p::after,\n.ab-table .limite_txt_table div::after,\n.ab-table .limite_txt_table blockquote::after,\n.ab-table .limite_txt_table h1::after,\n.ab-table .limite_txt_table h2::after,\n.ab-table .limite_txt_table h3::after,\n.ab-table .limite_txt_table h4::after,\n.ab-table .limite_txt_table h5::after,\n.ab-table .limite_txt_table h6::after {\n content: \" \";\n}\n.ab-table .limite_txt_table li + li::before {\n content: \" · \";\n color: #6b7280;\n}\n\n.ab-table .action-picto .picto {\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4705882353);\n padding: 5px 10px;\n border-radius: 5px;\n margin: 5px;\n}\n\n.ab-table .RiskClusters-table .RiskClusters {\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n padding: 5px 19px;\n background-color: rgba(255, 255, 255, 0.5098039216);\n border-radius: 5px;\n opacity: 1;\n position: relative;\n margin: 5px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ab-table .RiskClusters-table .RiskClusters .material-icons {\n text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3137254902);\n}\n\n.ab-table .progress_bar_menu {\n position: relative;\n height: 20px;\n margin: 0;\n}\n\n.ab-table .progress_bar_menu_black {\n width: 100%;\n position: absolute;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n height: 6px;\n background-color: #b0bec5;\n border-radius: 3px;\n text-align: left;\n}\n\n.ab-table .progress_bar_menu_load {\n border-radius: 3px;\n height: 6px;\n background-color: #136b89;\n}\n\n.ab-table .progress_bar_menu_info {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n z-index: 1;\n padding: 1px 7px;\n border: 1px solid #e0e3e8;\n border-radius: 999px;\n background: #ffffff;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n color: #3f535f;\n font-weight: bold;\n font-size: 11px;\n line-height: 1.45;\n white-space: nowrap;\n}\n.ab-table .progress_bar_menu_info a {\n color: inherit;\n text-decoration: none;\n}\n\n.ab-table .div-col:not(.div-col-select):not(.div-col-select-multiple) {\n max-height: var(--ab-content-max, none);\n overflow: clip;\n overflow-clip-margin: 6px;\n}\n\n.ab-table .ab-cell-scroll {\n max-height: var(--ab-cell-max, none);\n overflow-y: auto;\n}\n\n.ab-table .tab_label {\n max-width: 100%;\n}\n\ntable.ab-table thead th {\n border-right: 1px solid #e0e3e8;\n}\ntable.ab-table thead th:last-child {\n border-right: 0;\n}\n\ntable.ab-table .p-column-resizer {\n width: 15px;\n cursor: col-resize;\n border: 0;\n height: auto;\n top: 0;\n bottom: -1px;\n}\n\ntable.ab-table thead th:not(.row-actions-cell):not(.p-filter-column) {\n overflow: visible;\n padding-left: 0;\n padding-right: 0;\n}\n\ntable.ab-table thead th:nth-child(1) {\n z-index: 839;\n}\n\ntable.ab-table thead th:nth-child(2) {\n z-index: 838;\n}\n\ntable.ab-table thead th:nth-child(3) {\n z-index: 837;\n}\n\ntable.ab-table thead th:nth-child(4) {\n z-index: 836;\n}\n\ntable.ab-table thead th:nth-child(5) {\n z-index: 835;\n}\n\ntable.ab-table thead th:nth-child(6) {\n z-index: 834;\n}\n\ntable.ab-table thead th:nth-child(7) {\n z-index: 833;\n}\n\ntable.ab-table thead th:nth-child(8) {\n z-index: 832;\n}\n\ntable.ab-table thead th:nth-child(9) {\n z-index: 831;\n}\n\ntable.ab-table thead th:nth-child(10) {\n z-index: 830;\n}\n\ntable.ab-table thead th:nth-child(11) {\n z-index: 829;\n}\n\ntable.ab-table thead th:nth-child(12) {\n z-index: 828;\n}\n\ntable.ab-table thead th:nth-child(13) {\n z-index: 827;\n}\n\ntable.ab-table thead th:nth-child(14) {\n z-index: 826;\n}\n\ntable.ab-table thead th:nth-child(15) {\n z-index: 825;\n}\n\ntable.ab-table thead th:nth-child(16) {\n z-index: 824;\n}\n\ntable.ab-table thead th:nth-child(17) {\n z-index: 823;\n}\n\ntable.ab-table thead th:nth-child(18) {\n z-index: 822;\n}\n\ntable.ab-table thead th:nth-child(19) {\n z-index: 821;\n}\n\ntable.ab-table thead th:nth-child(20) {\n z-index: 820;\n}\n\ntable.ab-table thead th:nth-child(21) {\n z-index: 819;\n}\n\ntable.ab-table thead th:nth-child(22) {\n z-index: 818;\n}\n\ntable.ab-table thead th:nth-child(23) {\n z-index: 817;\n}\n\ntable.ab-table thead th:nth-child(24) {\n z-index: 816;\n}\n\ntable.ab-table thead th:nth-child(25) {\n z-index: 815;\n}\n\ntable.ab-table thead th:nth-child(26) {\n z-index: 814;\n}\n\ntable.ab-table thead th:nth-child(27) {\n z-index: 813;\n}\n\ntable.ab-table thead th:nth-child(28) {\n z-index: 812;\n}\n\ntable.ab-table thead th:nth-child(29) {\n z-index: 811;\n}\n\ntable.ab-table thead th:nth-child(30) {\n z-index: 810;\n}\n\ntable.ab-table thead th:nth-child(31) {\n z-index: 809;\n}\n\ntable.ab-table thead th:nth-child(32) {\n z-index: 808;\n}\n\ntable.ab-table thead th:nth-child(33) {\n z-index: 807;\n}\n\ntable.ab-table thead th:nth-child(34) {\n z-index: 806;\n}\n\ntable.ab-table thead th:nth-child(35) {\n z-index: 805;\n}\n\ntable.ab-table thead th:nth-child(36) {\n z-index: 804;\n}\n\ntable.ab-table thead th:nth-child(37) {\n z-index: 803;\n}\n\ntable.ab-table thead th:nth-child(38) {\n z-index: 802;\n}\n\ntable.ab-table thead th:nth-child(39) {\n z-index: 801;\n}\n\ntable.ab-table thead th:nth-child(40) {\n z-index: 800;\n}\n\ntable.ab-table thead th:not(.row-actions-cell) .p-column-resizer::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: -15px;\n background: linear-gradient(to right, transparent calc(50% - 1px), #000 calc(50% - 1px), #000 calc(50% + 1px), transparent calc(50% + 1px));\n opacity: 0;\n transition: opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\ntable.ab-table thead th:not(.row-actions-cell) .p-column-resizer::after {\n content: \"\";\n position: absolute;\n top: 50%;\n right: calc(-16px - 2px * 0.5);\n width: 30px;\n height: 30px;\n transform: translateY(-50%);\n border-radius: 50%;\n background: #000 url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8'%3E%3Cpath d='M5 0v8L0 4z' fill='%23fff'/%3E%3Cpath d='M11 0v8l5-4z' fill='%23fff'/%3E%3C/svg%3E\") center/16px 8px no-repeat;\n opacity: 0;\n transform: translateY(-50%) scale(0.35);\n transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1), transform 240ms cubic-bezier(0.34, 1.3, 0.64, 1);\n}\n\ntable.ab-table thead th:not(.row-actions-cell):hover .p-column-resizer::before {\n opacity: 1;\n}\n\ntable.ab-table thead th:not(.row-actions-cell) .p-column-resizer:hover::before {\n opacity: 0;\n}\n\ntable.ab-table thead th:not(.row-actions-cell) .p-column-resizer:hover::after {\n opacity: 1;\n transform: translateY(-50%) scale(1);\n}\n\n.p-datatable.p-component .p-column-resizer-helper {\n width: 2px;\n top: var(--ab-th-top, 0px) !important;\n height: var(--ab-trait-h, calc(100% - var(--ab-th-top, 0px))) !important;\n background: transparent;\n pointer-events: none;\n transition: opacity 300ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-datatable.p-component .p-column-resizer-helper::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: #000;\n transform-origin: center calc(var(--ab-thead-h, 42px) / 2);\n transform: scaleY(1);\n transition: transform 300ms cubic-bezier(0.2, 0.75, 0.2, 1) 70ms, background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-datatable.p-component .p-column-resizer-helper.ab-resizer--masque {\n opacity: 0;\n}\n.p-datatable.p-component .p-column-resizer-helper.ab-resizer--masque::after {\n transform: scaleY(0);\n transition-delay: 0s;\n}\n.p-datatable.p-component .p-column-resizer-helper::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 100%;\n width: 90px;\n pointer-events: none;\n opacity: 0;\n transition: opacity 160ms cubic-bezier(0.4, 0, 0.2, 1);\n background: linear-gradient(to left, color-mix(in srgb, #dc2626 13%, transparent), color-mix(in srgb, #dc2626 5%, transparent) 45%, transparent);\n}\n.p-datatable.p-component .p-column-resizer-helper.ab-resizer--butee::after {\n background: #dc2626;\n}\n.p-datatable.p-component .p-column-resizer-helper.ab-resizer--butee::before {\n opacity: 1;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .p-datatable.p-component .p-column-resizer-helper,\n .p-datatable.p-component .p-column-resizer-helper::before,\n .p-datatable.p-component .p-column-resizer-helper::after,\n table.ab-table thead th .p-column-resizer::before,\n table.ab-table thead th .p-column-resizer::after {\n transition: none;\n }\n table.ab-table thead th .p-column-resizer::after,\n table.ab-table thead th .p-column-resizer:hover::after {\n transform: translateY(-50%) scale(1);\n }\n .p-datatable.p-component .p-column-resizer-helper::after,\n .p-datatable.p-component .p-column-resizer-helper.ab-resizer--masque::after {\n transform: scaleY(1);\n }\n}\n.ab-row-resizer-helper {\n position: absolute;\n height: 1px;\n margin-top: calc(1px * -0.5);\n z-index: 10;\n pointer-events: none;\n transition: opacity 300ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-row-resizer-helper::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: #000;\n transform-origin: center center;\n transform: scaleX(1);\n transition: transform 300ms cubic-bezier(0.2, 0.75, 0.2, 1) 70ms;\n}\n.ab-row-resizer-helper.ab-resizer--masque {\n opacity: 0;\n}\n.ab-row-resizer-helper.ab-resizer--masque::after {\n transform: scaleX(0);\n transition-delay: 0s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ab-row-resizer-helper,\n .ab-row-resizer-helper::after {\n transition: none;\n }\n .ab-row-resizer-helper.ab-resizer--masque::after {\n transform: scaleX(1);\n }\n}\ntable.ab-table thead th {\n text-align: left;\n cursor: grab;\n}\ntable.ab-table thead th:active {\n cursor: grabbing;\n}\n\ntable.ab-table thead th [data-pc-section=sort] {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border-radius: 5px;\n background: #f4f5f6;\n color: #b0b8c4;\n cursor: pointer;\n transition: background-color 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\ntable.ab-table thead th [data-pc-section=sort]:hover {\n background: #e0e3e8;\n color: #1a1e26;\n}\ntable.ab-table thead th [data-pc-section=sort] .p-sortable-column-icon {\n margin: 0;\n background: none;\n}\n\ntable.ab-table thead th.p-highlight [data-pc-section=sort] {\n background: color-mix(in srgb, #3f3f3f 12%, transparent);\n color: #3f3f3f;\n}\n\n.p-datatable .p-datatable-tbody > tr:hover > td {\n background-color: #f4f5f6;\n}\n\n.p-datatable .p-datatable-tbody > tr:hover > td.ab-td--editable:hover {\n background-color: color-mix(in srgb, #c8cdd6 55%, #f4f5f6);\n}\n\n.p-datatable-scrollable .p-datatable-tbody > tr:hover > td.p-frozen-column:not(.row-actions-cell) {\n background: #f4f5f6 !important;\n}\n\n.ab-row-actions-menu {\n transform: translateY(-50%);\n}\n\n.ab-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-family: \"Roboto\", sans-serif;\n}\n\n.ab-toolbar__zone {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.ab-toolbar__rule {\n flex: 0 0 1px;\n width: 1px;\n height: 22px;\n background: #c8cdd6;\n margin: 0 2px;\n}\n\n.ab-toolbar__search {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #f4f5f6;\n border: 1px solid #e0e3e8;\n border-radius: 8px;\n padding: 7px 12px;\n transition: border-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-toolbar__search:hover {\n border-color: #c8cdd6;\n}\n.ab-toolbar__search:focus-within {\n border-color: #3f3f3f;\n}\n.ab-toolbar__search > i {\n color: #6b7280;\n font-size: 12px;\n}\n.ab-toolbar__search > i.pi-times {\n cursor: pointer;\n font-size: 10.5px;\n}\n.ab-toolbar__search input.p-inputtext {\n border: 0;\n background: transparent;\n outline: none;\n box-shadow: none;\n padding: 0;\n height: auto;\n font-size: 12.5px;\n width: 200px;\n}\n\n.ab-tbtn {\n font-family: \"Roboto\", sans-serif;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n height: 32px;\n padding: 0 9px;\n background: #ffffff;\n color: #1a1e26;\n border: 1px solid #e0e3e8;\n border-radius: 6px;\n font-size: 12.5px;\n cursor: pointer;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), border-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-tbtn .material-icons {\n font-size: 18px;\n line-height: 1;\n color: #6b7280;\n}\n.ab-tbtn:hover:not(:disabled) {\n border-color: #c8cdd6;\n background: #f4f5f6;\n}\n.ab-tbtn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.ab-picto-menu:disabled {\n opacity: 0.35;\n cursor: default;\n}\n\n.ab-tbtn--icon {\n width: 32px;\n padding: 0;\n}\n\n.ab-tbtn--primary {\n background: #3f3f3f;\n border-color: #3f3f3f;\n color: #ffffff;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n}\n.ab-tbtn--primary .material-icons {\n color: #ffffff;\n}\n.ab-tbtn--primary:hover:not(:disabled) {\n background: #1a1e26;\n border-color: #1a1e26;\n}\n\n.ab-tbtn--on {\n background: #e8eaee;\n border-color: #c8cdd6;\n}\n\n.ab-tbtn__chevron {\n font-size: 15px !important;\n margin-left: -2px;\n opacity: 0.7;\n}\n\n.ab-menu__item--danger {\n color: #dc2626;\n}\n.ab-menu__item--danger .material-icons {\n color: #dc2626;\n}\n.ab-menu__item--danger:hover:not(:disabled) {\n background: rgba(220, 38, 38, 0.08);\n}\n\n@keyframes abCountPulse {\n 0% {\n transform: scale(1);\n box-shadow: 0 0 0 0 rgba(63, 63, 63, 0.5);\n }\n 35% {\n transform: scale(1.28);\n box-shadow: 0 0 0 5px rgba(63, 63, 63, 0);\n }\n 100% {\n transform: scale(1);\n box-shadow: 0 0 0 0 rgba(63, 63, 63, 0);\n }\n}\n.ab-tbtn__count--pulse {\n animation: abCountPulse 420ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ab-tbtn__count--pulse {\n animation: none;\n }\n}\n.ab-tbtn__count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 17px;\n height: 17px;\n padding: 0 4px;\n border-radius: 9px;\n background: #3f3f3f;\n color: #ffffff;\n font-size: 10.5px;\n font-weight: 500;\n}\n\n.ab-toolbar__anchor {\n position: relative;\n display: inline-flex;\n}\n\n.ab-toolbar__pop {\n position: absolute;\n right: 0;\n top: calc(100% + 4px);\n z-index: 1000;\n background: #ffffff;\n border: 1px solid #e0e3e8;\n border-radius: 8px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1215686275), 0 2px 6px rgba(0, 0, 0, 0.2392156863);\n overflow: hidden;\n text-align: left;\n}\n\n.ab-menu {\n min-width: 208px;\n padding: 4px;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.ab-menu__item {\n font-family: \"Roboto\", sans-serif;\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 10px;\n background: none;\n border: 0;\n border-radius: 5px;\n cursor: pointer;\n font-size: 13px;\n color: #1a1e26;\n text-align: left;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-menu__item .material-icons {\n font-size: 16px;\n line-height: 1;\n color: #6b7280;\n flex: 0 0 16px;\n width: 16px;\n overflow: hidden;\n}\n.ab-menu__item:hover:not(:disabled) {\n background: #f4f5f6;\n}\n.ab-menu__item:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.ab-brain {\n width: 580px;\n font-size: 13px;\n color: #1a1e26;\n}\n\n.ab-brain__corps {\n display: flex;\n align-items: stretch;\n flex: 1 1 auto;\n min-height: 0;\n}\n\n.ab-brain__sec--cols {\n flex: 0 0 288px;\n border-right: 1px solid #e0e3e8;\n border-bottom: 0;\n}\n\n.ab-brain__reglages {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-width: 0;\n}\n.ab-brain__reglages .ab-brain__foot {\n margin-top: auto;\n}\n.ab-brain__reglages .ab-brain__sec:last-of-type {\n border-bottom: 0;\n}\n\n.ab-brain__head {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 11px 14px;\n background: #e8eaee;\n border-bottom: 1px solid #e0e3e8;\n font-weight: 500;\n font-size: 12.5px;\n}\n.ab-brain__head .material-icons {\n font-size: 17px;\n color: #6b7280;\n}\n\n.ab-brain__sec {\n border-bottom: 1px solid #e0e3e8;\n padding: 12px 14px;\n}\n.ab-brain__sec:last-child {\n border-bottom: 0;\n}\n\n.ab-brain__sec-head {\n display: flex;\n align-items: baseline;\n gap: 10px;\n margin-bottom: 10px;\n}\n.ab-brain__sec-head .ab-brain__title {\n margin-bottom: 0;\n}\n\n.ab-brain__reinit {\n margin-left: auto;\n display: inline-flex;\n align-items: center;\n gap: 3px;\n padding: 2px 4px;\n border: 0;\n border-radius: 4px;\n background: none;\n cursor: pointer;\n font-family: \"Roboto\", sans-serif;\n font-size: 10.5px;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: #6b7280;\n white-space: nowrap;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1), background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-brain__reinit .material-icons {\n font-size: 13px;\n}\n.ab-brain__reinit:hover {\n color: #dc2626;\n background: rgba(220, 38, 38, 0.08);\n}\n\n.ab-brain__title {\n font-size: 10.5px;\n font-weight: 500;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n color: #6b7280;\n margin-bottom: 10px;\n}\n\n.ab-brain__cols {\n max-height: 216px;\n overflow-y: auto;\n margin: 0 -4px;\n}\n.ab-brain__cols::-webkit-scrollbar {\n width: 8px;\n}\n.ab-brain__cols::-webkit-scrollbar-thumb {\n background: #c8cdd6;\n border-radius: 4px;\n}\n\n.ab-col-row {\n display: flex;\n align-items: center;\n gap: 9px;\n width: 100%;\n padding: 6px 8px;\n border: 0;\n border-radius: 5px;\n background: none;\n cursor: pointer;\n font-family: \"Roboto\", sans-serif;\n font-size: 13px;\n color: #1a1e26;\n text-align: left;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-col-row:hover {\n background: #f4f5f6;\n}\n.ab-col-row .ab-col-row__name {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ab-col-row:not(.is-on) .ab-col-row__name {\n color: #6b7280;\n}\n\n.ab-col-row__tick {\n flex: 0 0 15px;\n width: 15px;\n height: 15px;\n border: 1.5px solid #c8cdd6;\n border-radius: 3px;\n display: grid;\n place-items: center;\n}\n.ab-col-row__tick .material-icons {\n font-size: 13px;\n color: #ffffff;\n visibility: hidden;\n}\n.is-on .ab-col-row__tick {\n background: #3f3f3f;\n border-color: #3f3f3f;\n}\n.is-on .ab-col-row__tick .material-icons {\n visibility: visible;\n}\n\n.ab-seg {\n display: flex;\n background: #f4f5f6;\n border: 1px solid #e0e3e8;\n border-radius: 7px;\n padding: 2px;\n gap: 2px;\n}\n\n.ab-seg__opt {\n flex: 1;\n font-family: \"Roboto\", sans-serif;\n font-size: 11.5px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 5px 4px;\n border: 0;\n border-radius: 5px;\n background: transparent;\n color: #6b7280;\n cursor: pointer;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-seg__opt[aria-pressed=true] {\n background: #ffffff;\n color: #1a1e26;\n font-weight: 500;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n}\n\n.ab-switch-row {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 6px 0;\n border: 0;\n background: none;\n cursor: pointer;\n font-family: \"Roboto\", sans-serif;\n font-size: 13px;\n color: #1a1e26;\n text-align: left;\n}\n.ab-switch-row .ab-switch-row__label {\n flex: 1;\n}\n\n.ab-switch {\n position: relative;\n flex: 0 0 32px;\n width: 32px;\n height: 18px;\n border-radius: 9px;\n background: #c8cdd6;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-switch::after {\n content: \"\";\n position: absolute;\n top: 2px;\n left: 2px;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #ffffff;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.is-on .ab-switch {\n background: #3f3f3f;\n}\n.is-on .ab-switch::after {\n transform: translateX(14px);\n}\n\n.ab-brain__foot {\n padding: 10px 14px 12px;\n background: #f4f5f6;\n border-top: 1px solid #e0e3e8;\n}\n\n.ab-brain__reset {\n font-family: \"Roboto\", sans-serif;\n display: flex;\n align-items: center;\n gap: 7px;\n width: 100%;\n padding: 5px 0;\n background: none;\n border: 0;\n cursor: pointer;\n font-size: 12px;\n color: #dc2626;\n text-align: left;\n}\n.ab-brain__reset .material-icons {\n font-size: 15px;\n}\n.ab-brain__reset:hover {\n text-decoration: underline;\n}\n\n.ab-brain__reset--minor {\n color: #6b7280;\n font-size: 11.5px;\n padding: 3px 0 3px 22px;\n}\n\n.ab-brain__persist {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid #e0e3e8;\n font-size: 11px;\n color: #6b7280;\n}\n.ab-brain__persist .material-icons {\n font-size: 13px;\n}\n\n.ab-brain {\n max-height: min(72vh, 660px);\n display: flex;\n flex-direction: column;\n}\n\n.ab-brain__sec--cols {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n}\n\n.ab-brain__cols {\n max-height: none;\n flex: 1 1 auto;\n min-height: 120px;\n}\n\n.ab-brain__title-note {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n margin-left: 8px;\n letter-spacing: 0;\n color: #3f3f3f;\n}\n.ab-brain__title-note .material-icons {\n font-size: 13px;\n}\n\n.ab-brain__search {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 8px;\n padding: 5px 8px;\n background: #f4f5f6;\n border: 1px solid #e0e3e8;\n border-radius: 6px;\n transition: border-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-brain__search:focus-within {\n border-color: #3f3f3f;\n}\n.ab-brain__search > .material-icons {\n font-size: 15px;\n color: #6b7280;\n}\n.ab-brain__search input {\n flex: 1;\n min-width: 0;\n border: 0;\n background: transparent;\n outline: none;\n font-family: \"Roboto\", sans-serif;\n font-size: 12.5px;\n color: #1a1e26;\n}\n.ab-brain__search input::placeholder {\n color: #b0b8c4;\n}\n\n.ab-brain__cols-legende {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 9px 5px 8px;\n border-bottom: 1px solid #e0e3e8;\n margin-bottom: 4px;\n font-size: 9.5px;\n font-weight: 500;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: #6b7280;\n}\n\n.ab-brain__search-clear {\n display: inline-flex;\n padding: 0;\n border: 0;\n background: none;\n cursor: pointer;\n color: #6b7280;\n}\n.ab-brain__search-clear .material-icons {\n font-size: 14px;\n}\n.ab-brain__search-clear:hover {\n color: #1a1e26;\n}\n\n.ab-brain__vide {\n padding: 14px 8px;\n font-size: 12px;\n color: #6b7280;\n text-align: center;\n}\n\n.ab-col-row {\n padding: 0;\n background: none;\n}\n.ab-col-row:hover {\n background: #f4f5f6;\n}\n\n.ab-col-row__main {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 9px;\n padding: 6px 4px 6px 8px;\n border: 0;\n background: none;\n cursor: pointer;\n font-family: \"Roboto\", sans-serif;\n font-size: 13px;\n color: inherit;\n text-align: left;\n}\n\n.ab-col-row__pin {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n padding: 5px 7px;\n border: 0;\n border-radius: 5px;\n background: none;\n cursor: pointer;\n color: #6b7280;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1), background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-col-row__pin .material-icons {\n font-size: 16px;\n}\n.ab-col-row__pin:hover:not(:disabled) {\n color: #1a1e26;\n background: #e8eaee;\n}\n.ab-col-row__pin:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.ab-col-row.is-pinned .ab-col-row__pin {\n color: #3f3f3f;\n}\n.ab-col-row.is-pinned .ab-col-row__pin .material-icons {\n transform: rotate(45deg);\n}\n\n.ab-th {\n display: flex;\n align-items: center;\n gap: 2px;\n width: 100%;\n min-width: 0;\n}\n\n.ab-th__label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ab-th__btn,\n.ab-picto-menu {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n padding: 0;\n border: 0;\n border-radius: 4px;\n background: none;\n cursor: pointer;\n color: #6b7280;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1), background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-th__btn .material-icons,\n.ab-picto-menu .material-icons {\n font-size: 15px;\n}\n.ab-th__btn:hover,\n.ab-picto-menu:hover {\n color: #1a1e26;\n background: #ffffff;\n}\n\n@container (max-width: 77px) {\n .p-column-title {\n margin-left: -10px;\n margin-right: -10px;\n }\n .ab-th__btn {\n width: 18px;\n height: 18px;\n }\n .ab-th__btn .material-icons {\n font-size: 14px;\n }\n}\n.ab-menu__item.is-actif {\n background: rgba(63, 63, 63, 0.08);\n color: #1a1e26;\n font-weight: 500;\n}\n.ab-menu__item.is-actif .material-icons {\n color: #1a1e26;\n}\n.ab-menu__item.is-actif:hover {\n background: rgba(63, 63, 63, 0.14);\n}\n\n.ab-menu__item--gele .material-icons {\n transform: rotate(45deg);\n}\n\n.ab-menu__filet {\n height: 1px;\n margin: 3px 6px;\n background: #e0e3e8;\n}\n\ntable.ab-table thead th .p-column-header-content > [data-pc-section=sort] {\n display: none;\n}\n\n.ab-col-menu {\n right: auto;\n top: auto;\n z-index: 1200;\n}\n\n.ab-align--left .ab-table td {\n text-align: left;\n}\n.ab-align--left .ab-table td .div-col,\n.ab-align--left .ab-table td .div-col > * {\n justify-content: flex-start;\n}\n.ab-align--left .ab-th__label {\n text-align: left;\n}\n\n.ab-align--center .ab-table td {\n text-align: center;\n}\n.ab-align--center .ab-table td .div-col,\n.ab-align--center .ab-table td .div-col > * {\n justify-content: safe center;\n}\n.ab-align--center .ab-table td .div-col .limite_txt_table,\n.ab-align--center .ab-table td .div-col .cell-text,\n.ab-align--center .ab-table td .div-col .tab_label,\n.ab-align--center .ab-table td .div-col p,\n.ab-align--center .ab-table td .div-col ul,\n.ab-align--center .ab-table td .div-col li {\n text-align: left;\n}\n.ab-align--center .ab-th__label {\n text-align: center;\n}\n.ab-align--center .ab-table td.row-actions-cell {\n text-align: center;\n}\n\n.ab-checkbox {\n width: 16px;\n height: 16px;\n min-width: 16px;\n min-height: 16px;\n border: 1.5px solid #e0e3e8;\n border-radius: 3px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: #ffffff;\n color: #ffffff;\n font-size: 10px;\n cursor: pointer;\n transition: all 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-checkbox.checked, .ab-checkbox.p-highlight {\n background-color: #3f3f3f;\n border-color: #3f3f3f;\n}\n.ab-checkbox.partial {\n background: linear-gradient(to top right, #3f3f3f 50%, transparent 50%);\n border-color: #3f3f3f;\n}\n.ab-checkbox {\n margin: auto;\n padding: 0;\n}\n.ab-checkbox .material-icons {\n font-size: 12px;\n line-height: 1;\n color: #ffffff;\n}\n.ab-checkbox:hover:not(.checked):not(.partial) {\n border-color: #c8cdd6;\n}\n\n.ab-menu__titre {\n padding: 7px 10px 4px;\n font-size: 10px;\n font-weight: 500;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: #6b7280;\n}";
48151
+ var css_248z$3 = "@charset \"UTF-8\";\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: scale(0.85);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n@keyframes toastSlideIn {\n from {\n opacity: 0;\n transform: translateX(40px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes toastIconPop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 60% {\n transform: scale(1.2);\n opacity: 1;\n }\n 100% {\n transform: scale(1);\n }\n}\n@keyframes toastTextSlide {\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n.p-paginator {\n font-size: 14px;\n}\n.p-paginator .p-paginator-first,\n.p-paginator .p-paginator-prev,\n.p-paginator .p-paginator-next,\n.p-paginator .p-paginator-last,\n.p-paginator .p-paginator-pages .p-paginator-page,\n.p-paginator .p-paginator-current,\n.p-paginator .p-dropdown .p-dropdown-label,\n.p-paginator .p-dropdown-item,\n.p-paginator .p-paginator-page-input .p-inputtext {\n font-size: 14px;\n}\n\n.p-datatable .p-datatable-tbody > tr.air-row--selected > td {\n background-color: #f0fdf8 !important;\n}\n\ntable.ab-table {\n background-color: #ffffff;\n font-family: \"Roboto\", sans-serif;\n table-layout: fixed;\n}\ntable.ab-table thead {\n border: 1px solid #e0e3e8;\n}\ntable.ab-table thead th {\n position: sticky;\n top: 0;\n z-index: 800;\n background-color: #e8eaee;\n border-bottom: 1px solid #e0e3e8;\n padding-top: 10px;\n padding-bottom: 10px;\n font-size: 14px;\n}\ntable.ab-table tbody tr {\n background-color: transparent;\n}\n\n.ab-table td {\n overflow: hidden;\n padding-top: 8px;\n padding-bottom: 8px;\n text-align: left;\n border-right: 1px solid #e8eaee;\n border-bottom: 1px solid #e8eaee;\n}\n\n.ab-table .cell-text {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n\n.p-datatable-scrollable .p-datatable-tbody > tr > td.p-frozen-column {\n z-index: 1;\n background: #fff !important;\n}\n\n.p-datatable-scrollable .p-datatable-tbody > tr:has(> td.ab-td--editable):hover > td.p-frozen-column {\n background: #f4f5f6 !important;\n}\n\ntable.ab-table thead th.p-frozen-column:not(.row-actions-cell) {\n background: #fff !important;\n}\n\n.p-datatable-scrollable .p-datatable-tbody > tr > td.p-frozen-column.row-actions-cell,\n.p-datatable-scrollable .p-datatable-tbody > tr.p-row-odd > td.p-frozen-column.row-actions-cell {\n background: #ffffff !important;\n box-shadow: none !important;\n padding: 0 !important;\n border-right: 1px solid #e8eaee !important;\n}\n\n.p-datatable .p-datatable-thead > tr > th.row-actions-cell {\n background: #e8eaee !important;\n border: none !important;\n border-right: 1px solid #e0e3e8 !important;\n box-shadow: none !important;\n padding: 0 !important;\n}\n\ntable.ab-table td input.p-inputtext {\n box-sizing: border-box;\n min-height: 26px;\n padding: 0 8px;\n border: 1px solid #e0e3e8;\n border-radius: 3px;\n background: #ffffff;\n box-shadow: none;\n font-family: inherit;\n font-size: 13px;\n font-weight: 300;\n}\ntable.ab-table td input.p-inputtext:enabled:hover {\n border-color: #c8cdd6;\n}\ntable.ab-table td input.p-inputtext:enabled:focus {\n border-color: #3f3f3f;\n box-shadow: none;\n outline: none;\n}\n\n.ab-table .p-cell-editing input,\n.ab-table .p-cell-editing .p-inputtext,\n.ab-table .p-cell-editing .p-dropdown,\n.ab-table .p-cell-editing .p-multiselect,\n.ab-table .p-cell-editing .p-calendar {\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n}\n\n.ab-table .cell-devise {\n display: flex;\n flex-direction: column;\n gap: 1.4px;\n font-size: 12.25px;\n}\n.ab-table .cell-devise--editable {\n cursor: pointer;\n}\n.ab-table .cell-devise--empty {\n display: block;\n width: 100%;\n height: 21px;\n cursor: pointer;\n}\n.ab-table .cell-devise .span-sub {\n font-size: 10.5px;\n color: #71717a;\n}\n\n.ab-table .devise-editor {\n display: flex;\n flex-direction: column;\n gap: 5.6px;\n padding: 3.5px 0;\n}\n.ab-table .devise-editor-fields {\n display: flex;\n flex-direction: column;\n gap: 5.6px;\n width: 100%;\n position: relative;\n}\n.ab-table .devise-editor-fields .p-dropdown-panel {\n position: absolute;\n z-index: 1000;\n top: 100%;\n left: 0;\n width: 100%;\n}\n.ab-table .devise-editor-save {\n align-self: flex-end;\n}\n\n.ab-table .p-cell-editing .devise-editor-fields input,\n.ab-table .p-cell-editing .devise-editor-fields .p-inputtext,\n.ab-table .p-cell-editing .devise-editor-fields .p-dropdown {\n width: 100%;\n min-width: 0;\n}\n\n.ab-table .select-editor .p-dropdown-label > div {\n min-width: 0;\n}\n.ab-table .select-editor .dd-color-badge.is-selected {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ab-table .select-editor .p-multiselect .p-multiselect-label-container {\n margin-right: 1.75rem;\n}\n\n.ab-table .div-col-select .ab-color-badge.is-selected,\n.ab-table .div-col-select-multiple .ab-color-badge.is-selected {\n animation: none;\n}\n.ab-table .div-col-select .ab-chips-lecture,\n.ab-table .div-col-select .p-multiselect .p-multiselect-label,\n.ab-table .div-col-select .p-dropdown .p-dropdown-label,\n.ab-table .div-col-select-multiple .ab-chips-lecture,\n.ab-table .div-col-select-multiple .p-multiselect .p-multiselect-label,\n.ab-table .div-col-select-multiple .p-dropdown .p-dropdown-label {\n overflow: clip visible !important;\n}\n.ab-table .div-col-select > div:not(.select-editor),\n.ab-table .div-col-select-multiple > div:not(.select-editor) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n min-height: 40px !important;\n padding: 0 20px 0 12px;\n border: 1.5px solid transparent;\n}\n.ab-table .div-col-select > div:not(.select-editor):focus-visible,\n.ab-table .div-col-select-multiple > div:not(.select-editor):focus-visible {\n outline: 2px solid #3f3f3f;\n outline-offset: -2px;\n}\n.ab-table .div-col-select > div:not(.select-editor) > *,\n.ab-table .div-col-select-multiple > div:not(.select-editor) > * {\n min-width: 0;\n max-width: 100%;\n}\n.ab-table .div-col-select .p-dropdown-trigger,\n.ab-table .div-col-select .p-multiselect-trigger,\n.ab-table .div-col-select-multiple .p-dropdown-trigger,\n.ab-table .div-col-select-multiple .p-multiselect-trigger {\n display: none;\n}\n.ab-table .div-col-select [data-pc-section=clearicon],\n.ab-table .div-col-select-multiple [data-pc-section=clearicon] {\n right: 12px;\n opacity: 0;\n transition: opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-table .div-col-select .ab-chips-lecture,\n.ab-table .div-col-select-multiple .ab-chips-lecture {\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n gap: 6px;\n width: 100%;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n}\n.ab-table .div-col-select .ab-chip-lecture,\n.ab-table .div-col-select-multiple .ab-chip-lecture {\n padding: 4px 4px 4px 8px;\n gap: 2px;\n margin: 0;\n flex: 0 1 auto;\n width: max-content;\n min-width: 0;\n}\n.ab-table .div-col-select .ab-chip-lecture .p-multiselect-token-icon,\n.ab-table .div-col-select-multiple .ab-chip-lecture .p-multiselect-token-icon {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n}\n.ab-table .div-col-select .p-multiselect .p-multiselect-label-container,\n.ab-table .div-col-select-multiple .p-multiselect .p-multiselect-label-container {\n margin-right: 34px;\n}\n.ab-table .div-col-select .dropdown-container .p-dropdown,\n.ab-table .div-col-select .multiselect-container .p-multiselect,\n.ab-table .div-col-select-multiple .dropdown-container .p-dropdown,\n.ab-table .div-col-select-multiple .multiselect-container .p-multiselect {\n border-color: transparent;\n transition: border-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-table .div-col-select .p-dropdown.p-focus,\n.ab-table .div-col-select .p-multiselect.p-focus,\n.ab-table .div-col-select-multiple .p-dropdown.p-focus,\n.ab-table .div-col-select-multiple .p-multiselect.p-focus {\n border-color: #3f3f3f;\n}\n.ab-table .div-col-select .p-dropdown.p-focus [data-pc-section=clearicon],\n.ab-table .div-col-select .p-multiselect.p-focus [data-pc-section=clearicon],\n.ab-table .div-col-select-multiple .p-dropdown.p-focus [data-pc-section=clearicon],\n.ab-table .div-col-select-multiple .p-multiselect.p-focus [data-pc-section=clearicon] {\n opacity: 1;\n}\n\n.ab-table .div-col-select-multiple > div:not(.select-editor) {\n padding-right: 46px;\n}\n\n.p-datatable .p-datatable-tbody > tr > td:hover .div-col-select .dropdown-container .p-dropdown,\n.p-datatable .p-datatable-tbody > tr > td:hover .div-col-select-multiple .multiselect-container .p-multiselect {\n border-color: #c8cdd6;\n}\n.p-datatable .p-datatable-tbody > tr > td:hover .div-col-select [data-pc-section=clearicon],\n.p-datatable .p-datatable-tbody > tr > td:hover .div-col-select-multiple [data-pc-section=clearicon] {\n opacity: 1;\n}\n\n.ab-table .doc-cell-empty {\n color: #aaa;\n font-size: 11.9px;\n}\n\n.ab-table .doc-cell {\n display: flex;\n flex-direction: column;\n gap: 3.5px;\n min-width: 0;\n overflow: hidden;\n}\n.ab-table .doc-cell-summary {\n display: flex;\n align-items: center;\n gap: 4.9px;\n font-size: 12.25px;\n min-width: 0;\n}\n.ab-table .doc-cell-summary .pi-paperclip {\n color: #71717a;\n font-size: 11.2px;\n flex-shrink: 0;\n}\n.ab-table .doc-cell-summary span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n.ab-table .doc-cell-list {\n display: flex;\n flex-direction: column;\n gap: 2.1px;\n padding-left: 15.4px;\n font-size: 11.2px;\n}\n.ab-table .doc-cell-list div {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ab-table .doc-cell-list a {\n color: #3b82f6;\n text-decoration: none;\n}\n.ab-table .doc-cell-list a:hover {\n text-decoration: underline;\n}\n\n.ab-table .doc-editor {\n display: flex;\n flex-direction: column;\n gap: 5.6px;\n padding: 3.5px 0;\n}\n.ab-table .doc-editor-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 11.2px;\n}\n.ab-table .doc-editor-table td {\n padding: 2.8px 4.9px;\n vertical-align: middle;\n}\n.ab-table .doc-editor-table td a {\n color: #3b82f6;\n text-decoration: none;\n word-break: break-all;\n}\n.ab-table .doc-editor-table td a:hover {\n text-decoration: underline;\n}\n.ab-table .doc-editor-table td:last-child {\n width: 28px;\n text-align: center;\n}\n.ab-table .doc-editor-add {\n display: inline-flex;\n align-items: center;\n gap: 4.2px;\n cursor: pointer;\n align-self: center;\n}\n\n.ab-table .ab-titre-box {\n overflow: hidden;\n min-width: 0;\n}\n\n.ab-table .table-item-title {\n display: -webkit-box !important;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--ab-title-lines, 1);\n line-height: 16px;\n min-width: 0 !important;\n white-space: normal;\n overflow-wrap: anywhere;\n overflow: hidden;\n max-height: var(--ab-content-max, none);\n}\n\n.p-datatable .p-column-header-content {\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n min-width: 0;\n padding: 0 1rem;\n overflow: hidden;\n container-type: inline-size;\n}\n\n.p-datatable .p-column-header-content .p-column-title {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.p-datatable .p-column-header-content [data-pc-section=sort] {\n flex: 0 0 auto;\n}\n\n@container (max-width: 77px) {\n .p-datatable .p-column-header-content [data-pc-section=sort] {\n display: none;\n }\n}\n.ab-table .tab_label {\n display: inline-block;\n padding: 5px 10px;\n font-size: 14px;\n font-weight: 600;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n border-radius: 5px;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4705882353);\n height: initial;\n}\n.ab-table .tab_label .tab_label-clear {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n height: 14px;\n min-height: 0;\n margin-left: 3px;\n margin-right: -3px;\n padding: 0;\n border: none;\n border-radius: 3px;\n background: none;\n color: inherit;\n opacity: 0.55;\n cursor: pointer;\n transition: opacity 0.12s, background-color 0.12s;\n}\n.ab-table .tab_label .tab_label-clear:hover, .ab-table .tab_label .tab_label-clear:focus-visible {\n outline: none;\n opacity: 1;\n background: rgba(0, 0, 0, 0.14);\n}\n\n.ab-table .badge,\n.ab-select-badge {\n padding: 8px 12px;\n border-radius: 5px;\n height: auto;\n margin: 2px;\n font-weight: 400;\n box-shadow: 2px 4px 5px grey;\n white-space: inherit;\n min-width: 90px;\n}\n.ab-table .badge:not(.badge-small),\n.ab-select-badge:not(.badge-small) {\n width: 100%;\n}\n\ntable.ab-table a.table-item-title {\n color: #2563eb;\n font-weight: 500;\n text-decoration: none;\n}\ntable.ab-table a.table-item-title:hover {\n color: #1d4ed8;\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n.ab-table .RiskNumber-table div {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ab-table .RiskNumber-table div span {\n width: 30px;\n height: 30px;\n min-width: 30px;\n min-height: 30px;\n max-width: 30px;\n max-height: 30px;\n border-radius: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.ab-table .RiskLabel-table .etiquetteMatrix-risque {\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n min-height: 26px;\n width: fit-content;\n max-width: 190px;\n display: flex;\n justify-content: flex-start;\n border-radius: 3px;\n background-color: #fff;\n color: black;\n margin: 0;\n padding: 0;\n border: 0;\n}\n.ab-table .RiskLabel-table .etiquetteMatrix-risque .matrix-RisqueLabelColor {\n min-width: 20px;\n max-width: 20px;\n margin-right: 5px;\n border-right: 1px solid rgba(0, 0, 0, 0.3607843137);\n border-radius: 3px 0 0 3px;\n}\n.ab-table .RiskLabel-table .etiquetteMatrix-risque .matrix-RisqueLabel {\n font-size: 13px;\n font-weight: 300;\n padding: 3px 10px 3px 5px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n display: flex;\n align-items: center;\n}\n.ab-table .RiskLabel-table .etiquetteMatrix-risque .matrix-RisqueLabel > p {\n margin: 0;\n display: inline;\n font: inherit;\n}\n\n.ab-table .RiskOwner-table .risk_owner {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: max-content;\n}\n.ab-table .RiskOwner-table .risk_owner a {\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4705882353);\n padding: 5px 10px;\n border-radius: 5px;\n background-color: white;\n opacity: 1;\n margin: 2px;\n position: relative;\n}\n.ab-table .RiskOwner-table .risk_owner a:hover {\n z-index: 9999;\n}\n\n.ab-table .limite_txt_table {\n min-width: 0 !important;\n max-width: 100% !important;\n min-height: 0;\n max-height: var(--ab-content-max, none);\n margin: 0;\n overflow: hidden;\n text-align: left;\n white-space: normal;\n overflow-wrap: anywhere;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--ab-html-lines, none);\n line-height: 17px;\n font-size: 14px;\n}\n.ab-table .limite_txt_table p {\n line-height: 17px;\n font-size: 14px;\n margin: 0;\n}\n.ab-table .limite_txt_table p,\n.ab-table .limite_txt_table div,\n.ab-table .limite_txt_table ul,\n.ab-table .limite_txt_table ol,\n.ab-table .limite_txt_table li,\n.ab-table .limite_txt_table blockquote,\n.ab-table .limite_txt_table h1,\n.ab-table .limite_txt_table h2,\n.ab-table .limite_txt_table h3,\n.ab-table .limite_txt_table h4,\n.ab-table .limite_txt_table h5,\n.ab-table .limite_txt_table h6 {\n display: inline;\n margin: 0;\n padding: 0;\n font-size: 14px;\n line-height: 17px;\n}\n.ab-table .limite_txt_table h1,\n.ab-table .limite_txt_table h2,\n.ab-table .limite_txt_table h3,\n.ab-table .limite_txt_table h4,\n.ab-table .limite_txt_table h5,\n.ab-table .limite_txt_table h6,\n.ab-table .limite_txt_table strong,\n.ab-table .limite_txt_table b {\n font-weight: 600;\n}\n.ab-table .limite_txt_table p::after,\n.ab-table .limite_txt_table div::after,\n.ab-table .limite_txt_table blockquote::after,\n.ab-table .limite_txt_table h1::after,\n.ab-table .limite_txt_table h2::after,\n.ab-table .limite_txt_table h3::after,\n.ab-table .limite_txt_table h4::after,\n.ab-table .limite_txt_table h5::after,\n.ab-table .limite_txt_table h6::after {\n content: \" \";\n}\n.ab-table .limite_txt_table li + li::before {\n content: \" · \";\n color: #6b7280;\n}\n\n.ab-table .action-picto .picto {\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4705882353);\n padding: 5px 10px;\n border-radius: 5px;\n margin: 5px;\n}\n\n.ab-table .RiskClusters-table .RiskClusters {\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n padding: 5px 19px;\n background-color: rgba(255, 255, 255, 0.5098039216);\n border-radius: 5px;\n opacity: 1;\n position: relative;\n margin: 5px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ab-table .RiskClusters-table .RiskClusters .material-icons {\n text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3137254902);\n}\n\n.ab-table .progress_bar_menu {\n position: relative;\n height: 20px;\n margin: 0;\n}\n\n.ab-table .progress_bar_menu_black {\n width: 100%;\n position: absolute;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n height: 6px;\n background-color: #b0bec5;\n border-radius: 3px;\n text-align: left;\n}\n\n.ab-table .progress_bar_menu_load {\n border-radius: 3px;\n height: 6px;\n background-color: #136b89;\n}\n\n.ab-table .progress_bar_menu_info {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n z-index: 1;\n padding: 1px 7px;\n border: 1px solid #e0e3e8;\n border-radius: 999px;\n background: #ffffff;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n color: #3f535f;\n font-weight: bold;\n font-size: 11px;\n line-height: 1.45;\n white-space: nowrap;\n}\n.ab-table .progress_bar_menu_info a {\n color: inherit;\n text-decoration: none;\n}\n\n.ab-table .div-col {\n width: 100%;\n}\n\n.ab-table .div-col:not(.div-col-select):not(.div-col-select-multiple) {\n max-height: var(--ab-content-max, none);\n overflow: clip;\n overflow-clip-margin: 6px;\n}\n\n.ab-table .ab-cell-scroll {\n max-height: var(--ab-cell-max, none);\n overflow-y: auto;\n}\n\n.ab-table .tab_label {\n max-width: 100%;\n}\n\ntable.ab-table thead th {\n background-color: #e8eaee !important;\n border-right: 1px solid #e0e3e8 !important;\n border-bottom: 1px solid #e0e3e8 !important;\n}\ntable.ab-table thead th:hover {\n background-color: #e8eaee !important;\n}\ntable.ab-table thead th:last-child {\n border-right: 0 !important;\n}\n\ntable.ab-table .p-column-resizer {\n width: 15px;\n cursor: col-resize;\n border: 0;\n height: auto;\n top: 0;\n bottom: -1px;\n}\n\ntable.ab-table thead th:not(.row-actions-cell):not(:has(> .p-column-filter)) {\n overflow: visible;\n padding-left: 0;\n padding-right: 0;\n}\n\ntable.ab-table thead th:nth-child(1) {\n z-index: 839 !important;\n}\n\ntable.ab-table thead th:nth-child(2) {\n z-index: 838 !important;\n}\n\ntable.ab-table thead th:nth-child(3) {\n z-index: 837 !important;\n}\n\ntable.ab-table thead th:nth-child(4) {\n z-index: 836 !important;\n}\n\ntable.ab-table thead th:nth-child(5) {\n z-index: 835 !important;\n}\n\ntable.ab-table thead th:nth-child(6) {\n z-index: 834 !important;\n}\n\ntable.ab-table thead th:nth-child(7) {\n z-index: 833 !important;\n}\n\ntable.ab-table thead th:nth-child(8) {\n z-index: 832 !important;\n}\n\ntable.ab-table thead th:nth-child(9) {\n z-index: 831 !important;\n}\n\ntable.ab-table thead th:nth-child(10) {\n z-index: 830 !important;\n}\n\ntable.ab-table thead th:nth-child(11) {\n z-index: 829 !important;\n}\n\ntable.ab-table thead th:nth-child(12) {\n z-index: 828 !important;\n}\n\ntable.ab-table thead th:nth-child(13) {\n z-index: 827 !important;\n}\n\ntable.ab-table thead th:nth-child(14) {\n z-index: 826 !important;\n}\n\ntable.ab-table thead th:nth-child(15) {\n z-index: 825 !important;\n}\n\ntable.ab-table thead th:nth-child(16) {\n z-index: 824 !important;\n}\n\ntable.ab-table thead th:nth-child(17) {\n z-index: 823 !important;\n}\n\ntable.ab-table thead th:nth-child(18) {\n z-index: 822 !important;\n}\n\ntable.ab-table thead th:nth-child(19) {\n z-index: 821 !important;\n}\n\ntable.ab-table thead th:nth-child(20) {\n z-index: 820 !important;\n}\n\ntable.ab-table thead th:nth-child(21) {\n z-index: 819 !important;\n}\n\ntable.ab-table thead th:nth-child(22) {\n z-index: 818 !important;\n}\n\ntable.ab-table thead th:nth-child(23) {\n z-index: 817 !important;\n}\n\ntable.ab-table thead th:nth-child(24) {\n z-index: 816 !important;\n}\n\ntable.ab-table thead th:nth-child(25) {\n z-index: 815 !important;\n}\n\ntable.ab-table thead th:nth-child(26) {\n z-index: 814 !important;\n}\n\ntable.ab-table thead th:nth-child(27) {\n z-index: 813 !important;\n}\n\ntable.ab-table thead th:nth-child(28) {\n z-index: 812 !important;\n}\n\ntable.ab-table thead th:nth-child(29) {\n z-index: 811 !important;\n}\n\ntable.ab-table thead th:nth-child(30) {\n z-index: 810 !important;\n}\n\ntable.ab-table thead th:nth-child(31) {\n z-index: 809 !important;\n}\n\ntable.ab-table thead th:nth-child(32) {\n z-index: 808 !important;\n}\n\ntable.ab-table thead th:nth-child(33) {\n z-index: 807 !important;\n}\n\ntable.ab-table thead th:nth-child(34) {\n z-index: 806 !important;\n}\n\ntable.ab-table thead th:nth-child(35) {\n z-index: 805 !important;\n}\n\ntable.ab-table thead th:nth-child(36) {\n z-index: 804 !important;\n}\n\ntable.ab-table thead th:nth-child(37) {\n z-index: 803 !important;\n}\n\ntable.ab-table thead th:nth-child(38) {\n z-index: 802 !important;\n}\n\ntable.ab-table thead th:nth-child(39) {\n z-index: 801 !important;\n}\n\ntable.ab-table thead th:nth-child(40) {\n z-index: 800 !important;\n}\n\ntable.ab-table thead th:not(.row-actions-cell) .p-column-resizer::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: -15px;\n background: linear-gradient(to right, transparent calc(50% - 1px), #000 calc(50% - 1px), #000 calc(50% + 1px), transparent calc(50% + 1px));\n opacity: 0;\n transition: opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\ntable.ab-table thead th:not(.row-actions-cell) .p-column-resizer::after {\n content: \"\";\n position: absolute;\n top: 50%;\n right: calc(-16px - 2px * 0.5);\n width: 30px;\n height: 30px;\n transform: translateY(-50%);\n border-radius: 50%;\n background: #000 url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8'%3E%3Cpath d='M5 0v8L0 4z' fill='%23fff'/%3E%3Cpath d='M11 0v8l5-4z' fill='%23fff'/%3E%3C/svg%3E\") center/16px 8px no-repeat;\n opacity: 0;\n transform: translateY(-50%) scale(0.35);\n transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1), transform 240ms cubic-bezier(0.34, 1.3, 0.64, 1);\n}\n\ntable.ab-table thead th:not(.row-actions-cell):hover .p-column-resizer::before {\n opacity: 1;\n}\n\ntable.ab-table thead th:not(.row-actions-cell) .p-column-resizer:hover::before {\n opacity: 0;\n}\n\ntable.ab-table thead th:not(.row-actions-cell) .p-column-resizer:hover::after {\n opacity: 1;\n transform: translateY(-50%) scale(1);\n}\n\n.p-datatable.p-component .p-column-resizer-helper {\n width: 2px;\n top: var(--ab-th-top, 0px) !important;\n height: var(--ab-trait-h, calc(100% - var(--ab-th-top, 0px))) !important;\n background: transparent;\n pointer-events: none;\n transition: opacity 300ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-datatable.p-component .p-column-resizer-helper::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: #000;\n transform-origin: center calc(var(--ab-thead-h, 42px) / 2);\n transform: scaleY(1);\n transition: transform 300ms cubic-bezier(0.2, 0.75, 0.2, 1) 70ms, background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-datatable.p-component .p-column-resizer-helper.ab-resizer--masque {\n opacity: 0;\n}\n.p-datatable.p-component .p-column-resizer-helper.ab-resizer--masque::after {\n transform: scaleY(0);\n transition-delay: 0s;\n}\n.p-datatable.p-component .p-column-resizer-helper::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 100%;\n width: 90px;\n pointer-events: none;\n opacity: 0;\n transition: opacity 160ms cubic-bezier(0.4, 0, 0.2, 1);\n background: linear-gradient(to left, color-mix(in srgb, #dc2626 13%, transparent), color-mix(in srgb, #dc2626 5%, transparent) 45%, transparent);\n}\n.p-datatable.p-component .p-column-resizer-helper.ab-resizer--butee::after {\n background: #dc2626;\n}\n.p-datatable.p-component .p-column-resizer-helper.ab-resizer--butee::before {\n opacity: 1;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .p-datatable.p-component .p-column-resizer-helper,\n .p-datatable.p-component .p-column-resizer-helper::before,\n .p-datatable.p-component .p-column-resizer-helper::after,\n table.ab-table thead th .p-column-resizer::before,\n table.ab-table thead th .p-column-resizer::after {\n transition: none;\n }\n table.ab-table thead th .p-column-resizer::after,\n table.ab-table thead th .p-column-resizer:hover::after {\n transform: translateY(-50%) scale(1);\n }\n .p-datatable.p-component .p-column-resizer-helper::after,\n .p-datatable.p-component .p-column-resizer-helper.ab-resizer--masque::after {\n transform: scaleY(1);\n }\n}\n.ab-row-resizer-helper {\n position: absolute;\n height: 1px;\n margin-top: calc(1px * -0.5);\n z-index: 10;\n pointer-events: none;\n transition: opacity 300ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-row-resizer-helper::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: #000;\n transform-origin: center center;\n transform: scaleX(1);\n transition: transform 300ms cubic-bezier(0.2, 0.75, 0.2, 1) 70ms;\n}\n.ab-row-resizer-helper.ab-resizer--masque {\n opacity: 0;\n}\n.ab-row-resizer-helper.ab-resizer--masque::after {\n transform: scaleX(0);\n transition-delay: 0s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ab-row-resizer-helper,\n .ab-row-resizer-helper::after {\n transition: none;\n }\n .ab-row-resizer-helper.ab-resizer--masque::after {\n transform: scaleX(1);\n }\n}\ntable.ab-table thead th {\n text-align: left;\n cursor: grab;\n}\ntable.ab-table thead th:active {\n cursor: grabbing;\n}\n\ntable.ab-table thead th [data-pc-section=sort] {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border-radius: 5px;\n background: #f4f5f6;\n color: #b0b8c4;\n cursor: pointer;\n transition: background-color 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\ntable.ab-table thead th [data-pc-section=sort]:hover {\n background: #e0e3e8;\n color: #1a1e26;\n}\ntable.ab-table thead th [data-pc-section=sort] .p-sortable-column-icon {\n margin: 0;\n background: none;\n}\n\ntable.ab-table thead th.p-highlight [data-pc-section=sort] {\n background: color-mix(in srgb, #3f3f3f 12%, transparent);\n color: #3f3f3f;\n}\n\n.p-datatable .p-datatable-tbody > tr:has(> td.ab-td--editable):hover > td {\n background-color: #f4f5f6;\n}\n\n.p-datatable .p-datatable-tbody > tr:hover > td.ab-td--editable:hover {\n background-color: color-mix(in srgb, #c8cdd6 55%, #f4f5f6);\n}\n\n.p-datatable-scrollable .p-datatable-tbody > tr:has(> td.ab-td--editable):hover > td.p-frozen-column:not(.row-actions-cell) {\n background: #f4f5f6 !important;\n}\n\n.ab-row-actions-menu {\n transform: translateY(-50%);\n}\n\n.ab-table .p-datatable-header {\n background: none;\n border: 0;\n}\n\n.ab-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-family: \"Roboto\", sans-serif;\n}\n\n.ab-toolbar__zone {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.ab-toolbar__rule {\n flex: 0 0 1px;\n width: 1px;\n height: 22px;\n background: #c8cdd6;\n margin: 0 2px;\n}\n\n.ab-toolbar__search {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #f4f5f6;\n border: 1px solid #e0e3e8;\n border-radius: 8px;\n padding: 7px 12px;\n transition: border-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-toolbar__search:hover {\n border-color: #c8cdd6;\n}\n.ab-toolbar__search:focus-within {\n border-color: #3f3f3f;\n}\n.ab-toolbar__search > i {\n color: #6b7280;\n font-size: 12px;\n}\n.ab-toolbar__search > i.pi-times {\n cursor: pointer;\n font-size: 10.5px;\n}\n.ab-toolbar__search input.p-inputtext {\n border: 0;\n background: transparent;\n outline: none;\n box-shadow: none;\n padding: 0;\n height: auto;\n font-size: 12.5px;\n width: 200px;\n}\n\n.ab-tbtn {\n font-weight: 400;\n font-family: \"Roboto\", sans-serif;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n height: 32px;\n padding: 0 9px;\n background: #ffffff;\n color: #1a1e26;\n border: 1px solid #e0e3e8;\n border-radius: 6px;\n font-size: 12.5px;\n cursor: pointer;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), border-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-tbtn .material-icons {\n font-size: 18px;\n line-height: 1;\n color: #6b7280;\n}\n.ab-tbtn:hover:not(:disabled) {\n border-color: #c8cdd6;\n background: #f4f5f6;\n}\n.ab-tbtn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.ab-picto-menu:disabled {\n opacity: 0.35;\n cursor: default;\n}\n\n.ab-tbtn--icon {\n width: 32px;\n padding: 0;\n}\n\n.ab-tbtn--primary {\n background: #3f3f3f;\n border-color: #3f3f3f;\n color: #ffffff;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n}\n.ab-tbtn--primary .material-icons {\n color: #ffffff;\n}\n.ab-tbtn--primary:hover:not(:disabled) {\n background: #1a1e26;\n border-color: #1a1e26;\n}\n\n.ab-tbtn--on {\n background: #e8eaee;\n border-color: #c8cdd6;\n}\n\n.ab-tbtn__chevron {\n font-size: 15px !important;\n margin-left: -2px;\n opacity: 0.7;\n}\n\n.ab-menu__item--danger {\n color: #dc2626;\n}\n.ab-menu__item--danger .material-icons {\n color: #dc2626;\n}\n.ab-menu__item--danger:hover:not(:disabled) {\n background: rgba(220, 38, 38, 0.08);\n}\n\n@keyframes abCountPulse {\n 0% {\n transform: scale(1);\n box-shadow: 0 0 0 0 rgba(63, 63, 63, 0.5);\n }\n 35% {\n transform: scale(1.28);\n box-shadow: 0 0 0 5px rgba(63, 63, 63, 0);\n }\n 100% {\n transform: scale(1);\n box-shadow: 0 0 0 0 rgba(63, 63, 63, 0);\n }\n}\n.ab-tbtn__count--pulse {\n animation: abCountPulse 420ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ab-tbtn__count--pulse {\n animation: none;\n }\n}\n.ab-tbtn__count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 17px;\n height: 17px;\n padding: 0 4px;\n border-radius: 9px;\n background: #3f3f3f;\n color: #ffffff;\n font-size: 10.5px;\n font-weight: 500;\n}\n\n.ab-toolbar__anchor {\n position: relative;\n display: inline-flex;\n}\n\n.ab-toolbar__pop {\n position: absolute;\n right: 0;\n top: calc(100% + 4px);\n z-index: 1000;\n background: #ffffff;\n border: 1px solid #e0e3e8;\n border-radius: 8px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1215686275), 0 2px 6px rgba(0, 0, 0, 0.2392156863);\n overflow: hidden;\n text-align: left;\n}\n\n.ab-menu {\n min-width: 208px;\n padding: 4px;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.ab-menu__item {\n font-family: \"Roboto\", sans-serif;\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 10px;\n background: none;\n border: 0;\n border-radius: 5px;\n cursor: pointer;\n font-size: 13px;\n color: #1a1e26;\n text-align: left;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-menu__item .material-icons {\n font-size: 16px;\n line-height: 1;\n color: #6b7280;\n flex: 0 0 16px;\n width: 16px;\n overflow: hidden;\n}\n.ab-menu__item:hover:not(:disabled) {\n background: #f4f5f6;\n}\n.ab-menu__item:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.ab-brain {\n width: 580px;\n font-size: 13px;\n color: #1a1e26;\n}\n\n.ab-brain__corps {\n display: flex;\n align-items: stretch;\n flex: 1 1 auto;\n min-height: 0;\n}\n\n.ab-brain__sec--cols {\n flex: 0 0 288px;\n border-right: 1px solid #e0e3e8;\n border-bottom: 0;\n}\n\n.ab-brain__reglages {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-width: 0;\n}\n.ab-brain__reglages .ab-brain__foot {\n margin-top: auto;\n}\n.ab-brain__reglages .ab-brain__sec:last-of-type {\n border-bottom: 0;\n}\n\n.ab-brain__head {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 11px 14px;\n background: #e8eaee;\n border-bottom: 1px solid #e0e3e8;\n font-weight: 500;\n font-size: 12.5px;\n}\n.ab-brain__head .material-icons {\n font-size: 17px;\n color: #6b7280;\n}\n\n.ab-brain__close {\n margin-left: auto;\n display: grid;\n place-items: center;\n width: 22px;\n height: 22px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: none;\n color: #6b7280;\n cursor: pointer;\n transition: background-color 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-brain__close:hover {\n background: rgba(63, 63, 63, 0.08);\n color: #1a1e26;\n}\n.ab-brain__close:focus-visible {\n outline: 2px solid #3f3f3f;\n outline-offset: 1px;\n}\n.ab-brain__close .material-icons {\n font-size: 16px;\n color: inherit;\n}\n\n.ab-brain__sec {\n border-bottom: 1px solid #e0e3e8;\n padding: 12px 14px;\n}\n.ab-brain__sec:last-child {\n border-bottom: 0;\n}\n\n.ab-brain__sec-head {\n display: flex;\n align-items: baseline;\n gap: 10px;\n margin-bottom: 10px;\n}\n.ab-brain__sec-head .ab-brain__title {\n margin-bottom: 0;\n}\n\n.ab-brain__reinit {\n margin-left: auto;\n display: inline-flex;\n align-items: center;\n gap: 3px;\n padding: 2px 4px;\n border: 0;\n border-radius: 4px;\n background: none;\n cursor: pointer;\n font-family: \"Roboto\", sans-serif;\n font-size: 10.5px;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: #6b7280;\n white-space: nowrap;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1), background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-brain__reinit .material-icons {\n font-size: 13px;\n}\n.ab-brain__reinit:hover {\n color: #dc2626;\n background: rgba(220, 38, 38, 0.08);\n}\n\n.ab-brain__title {\n font-size: 10.5px;\n font-weight: 500;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n color: #6b7280;\n margin-bottom: 10px;\n}\n\n.ab-brain__cols {\n max-height: 216px;\n overflow-y: auto;\n margin: 0 -4px;\n}\n.ab-brain__cols::-webkit-scrollbar {\n width: 8px;\n}\n.ab-brain__cols::-webkit-scrollbar-thumb {\n background: #c8cdd6;\n border-radius: 4px;\n}\n\n.ab-col-row {\n display: flex;\n align-items: center;\n gap: 9px;\n width: 100%;\n padding: 6px 8px;\n border: 0;\n border-radius: 5px;\n background: none;\n cursor: pointer;\n font-family: \"Roboto\", sans-serif;\n font-size: 13px;\n color: #1a1e26;\n text-align: left;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-col-row:hover {\n background: #f4f5f6;\n}\n.ab-col-row .ab-col-row__name {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ab-col-row:not(.is-on) .ab-col-row__name {\n color: #6b7280;\n}\n\n.ab-col-row__tick {\n flex: 0 0 15px;\n width: 15px;\n height: 15px;\n border: 1.5px solid #c8cdd6;\n border-radius: 3px;\n display: grid;\n place-items: center;\n}\n.ab-col-row__tick .material-icons {\n font-size: 13px;\n color: #ffffff;\n visibility: hidden;\n}\n.is-on .ab-col-row__tick {\n background: #3f3f3f;\n border-color: #3f3f3f;\n}\n.is-on .ab-col-row__tick .material-icons {\n visibility: visible;\n}\n\n.ab-seg {\n display: flex;\n background: #f4f5f6;\n border: 1px solid #e0e3e8;\n border-radius: 7px;\n padding: 2px;\n gap: 2px;\n}\n\n.ab-seg__opt {\n flex: 1;\n font-family: \"Roboto\", sans-serif;\n font-size: 11.5px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 5px 4px;\n border: 0;\n border-radius: 5px;\n background: transparent;\n color: #6b7280;\n cursor: pointer;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-seg__opt[aria-pressed=true] {\n background: #ffffff;\n color: #1a1e26;\n font-weight: 500;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n}\n\n.ab-switch-row {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 6px 0;\n border: 0;\n background: none;\n cursor: pointer;\n font-family: \"Roboto\", sans-serif;\n font-size: 13px;\n color: #1a1e26;\n text-align: left;\n}\n.ab-switch-row .ab-switch-row__label {\n flex: 1;\n}\n\n.ab-switch {\n position: relative;\n flex: 0 0 32px;\n width: 32px;\n height: 18px;\n border-radius: 9px;\n background: #c8cdd6;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-switch::after {\n content: \"\";\n position: absolute;\n top: 2px;\n left: 2px;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #ffffff;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1215686275), 0 1px 2px rgba(0, 0, 0, 0.2392156863);\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.is-on .ab-switch {\n background: #3f3f3f;\n}\n.is-on .ab-switch::after {\n transform: translateX(14px);\n}\n\n.ab-brain__foot {\n padding: 10px 14px 12px;\n background: #f4f5f6;\n border-top: 1px solid #e0e3e8;\n}\n\n.ab-brain__reset {\n font-family: \"Roboto\", sans-serif;\n display: flex;\n align-items: center;\n gap: 7px;\n width: 100%;\n padding: 5px 0;\n background: none;\n border: 0;\n cursor: pointer;\n font-size: 12px;\n color: #dc2626;\n text-align: left;\n}\n.ab-brain__reset .material-icons {\n font-size: 15px;\n}\n.ab-brain__reset:hover {\n text-decoration: underline;\n}\n\n.ab-brain__reset--minor {\n color: #6b7280;\n font-size: 11.5px;\n padding: 3px 0 3px 22px;\n}\n\n.ab-brain__persist {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid #e0e3e8;\n font-size: 11px;\n color: #6b7280;\n}\n.ab-brain__persist .material-icons {\n font-size: 13px;\n}\n\n.ab-brain {\n max-height: min(72vh, 660px);\n display: flex;\n flex-direction: column;\n}\n\n.ab-brain__sec--cols {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n}\n\n.ab-brain__cols {\n max-height: none;\n flex: 1 1 auto;\n min-height: 120px;\n}\n\n.ab-brain__title-note {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n margin-left: 8px;\n letter-spacing: 0;\n color: #3f3f3f;\n}\n.ab-brain__title-note .material-icons {\n font-size: 13px;\n}\n\n.ab-brain__search {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 8px;\n padding: 5px 8px;\n background: #f4f5f6;\n border: 1px solid #e0e3e8;\n border-radius: 6px;\n transition: border-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-brain__search:focus-within {\n border-color: #3f3f3f;\n}\n.ab-brain__search > .material-icons {\n font-size: 15px;\n color: #6b7280;\n}\n.ab-brain__search input {\n flex: 1;\n min-width: 0;\n border: 0;\n background: transparent;\n outline: none;\n font-family: \"Roboto\", sans-serif;\n font-size: 12.5px;\n color: #1a1e26;\n}\n.ab-brain__search input::placeholder {\n color: #b0b8c4;\n}\n\n.ab-brain__cols-legende {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 9px 5px 4px;\n border-bottom: 1px solid #e0e3e8;\n margin-bottom: 4px;\n font-size: 9.5px;\n font-weight: 500;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: #6b7280;\n}\n\n.ab-brain__cols-legende__gauche {\n display: flex;\n align-items: center;\n gap: 7px;\n}\n\n.ab-brain__search-clear {\n display: inline-flex;\n padding: 0;\n border: 0;\n background: none;\n cursor: pointer;\n color: #6b7280;\n}\n.ab-brain__search-clear .material-icons {\n font-size: 14px;\n}\n.ab-brain__search-clear:hover {\n color: #1a1e26;\n}\n\n.ab-brain__vide {\n padding: 14px 8px;\n font-size: 12px;\n color: #6b7280;\n text-align: center;\n}\n\n.ab-col-row {\n padding: 0;\n background: none;\n}\n.ab-col-row:hover {\n background: #f4f5f6;\n}\n\n.ab-col-row__main {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 9px;\n padding: 6px 4px 6px 8px;\n border: 0;\n background: none;\n cursor: pointer;\n font-family: \"Roboto\", sans-serif;\n font-size: 13px;\n color: inherit;\n text-align: left;\n}\n\n.ab-col-row__pin {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n padding: 5px 7px;\n border: 0;\n border-radius: 5px;\n background: none;\n cursor: pointer;\n color: #6b7280;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1), background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-col-row__pin .material-icons {\n font-size: 16px;\n}\n.ab-col-row__pin:hover:not(:disabled) {\n color: #1a1e26;\n background: #e8eaee;\n}\n.ab-col-row__pin:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.ab-col-row.is-pinned .ab-col-row__pin {\n color: #3f3f3f;\n}\n.ab-col-row.is-pinned .ab-col-row__pin .material-icons {\n transform: rotate(45deg);\n}\n\n.ab-th {\n display: flex;\n align-items: center;\n gap: 2px;\n width: 100%;\n min-width: 0;\n}\n\n.ab-th__label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ab-th__btn,\n.ab-picto-menu {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n padding: 0;\n border: 0;\n border-radius: 4px;\n background: none;\n cursor: pointer;\n color: #6b7280;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1), background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-th__btn .material-icons,\n.ab-picto-menu .material-icons {\n font-size: 15px;\n}\n.ab-th__btn:hover,\n.ab-picto-menu:hover {\n color: #1a1e26;\n background: #ffffff;\n}\n\n@container (max-width: 77px) {\n .p-column-title {\n margin-left: -10px;\n margin-right: -10px;\n }\n .ab-th__btn {\n width: 18px;\n height: 18px;\n }\n .ab-th__btn .material-icons {\n font-size: 14px;\n }\n}\n.ab-menu__item.is-actif {\n background: rgba(63, 63, 63, 0.08);\n color: #1a1e26;\n font-weight: 500;\n}\n.ab-menu__item.is-actif .material-icons {\n color: #1a1e26;\n}\n.ab-menu__item.is-actif:hover {\n background: rgba(63, 63, 63, 0.14);\n}\n\n.ab-menu__item--gele .material-icons {\n transform: rotate(45deg);\n}\n\n.ab-menu__filet {\n height: 1px;\n margin: 3px 6px;\n background: #e0e3e8;\n}\n\ntable.ab-table thead th .p-column-header-content > [data-pc-section=sort] {\n display: none;\n}\n\n.ab-col-menu {\n right: auto;\n top: auto;\n z-index: 1200;\n}\n\n.ab-align--left .ab-table td {\n text-align: left;\n}\n.ab-align--left .ab-table td .div-col,\n.ab-align--left .ab-table td .div-col > * {\n justify-content: flex-start;\n}\n.ab-align--left .ab-th__label {\n text-align: left;\n}\n\n.ab-align--center .ab-table td {\n text-align: center;\n}\n.ab-align--center .ab-table td .div-col,\n.ab-align--center .ab-table td .div-col > * {\n justify-content: safe center;\n}\n.ab-align--center .ab-table td .div-col-select .p-dropdown-label,\n.ab-align--center .ab-table td .div-col-select-multiple .p-multiselect-label {\n justify-content: safe center;\n}\n.ab-align--center .ab-table td .div-col-select > div:not(.select-editor),\n.ab-align--center .ab-table td .div-col-select .p-dropdown-label {\n padding-left: 20px;\n padding-right: 20px;\n}\n.ab-align--center .ab-table td .div-col .limite_txt_table,\n.ab-align--center .ab-table td .div-col .cell-text,\n.ab-align--center .ab-table td .div-col .tab_label,\n.ab-align--center .ab-table td .div-col p,\n.ab-align--center .ab-table td .div-col ul,\n.ab-align--center .ab-table td .div-col li {\n text-align: left;\n}\n.ab-align--center .ab-th__label {\n text-align: center;\n}\n.ab-align--center .ab-table td.row-actions-cell {\n text-align: center;\n}\n\n.ab-checkbox {\n width: 16px;\n height: 16px;\n min-width: 16px;\n min-height: 16px;\n border: 1.5px solid #e0e3e8;\n border-radius: 3px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: #ffffff;\n color: #ffffff;\n font-size: 10px;\n cursor: pointer;\n transition: all 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ab-checkbox.checked, .ab-checkbox.p-highlight {\n background-color: #3f3f3f;\n border-color: #3f3f3f;\n}\n.ab-checkbox.partial {\n background: linear-gradient(to top right, #3f3f3f 50%, transparent 50%);\n border-color: #3f3f3f;\n}\n.ab-checkbox {\n margin: auto;\n padding: 0;\n}\n.ab-checkbox .material-icons {\n font-size: 12px;\n line-height: 1;\n color: #ffffff;\n}\n.ab-checkbox:hover:not(.checked):not(.partial) {\n border-color: #c8cdd6;\n}\n\n.ab-menu__titre {\n padding: 7px 10px 4px;\n font-size: 10px;\n font-weight: 500;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: #6b7280;\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n LIGNE DE FILTRES — une seule épaisseur\n ═══════════════════════════════════════════════════════════════════════════\n Mesuré le 08/09/2026 sur la story `columnFilter` : la rangée alignait DEUX\n hauteurs de champ (40px et 45,5px), DEUX bordures (1px et 1,5px) et DEUX\n rayons (6px et 7px) — et un troisième format, 25,5px, dès qu'une colonne\n `index` était présente.\n\n La cause n'est pas un réglage oublié, c'est une origine différente pour\n chaque champ : les selects et le calendrier passent par le design system,\n donc par `@include field` (40px, bordure 1,5px, rayon 7px), alors que les\n champs texte sont des `InputText` NUS — ils prennent le `padding: 12px` du\n thème PrimeReact, d'où leurs 45,5px. Tous passent désormais par le même\n gabarit, et la hauteur est posée explicitement pour qu'aucune ne dérive.\n ═══════════════════════════════════════════════════════════════════════════ */\ntable.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label) {\n font-family: \"Roboto\", sans-serif;\n min-height: 40px;\n padding: 0 12px;\n background: #ffffff;\n border: 1.5px solid #e0e3e8;\n border-radius: 7px;\n color: #1a1e26;\n outline: none;\n transition: border-color 180ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\ntable.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label):hover:not(:focus):not(:focus-within):not([disabled]):not(.is-disabled) {\n border-color: #c8cdd6;\n}\ntable.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label):focus, table.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label):focus-within, table.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label).is-open {\n border-color: #3f3f3f;\n box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);\n}\ntable.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label)[disabled], table.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label).is-disabled {\n opacity: 0.45;\n cursor: not-allowed;\n pointer-events: none;\n}\ntable.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label)[readonly], table.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label).is-readonly {\n background: #f4f5f6;\n cursor: default;\n box-shadow: none;\n}\ntable.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label)[readonly]:hover, table.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label).is-readonly:hover {\n border-color: #e0e3e8;\n}\ntable.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label).is-error {\n border-color: #dc2626;\n box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);\n}\ntable.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label).is-success {\n border-color: #15803d;\n box-shadow: 0 0 0 3px rgba(21, 128, 61, 0.12);\n}\ntable.ab-table thead th.p-filter-column .p-inputtext:not(.p-dropdown-label):not(.p-multiselect-label) {\n height: 40px;\n font-size: 14px;\n width: 100%;\n min-width: 0;\n}\ntable.ab-table thead th.p-filter-column .p-dropdown,\ntable.ab-table thead th.p-filter-column .p-calendar {\n width: 100%;\n min-width: 0;\n font-size: 14px;\n}\ntable.ab-table thead th.p-filter-column .p-calendar > .p-inputtext {\n height: 40px !important;\n width: 100% !important;\n min-width: 0 !important;\n padding: 0 12px !important;\n border-width: 1.5px !important;\n border-radius: 7px !important;\n}\ntable.ab-table thead th.p-filter-column .p-calendar > .p-inputtext:not(.p-invalid) {\n border-color: #e0e3e8 !important;\n}\ntable.ab-table thead th.p-filter-column .p-inputtext.ab-filtre-compact {\n padding-left: 4px;\n padding-right: 4px;\n}\ntable.ab-table thead th.p-filter-column .p-column-filter-clear-button {\n width: 32px;\n height: 32px;\n color: #6b7280;\n transition: opacity 0.2s ease, color 0.2s ease, background-color 0.2s ease;\n}\ntable.ab-table thead th.p-filter-column .p-column-filter-clear-button.p-hidden-space {\n visibility: visible;\n opacity: 0.38;\n}\ntable.ab-table thead th.p-filter-column .p-column-filter-clear-button:hover {\n opacity: 1;\n color: #1a1e26;\n background: rgba(26, 30, 38, 0.06);\n}\n\ntable.ab-table thead th.ab-th--editable:not(.p-frozen-column) {\n background-color: color-mix(in srgb, #c8cdd6 70%, #e8eaee) !important;\n}\ntable.ab-table thead th.ab-th--editable:not(.p-frozen-column):hover {\n background-color: color-mix(in srgb, #c8cdd6 70%, #e8eaee) !important;\n}\n\ntable.ab-table thead th.ab-th--editable .ab-th__label::before,\ntable.ab-table thead th.ab-th--lecture .ab-th__label::before {\n font-family: \"Material Icons\";\n font-weight: 400;\n font-style: normal;\n font-size: 15px;\n line-height: 1;\n font-feature-settings: \"liga\";\n -webkit-font-feature-settings: \"liga\";\n text-transform: none;\n letter-spacing: normal;\n vertical-align: -3px;\n margin-right: 5px;\n flex: none;\n}\n\ntable.ab-table thead th.ab-th--editable .ab-th__label::before {\n content: \"edit\"/\"\";\n color: #1a1e26;\n}\n\ntable.ab-table thead th.ab-th--lecture .ab-th__label::before {\n content: \"lock\"/\"\";\n color: #6b7280;\n}\n\ntd.ab-td--editable:not(.p-frozen-column) {\n position: relative;\n}\n\ntd.ab-td--editable::after {\n content: \"\";\n position: absolute;\n right: 3px;\n bottom: 3px;\n width: 0;\n height: 0;\n border-left: 5px solid transparent;\n border-bottom: 5px solid #c8cdd6;\n pointer-events: none;\n}\n\ntd.ab-td--editable {\n cursor: pointer;\n}\n\ntr[style*=row-resize] > td {\n cursor: row-resize;\n}\n\ntable.ab-table thead tr th:has(> .p-column-filter) {\n background-color: #ffffff !important;\n}\n\ntable.ab-table:has(td.ab-td--editable) tbody td:not(.ab-td--editable):not(.row-actions-cell) {\n background-image: linear-gradient(135deg, rgba(200, 205, 214, 0.45) 0 12.5%, transparent 12.5% 50%, rgba(200, 205, 214, 0.45) 50% 62.5%, transparent 62.5% 100%);\n background-size: 8px 8px;\n background-origin: border-box;\n}";
48140
48152
  styleInject(css_248z$3);
48141
48153
 
48142
48154
  // src/components/react/Table/Table.tokens.js
@@ -56951,27 +56963,80 @@ var SelfEditableCell = function SelfEditableCell(_ref14) {
56951
56963
  useSingleOpenCellEditor(editing && !isRowEditing, function () {
56952
56964
  if (col.type === 'date' || col.type === 'html') setEditing(false);else commit(localValueRef.current);
56953
56965
  });
56966
+
56967
+ // ──────────────────────────────────────────────────────────────────────────
56968
+ // LE DECLENCHEUR EST LA CELLULE, PAS SON CONTENU
56969
+ // ──────────────────────────────────────────────────────────────────────────
56970
+ // `mouseenter` et `click` vivaient sur le div d'affichage ci-dessous. Or ce div
56971
+ // ne mesure que la hauteur de son CONTENU — 40px dans une cellule de 57 —
56972
+ // pendant que le fond gris est porte par le <td>, qui couvre tout. Il restait
56973
+ // donc une bande morte de 8px en haut et 9px en bas, exactement le padding de
56974
+ // la cellule (mesure du 08/09/2026) : on entrait dans la cellule, elle grisait,
56975
+ // et l'editeur ne montait qu'apres quelques pixels de plus. D'ou la saccade.
56976
+ // Sur les natures qui s'editent au CLIC, le meme ecart faisait pire : un clic
56977
+ // dans ces 8px ne declenchait rien.
56978
+ //
56979
+ // La voie CSS a ete essayee et refusee : agrandir la boite du div (marge
56980
+ // negative + padding) couvrait bien la cellule, mais faisait grandir la ligne
56981
+ // de 3px sans que les valeurs mesurees l'expliquent.
56982
+ //
56983
+ // Le <td> appartient a PrimeReact : on ne peut pas lui passer de props, mais
56984
+ // rien n'interdit d'y poser des ecouteurs NATIFS, du moment qu'on les retire au
56985
+ // demontage. La cellule est retenue une fois pour toutes dans `celluleRef` :
56986
+ // selon l'etat, l'ancre disponible est le div d'affichage ou `containerRef`, et
56987
+ // aucun des deux n'est monte en permanence.
56988
+ var ancreRef = useRef(null);
56989
+ var celluleRef = useRef(null);
56990
+ useEffect(function () {
56991
+ // ⚠️ SEULEMENT quand le div d'affichage est a l'ecran. C'est la condition
56992
+ // d'origine, et elle n'etait pas explicite : les deux ecouteurs vivaient DANS
56993
+ // la branche `!editing && !monteMaintenant`, donc ils n'existaient tout
56994
+ // simplement pas des que l'editeur etait monte. Sans cette garde, un clic sur
56995
+ // un select deja monte tirait `setEditing` en plus du gestionnaire de
56996
+ // PrimeReact, et le panneau ne se deroulait plus — mesure du 08/09/2026.
56997
+ if (editing || monteMaintenant) return undefined;
56998
+ if (!celluleRef.current) {
56999
+ var ancre = ancreRef.current || containerRef.current;
57000
+ celluleRef.current = ancre ? ancre.closest('td') : null;
57001
+ }
57002
+ var cellule = celluleRef.current;
57003
+ if (!cellule) return undefined;
57004
+ var entrer = function entrer() {
57005
+ if (toujoursMonte) setSurvole(true);
57006
+ };
57007
+ var cliquer = function cliquer(e) {
57008
+ if (!editable) return;
57009
+ // Meme garde qu'avant : un clic sur un bouton fantome de la cellule lui
57010
+ // appartient, il n'ouvre pas l'editeur.
57011
+ if (e.target && e.target.closest && e.target.closest('.ghost-btnBox')) return;
57012
+ committedRef.current = false;
57013
+ daySelectedRef.current = false;
57014
+ setEditing(true);
57015
+ };
57016
+ cellule.addEventListener('mouseenter', entrer);
57017
+ cellule.addEventListener('click', cliquer);
57018
+ return function () {
57019
+ cellule.removeEventListener('mouseenter', entrer);
57020
+ cellule.removeEventListener('click', cliquer);
57021
+ };
57022
+ }, [editable, toujoursMonte, editing, monteMaintenant]);
56954
57023
  if (!editing && !monteMaintenant) {
56955
57024
  var _rowData$col$field;
56956
57025
  return /*#__PURE__*/React__default.createElement("div", {
56957
57026
  // Focalisable UNIQUEMENT pour les natures montees au survol : sans ca la
56958
57027
  // cellule serait un cul-de-sac au clavier, l'editeur n'existant pas tant
56959
57028
  // qu'on ne l'a pas survole a la souris.
56960
- tabIndex: toujoursMonte ? 0 : undefined,
57029
+ tabIndex: toujoursMonte ? 0 : undefined
57030
+ // `onFocus` reste ici : le clavier vise un element focalisable, pas
57031
+ // une cellule. `onMouseEnter` et `onClick` sont partis sur le <td>
57032
+ // (voir le bloc « LE DECLENCHEUR EST LA CELLULE » plus haut) —
57033
+ // les laisser ici les aurait fait tirer deux fois.
57034
+ ,
56961
57035
  onFocus: toujoursMonte ? function () {
56962
57036
  montePourClavierRef.current = true;
56963
57037
  setSurvole(true);
56964
57038
  } : undefined,
56965
- onMouseEnter: toujoursMonte ? function () {
56966
- return setSurvole(true);
56967
- } : undefined,
56968
- onClick: function onClick(e) {
56969
- if (editable && !e.target.closest('.ghost-btnBox')) {
56970
- committedRef.current = false;
56971
- daySelectedRef.current = false;
56972
- setEditing(true);
56973
- }
56974
- }
57039
+ ref: ancreRef
56975
57040
  // `flex-start` : regle globale du Tableau, tout est aligne a gauche.
56976
57041
  // Les colonnes d'icones gardent leur centrage, pose au niveau de la
56977
57042
  // colonne. Cf. l'idee de reglage utilisateur dans TODO_DESIGN.md.
@@ -57357,6 +57422,23 @@ var DocumentBodyCell = function DocumentBodyCell(_ref15) {
57357
57422
  }, doc.name));
57358
57423
  })));
57359
57424
  };
57425
+
57426
+ // ─── Ce que fait une action declaree ──────────────────────────────────────────
57427
+ //
57428
+ // Une action de la barre d'outils se DECLARE en JSON (`{ key, icon, label }`),
57429
+ // donc elle traverse `data-props` depuis Twig. Ce qu'elle FAIT est une fonction,
57430
+ // et une fonction ne se serialise pas. `handler: 'app.table.exporter'` est le
57431
+ // pont entre les deux : le nom d'une fonction globale, resolue au clic.
57432
+ //
57433
+ // Resolution au clic et non au montage : l'app enregistre souvent ses fonctions
57434
+ // apres le rendu du tableau (fin de page, module charge en differe).
57435
+ var resolveGlobalHandler = function resolveGlobalHandler(chemin) {
57436
+ if (typeof chemin !== 'string' || !chemin || typeof window === 'undefined') return null;
57437
+ var fn = chemin.split('.').reduce(function (obj, segment) {
57438
+ return obj == null ? obj : obj[segment];
57439
+ }, window);
57440
+ return typeof fn === 'function' ? fn : null;
57441
+ };
57360
57442
  var Table$1 = function Table(_ref16) {
57361
57443
  var _ref16$value = _ref16.value,
57362
57444
  value = _ref16$value === void 0 ? [] : _ref16$value,
@@ -57416,9 +57498,11 @@ var Table$1 = function Table(_ref16) {
57416
57498
  _ref16$selectionActio = _ref16.selectionActions,
57417
57499
  selectionActions = _ref16$selectionActio === void 0 ? [] : _ref16$selectionActio,
57418
57500
  onSelectionAction = _ref16.onSelectionAction,
57501
+ selectionActionHandlers = _ref16.selectionActionHandlers,
57419
57502
  _ref16$toolbarActions = _ref16.toolbarActions,
57420
57503
  toolbarActions = _ref16$toolbarActions === void 0 ? [] : _ref16$toolbarActions,
57421
57504
  onToolbarAction = _ref16.onToolbarAction,
57505
+ toolbarActionHandlers = _ref16.toolbarActionHandlers,
57422
57506
  _ref16$selectionFilte = _ref16.selectionFilter,
57423
57507
  selectionFilter = _ref16$selectionFilte === void 0 ? false : _ref16$selectionFilte,
57424
57508
  onButtonClick = _ref16.onButtonClick,
@@ -59316,11 +59400,19 @@ var Table$1 = function Table(_ref16) {
59316
59400
  value: (_options$value3 = options.value) !== null && _options$value3 !== void 0 ? _options$value3 : '',
59317
59401
  onChange: function onChange(e) {
59318
59402
  return options.filterApplyCallback(e.target.value || null);
59319
- },
59403
+ }
59404
+ // Le `padding: 2px 4px` qui vivait ici a ete retire : il donnait a ce
59405
+ // champ une hauteur de 25,5px quand les autres en faisaient 40 ou 45,5,
59406
+ // soit trois epaisseurs dans la meme rangee. L'etroitesse de la colonne
59407
+ // est desormais traitee dans Table.scss, en HORIZONTAL uniquement — via
59408
+ // cette classe, qui est le seul point d'accroche possible : la colonne
59409
+ // `index` n'est pas la premiere de la rangee (les coches et les actions
59410
+ // la precedent), donc aucun selecteur positionnel ne la designe.
59411
+ ,
59412
+ className: "ab-filtre-compact",
59320
59413
  style: {
59321
59414
  width: '100%',
59322
59415
  minWidth: 0,
59323
- padding: '2px 4px',
59324
59416
  textAlign: 'center'
59325
59417
  }
59326
59418
  });
@@ -60474,6 +60566,29 @@ var Table$1 = function Table(_ref16) {
60474
60566
  var colonneEditable = useCallback(function (col) {
60475
60567
  return lockable ? effectiveEditable && col.editable === true : effectiveEditable ? col.editable !== false : col.editable === true;
60476
60568
  }, [lockable, effectiveEditable]);
60569
+
60570
+ // ──────────────────────────────────────────────────────────────────────────
60571
+ // « LE TABLEAU EST-IL EN EDITION ? » — et surtout PAS `effectiveEditable`
60572
+ // ──────────────────────────────────────────────────────────────────────────
60573
+ // Une colonne peut se declarer editable A ELLE SEULE : hors `lockable`,
60574
+ // `colonneEditable` ci-dessus retourne `col.editable === true` des que la prop
60575
+ // `editable` du tableau est fausse. Une colonne opte donc pour l'edition
60576
+ // independamment du tableau, et c'est le contrat voulu.
60577
+ //
60578
+ // Consequence : `effectiveEditable` NE DIT PAS si le tableau est en edition.
60579
+ // Constate le 08/09/2026 sur la story « Tous les types » — `editable: false`
60580
+ // passe en argument d'URL, et pourtant SOIXANTE cellules editables, parce que
60581
+ // les colonnes du preset se declarent elles-memes.
60582
+ //
60583
+ // C'est aussi, mot pour mot, la condition que le CSS lit avec
60584
+ // `:has(td.ab-td--editable)` pour hachurer les colonnes en lecture. Les deux
60585
+ // doivent dire la meme chose : quand elles divergeaient, le tableau affichait
60586
+ // des colonnes hachurees sous des en-tetes muets.
60587
+ var tableauEnEdition = useMemo(function () {
60588
+ return visibleColumns.some(function (c) {
60589
+ return colonneEditable(c);
60590
+ });
60591
+ }, [visibleColumns, colonneEditable]);
60477
60592
  var autoWidthsWritten = useRef(false);
60478
60593
  useLayoutEffect(function () {
60479
60594
  var _visibleColumns;
@@ -60562,6 +60677,50 @@ var Table$1 = function Table(_ref16) {
60562
60677
  // Ce sont aussi les deux seuls boutons CONDITIONNELS (ils apparaissent selon le
60563
60678
  // tri et les filtres) : dans la barre, leur va-et-vient decalait la position de
60564
60679
  // tous leurs voisins et on cliquait a cote.
60680
+ // ── Le contexte remis a une action ──────────────────────────────────────────
60681
+ // Une action metier a besoin des donnees pour agir : exporter demande les
60682
+ // lignes affichees, une action de masse demande les lignes cochees. Sans ce
60683
+ // contexte, l'app devrait tenir en double un etat que le tableau possede deja
60684
+ // (tri, filtres, selection) — et il divergerait.
60685
+ var buildActionContext = useCallback(function (key) {
60686
+ return {
60687
+ key: key,
60688
+ rows: data,
60689
+ // toutes les lignes connues du tableau
60690
+ // ATTENTION — `visibleRows` n'est PAS la vue finale a l'ecran. C'est le
60691
+ // jeu de lignes REMIS au DataTable : seul le filtre de picking (Tous /
60692
+ // Coches / Non coches) y est applique. Le tri, les filtres colonnes et la
60693
+ // recherche globale sont ensuite appliques PAR PrimeReact, en interne, et
60694
+ // n'apparaissent pas ici. Sans `selectionFilter`, visibleRows === rows.
60695
+ // Une action qui veut « ce que je vois » doit refiltrer de son cote.
60696
+ visibleRows: displayData,
60697
+ selectedRows: data.filter(function (r) {
60698
+ return r._selected;
60699
+ }),
60700
+ // lignes cochees
60701
+ columns: visibleColumns,
60702
+ // colonnes affichees, dans leur ordre
60703
+ tableId: tableId,
60704
+ close: function close() {
60705
+ return setMenuOpen(false);
60706
+ } // refermer le menu depuis l'action
60707
+ };
60708
+ }, [data, displayData, visibleColumns, tableId]);
60709
+
60710
+ // Ordre de resolution : onClick de l'action → table { cle: fonction } →
60711
+ // fonction globale nommee par `handler` → filet historique. Le premier qui
60712
+ // repond gagne ; aucun ne repond = avertissement, jamais un clic mort et muet.
60713
+ var runDeclaredAction = useCallback(function (action, handlers, fallback, nomDeLaTable) {
60714
+ var ctx = buildActionContext(action.key);
60715
+ if (typeof action.onClick === 'function') return action.onClick(ctx);
60716
+ var mappe = handlers === null || handlers === void 0 ? void 0 : handlers[action.key];
60717
+ if (typeof mappe === 'function') return mappe(ctx);
60718
+ var global = resolveGlobalHandler(action.handler);
60719
+ if (global) return global(ctx);
60720
+ if (typeof fallback === 'function') return fallback(ctx);
60721
+ console.warn("[arengibook/Table] L'action \xAB ".concat(action.key, " \xBB est declaree mais rien ne l'execute. ") + "Fournir soit action.onClick, soit ".concat(nomDeLaTable, "['").concat(action.key, "'], ") + "soit action.handler: 'nomDeLaFonctionGlobale'.");
60722
+ return undefined;
60723
+ }, [buildActionContext]);
60565
60724
  var actionsSecondaires = [].concat(_toConsumableArray$8(toolbarActions.map(function (a) {
60566
60725
  var _a$title;
60567
60726
  return {
@@ -60572,7 +60731,9 @@ var Table$1 = function Table(_ref16) {
60572
60731
  disabled: !!a.disabled,
60573
60732
  danger: !!a.danger,
60574
60733
  action: function action() {
60575
- return onToolbarAction === null || onToolbarAction === void 0 ? void 0 : onToolbarAction(a.key);
60734
+ return runDeclaredAction(a, toolbarActionHandlers, onToolbarAction ? function (ctx) {
60735
+ return onToolbarAction(a.key, ctx);
60736
+ } : null, 'toolbarActionHandlers');
60576
60737
  }
60577
60738
  };
60578
60739
  })), [typeof onReorderClick === 'function' ? function () {
@@ -60588,7 +60749,13 @@ var Table$1 = function Table(_ref16) {
60588
60749
  disabled: bloque,
60589
60750
  action: onReorderClick
60590
60751
  };
60591
- }() : null, lockable ? {
60752
+ }() : null,
60753
+ // Le verrou n'a de sens qu'au-dessus d'un tableau EDITABLE : sans
60754
+ // `editable`, `effectiveEditable` vaut false quoi qu'il arrive, et
60755
+ // « Activer l'edition » serait une promesse que le clic ne tient pas.
60756
+ // On teste `editable` brut et non `effectiveEditable` — celui-ci depend
60757
+ // de `locked`, l'entree disparaitrait des qu'on reverrouille.
60758
+ lockable && editable ? {
60592
60759
  key: 'lock',
60593
60760
  icon: locked ? 'lock' : 'lock_open',
60594
60761
  label: locked ? translate('arengibook.table.toolbar.unlock', labels) : translate('arengibook.table.toolbar.lock', labels),
@@ -60716,6 +60883,48 @@ var Table$1 = function Table(_ref16) {
60716
60883
  if (!suivant.length) return;
60717
60884
  onColumnToggle(suivant);
60718
60885
  };
60886
+
60887
+ // ─────────────────────────────────────────────────────────────────────────────
60888
+ // Tout afficher / tout masquer, sur la liste TELLE QU'ELLE EST AFFICHEE
60889
+ //
60890
+ // La bascule porte sur `colonnesListees`, donc sur le resultat de la recherche
60891
+ // et pas sur les dizaines de colonnes du tableau : chercher « date » puis tout
60892
+ // cocher doit cocher les colonnes de date, pas les autres. C'est la lecture la
60893
+ // moins surprenante, et la seule qui rende la recherche utile.
60894
+ //
60895
+ // Trois etats, comme la case de selection des lignes (meme composant
60896
+ // `CaseACocher`) : rien de coche, une partie, tout.
60897
+ // ─────────────────────────────────────────────────────────────────────────────
60898
+ var champsListes = colonnesListees.map(function (c) {
60899
+ return c.field;
60900
+ });
60901
+ var nbListeesVisibles = champsListes.filter(function (f) {
60902
+ return visibleColumns.some(function (c) {
60903
+ return c.field === f;
60904
+ });
60905
+ }).length;
60906
+ var etatColonnesListees = nbListeesVisibles === 0 ? 'aucune' : nbListeesVisibles === champsListes.length ? 'toutes' : 'partielle';
60907
+ var basculerToutesLesColonnes = function basculerToutesLesColonnes() {
60908
+ var visibles = visibleColumns.map(function (c) {
60909
+ return c.field;
60910
+ });
60911
+ if (etatColonnesListees === 'toutes') {
60912
+ var _colonnesReglables$;
60913
+ // ⚠️ Un tableau sans aucune colonne ne se rend pas — `basculerColonne`
60914
+ // refuse deja de masquer la derniere. On garde donc la PREMIERE de
60915
+ // l'ordre du tableau : c'est celle qui porte le numero ou l'intitule,
60916
+ // donc la seule dont l'absence rendrait les lignes anonymes.
60917
+ var restant = visibles.filter(function (f) {
60918
+ return !champsListes.includes(f);
60919
+ });
60920
+ var suivant = restant.length ? restant : [(_colonnesReglables$ = colonnesReglables[0]) === null || _colonnesReglables$ === void 0 ? void 0 : _colonnesReglables$.field].filter(Boolean);
60921
+ if (!suivant.length) return;
60922
+ onColumnToggle(suivant);
60923
+ return;
60924
+ }
60925
+ // Rien ou une partie : on affiche tout ce qui est liste, sans toucher au reste.
60926
+ onColumnToggle(_toConsumableArray$8(new Set([].concat(_toConsumableArray$8(visibles), _toConsumableArray$8(champsListes)))));
60927
+ };
60719
60928
  var header = /*#__PURE__*/React__default.createElement("div", {
60720
60929
  className: "ab-toolbar"
60721
60930
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -60789,36 +60998,36 @@ var Table$1 = function Table(_ref16) {
60789
60998
  className: "ab-menu"
60790
60999
  }, rowSelection && nbSelectionnees > 0 && selectionActions.length > 0 && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
60791
61000
  className: "ab-menu__titre"
60792
- }, translate('arengibook.table.selection.onSelection', labels), ' · ', nbSelectionnees), selectionActions.map(function (_ref39) {
60793
- var key = _ref39.key,
60794
- icon = _ref39.icon,
60795
- label = _ref39.label,
60796
- danger = _ref39.danger;
61001
+ }, translate('arengibook.table.selection.onSelection', labels), ' · ', nbSelectionnees), selectionActions.map(function (a) {
60797
61002
  return /*#__PURE__*/React__default.createElement("button", {
60798
- key: "sel-".concat(key),
61003
+ key: "sel-".concat(a.key),
60799
61004
  type: "button",
60800
- className: "ab-menu__item".concat(danger ? ' ab-menu__item--danger' : ''),
61005
+ className: "ab-menu__item".concat(a.danger ? ' ab-menu__item--danger' : ''),
60801
61006
  onClick: function onClick() {
60802
61007
  setMenuOpen(false);
60803
- onSelectionAction === null || onSelectionAction === void 0 || onSelectionAction(data.filter(function (r) {
60804
- return r._selected;
60805
- }), key);
60806
- }
60807
- }, icon && /*#__PURE__*/React__default.createElement("span", {
61008
+ // Meme resolution que pour la barre d'outils : l'app
61009
+ // decide de ce que fait CHAQUE action, pas le composant.
61010
+ // `onSelectionAction(lignes, cle)` garde sa signature
61011
+ // historique en dernier recours.
61012
+ runDeclaredAction(a, selectionActionHandlers, onSelectionAction ? function (ctx) {
61013
+ return onSelectionAction(ctx.selectedRows, a.key, ctx);
61014
+ } : null, 'selectionActionHandlers');
61015
+ }
61016
+ }, a.icon && /*#__PURE__*/React__default.createElement("span", {
60808
61017
  className: "material-icons"
60809
- }, icon), label);
61018
+ }, a.icon), a.label);
60810
61019
  }), actionsSecondaires.length > 0 && /*#__PURE__*/React__default.createElement("div", {
60811
61020
  className: "ab-menu__filet"
60812
61021
  })), actionsSecondaires.length > 0 && /*#__PURE__*/React__default.createElement("div", {
60813
61022
  className: "ab-menu__titre"
60814
- }, translate('arengibook.table.selection.onTable', labels)), actionsSecondaires.map(function (_ref40) {
60815
- var key = _ref40.key,
60816
- icon = _ref40.icon,
60817
- label = _ref40.label,
60818
- title = _ref40.title,
60819
- disabled = _ref40.disabled,
60820
- danger = _ref40.danger,
60821
- action = _ref40.action;
61023
+ }, translate('arengibook.table.selection.onTable', labels)), actionsSecondaires.map(function (_ref39) {
61024
+ var key = _ref39.key,
61025
+ icon = _ref39.icon,
61026
+ label = _ref39.label,
61027
+ title = _ref39.title,
61028
+ disabled = _ref39.disabled,
61029
+ danger = _ref39.danger,
61030
+ action = _ref39.action;
60822
61031
  return /*#__PURE__*/React__default.createElement("button", {
60823
61032
  key: key,
60824
61033
  type: "button",
@@ -60859,7 +61068,17 @@ var Table$1 = function Table(_ref16) {
60859
61068
  className: "ab-brain__head"
60860
61069
  }, /*#__PURE__*/React__default.createElement("span", {
60861
61070
  className: "material-icons"
60862
- }, "tune"), translate('arengibook.table.toolbar.settingsPanel', labels)), /*#__PURE__*/React__default.createElement("div", {
61071
+ }, "tune"), translate('arengibook.table.toolbar.settingsPanel', labels), /*#__PURE__*/React__default.createElement("button", {
61072
+ type: "button",
61073
+ className: "ab-brain__close",
61074
+ onClick: function onClick() {
61075
+ return setSettingsOpen(false);
61076
+ },
61077
+ title: translate('arengibook.common.close', labels),
61078
+ "aria-label": translate('arengibook.common.close', labels)
61079
+ }, /*#__PURE__*/React__default.createElement("span", {
61080
+ className: "material-icons"
61081
+ }, "close"))), /*#__PURE__*/React__default.createElement("div", {
60863
61082
  className: "ab-brain__corps"
60864
61083
  }, /*#__PURE__*/React__default.createElement("div", {
60865
61084
  className: "ab-brain__sec ab-brain__sec--cols"
@@ -60901,7 +61120,13 @@ var Table$1 = function Table(_ref16) {
60901
61120
  className: "material-icons"
60902
61121
  }, "close"))), /*#__PURE__*/React__default.createElement("div", {
60903
61122
  className: "ab-brain__cols-legende"
60904
- }, /*#__PURE__*/React__default.createElement("span", null, translate('arengibook.table.settings.colVisible', labels)), /*#__PURE__*/React__default.createElement("span", null, translate('arengibook.table.settings.colFreeze', labels))), /*#__PURE__*/React__default.createElement("div", {
61123
+ }, /*#__PURE__*/React__default.createElement("span", {
61124
+ className: "ab-brain__cols-legende__gauche"
61125
+ }, /*#__PURE__*/React__default.createElement(CaseACocher, {
61126
+ etat: etatColonnesListees,
61127
+ onClick: basculerToutesLesColonnes,
61128
+ titre: etatColonnesListees === 'toutes' ? translate('arengibook.table.settings.colNone', labels) : translate('arengibook.table.settings.colAll', labels)
61129
+ }), translate('arengibook.table.settings.colVisible', labels)), /*#__PURE__*/React__default.createElement("span", null, translate('arengibook.table.settings.colFreeze', labels))), /*#__PURE__*/React__default.createElement("div", {
60905
61130
  className: "ab-brain__cols"
60906
61131
  }, colonnesListees.map(function (col) {
60907
61132
  var visible = visibleColumns.some(function (c) {
@@ -60969,9 +61194,9 @@ var Table$1 = function Table(_ref16) {
60969
61194
  }, {
60970
61195
  key: 'fit',
60971
61196
  label: translate('arengibook.table.settings.rowHeightFit', labels)
60972
- }].map(function (_ref41) {
60973
- var key = _ref41.key,
60974
- label = _ref41.label;
61197
+ }].map(function (_ref40) {
61198
+ var key = _ref40.key,
61199
+ label = _ref40.label;
60975
61200
  return /*#__PURE__*/React__default.createElement("button", {
60976
61201
  key: key,
60977
61202
  type: "button",
@@ -61010,9 +61235,9 @@ var Table$1 = function Table(_ref16) {
61010
61235
  }, {
61011
61236
  key: 'fit',
61012
61237
  label: translate('arengibook.table.settings.rowHeightFit', labels)
61013
- }].map(function (_ref42) {
61014
- var key = _ref42.key,
61015
- label = _ref42.label;
61238
+ }].map(function (_ref41) {
61239
+ var key = _ref41.key,
61240
+ label = _ref41.label;
61016
61241
  return /*#__PURE__*/React__default.createElement("button", {
61017
61242
  key: key,
61018
61243
  type: "button",
@@ -61043,9 +61268,9 @@ var Table$1 = function Table(_ref16) {
61043
61268
  }, {
61044
61269
  key: 'center',
61045
61270
  label: translate('arengibook.table.settings.alignCenter', labels)
61046
- }].map(function (_ref43) {
61047
- var key = _ref43.key,
61048
- label = _ref43.label;
61271
+ }].map(function (_ref42) {
61272
+ var key = _ref42.key,
61273
+ label = _ref42.label;
61049
61274
  return /*#__PURE__*/React__default.createElement("button", {
61050
61275
  key: key,
61051
61276
  type: "button",
@@ -61086,7 +61311,13 @@ var Table$1 = function Table(_ref16) {
61086
61311
  className: "material-icons"
61087
61312
  }, fullscreen ? 'fullscreen_exit' : 'fullscreen'))));
61088
61313
  return /*#__PURE__*/React__default.createElement("div", {
61089
- className: "dataTables_wrapper ab-align--".concat(alignement),
61314
+ // `ab-table` sur la RACINE, et non seulement sur le `<table>` : c'est
61315
+ // l'ancetre commun qui permet de cloisonner ce que PrimeReact rend
61316
+ // AUTOUR du tableau — la barre d'outils (`.p-datatable-header`) et le
61317
+ // paginateur. Sans elle, une regle visant l'en-tete devait passer par
61318
+ // `.p-datatable`, qui atteindrait aussi les DataTable propres a
61319
+ // l'application hote (leur `TableEventForm`).
61320
+ className: "ab-table dataTables_wrapper ab-align--".concat(alignement),
61090
61321
  ref: tableWrapperRef
61091
61322
  // Compteur de recalage des colonnes gelees (cf. `recalageGel`). Present
61092
61323
  // dans le DOM pour que le rendu supplementaire ait un effet observable.
@@ -61533,7 +61764,7 @@ var Table$1 = function Table(_ref16) {
61533
61764
  columnKey: "__row_actions__",
61534
61765
  header: inline ? actionsCol.actionsHeader || '' : '',
61535
61766
  body: function body(rowData) {
61536
- var _ref44, _linkCol$href;
61767
+ var _ref43, _linkCol$href;
61537
61768
  var rowActions = rowData[actionsCol.actionsField] || [];
61538
61769
  if (inline) {
61539
61770
  return /*#__PURE__*/React__default.createElement(RowActionsInlineCell, {
@@ -61547,7 +61778,7 @@ var Table$1 = function Table(_ref16) {
61547
61778
  var linkCol = columns.find(function (c) {
61548
61779
  return c.type === 'titleLink' || c.type === 'link';
61549
61780
  });
61550
- var linkHref = linkCol ? typeof linkCol.href === 'function' ? linkCol.href(rowData) : (_ref44 = (_linkCol$href = linkCol.href) !== null && _linkCol$href !== void 0 ? _linkCol$href : rowData[linkCol.field + 'Url']) !== null && _ref44 !== void 0 ? _ref44 : null : null;
61781
+ var linkHref = linkCol ? typeof linkCol.href === 'function' ? linkCol.href(rowData) : (_ref43 = (_linkCol$href = linkCol.href) !== null && _linkCol$href !== void 0 ? _linkCol$href : rowData[linkCol.field + 'Url']) !== null && _ref43 !== void 0 ? _ref43 : null : null;
61551
61782
  return /*#__PURE__*/React__default.createElement(RowActionsCell, {
61552
61783
  actions: rowActions,
61553
61784
  rowData: rowData,
@@ -61680,10 +61911,7 @@ var Table$1 = function Table(_ref16) {
61680
61911
  return dateFilterElement(opts, col);
61681
61912
  } : col.type === 'index' ? compactTextFilterElement : textFilterElement,
61682
61913
  showFilterMenu: false,
61683
- showClearButton: col.type === 'index' ? false : undefined,
61684
- filterHeaderStyle: col.type === 'index' ? {
61685
- padding: '2px'
61686
- } : undefined
61914
+ showClearButton: col.type === 'index' ? false : undefined
61687
61915
  // Point d'enrobage UNIQUE du contenu de cellule : `div-col` est donc
61688
61916
  // présente sur toutes les colonnes et dans les deux états — lecture
61689
61917
  // comme édition, les éditeurs de cellule étant rendus par le `body`
@@ -61711,7 +61939,25 @@ var Table$1 = function Table(_ref16) {
61711
61939
  }, tpl(options));
61712
61940
  } : undefined;
61713
61941
  }(),
61714
- onCellEditComplete: !rowEdit && col.type === 'documents' && (effectiveEditable ? col.editable !== false : col.editable === true) ? onCellEditComplete : undefined,
61942
+ onCellEditComplete: !rowEdit && col.type === 'documents' && (effectiveEditable ? col.editable !== false : col.editable === true) ? onCellEditComplete : undefined
61943
+ // ──────────────────────────────────────────────────────────
61944
+ // L'EN-TETE DIT CE QUE SA COLONNE PERMET
61945
+ // ──────────────────────────────────────────────────────────
61946
+ // Choix du 08/09/2026 (planche « Le gris est plein ») : le trait
61947
+ // d'accent sous les titres est remplace par une marque PAR
61948
+ // COLONNE — fond plus fonce et crayon pour les modifiables,
61949
+ // cadenas pour les autres. Le CSS peint tout cela, mais il ne
61950
+ // peut pas SAVOIR : une regle ne remonte pas d'un `<td>` vers le
61951
+ // `<th>` de sa colonne, et apparier les index aurait demande
61952
+ // quarante `:has()` reevalues a chaque mutation du corps.
61953
+ //
61954
+ // Rien n'est marque hors edition : `tableauEnEdition` est faux
61955
+ // sous verrou comme sur un tableau ou aucune colonne n'accepte la
61956
+ // saisie, et un tableau ou rien n'est modifiable n'a pas besoin de
61957
+ // le repeter colonne par colonne — l'absence de marque y est l'etat
61958
+ // normal, pas une information a deduire.
61959
+ ,
61960
+ headerClassName: tableauEnEdition ? colonneEditable(col) ? 'ab-th--editable' : 'ab-th--lecture' : undefined,
61715
61961
  bodyClassName:
61716
61962
  // `ab-td--editable` : le CSS ne peut pas deviner qu'une cellule
61717
61963
  // s'edite. Sans cette marque, le survol appuye promettrait un clic
@@ -62414,18 +62660,199 @@ var columnsTyped = [
62414
62660
  type: 'journal'
62415
62661
  }];
62416
62662
 
62663
+ // ─── Jeu réduit : les presets « capacité » ────────────────────────────────────
62664
+ //
62665
+ // Le preset `Base` montre les 20+ types de colonnes ; tous les autres presets
62666
+ // démontrent UNE capacité du tableau (édition, sélection, pagination…). Ils
62667
+ // partagent volontairement le même petit jeu de colonnes pour que la seule
62668
+ // différence visible entre deux presets soit la capacité qu'ils illustrent.
62669
+
62670
+ var columnsSimples = [{
62671
+ field: 'nom',
62672
+ header: 'Intitulé',
62673
+ type: 'titleLink',
62674
+ editable: true,
62675
+ actionsField: 'nomActions'
62676
+ }, {
62677
+ field: 'statut',
62678
+ header: 'Statut',
62679
+ type: 'select',
62680
+ editable: true,
62681
+ options: statutOptions
62682
+ }, {
62683
+ field: 'categorie',
62684
+ header: 'Catégorie',
62685
+ type: 'select',
62686
+ editable: true,
62687
+ options: categorieOptions
62688
+ }, {
62689
+ field: 'dateInscription',
62690
+ header: 'Inscription',
62691
+ type: 'date',
62692
+ editable: true
62693
+ }, {
62694
+ field: 'budget',
62695
+ header: 'Budget (€)',
62696
+ type: 'numeric',
62697
+ editable: true,
62698
+ min: 0,
62699
+ max: 500000
62700
+ }, {
62701
+ field: 'avancement',
62702
+ header: 'Avancement',
62703
+ type: 'progress'
62704
+ }];
62705
+
62706
+ // Base commune à tous les presets « capacité » : mêmes données, mêmes colonnes,
62707
+ // pas de bouton d'ajout — chaque preset n'ajoute QUE ce qu'il démontre.
62708
+ var capacite = function capacite(tableId, props) {
62709
+ return _objectSpread2({
62710
+ value: dataTyped,
62711
+ columns: columnsSimples,
62712
+ tableId: tableId,
62713
+ editable: false,
62714
+ rowEdit: false,
62715
+ showAdd: false
62716
+ }, props);
62717
+ };
62718
+
62719
+ // ─── Actions de démonstration ─────────────────────────────────────────────────
62720
+ //
62721
+ // Le composant n'embarque AUCUNE action métier : c'est l'application qui décide
62722
+ // des actions de son tableau et de ce qu'elles font. Les listes ci-dessous ne
62723
+ // sont donc pas des défauts, seulement le jeu d'exemple des presets qui montrent
62724
+ // le mécanisme — et elles restent purement DÉCLARATIVES (`{ key, icon, label }`,
62725
+ // sérialisable, donc transmissible depuis Twig par `data-props`). Le code qui
62726
+ // s'exécute est fourni à part, par `toolbarActionHandlers` / `onClick` /
62727
+ // `handler`, comme le ferait l'application hôte.
62728
+
62729
+ var demoToolbarActions = [{
62730
+ key: 'export-csv',
62731
+ icon: 'ios_share',
62732
+ label: 'Exporter en CSV'
62733
+ }, {
62734
+ key: 'copier',
62735
+ icon: 'content_copy',
62736
+ label: 'Copier le tableau'
62737
+ }, {
62738
+ key: 'imprimer',
62739
+ icon: 'print',
62740
+ label: 'Imprimer'
62741
+ }];
62742
+ var demoSelectionActions = [{
62743
+ key: 'copier-selection',
62744
+ icon: 'content_copy',
62745
+ label: 'Copier la sélection'
62746
+ }, {
62747
+ key: 'exporter-selection',
62748
+ icon: 'ios_share',
62749
+ label: 'Exporter la sélection'
62750
+ }, {
62751
+ key: 'supprimer',
62752
+ icon: 'delete',
62753
+ label: 'Supprimer',
62754
+ danger: true
62755
+ }];
62756
+
62417
62757
  // ─── Exports ──────────────────────────────────────────────────────────────────
62418
62758
 
62419
62759
  var TablePresets = {
62760
+ // Tableau de référence : tous les types de colonnes, édition active et
62761
+ // sélection de lignes. Aucune action métier déclarée — importer, exporter,
62762
+ // imprimer n'appartiennent pas au composant mais à l'application qui
62763
+ // l'intègre. Voir le preset `ActionsPersonnalisees`.
62420
62764
  Base: {
62421
62765
  value: dataTyped,
62422
62766
  columns: columnsTyped,
62423
62767
  editable: true,
62424
62768
  tableId: 'table-presets-demo',
62425
- onAdd: function onAdd(row, updated) {
62426
- console.log(row.id);
62769
+ rowSelection: true
62770
+ },
62771
+ // Lecture seule : aucune cellule éditable, pas de bouton d'ajout.
62772
+ Lecture: capacite('table-preset-lecture', {
62773
+ columnFilter: false
62774
+ }),
62775
+ // Édition cellule par cellule : un clic sur la cellule ouvre l'éditeur du type.
62776
+ EditionCellule: capacite('table-preset-edition-cellule', {
62777
+ editable: true
62778
+ }),
62779
+ // Édition par ligne : crayon / ✓ / ✗ ; toutes les cellules de la ligne
62780
+ // s'activent d'un coup, la sauvegarde émet `onChange` avec le tableau complet.
62781
+ EditionLigne: capacite('table-preset-edition-ligne', {
62782
+ editable: true,
62783
+ rowEdit: true
62784
+ }),
62785
+ // Cadenas : le tableau est en lecture seule tant que l'utilisateur ne
62786
+ // déverrouille pas explicitement (garde-fou contre l'édition accidentelle).
62787
+ Verrouillage: capacite('table-preset-verrouillage', {
62788
+ editable: true,
62789
+ lockable: true
62790
+ }),
62791
+ // Édition déléguée : le composant n'édite pas, il remonte la ligne à l'app
62792
+ // (`onEditRow`) qui ouvre sa propre UI (fiche latérale, pop-in…).
62793
+ EditionDeleguee: capacite('table-preset-edition-deleguee', {
62794
+ editableRows: true
62795
+ }),
62796
+ // Sélection de lignes : colonne de coches gelée, barre de sélection et
62797
+ // filtre Tous / Cochés / Non cochés.
62798
+ SelectionLignes: capacite('table-preset-selection', {
62799
+ rowSelection: true,
62800
+ selectionFilter: true,
62801
+ selectionActions: demoSelectionActions
62802
+ }),
62803
+ // Suppression : colonne poubelle gelée + pop-in de confirmation.
62804
+ SuppressionLignes: capacite('table-preset-suppression', {
62805
+ deletableRows: true,
62806
+ confirmDelete: true
62807
+ }),
62808
+ // Ajout de ligne : bouton dédié, libellé et infobulle dissociés, insertion
62809
+ // en fin de tableau (le composant amène l'utilisateur sur la ligne créée).
62810
+ AjoutLigne: capacite('table-preset-ajout', {
62811
+ editable: true,
62812
+ showAdd: true,
62813
+ addLabel: '+ Risque',
62814
+ addTooltip: 'Créer un nouveau risque dans ce registre',
62815
+ addRowPosition: 'end'
62816
+ }),
62817
+ // Actions définies par l'application : `toolbarActions` déclare les entrées
62818
+ // du menu « Actions » (sur le tableau) et `selectionActions` celles qui
62819
+ // portent sur les lignes cochées. Les libellés, les icônes ET le code exécuté
62820
+ // viennent tous de l'app — le composant ne fait que les présenter.
62821
+ ActionsPersonnalisees: capacite('table-preset-actions', {
62822
+ rowSelection: true,
62823
+ toolbarActions: demoToolbarActions,
62824
+ selectionActions: demoSelectionActions
62825
+ }),
62826
+ // Recherche par colonne : un champ de filtre sous chaque en-tête.
62827
+ FiltresColonnes: capacite('table-preset-filtres', {
62828
+ columnFilter: true
62829
+ }),
62830
+ // Pagination : 3 lignes par page pour rendre le pied de tableau visible.
62831
+ Pagination: capacite('table-preset-pagination', {
62832
+ paginator: true,
62833
+ rows: 3
62834
+ }),
62835
+ // Hauteur de ligne : préréglage initial, réglable ensuite via le menu ⚙
62836
+ // et persisté par `tableId`.
62837
+ HauteurLignes: capacite('table-preset-hauteur', {
62838
+ defaultRowHeight: 'medium'
62839
+ }),
62840
+ // Lignes zébrées : alternance de fond pour suivre une ligne large du regard.
62841
+ LignesZebrees: capacite('table-preset-zebre', {
62842
+ stripedRows: true
62843
+ }),
62844
+ // État de chargement : squelette/spinner pendant la requête de l'app.
62845
+ Chargement: capacite('table-preset-chargement', {
62846
+ loading: true
62847
+ }),
62848
+ // Libellés i18n surchargés par instance (clés `arengibook.*`).
62849
+ Libelles: capacite('table-preset-libelles', {
62850
+ labels: {
62851
+ 'arengibook.table.toolbar.settings': 'Réglages du tableau',
62852
+ 'arengibook.table.toolbar.columns': 'Colonnes affichées',
62853
+ 'arengibook.table.toolbar.fullscreen': 'Agrandir'
62427
62854
  }
62428
- }
62855
+ })
62429
62856
  };
62430
62857
 
62431
62858
  var perimetresDemo = [{
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arengibook",
3
3
  "private": false,
4
- "version": "3.3.1-preprod",
4
+ "version": "3.3.1-preprodtable2",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "exports": {