arengibook 3.1.28-main → 3.1.51-itemWithTooltip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1438 -212
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -13488,7 +13488,7 @@ var LOCALES = {
|
|
|
13488
13488
|
var css_248z$6 = "@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/* Force une largeur à 100% de l'input Calendar */\n.datepicker-fullwidth {\n width: 100%;\n}\n\n.datepicker-fullwidth > .dp-input-wrapper {\n width: 100%;\n}\n.datepicker-fullwidth > .dp-input-wrapper > .p-calendar {\n width: 100%;\n}\n\n.dp-input-wrapper {\n position: relative;\n display: inline-flex;\n}\n.dp-input-wrapper .dp-clear-btn {\n position: absolute;\n right: 7px;\n top: 50%;\n transform: translateY(-50%);\n background: none;\n border: none;\n cursor: pointer;\n padding: 2.8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #b0b8c4;\n z-index: 1;\n border-radius: 50%;\n line-height: 1;\n}\n.dp-input-wrapper .dp-clear-btn:hover {\n color: #1a1e26;\n background-color: rgba(0, 0, 0, 0.06);\n}\n.dp-input-wrapper .dp-clear-btn .pi {\n font-size: 9.1px;\n}\n\n/* Application du mixin field sur l'input du Calendar */\n.p-calendar > .p-inputtext {\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}\n.p-calendar > .p-inputtext:hover:not(:focus):not(:focus-within):not([disabled]):not(.is-disabled) {\n border-color: #c8cdd6;\n}\n.p-calendar > .p-inputtext:focus, .p-calendar > .p-inputtext:focus-within, .p-calendar > .p-inputtext.is-open {\n border-color: #3f3f3f;\n box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);\n}\n.p-calendar > .p-inputtext[disabled], .p-calendar > .p-inputtext.is-disabled {\n opacity: 0.45;\n cursor: not-allowed;\n pointer-events: none;\n}\n.p-calendar > .p-inputtext[readonly], .p-calendar > .p-inputtext.is-readonly {\n background: #f4f5f6;\n cursor: default;\n box-shadow: none;\n}\n.p-calendar > .p-inputtext[readonly]:hover, .p-calendar > .p-inputtext.is-readonly:hover {\n border-color: #e0e3e8;\n}\n.p-calendar > .p-inputtext.is-error {\n border-color: #dc2626;\n box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);\n}\n.p-calendar > .p-inputtext.is-success {\n border-color: #15803d;\n box-shadow: 0 0 0 3px rgba(21, 128, 61, 0.12);\n}\n.p-calendar > .p-inputtext:hover {\n border-color: #c8cdd6 !important;\n}\n.p-calendar > .p-inputtext:focus, .p-calendar > .p-inputtext.p-focus {\n border-color: #3f3f3f !important;\n box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1) !important;\n outline: none;\n}\n\n/* Panel invisible jusqu'au repositionnement (évite le flash position basse → haute) */\n.datepickerbook:not(.dp-ready) {\n visibility: hidden !important;\n}\n\n/* Neutralise les styles hérités */\n.datepickerbook table,\n.datepickerbook tbody,\n.datepickerbook tr,\n.datepickerbook td,\n.datepickerbook th {\n background-color: unset !important;\n color: inherit !important;\n border: none;\n}\n\n/* Restaure les couleurs et l'entete du calendrier */\n.datepickerbook .p-datepicker {\n background-color: #ffffff !important;\n color: #1a1e26 !important;\n border-radius: 7px;\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);\n}\n\n.datepickerbook .datepicker-custom-header {\n display: flex;\n flex-direction: column;\n gap: 7px;\n padding: 7px 10.5px;\n}\n\n.datepickerbook .datepicker-spinner {\n display: flex;\n flex-direction: column;\n align-items: center;\n font-size: 11.9px;\n}\n\n.datepickerbook .dp-label {\n margin: 3.5px 0;\n font-weight: 500;\n}\n\n.p-datepicker .p-datepicker-title,\n.p-datepicker .p-datepicker-prev,\n.p-datepicker .p-datepicker-next {\n display: none !important;\n}\n\n.datepickerbook .p-datepicker-header {\n justify-content: center;\n}\n\n.datepickerbook .dp-popup {\n position: absolute;\n top: 100%;\n margin-top: 3.5px;\n background: #ffffff;\n border: 1px solid #e0e3e8;\n border-radius: 4px;\n padding: 3.5px;\n z-index: 10;\n}\n\n.datepickerbook .dp-popup-months,\n.datepickerbook .dp-popup-years {\n display: grid;\n grid-template-columns: repeat(3, auto);\n gap: 3.5px;\n}\n\n.datepickerbook .dp-popup-item {\n border: none;\n background: transparent;\n padding: 2.1px 5.6px;\n cursor: pointer;\n font-size: 11.2px;\n}\n\n.datepickerbook .dp-popup-item:hover {\n background: #f4f5f6;\n}\n\n/*.datepickerbook .dp-header-top {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 10.5px;\n}*/\n.datepickerbook .dp-header-part {\n display: flex;\n align-items: center;\n gap: 3.5px;\n}\n\n.datepickerbook .dp-label-button {\n border: none;\n background: transparent;\n cursor: pointer;\n font-weight: 800;\n font-size: 16px;\n margin: 3.5px 0;\n}\n\n.datepickerbook.dp-monthyear-mode .dp-monthyear-header {\n padding-bottom: 3.5px;\n}\n\n.datepickerbook {\n display: flex;\n align-items: center;\n gap: 7px;\n margin-bottom: 3.5px;\n}\n\n.datepickerbook .dp-back-button {\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 12.6px;\n}\n\n.datepickerbook .dp-title {\n font-weight: 600;\n font-size: 12.6px;\n}\n\n/* Colonnes mois / années */\n.datepickerbook .dp-header-lists {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 7px;\n}\n\n.datepickerbook .dp-month-list,\n.datepickerbook .dp-year-list {\n padding-right: 3.5px;\n display: flex;\n flex-direction: column;\n gap: 2.1px;\n}\n\n.datepickerbook .dp-list-item:hover {\n background: #f4f5f6;\n}\n\n.p-datepicker-header.datepicker-custom-header.dp-monthyear-header {\n margin: auto;\n}\n\n/*.p-monthpicker*/\n.p-datepicker.dp-monthyear-mode {\n box-shadow: none !important;\n border-radius: 0px;\n}\n.p-datepicker.dp-monthyear-mode .dp-header-top-alt {\n display: none !important;\n}\n\n.p-datepicker-monthpicker.dp-monthyear-mode {\n box-shadow: none !important;\n border-radius: 0px;\n}\n.p-datepicker-monthpicker.dp-monthyear-mode .dp-header-top-alt {\n display: none !important;\n}\n\n.p-datepicker {\n width: 331px !important;\n min-width: 331px !important;\n max-width: 331px !important;\n}\n.p-datepicker .dp-arrow {\n border: none;\n background-color: transparent;\n color: #b0b8c4;\n cursor: pointer;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1), background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-datepicker .dp-arrow:hover {\n color: #3f3f3f;\n background-color: rgba(63, 63, 63, 0.08);\n}\n.p-datepicker.dp-year-only {\n box-shadow: none !important;\n width: auto !important;\n min-width: unset !important;\n max-width: unset !important;\n}\n.p-datepicker.dp-year-only .dp-header-top-alt {\n display: none !important;\n}\n.p-datepicker.dp-year-only .dp-monthyear-header {\n width: 205px;\n min-width: 205px;\n max-width: 205px;\n}\n.p-datepicker.dp-year-only .dp-monthyear-header .dp-year-container {\n width: 100%;\n}\n.p-datepicker.dp-year-only .dp-year-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n}\n.p-datepicker.dp-year-only .dp-year-container .dp-arrow-container {\n width: 100%;\n border-top: 1px solid #e0e3e8;\n height: 51px;\n display: flex;\n align-items: center;\n}\n.p-datepicker.dp-year-only .dp-year-container .dp-arrow-container .dp-arrow-up {\n border-right: 1px solid #e0e3e8;\n border-radius: 0px 0px 0px 5px !important;\n}\n.p-datepicker.dp-year-only .dp-year-container .dp-arrow-container .dp-arrow-down {\n border-radius: 0px 0px 5px 0px !important;\n}\n.p-datepicker.dp-year-only .dp-year-container .dp-arrow-container .dp-arrow-year {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 49%;\n border-radius: 0px;\n flex: 1;\n}\n.p-datepicker.dp-year-only .dp-year-container .dp-arrow-container .dp-arrow-year:hover {\n background-color: rgba(63, 63, 63, 0.08);\n}\n.p-datepicker.dp-year-only .dp-year-container .dp-year-list {\n width: 100%;\n gap: 0px;\n padding: 0px;\n}\n.p-datepicker.dp-year-only .dp-year-container .dp-list-item-active {\n width: 100%;\n color: #ffffff !important;\n background-color: #3f3f3f !important;\n border-bottom: 1px solid #3f3f3f !important;\n font-weight: 600;\n}\n.p-datepicker.dp-year-only .dp-year-container .dp-list-item {\n background-color: transparent;\n border: none;\n color: #1a1e26;\n transition: 0s !important;\n height: 25px;\n font-size: 16px;\n border-radius: 0px;\n border-bottom: 1px solid #e0e3e8;\n width: 100%;\n}\n.p-datepicker.dp-year-only .dp-year-container .dp-list-item:not(.dp-list-item-big) {\n padding: 3px 10px !important;\n}\n.p-datepicker.dp-year-only .dp-year-container .dp-list-item:not(.dp-list-item-big):hover {\n background-color: rgba(63, 63, 63, 0.08) !important;\n color: #3f3f3f;\n}\n.p-datepicker.dp-year-only .dp-year-container .dp-list-item {\n padding: 3px 10px;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.dp-monthyear-mode .p-datepicker-group, .p-datepicker-monthpicker .p-datepicker-group, .dp-year-only .p-datepicker-group {\n padding: 0px !important;\n border: 0px solid transparent !important;\n}\n.dp-monthyear-mode .dp-monthyear-header, .p-datepicker-monthpicker .dp-monthyear-header, .dp-year-only .dp-monthyear-header {\n justify-content: flex-start;\n gap: 0;\n background: #ffffff;\n border: 1px solid rgba(255, 255, 255, 0.33);\n border-radius: 8px;\n position: absolute;\n top: 0;\n left: 0;\n padding: 0px !important;\n width: 331px;\n min-width: 331px;\n max-width: 331px;\n}\n.dp-monthyear-mode .dp-header-top-alt, .p-datepicker-monthpicker .dp-header-top-alt, .dp-year-only .dp-header-top-alt {\n width: 100%;\n height: 50px !important;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid #e0e3e8;\n}\n.dp-monthyear-mode .dp-header-top-alt .dp-header-top-alt-part:first-child, .p-datepicker-monthpicker .dp-header-top-alt .dp-header-top-alt-part:first-child, .dp-year-only .dp-header-top-alt .dp-header-top-alt-part:first-child {\n border-right: 1px solid #e0e3e8;\n}\n.dp-monthyear-mode .dp-header-top-alt .dp-header-top-alt-part, .p-datepicker-monthpicker .dp-header-top-alt .dp-header-top-alt-part, .dp-year-only .dp-header-top-alt .dp-header-top-alt-part {\n width: 49%;\n height: 50px;\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: 600;\n color: #1a1e26;\n font-size: 16px;\n text-transform: capitalize;\n}\n.dp-monthyear-mode .p-datepicker-calendar-container, .p-datepicker-monthpicker .p-datepicker-calendar-container, .dp-year-only .p-datepicker-calendar-container {\n display: none;\n}\n.dp-monthyear-mode .dp-actions, .p-datepicker-monthpicker .dp-actions, .dp-year-only .dp-actions {\n width: 100%;\n background-color: #ffffff;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 0px 0px 5px 5px;\n padding: 0px 10px 10px 10px;\n}\n.dp-monthyear-mode .dp-actions .p-button:first-child, .p-datepicker-monthpicker .dp-actions .p-button:first-child, .dp-year-only .dp-actions .p-button:first-child {\n border: 0px solid transparent;\n color: #3f3f3f;\n}\n.dp-monthyear-mode .dp-actions .p-button:last-child, .p-datepicker-monthpicker .dp-actions .p-button:last-child, .dp-year-only .dp-actions .p-button:last-child {\n background-color: #ffffff;\n border: 1px solid #3f3f3f;\n color: #3f3f3f;\n}\n.dp-monthyear-mode .dp-actions .p-button:last-child:hover, .p-datepicker-monthpicker .dp-actions .p-button:last-child:hover, .dp-year-only .dp-actions .p-button:last-child:hover {\n background-color: #3f3f3f;\n color: #ffffff;\n}\n.dp-monthyear-mode .dp-actions .p-button, .p-datepicker-monthpicker .dp-actions .p-button, .dp-year-only .dp-actions .p-button {\n padding: 10px 15px;\n}\n.dp-monthyear-mode .dp-actions .p-button .p-button-icon, .p-datepicker-monthpicker .dp-actions .p-button .p-button-icon, .dp-year-only .dp-actions .p-button .p-button-icon {\n display: none;\n}\n.dp-monthyear-mode .dp-header-lists, .p-datepicker-monthpicker .dp-header-lists, .dp-year-only .dp-header-lists {\n width: calc(100% - 20px);\n height: 300px;\n display: flex;\n align-items: flex-start;\n gap: initial;\n padding: 0px;\n margin: 10px;\n}\n.dp-monthyear-mode .dp-month-list, .p-datepicker-monthpicker .dp-month-list, .dp-year-only .dp-month-list {\n transition: none !important;\n border: 1px solid #e0e3e8;\n margin: 0px 10px 0px 0px !important;\n gap: 0px;\n}\n.dp-monthyear-mode .dp-month-list .dp-list-item-active, .p-datepicker-monthpicker .dp-month-list .dp-list-item-active, .dp-year-only .dp-month-list .dp-list-item-active {\n width: 100%;\n color: #ffffff !important;\n background-color: #3f3f3f !important;\n border-bottom: 1px solid #3f3f3f !important;\n font-weight: 600;\n}\n.dp-monthyear-mode .dp-month-list .dp-list-item, .p-datepicker-monthpicker .dp-month-list .dp-list-item, .dp-year-only .dp-month-list .dp-list-item {\n border: none;\n height: 25px;\n background-color: transparent;\n font-size: 16px;\n text-transform: capitalize;\n border-radius: 0px;\n margin: 0px;\n padding: 3px;\n width: calc(100% - 0px);\n border-bottom: 1px solid #e0e3e8;\n}\n.dp-monthyear-mode .dp-month-list .dp-list-item:hover, .p-datepicker-monthpicker .dp-month-list .dp-list-item:hover, .dp-year-only .dp-month-list .dp-list-item:hover {\n background-color: rgba(63, 63, 63, 0.08);\n}\n.dp-monthyear-mode .dp-month-list .dp-list-item:last-child, .p-datepicker-monthpicker .dp-month-list .dp-list-item:last-child, .dp-year-only .dp-month-list .dp-list-item:last-child {\n border: none;\n}\n.dp-monthyear-mode .dp-year-container, .p-datepicker-monthpicker .dp-year-container, .dp-year-only .dp-year-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n border: 1px solid #e0e3e8;\n}\n.dp-monthyear-mode .dp-year-container .dp-arrow-container, .p-datepicker-monthpicker .dp-year-container .dp-arrow-container, .dp-year-only .dp-year-container .dp-arrow-container {\n width: 100%;\n border-top: 1px solid #e0e3e8;\n height: 51px;\n display: flex;\n align-items: center;\n}\n.dp-monthyear-mode .dp-year-container .dp-arrow-container .dp-arrow-up, .p-datepicker-monthpicker .dp-year-container .dp-arrow-container .dp-arrow-up, .dp-year-only .dp-year-container .dp-arrow-container .dp-arrow-up {\n border-right: 1px solid #e0e3e8;\n}\n.dp-monthyear-mode .dp-year-container .dp-arrow-container .dp-arrow-year, .p-datepicker-monthpicker .dp-year-container .dp-arrow-container .dp-arrow-year, .dp-year-only .dp-year-container .dp-arrow-container .dp-arrow-year {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 49%;\n border-radius: 0px;\n flex: 1;\n}\n.dp-monthyear-mode .dp-year-container .dp-year-list, .p-datepicker-monthpicker .dp-year-container .dp-year-list, .dp-year-only .dp-year-container .dp-year-list {\n width: 100%;\n gap: 0px;\n padding: 0px;\n}\n.dp-monthyear-mode .dp-year-container .dp-list-item-active, .p-datepicker-monthpicker .dp-year-container .dp-list-item-active, .dp-year-only .dp-year-container .dp-list-item-active {\n width: 100%;\n color: #ffffff !important;\n background-color: #3f3f3f !important;\n border-bottom: 1px solid #3f3f3f !important;\n font-weight: 600;\n}\n.dp-monthyear-mode .dp-year-container .dp-list-item, .p-datepicker-monthpicker .dp-year-container .dp-list-item, .dp-year-only .dp-year-container .dp-list-item {\n background-color: transparent;\n border: none;\n color: #1a1e26;\n transition: 0s !important;\n height: 25px;\n font-size: 16px;\n border-radius: 0px;\n border-bottom: 1px solid #e0e3e8;\n width: 100%;\n padding: 3px 10px;\n}\n.dp-monthyear-mode .dp-year-container .dp-list-item:not(.dp-list-item-big), .p-datepicker-monthpicker .dp-year-container .dp-list-item:not(.dp-list-item-big), .dp-year-only .dp-year-container .dp-list-item:not(.dp-list-item-big) {\n padding: 3px 10px !important;\n}\n.dp-monthyear-mode .dp-year-container .dp-list-item:not(.dp-list-item-big):hover, .p-datepicker-monthpicker .dp-year-container .dp-list-item:not(.dp-list-item-big):hover, .dp-year-only .dp-year-container .dp-list-item:not(.dp-list-item-big):hover {\n background-color: rgba(63, 63, 63, 0.08) !important;\n color: #3f3f3f;\n}\n.dp-monthyear-mode .dp-month-list, .dp-monthyear-mode .dp-year-container, .p-datepicker-monthpicker .dp-month-list, .p-datepicker-monthpicker .dp-year-container, .dp-year-only .dp-month-list, .dp-year-only .dp-year-container {\n width: 49%;\n flex: 1;\n margin: 0px;\n background-color: transparent;\n padding: 0px;\n height: 100%;\n}\n.dp-monthyear-mode .dp-month-list .dp-list-item, .dp-monthyear-mode .dp-year-container .dp-list-item, .p-datepicker-monthpicker .dp-month-list .dp-list-item, .p-datepicker-monthpicker .dp-year-container .dp-list-item, .dp-year-only .dp-month-list .dp-list-item, .dp-year-only .dp-year-container .dp-list-item {\n cursor: pointer;\n}\n.dp-monthyear-mode .dp-month-list .dp-list-item:hover, .dp-monthyear-mode .dp-year-container .dp-list-item:hover, .p-datepicker-monthpicker .dp-month-list .dp-list-item:hover, .p-datepicker-monthpicker .dp-year-container .dp-list-item:hover, .dp-year-only .dp-month-list .dp-list-item:hover, .dp-year-only .dp-year-container .dp-list-item:hover {\n color: #3f3f3f;\n border-bottom: 1px solid rgba(63, 63, 63, 0.08);\n}\n.dp-monthyear-mode .dp-month-list:hover, .dp-monthyear-mode .dp-year-container:hover, .p-datepicker-monthpicker .dp-month-list:hover, .p-datepicker-monthpicker .dp-year-container:hover, .dp-year-only .dp-month-list:hover, .dp-year-only .dp-year-container:hover {\n background-color: rgba(255, 255, 255, 0.31);\n}\n\n.p-datepicker {\n padding: 0px;\n background-color: #ffffff;\n box-shadow: 1px 2px 26px rgba(0, 0, 0, 0.21);\n width: 321px;\n}\n.p-datepicker .p-datepicker-group-container {\n width: 100%;\n}\n.p-datepicker .p-datepicker-group {\n background: #ffffff;\n border-radius: 8px;\n padding-bottom: 1px;\n}\n.p-datepicker .p-datepicker-header {\n padding: 0px;\n /*position: fixed;\n left: 0;*/\n height: 50px;\n}\n.p-datepicker .p-datepicker-header .datepicker-custom-header {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.p-datepicker .p-datepicker-header .datepicker-custom-header .dp-header-top {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid #e0e3e8;\n}\n.p-datepicker .p-datepicker-header .datepicker-custom-header .dp-header-top .dp-header-month {\n border-right: 1px solid #e0e3e8;\n}\n.p-datepicker .p-datepicker-header .datepicker-custom-header .dp-header-top .dp-header-month .dp-arrow-left {\n border-radius: 7px 0px 0px 0px;\n}\n.p-datepicker .p-datepicker-header .datepicker-custom-header .dp-header-top .dp-header-year .dp-arrow-right {\n border-radius: 0px 7px 0px 0px;\n}\n.p-datepicker .p-datepicker-header .datepicker-custom-header .dp-header-top .dp-header-part {\n width: 49%;\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.p-datepicker .p-datepicker-header .datepicker-custom-header .dp-header-top .dp-header-part .dp-arrow {\n width: 30px;\n height: 49px;\n min-width: 30px;\n min-height: 49px;\n max-width: 30px;\n max-height: 49px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.p-datepicker .p-datepicker-header .datepicker-custom-header .dp-header-top .dp-header-part .dp-arrow:hover {\n background-color: rgba(63, 63, 63, 0.08);\n color: #3f3f3f;\n}\n.p-datepicker .p-datepicker-header .datepicker-custom-header .dp-header-top .dp-header-part .dp-label-button {\n width: calc(100% - 60px);\n display: flex;\n align-items: center;\n justify-content: center;\n height: 50px;\n margin: 0px;\n text-transform: capitalize;\n color: #3f3f3f;\n}\n.p-datepicker .p-datepicker-header .datepicker-custom-header .dp-header-top .dp-header-part .dp-label-button:hover {\n background-color: rgba(63, 63, 63, 0.08);\n font-weight: 800;\n}\n.p-datepicker .p-datepicker-header .datepicker-custom-header .dp-header-top .dp-header-part:hover {\n background-color: rgba(255, 255, 255, 0.31);\n}\n.p-datepicker .p-datepicker-calendar-container {\n padding: 10px;\n /* margin-top: 50px;*/\n}\n.p-datepicker .p-datepicker-calendar-container .p-datepicker-calendar {\n margin: 0px;\n}\n.p-datepicker .p-datepicker-calendar-container .p-datepicker-calendar thead tr th {\n padding: 2px;\n}\n.p-datepicker .p-datepicker-calendar-container .p-datepicker-calendar thead tr th span {\n color: #1a1e26;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.p-datepicker .p-datepicker-calendar-container .p-datepicker-calendar tbody tr .p-datepicker-today {\n background-color: transparent;\n}\n.p-datepicker .p-datepicker-calendar-container .p-datepicker-calendar tbody tr .p-datepicker-today span {\n background-color: transparent;\n font-weight: 600;\n color: #3f3f3f;\n border: 1px solid #3f3f3f;\n text-decoration: underline;\n}\n.p-datepicker .p-datepicker-calendar-container .p-datepicker-calendar tbody tr td {\n padding: 0px;\n border: 1px solid #f4f5f6;\n}\n.p-datepicker .p-datepicker-calendar-container .p-datepicker-calendar tbody tr td .p-highlight {\n color: #ffffff !important;\n background-color: #3f3f3f !important;\n box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.31);\n font-weight: 600;\n}\n.p-datepicker .p-datepicker-calendar-container .p-datepicker-calendar tbody tr td .p-disabled {\n opacity: 0.3;\n cursor: not-allowed;\n background-color: transparent !important;\n font-size: 12px;\n}\n.p-datepicker .p-datepicker-calendar-container .p-datepicker-calendar tbody tr td span {\n margin: 0;\n width: 100%;\n border-radius: 0px;\n}\n.p-datepicker .p-datepicker-calendar-container .p-datepicker-calendar tbody tr td span:hover {\n background-color: rgba(63, 63, 63, 0.08) !important;\n color: #3f3f3f;\n box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.31);\n}\n\n/* WRAPPER GLOBAL */\n.dp-monthyear-header {\n width: 360px;\n background: #ffffff;\n border-radius: 18px;\n padding: 24px 26px;\n box-shadow: 0 8px 26px rgba(0, 0, 0, 0.1);\n display: flex;\n flex-direction: column;\n font-family: Inter, sans-serif;\n gap: 22px;\n}\n\n/* TITRE */\n.dp-header-top-alt .dp-title {\n font-size: 21.7px;\n font-weight: 700;\n text-align: center;\n color: #1a1e26;\n margin-bottom: 2px;\n}\n\n/* HOVER ANNÉES */\n.datepickerbook .dp-year-list .dp-list-item:hover {\n background: rgba(63, 63, 63, 0.15);\n}\n\n.dp-month-list .dp-list-item-active {\n background: #ffffff;\n font-weight: 600;\n}\n\n/* Centrage parfait */\n.dp-year-list {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding: 0;\n}\n\n/* Année normale */\n.dp-year-list .dp-list-item {\n font-size: 16.8px;\n color: #b0b8c4;\n padding: 4px 0;\n cursor: pointer;\n transition: 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.dp-year-list .dp-list-item:hover {\n color: #1a1e26;\n}\n\n/* FLECHES */\n.dp-arrow-up,\n.dp-arrow-down {\n font-size: 21px;\n color: #1a1e26;\n padding: 6px;\n border: none;\n background: none;\n cursor: pointer;\n margin: 4px 0;\n}\n\n/* ACTIONS BAS – GROS BOUTONS */\n.dp-actions {\n display: flex;\n justify-content: center;\n gap: 20px;\n padding-top: 5px;\n padding-bottom: 10px;\n}\n\n/* TITRE MOIS ANNEE */\n.dp-header-top {\n margin: auto;\n}\n\n/*DATEPICKER MENSUEL CUSTOMISE*/\n.p-monthpicker {\n display: none !important;\n margin: auto;\n}\n\n.datepickerbook .p-datepicker-header {\n border: none !important;\n border-bottom: none !important;\n box-shadow: none !important;\n background: transparent !important;\n}\n\n.datepickerbook.p-datepicker {\n padding: 0 !important;\n margin: 0 !important;\n}\n\n/*DATEPICKER ANNUEL CUSTOMISE*/\n.p-yearpicker {\n display: none !important;\n}\n\n.datepickerbook .p-datepicker-footer {\n margin-bottom: 20px;\n}\n\n.dp-error-message {\n color: red !important;\n font-style: italic !important;\n display: block !important;\n width: 100% !important;\n max-width: 100% !important;\n white-space: normal !important;\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n line-height: 1.4 !important;\n font-size: 12.25px !important;\n margin-top: 2px !important;\n float: none !important;\n position: static !important;\n}";
|
|
13489
13489
|
styleInject(css_248z$6);
|
|
13490
13490
|
|
|
13491
|
-
var _excluded$
|
|
13491
|
+
var _excluded$5 = ["value", "onChange", "placeholder", "dateFormat", "displayMask", "view", "invalid", "errorMessage", "disabled", "locale", "showTime", "showIcon", "icon", "iconBgButton", "iconPos", "name", "id", "fullWidth", "inputProps", "onBlur", "onSelect", "onClick", "showClear", "reopenOnClick", "invalidDateMessage", "onPanelShow", "onPanelHide"];
|
|
13492
13492
|
var normalizeDate = function normalizeDate(v) {
|
|
13493
13493
|
if (!v) return null;
|
|
13494
13494
|
return v instanceof Date ? v : new Date(v);
|
|
@@ -13542,7 +13542,7 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
13542
13542
|
_ref.invalidDateMessage;
|
|
13543
13543
|
var onPanelShow = _ref.onPanelShow,
|
|
13544
13544
|
onPanelHide = _ref.onPanelHide,
|
|
13545
|
-
rest = _objectWithoutProperties$1(_ref, _excluded$
|
|
13545
|
+
rest = _objectWithoutProperties$1(_ref, _excluded$5);
|
|
13546
13546
|
var _useState = useState(function () {
|
|
13547
13547
|
return normalizeDate(value);
|
|
13548
13548
|
}),
|
|
@@ -33444,7 +33444,7 @@ var HeaderCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
33444
33444
|
});
|
|
33445
33445
|
HeaderCell.displayName = 'HeaderCell';
|
|
33446
33446
|
|
|
33447
|
-
var _excluded$
|
|
33447
|
+
var _excluded$4 = ["unstyled", "__TYPE", "ptOptions"];
|
|
33448
33448
|
function ownKeys$1$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
33449
33449
|
function _objectSpread$1$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1$4(Object(t), true).forEach(function (r) { _defineProperty$7(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
33450
33450
|
var TableHeader = /*#__PURE__*/React.memo(function (props) {
|
|
@@ -33675,7 +33675,7 @@ var TableHeader = /*#__PURE__*/React.memo(function (props) {
|
|
|
33675
33675
|
unstyled = _RowBase$getProps.unstyled;
|
|
33676
33676
|
_RowBase$getProps.__TYPE;
|
|
33677
33677
|
_RowBase$getProps.ptOptions;
|
|
33678
|
-
var rest = _objectWithoutProperties(_RowBase$getProps, _excluded$
|
|
33678
|
+
var rest = _objectWithoutProperties(_RowBase$getProps, _excluded$4);
|
|
33679
33679
|
var headerRowProps = mergeProps({
|
|
33680
33680
|
role: 'row'
|
|
33681
33681
|
}, unstyled ? _objectSpread$1$4({
|
|
@@ -37016,8 +37016,13 @@ var PopupPresets = {
|
|
|
37016
37016
|
}
|
|
37017
37017
|
};
|
|
37018
37018
|
|
|
37019
|
+
var css_248z$5 = "@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.dropdownbook.p-dropdown-panel {\n z-index: 999999 !important;\n}\n\n.p-tooltip {\n z-index: 1000000 !important;\n}\n\n.dropdown-tooltip-item {\n position: relative;\n width: 100%;\n cursor: pointer;\n}\n\n/* ===== ItemWithTooltip : deux colonnes (libellé à gauche / picto i à l'extrême droite) ===== */\n/* PrimeReact enveloppe le template dans un span inline (.p-dropdown-item-label)\n qui empêche l'item de s'étirer sur toute la largeur du panel */\n.p-dropdown-item .p-dropdown-item-label:has(.dropdown-item-two-cols) {\n display: block;\n width: 100%;\n}\n\n.p-dropdown-items .p-dropdown-item:has(.dropdown-item-two-cols) {\n padding-right: 10px;\n}\n\n.dropdown-item-two-cols {\n display: flex !important;\n align-items: center;\n justify-content: space-between;\n width: 100% !important;\n max-width: none !important;\n}\n\n.dropdown-item-info-icon {\n font-size: 14px;\n color: #6b7280;\n}\n\n/* Application du mixin field sur le wrapper du Dropdown */\n.dropdown-container .p-dropdown {\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}\n.dropdown-container .p-dropdown:hover:not(:focus):not(:focus-within):not([disabled]):not(.is-disabled) {\n border-color: #c8cdd6;\n}\n.dropdown-container .p-dropdown:focus, .dropdown-container .p-dropdown:focus-within, .dropdown-container .p-dropdown.is-open {\n border-color: #3f3f3f;\n box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);\n}\n.dropdown-container .p-dropdown[disabled], .dropdown-container .p-dropdown.is-disabled {\n opacity: 0.45;\n cursor: not-allowed;\n pointer-events: none;\n}\n.dropdown-container .p-dropdown[readonly], .dropdown-container .p-dropdown.is-readonly {\n background: #f4f5f6;\n cursor: default;\n box-shadow: none;\n}\n.dropdown-container .p-dropdown[readonly]:hover, .dropdown-container .p-dropdown.is-readonly:hover {\n border-color: #e0e3e8;\n}\n.dropdown-container .p-dropdown.is-error {\n border-color: #dc2626;\n box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);\n}\n.dropdown-container .p-dropdown.is-success {\n border-color: #15803d;\n box-shadow: 0 0 0 3px rgba(21, 128, 61, 0.12);\n}\n.dropdown-container .p-dropdown {\n padding: 0;\n display: flex;\n align-items: center;\n}\n\n.dd-search-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-bottom: 1px solid #e0e3e8;\n}\n.dd-search-row [class*=-filter-container] {\n flex: 1;\n min-width: 0;\n position: relative;\n}\n.dd-search-row [class*=-filter-container] .p-inputtext {\n width: 100%;\n height: 32px;\n padding: 0 24.5px 0 12px;\n font-size: 14px;\n box-sizing: border-box;\n}\n.dd-search-row [class*=-filter-container] [class*=-filter-icon] {\n right: 10.5px;\n color: #b0b8c4;\n}\n\n.dd-sort-btn {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid #e0e3e8;\n border-radius: 7px;\n background: #ffffff;\n cursor: pointer;\n color: #b0b8c4;\n font-size: 14px;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.dd-sort-btn:hover {\n background: #f4f5f6;\n color: #1a1e26;\n}\n\n.dropdownbook .p-dropdown-header:has(.dd-search-row) {\n padding: 0;\n}\n\n/* ===== Badge couleur dans les items ===== */\n.dd-color-badge {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n padding: 4px 10px;\n border-radius: 14px;\n font-size: 12.25px;\n font-family: \"Roboto\", sans-serif;\n white-space: nowrap;\n cursor: default;\n transition: background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n background-color: #f4f5f6;\n color: #1a1e26;\n border: 1px solid #e0e3e8;\n border-color: var(--badge-color, #e0e3e8);\n background-color: color-mix(in srgb, var(--badge-color, #f4f5f6) 50%, transparent);\n}\n.dd-color-badge.is-selected {\n background-color: var(--badge-color, #f4f5f6);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n}\n\n.p-dropdown-item:hover .dd-color-badge {\n background-color: var(--badge-color) !important;\n}\n\n/* ===== Override PrimeReact default item colors ===== */\n.dropdownbook .p-dropdown-items .p-dropdown-item:not(.p-highlight):hover {\n background: #f4f5f6 !important;\n color: #1a1e26 !important;\n}\n.dropdownbook .p-dropdown-items .p-dropdown-item.p-highlight {\n background: rgba(63, 63, 63, 0.08) !important;\n color: #1a1e26 !important;\n}\n.dropdownbook .p-dropdown-items .p-dropdown-item.p-highlight.p-focus {\n background: rgba(63, 63, 63, 0.12) !important;\n color: #1a1e26 !important;\n}\n.dropdownbook .p-dropdown-items .p-dropdown-item.p-focus {\n background: #f4f5f6 !important;\n color: #1a1e26 !important;\n}\n\n/* ===== Override PrimeReact filter input focus ===== */\n.dropdownbook .p-dropdown-filter.p-inputtext:hover {\n border-color: #c8cdd6 !important;\n}\n.dropdownbook .p-dropdown-filter.p-inputtext:focus, .dropdownbook .p-dropdown-filter.p-inputtext.p-focus {\n border-color: #3f3f3f !important;\n box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1) !important;\n outline: none;\n}";
|
|
37020
|
+
styleInject(css_248z$5);
|
|
37021
|
+
|
|
37022
|
+
var _excluded$3 = ["style", "className"],
|
|
37023
|
+
_excluded2$2 = ["class"];
|
|
37019
37024
|
var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
37020
|
-
var _window$Translator, _window$Translator2;
|
|
37025
|
+
var _computedOptions$, _window$Translator, _window$Translator2;
|
|
37021
37026
|
var value = _ref.value,
|
|
37022
37027
|
options = _ref.options,
|
|
37023
37028
|
_ref$placeholder = _ref.placeholder,
|
|
@@ -37028,6 +37033,7 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37028
37033
|
optionLabel = _ref$optionLabel === void 0 ? 'label' : _ref$optionLabel,
|
|
37029
37034
|
_ref$optionValue = _ref.optionValue,
|
|
37030
37035
|
optionValue = _ref$optionValue === void 0 ? 'value' : _ref$optionValue,
|
|
37036
|
+
optionsUrl = _ref.optionsUrl,
|
|
37031
37037
|
_ref$invalid = _ref.invalid,
|
|
37032
37038
|
invalid = _ref$invalid === void 0 ? false : _ref$invalid,
|
|
37033
37039
|
_ref$errorMessage = _ref.errorMessage,
|
|
@@ -37039,7 +37045,7 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37039
37045
|
_ref$editable = _ref.editable,
|
|
37040
37046
|
editable = _ref$editable === void 0 ? false : _ref$editable,
|
|
37041
37047
|
_ref$filter = _ref.filter,
|
|
37042
|
-
filter = _ref$filter === void 0 ?
|
|
37048
|
+
filter = _ref$filter === void 0 ? false : _ref$filter,
|
|
37043
37049
|
_ref$selectMetaConfig = _ref.selectMetaConfig,
|
|
37044
37050
|
selectMetaConfig = _ref$selectMetaConfig === void 0 ? {
|
|
37045
37051
|
labelStyle: null,
|
|
@@ -37048,7 +37054,79 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37048
37054
|
_ref$objValue = _ref.objValue,
|
|
37049
37055
|
objValue = _ref$objValue === void 0 ? null : _ref$objValue,
|
|
37050
37056
|
_ref$required = _ref.required,
|
|
37051
|
-
required = _ref$required === void 0 ? false : _ref$required
|
|
37057
|
+
required = _ref$required === void 0 ? false : _ref$required,
|
|
37058
|
+
_ref$attr = _ref.attr,
|
|
37059
|
+
attr = _ref$attr === void 0 ? {} : _ref$attr,
|
|
37060
|
+
_ref$choice_attr = _ref.choice_attr,
|
|
37061
|
+
choice_attr = _ref$choice_attr === void 0 ? function () {
|
|
37062
|
+
return {};
|
|
37063
|
+
} : _ref$choice_attr,
|
|
37064
|
+
_ref$optionClassname = _ref.optionClassname,
|
|
37065
|
+
optionClassname = _ref$optionClassname === void 0 ? null : _ref$optionClassname,
|
|
37066
|
+
_ref$valueClassname = _ref.valueClassname,
|
|
37067
|
+
valueClassname = _ref$valueClassname === void 0 ? null : _ref$valueClassname,
|
|
37068
|
+
_ref$isGroupedOption = _ref.isGroupedOption,
|
|
37069
|
+
isGroupedOption = _ref$isGroupedOption === void 0 ? false : _ref$isGroupedOption,
|
|
37070
|
+
_ref$showTooltipGroup = _ref.showTooltipGroup,
|
|
37071
|
+
showTooltipGroup = _ref$showTooltipGroup === void 0 ? false : _ref$showTooltipGroup,
|
|
37072
|
+
_ref$prevTextShowTool = _ref.prevTextShowTooltip,
|
|
37073
|
+
prevTextShowTooltip = _ref$prevTextShowTool === void 0 ? null : _ref$prevTextShowTool,
|
|
37074
|
+
onSearch = _ref.onSearch,
|
|
37075
|
+
_ref$readOnly = _ref.readOnly,
|
|
37076
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
37077
|
+
_ref$loading = _ref.loading,
|
|
37078
|
+
externalLoading = _ref$loading === void 0 ? false : _ref$loading,
|
|
37079
|
+
status = _ref.status,
|
|
37080
|
+
_ref$optionStyle = _ref.optionStyle,
|
|
37081
|
+
optionStyle = _ref$optionStyle === void 0 ? {
|
|
37082
|
+
maxWidth: '250px',
|
|
37083
|
+
overflow: 'hidden',
|
|
37084
|
+
textOverflow: 'ellipsis',
|
|
37085
|
+
whiteSpace: 'nowrap'
|
|
37086
|
+
} : _ref$optionStyle,
|
|
37087
|
+
_ref$showClear = _ref.showClear,
|
|
37088
|
+
showClear = _ref$showClear === void 0 ? true : _ref$showClear,
|
|
37089
|
+
_ref$groupedItemTempl = _ref.groupedItemTemplateConfig,
|
|
37090
|
+
groupedItemTemplateConfig = _ref$groupedItemTempl === void 0 ? {
|
|
37091
|
+
showIcon: false,
|
|
37092
|
+
iconKey: 'icon',
|
|
37093
|
+
showImage: false,
|
|
37094
|
+
imageKey: 'image',
|
|
37095
|
+
imageStyle: null,
|
|
37096
|
+
labelStyle: null,
|
|
37097
|
+
generalIcon: null,
|
|
37098
|
+
generalImage: null
|
|
37099
|
+
} : _ref$groupedItemTempl;
|
|
37100
|
+
_ref.isSelectMeta;
|
|
37101
|
+
var hasInfoLine = _ref.hasInfoLine,
|
|
37102
|
+
InfoLineValue = _ref.InfoLineValue,
|
|
37103
|
+
_ref$selectConfig = _ref.selectConfig,
|
|
37104
|
+
selectConfig = _ref$selectConfig === void 0 ? {
|
|
37105
|
+
labelStyle: null,
|
|
37106
|
+
generalIcon: null
|
|
37107
|
+
} : _ref$selectConfig,
|
|
37108
|
+
withIcon = _ref.withIcon,
|
|
37109
|
+
withColor = _ref.withColor,
|
|
37110
|
+
_ref$truncateAt = _ref.truncateAt,
|
|
37111
|
+
truncateAt = _ref$truncateAt === void 0 ? null : _ref$truncateAt;
|
|
37112
|
+
_ref.virtualScroll;
|
|
37113
|
+
var virtualScrollerOptions = _ref.virtualScrollerOptions,
|
|
37114
|
+
_ref$enableItemToolti = _ref.enableItemTooltip,
|
|
37115
|
+
enableItemTooltip = _ref$enableItemToolti === void 0 ? false : _ref$enableItemToolti,
|
|
37116
|
+
_ref$enableItemLink = _ref.enableItemLink,
|
|
37117
|
+
enableItemLink = _ref$enableItemLink === void 0 ? false : _ref$enableItemLink,
|
|
37118
|
+
_ref$openOnHover = _ref.openOnHover,
|
|
37119
|
+
openOnHover = _ref$openOnHover === void 0 ? false : _ref$openOnHover,
|
|
37120
|
+
_ref$itemsCheckedToTh = _ref.itemsCheckedToTheTop,
|
|
37121
|
+
itemsCheckedToTheTop = _ref$itemsCheckedToTh === void 0 ? false : _ref$itemsCheckedToTh,
|
|
37122
|
+
_ref$enableSorting = _ref.enableSorting,
|
|
37123
|
+
enableSorting = _ref$enableSorting === void 0 ? false : _ref$enableSorting,
|
|
37124
|
+
_ref$enableSecondaryL = _ref.enableSecondaryLabel,
|
|
37125
|
+
enableSecondaryLabel = _ref$enableSecondaryL === void 0 ? false : _ref$enableSecondaryL,
|
|
37126
|
+
_ref$secondaryLabelKe = _ref.secondaryLabelKey,
|
|
37127
|
+
secondaryLabelKey = _ref$secondaryLabelKe === void 0 ? 'profession' : _ref$secondaryLabelKe,
|
|
37128
|
+
_ref$subItem = _ref.subItem,
|
|
37129
|
+
subItem = _ref$subItem === void 0 ? false : _ref$subItem;
|
|
37052
37130
|
var _useState = useState(null),
|
|
37053
37131
|
_useState2 = _slicedToArray$d(_useState, 2),
|
|
37054
37132
|
optionSelected = _useState2[0],
|
|
@@ -37066,6 +37144,7 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37066
37144
|
inputValue = _useState8[0],
|
|
37067
37145
|
setInputValue = _useState8[1];
|
|
37068
37146
|
var dropdownRef = useRef(null);
|
|
37147
|
+
var dropdownComposantRef = useRef(null);
|
|
37069
37148
|
useRef(null);
|
|
37070
37149
|
var clickedFromList = useRef(false);
|
|
37071
37150
|
var _useState9 = useState(''),
|
|
@@ -37076,15 +37155,74 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37076
37155
|
_useState10 = _slicedToArray$d(_useState1, 2),
|
|
37077
37156
|
showRequiredError = _useState10[0],
|
|
37078
37157
|
setShowRequiredError = _useState10[1];
|
|
37158
|
+
var _useState11 = useState(0),
|
|
37159
|
+
_useState12 = _slicedToArray$d(_useState11, 2),
|
|
37160
|
+
tooltipKey = _useState12[0],
|
|
37161
|
+
setTooltipKey = _useState12[1];
|
|
37162
|
+
var _useState13 = useState(null),
|
|
37163
|
+
_useState14 = _slicedToArray$d(_useState13, 2),
|
|
37164
|
+
sortOrder = _useState14[0],
|
|
37165
|
+
setSortOrder = _useState14[1];
|
|
37166
|
+
var _useState15 = useState(false),
|
|
37167
|
+
_useState16 = _slicedToArray$d(_useState15, 2),
|
|
37168
|
+
isDropdownOpen = _useState16[0],
|
|
37169
|
+
setIsDropdownOpen = _useState16[1];
|
|
37170
|
+
var _useState17 = useState(''),
|
|
37171
|
+
_useState18 = _slicedToArray$d(_useState17, 2),
|
|
37172
|
+
selectedGroupLabel = _useState18[0],
|
|
37173
|
+
setSelectedGroupLabel = _useState18[1];
|
|
37079
37174
|
|
|
37080
37175
|
// 🔹 Lazy loading
|
|
37081
|
-
var
|
|
37082
|
-
|
|
37083
|
-
loading =
|
|
37084
|
-
setLoading =
|
|
37176
|
+
var _useState19 = useState(false),
|
|
37177
|
+
_useState20 = _slicedToArray$d(_useState19, 2),
|
|
37178
|
+
loading = _useState20[0],
|
|
37179
|
+
setLoading = _useState20[1];
|
|
37085
37180
|
var loadLazyTimeout = useRef();
|
|
37086
|
-
useRef(1);
|
|
37087
|
-
useRef(
|
|
37181
|
+
var currentPageRef = useRef(1);
|
|
37182
|
+
var hasMoreRef = useRef(true);
|
|
37183
|
+
var isLoadingRef = useRef(false);
|
|
37184
|
+
var searchTermRef = useRef('');
|
|
37185
|
+
var loadedOptionsRef = useRef([]);
|
|
37186
|
+
var updateLoadedOptions = function updateLoadedOptions(opts) {
|
|
37187
|
+
loadedOptionsRef.current = opts;
|
|
37188
|
+
setLoadedOptions(opts);
|
|
37189
|
+
};
|
|
37190
|
+
var inverseColor = function inverseColor(hexColor) {
|
|
37191
|
+
var r = parseInt(hexColor.substr(1, 2), 16);
|
|
37192
|
+
var g = parseInt(hexColor.substr(3, 2), 16);
|
|
37193
|
+
var b = parseInt(hexColor.substr(5, 2), 16);
|
|
37194
|
+
var luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
|
|
37195
|
+
return luminance > 0.18 ? '#000000' : '#FFFFFF';
|
|
37196
|
+
};
|
|
37197
|
+
var truncateLabel = function truncateLabel(label) {
|
|
37198
|
+
if (!label || typeof label !== 'string') return label;
|
|
37199
|
+
if (!truncateAt || label.length <= truncateAt) return label;
|
|
37200
|
+
return label.slice(0, truncateAt) + '…';
|
|
37201
|
+
};
|
|
37202
|
+
|
|
37203
|
+
// PrimeReact 10 ignore la prop `escape` : sa Tooltip écrit toujours via
|
|
37204
|
+
// createTextNode. Un MutationObserver rescande les `.p-tooltip-text` pour
|
|
37205
|
+
// convertir le texte contenant du HTML en innerHTML rendu.
|
|
37206
|
+
useEffect(function () {
|
|
37207
|
+
if (!enableItemTooltip) return undefined;
|
|
37208
|
+
var rewrite = function rewrite() {
|
|
37209
|
+
document.querySelectorAll('.p-tooltip .p-tooltip-text').forEach(function (el) {
|
|
37210
|
+
var raw = el.textContent;
|
|
37211
|
+
if (raw && /<[a-z][\s\S]*>/i.test(raw) && el.innerHTML !== raw) {
|
|
37212
|
+
el.innerHTML = raw;
|
|
37213
|
+
}
|
|
37214
|
+
});
|
|
37215
|
+
};
|
|
37216
|
+
var observer = new MutationObserver(rewrite);
|
|
37217
|
+
observer.observe(document.body, {
|
|
37218
|
+
childList: true,
|
|
37219
|
+
subtree: true,
|
|
37220
|
+
characterData: true
|
|
37221
|
+
});
|
|
37222
|
+
return function () {
|
|
37223
|
+
return observer.disconnect();
|
|
37224
|
+
};
|
|
37225
|
+
}, [enableItemTooltip]);
|
|
37088
37226
|
var optionTemplate = function optionTemplate(option) {
|
|
37089
37227
|
var _ref2 = selectMetaConfig || {},
|
|
37090
37228
|
labelStyle = _ref2.labelStyle,
|
|
@@ -37092,17 +37230,115 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37092
37230
|
var styleLabel = {
|
|
37093
37231
|
marginLeft: '10px'
|
|
37094
37232
|
};
|
|
37095
|
-
|
|
37233
|
+
var tooltipProps = enableItemTooltip ? {
|
|
37234
|
+
'data-pr-tooltip': (option === null || option === void 0 ? void 0 : option.tooltip) || (option === null || option === void 0 ? void 0 : option.description),
|
|
37235
|
+
'data-pr-position': 'right'
|
|
37236
|
+
} : {};
|
|
37237
|
+
var tooltipContent = (option === null || option === void 0 ? void 0 : option.tooltip) || (option === null || option === void 0 ? void 0 : option.description);
|
|
37238
|
+
var hasTooltip = Boolean(enableItemTooltip && tooltipContent);
|
|
37239
|
+
var infoIcon = hasTooltip ? /*#__PURE__*/React__default.createElement("i", {
|
|
37240
|
+
className: "pi pi-info-circle dropdown-item-info-icon"
|
|
37241
|
+
}) : null;
|
|
37242
|
+
var secondaryLabel = enableSecondaryLabel ? option === null || option === void 0 ? void 0 : option[secondaryLabelKey] : null;
|
|
37243
|
+
var isLink = enableItemLink && (option === null || option === void 0 ? void 0 : option.link);
|
|
37244
|
+
var handleLinkClick = function handleLinkClick(e) {
|
|
37245
|
+
if (isLink) {
|
|
37246
|
+
e.preventDefault();
|
|
37247
|
+
e.stopPropagation();
|
|
37248
|
+
window.open(option.link, '_blank', 'noopener,noreferrer');
|
|
37249
|
+
}
|
|
37250
|
+
};
|
|
37251
|
+
var optionAttrs = typeof choice_attr === 'function' ? choice_attr(option) : {};
|
|
37252
|
+
var attrStyle = optionAttrs.style,
|
|
37253
|
+
attrClassName = optionAttrs.className,
|
|
37254
|
+
restAttrs = _objectWithoutProperties$1(optionAttrs, _excluded$3);
|
|
37255
|
+
var className = "flex align-items-center dropdown-tooltip-item ".concat(attrClassName || optionClassname || '').trim();
|
|
37256
|
+
if (hasTooltip) {
|
|
37257
|
+
// Deux colonnes : libellé à l'extrême gauche, picto "i" à l'extrême droite.
|
|
37258
|
+
// Le tooltip est porté par l'item entier et pointe sur le picto.
|
|
37259
|
+
return /*#__PURE__*/React__default.createElement("div", _extends$J({}, tooltipProps, restAttrs, {
|
|
37260
|
+
onClick: function onClick() {
|
|
37261
|
+
clickedFromList.current = true;
|
|
37262
|
+
},
|
|
37263
|
+
className: "".concat(className, " dropdown-item-two-cols").trim(),
|
|
37264
|
+
style: _objectSpread2({
|
|
37265
|
+
display: 'flex',
|
|
37266
|
+
alignItems: 'center',
|
|
37267
|
+
gap: '0.5rem',
|
|
37268
|
+
fontSize: '14px',
|
|
37269
|
+
maxWidth: 'none',
|
|
37270
|
+
overflow: 'hidden',
|
|
37271
|
+
textOverflow: 'ellipsis',
|
|
37272
|
+
whiteSpace: 'nowrap',
|
|
37273
|
+
width: '100%',
|
|
37274
|
+
justifyContent: 'space-between'
|
|
37275
|
+
}, attrStyle)
|
|
37276
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
37277
|
+
className: "dropdown-item-label-col",
|
|
37278
|
+
style: {
|
|
37279
|
+
display: 'flex',
|
|
37280
|
+
alignItems: 'center',
|
|
37281
|
+
gap: '0.5rem',
|
|
37282
|
+
minWidth: 0,
|
|
37283
|
+
overflow: 'hidden',
|
|
37284
|
+
textOverflow: 'ellipsis',
|
|
37285
|
+
whiteSpace: 'nowrap'
|
|
37286
|
+
}
|
|
37287
|
+
}, option === null || option === void 0 ? void 0 : option[optionLabel]), /*#__PURE__*/React__default.createElement("div", {
|
|
37288
|
+
className: "dropdown-item-info-col",
|
|
37289
|
+
style: {
|
|
37290
|
+
flexShrink: 0,
|
|
37291
|
+
display: 'flex',
|
|
37292
|
+
alignItems: 'center',
|
|
37293
|
+
marginLeft: '8px'
|
|
37294
|
+
}
|
|
37295
|
+
}, infoIcon));
|
|
37296
|
+
}
|
|
37297
|
+
if (withIcon || withColor) {
|
|
37298
|
+
var _ref3 = selectConfig || {},
|
|
37299
|
+
cfgLabelStyle = _ref3.labelStyle,
|
|
37300
|
+
cfgGeneralIcon = _ref3.generalIcon;
|
|
37301
|
+
return /*#__PURE__*/React__default.createElement("div", _extends$J({}, tooltipProps, restAttrs, {
|
|
37302
|
+
onClick: function onClick() {
|
|
37303
|
+
clickedFromList.current = true;
|
|
37304
|
+
},
|
|
37305
|
+
className: className,
|
|
37306
|
+
style: _objectSpread2(_objectSpread2({
|
|
37307
|
+
fontSize: '14px',
|
|
37308
|
+
display: 'flex',
|
|
37309
|
+
alignItems: 'center',
|
|
37310
|
+
gap: '8px'
|
|
37311
|
+
}, optionStyle), attrStyle)
|
|
37312
|
+
}), withIcon && cfgGeneralIcon && /*#__PURE__*/React__default.createElement("i", {
|
|
37313
|
+
style: {
|
|
37314
|
+
color: option === null || option === void 0 ? void 0 : option.color
|
|
37315
|
+
},
|
|
37316
|
+
className: cfgGeneralIcon
|
|
37317
|
+
}), withColor && option !== null && option !== void 0 && option.color ? /*#__PURE__*/React__default.createElement("span", {
|
|
37318
|
+
className: "dd-color-badge".concat(optionSelected === (option === null || option === void 0 ? void 0 : option[optionValue]) ? ' is-selected' : ''),
|
|
37319
|
+
style: {
|
|
37320
|
+
'--badge-color': option.color,
|
|
37321
|
+
color: inverseColor(option.color)
|
|
37322
|
+
}
|
|
37323
|
+
}, option === null || option === void 0 ? void 0 : option[optionLabel]) : /*#__PURE__*/React__default.createElement("span", {
|
|
37324
|
+
style: _objectSpread2(_objectSpread2({}, cfgLabelStyle), subItem ? {
|
|
37325
|
+
flex: 1
|
|
37326
|
+
} : {})
|
|
37327
|
+
}, option === null || option === void 0 ? void 0 : option[optionLabel]));
|
|
37328
|
+
}
|
|
37329
|
+
return /*#__PURE__*/React__default.createElement("div", _extends$J({}, tooltipProps, restAttrs, {
|
|
37096
37330
|
onClick: function onClick() {
|
|
37097
37331
|
clickedFromList.current = true;
|
|
37098
37332
|
},
|
|
37099
|
-
className:
|
|
37100
|
-
style: {
|
|
37333
|
+
className: className,
|
|
37334
|
+
style: _objectSpread2({
|
|
37101
37335
|
padding: '6px 10px',
|
|
37102
37336
|
height: 'auto'
|
|
37103
|
-
}
|
|
37104
|
-
}, /*#__PURE__*/React__default.createElement("div", {
|
|
37105
|
-
style: _objectSpread2({
|
|
37337
|
+
}, attrStyle)
|
|
37338
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
37339
|
+
style: _objectSpread2(_objectSpread2({}, subItem ? {
|
|
37340
|
+
flex: 1
|
|
37341
|
+
} : {}), {}, {
|
|
37106
37342
|
fontSize: '15px',
|
|
37107
37343
|
fontWeight: 'bold'
|
|
37108
37344
|
}, labelStyle)
|
|
@@ -37113,9 +37349,185 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37113
37349
|
className: generalIcon
|
|
37114
37350
|
}), /*#__PURE__*/React__default.createElement("span", {
|
|
37115
37351
|
style: styleLabel
|
|
37116
|
-
}, option === null || option === void 0 ? void 0 : option[optionLabel])
|
|
37352
|
+
}, option === null || option === void 0 ? void 0 : option[optionLabel]), secondaryLabel && /*#__PURE__*/React__default.createElement("div", {
|
|
37353
|
+
onClick: isLink ? handleLinkClick : undefined,
|
|
37354
|
+
onMouseDown: isLink ? function (e) {
|
|
37355
|
+
return e.stopPropagation();
|
|
37356
|
+
} : undefined,
|
|
37357
|
+
style: {
|
|
37358
|
+
cursor: isLink ? 'pointer' : 'default',
|
|
37359
|
+
marginTop: '2px',
|
|
37360
|
+
width: 'fit-content'
|
|
37361
|
+
}
|
|
37362
|
+
}, /*#__PURE__*/React__default.createElement("small", {
|
|
37363
|
+
style: {
|
|
37364
|
+
opacity: 0.75,
|
|
37365
|
+
fontSize: '12px',
|
|
37366
|
+
textDecoration: isLink ? 'underline' : 'none',
|
|
37367
|
+
color: isLink ? '#3b82f6' : 'inherit',
|
|
37368
|
+
fontWeight: 'normal'
|
|
37369
|
+
}
|
|
37370
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
37371
|
+
style: subItem ? {} : {
|
|
37372
|
+
marginLeft: '10px'
|
|
37373
|
+
}
|
|
37374
|
+
}, secondaryLabel)))));
|
|
37375
|
+
};
|
|
37376
|
+
var groupedItemTemplate = function groupedItemTemplate(option) {
|
|
37377
|
+
var _ref4 = groupedItemTemplateConfig || {},
|
|
37378
|
+
showImage = _ref4.showImage,
|
|
37379
|
+
imageKey = _ref4.imageKey,
|
|
37380
|
+
imageStyle = _ref4.imageStyle,
|
|
37381
|
+
showIcon = _ref4.showIcon,
|
|
37382
|
+
iconKey = _ref4.iconKey,
|
|
37383
|
+
labelStyle = _ref4.labelStyle,
|
|
37384
|
+
generalIcon = _ref4.generalIcon,
|
|
37385
|
+
generalImage = _ref4.generalImage;
|
|
37386
|
+
var icon = option.value && option.value[iconKey];
|
|
37387
|
+
var styleLabel = generalIcon || showImage && option[imageKey] || showIcon && icon ? {
|
|
37388
|
+
marginLeft: '10px'
|
|
37389
|
+
} : {};
|
|
37390
|
+
if (option.group) {
|
|
37391
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
37392
|
+
className: "flex align-items-center"
|
|
37393
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
37394
|
+
style: _objectSpread2({
|
|
37395
|
+
fontSize: '15px',
|
|
37396
|
+
fontWeight: 'bold'
|
|
37397
|
+
}, labelStyle)
|
|
37398
|
+
}, generalIcon && /*#__PURE__*/React__default.createElement("i", {
|
|
37399
|
+
className: generalIcon,
|
|
37400
|
+
style: _objectSpread2({
|
|
37401
|
+
fontSize: '15px',
|
|
37402
|
+
fontWeight: 'bold'
|
|
37403
|
+
}, labelStyle)
|
|
37404
|
+
}), generalImage && /*#__PURE__*/React__default.createElement("img", {
|
|
37405
|
+
alt: "General",
|
|
37406
|
+
src: generalImage,
|
|
37407
|
+
style: imageStyle || {
|
|
37408
|
+
width: '18px',
|
|
37409
|
+
marginRight: '0.5rem'
|
|
37410
|
+
},
|
|
37411
|
+
className: "mr-2"
|
|
37412
|
+
}), showImage && option[imageKey] && /*#__PURE__*/React__default.createElement("img", {
|
|
37413
|
+
alt: option.label,
|
|
37414
|
+
src: option[imageKey],
|
|
37415
|
+
style: imageStyle || {
|
|
37416
|
+
width: '18px',
|
|
37417
|
+
marginRight: '0.5rem'
|
|
37418
|
+
},
|
|
37419
|
+
className: "mr-2"
|
|
37420
|
+
}), showIcon && icon && /*#__PURE__*/React__default.createElement("i", {
|
|
37421
|
+
className: "mr-2 ".concat(icon),
|
|
37422
|
+
style: _objectSpread2({
|
|
37423
|
+
fontSize: '15px',
|
|
37424
|
+
fontWeight: 'bold'
|
|
37425
|
+
}, labelStyle)
|
|
37426
|
+
}), /*#__PURE__*/React__default.createElement("span", {
|
|
37427
|
+
style: styleLabel
|
|
37428
|
+
}, option.label)));
|
|
37429
|
+
}
|
|
37430
|
+
return null;
|
|
37117
37431
|
};
|
|
37118
|
-
var
|
|
37432
|
+
var panelFooterTemplate = function panelFooterTemplate() {
|
|
37433
|
+
if (InfoLineValue) {
|
|
37434
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
37435
|
+
style: {
|
|
37436
|
+
padding: '8px'
|
|
37437
|
+
}
|
|
37438
|
+
}, /*#__PURE__*/React__default.createElement("b", null, InfoLineValue));
|
|
37439
|
+
}
|
|
37440
|
+
};
|
|
37441
|
+
var isInvalidEffective = invalid || status === 'error' || showRequiredError;
|
|
37442
|
+
|
|
37443
|
+
// 🔹 Chargement des options depuis une URL (même contrat que MultiSelectMetaAsync)
|
|
37444
|
+
var fetchOptionsFromUrl = /*#__PURE__*/function () {
|
|
37445
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
37446
|
+
var search,
|
|
37447
|
+
_ref6,
|
|
37448
|
+
_ref6$page,
|
|
37449
|
+
page,
|
|
37450
|
+
length,
|
|
37451
|
+
start,
|
|
37452
|
+
queryParams,
|
|
37453
|
+
response,
|
|
37454
|
+
responseJSON,
|
|
37455
|
+
dataAjax,
|
|
37456
|
+
mappedOptions,
|
|
37457
|
+
hasMore,
|
|
37458
|
+
_args = arguments,
|
|
37459
|
+
_t;
|
|
37460
|
+
return _regenerator().w(function (_context) {
|
|
37461
|
+
while (1) switch (_context.n) {
|
|
37462
|
+
case 0:
|
|
37463
|
+
search = _args.length > 0 && _args[0] !== undefined ? _args[0] : '';
|
|
37464
|
+
_ref6 = _args.length > 2 && _args[2] !== undefined ? _args[2] : {}, _ref6$page = _ref6.page, page = _ref6$page === void 0 ? 1 : _ref6$page;
|
|
37465
|
+
_context.p = 1;
|
|
37466
|
+
length = 25;
|
|
37467
|
+
start = (page - 1) * length;
|
|
37468
|
+
queryParams = new URLSearchParams();
|
|
37469
|
+
if (search) queryParams.append('search[value]', search);
|
|
37470
|
+
queryParams.append('start', start);
|
|
37471
|
+
queryParams.append('length', length);
|
|
37472
|
+
_context.n = 2;
|
|
37473
|
+
return fetch("".concat(optionsUrl, "?").concat(queryParams.toString()));
|
|
37474
|
+
case 2:
|
|
37475
|
+
response = _context.v;
|
|
37476
|
+
if (response.ok) {
|
|
37477
|
+
_context.n = 4;
|
|
37478
|
+
break;
|
|
37479
|
+
}
|
|
37480
|
+
if (!(response.status === 404)) {
|
|
37481
|
+
_context.n = 3;
|
|
37482
|
+
break;
|
|
37483
|
+
}
|
|
37484
|
+
hasMoreRef.current = false;
|
|
37485
|
+
return _context.a(2, {
|
|
37486
|
+
options: [],
|
|
37487
|
+
hasMore: false
|
|
37488
|
+
});
|
|
37489
|
+
case 3:
|
|
37490
|
+
throw new Error("Erreur HTTP: ".concat(response.status));
|
|
37491
|
+
case 4:
|
|
37492
|
+
_context.n = 5;
|
|
37493
|
+
return response.json();
|
|
37494
|
+
case 5:
|
|
37495
|
+
responseJSON = _context.v;
|
|
37496
|
+
dataAjax = responseJSON.data || [];
|
|
37497
|
+
mappedOptions = dataAjax.map(function (opt) {
|
|
37498
|
+
if (opt.hasOwnProperty('color') && opt.color !== null && opt.color.length > 0) {
|
|
37499
|
+
opt.color = opt.color.toLowerCase();
|
|
37500
|
+
} else {
|
|
37501
|
+
delete opt.color;
|
|
37502
|
+
}
|
|
37503
|
+
opt.label = opt.nom !== undefined && opt.nom !== null ? opt.nom : opt.label;
|
|
37504
|
+
opt.value = opt.id;
|
|
37505
|
+
return opt;
|
|
37506
|
+
});
|
|
37507
|
+
hasMore = start + dataAjax.length < responseJSON.recordsTotal;
|
|
37508
|
+
return _context.a(2, {
|
|
37509
|
+
options: mappedOptions,
|
|
37510
|
+
hasMore: hasMore,
|
|
37511
|
+
additional: {
|
|
37512
|
+
page: page + 1
|
|
37513
|
+
}
|
|
37514
|
+
});
|
|
37515
|
+
case 6:
|
|
37516
|
+
_context.p = 6;
|
|
37517
|
+
_t = _context.v;
|
|
37518
|
+
console.error("Erreur lors de la récupération des options :", _t);
|
|
37519
|
+
return _context.a(2, {
|
|
37520
|
+
options: [],
|
|
37521
|
+
hasMore: false
|
|
37522
|
+
});
|
|
37523
|
+
}
|
|
37524
|
+
}, _callee, null, [[1, 6]]);
|
|
37525
|
+
}));
|
|
37526
|
+
return function fetchOptionsFromUrl() {
|
|
37527
|
+
return _ref5.apply(this, arguments);
|
|
37528
|
+
};
|
|
37529
|
+
}();
|
|
37530
|
+
var loadOptions = typeof options === 'function' ? options : fetchOptionsFromUrl;
|
|
37119
37531
|
var style = {
|
|
37120
37532
|
border: isInvalidEffective ? '1px solid red' : '1px solid #ccc',
|
|
37121
37533
|
width: '100%',
|
|
@@ -37126,36 +37538,38 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37126
37538
|
}, [optionSelected]);
|
|
37127
37539
|
useEffect(function () {
|
|
37128
37540
|
setOptionSelected(objValue ? objValue === null || objValue === void 0 ? void 0 : objValue[optionValue] : value !== null && value !== void 0 ? value : null);
|
|
37541
|
+
currentPageRef.current = 1;
|
|
37542
|
+
hasMoreRef.current = true;
|
|
37543
|
+
isLoadingRef.current = false;
|
|
37129
37544
|
var loadInitialOptions = /*#__PURE__*/function () {
|
|
37130
|
-
var
|
|
37131
|
-
var result,
|
|
37132
|
-
return _regenerator().w(function (
|
|
37133
|
-
while (1) switch (
|
|
37545
|
+
var _ref7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
37546
|
+
var result, initialOpts, exists;
|
|
37547
|
+
return _regenerator().w(function (_context2) {
|
|
37548
|
+
while (1) switch (_context2.n) {
|
|
37134
37549
|
case 0:
|
|
37135
|
-
|
|
37136
|
-
return
|
|
37550
|
+
_context2.n = 1;
|
|
37551
|
+
return loadOptions('', [], {
|
|
37137
37552
|
page: 1
|
|
37138
37553
|
});
|
|
37139
37554
|
case 1:
|
|
37140
|
-
result =
|
|
37141
|
-
|
|
37555
|
+
result = _context2.v;
|
|
37556
|
+
hasMoreRef.current = (result === null || result === void 0 ? void 0 : result.hasMore) !== false;
|
|
37557
|
+
initialOpts = (result === null || result === void 0 ? void 0 : result.options) || [];
|
|
37142
37558
|
if (objValue) {
|
|
37143
|
-
exists =
|
|
37559
|
+
exists = initialOpts.some(function (opt) {
|
|
37144
37560
|
return opt[optionValue] === objValue[optionValue];
|
|
37145
37561
|
});
|
|
37146
|
-
|
|
37147
|
-
|
|
37148
|
-
|
|
37149
|
-
});
|
|
37150
|
-
}
|
|
37562
|
+
updateLoadedOptions(exists ? initialOpts : [].concat(_toConsumableArray$a(initialOpts), [objValue]));
|
|
37563
|
+
} else {
|
|
37564
|
+
updateLoadedOptions(initialOpts);
|
|
37151
37565
|
}
|
|
37152
37566
|
case 2:
|
|
37153
|
-
return
|
|
37567
|
+
return _context2.a(2);
|
|
37154
37568
|
}
|
|
37155
|
-
},
|
|
37569
|
+
}, _callee2);
|
|
37156
37570
|
}));
|
|
37157
37571
|
return function loadInitialOptions() {
|
|
37158
|
-
return
|
|
37572
|
+
return _ref7.apply(this, arguments);
|
|
37159
37573
|
};
|
|
37160
37574
|
}();
|
|
37161
37575
|
loadInitialOptions();
|
|
@@ -37163,7 +37577,7 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37163
37577
|
return function () {
|
|
37164
37578
|
document.removeEventListener('mousedown', handleClickOutside);
|
|
37165
37579
|
};
|
|
37166
|
-
}, [options, objValue, value]);
|
|
37580
|
+
}, [options, optionsUrl, objValue, value]);
|
|
37167
37581
|
var handleClickOutside = function handleClickOutside(event) {
|
|
37168
37582
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
37169
37583
|
setIsEditing(false);
|
|
@@ -37181,7 +37595,39 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37181
37595
|
}
|
|
37182
37596
|
};
|
|
37183
37597
|
}, [dropdownRef.current]);
|
|
37598
|
+
useEffect(function () {
|
|
37599
|
+
if (enableItemTooltip) {
|
|
37600
|
+
setTooltipKey(function (prevKey) {
|
|
37601
|
+
return prevKey + 1;
|
|
37602
|
+
});
|
|
37603
|
+
}
|
|
37604
|
+
}, [loadedOptions, enableItemTooltip, optionSelected]);
|
|
37605
|
+
var getSelectedGroupLabel = function getSelectedGroupLabel(selectedValue) {
|
|
37606
|
+
if (!isGroupedOption || !selectedValue) return '';
|
|
37607
|
+
var _iterator = _createForOfIteratorHelper$7(loadedOptions),
|
|
37608
|
+
_step;
|
|
37609
|
+
try {
|
|
37610
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
37611
|
+
var group = _step.value;
|
|
37612
|
+
if (showTooltipGroup && group.items && group.items.some(function (item) {
|
|
37613
|
+
return item.value === selectedValue;
|
|
37614
|
+
})) {
|
|
37615
|
+
if (prevTextShowTooltip) return prevTextShowTooltip + ' ' + group.label;
|
|
37616
|
+
return group.label;
|
|
37617
|
+
}
|
|
37618
|
+
}
|
|
37619
|
+
} catch (err) {
|
|
37620
|
+
_iterator.e(err);
|
|
37621
|
+
} finally {
|
|
37622
|
+
_iterator.f();
|
|
37623
|
+
}
|
|
37624
|
+
return '';
|
|
37625
|
+
};
|
|
37626
|
+
useEffect(function () {
|
|
37627
|
+
if (optionSelected) setSelectedGroupLabel(getSelectedGroupLabel(optionSelected));
|
|
37628
|
+
}, [optionSelected, loadedOptions]);
|
|
37184
37629
|
var handleChange = function handleChange(e) {
|
|
37630
|
+
if (readOnly) return;
|
|
37185
37631
|
setOptionSelected(e.value);
|
|
37186
37632
|
if (clickedFromList.current) {
|
|
37187
37633
|
var _selected$optionLabel;
|
|
@@ -37192,69 +37638,92 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37192
37638
|
setInputValue((_selected$optionLabel = selected === null || selected === void 0 ? void 0 : selected[optionLabel]) !== null && _selected$optionLabel !== void 0 ? _selected$optionLabel : '');
|
|
37193
37639
|
}
|
|
37194
37640
|
clickedFromList.current = false;
|
|
37195
|
-
if (onChange)
|
|
37641
|
+
if (typeof onChange === 'function') {
|
|
37642
|
+
onChange(e.value);
|
|
37643
|
+
} else if (typeof onChange === 'string' && typeof window[onChange] === 'function') {
|
|
37644
|
+
window[onChange](e.value);
|
|
37645
|
+
}
|
|
37196
37646
|
};
|
|
37197
37647
|
var handleClear = function handleClear() {
|
|
37198
37648
|
setOptionSelected(null);
|
|
37199
37649
|
setInputValue('');
|
|
37200
|
-
if (onChange)
|
|
37201
|
-
|
|
37650
|
+
if (typeof onChange === 'function') {
|
|
37651
|
+
onChange(null);
|
|
37652
|
+
} else if (typeof onChange === 'string' && typeof window[onChange] === 'function') {
|
|
37653
|
+
window[onChange](null);
|
|
37654
|
+
}
|
|
37655
|
+
searchTermRef.current = '';
|
|
37656
|
+
currentPageRef.current = 1;
|
|
37657
|
+
hasMoreRef.current = true;
|
|
37658
|
+
isLoadingRef.current = false;
|
|
37659
|
+
loadOptions('', [], {
|
|
37202
37660
|
page: 1
|
|
37203
37661
|
}).then(function (result) {
|
|
37204
|
-
|
|
37662
|
+
hasMoreRef.current = (result === null || result === void 0 ? void 0 : result.hasMore) !== false;
|
|
37663
|
+
updateLoadedOptions((result === null || result === void 0 ? void 0 : result.options) || []);
|
|
37205
37664
|
});
|
|
37206
37665
|
};
|
|
37207
37666
|
var handleInputChange = /*#__PURE__*/function () {
|
|
37208
|
-
var
|
|
37209
|
-
var search, result, _result$
|
|
37210
|
-
return _regenerator().w(function (
|
|
37211
|
-
while (1) switch (
|
|
37667
|
+
var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(e) {
|
|
37668
|
+
var search, result, _result$options, _result, filteredOptions;
|
|
37669
|
+
return _regenerator().w(function (_context3) {
|
|
37670
|
+
while (1) switch (_context3.n) {
|
|
37212
37671
|
case 0:
|
|
37213
37672
|
search = e.target.value;
|
|
37214
37673
|
setInputValue(search);
|
|
37674
|
+
if (typeof onSearch === 'function') onSearch(search);
|
|
37675
|
+
searchTermRef.current = search;
|
|
37676
|
+
currentPageRef.current = 1;
|
|
37677
|
+
hasMoreRef.current = true;
|
|
37678
|
+
isLoadingRef.current = false;
|
|
37215
37679
|
if (search) {
|
|
37216
|
-
|
|
37680
|
+
_context3.n = 2;
|
|
37217
37681
|
break;
|
|
37218
37682
|
}
|
|
37219
|
-
|
|
37220
|
-
return
|
|
37683
|
+
_context3.n = 1;
|
|
37684
|
+
return loadOptions('', [], {
|
|
37221
37685
|
page: 1
|
|
37222
37686
|
});
|
|
37223
37687
|
case 1:
|
|
37224
|
-
result =
|
|
37225
|
-
|
|
37226
|
-
|
|
37688
|
+
result = _context3.v;
|
|
37689
|
+
hasMoreRef.current = (result === null || result === void 0 ? void 0 : result.hasMore) !== false;
|
|
37690
|
+
updateLoadedOptions((result === null || result === void 0 ? void 0 : result.options) || []);
|
|
37691
|
+
_context3.n = 4;
|
|
37227
37692
|
break;
|
|
37228
37693
|
case 2:
|
|
37229
|
-
|
|
37230
|
-
return
|
|
37694
|
+
_context3.n = 3;
|
|
37695
|
+
return loadOptions(search, [], {
|
|
37231
37696
|
page: 1
|
|
37232
37697
|
});
|
|
37233
37698
|
case 3:
|
|
37234
|
-
_result =
|
|
37235
|
-
|
|
37699
|
+
_result = _context3.v;
|
|
37700
|
+
hasMoreRef.current = (_result === null || _result === void 0 ? void 0 : _result.hasMore) !== false;
|
|
37701
|
+
filteredOptions = (_result === null || _result === void 0 || (_result$options = _result.options) === null || _result$options === void 0 ? void 0 : _result$options.filter(function (opt) {
|
|
37236
37702
|
return opt[optionLabel].toLowerCase().includes(search.toLowerCase());
|
|
37237
37703
|
})) || [];
|
|
37238
|
-
|
|
37704
|
+
updateLoadedOptions(filteredOptions);
|
|
37239
37705
|
case 4:
|
|
37240
|
-
return
|
|
37706
|
+
return _context3.a(2);
|
|
37241
37707
|
}
|
|
37242
|
-
},
|
|
37708
|
+
}, _callee3);
|
|
37243
37709
|
}));
|
|
37244
37710
|
return function handleInputChange(_x) {
|
|
37245
|
-
return
|
|
37711
|
+
return _ref8.apply(this, arguments);
|
|
37246
37712
|
};
|
|
37247
37713
|
}();
|
|
37714
|
+
var handleMouseEnter = function handleMouseEnter() {
|
|
37715
|
+
var _dropdownComposantRef;
|
|
37716
|
+
if (!openOnHover || disabled || readOnly) return;
|
|
37717
|
+
(_dropdownComposantRef = dropdownComposantRef.current) === null || _dropdownComposantRef === void 0 || _dropdownComposantRef.show();
|
|
37718
|
+
};
|
|
37719
|
+
var handleMouseLeave = function handleMouseLeave() {
|
|
37720
|
+
var _dropdownComposantRef2;
|
|
37721
|
+
if (!openOnHover) return;
|
|
37722
|
+
(_dropdownComposantRef2 = dropdownComposantRef.current) === null || _dropdownComposantRef2 === void 0 || _dropdownComposantRef2.hide();
|
|
37723
|
+
};
|
|
37248
37724
|
var selectedOption = loadedOptions.find(function (opt) {
|
|
37249
37725
|
return opt[optionValue] === optionSelected;
|
|
37250
37726
|
});
|
|
37251
|
-
var inverseColor = function inverseColor(hexColor) {
|
|
37252
|
-
var r = parseInt(hexColor.substr(1, 2), 16);
|
|
37253
|
-
var g = parseInt(hexColor.substr(3, 2), 16);
|
|
37254
|
-
var b = parseInt(hexColor.substr(5, 2), 16);
|
|
37255
|
-
var luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
|
|
37256
|
-
return luminance > 0.18 ? '#000000' : '#FFFFFF';
|
|
37257
|
-
};
|
|
37258
37727
|
var valueTemplate = function valueTemplate() {
|
|
37259
37728
|
if (isEditing) return null;
|
|
37260
37729
|
if (!selectedOption) return /*#__PURE__*/React__default.createElement("span", {
|
|
@@ -37262,7 +37731,42 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37262
37731
|
color: '#aaa'
|
|
37263
37732
|
}
|
|
37264
37733
|
}, placeholder);
|
|
37265
|
-
|
|
37734
|
+
var valueTooltip = enableItemTooltip ? (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.tooltip) || (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.description) || (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption[optionLabel]) : null;
|
|
37735
|
+
var valueTooltipAttrs = valueTooltip ? {
|
|
37736
|
+
'data-pr-tooltip': valueTooltip,
|
|
37737
|
+
'data-pr-position': 'top'
|
|
37738
|
+
} : {};
|
|
37739
|
+
if (withIcon || withColor) {
|
|
37740
|
+
var _ref9 = selectConfig || {},
|
|
37741
|
+
labelStyle = _ref9.labelStyle,
|
|
37742
|
+
generalIcon = _ref9.generalIcon;
|
|
37743
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
37744
|
+
style: _objectSpread2({
|
|
37745
|
+
display: 'flex',
|
|
37746
|
+
alignItems: 'center',
|
|
37747
|
+
gap: '8px',
|
|
37748
|
+
fontFamily: 'Arial',
|
|
37749
|
+
fontSize: '14px'
|
|
37750
|
+
}, valueStyle)
|
|
37751
|
+
}, withIcon && generalIcon && /*#__PURE__*/React__default.createElement("i", {
|
|
37752
|
+
style: {
|
|
37753
|
+
color: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.color
|
|
37754
|
+
},
|
|
37755
|
+
className: generalIcon
|
|
37756
|
+
}), withColor && selectedOption !== null && selectedOption !== void 0 && selectedOption.color ? /*#__PURE__*/React__default.createElement("span", {
|
|
37757
|
+
className: "dd-color-badge is-selected",
|
|
37758
|
+
style: {
|
|
37759
|
+
'--badge-color': selectedOption.color,
|
|
37760
|
+
color: inverseColor(selectedOption.color)
|
|
37761
|
+
}
|
|
37762
|
+
}, truncateLabel(selectedOption[optionLabel])) : /*#__PURE__*/React__default.createElement("span", {
|
|
37763
|
+
className: valueClassname,
|
|
37764
|
+
style: labelStyle
|
|
37765
|
+
}, truncateLabel(selectedOption[optionLabel])));
|
|
37766
|
+
}
|
|
37767
|
+
return /*#__PURE__*/React__default.createElement("span", _extends$J({
|
|
37768
|
+
className: "".concat(valueClassname || '').concat(valueTooltip ? ' dropdown-tooltip-trigger' : '').trim() || undefined,
|
|
37769
|
+
title: valueTooltip ? undefined : selectedOption[optionLabel],
|
|
37266
37770
|
style: _objectSpread2({
|
|
37267
37771
|
backgroundColor: selectedOption !== null && selectedOption !== void 0 && selectedOption.color ? selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.color : '#FFFFFF',
|
|
37268
37772
|
color: selectedOption !== null && selectedOption !== void 0 && selectedOption.color ? inverseColor(selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.color) : '#FFFFFF',
|
|
@@ -37273,41 +37777,53 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37273
37777
|
display: 'inline-block',
|
|
37274
37778
|
fontFamily: 'Arial'
|
|
37275
37779
|
}, valueStyle)
|
|
37276
|
-
}, selectedOption[optionLabel]);
|
|
37780
|
+
}, valueTooltipAttrs), truncateLabel(selectedOption[optionLabel]));
|
|
37277
37781
|
};
|
|
37278
37782
|
|
|
37279
|
-
// 🔹
|
|
37783
|
+
// 🔹 Lazy loading paginé au scroll (même logique que MultiSelectMetaAsync)
|
|
37280
37784
|
var onLazyLoad = function onLazyLoad(event) {
|
|
37281
37785
|
setLoading(true);
|
|
37282
|
-
if (
|
|
37283
|
-
|
|
37284
|
-
|
|
37285
|
-
|
|
37286
|
-
|
|
37287
|
-
|
|
37288
|
-
|
|
37289
|
-
|
|
37290
|
-
|
|
37291
|
-
|
|
37292
|
-
|
|
37293
|
-
|
|
37294
|
-
|
|
37295
|
-
|
|
37296
|
-
|
|
37297
|
-
|
|
37298
|
-
|
|
37299
|
-
|
|
37300
|
-
|
|
37301
|
-
|
|
37302
|
-
|
|
37303
|
-
|
|
37304
|
-
|
|
37305
|
-
|
|
37306
|
-
|
|
37307
|
-
|
|
37786
|
+
if (event.last < loadedOptionsRef.current.length - 1 || !hasMoreRef.current) {
|
|
37787
|
+
setTimeout(function () {
|
|
37788
|
+
return setLoading(false);
|
|
37789
|
+
}, 0);
|
|
37790
|
+
return;
|
|
37791
|
+
}
|
|
37792
|
+
if (isLoadingRef.current) return;
|
|
37793
|
+
isLoadingRef.current = true;
|
|
37794
|
+
if (loadLazyTimeout.current) clearTimeout(loadLazyTimeout.current);
|
|
37795
|
+
loadLazyTimeout.current = setTimeout(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
|
|
37796
|
+
var nextPage, result, newOptions;
|
|
37797
|
+
return _regenerator().w(function (_context4) {
|
|
37798
|
+
while (1) switch (_context4.n) {
|
|
37799
|
+
case 0:
|
|
37800
|
+
nextPage = currentPageRef.current + 1;
|
|
37801
|
+
_context4.n = 1;
|
|
37802
|
+
return loadOptions(searchTermRef.current, [], {
|
|
37803
|
+
page: nextPage
|
|
37804
|
+
});
|
|
37805
|
+
case 1:
|
|
37806
|
+
result = _context4.v;
|
|
37807
|
+
newOptions = (result === null || result === void 0 ? void 0 : result.options) || [];
|
|
37808
|
+
if (!(newOptions.length === 0)) {
|
|
37809
|
+
_context4.n = 2;
|
|
37810
|
+
break;
|
|
37811
|
+
}
|
|
37812
|
+
hasMoreRef.current = false;
|
|
37813
|
+
isLoadingRef.current = false;
|
|
37814
|
+
setLoading(false);
|
|
37815
|
+
return _context4.a(2);
|
|
37816
|
+
case 2:
|
|
37817
|
+
updateLoadedOptions([].concat(_toConsumableArray$a(loadedOptionsRef.current), _toConsumableArray$a(newOptions)));
|
|
37818
|
+
hasMoreRef.current = (result === null || result === void 0 ? void 0 : result.hasMore) !== false;
|
|
37819
|
+
currentPageRef.current = nextPage;
|
|
37820
|
+
isLoadingRef.current = false;
|
|
37821
|
+
setLoading(false);
|
|
37822
|
+
case 3:
|
|
37823
|
+
return _context4.a(2);
|
|
37308
37824
|
}
|
|
37309
|
-
}
|
|
37310
|
-
},
|
|
37825
|
+
}, _callee4);
|
|
37826
|
+
})), 500);
|
|
37311
37827
|
};
|
|
37312
37828
|
useEffect(function () {
|
|
37313
37829
|
var handleAnyClick = function handleAnyClick(e) {
|
|
@@ -37334,20 +37850,105 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37334
37850
|
return document.removeEventListener('click', handleAnyClick);
|
|
37335
37851
|
};
|
|
37336
37852
|
}, []);
|
|
37337
|
-
|
|
37338
|
-
|
|
37339
|
-
|
|
37340
|
-
|
|
37853
|
+
|
|
37854
|
+
// 🔹 Options calculées (réordonnancement + tri, comme Dropdown)
|
|
37855
|
+
var smartSort = function smartSort(opts, order, labelKey) {
|
|
37856
|
+
if (!order) return opts;
|
|
37857
|
+
var dir = order === 'desc' ? 1 : -1;
|
|
37858
|
+
return _toConsumableArray$a(opts).sort(function (a, b) {
|
|
37859
|
+
var _a$labelKey, _b$labelKey;
|
|
37860
|
+
var aLabel = String((_a$labelKey = a === null || a === void 0 ? void 0 : a[labelKey]) !== null && _a$labelKey !== void 0 ? _a$labelKey : '').trim();
|
|
37861
|
+
var bLabel = String((_b$labelKey = b === null || b === void 0 ? void 0 : b[labelKey]) !== null && _b$labelKey !== void 0 ? _b$labelKey : '').trim();
|
|
37862
|
+
return dir * aLabel.localeCompare(bLabel, 'fr', {
|
|
37863
|
+
sensitivity: 'base',
|
|
37864
|
+
numeric: true
|
|
37865
|
+
});
|
|
37866
|
+
});
|
|
37867
|
+
};
|
|
37868
|
+
var computedOptions = useMemo(function () {
|
|
37869
|
+
var opts = loadedOptions;
|
|
37870
|
+
if (itemsCheckedToTheTop && optionSelected) {
|
|
37871
|
+
var selected = opts.find(function (opt) {
|
|
37872
|
+
return (opt === null || opt === void 0 ? void 0 : opt[optionValue]) === optionSelected;
|
|
37873
|
+
});
|
|
37874
|
+
if (selected) {
|
|
37875
|
+
opts = [selected].concat(_toConsumableArray$a(opts.filter(function (opt) {
|
|
37876
|
+
return (opt === null || opt === void 0 ? void 0 : opt[optionValue]) !== optionSelected;
|
|
37877
|
+
})));
|
|
37878
|
+
}
|
|
37879
|
+
}
|
|
37880
|
+
if (enableSorting) {
|
|
37881
|
+
opts = smartSort(opts, sortOrder, optionLabel);
|
|
37882
|
+
}
|
|
37883
|
+
return opts;
|
|
37884
|
+
}, [loadedOptions, itemsCheckedToTheTop, optionSelected, enableSorting, sortOrder, optionValue, optionLabel]);
|
|
37885
|
+
var toggleSortOrder = function toggleSortOrder() {
|
|
37886
|
+
setSortOrder(function (prev) {
|
|
37887
|
+
if (prev === null) return 'desc';
|
|
37888
|
+
if (prev === 'desc') return 'asc';
|
|
37889
|
+
return null;
|
|
37890
|
+
});
|
|
37891
|
+
requestAnimationFrame(function () {
|
|
37892
|
+
var _dropdownComposantRef3;
|
|
37893
|
+
(_dropdownComposantRef3 = dropdownComposantRef.current) === null || _dropdownComposantRef3 === void 0 || _dropdownComposantRef3.show();
|
|
37894
|
+
});
|
|
37895
|
+
};
|
|
37896
|
+
var customFilterTemplate = function customFilterTemplate(opts) {
|
|
37897
|
+
if (!enableSorting) return opts.element;
|
|
37898
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
37899
|
+
className: "dd-search-row"
|
|
37900
|
+
}, opts.element, /*#__PURE__*/React__default.createElement("button", {
|
|
37901
|
+
type: "button",
|
|
37902
|
+
className: "dd-sort-btn",
|
|
37903
|
+
onClick: function onClick(e) {
|
|
37904
|
+
e.stopPropagation();
|
|
37905
|
+
toggleSortOrder();
|
|
37906
|
+
}
|
|
37907
|
+
}, /*#__PURE__*/React__default.createElement("i", {
|
|
37908
|
+
className: sortOrder === 'desc' ? 'pi pi-sort-amount-down' : sortOrder === 'asc' ? 'pi pi-sort-amount-up-alt' : 'pi pi-sort-alt'
|
|
37909
|
+
})));
|
|
37910
|
+
};
|
|
37911
|
+
var mergedClassName = "flex flex-col gap-1 ".concat(attr["class"] || '').trim();
|
|
37912
|
+
attr["class"];
|
|
37913
|
+
var cleanAttr = _objectWithoutProperties$1(attr, _excluded2$2);
|
|
37914
|
+
return /*#__PURE__*/React__default.createElement("div", _extends$J({
|
|
37915
|
+
ref: dropdownRef
|
|
37916
|
+
}, cleanAttr, {
|
|
37917
|
+
className: mergedClassName,
|
|
37918
|
+
style: {
|
|
37919
|
+
width: '100%'
|
|
37920
|
+
},
|
|
37921
|
+
onMouseEnter: handleMouseEnter,
|
|
37922
|
+
onMouseLeave: handleMouseLeave,
|
|
37923
|
+
onClick: isInvalidEffective || disabled || readOnly ? null : function () {
|
|
37341
37924
|
return setIsEditing(editable);
|
|
37342
37925
|
}
|
|
37343
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
37344
|
-
|
|
37926
|
+
}), enableItemTooltip && /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
37927
|
+
key: tooltipKey,
|
|
37928
|
+
target: ".dropdown-tooltip-item, .dropdown-tooltip-trigger",
|
|
37929
|
+
appendTo: document.body,
|
|
37930
|
+
position: "right",
|
|
37931
|
+
autoHide: false,
|
|
37932
|
+
hideDelay: 150,
|
|
37933
|
+
style: {
|
|
37934
|
+
zIndex: 9999999
|
|
37935
|
+
}
|
|
37936
|
+
}), /*#__PURE__*/React__default.createElement(Dropdown$1, _extends$J({
|
|
37937
|
+
ref: dropdownComposantRef,
|
|
37938
|
+
options: computedOptions,
|
|
37345
37939
|
onChange: handleChange,
|
|
37940
|
+
onClick: function onClick(e) {
|
|
37941
|
+
if (readOnly) {
|
|
37942
|
+
e.preventDefault();
|
|
37943
|
+
e.stopPropagation();
|
|
37944
|
+
}
|
|
37945
|
+
},
|
|
37346
37946
|
filter: filter,
|
|
37947
|
+
filterTemplate: filter ? customFilterTemplate : undefined,
|
|
37347
37948
|
placeholder: placeholder === "" || placeholder === null ? ' ' : placeholder,
|
|
37348
37949
|
optionLabel: optionLabel,
|
|
37349
37950
|
optionValue: optionValue,
|
|
37350
|
-
showClear:
|
|
37951
|
+
showClear: showClear,
|
|
37351
37952
|
disabled: disabled,
|
|
37352
37953
|
editable: isEditing,
|
|
37353
37954
|
onFocus: function onFocus() {
|
|
@@ -37365,16 +37966,38 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37365
37966
|
},
|
|
37366
37967
|
dropdownMode: "current",
|
|
37367
37968
|
itemTemplate: optionTemplate,
|
|
37368
|
-
valueTemplate: valueTemplate
|
|
37369
|
-
|
|
37969
|
+
valueTemplate: valueTemplate
|
|
37970
|
+
}, hasInfoLine && {
|
|
37971
|
+
panelFooterTemplate: panelFooterTemplate
|
|
37972
|
+
}, {
|
|
37973
|
+
optionGroupTemplate: isGroupedOption ? groupedItemTemplate : null
|
|
37974
|
+
}, isGroupedOption && computedOptions.length > 0 && Array.isArray((_computedOptions$ = computedOptions[0]) === null || _computedOptions$ === void 0 ? void 0 : _computedOptions$.items) && {
|
|
37975
|
+
optionGroupLabel: 'label',
|
|
37976
|
+
optionGroupChildren: 'items'
|
|
37977
|
+
}, {
|
|
37978
|
+
onShow: function onShow() {
|
|
37979
|
+
if (isGroupedOption && showTooltipGroup) setIsDropdownOpen(true);
|
|
37980
|
+
if (enableItemTooltip) setTooltipKey(function (k) {
|
|
37981
|
+
return k + 1;
|
|
37982
|
+
});
|
|
37983
|
+
},
|
|
37984
|
+
onHide: function onHide() {
|
|
37985
|
+
if (isGroupedOption && showTooltipGroup) setIsDropdownOpen(false);
|
|
37986
|
+
},
|
|
37987
|
+
emptyMessage: externalLoading ? 'Chargement…' : 'Aucune option disponible',
|
|
37988
|
+
virtualScrollerOptions: _objectSpread2({
|
|
37370
37989
|
lazy: true,
|
|
37371
37990
|
onLazyLoad: onLazyLoad,
|
|
37372
37991
|
itemSize: 38,
|
|
37373
37992
|
showLoader: true,
|
|
37374
|
-
loading: loading,
|
|
37993
|
+
loading: loading || externalLoading,
|
|
37375
37994
|
delay: 25
|
|
37376
|
-
},
|
|
37377
|
-
className: "w-full
|
|
37995
|
+
}, virtualScrollerOptions),
|
|
37996
|
+
className: "w-full"
|
|
37997
|
+
})), !isDropdownOpen && selectedGroupLabel && isGroupedOption && /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
37998
|
+
target: ".p-dropdown-label.p-inputtext",
|
|
37999
|
+
content: selectedGroupLabel,
|
|
38000
|
+
position: "top"
|
|
37378
38001
|
}), name && /*#__PURE__*/React__default.createElement("input", {
|
|
37379
38002
|
type: "hidden",
|
|
37380
38003
|
name: name,
|
|
@@ -37411,9 +38034,6 @@ var DropdownSelectMetaAsync = function DropdownSelectMetaAsync(_ref) {
|
|
|
37411
38034
|
}, errorMessage || (showRequiredError ? ((_window$Translator = window.Translator) === null || _window$Translator === void 0 ? void 0 : _window$Translator.trans('error.required')) || 'Veuillez renseigner ce champ' : ((_window$Translator2 = window.Translator) === null || _window$Translator2 === void 0 ? void 0 : _window$Translator2.trans('error.invalid_selection')) || 'Sélection invalide'))));
|
|
37412
38035
|
};
|
|
37413
38036
|
|
|
37414
|
-
var css_248z$5 = "@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.dropdownbook.p-dropdown-panel {\n z-index: 999999 !important;\n}\n\n.p-tooltip {\n z-index: 1000000 !important;\n}\n\n.dropdown-tooltip-item {\n position: relative;\n width: 100%;\n cursor: pointer;\n}\n\n/* Application du mixin field sur le wrapper du Dropdown */\n.dropdown-container .p-dropdown {\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}\n.dropdown-container .p-dropdown:hover:not(:focus):not(:focus-within):not([disabled]):not(.is-disabled) {\n border-color: #c8cdd6;\n}\n.dropdown-container .p-dropdown:focus, .dropdown-container .p-dropdown:focus-within, .dropdown-container .p-dropdown.is-open {\n border-color: #3f3f3f;\n box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);\n}\n.dropdown-container .p-dropdown[disabled], .dropdown-container .p-dropdown.is-disabled {\n opacity: 0.45;\n cursor: not-allowed;\n pointer-events: none;\n}\n.dropdown-container .p-dropdown[readonly], .dropdown-container .p-dropdown.is-readonly {\n background: #f4f5f6;\n cursor: default;\n box-shadow: none;\n}\n.dropdown-container .p-dropdown[readonly]:hover, .dropdown-container .p-dropdown.is-readonly:hover {\n border-color: #e0e3e8;\n}\n.dropdown-container .p-dropdown.is-error {\n border-color: #dc2626;\n box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);\n}\n.dropdown-container .p-dropdown.is-success {\n border-color: #15803d;\n box-shadow: 0 0 0 3px rgba(21, 128, 61, 0.12);\n}\n.dropdown-container .p-dropdown {\n padding: 0;\n display: flex;\n align-items: center;\n}\n\n.dd-search-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-bottom: 1px solid #e0e3e8;\n}\n.dd-search-row [class*=-filter-container] {\n flex: 1;\n min-width: 0;\n position: relative;\n}\n.dd-search-row [class*=-filter-container] .p-inputtext {\n width: 100%;\n height: 32px;\n padding: 0 24.5px 0 12px;\n font-size: 14px;\n box-sizing: border-box;\n}\n.dd-search-row [class*=-filter-container] [class*=-filter-icon] {\n right: 10.5px;\n color: #b0b8c4;\n}\n\n.dd-sort-btn {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid #e0e3e8;\n border-radius: 7px;\n background: #ffffff;\n cursor: pointer;\n color: #b0b8c4;\n font-size: 14px;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.dd-sort-btn:hover {\n background: #f4f5f6;\n color: #1a1e26;\n}\n\n.dropdownbook .p-dropdown-header:has(.dd-search-row) {\n padding: 0;\n}\n\n/* ===== Badge couleur dans les items ===== */\n.dd-color-badge {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n padding: 4px 10px;\n border-radius: 14px;\n font-size: 12.25px;\n font-family: \"Roboto\", sans-serif;\n white-space: nowrap;\n cursor: default;\n transition: background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n background-color: #f4f5f6;\n color: #1a1e26;\n border: 1px solid #e0e3e8;\n border-color: var(--badge-color, #e0e3e8);\n background-color: color-mix(in srgb, var(--badge-color, #f4f5f6) 50%, transparent);\n}\n.dd-color-badge.is-selected {\n background-color: var(--badge-color, #f4f5f6);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n}\n\n.p-dropdown-item:hover .dd-color-badge {\n background-color: var(--badge-color) !important;\n}\n\n/* ===== Override PrimeReact default item colors ===== */\n.dropdownbook .p-dropdown-items .p-dropdown-item:not(.p-highlight):hover {\n background: #f4f5f6 !important;\n color: #1a1e26 !important;\n}\n.dropdownbook .p-dropdown-items .p-dropdown-item.p-highlight {\n background: rgba(63, 63, 63, 0.08) !important;\n color: #1a1e26 !important;\n}\n.dropdownbook .p-dropdown-items .p-dropdown-item.p-highlight.p-focus {\n background: rgba(63, 63, 63, 0.12) !important;\n color: #1a1e26 !important;\n}\n.dropdownbook .p-dropdown-items .p-dropdown-item.p-focus {\n background: #f4f5f6 !important;\n color: #1a1e26 !important;\n}\n\n/* ===== Override PrimeReact filter input focus ===== */\n.dropdownbook .p-dropdown-filter.p-inputtext:hover {\n border-color: #c8cdd6 !important;\n}\n.dropdownbook .p-dropdown-filter.p-inputtext:focus, .dropdownbook .p-dropdown-filter.p-inputtext.p-focus {\n border-color: #3f3f3f !important;\n box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1) !important;\n outline: none;\n}";
|
|
37415
|
-
styleInject(css_248z$5);
|
|
37416
|
-
|
|
37417
38037
|
var _excluded$2 = ["class"],
|
|
37418
38038
|
_excluded2$1 = ["style", "className"];
|
|
37419
38039
|
var Dropdown = function Dropdown(props) {
|
|
@@ -37519,10 +38139,11 @@ var Dropdown = function Dropdown(props) {
|
|
|
37519
38139
|
_props$subItem = props.subItem,
|
|
37520
38140
|
subItem = _props$subItem === void 0 ? false : _props$subItem,
|
|
37521
38141
|
_props$required = props.required,
|
|
37522
|
-
required = _props$required === void 0 ? false : _props$required
|
|
38142
|
+
required = _props$required === void 0 ? false : _props$required,
|
|
38143
|
+
optionsUrl = props.optionsUrl;
|
|
37523
38144
|
|
|
37524
38145
|
// --- Async delegation ---
|
|
37525
|
-
var isAsyncOptions = typeof options === 'function';
|
|
38146
|
+
var isAsyncOptions = typeof options === 'function' || optionsUrl;
|
|
37526
38147
|
if (isAsyncOptions) {
|
|
37527
38148
|
return /*#__PURE__*/React__default.createElement(DropdownSelectMetaAsync, props);
|
|
37528
38149
|
}
|
|
@@ -37628,7 +38249,7 @@ var Dropdown = function Dropdown(props) {
|
|
|
37628
38249
|
return prevKey + 1;
|
|
37629
38250
|
});
|
|
37630
38251
|
}
|
|
37631
|
-
}, [options, enableItemTooltip]);
|
|
38252
|
+
}, [options, enableItemTooltip, optionSelected]);
|
|
37632
38253
|
|
|
37633
38254
|
// --- Helpers ---
|
|
37634
38255
|
var getSelectedGroupLabel = function getSelectedGroupLabel(selectedValue) {
|
|
@@ -37665,6 +38286,34 @@ var Dropdown = function Dropdown(props) {
|
|
|
37665
38286
|
return label.slice(0, truncateAt) + '…';
|
|
37666
38287
|
};
|
|
37667
38288
|
|
|
38289
|
+
// --- Tooltip HTML support ---
|
|
38290
|
+
// PrimeReact 10 ignore la prop `escape` : sa Tooltip écrit toujours via
|
|
38291
|
+
// createTextNode. Un MutationObserver global rescande les `.p-tooltip-text`
|
|
38292
|
+
// pour convertir le texte contenant du HTML en innerHTML rendu.
|
|
38293
|
+
// On l'installe une seule fois côté document.body, indépendamment du montage
|
|
38294
|
+
// des composants — car onShow ne se déclenche pas lors du changement de
|
|
38295
|
+
// cible pendant que le tooltip est déjà visible.
|
|
38296
|
+
useEffect(function () {
|
|
38297
|
+
if (!enableItemTooltip) return undefined;
|
|
38298
|
+
var rewrite = function rewrite() {
|
|
38299
|
+
document.querySelectorAll('.p-tooltip .p-tooltip-text').forEach(function (el) {
|
|
38300
|
+
var raw = el.textContent;
|
|
38301
|
+
if (raw && /<[a-z][\s\S]*>/i.test(raw) && el.innerHTML !== raw) {
|
|
38302
|
+
el.innerHTML = raw;
|
|
38303
|
+
}
|
|
38304
|
+
});
|
|
38305
|
+
};
|
|
38306
|
+
var observer = new MutationObserver(rewrite);
|
|
38307
|
+
observer.observe(document.body, {
|
|
38308
|
+
childList: true,
|
|
38309
|
+
subtree: true,
|
|
38310
|
+
characterData: true
|
|
38311
|
+
});
|
|
38312
|
+
return function () {
|
|
38313
|
+
return observer.disconnect();
|
|
38314
|
+
};
|
|
38315
|
+
}, [enableItemTooltip]);
|
|
38316
|
+
|
|
37668
38317
|
// --- Event handlers ---
|
|
37669
38318
|
var handleShow = function handleShow() {
|
|
37670
38319
|
return setIsDropdownOpen(true);
|
|
@@ -37712,6 +38361,11 @@ var Dropdown = function Dropdown(props) {
|
|
|
37712
38361
|
} : {
|
|
37713
38362
|
className: 'dropdown-tooltip-item'
|
|
37714
38363
|
};
|
|
38364
|
+
var tooltipContent = option.tooltip || option.description;
|
|
38365
|
+
var hasTooltip = Boolean(enableItemTooltip && tooltipContent);
|
|
38366
|
+
var infoIcon = hasTooltip ? /*#__PURE__*/React__default.createElement("i", {
|
|
38367
|
+
className: "pi pi-info-circle dropdown-item-info-icon"
|
|
38368
|
+
}) : null;
|
|
37715
38369
|
var secondaryLabel = enableSecondaryLabel ? option === null || option === void 0 ? void 0 : option[secondaryLabelKey] : null;
|
|
37716
38370
|
var isLink = enableItemLink && option.link;
|
|
37717
38371
|
var handleLinkClick = function handleLinkClick(e) {
|
|
@@ -37791,10 +38445,7 @@ var Dropdown = function Dropdown(props) {
|
|
|
37791
38445
|
optionAttrs.style;
|
|
37792
38446
|
optionAttrs.className;
|
|
37793
38447
|
var restAttrs = _objectWithoutProperties$1(optionAttrs, _excluded2$1);
|
|
37794
|
-
|
|
37795
|
-
className: className,
|
|
37796
|
-
style: _style
|
|
37797
|
-
}), imgUrl && /*#__PURE__*/React__default.createElement("img", {
|
|
38448
|
+
var labelContent = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, imgUrl && /*#__PURE__*/React__default.createElement("img", {
|
|
37798
38449
|
src: imgUrl,
|
|
37799
38450
|
alt: "",
|
|
37800
38451
|
style: {
|
|
@@ -37845,6 +38496,42 @@ var Dropdown = function Dropdown(props) {
|
|
|
37845
38496
|
marginLeft: '10px'
|
|
37846
38497
|
}
|
|
37847
38498
|
}, secondaryLabel)))) : option[optionLabel]);
|
|
38499
|
+
if (hasTooltip) {
|
|
38500
|
+
// Deux colonnes : libellé à l'extrême gauche, picto "i" à l'extrême droite.
|
|
38501
|
+
// Le tooltip est porté par l'item entier (survol de toute la ligne) et,
|
|
38502
|
+
// en position "right" sur un item pleine largeur, il pointe sur le picto.
|
|
38503
|
+
return /*#__PURE__*/React__default.createElement("div", _extends$J({}, tooltipProps, restAttrs, {
|
|
38504
|
+
className: "".concat(className, " dropdown-item-two-cols"),
|
|
38505
|
+
style: _objectSpread2(_objectSpread2({}, _style), {}, {
|
|
38506
|
+
width: '100%',
|
|
38507
|
+
maxWidth: 'none',
|
|
38508
|
+
justifyContent: 'space-between'
|
|
38509
|
+
})
|
|
38510
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
38511
|
+
className: "dropdown-item-label-col",
|
|
38512
|
+
style: {
|
|
38513
|
+
display: 'flex',
|
|
38514
|
+
alignItems: 'center',
|
|
38515
|
+
gap: '0.5rem',
|
|
38516
|
+
minWidth: 0,
|
|
38517
|
+
overflow: 'hidden',
|
|
38518
|
+
textOverflow: 'ellipsis',
|
|
38519
|
+
whiteSpace: 'nowrap'
|
|
38520
|
+
}
|
|
38521
|
+
}, labelContent), /*#__PURE__*/React__default.createElement("div", {
|
|
38522
|
+
className: "dropdown-item-info-col",
|
|
38523
|
+
style: {
|
|
38524
|
+
flexShrink: 0,
|
|
38525
|
+
display: 'flex',
|
|
38526
|
+
alignItems: 'center',
|
|
38527
|
+
marginLeft: '8px'
|
|
38528
|
+
}
|
|
38529
|
+
}, infoIcon));
|
|
38530
|
+
}
|
|
38531
|
+
return /*#__PURE__*/React__default.createElement("div", _extends$J({}, tooltipProps, restAttrs, {
|
|
38532
|
+
className: className,
|
|
38533
|
+
style: _style
|
|
38534
|
+
}), labelContent);
|
|
37848
38535
|
}
|
|
37849
38536
|
var _ref2 = selectMetaConfig || {},
|
|
37850
38537
|
labelStyle = _ref2.labelStyle,
|
|
@@ -37917,6 +38604,11 @@ var Dropdown = function Dropdown(props) {
|
|
|
37917
38604
|
}, secondaryLabel)))));
|
|
37918
38605
|
};
|
|
37919
38606
|
var valueTemplate = function valueTemplate(option) {
|
|
38607
|
+
var valueTooltip = enableItemTooltip ? (option === null || option === void 0 ? void 0 : option.tooltip) || (option === null || option === void 0 ? void 0 : option.description) || (option === null || option === void 0 ? void 0 : option[optionLabel]) : null;
|
|
38608
|
+
var valueTooltipAttrs = valueTooltip ? {
|
|
38609
|
+
'data-pr-tooltip': valueTooltip,
|
|
38610
|
+
'data-pr-position': 'top'
|
|
38611
|
+
} : {};
|
|
37920
38612
|
if (isSelectMeta) {
|
|
37921
38613
|
if (!isEditing) {
|
|
37922
38614
|
var iconColor = option !== null && option !== void 0 && option.color ? inverseColor(option === null || option === void 0 ? void 0 : option.color) : '#000000';
|
|
@@ -37986,9 +38678,10 @@ var Dropdown = function Dropdown(props) {
|
|
|
37986
38678
|
fontSize: '14px'
|
|
37987
38679
|
}, valueStyle)
|
|
37988
38680
|
};
|
|
37989
|
-
return imgUrl ? /*#__PURE__*/React__default.createElement("div", {
|
|
37990
|
-
style: _style2
|
|
37991
|
-
|
|
38681
|
+
return imgUrl ? /*#__PURE__*/React__default.createElement("div", _extends$J({
|
|
38682
|
+
style: _style2,
|
|
38683
|
+
className: valueTooltip ? 'dropdown-tooltip-trigger' : undefined
|
|
38684
|
+
}, valueTooltipAttrs), /*#__PURE__*/React__default.createElement("img", {
|
|
37992
38685
|
src: imgUrl,
|
|
37993
38686
|
alt: "",
|
|
37994
38687
|
style: {
|
|
@@ -37996,15 +38689,15 @@ var Dropdown = function Dropdown(props) {
|
|
|
37996
38689
|
height: '18px',
|
|
37997
38690
|
objectFit: 'contain'
|
|
37998
38691
|
}
|
|
37999
|
-
}), /*#__PURE__*/React__default.createElement("span", null, option === null || option === void 0 ? void 0 : option[optionLabel])) : /*#__PURE__*/React__default.createElement("span", {
|
|
38000
|
-
className: attrs.className,
|
|
38692
|
+
}), /*#__PURE__*/React__default.createElement("span", null, option === null || option === void 0 ? void 0 : option[optionLabel])) : /*#__PURE__*/React__default.createElement("span", _extends$J({
|
|
38693
|
+
className: "".concat(attrs.className || '').concat(valueTooltip ? ' dropdown-tooltip-trigger' : '').trim() || undefined,
|
|
38001
38694
|
style: _objectSpread2(_objectSpread2(_objectSpread2({}, attrs.style), optionStyle), {}, {
|
|
38002
38695
|
whiteSpace: 'nowrap',
|
|
38003
38696
|
overflow: 'hidden',
|
|
38004
38697
|
textOverflow: 'ellipsis'
|
|
38005
38698
|
}),
|
|
38006
|
-
title: option === null || option === void 0 ? void 0 : option[optionLabel]
|
|
38007
|
-
}, truncateLabel(option === null || option === void 0 ? void 0 : option[optionLabel]) || placeholder);
|
|
38699
|
+
title: valueTooltip ? undefined : option === null || option === void 0 ? void 0 : option[optionLabel]
|
|
38700
|
+
}, valueTooltipAttrs), truncateLabel(option === null || option === void 0 ? void 0 : option[optionLabel]) || placeholder);
|
|
38008
38701
|
}
|
|
38009
38702
|
};
|
|
38010
38703
|
var groupedItemTemplate = function groupedItemTemplate(option) {
|
|
@@ -38149,9 +38842,11 @@ var Dropdown = function Dropdown(props) {
|
|
|
38149
38842
|
}
|
|
38150
38843
|
}, enableItemTooltip && /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
38151
38844
|
key: tooltipKey,
|
|
38152
|
-
target: ".dropdown-tooltip-item",
|
|
38845
|
+
target: ".dropdown-tooltip-item, .dropdown-tooltip-trigger",
|
|
38153
38846
|
appendTo: document.body,
|
|
38154
38847
|
position: "right",
|
|
38848
|
+
autoHide: false,
|
|
38849
|
+
hideDelay: 150,
|
|
38155
38850
|
style: {
|
|
38156
38851
|
zIndex: 9999999
|
|
38157
38852
|
}
|
|
@@ -38659,15 +39354,19 @@ var DropdownPresets = {
|
|
|
38659
39354
|
options: [{
|
|
38660
39355
|
label: 'Option A',
|
|
38661
39356
|
value: 'a',
|
|
38662
|
-
tooltip: '
|
|
39357
|
+
tooltip: '<b>Option A</b> — <i>information</i> spécifique.<br/>Prise en charge du <u>HTML</u>.'
|
|
38663
39358
|
}, {
|
|
38664
39359
|
label: 'Option B',
|
|
38665
39360
|
value: 'b',
|
|
38666
|
-
tooltip: 'Détail complémentaire
|
|
39361
|
+
tooltip: '<span style="color:#3b82f6">Détail</span> complémentaire pour <b>B</b>'
|
|
38667
39362
|
}, {
|
|
38668
39363
|
label: 'Option C',
|
|
38669
39364
|
value: 'c',
|
|
38670
|
-
tooltip: 'Contexte métier
|
|
39365
|
+
tooltip: 'Contexte métier :<ul style="margin:4px 0 0 16px;padding:0"><li>Point 1</li><li>Point 2</li></ul>'
|
|
39366
|
+
}, {
|
|
39367
|
+
label: 'Option D',
|
|
39368
|
+
value: 'd',
|
|
39369
|
+
tooltip: 'Documentation : <a href="https://example.com" target="_blank" rel="noopener" style="color:#60a5fa;text-decoration:underline">ouvrir la doc</a>'
|
|
38671
39370
|
}],
|
|
38672
39371
|
filter: true,
|
|
38673
39372
|
enableSorting: true
|
|
@@ -41015,7 +41714,7 @@ var Badge = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (inPr
|
|
|
41015
41714
|
}));
|
|
41016
41715
|
Badge.displayName = 'Badge';
|
|
41017
41716
|
|
|
41018
|
-
var css_248z$4 = "@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.multiselect-container {\n position: relative;\n display: inline-block;\n}\n\n/* Application du mixin field sur le wrapper du MultiSelect */\n.multiselect-container .p-multiselect {\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}\n.multiselect-container .p-multiselect:hover:not(:focus):not(:focus-within):not([disabled]):not(.is-disabled) {\n border-color: #c8cdd6;\n}\n.multiselect-container .p-multiselect:focus, .multiselect-container .p-multiselect:focus-within, .multiselect-container .p-multiselect.is-open {\n border-color: #3f3f3f;\n box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);\n}\n.multiselect-container .p-multiselect[disabled], .multiselect-container .p-multiselect.is-disabled {\n opacity: 0.45;\n cursor: not-allowed;\n pointer-events: none;\n}\n.multiselect-container .p-multiselect[readonly], .multiselect-container .p-multiselect.is-readonly {\n background: #f4f5f6;\n cursor: default;\n box-shadow: none;\n}\n.multiselect-container .p-multiselect[readonly]:hover, .multiselect-container .p-multiselect.is-readonly:hover {\n border-color: #e0e3e8;\n}\n.multiselect-container .p-multiselect.is-error {\n border-color: #dc2626;\n box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);\n}\n.multiselect-container .p-multiselect.is-success {\n border-color: #15803d;\n box-shadow: 0 0 0 3px rgba(21, 128, 61, 0.12);\n}\n.multiselect-container .p-multiselect {\n padding: 0;\n display: flex;\n align-items: center;\n height: 40px;\n overflow: hidden;\n}\n.multiselect-container .p-multiselect .p-multiselect-trigger {\n border-left: 1px solid #cccccc;\n}\n\n.selected-options-tooltip {\n position: absolute;\n background-color: #ffffff;\n border: 1px solid #e0e3e8;\n border-radius: 4px;\n padding: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n width: 400px;\n top: 100%;\n left: 0;\n}\n\n.selected-options-tooltip div {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.multiselect-tooltip-item {\n width: 100%;\n cursor: pointer;\n}\n\n/* ===== Checkbox hiding (replaces inline <style> tags) ===== */\n.ms-no-checkbox .p-multiselect-items .p-multiselect-item .p-checkbox {\n display: none !important;\n}\n\n.ms-no-checkbox .p-multiselect-items .p-multiselect-item {\n padding-left: 14px !important;\n align-items: center;\n}\n\n/* ===== Custom panel header ===== */\n.ms-panel-header {\n padding: 0;\n}\n\n.ms-search-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-bottom: 1px solid #e0e3e8;\n}\n.ms-search-row [class*=-filter-container] {\n flex: 1;\n min-width: 0;\n position: relative;\n}\n.ms-search-row [class*=-filter-container] .p-inputtext {\n width: 100%;\n height: 32px;\n padding: 0 24.5px 0 12px;\n font-size: 14px;\n box-sizing: border-box;\n}\n.ms-search-row [class*=-filter-container] [class*=-filter-icon] {\n right: 10.5px;\n color: #b0b8c4;\n}\n\n.ms-sort-btn {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid #e0e3e8;\n border-radius: 7px;\n background: #ffffff;\n cursor: pointer;\n color: #b0b8c4;\n font-size: 14px;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ms-sort-btn:hover {\n background: #f4f5f6;\n color: #1a1e26;\n}\n\n.ms-selectall-row {\n display: flex;\n align-items: center;\n padding: 10px 12px;\n border-bottom: 1px solid #e0e3e8;\n}\n.ms-selectall-row > div:first-child {\n width: 16px !important;\n height: 16px !important;\n margin-right: 8px;\n display: flex;\n align-items: center;\n}\n.ms-selectall-row > div:first-child .ms-group-checkbox {\n width: 16px;\n height: 16px;\n min-width: 16px;\n min-height: 16px;\n}\n\n.ms-selectall-row .p-checkbox {\n margin-right: 0;\n}\n\n.ms-selectall-label {\n font-size: 14px;\n color: #1a1e26;\n}\n\n.ms-counter {\n font-size: 13px;\n color: #b0b8c4;\n margin-left: auto;\n white-space: nowrap;\n}\n\n/* ===== Custom panel footer ===== */\n.ms-panel-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 8px 12px;\n border-top: 1px solid #e0e3e8;\n}\n\n.ms-cancel-btn {\n background: none;\n border: none;\n cursor: pointer;\n color: #b0b8c4;\n font-size: 14px;\n padding: 6px 12px;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.ms-cancel-btn:hover {\n color: #1a1e26;\n}\n\n.ms-apply-btn {\n background: #3f3f3f;\n color: #ffffff;\n border: none;\n border-radius: 4px;\n padding: 6px 16px;\n cursor: pointer;\n font-size: 14px;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.ms-apply-btn:hover {\n background: #1a1e26;\n}\n\n/* ===== Group header ===== */\n.ms-group-header {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 4px 0;\n user-select: none;\n}\n\n.ms-group-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.ms-group-checkbox.checked, .ms-group-checkbox.p-highlight {\n background-color: #3f3f3f;\n border-color: #3f3f3f;\n}\n.ms-group-checkbox.partial {\n background: linear-gradient(to top right, #3f3f3f 50%, transparent 50%);\n border-color: #3f3f3f;\n}\n.ms-group-checkbox {\n margin-right: 8px;\n}\n\n.ms-group-label {\n font-weight: bold;\n font-size: 14px;\n flex: 1;\n min-width: 0;\n}\n\n.ms-group-collapse-btn {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid #e0e3e8;\n border-radius: 7px;\n background: #ffffff;\n cursor: pointer;\n color: #b0b8c4;\n font-size: 14px;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ms-group-collapse-btn:hover {\n background: #f4f5f6;\n color: #1a1e26;\n}\n.ms-group-collapse-btn {\n width: 20px;\n height: 20px;\n border-color: #b0b8c4;\n font-size: 10px;\n font-weight: bold;\n margin-left: 8px;\n}\n\n/* ===== Checkbox PrimeReact — ISO avec ms-group-checkbox ===== */\n.p-checkbox-input {\n display: none;\n}\n\n/* Checkbox PrimeReact — items + select all */\n.p-checkbox {\n display: flex;\n align-items: center;\n margin-right: 8px;\n}\n\n.p-multiselect-item {\n display: flex;\n align-items: center;\n padding: 6px 12px !important;\n font-family: \"Roboto\", sans-serif;\n font-weight: 400 !important;\n}\n.p-multiselect-item > span:not([class]) {\n flex: 1;\n min-width: 0;\n}\n\n.ms-selectall-row {\n display: flex;\n align-items: center;\n}\n\n.p-checkbox .p-checkbox-box {\n width: 16px !important;\n height: 16px !important;\n min-width: 16px;\n min-height: 16px;\n border: 1.5px solid #e0e3e8;\n border-radius: 3px;\n background: #ffffff;\n transition: all 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-checkbox .p-checkbox-box svg {\n color: #ffffff;\n width: 10px;\n height: 10px;\n}\n\n.p-checkbox.p-highlight .p-checkbox-box {\n background-color: #3f3f3f !important;\n border-color: #3f3f3f !important;\n}\n.p-checkbox.p-highlight .p-checkbox-box svg {\n color: #ffffff;\n}\n\n/* ===== Tokens (chips de valeurs sélectionnées) — chevauchement ===== */\n/* Label container — prend tout l'espace disponible */\n.p-multiselect .p-multiselect-label-container {\n flex: 1 !important;\n min-width: 0 !important;\n overflow: hidden !important;\n}\n\n/* Tokens en ligne, remplissent tout le container */\n.p-multiselect .p-multiselect-label {\n overflow: hidden !important;\n white-space: nowrap !important;\n width: 100% !important;\n display: flex !important;\n align-items: center;\n gap: 0px !important;\n flex-wrap: nowrap !important;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token {\n position: relative;\n margin-right: 0 !important;\n margin-left: 0 !important;\n flex-shrink: 1;\n min-width: 25%;\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token .p-multiselect-token-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token .p-multiselect-token-icon {\n min-width: 14px;\n min-height: 14px;\n flex-shrink: 0;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:not(:first-child) {\n margin-left: -20px !important;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(1) {\n z-index: 1;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(2) {\n z-index: 2;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(3) {\n z-index: 3;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(4) {\n z-index: 4;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(5) {\n z-index: 5;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(6) {\n z-index: 6;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(7) {\n z-index: 7;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(8) {\n z-index: 8;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(9) {\n z-index: 9;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(10) {\n z-index: 10;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:hover {\n z-index: 100 !important;\n transform: translateY(-2px);\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n}\n\n.p-multiselect-token {\n animation: fadeIn 180ms cubic-bezier(0.4, 0, 0.2, 1) both;\n display: inline-flex;\n align-items: center;\n gap: 2px;\n padding: 4px 4px 4px 8px;\n border-radius: 14px;\n font-size: 12.25px;\n font-family: \"Roboto\", sans-serif;\n font-weight: normal;\n font-style: normal;\n white-space: nowrap;\n border: 1px solid var(--badge-color, #e0e3e8);\n background-color: var(--badge-color, #f4f5f6);\n color: inherit;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-multiselect-token .p-multiselect-token-label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.p-multiselect-token .p-multiselect-token-icon {\n cursor: pointer;\n min-width: 12px;\n min-height: 12px;\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n border-radius: 100%;\n padding: 0;\n margin-left: 0 !important;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-multiselect-token .p-multiselect-token-icon svg {\n width: 8px;\n height: 8px;\n min-width: 8px;\n min-height: 8px;\n}\n.p-multiselect-token .p-multiselect-token-icon:hover {\n background-color: #ffffff;\n}\n\n/* ===== Badge compteur (> maxSelectedLabels) ===== */\n.ms-counter-badge {\n display: inline-flex;\n align-items: center;\n gap: 5.6px;\n padding: 0;\n font-size: 11.2px;\n font-family: \"Roboto\", sans-serif;\n font-weight: 500;\n white-space: nowrap;\n background: none;\n color: #b0b8c4;\n border: none;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ms-counter-badge:hover {\n color: #1a1e26;\n}\n.ms-counter-badge > span:not([class]) {\n color: #1a1e26;\n}\n\n.ms-counter-dots {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.ms-counter-dots .ms-counter-dot {\n animation: fadeIn 180ms cubic-bezier(0.4, 0, 0.2, 1) both;\n width: 20px;\n height: 20px;\n min-width: 20px;\n border-radius: 100%;\n background-color: #e0e3e8;\n border: 1.5px solid #ffffff;\n display: block;\n cursor: pointer;\n position: relative;\n z-index: 1;\n transform: scale(1);\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ms-counter-dots .ms-counter-dot:not(:first-child) {\n margin-left: -5px;\n}\n.ms-counter-dots .ms-counter-dot:hover {\n transform: scale(1.35);\n z-index: 100 !important;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(1) {\n animation-delay: 40ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(2) {\n animation-delay: 80ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(3) {\n animation-delay: 120ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(4) {\n animation-delay: 160ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(5) {\n animation-delay: 200ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(6) {\n animation-delay: 240ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(7) {\n animation-delay: 280ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(8) {\n animation-delay: 320ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(9) {\n animation-delay: 360ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(10) {\n animation-delay: 400ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(11) {\n animation-delay: 440ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(12) {\n animation-delay: 480ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(13) {\n animation-delay: 520ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(14) {\n animation-delay: 560ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(15) {\n animation-delay: 600ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(16) {\n animation-delay: 640ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(17) {\n animation-delay: 680ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(18) {\n animation-delay: 720ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(19) {\n animation-delay: 760ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(20) {\n animation-delay: 800ms;\n}\n\n.ms-counter-label {\n cursor: pointer;\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n}\n\n.ms-counter-end {\n display: flex;\n align-items: center;\n gap: 4px;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.ms-counter-count {\n font-size: 11.2px;\n font-weight: 600;\n color: #1a1e26;\n}\n\n/* Tooltip custom avec dots colorés */\n.ms-counter-tooltip {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 2px 0;\n}\n\n.ms-counter-tooltip-row {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-family: \"Roboto\", sans-serif;\n white-space: nowrap;\n}\n\n.ms-counter-tooltip-dot {\n width: 8px;\n height: 8px;\n min-width: 8px;\n border-radius: 100%;\n background-color: #e0e3e8;\n flex-shrink: 0;\n}\n\n.ms-counter-clear-icon {\n cursor: pointer;\n font-size: 10px;\n min-width: 16px;\n min-height: 16px;\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #b0b8c4;\n border-radius: 100%;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1), background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ms-counter-clear-icon:hover {\n color: #1a1e26;\n background-color: rgba(0, 0, 0, 0.06);\n}\n\n.p-multiselect-token-label {\n font-size: 12.25px !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n}\n\n/* Un seul token → on autorise les ... si ça dépasse */\n.p-multiselect-token:only-child .p-multiselect-token-label {\n text-overflow: ellipsis !important;\n}\n\n/* ===== Badge couleur dans les items ===== */\n.ms-color-badge {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n padding: 4px 10px;\n border-radius: 14px;\n font-size: 12.25px;\n font-family: \"Roboto\", sans-serif;\n white-space: nowrap;\n cursor: default;\n transition: background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n background-color: #f4f5f6;\n color: #1a1e26;\n border: 1px solid #e0e3e8;\n border-color: var(--badge-color, #e0e3e8);\n background-color: color-mix(in srgb, var(--badge-color, #f4f5f6) 50%, transparent);\n}\n.ms-color-badge.is-selected {\n background-color: var(--badge-color, #f4f5f6);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n}\n.ms-color-badge {\n cursor: pointer;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n transition: background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.p-multiselect-item:hover .ms-color-badge {\n background-color: var(--badge-color) !important;\n}\n\n/* ===== Groupes — header + indentation enfants ===== */\n.p-multiselect-item-group {\n font-size: 14px;\n font-weight: 600;\n padding: 8px 12px !important;\n position: sticky;\n top: 0;\n z-index: 5;\n background-color: #ffffff !important;\n border-bottom: 1px solid #e0e3e8;\n}\n\n/* Items enfants décalés quand il y a des groupes */\n.p-multiselect-item-group ~ .p-multiselect-item {\n padding-left: 28px !important;\n}\n\n/* ===== Override PrimeReact default item colors ===== */\n.p-multiselect-items .p-multiselect-item:not(.p-highlight):hover {\n background: #f4f5f6 !important;\n color: #1a1e26 !important;\n}\n.p-multiselect-items .p-multiselect-item.p-highlight {\n background: rgba(63, 63, 63, 0.08) !important;\n color: #1a1e26 !important;\n}\n.p-multiselect-items .p-multiselect-item.p-highlight.p-focus {\n background: rgba(63, 63, 63, 0.12) !important;\n color: #1a1e26 !important;\n}\n.p-multiselect-items .p-multiselect-item.p-focus {\n background: #f4f5f6 !important;\n color: #1a1e26 !important;\n}\n\n/* ===== Override PrimeReact filter input focus ===== */\n.p-multiselect-filter.p-inputtext:hover {\n border-color: #c8cdd6 !important;\n}\n.p-multiselect-filter.p-inputtext:focus, .p-multiselect-filter.p-inputtext.p-focus {\n border-color: #3f3f3f !important;\n box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1) !important;\n outline: none;\n}";
|
|
41717
|
+
var css_248z$4 = "@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.multiselect-container {\n position: relative;\n display: inline-block;\n}\n\n/* Application du mixin field sur le wrapper du MultiSelect */\n.multiselect-container .p-multiselect {\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}\n.multiselect-container .p-multiselect:hover:not(:focus):not(:focus-within):not([disabled]):not(.is-disabled) {\n border-color: #c8cdd6;\n}\n.multiselect-container .p-multiselect:focus, .multiselect-container .p-multiselect:focus-within, .multiselect-container .p-multiselect.is-open {\n border-color: #3f3f3f;\n box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);\n}\n.multiselect-container .p-multiselect[disabled], .multiselect-container .p-multiselect.is-disabled {\n opacity: 0.45;\n cursor: not-allowed;\n pointer-events: none;\n}\n.multiselect-container .p-multiselect[readonly], .multiselect-container .p-multiselect.is-readonly {\n background: #f4f5f6;\n cursor: default;\n box-shadow: none;\n}\n.multiselect-container .p-multiselect[readonly]:hover, .multiselect-container .p-multiselect.is-readonly:hover {\n border-color: #e0e3e8;\n}\n.multiselect-container .p-multiselect.is-error {\n border-color: #dc2626;\n box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);\n}\n.multiselect-container .p-multiselect.is-success {\n border-color: #15803d;\n box-shadow: 0 0 0 3px rgba(21, 128, 61, 0.12);\n}\n.multiselect-container .p-multiselect {\n padding: 0;\n display: flex;\n align-items: center;\n height: 40px;\n overflow: hidden;\n}\n.multiselect-container .p-multiselect .p-multiselect-trigger {\n border-left: 1px solid #cccccc;\n}\n\n.selected-options-tooltip {\n position: absolute;\n background-color: #ffffff;\n border: 1px solid #e0e3e8;\n border-radius: 4px;\n padding: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n width: 400px;\n top: 100%;\n left: 0;\n}\n\n.selected-options-tooltip div {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.multiselect-tooltip-item {\n width: 100%;\n cursor: pointer;\n}\n\n/* ===== ItemWithTooltip : picto info à l'extrême droite de l'item ===== */\n/* PrimeReact enveloppe le template dans un <span> sans classe ; on force ce span\n à s'étirer sur toute la largeur restante pour que le picto touche le bord droit. */\n.p-multiselect-panel .p-multiselect-item > span {\n flex: 1 1 auto;\n min-width: 0;\n display: block;\n width: 100%;\n}\n\n.multiselect-item-info-icon {\n font-size: 14px;\n color: #6b7280;\n}\n\n/* ===== Checkbox hiding (replaces inline <style> tags) ===== */\n.ms-no-checkbox .p-multiselect-items .p-multiselect-item .p-checkbox {\n display: none !important;\n}\n\n.ms-no-checkbox .p-multiselect-items .p-multiselect-item {\n padding-left: 14px !important;\n align-items: center;\n}\n\n/* ===== Custom panel header ===== */\n.ms-panel-header {\n padding: 0;\n}\n\n.ms-search-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-bottom: 1px solid #e0e3e8;\n}\n.ms-search-row [class*=-filter-container] {\n flex: 1;\n min-width: 0;\n position: relative;\n}\n.ms-search-row [class*=-filter-container] .p-inputtext {\n width: 100%;\n height: 32px;\n padding: 0 24.5px 0 12px;\n font-size: 14px;\n box-sizing: border-box;\n}\n.ms-search-row [class*=-filter-container] [class*=-filter-icon] {\n right: 10.5px;\n color: #b0b8c4;\n}\n\n.ms-sort-btn {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid #e0e3e8;\n border-radius: 7px;\n background: #ffffff;\n cursor: pointer;\n color: #b0b8c4;\n font-size: 14px;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ms-sort-btn:hover {\n background: #f4f5f6;\n color: #1a1e26;\n}\n\n.ms-selectall-row {\n display: flex;\n align-items: center;\n padding: 10px 12px;\n border-bottom: 1px solid #e0e3e8;\n}\n.ms-selectall-row > div:first-child {\n width: 16px !important;\n height: 16px !important;\n margin-right: 8px;\n display: flex;\n align-items: center;\n}\n.ms-selectall-row > div:first-child .ms-group-checkbox {\n width: 16px;\n height: 16px;\n min-width: 16px;\n min-height: 16px;\n}\n\n.ms-selectall-row .p-checkbox {\n margin-right: 0;\n}\n\n.ms-selectall-label {\n font-size: 14px;\n color: #1a1e26;\n}\n\n.ms-counter {\n font-size: 13px;\n color: #b0b8c4;\n margin-left: auto;\n white-space: nowrap;\n}\n\n/* ===== Custom panel footer ===== */\n.ms-panel-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 8px 12px;\n border-top: 1px solid #e0e3e8;\n}\n\n.ms-cancel-btn {\n background: none;\n border: none;\n cursor: pointer;\n color: #b0b8c4;\n font-size: 14px;\n padding: 6px 12px;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.ms-cancel-btn:hover {\n color: #1a1e26;\n}\n\n.ms-apply-btn {\n background: #3f3f3f;\n color: #ffffff;\n border: none;\n border-radius: 4px;\n padding: 6px 16px;\n cursor: pointer;\n font-size: 14px;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.ms-apply-btn:hover {\n background: #1a1e26;\n}\n\n/* ===== Group header ===== */\n.ms-group-header {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 4px 0;\n user-select: none;\n}\n\n.ms-group-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.ms-group-checkbox.checked, .ms-group-checkbox.p-highlight {\n background-color: #3f3f3f;\n border-color: #3f3f3f;\n}\n.ms-group-checkbox.partial {\n background: linear-gradient(to top right, #3f3f3f 50%, transparent 50%);\n border-color: #3f3f3f;\n}\n.ms-group-checkbox {\n margin-right: 8px;\n}\n\n.ms-group-label {\n font-weight: bold;\n font-size: 14px;\n flex: 1;\n min-width: 0;\n}\n\n.ms-group-collapse-btn {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid #e0e3e8;\n border-radius: 7px;\n background: #ffffff;\n cursor: pointer;\n color: #b0b8c4;\n font-size: 14px;\n transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ms-group-collapse-btn:hover {\n background: #f4f5f6;\n color: #1a1e26;\n}\n.ms-group-collapse-btn {\n width: 20px;\n height: 20px;\n border-color: #b0b8c4;\n font-size: 10px;\n font-weight: bold;\n margin-left: 8px;\n}\n\n/* ===== Checkbox PrimeReact — ISO avec ms-group-checkbox ===== */\n.p-checkbox-input {\n display: none;\n}\n\n/* Checkbox PrimeReact — items + select all */\n.p-checkbox {\n display: flex;\n align-items: center;\n margin-right: 8px;\n}\n\n.p-multiselect-item {\n display: flex;\n align-items: center;\n padding: 6px 12px !important;\n font-family: \"Roboto\", sans-serif;\n font-weight: 400 !important;\n}\n.p-multiselect-item > span:not([class]) {\n flex: 1;\n min-width: 0;\n}\n\n.ms-selectall-row {\n display: flex;\n align-items: center;\n}\n\n.p-checkbox .p-checkbox-box {\n width: 16px !important;\n height: 16px !important;\n min-width: 16px;\n min-height: 16px;\n border: 1.5px solid #e0e3e8;\n border-radius: 3px;\n background: #ffffff;\n transition: all 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-checkbox .p-checkbox-box svg {\n color: #ffffff;\n width: 10px;\n height: 10px;\n}\n\n.p-checkbox.p-highlight .p-checkbox-box {\n background-color: #3f3f3f !important;\n border-color: #3f3f3f !important;\n}\n.p-checkbox.p-highlight .p-checkbox-box svg {\n color: #ffffff;\n}\n\n/* ===== Tokens (chips de valeurs sélectionnées) — chevauchement ===== */\n/* Label container — prend tout l'espace disponible */\n.p-multiselect .p-multiselect-label-container {\n flex: 1 !important;\n min-width: 0 !important;\n overflow: hidden !important;\n}\n\n/* Tokens en ligne, remplissent tout le container */\n.p-multiselect .p-multiselect-label {\n overflow: hidden !important;\n white-space: nowrap !important;\n width: 100% !important;\n display: flex !important;\n align-items: center;\n gap: 0px !important;\n flex-wrap: nowrap !important;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token {\n position: relative;\n margin-right: 0 !important;\n margin-left: 0 !important;\n flex-shrink: 1;\n min-width: 25%;\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token .p-multiselect-token-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token .p-multiselect-token-icon {\n min-width: 14px;\n min-height: 14px;\n flex-shrink: 0;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:not(:first-child) {\n margin-left: -20px !important;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(1) {\n z-index: 1;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(2) {\n z-index: 2;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(3) {\n z-index: 3;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(4) {\n z-index: 4;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(5) {\n z-index: 5;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(6) {\n z-index: 6;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(7) {\n z-index: 7;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(8) {\n z-index: 8;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(9) {\n z-index: 9;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:nth-child(10) {\n z-index: 10;\n}\n.p-multiselect .p-multiselect-label .p-multiselect-token:hover {\n z-index: 100 !important;\n transform: translateY(-2px);\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n}\n\n.p-multiselect-token {\n animation: fadeIn 180ms cubic-bezier(0.4, 0, 0.2, 1) both;\n display: inline-flex;\n align-items: center;\n gap: 2px;\n padding: 4px 4px 4px 8px;\n border-radius: 14px;\n font-size: 12.25px;\n font-family: \"Roboto\", sans-serif;\n font-weight: normal;\n font-style: normal;\n white-space: nowrap;\n border: 1px solid var(--badge-color, #e0e3e8);\n background-color: var(--badge-color, #f4f5f6);\n color: inherit;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-multiselect-token .p-multiselect-token-label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.p-multiselect-token .p-multiselect-token-icon {\n cursor: pointer;\n min-width: 12px;\n min-height: 12px;\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n border-radius: 100%;\n padding: 0;\n margin-left: 0 !important;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-multiselect-token .p-multiselect-token-icon svg {\n width: 8px;\n height: 8px;\n min-width: 8px;\n min-height: 8px;\n}\n.p-multiselect-token .p-multiselect-token-icon:hover {\n background-color: #ffffff;\n}\n\n/* ===== Badge compteur (> maxSelectedLabels) ===== */\n.ms-counter-badge {\n display: inline-flex;\n align-items: center;\n gap: 5.6px;\n padding: 0;\n font-size: 11.2px;\n font-family: \"Roboto\", sans-serif;\n font-weight: 500;\n white-space: nowrap;\n background: none;\n color: #b0b8c4;\n border: none;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ms-counter-badge:hover {\n color: #1a1e26;\n}\n.ms-counter-badge > span:not([class]) {\n color: #1a1e26;\n}\n\n.ms-counter-dots {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.ms-counter-dots .ms-counter-dot {\n animation: fadeIn 180ms cubic-bezier(0.4, 0, 0.2, 1) both;\n width: 20px;\n height: 20px;\n min-width: 20px;\n border-radius: 100%;\n background-color: #e0e3e8;\n border: 1.5px solid #ffffff;\n display: block;\n cursor: pointer;\n position: relative;\n z-index: 1;\n transform: scale(1);\n transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ms-counter-dots .ms-counter-dot:not(:first-child) {\n margin-left: -5px;\n}\n.ms-counter-dots .ms-counter-dot:hover {\n transform: scale(1.35);\n z-index: 100 !important;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(1) {\n animation-delay: 40ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(2) {\n animation-delay: 80ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(3) {\n animation-delay: 120ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(4) {\n animation-delay: 160ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(5) {\n animation-delay: 200ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(6) {\n animation-delay: 240ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(7) {\n animation-delay: 280ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(8) {\n animation-delay: 320ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(9) {\n animation-delay: 360ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(10) {\n animation-delay: 400ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(11) {\n animation-delay: 440ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(12) {\n animation-delay: 480ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(13) {\n animation-delay: 520ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(14) {\n animation-delay: 560ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(15) {\n animation-delay: 600ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(16) {\n animation-delay: 640ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(17) {\n animation-delay: 680ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(18) {\n animation-delay: 720ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(19) {\n animation-delay: 760ms;\n}\n.ms-counter-dots .ms-counter-dot:nth-child(20) {\n animation-delay: 800ms;\n}\n\n.ms-counter-label {\n cursor: pointer;\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n}\n\n.ms-counter-end {\n display: flex;\n align-items: center;\n gap: 4px;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.ms-counter-count {\n font-size: 11.2px;\n font-weight: 600;\n color: #1a1e26;\n}\n\n/* Tooltip custom avec dots colorés */\n.ms-counter-tooltip {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 2px 0;\n}\n\n.ms-counter-tooltip-row {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-family: \"Roboto\", sans-serif;\n white-space: nowrap;\n}\n\n.ms-counter-tooltip-dot {\n width: 8px;\n height: 8px;\n min-width: 8px;\n border-radius: 100%;\n background-color: #e0e3e8;\n flex-shrink: 0;\n}\n\n.ms-counter-clear-icon {\n cursor: pointer;\n font-size: 10px;\n min-width: 16px;\n min-height: 16px;\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #b0b8c4;\n border-radius: 100%;\n transition: color 180ms cubic-bezier(0.4, 0, 0.2, 1), background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ms-counter-clear-icon:hover {\n color: #1a1e26;\n background-color: rgba(0, 0, 0, 0.06);\n}\n\n.p-multiselect-token-label {\n font-size: 12.25px !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n}\n\n/* Un seul token → on autorise les ... si ça dépasse */\n.p-multiselect-token:only-child .p-multiselect-token-label {\n text-overflow: ellipsis !important;\n}\n\n/* ===== Badge couleur dans les items ===== */\n.ms-color-badge {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n padding: 4px 10px;\n border-radius: 14px;\n font-size: 12.25px;\n font-family: \"Roboto\", sans-serif;\n white-space: nowrap;\n cursor: default;\n transition: background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n background-color: #f4f5f6;\n color: #1a1e26;\n border: 1px solid #e0e3e8;\n border-color: var(--badge-color, #e0e3e8);\n background-color: color-mix(in srgb, var(--badge-color, #f4f5f6) 50%, transparent);\n}\n.ms-color-badge.is-selected {\n background-color: var(--badge-color, #f4f5f6);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n}\n.ms-color-badge {\n cursor: pointer;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n transition: background-color 180ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.p-multiselect-item:hover .ms-color-badge {\n background-color: var(--badge-color) !important;\n}\n\n/* ===== Groupes — header + indentation enfants ===== */\n.p-multiselect-item-group {\n font-size: 14px;\n font-weight: 600;\n padding: 8px 12px !important;\n position: sticky;\n top: 0;\n z-index: 5;\n background-color: #ffffff !important;\n border-bottom: 1px solid #e0e3e8;\n}\n\n/* Items enfants décalés quand il y a des groupes */\n.p-multiselect-item-group ~ .p-multiselect-item {\n padding-left: 28px !important;\n}\n\n/* ===== Override PrimeReact default item colors ===== */\n.p-multiselect-items .p-multiselect-item:not(.p-highlight):hover {\n background: #f4f5f6 !important;\n color: #1a1e26 !important;\n}\n.p-multiselect-items .p-multiselect-item.p-highlight {\n background: rgba(63, 63, 63, 0.08) !important;\n color: #1a1e26 !important;\n}\n.p-multiselect-items .p-multiselect-item.p-highlight.p-focus {\n background: rgba(63, 63, 63, 0.12) !important;\n color: #1a1e26 !important;\n}\n.p-multiselect-items .p-multiselect-item.p-focus {\n background: #f4f5f6 !important;\n color: #1a1e26 !important;\n}\n\n/* ===== Override PrimeReact filter input focus ===== */\n.p-multiselect-filter.p-inputtext:hover {\n border-color: #c8cdd6 !important;\n}\n.p-multiselect-filter.p-inputtext:focus, .p-multiselect-filter.p-inputtext.p-focus {\n border-color: #3f3f3f !important;\n box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1) !important;\n outline: none;\n}";
|
|
41019
41718
|
styleInject(css_248z$4);
|
|
41020
41719
|
|
|
41021
41720
|
var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
@@ -41115,6 +41814,14 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
41115
41814
|
valueToapply = _ref.valueToapply,
|
|
41116
41815
|
_ref$closeIcon = _ref.closeIcon,
|
|
41117
41816
|
closeIcon = _ref$closeIcon === void 0 ? null : _ref$closeIcon,
|
|
41817
|
+
_ref$cancelLabel = _ref.cancelLabel,
|
|
41818
|
+
cancelLabel = _ref$cancelLabel === void 0 ? 'Annuler' : _ref$cancelLabel,
|
|
41819
|
+
_ref$applyLabel = _ref.applyLabel,
|
|
41820
|
+
applyLabel = _ref$applyLabel === void 0 ? 'Appliquer' : _ref$applyLabel,
|
|
41821
|
+
_ref$emptyMessage = _ref.emptyMessage,
|
|
41822
|
+
emptyMessage = _ref$emptyMessage === void 0 ? 'Aucune option disponible' : _ref$emptyMessage,
|
|
41823
|
+
_ref$loadingMessage = _ref.loadingMessage,
|
|
41824
|
+
loadingMessage = _ref$loadingMessage === void 0 ? 'Chargement…' : _ref$loadingMessage,
|
|
41118
41825
|
onHide = _ref.onHide;
|
|
41119
41826
|
_ref.withSearch;
|
|
41120
41827
|
_ref.renderValue;
|
|
@@ -41324,9 +42031,16 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
41324
42031
|
_context2.n = 5;
|
|
41325
42032
|
break;
|
|
41326
42033
|
case 4:
|
|
41327
|
-
|
|
41328
|
-
|
|
41329
|
-
|
|
42034
|
+
if (Array.isArray(options)) {
|
|
42035
|
+
result = {
|
|
42036
|
+
options: options,
|
|
42037
|
+
hasMore: false
|
|
42038
|
+
};
|
|
42039
|
+
} else {
|
|
42040
|
+
result = {
|
|
42041
|
+
options: []
|
|
42042
|
+
};
|
|
42043
|
+
}
|
|
41330
42044
|
case 5:
|
|
41331
42045
|
hasMoreRef.current = ((_result = result) === null || _result === void 0 ? void 0 : _result.hasMore) !== false;
|
|
41332
42046
|
initialOpts = _flattenOptions(((_result2 = result) === null || _result2 === void 0 ? void 0 : _result2.options) || []);
|
|
@@ -41394,7 +42108,7 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
41394
42108
|
if (enableItemTooltip) setTooltipKey(function (k) {
|
|
41395
42109
|
return k + 1;
|
|
41396
42110
|
});
|
|
41397
|
-
}, [loadedOptions, enableItemTooltip]);
|
|
42111
|
+
}, [loadedOptions, enableItemTooltip, selectedOptions]);
|
|
41398
42112
|
var onLazyLoad = function onLazyLoad(event) {
|
|
41399
42113
|
if (isOptionsArray) return;
|
|
41400
42114
|
setLoading(true);
|
|
@@ -41479,6 +42193,30 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
41479
42193
|
var getKey = function getKey(v) {
|
|
41480
42194
|
return v && _typeof$g(v) === 'object' ? v[optionValue] : v;
|
|
41481
42195
|
};
|
|
42196
|
+
|
|
42197
|
+
// PrimeReact 10 ignore la prop `escape` : sa Tooltip écrit toujours via
|
|
42198
|
+
// createTextNode. Un MutationObserver rescande les `.p-tooltip-text` pour
|
|
42199
|
+
// convertir le texte contenant du HTML en innerHTML rendu.
|
|
42200
|
+
useEffect(function () {
|
|
42201
|
+
if (!enableItemTooltip) return undefined;
|
|
42202
|
+
var rewrite = function rewrite() {
|
|
42203
|
+
document.querySelectorAll('.p-tooltip .p-tooltip-text').forEach(function (el) {
|
|
42204
|
+
var raw = el.textContent;
|
|
42205
|
+
if (raw && /<[a-z][\s\S]*>/i.test(raw) && el.innerHTML !== raw) {
|
|
42206
|
+
el.innerHTML = raw;
|
|
42207
|
+
}
|
|
42208
|
+
});
|
|
42209
|
+
};
|
|
42210
|
+
var observer = new MutationObserver(rewrite);
|
|
42211
|
+
observer.observe(document.body, {
|
|
42212
|
+
childList: true,
|
|
42213
|
+
subtree: true,
|
|
42214
|
+
characterData: true
|
|
42215
|
+
});
|
|
42216
|
+
return function () {
|
|
42217
|
+
return observer.disconnect();
|
|
42218
|
+
};
|
|
42219
|
+
}, [enableItemTooltip]);
|
|
41482
42220
|
var inverseColor = function inverseColor(hexColor) {
|
|
41483
42221
|
if (!hexColor || !hexColor.startsWith('#')) return '#000000';
|
|
41484
42222
|
var hex = hexColor;
|
|
@@ -41671,6 +42409,11 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
41671
42409
|
} : {
|
|
41672
42410
|
className: 'multiselect-tooltip-item'
|
|
41673
42411
|
};
|
|
42412
|
+
var tooltipContent = option.tooltip || option.description;
|
|
42413
|
+
var hasTooltip = Boolean(enableItemTooltip && tooltipContent);
|
|
42414
|
+
var infoIcon = hasTooltip ? /*#__PURE__*/React__default.createElement("i", {
|
|
42415
|
+
className: "pi pi-info-circle multiselect-item-info-icon"
|
|
42416
|
+
}) : null;
|
|
41674
42417
|
var secondaryLabel = enableSecondaryLabel ? option === null || option === void 0 ? void 0 : option[secondaryLabelKey] : null;
|
|
41675
42418
|
var isLink = enableItemLink && option.link;
|
|
41676
42419
|
var handleLinkClick = function handleLinkClick(e) {
|
|
@@ -41716,6 +42459,41 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
41716
42459
|
marginLeft: '10px'
|
|
41717
42460
|
}
|
|
41718
42461
|
}, secondaryLabel)));
|
|
42462
|
+
if (hasTooltip) {
|
|
42463
|
+
// Deux colonnes : libellé à l'extrême gauche, picto "i" à l'extrême droite.
|
|
42464
|
+
// Le tooltip est porté par l'item entier et pointe sur le picto.
|
|
42465
|
+
return /*#__PURE__*/React__default.createElement("div", _extends$J({}, tooltipProps, {
|
|
42466
|
+
style: {
|
|
42467
|
+
display: 'flex',
|
|
42468
|
+
alignItems: 'center',
|
|
42469
|
+
gap: '0.5rem',
|
|
42470
|
+
fontSize: '14px',
|
|
42471
|
+
maxWidth: 'none',
|
|
42472
|
+
overflow: 'hidden',
|
|
42473
|
+
textOverflow: 'ellipsis',
|
|
42474
|
+
whiteSpace: 'nowrap',
|
|
42475
|
+
width: '100%',
|
|
42476
|
+
justifyContent: 'space-between'
|
|
42477
|
+
}
|
|
42478
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
42479
|
+
style: {
|
|
42480
|
+
display: 'flex',
|
|
42481
|
+
alignItems: 'center',
|
|
42482
|
+
gap: '0.5rem',
|
|
42483
|
+
minWidth: 0,
|
|
42484
|
+
overflow: 'hidden',
|
|
42485
|
+
textOverflow: 'ellipsis',
|
|
42486
|
+
whiteSpace: 'nowrap'
|
|
42487
|
+
}
|
|
42488
|
+
}, option[optionLabel]), /*#__PURE__*/React__default.createElement("div", {
|
|
42489
|
+
style: {
|
|
42490
|
+
flexShrink: 0,
|
|
42491
|
+
display: 'flex',
|
|
42492
|
+
alignItems: 'center',
|
|
42493
|
+
marginLeft: '8px'
|
|
42494
|
+
}
|
|
42495
|
+
}, infoIcon));
|
|
42496
|
+
}
|
|
41719
42497
|
if (isSelectMeta) {
|
|
41720
42498
|
var _ref7 = selectMetaConfig || {},
|
|
41721
42499
|
labelStyle = _ref7.labelStyle,
|
|
@@ -41779,6 +42557,7 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
41779
42557
|
}, /*#__PURE__*/React__default.createElement("div", tooltipProps, option[optionLabel]), secondaryLabelNode);
|
|
41780
42558
|
};
|
|
41781
42559
|
var selectedItemTemplate = function selectedItemTemplate(paramValue) {
|
|
42560
|
+
var _selectedOption3, _selectedOption4, _selectedOption5;
|
|
41782
42561
|
if (paramValue == null) return null;
|
|
41783
42562
|
if (truncateAt) {
|
|
41784
42563
|
var index = (selectedOptions || []).indexOf(paramValue);
|
|
@@ -41792,11 +42571,16 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
41792
42571
|
return o[optionValue] === paramValue;
|
|
41793
42572
|
});
|
|
41794
42573
|
if (!opt) return null;
|
|
41795
|
-
|
|
42574
|
+
var _optTooltip = enableItemTooltip ? opt.tooltip || opt.description || opt[optionLabel] : null;
|
|
42575
|
+
return /*#__PURE__*/React__default.createElement("span", _extends$J({
|
|
41796
42576
|
style: _objectSpread2({
|
|
41797
42577
|
marginRight: '6px'
|
|
41798
|
-
}, valueStyle)
|
|
41799
|
-
|
|
42578
|
+
}, valueStyle),
|
|
42579
|
+
className: _optTooltip ? 'multiselect-selected-tooltip-trigger' : undefined
|
|
42580
|
+
}, _optTooltip ? {
|
|
42581
|
+
'data-pr-tooltip': _optTooltip,
|
|
42582
|
+
'data-pr-position': 'top'
|
|
42583
|
+
} : {}), opt[optionLabel]);
|
|
41800
42584
|
}
|
|
41801
42585
|
if (index === truncateAt) return /*#__PURE__*/React__default.createElement("span", {
|
|
41802
42586
|
style: {
|
|
@@ -41867,11 +42651,16 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
41867
42651
|
color: objMatch.color !== undefined ? objMatch.color : selectedOption.color
|
|
41868
42652
|
});
|
|
41869
42653
|
var isLast = (selectedOptions || [])[(selectedOptions || []).length - 1] === paramValue;
|
|
41870
|
-
|
|
42654
|
+
var optTooltip = enableItemTooltip ? ((_selectedOption3 = selectedOption) === null || _selectedOption3 === void 0 ? void 0 : _selectedOption3.tooltip) || ((_selectedOption4 = selectedOption) === null || _selectedOption4 === void 0 ? void 0 : _selectedOption4.description) || ((_selectedOption5 = selectedOption) === null || _selectedOption5 === void 0 ? void 0 : _selectedOption5[optionLabel]) : null;
|
|
42655
|
+
return /*#__PURE__*/React__default.createElement("span", _extends$J({
|
|
41871
42656
|
style: _objectSpread2({
|
|
41872
42657
|
marginRight: '4px'
|
|
41873
|
-
}, valueStyle)
|
|
41874
|
-
|
|
42658
|
+
}, valueStyle),
|
|
42659
|
+
className: optTooltip ? 'multiselect-selected-tooltip-trigger' : undefined
|
|
42660
|
+
}, optTooltip ? {
|
|
42661
|
+
'data-pr-tooltip': optTooltip,
|
|
42662
|
+
'data-pr-position': 'top'
|
|
42663
|
+
} : {}), selectedOption[optionLabel], !isLast && /*#__PURE__*/React__default.createElement("span", {
|
|
41875
42664
|
style: {
|
|
41876
42665
|
opacity: 0.8
|
|
41877
42666
|
}
|
|
@@ -41972,7 +42761,7 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
41972
42761
|
var _multiSelectRef$curre4;
|
|
41973
42762
|
return (_multiSelectRef$curre4 = multiSelectRef.current) === null || _multiSelectRef$curre4 === void 0 ? void 0 : _multiSelectRef$curre4.hide();
|
|
41974
42763
|
}
|
|
41975
|
-
},
|
|
42764
|
+
}, cancelLabel), /*#__PURE__*/React__default.createElement("button", {
|
|
41976
42765
|
type: "button",
|
|
41977
42766
|
className: "ms-apply-btn",
|
|
41978
42767
|
onClick: function onClick() {
|
|
@@ -41980,7 +42769,7 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
41980
42769
|
handleApply();
|
|
41981
42770
|
(_multiSelectRef$curre5 = multiSelectRef.current) === null || _multiSelectRef$curre5 === void 0 || _multiSelectRef$curre5.hide();
|
|
41982
42771
|
}
|
|
41983
|
-
},
|
|
42772
|
+
}, applyLabel));
|
|
41984
42773
|
}
|
|
41985
42774
|
if (hasInfoLine) {
|
|
41986
42775
|
var length = selectedOptions ? selectedOptions.length : 0;
|
|
@@ -42100,9 +42889,11 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
42100
42889
|
}
|
|
42101
42890
|
}, enableItemTooltip && /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
42102
42891
|
key: tooltipKey,
|
|
42103
|
-
target: ".multiselect-tooltip-item",
|
|
42892
|
+
target: ".multiselect-tooltip-item, .multiselect-tooltip-trigger, .multiselect-selected-tooltip-trigger",
|
|
42104
42893
|
appendTo: document.body,
|
|
42105
42894
|
position: "top",
|
|
42895
|
+
autoHide: false,
|
|
42896
|
+
hideDelay: 150,
|
|
42106
42897
|
style: {
|
|
42107
42898
|
zIndex: '9999999'
|
|
42108
42899
|
}
|
|
@@ -42248,7 +43039,7 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
|
|
|
42248
43039
|
style: style,
|
|
42249
43040
|
loading: false,
|
|
42250
43041
|
maxSelectedLabels: maxSelectedLabels,
|
|
42251
|
-
emptyMessage: loading ?
|
|
43042
|
+
emptyMessage: loading ? loadingMessage : emptyMessage,
|
|
42252
43043
|
onChange: handleChange,
|
|
42253
43044
|
itemTemplate: optionTemplate,
|
|
42254
43045
|
selectedItemTemplate: displayBadge ? undefined : selectedItemTemplate,
|
|
@@ -42425,7 +43216,15 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
42425
43216
|
maxVisibleCounter = props.maxVisibleCounter;
|
|
42426
43217
|
props.maxVisibleChips;
|
|
42427
43218
|
var _props$closeIcon = props.closeIcon,
|
|
42428
|
-
closeIcon = _props$closeIcon === void 0 ? null : _props$closeIcon
|
|
43219
|
+
closeIcon = _props$closeIcon === void 0 ? null : _props$closeIcon,
|
|
43220
|
+
_props$cancelLabel = props.cancelLabel,
|
|
43221
|
+
cancelLabel = _props$cancelLabel === void 0 ? 'Annuler' : _props$cancelLabel,
|
|
43222
|
+
_props$applyLabel = props.applyLabel,
|
|
43223
|
+
applyLabel = _props$applyLabel === void 0 ? 'Appliquer' : _props$applyLabel,
|
|
43224
|
+
_props$emptyMessage = props.emptyMessage,
|
|
43225
|
+
emptyMessage = _props$emptyMessage === void 0 ? 'Aucune option disponible' : _props$emptyMessage,
|
|
43226
|
+
_props$loadingMessage = props.loadingMessage,
|
|
43227
|
+
loadingMessage = _props$loadingMessage === void 0 ? 'Chargement…' : _props$loadingMessage;
|
|
42429
43228
|
props.withSearch;
|
|
42430
43229
|
var hasInfoLine = props.hasInfoLine,
|
|
42431
43230
|
_props$withIcon = props.withIcon,
|
|
@@ -42691,6 +43490,11 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
42691
43490
|
} : {
|
|
42692
43491
|
className: 'multiselect-tooltip-item'
|
|
42693
43492
|
};
|
|
43493
|
+
var tooltipContent = option.tooltip || option.description;
|
|
43494
|
+
var hasTooltip = Boolean(enableItemTooltip && tooltipContent);
|
|
43495
|
+
var infoIcon = hasTooltip ? /*#__PURE__*/React__default.createElement("i", {
|
|
43496
|
+
className: "pi pi-info-circle multiselect-item-info-icon"
|
|
43497
|
+
}) : null;
|
|
42694
43498
|
var secondaryLabel = enableSecondaryLabel ? option === null || option === void 0 ? void 0 : option[secondaryLabelKey] : null;
|
|
42695
43499
|
var isLink = enableItemLink && option.link;
|
|
42696
43500
|
var handleLinkClick = function handleLinkClick(e) {
|
|
@@ -42761,6 +43565,41 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
42761
43565
|
}
|
|
42762
43566
|
}, secondaryLabel)))));
|
|
42763
43567
|
}
|
|
43568
|
+
if (hasTooltip) {
|
|
43569
|
+
// Deux colonnes : libellé à l'extrême gauche, picto "i" à l'extrême droite.
|
|
43570
|
+
// Le tooltip est porté par l'item entier et pointe sur le picto.
|
|
43571
|
+
return /*#__PURE__*/React__default.createElement("div", _extends$J({}, tooltipProps, {
|
|
43572
|
+
style: {
|
|
43573
|
+
display: 'flex',
|
|
43574
|
+
alignItems: 'center',
|
|
43575
|
+
gap: '0.5rem',
|
|
43576
|
+
fontSize: '14px',
|
|
43577
|
+
maxWidth: 'none',
|
|
43578
|
+
overflow: 'hidden',
|
|
43579
|
+
textOverflow: 'ellipsis',
|
|
43580
|
+
whiteSpace: 'nowrap',
|
|
43581
|
+
width: '100%',
|
|
43582
|
+
justifyContent: 'space-between'
|
|
43583
|
+
}
|
|
43584
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
43585
|
+
style: {
|
|
43586
|
+
display: 'flex',
|
|
43587
|
+
alignItems: 'center',
|
|
43588
|
+
gap: '0.5rem',
|
|
43589
|
+
minWidth: 0,
|
|
43590
|
+
overflow: 'hidden',
|
|
43591
|
+
textOverflow: 'ellipsis',
|
|
43592
|
+
whiteSpace: 'nowrap'
|
|
43593
|
+
}
|
|
43594
|
+
}, option[optionLabel]), /*#__PURE__*/React__default.createElement("div", {
|
|
43595
|
+
style: {
|
|
43596
|
+
flexShrink: 0,
|
|
43597
|
+
display: 'flex',
|
|
43598
|
+
alignItems: 'center',
|
|
43599
|
+
marginLeft: '8px'
|
|
43600
|
+
}
|
|
43601
|
+
}, infoIcon));
|
|
43602
|
+
}
|
|
42764
43603
|
if (withColor || withIcon) {
|
|
42765
43604
|
var _ref2 = selectConfig || {},
|
|
42766
43605
|
_labelStyle = _ref2.labelStyle,
|
|
@@ -42818,14 +43657,7 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
42818
43657
|
}
|
|
42819
43658
|
}, secondaryLabel)));
|
|
42820
43659
|
}
|
|
42821
|
-
|
|
42822
|
-
style: _objectSpread2({
|
|
42823
|
-
fontFamily: 'Arial',
|
|
42824
|
-
fontSize: '14px',
|
|
42825
|
-
display: 'flex',
|
|
42826
|
-
flexDirection: 'column'
|
|
42827
|
-
}, optionStyle)
|
|
42828
|
-
}, /*#__PURE__*/React__default.createElement("div", tooltipProps, option[optionLabel]), secondaryLabel && /*#__PURE__*/React__default.createElement("div", {
|
|
43660
|
+
var secondaryContent = secondaryLabel ? /*#__PURE__*/React__default.createElement("div", {
|
|
42829
43661
|
className: "secondary-link-zone",
|
|
42830
43662
|
onClick: isLink ? handleLinkClick : undefined,
|
|
42831
43663
|
onMouseDown: isLink ? function (e) {
|
|
@@ -42860,7 +43692,15 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
42860
43692
|
style: subItem ? {} : {
|
|
42861
43693
|
marginLeft: '10px'
|
|
42862
43694
|
}
|
|
42863
|
-
}, secondaryLabel)))
|
|
43695
|
+
}, secondaryLabel))) : null;
|
|
43696
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
43697
|
+
style: _objectSpread2({
|
|
43698
|
+
fontFamily: 'Arial',
|
|
43699
|
+
fontSize: '14px',
|
|
43700
|
+
display: 'flex',
|
|
43701
|
+
flexDirection: 'column'
|
|
43702
|
+
}, optionStyle)
|
|
43703
|
+
}, /*#__PURE__*/React__default.createElement("div", tooltipProps, option[optionLabel]), secondaryContent);
|
|
42864
43704
|
};
|
|
42865
43705
|
var inverseColor = function inverseColor(hexColor) {
|
|
42866
43706
|
var r = parseInt(hexColor === null || hexColor === void 0 ? void 0 : hexColor.substr(1, 2), 16);
|
|
@@ -42878,6 +43718,31 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
42878
43718
|
window[onChange](ids);
|
|
42879
43719
|
}
|
|
42880
43720
|
};
|
|
43721
|
+
|
|
43722
|
+
// PrimeReact 10 ignore la prop `escape` : sa Tooltip écrit toujours via
|
|
43723
|
+
// createTextNode. Un MutationObserver rescande les `.p-tooltip-text` pour
|
|
43724
|
+
// convertir le texte contenant du HTML en innerHTML rendu — nécessaire car
|
|
43725
|
+
// le tooltip est réutilisé (pas de callback à chaque changement de cible).
|
|
43726
|
+
useEffect(function () {
|
|
43727
|
+
if (!enableItemTooltip) return undefined;
|
|
43728
|
+
var rewrite = function rewrite() {
|
|
43729
|
+
document.querySelectorAll('.p-tooltip .p-tooltip-text').forEach(function (el) {
|
|
43730
|
+
var raw = el.textContent;
|
|
43731
|
+
if (raw && /<[a-z][\s\S]*>/i.test(raw) && el.innerHTML !== raw) {
|
|
43732
|
+
el.innerHTML = raw;
|
|
43733
|
+
}
|
|
43734
|
+
});
|
|
43735
|
+
};
|
|
43736
|
+
var observer = new MutationObserver(rewrite);
|
|
43737
|
+
observer.observe(document.body, {
|
|
43738
|
+
childList: true,
|
|
43739
|
+
subtree: true,
|
|
43740
|
+
characterData: true
|
|
43741
|
+
});
|
|
43742
|
+
return function () {
|
|
43743
|
+
return observer.disconnect();
|
|
43744
|
+
};
|
|
43745
|
+
}, [enableItemTooltip]);
|
|
42881
43746
|
var handleChange = function handleChange(e) {
|
|
42882
43747
|
if (disabled || effectiveReadOnly) return;
|
|
42883
43748
|
var ids = Array.isArray(e.value) ? e.value : [e.value];
|
|
@@ -42920,11 +43785,16 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
42920
43785
|
return o.value === option;
|
|
42921
43786
|
});
|
|
42922
43787
|
if (!_opt) return null;
|
|
42923
|
-
|
|
43788
|
+
var _optTooltip = enableItemTooltip ? _opt.tooltip || _opt.description || _opt[optionLabel] : null;
|
|
43789
|
+
return /*#__PURE__*/React__default.createElement("span", _extends$J({
|
|
42924
43790
|
style: _objectSpread2({
|
|
42925
43791
|
marginRight: '6px'
|
|
42926
|
-
}, valueStyle)
|
|
42927
|
-
|
|
43792
|
+
}, valueStyle),
|
|
43793
|
+
className: _optTooltip ? 'multiselect-selected-tooltip-trigger' : undefined
|
|
43794
|
+
}, _optTooltip ? {
|
|
43795
|
+
'data-pr-tooltip': _optTooltip,
|
|
43796
|
+
'data-pr-position': 'top'
|
|
43797
|
+
} : {}), _opt[optionLabel]);
|
|
42928
43798
|
}
|
|
42929
43799
|
if (index === truncateAt) {
|
|
42930
43800
|
return /*#__PURE__*/React__default.createElement("span", {
|
|
@@ -42976,11 +43846,16 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
42976
43846
|
var _selectedOption = flatOptions.find(function (opt) {
|
|
42977
43847
|
return opt.value === option;
|
|
42978
43848
|
});
|
|
42979
|
-
|
|
43849
|
+
var _optTooltip2 = enableItemTooltip ? (_selectedOption === null || _selectedOption === void 0 ? void 0 : _selectedOption.tooltip) || (_selectedOption === null || _selectedOption === void 0 ? void 0 : _selectedOption.description) || (_selectedOption === null || _selectedOption === void 0 ? void 0 : _selectedOption[optionLabel]) || option : null;
|
|
43850
|
+
return /*#__PURE__*/React__default.createElement("span", _extends$J({
|
|
42980
43851
|
style: {
|
|
42981
43852
|
marginRight: '4px'
|
|
42982
|
-
}
|
|
42983
|
-
|
|
43853
|
+
},
|
|
43854
|
+
className: _optTooltip2 ? 'multiselect-selected-tooltip-trigger' : undefined
|
|
43855
|
+
}, _optTooltip2 ? {
|
|
43856
|
+
'data-pr-tooltip': _optTooltip2,
|
|
43857
|
+
'data-pr-position': 'top'
|
|
43858
|
+
} : {}), _selectedOption ? "".concat(_selectedOption.label) : "".concat(option), !isLast && /*#__PURE__*/React__default.createElement("span", {
|
|
42984
43859
|
style: {
|
|
42985
43860
|
opacity: 0.8
|
|
42986
43861
|
}
|
|
@@ -42992,11 +43867,16 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
42992
43867
|
return o.value === option;
|
|
42993
43868
|
});
|
|
42994
43869
|
if (!opt) return null;
|
|
42995
|
-
|
|
43870
|
+
var optTooltip = enableItemTooltip ? opt.tooltip || opt.description || opt[optionLabel] : null;
|
|
43871
|
+
return /*#__PURE__*/React__default.createElement("span", _extends$J({
|
|
42996
43872
|
style: _objectSpread2({
|
|
42997
43873
|
marginRight: '4px'
|
|
42998
|
-
}, valueStyle)
|
|
42999
|
-
|
|
43874
|
+
}, valueStyle),
|
|
43875
|
+
className: optTooltip ? 'multiselect-selected-tooltip-trigger' : undefined
|
|
43876
|
+
}, optTooltip ? {
|
|
43877
|
+
'data-pr-tooltip': optTooltip,
|
|
43878
|
+
'data-pr-position': 'top'
|
|
43879
|
+
} : {}), opt[optionLabel], !isLast && /*#__PURE__*/React__default.createElement("span", {
|
|
43000
43880
|
style: {
|
|
43001
43881
|
opacity: 0.8
|
|
43002
43882
|
}
|
|
@@ -43058,21 +43938,6 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
43058
43938
|
}
|
|
43059
43939
|
}, isCollapsed ? '+' : "\u2212"));
|
|
43060
43940
|
};
|
|
43061
|
-
var getSelectedOptionsTooltipText = function getSelectedOptionsTooltipText() {
|
|
43062
|
-
if (selectedOptions.length === 0) return "Aucune option sélectionnée";
|
|
43063
|
-
return selectedOptions.map(function (opt) {
|
|
43064
|
-
if (typeof opt === 'string' || typeof opt === 'number') {
|
|
43065
|
-
var selectedOption = flatOptions.find(function (o) {
|
|
43066
|
-
return o.value === opt || o[optionValue] === opt;
|
|
43067
|
-
});
|
|
43068
|
-
return selectedOption ? selectedOption[optionLabel] : String(opt);
|
|
43069
|
-
}
|
|
43070
|
-
if (_typeof$g(opt) === 'object' && opt !== null) {
|
|
43071
|
-
return opt[optionLabel];
|
|
43072
|
-
}
|
|
43073
|
-
return String(opt);
|
|
43074
|
-
}).join('\n');
|
|
43075
|
-
};
|
|
43076
43941
|
var BADGE_SIZES = {
|
|
43077
43942
|
small: {
|
|
43078
43943
|
fontSize: '10px',
|
|
@@ -43101,7 +43966,7 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
43101
43966
|
width: '100%'
|
|
43102
43967
|
};
|
|
43103
43968
|
var effectiveShowClear = Boolean(showClear || typeof onClearAll === 'function');
|
|
43104
|
-
var
|
|
43969
|
+
var displayedEmptyMessage = loading ? loadingMessage : emptyMessage;
|
|
43105
43970
|
var handleMouseEnter = function handleMouseEnter() {
|
|
43106
43971
|
var _multiSelectRef$curre;
|
|
43107
43972
|
if (!openOnHover || disabled || effectiveReadOnly) return;
|
|
@@ -43270,7 +44135,7 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
43270
44135
|
var _multiSelectRef$curre4;
|
|
43271
44136
|
return (_multiSelectRef$curre4 = multiSelectRef.current) === null || _multiSelectRef$curre4 === void 0 ? void 0 : _multiSelectRef$curre4.hide();
|
|
43272
44137
|
}
|
|
43273
|
-
},
|
|
44138
|
+
}, cancelLabel), /*#__PURE__*/React__default.createElement("button", {
|
|
43274
44139
|
type: "button",
|
|
43275
44140
|
className: "ms-apply-btn",
|
|
43276
44141
|
onClick: function onClick() {
|
|
@@ -43278,7 +44143,7 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
43278
44143
|
handleApply();
|
|
43279
44144
|
(_multiSelectRef$curre5 = multiSelectRef.current) === null || _multiSelectRef$curre5 === void 0 || _multiSelectRef$curre5.hide();
|
|
43280
44145
|
}
|
|
43281
|
-
},
|
|
44146
|
+
}, applyLabel));
|
|
43282
44147
|
}
|
|
43283
44148
|
if (hasInfoLine) {
|
|
43284
44149
|
var length = selectedOptions ? selectedOptions.length : 0;
|
|
@@ -43294,7 +44159,7 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
43294
44159
|
return prevKey + 1;
|
|
43295
44160
|
});
|
|
43296
44161
|
}
|
|
43297
|
-
}, [options, enableItemTooltip]);
|
|
44162
|
+
}, [options, enableItemTooltip, selectedOptions]);
|
|
43298
44163
|
|
|
43299
44164
|
// Ajouter cette logique dans le composant
|
|
43300
44165
|
useEffect(function () {
|
|
@@ -43330,9 +44195,11 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
43330
44195
|
}
|
|
43331
44196
|
}, enableItemTooltip && /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
43332
44197
|
key: tooltipKey,
|
|
43333
|
-
target: ".multiselect-tooltip-item",
|
|
44198
|
+
target: ".multiselect-tooltip-item, .multiselect-tooltip-trigger, .multiselect-selected-tooltip-trigger",
|
|
43334
44199
|
appendTo: document.body,
|
|
43335
44200
|
position: "top",
|
|
44201
|
+
autoHide: false,
|
|
44202
|
+
hideDelay: 150,
|
|
43336
44203
|
style: {
|
|
43337
44204
|
zIndex: '9999999'
|
|
43338
44205
|
}
|
|
@@ -43359,10 +44226,6 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
43359
44226
|
zIndex: 9999999
|
|
43360
44227
|
}
|
|
43361
44228
|
}), /*#__PURE__*/React__default.createElement("div", {
|
|
43362
|
-
"data-pr-tooltip": enableItemTooltip ? getSelectedOptionsTooltipText() : null,
|
|
43363
|
-
"data-pr-position": "right",
|
|
43364
|
-
"data-pr-at": "right+5 top",
|
|
43365
|
-
"data-pr-my": "left center-2",
|
|
43366
44229
|
ref: containerRef,
|
|
43367
44230
|
className: "multiselect-container custom-target-icon",
|
|
43368
44231
|
style: {
|
|
@@ -43477,7 +44340,7 @@ var MultiSelect = function MultiSelect(props) {
|
|
|
43477
44340
|
}, !displayBadge && {
|
|
43478
44341
|
selectedItemsLabel: !displayBadge && "{0} éléments sélectionnés"
|
|
43479
44342
|
}, {
|
|
43480
|
-
emptyMessage:
|
|
44343
|
+
emptyMessage: displayedEmptyMessage,
|
|
43481
44344
|
onChange: handleChange,
|
|
43482
44345
|
itemTemplate: optionTemplate,
|
|
43483
44346
|
selectedItemTemplate: displayBadge ? undefined : selectedItemTemplate,
|
|
@@ -44076,17 +44939,27 @@ var MultiSelectPresets = {
|
|
|
44076
44939
|
options: [{
|
|
44077
44940
|
label: 'Option 1',
|
|
44078
44941
|
value: '1',
|
|
44079
|
-
tooltip: '
|
|
44942
|
+
tooltip: '<b>Option 1</b> — <i>information</i> spécifique.<br/>Prise en charge du <u>HTML</u>.'
|
|
44080
44943
|
}, {
|
|
44081
44944
|
label: 'Option 2',
|
|
44082
|
-
value: '2'
|
|
44083
|
-
tooltip: 'Détail complémentaire pour l’option 2'
|
|
44945
|
+
value: '2'
|
|
44946
|
+
// tooltip: '<span style="color:#3b82f6">Détail</span> complémentaire pour <b>l’option 2</b>',
|
|
44084
44947
|
}, {
|
|
44085
44948
|
label: 'Option 3',
|
|
44086
44949
|
value: '3',
|
|
44087
|
-
tooltip: 'Contexte métier
|
|
44950
|
+
tooltip: 'Contexte métier :<ul style="margin:4px 0 0 16px;padding:0"><li>Point 1</li><li>Point 2</li></ul>'
|
|
44951
|
+
}, {
|
|
44952
|
+
label: 'Option 4',
|
|
44953
|
+
value: '4',
|
|
44954
|
+
tooltip: 'Documentation : <a href="https://example.com" target="_blank" rel="noopener" style="color:#60a5fa;text-decoration:underline">ouvrir la doc</a>'
|
|
44088
44955
|
}],
|
|
44089
|
-
enableItemTooltip: true
|
|
44956
|
+
enableItemTooltip: true,
|
|
44957
|
+
cancelLabel: 'Fermer',
|
|
44958
|
+
applyLabel: 'Appliquer',
|
|
44959
|
+
onApply: function onApply(values) {
|
|
44960
|
+
// eslint-disable-next-line no-console
|
|
44961
|
+
console.log('Selection appliquée :', values);
|
|
44962
|
+
}
|
|
44090
44963
|
},
|
|
44091
44964
|
ItemWithLink: {
|
|
44092
44965
|
placeholder: 'Choisissez une option',
|
|
@@ -44371,6 +45244,61 @@ var MultiSelectMetaAsyncPresets = {
|
|
|
44371
45244
|
displayCounter: true,
|
|
44372
45245
|
maxVisibleCounter: 1
|
|
44373
45246
|
},
|
|
45247
|
+
ItemWithTooltip: {
|
|
45248
|
+
placeholder: 'Survolez une option',
|
|
45249
|
+
options: [{
|
|
45250
|
+
label: 'Option 1',
|
|
45251
|
+
value: '1',
|
|
45252
|
+
tooltip: '<b>Option 1</b> — <i>information</i> spécifique.<br/>Prise en charge du <u>HTML</u>.'
|
|
45253
|
+
}, {
|
|
45254
|
+
label: 'Option 2',
|
|
45255
|
+
value: '2',
|
|
45256
|
+
tooltip: '<span style="color:#3b82f6">Détail</span> complémentaire pour <b>l’option 2</b>'
|
|
45257
|
+
}, {
|
|
45258
|
+
label: 'Option 3',
|
|
45259
|
+
value: '3',
|
|
45260
|
+
tooltip: 'Contexte métier :<ul style="margin:4px 0 0 16px;padding:0"><li>Point 1</li><li>Point 2</li></ul>'
|
|
45261
|
+
}, {
|
|
45262
|
+
label: 'Option 4',
|
|
45263
|
+
value: '4',
|
|
45264
|
+
tooltip: '<b>Cas particuliers</b><br/><small>Utilisation limitée</small>'
|
|
45265
|
+
}, {
|
|
45266
|
+
label: 'Option 5',
|
|
45267
|
+
value: '5',
|
|
45268
|
+
tooltip: 'Réservée aux <b style="color:#ef4444">administrateurs</b>'
|
|
45269
|
+
}, {
|
|
45270
|
+
label: 'Option 6',
|
|
45271
|
+
value: '6',
|
|
45272
|
+
tooltip: '<i>Recommandée</i> pour la <b>production</b>'
|
|
45273
|
+
}, {
|
|
45274
|
+
label: 'Option 7',
|
|
45275
|
+
value: '7',
|
|
45276
|
+
tooltip: 'Compatible avec les <u>anciens systèmes</u>'
|
|
45277
|
+
}, {
|
|
45278
|
+
label: 'Option 8',
|
|
45279
|
+
value: '8',
|
|
45280
|
+
tooltip: 'Optimisée pour les <b>grandes volumétries</b><br/>> 10 M lignes'
|
|
45281
|
+
}, {
|
|
45282
|
+
label: 'Option 9',
|
|
45283
|
+
value: '9',
|
|
45284
|
+
tooltip: 'Nécessite des <span style="color:#f59e0b">droits étendus</span>'
|
|
45285
|
+
}, {
|
|
45286
|
+
label: 'Option 10',
|
|
45287
|
+
value: '10',
|
|
45288
|
+
tooltip: '<b style="color:#ef4444">⚠ À utiliser avec précaution</b>'
|
|
45289
|
+
}, {
|
|
45290
|
+
label: 'Option 11',
|
|
45291
|
+
value: '11',
|
|
45292
|
+
tooltip: 'Documentation : <a href="https://example.com" target="_blank" rel="noopener" style="color:#60a5fa;text-decoration:underline">ouvrir la doc</a>'
|
|
45293
|
+
}],
|
|
45294
|
+
enableItemTooltip: true,
|
|
45295
|
+
cancelLabel: 'Fermer',
|
|
45296
|
+
applyLabel: 'Appliquer',
|
|
45297
|
+
onApply: function onApply(values) {
|
|
45298
|
+
// eslint-disable-next-line no-console
|
|
45299
|
+
console.log('Selection appliquée :', values);
|
|
45300
|
+
}
|
|
45301
|
+
},
|
|
44374
45302
|
SearchAjaxLoading: {
|
|
44375
45303
|
placeholder: 'Rechercher (Ajax)…',
|
|
44376
45304
|
filter: true,
|
|
@@ -44436,24 +45364,160 @@ var createFakeOptions = function createFakeOptions(start, length) {
|
|
|
44436
45364
|
}
|
|
44437
45365
|
return options;
|
|
44438
45366
|
};
|
|
45367
|
+
var mockPeople = [{
|
|
45368
|
+
label: 'Alice Martin',
|
|
45369
|
+
value: 1,
|
|
45370
|
+
color: '#ff9900',
|
|
45371
|
+
profession: 'Développeuse',
|
|
45372
|
+
tooltip: 'Alice Martin — Développeuse',
|
|
45373
|
+
link: 'https://example.com'
|
|
45374
|
+
}, {
|
|
45375
|
+
label: 'Bruno Lefèvre',
|
|
45376
|
+
value: 2,
|
|
45377
|
+
color: '#3b82f6',
|
|
45378
|
+
profession: 'Chef de projet',
|
|
45379
|
+
tooltip: 'Bruno Lefèvre — Chef de projet',
|
|
45380
|
+
link: 'https://example.com'
|
|
45381
|
+
}, {
|
|
45382
|
+
label: 'Chloé Dubois',
|
|
45383
|
+
value: 3,
|
|
45384
|
+
color: '#10b981',
|
|
45385
|
+
profession: 'Designer',
|
|
45386
|
+
tooltip: 'Chloé Dubois — Designer',
|
|
45387
|
+
link: 'https://example.com'
|
|
45388
|
+
}, {
|
|
45389
|
+
label: 'David Morel',
|
|
45390
|
+
value: 4,
|
|
45391
|
+
color: '#8b5cf6',
|
|
45392
|
+
profession: 'Data analyst',
|
|
45393
|
+
tooltip: 'David Morel — Data analyst',
|
|
45394
|
+
link: 'https://example.com'
|
|
45395
|
+
}, {
|
|
45396
|
+
label: 'Emma Roux',
|
|
45397
|
+
value: 5,
|
|
45398
|
+
color: '#ec4899',
|
|
45399
|
+
profession: 'Product owner',
|
|
45400
|
+
tooltip: 'Emma Roux — Product owner',
|
|
45401
|
+
link: 'https://example.com'
|
|
45402
|
+
}, {
|
|
45403
|
+
label: 'Farid Benali',
|
|
45404
|
+
value: 6,
|
|
45405
|
+
color: '#f59e0b',
|
|
45406
|
+
profession: 'DevOps',
|
|
45407
|
+
tooltip: 'Farid Benali — DevOps',
|
|
45408
|
+
link: 'https://example.com'
|
|
45409
|
+
}, {
|
|
45410
|
+
label: 'Gaëlle Simon',
|
|
45411
|
+
value: 7,
|
|
45412
|
+
color: '#ef4444',
|
|
45413
|
+
profession: 'QA engineer',
|
|
45414
|
+
tooltip: 'Gaëlle Simon — QA engineer',
|
|
45415
|
+
link: 'https://example.com'
|
|
45416
|
+
}, {
|
|
45417
|
+
label: 'Hugo Bernard',
|
|
45418
|
+
value: 8,
|
|
45419
|
+
color: '#10b981',
|
|
45420
|
+
profession: 'Développeur',
|
|
45421
|
+
tooltip: 'Hugo Bernard — Développeur',
|
|
45422
|
+
link: 'https://example.com'
|
|
45423
|
+
}];
|
|
45424
|
+
var asyncPeople = /*#__PURE__*/function () {
|
|
45425
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
45426
|
+
var search,
|
|
45427
|
+
_ref2,
|
|
45428
|
+
_ref2$page,
|
|
45429
|
+
page,
|
|
45430
|
+
filtered,
|
|
45431
|
+
pageSize,
|
|
45432
|
+
start,
|
|
45433
|
+
_args = arguments;
|
|
45434
|
+
return _regenerator().w(function (_context) {
|
|
45435
|
+
while (1) switch (_context.n) {
|
|
45436
|
+
case 0:
|
|
45437
|
+
search = _args.length > 0 && _args[0] !== undefined ? _args[0] : '';
|
|
45438
|
+
_ref2 = _args.length > 2 && _args[2] !== undefined ? _args[2] : {}, _ref2$page = _ref2.page, page = _ref2$page === void 0 ? 1 : _ref2$page;
|
|
45439
|
+
_context.n = 1;
|
|
45440
|
+
return simulateNetworkDelay();
|
|
45441
|
+
case 1:
|
|
45442
|
+
filtered = search ? mockPeople.filter(function (opt) {
|
|
45443
|
+
return opt.label.toLowerCase().includes(search.toLowerCase());
|
|
45444
|
+
}) : mockPeople;
|
|
45445
|
+
pageSize = 30;
|
|
45446
|
+
start = (page - 1) * pageSize;
|
|
45447
|
+
return _context.a(2, {
|
|
45448
|
+
options: filtered.slice(start, start + pageSize),
|
|
45449
|
+
hasMore: start + pageSize < filtered.length,
|
|
45450
|
+
additional: {
|
|
45451
|
+
page: page + 1
|
|
45452
|
+
}
|
|
45453
|
+
});
|
|
45454
|
+
}
|
|
45455
|
+
}, _callee);
|
|
45456
|
+
}));
|
|
45457
|
+
return function asyncPeople() {
|
|
45458
|
+
return _ref.apply(this, arguments);
|
|
45459
|
+
};
|
|
45460
|
+
}();
|
|
45461
|
+
var mockPeopleHtmlTooltips = mockPeople.map(function (p) {
|
|
45462
|
+
return _objectSpread2(_objectSpread2({}, p), {}, {
|
|
45463
|
+
tooltip: "<b>".concat(p.label, "</b> \u2014 <i>").concat(p.profession, "</i><br/>Contact : <a href=\"mailto:").concat(p.label.split(' ')[0].toLowerCase(), "@arengi.fr\" style=\"color:#60a5fa;text-decoration:underline\">").concat(p.label.split(' ')[0].toLowerCase(), "@arengi.fr</a><br/>Doc : <a href=\"https://example.com\" target=\"_blank\" rel=\"noopener\" style=\"color:#60a5fa;text-decoration:underline\">ouvrir la doc</a>")
|
|
45464
|
+
});
|
|
45465
|
+
});
|
|
45466
|
+
var asyncPeopleHtmlTooltip = /*#__PURE__*/function () {
|
|
45467
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
45468
|
+
var search,
|
|
45469
|
+
_ref4,
|
|
45470
|
+
_ref4$page,
|
|
45471
|
+
page,
|
|
45472
|
+
filtered,
|
|
45473
|
+
pageSize,
|
|
45474
|
+
start,
|
|
45475
|
+
_args2 = arguments;
|
|
45476
|
+
return _regenerator().w(function (_context2) {
|
|
45477
|
+
while (1) switch (_context2.n) {
|
|
45478
|
+
case 0:
|
|
45479
|
+
search = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : '';
|
|
45480
|
+
_ref4 = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : {}, _ref4$page = _ref4.page, page = _ref4$page === void 0 ? 1 : _ref4$page;
|
|
45481
|
+
_context2.n = 1;
|
|
45482
|
+
return simulateNetworkDelay();
|
|
45483
|
+
case 1:
|
|
45484
|
+
filtered = search ? mockPeopleHtmlTooltips.filter(function (opt) {
|
|
45485
|
+
return opt.label.toLowerCase().includes(search.toLowerCase());
|
|
45486
|
+
}) : mockPeopleHtmlTooltips;
|
|
45487
|
+
pageSize = 30;
|
|
45488
|
+
start = (page - 1) * pageSize;
|
|
45489
|
+
return _context2.a(2, {
|
|
45490
|
+
options: filtered.slice(start, start + pageSize),
|
|
45491
|
+
hasMore: start + pageSize < filtered.length,
|
|
45492
|
+
additional: {
|
|
45493
|
+
page: page + 1
|
|
45494
|
+
}
|
|
45495
|
+
});
|
|
45496
|
+
}
|
|
45497
|
+
}, _callee2);
|
|
45498
|
+
}));
|
|
45499
|
+
return function asyncPeopleHtmlTooltip() {
|
|
45500
|
+
return _ref3.apply(this, arguments);
|
|
45501
|
+
};
|
|
45502
|
+
}();
|
|
44439
45503
|
var DropdownSelectMetaAsyncPresets = {
|
|
44440
45504
|
SelectMetaAsync: {
|
|
44441
45505
|
options: function () {
|
|
44442
|
-
var _options = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
45506
|
+
var _options = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
44443
45507
|
var search,
|
|
44444
|
-
|
|
45508
|
+
_ref5,
|
|
44445
45509
|
page,
|
|
44446
45510
|
allOptions,
|
|
44447
45511
|
filtered,
|
|
44448
45512
|
pageSize,
|
|
44449
45513
|
start,
|
|
44450
|
-
|
|
44451
|
-
return _regenerator().w(function (
|
|
44452
|
-
while (1) switch (
|
|
45514
|
+
_args3 = arguments;
|
|
45515
|
+
return _regenerator().w(function (_context3) {
|
|
45516
|
+
while (1) switch (_context3.n) {
|
|
44453
45517
|
case 0:
|
|
44454
|
-
search =
|
|
44455
|
-
|
|
44456
|
-
|
|
45518
|
+
search = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : '';
|
|
45519
|
+
_ref5 = _args3.length > 2 ? _args3[2] : undefined, page = _ref5.page;
|
|
45520
|
+
_context3.n = 1;
|
|
44457
45521
|
return simulateNetworkDelay();
|
|
44458
45522
|
case 1:
|
|
44459
45523
|
allOptions = createFakeOptions(0, 100);
|
|
@@ -44462,7 +45526,7 @@ var DropdownSelectMetaAsyncPresets = {
|
|
|
44462
45526
|
});
|
|
44463
45527
|
pageSize = 30;
|
|
44464
45528
|
start = (page - 1) * pageSize;
|
|
44465
|
-
return
|
|
45529
|
+
return _context3.a(2, {
|
|
44466
45530
|
options: filtered.slice(start, start + pageSize),
|
|
44467
45531
|
hasMore: start + pageSize < filtered.length,
|
|
44468
45532
|
additional: {
|
|
@@ -44470,7 +45534,7 @@ var DropdownSelectMetaAsyncPresets = {
|
|
|
44470
45534
|
}
|
|
44471
45535
|
});
|
|
44472
45536
|
}
|
|
44473
|
-
},
|
|
45537
|
+
}, _callee3);
|
|
44474
45538
|
}));
|
|
44475
45539
|
function options() {
|
|
44476
45540
|
return _options.apply(this, arguments);
|
|
@@ -44492,6 +45556,141 @@ var DropdownSelectMetaAsyncPresets = {
|
|
|
44492
45556
|
fontSize: '14px',
|
|
44493
45557
|
fontFamily: 'Arial'
|
|
44494
45558
|
}
|
|
45559
|
+
},
|
|
45560
|
+
Base: {
|
|
45561
|
+
options: asyncPeople,
|
|
45562
|
+
value: null,
|
|
45563
|
+
placeholder: 'Sélectionnez une option',
|
|
45564
|
+
editable: true,
|
|
45565
|
+
filter: false,
|
|
45566
|
+
showClear: true,
|
|
45567
|
+
valueStyle: {
|
|
45568
|
+
backgroundColor: 'transparent',
|
|
45569
|
+
color: 'inherit',
|
|
45570
|
+
padding: '0',
|
|
45571
|
+
borderRadius: '0',
|
|
45572
|
+
boxShadow: 'none',
|
|
45573
|
+
fontFamily: 'inherit'
|
|
45574
|
+
}
|
|
45575
|
+
},
|
|
45576
|
+
AsyncOptions: {
|
|
45577
|
+
options: asyncPeople,
|
|
45578
|
+
value: 3,
|
|
45579
|
+
placeholder: 'Sélectionnez une option',
|
|
45580
|
+
editable: true,
|
|
45581
|
+
showClear: true,
|
|
45582
|
+
selectMetaConfig: {
|
|
45583
|
+
labelStyle: {
|
|
45584
|
+
fontWeight: 'bold'
|
|
45585
|
+
},
|
|
45586
|
+
generalIcon: 'pi pi-tag'
|
|
45587
|
+
}
|
|
45588
|
+
},
|
|
45589
|
+
SearchAjaxLoading: {
|
|
45590
|
+
// En prod : optionsUrl: '/api/options' (pagination start/length, recherche search[value])
|
|
45591
|
+
options: asyncPeople,
|
|
45592
|
+
placeholder: 'Rechercher (Ajax)…',
|
|
45593
|
+
filter: true,
|
|
45594
|
+
showClear: true
|
|
45595
|
+
},
|
|
45596
|
+
Sorting: {
|
|
45597
|
+
options: asyncPeople,
|
|
45598
|
+
placeholder: 'Tri A→Z / Z→A',
|
|
45599
|
+
filter: true,
|
|
45600
|
+
enableSorting: true,
|
|
45601
|
+
showClear: true
|
|
45602
|
+
},
|
|
45603
|
+
ItemsCheckedToTheTop: {
|
|
45604
|
+
options: asyncPeople,
|
|
45605
|
+
value: 5,
|
|
45606
|
+
placeholder: 'Sélection remontée en haut',
|
|
45607
|
+
itemsCheckedToTheTop: true,
|
|
45608
|
+
showClear: true
|
|
45609
|
+
},
|
|
45610
|
+
OpenOnHover: {
|
|
45611
|
+
options: asyncPeople,
|
|
45612
|
+
placeholder: 'Ouverture au survol',
|
|
45613
|
+
openOnHover: true
|
|
45614
|
+
},
|
|
45615
|
+
ItemWithTooltip: {
|
|
45616
|
+
options: asyncPeopleHtmlTooltip,
|
|
45617
|
+
placeholder: 'Tooltip sur les options',
|
|
45618
|
+
enableItemTooltip: true
|
|
45619
|
+
},
|
|
45620
|
+
ItemWithSecondaryLabel: {
|
|
45621
|
+
options: asyncPeople,
|
|
45622
|
+
placeholder: 'Label secondaire',
|
|
45623
|
+
enableSecondaryLabel: true,
|
|
45624
|
+
secondaryLabelKey: 'profession'
|
|
45625
|
+
},
|
|
45626
|
+
ItemWithLink: {
|
|
45627
|
+
options: asyncPeople,
|
|
45628
|
+
placeholder: 'Lien sur le label secondaire',
|
|
45629
|
+
enableSecondaryLabel: true,
|
|
45630
|
+
secondaryLabelKey: 'profession',
|
|
45631
|
+
enableItemLink: true
|
|
45632
|
+
},
|
|
45633
|
+
Badge: {
|
|
45634
|
+
options: asyncPeople,
|
|
45635
|
+
value: 2,
|
|
45636
|
+
placeholder: 'Badges colorés',
|
|
45637
|
+
withColor: true,
|
|
45638
|
+
selectConfig: {
|
|
45639
|
+
labelStyle: null,
|
|
45640
|
+
generalIcon: null
|
|
45641
|
+
}
|
|
45642
|
+
},
|
|
45643
|
+
WithIcon: {
|
|
45644
|
+
options: asyncPeople,
|
|
45645
|
+
value: 1,
|
|
45646
|
+
placeholder: 'Icône devant chaque option',
|
|
45647
|
+
withIcon: true,
|
|
45648
|
+
selectConfig: {
|
|
45649
|
+
labelStyle: {
|
|
45650
|
+
fontWeight: '400'
|
|
45651
|
+
},
|
|
45652
|
+
generalIcon: 'pi pi-user'
|
|
45653
|
+
}
|
|
45654
|
+
},
|
|
45655
|
+
Truncate: {
|
|
45656
|
+
options: asyncPeople,
|
|
45657
|
+
value: 2,
|
|
45658
|
+
placeholder: 'Label tronqué',
|
|
45659
|
+
truncateAt: 8,
|
|
45660
|
+
valueStyle: {
|
|
45661
|
+
backgroundColor: 'transparent',
|
|
45662
|
+
color: 'inherit',
|
|
45663
|
+
padding: '0',
|
|
45664
|
+
borderRadius: '0',
|
|
45665
|
+
boxShadow: 'none',
|
|
45666
|
+
fontFamily: 'inherit'
|
|
45667
|
+
}
|
|
45668
|
+
},
|
|
45669
|
+
ReadOnly: {
|
|
45670
|
+
options: asyncPeople,
|
|
45671
|
+
value: 4,
|
|
45672
|
+
readOnly: true,
|
|
45673
|
+
showClear: false
|
|
45674
|
+
},
|
|
45675
|
+
Disabled: {
|
|
45676
|
+
options: asyncPeople,
|
|
45677
|
+
value: 4,
|
|
45678
|
+
disabled: true
|
|
45679
|
+
},
|
|
45680
|
+
Required: {
|
|
45681
|
+
options: asyncPeople,
|
|
45682
|
+
value: null,
|
|
45683
|
+
placeholder: 'Sélection obligatoire',
|
|
45684
|
+
required: true,
|
|
45685
|
+
name: 'monchamp',
|
|
45686
|
+
status: 'error',
|
|
45687
|
+
errorMessage: 'Une option doit être sélectionnée'
|
|
45688
|
+
},
|
|
45689
|
+
InfoLine: {
|
|
45690
|
+
options: asyncPeople,
|
|
45691
|
+
placeholder: 'Avec pied de panel',
|
|
45692
|
+
hasInfoLine: true,
|
|
45693
|
+
InfoLineValue: '8 utilisateurs disponibles'
|
|
44495
45694
|
}
|
|
44496
45695
|
};
|
|
44497
45696
|
|
|
@@ -55728,6 +56927,7 @@ var Table$1 = function Table(_ref13) {
|
|
|
55728
56927
|
columnFilter = _ref13$columnFilter === void 0 ? true : _ref13$columnFilter,
|
|
55729
56928
|
onChange = _ref13.onChange,
|
|
55730
56929
|
onCellChange = _ref13.onCellChange,
|
|
56930
|
+
onLoad = _ref13.onLoad,
|
|
55731
56931
|
tableId = _ref13.tableId,
|
|
55732
56932
|
onAdd = _ref13.onAdd,
|
|
55733
56933
|
_ref13$showAdd = _ref13.showAdd,
|
|
@@ -55744,12 +56944,32 @@ var Table$1 = function Table(_ref13) {
|
|
|
55744
56944
|
locked = _useState32[0],
|
|
55745
56945
|
setLocked = _useState32[1];
|
|
55746
56946
|
var effectiveEditable = lockable ? editable && !locked : editable;
|
|
55747
|
-
var
|
|
56947
|
+
var buildAttributeData = useCallback(function () {
|
|
56948
|
+
var result = {};
|
|
56949
|
+
columns.forEach(function (col) {
|
|
56950
|
+
if (col.attributeData !== undefined) result[col.field] = col.attributeData;
|
|
56951
|
+
});
|
|
56952
|
+
return result;
|
|
56953
|
+
}, [columns]);
|
|
56954
|
+
var enrichRows = useCallback(function (rows) {
|
|
56955
|
+
var attributeData = buildAttributeData();
|
|
56956
|
+
if (!Object.keys(attributeData).length) return rows;
|
|
56957
|
+
return rows.map(function (row) {
|
|
56958
|
+
return _objectSpread2(_objectSpread2({}, row), {}, {
|
|
56959
|
+
attributeData: attributeData
|
|
56960
|
+
});
|
|
56961
|
+
});
|
|
56962
|
+
}, [buildAttributeData]);
|
|
56963
|
+
var _useState33 = useState(function () {
|
|
56964
|
+
return enrichRows(value);
|
|
56965
|
+
}),
|
|
55748
56966
|
_useState34 = _slicedToArray$d(_useState33, 2),
|
|
55749
56967
|
data = _useState34[0],
|
|
55750
56968
|
setData = _useState34[1];
|
|
55751
56969
|
useEffect(function () {
|
|
55752
|
-
|
|
56970
|
+
var enriched = enrichRows(value);
|
|
56971
|
+
setData(enriched);
|
|
56972
|
+
onLoad === null || onLoad === void 0 || onLoad(enriched);
|
|
55753
56973
|
}, [value]);
|
|
55754
56974
|
var onCellChangeRef = useRef(onCellChange);
|
|
55755
56975
|
useEffect(function () {
|
|
@@ -55793,7 +57013,8 @@ var Table$1 = function Table(_ref13) {
|
|
|
55793
57013
|
var handleAddRow = useCallback(function () {
|
|
55794
57014
|
// id temporaire négatif pour éviter les collisions avec les id BDD positifs
|
|
55795
57015
|
var newRow = {
|
|
55796
|
-
id: -Date.now()
|
|
57016
|
+
id: -Date.now(),
|
|
57017
|
+
attributeData: buildAttributeData()
|
|
55797
57018
|
};
|
|
55798
57019
|
columns.forEach(function (col) {
|
|
55799
57020
|
switch (col.type) {
|
|
@@ -55812,7 +57033,7 @@ var Table$1 = function Table(_ref13) {
|
|
|
55812
57033
|
onAdd === null || onAdd === void 0 || onAdd(newRow, updated);
|
|
55813
57034
|
return updated;
|
|
55814
57035
|
});
|
|
55815
|
-
}, [columns, onChange, onAdd]);
|
|
57036
|
+
}, [columns, onChange, onAdd, buildAttributeData]);
|
|
55816
57037
|
var _useState37 = useState({}),
|
|
55817
57038
|
_useState38 = _slicedToArray$d(_useState37, 2),
|
|
55818
57039
|
editingRows = _useState38[0],
|
|
@@ -56936,7 +58157,6 @@ var Table$1 = function Table(_ref13) {
|
|
|
56936
58157
|
rowData: rowData,
|
|
56937
58158
|
col: col,
|
|
56938
58159
|
editable: colEditable,
|
|
56939
|
-
isRowEditing: !!editingRows[rowData.id],
|
|
56940
58160
|
onSave: function onSave(v) {
|
|
56941
58161
|
var _onCellChangeRef$curr2;
|
|
56942
58162
|
var enrichedFields = _defineProperty$g({}, col.field, v);
|
|
@@ -56967,6 +58187,7 @@ var Table$1 = function Table(_ref13) {
|
|
|
56967
58187
|
newValue: v
|
|
56968
58188
|
});
|
|
56969
58189
|
},
|
|
58190
|
+
isRowEditing: !!editingRows[rowData.id],
|
|
56970
58191
|
renderDisplay: displayFn !== null && displayFn !== void 0 ? displayFn : function (rd) {
|
|
56971
58192
|
var _rd$col$field;
|
|
56972
58193
|
return (_rd$col$field = rd[col.field]) !== null && _rd$col$field !== void 0 ? _rd$col$field : '';
|
|
@@ -58130,7 +59351,12 @@ var columnsTyped = [
|
|
|
58130
59351
|
header: 'Inscription',
|
|
58131
59352
|
type: 'date',
|
|
58132
59353
|
editable: true,
|
|
58133
|
-
dbDateFormat: 'MMMM/y'
|
|
59354
|
+
dbDateFormat: 'MMMM/y',
|
|
59355
|
+
attributeData: {
|
|
59356
|
+
'data-value': 'bonjour',
|
|
59357
|
+
'data-tata': 'hello',
|
|
59358
|
+
'data-tab': []
|
|
59359
|
+
}
|
|
58134
59360
|
}, {
|
|
58135
59361
|
field: 'dateNaissance',
|
|
58136
59362
|
header: 'Naissance',
|