@appius-fr/apx 2.7.0 → 2.7.1
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/README.md +19 -0
- package/dist/APX.dev.mjs +427 -41
- package/dist/APX.mjs +1 -1
- package/dist/APX.prod.mjs +1 -1
- package/dist/APX.standalone.js +488 -46
- package/dist/APX.standalone.js.map +1 -1
- package/modules/scrollableTable/CHANGELOG.md +37 -0
- package/modules/scrollableTable/README.md +59 -3
- package/modules/scrollableTable/css/scrollableTable.css +23 -16
- package/modules/scrollableTable/scrollableTable.mjs +402 -23
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APX.standalone.js","mappings":";;;;;;;;;;;;;;;;;;AAAA;AACgH;AACjB;AAC/F,8BAA8B,mFAA2B,CAAC,4FAAqC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,WAAW;AACX;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,OAAO,uGAAuG,MAAM,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,aAAa,OAAO,KAAK,YAAY,WAAW,UAAU,UAAU,YAAY,WAAW,UAAU,YAAY,aAAa,aAAa,OAAO,KAAK,UAAU,OAAO,KAAK,UAAU,UAAU,UAAU,YAAY,aAAa,aAAa,OAAO,MAAM,UAAU,YAAY,WAAW,OAAO,YAAY,SAAS,UAAU,UAAU,YAAY,aAAa,aAAa,aAAa,WAAW,YAAY,aAAa,OAAO,QAAQ,YAAY,aAAa,WAAW,OAAO,YAAY,MAAM,YAAY,aAAa,WAAW,UAAU,YAAY,aAAa,WAAW,UAAU,YAAY,aAAa,OAAO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Ae,uBAAuB,EAAC;;;;;;;;;;;;AC3G1B;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,gDAAgD;AAChD;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,sFAAsF,qBAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,iDAAiD,qBAAqB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,sDAAsD,qBAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpFa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA;AACA;AACA;;;;;;;;;;ACfA;AACA,oIAAoI;AACpI;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA,MAAqG;AACrG,MAA2F;AAC3F,MAAkG;AAClG,MAAqH;AACrH,MAA8G;AAC9G,MAA8G;AAC9G,MAA0G;AAC1G;AACA;;AAEA;;AAEA,4BAA4B,qGAAmB;AAC/C,wBAAwB,kHAAa;;AAErC,uBAAuB,uGAAa;AACpC;AACA,iBAAiB,+FAAM;AACvB,6BAA6B,sGAAkB;;AAE/C,aAAa,0GAAG,CAAC,uFAAO;;;;AAIoD;AAC5E,OAAO,iEAAe,uFAAO,IAAI,uFAAO,UAAU,uFAAO,mBAAmB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB7E,MAAqG;AACrG,MAA2F;AAC3F,MAAkG;AAClG,MAAqH;AACrH,MAA8G;AAC9G,MAA8G;AAC9G,MAAmH;AACnH;AACA;;AAEA;;AAEA,4BAA4B,qGAAmB;AAC/C,wBAAwB,kHAAa;;AAErC,uBAAuB,uGAAa;AACpC;AACA,iBAAiB,+FAAM;AACvB,6BAA6B,sGAAkB;;AAE/C,aAAa,0GAAG,CAAC,gGAAO;;;;AAI6D;AACrF,OAAO,iEAAe,gGAAO,IAAI,gGAAO,UAAU,gGAAO,mBAAmB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB7E,MAAqG;AACrG,MAA2F;AAC3F,MAAkG;AAClG,MAAqH;AACrH,MAA8G;AAC9G,MAA8G;AAC9G,MAAyG;AACzG;AACA;;AAEA;;AAEA,4BAA4B,qGAAmB;AAC/C,wBAAwB,kHAAa;;AAErC,uBAAuB,uGAAa;AACpC;AACA,iBAAiB,+FAAM;AACvB,6BAA6B,sGAAkB;;AAE/C,aAAa,0GAAG,CAAC,sFAAO;;;;AAImD;AAC3E,OAAO,iEAAe,sFAAO,IAAI,sFAAO,UAAU,sFAAO,mBAAmB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB7E,MAAqG;AACrG,MAA2F;AAC3F,MAAkG;AAClG,MAAqH;AACrH,MAA8G;AAC9G,MAA8G;AAC9G,MAA4G;AAC5G;AACA;;AAEA;;AAEA,4BAA4B,qGAAmB;AAC/C,wBAAwB,kHAAa;;AAErC,uBAAuB,uGAAa;AACpC;AACA,iBAAiB,+FAAM;AACvB,6BAA6B,sGAAkB;;AAE/C,aAAa,0GAAG,CAAC,yFAAO;;;;AAIsD;AAC9E,OAAO,iEAAe,yFAAO,IAAI,yFAAO,UAAU,yFAAO,mBAAmB,EAAC;;;;;;;;;;;;AC1BhE;;AAEb;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnFa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTa;;AAEb;AACA;AACA,cAAc,KAAwC,GAAG,sBAAiB,GAAG,CAAI;AACjF;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTa;;AAEb;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Da;;AAEb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbA;AACA,SAASA,OAAOA,CAACC,GAAG,EAAE;EAClB,OAAOC,KAAK,CAACD,GAAG,CAAC,CACZE,IAAI,CAAC,UAAAC,QAAQ;IAAA,OAAIA,QAAQ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","sources":["webpack://APX/./modules/dialog/css/dialog.css","webpack://APX/./modules/scrollableTable/css/scrollableTable.css","webpack://APX/./modules/toast/css/toast.css","webpack://APX/./modules/tristate/css/tristate.css","webpack://APX/./node_modules/css-loader/dist/runtime/api.js","webpack://APX/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://APX/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://APX/./modules/dialog/html/dialog.html","webpack://APX/./modules/dialog/css/dialog.css?a567","webpack://APX/./modules/scrollableTable/css/scrollableTable.css?92fd","webpack://APX/./modules/toast/css/toast.css?8a48","webpack://APX/./modules/tristate/css/tristate.css?a094","webpack://APX/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://APX/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://APX/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://APX/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://APX/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://APX/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://APX/./modules/common.mjs","webpack://APX/./modules/dialog/dialog.mjs","webpack://APX/./modules/listen/listen.mjs","webpack://APX/./modules/scrollableTable/scrollableTable.mjs","webpack://APX/./modules/toast/toast.mjs","webpack://APX/./modules/tools/exports.mjs","webpack://APX/./modules/tools/form-packer/augment-apx.mjs","webpack://APX/./modules/tools/form-packer/packToJson.mjs","webpack://APX/./modules/tristate/tristate.mjs","webpack://APX/webpack/bootstrap","webpack://APX/webpack/runtime/compat get default export","webpack://APX/webpack/runtime/define property getters","webpack://APX/webpack/runtime/hasOwnProperty shorthand","webpack://APX/webpack/runtime/make namespace object","webpack://APX/webpack/runtime/jsonp chunk loading","webpack://APX/webpack/runtime/nonce","webpack://APX/./APX.mjs"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/* Dialog styling */\r\n.APX-dialog {\r\n display: none;\r\n position: fixed;\r\n z-index: 1002;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n overflow: auto;\r\n background-color: rgba(0, 0, 0, 0.4);\r\n /* Dimmed background for focus on dialog */\r\n}\r\n\r\n.APX-dialog-content {\r\n background-color: #fefefe;\r\n padding: 40px;\r\n border: none;\r\n width: auto;\r\n min-width: 300px;\r\n max-width: 80%;\r\n margin: auto;\r\n border-radius: 8px;\r\n box-shadow: 0px 6px 20px rgba(0, 0, 0, 0.1);\r\n font-family: 'Helvetica Neue', Arial, sans-serif;\r\n}\r\n\r\nh2.APX-dialog-title{\r\n margin-top:0;\r\n}\r\n\r\n.APX-close-dialog {\r\n color: #aaa;\r\n float: right;\r\n font-size: 24px;\r\n margin-top: -10px;\r\n /* Adjust positioning */\r\n margin-right: -10px;\r\n}\r\n\r\n.APX-close-dialog:hover,\r\n.APX-close-dialog:focus {\r\n color: #333;\r\n /* Darker color on hover/focus */\r\n cursor: pointer;\r\n}\r\n\r\n/* Input fields styling */\r\n.APX-dialog-content input[type=\"text\"],\r\n.APX-dialog-content input[type=\"number\"],\r\n.APX-dialog-content input[type=\"date\"],\r\n.APX-dialog-content input[type=\"datetime-local\"] {\r\n width: 100%;\r\n padding: 10px;\r\n margin-bottom: 20px;\r\n border: 1px solid #ccc;\r\n border-radius: 4px;\r\n font-family: 'Helvetica Neue', Arial, sans-serif;\r\n font-size: 16px;\r\n box-sizing: border-box;\r\n transition: border-color 0.3s;\r\n}\r\n\r\n.APX-dialog-content input[type=\"text\"]:focus,\r\n.APX-dialog-content input[type=\"number\"]:focus,\r\n.APX-dialog-content input[type=\"date\"]:focus,\r\n.APX-dialog-content input[type=\"datetime-local\"]:focus {\r\n border-color: #2C3E50;\r\n /* Deep Blue Color */\r\n outline: none;\r\n}\r\n\r\n/* Button in the dialog */\r\n.APX-dialog-button-container button {\r\n position: relative;\r\n background-color: #2C3E50;\r\n color: #ECF0F1;\r\n border: none;\r\n padding: 10px 20px;\r\n border-radius: 5px;\r\n font-size: 16px;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.APX-dialog-button-container button:hover {\r\n background-color: #34495E;\r\n transform: translateY(-1px);\r\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\r\n}\r\n\r\n.APX-dialog-button-container {\r\n display: flex;\r\n gap: 10px;\r\n margin-top:1em;\r\n /* spacing between buttons */\r\n}\r\n\r\n/* Loading indicator */\r\n.APX-dialog-loading-indicator {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100px;\r\n width: 100%;\r\n}\r\n\r\n.APX-dialog-loading-indicator::before {\r\n content: '';\r\n width: 40px;\r\n height: 40px;\r\n border: 4px solid #f3f3f3;\r\n border-top: 4px solid #2C3E50;\r\n border-radius: 50%;\r\n animation: APX-dialog-spin 1s linear infinite;\r\n}\r\n\r\n@keyframes APX-dialog-spin {\r\n 0% { transform: rotate(0deg); }\r\n 100% { transform: rotate(360deg); }\r\n}\r\n.APX-dialog-button-disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed !important;\r\n background-color: #95a5a6 !important; /* Grayed out color */\r\n box-shadow: none !important;\r\n transition: all 0.2s ease;\r\n transform: none !important;\r\n}\r\n\r\n.APX-dialog-button-disabled:hover {\r\n background-color: #95a5a6 !important; /* Keep gray on hover */\r\n transform: none !important;\r\n}\r\n\r\n/* Add a subtle strikethrough effect */\r\n.APX-dialog-button-disabled::after {\r\n content: '';\r\n position: absolute;\r\n top: 50%;\r\n left: 0;\r\n width: 100%;\r\n height: 1px;\r\n background-color: rgba(0, 0, 0, 0.2);\r\n transform: rotate(-5deg);\r\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./modules/dialog/css/dialog.css\"],\"names\":[],\"mappings\":\"AAAA,mBAAmB;AACnB;IACI,aAAa;IACb,eAAe;IACf,aAAa;IACb,OAAO;IACP,MAAM;IACN,WAAW;IACX,YAAY;IACZ,cAAc;IACd,oCAAoC;IACpC,0CAA0C;AAC9C;;AAEA;IACI,yBAAyB;IACzB,aAAa;IACb,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,2CAA2C;IAC3C,gDAAgD;AACpD;;AAEA;IACI,YAAY;AAChB;;AAEA;IACI,WAAW;IACX,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,uBAAuB;IACvB,mBAAmB;AACvB;;AAEA;;IAEI,WAAW;IACX,gCAAgC;IAChC,eAAe;AACnB;;AAEA,yBAAyB;AACzB;;;;IAII,WAAW;IACX,aAAa;IACb,mBAAmB;IACnB,sBAAsB;IACtB,kBAAkB;IAClB,gDAAgD;IAChD,eAAe;IACf,sBAAsB;IACtB,6BAA6B;AACjC;;AAEA;;;;IAII,qBAAqB;IACrB,oBAAoB;IACpB,aAAa;AACjB;;AAEA,yBAAyB;AACzB;IACI,kBAAkB;IAClB,yBAAyB;IACzB,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,eAAe;IACf,yBAAyB;IACzB,wCAAwC;AAC5C;;AAEA;IACI,yBAAyB;IACzB,2BAA2B;IAC3B,yCAAyC;AAC7C;;AAEA;IACI,aAAa;IACb,SAAS;IACT,cAAc;IACd,4BAA4B;AAChC;;AAEA,sBAAsB;AACtB;IACI,aAAa;IACb,uBAAuB;IACvB,mBAAmB;IACnB,aAAa;IACb,WAAW;AACf;;AAEA;IACI,WAAW;IACX,WAAW;IACX,YAAY;IACZ,yBAAyB;IACzB,6BAA6B;IAC7B,kBAAkB;IAClB,6CAA6C;AACjD;;AAEA;IACI,KAAK,uBAAuB,EAAE;IAC9B,OAAO,yBAAyB,EAAE;AACtC;AACA;IACI,YAAY;IACZ,8BAA8B;IAC9B,oCAAoC,EAAE,qBAAqB;IAC3D,2BAA2B;IAC3B,yBAAyB;IACzB,0BAA0B;AAC9B;;AAEA;IACI,oCAAoC,EAAE,uBAAuB;IAC7D,0BAA0B;AAC9B;;AAEA,sCAAsC;AACtC;IACI,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,OAAO;IACP,WAAW;IACX,WAAW;IACX,oCAAoC;IACpC,wBAAwB;AAC5B\",\"sourcesContent\":[\"/* Dialog styling */\\r\\n.APX-dialog {\\r\\n display: none;\\r\\n position: fixed;\\r\\n z-index: 1002;\\r\\n left: 0;\\r\\n top: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n overflow: auto;\\r\\n background-color: rgba(0, 0, 0, 0.4);\\r\\n /* Dimmed background for focus on dialog */\\r\\n}\\r\\n\\r\\n.APX-dialog-content {\\r\\n background-color: #fefefe;\\r\\n padding: 40px;\\r\\n border: none;\\r\\n width: auto;\\r\\n min-width: 300px;\\r\\n max-width: 80%;\\r\\n margin: auto;\\r\\n border-radius: 8px;\\r\\n box-shadow: 0px 6px 20px rgba(0, 0, 0, 0.1);\\r\\n font-family: 'Helvetica Neue', Arial, sans-serif;\\r\\n}\\r\\n\\r\\nh2.APX-dialog-title{\\r\\n margin-top:0;\\r\\n}\\r\\n\\r\\n.APX-close-dialog {\\r\\n color: #aaa;\\r\\n float: right;\\r\\n font-size: 24px;\\r\\n margin-top: -10px;\\r\\n /* Adjust positioning */\\r\\n margin-right: -10px;\\r\\n}\\r\\n\\r\\n.APX-close-dialog:hover,\\r\\n.APX-close-dialog:focus {\\r\\n color: #333;\\r\\n /* Darker color on hover/focus */\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n/* Input fields styling */\\r\\n.APX-dialog-content input[type=\\\"text\\\"],\\r\\n.APX-dialog-content input[type=\\\"number\\\"],\\r\\n.APX-dialog-content input[type=\\\"date\\\"],\\r\\n.APX-dialog-content input[type=\\\"datetime-local\\\"] {\\r\\n width: 100%;\\r\\n padding: 10px;\\r\\n margin-bottom: 20px;\\r\\n border: 1px solid #ccc;\\r\\n border-radius: 4px;\\r\\n font-family: 'Helvetica Neue', Arial, sans-serif;\\r\\n font-size: 16px;\\r\\n box-sizing: border-box;\\r\\n transition: border-color 0.3s;\\r\\n}\\r\\n\\r\\n.APX-dialog-content input[type=\\\"text\\\"]:focus,\\r\\n.APX-dialog-content input[type=\\\"number\\\"]:focus,\\r\\n.APX-dialog-content input[type=\\\"date\\\"]:focus,\\r\\n.APX-dialog-content input[type=\\\"datetime-local\\\"]:focus {\\r\\n border-color: #2C3E50;\\r\\n /* Deep Blue Color */\\r\\n outline: none;\\r\\n}\\r\\n\\r\\n/* Button in the dialog */\\r\\n.APX-dialog-button-container button {\\r\\n position: relative;\\r\\n background-color: #2C3E50;\\r\\n color: #ECF0F1;\\r\\n border: none;\\r\\n padding: 10px 20px;\\r\\n border-radius: 5px;\\r\\n font-size: 16px;\\r\\n cursor: pointer;\\r\\n transition: all 0.3s ease;\\r\\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\\r\\n}\\r\\n\\r\\n.APX-dialog-button-container button:hover {\\r\\n background-color: #34495E;\\r\\n transform: translateY(-1px);\\r\\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\\r\\n}\\r\\n\\r\\n.APX-dialog-button-container {\\r\\n display: flex;\\r\\n gap: 10px;\\r\\n margin-top:1em;\\r\\n /* spacing between buttons */\\r\\n}\\r\\n\\r\\n/* Loading indicator */\\r\\n.APX-dialog-loading-indicator {\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n align-items: center;\\r\\n height: 100px;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.APX-dialog-loading-indicator::before {\\r\\n content: '';\\r\\n width: 40px;\\r\\n height: 40px;\\r\\n border: 4px solid #f3f3f3;\\r\\n border-top: 4px solid #2C3E50;\\r\\n border-radius: 50%;\\r\\n animation: APX-dialog-spin 1s linear infinite;\\r\\n}\\r\\n\\r\\n@keyframes APX-dialog-spin {\\r\\n 0% { transform: rotate(0deg); }\\r\\n 100% { transform: rotate(360deg); }\\r\\n}\\r\\n.APX-dialog-button-disabled {\\r\\n opacity: 0.5;\\r\\n cursor: not-allowed !important;\\r\\n background-color: #95a5a6 !important; /* Grayed out color */\\r\\n box-shadow: none !important;\\r\\n transition: all 0.2s ease;\\r\\n transform: none !important;\\r\\n}\\r\\n\\r\\n.APX-dialog-button-disabled:hover {\\r\\n background-color: #95a5a6 !important; /* Keep gray on hover */\\r\\n transform: none !important;\\r\\n}\\r\\n\\r\\n/* Add a subtle strikethrough effect */\\r\\n.APX-dialog-button-disabled::after {\\r\\n content: '';\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 1px;\\r\\n background-color: rgba(0, 0, 0, 0.2);\\r\\n transform: rotate(-5deg);\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/* APX Scrollable Table: scrollable tbody with fixed thead/tfoot and aligned columns (CSS Grid + subgrid) */\r\n\r\n.apx-scrollable-table {\r\n display: grid;\r\n grid-template-columns: repeat(var(--apx-scrollable-cols, 3), minmax(0, 1fr));\r\n grid-template-rows: auto fit-content(var(--apx-scrollable-body-max-height, 200px)) auto;\r\n width: 100%;\r\n}\r\n\r\n/* Table with no tfoot: thead + tbody only */\r\n.apx-scrollable-table:not(.apx-scrollable-table--has-tfoot) {\r\n grid-template-rows: auto fit-content(var(--apx-scrollable-body-max-height, 200px));\r\n}\r\n\r\n/* Table with no thead: tbody + tfoot only */\r\n.apx-scrollable-table.apx-scrollable-table--no-thead {\r\n grid-template-rows: fit-content(var(--apx-scrollable-body-max-height, 200px)) auto;\r\n}\r\n\r\n/* Table with neither thead nor tfoot: tbody only */\r\n.apx-scrollable-table.apx-scrollable-table--no-thead:not(.apx-scrollable-table--has-tfoot) {\r\n grid-template-rows: fit-content(var(--apx-scrollable-body-max-height, 200px));\r\n}\r\n\r\n.apx-scrollable-table > thead,\r\n.apx-scrollable-table > tbody,\r\n.apx-scrollable-table > tfoot {\r\n display: grid;\r\n grid-template-columns: subgrid;\r\n grid-column: 1 / -1;\r\n grid-template-rows: repeat(var(--apx-scrollable-thead-rows, 1), auto);\r\n min-height: 0;\r\n}\r\n\r\n.apx-scrollable-table > thead {\r\n grid-template-rows: repeat(var(--apx-scrollable-thead-rows, 1), auto);\r\n}\r\n\r\n.apx-scrollable-table > tbody {\r\n grid-template-rows: repeat(var(--apx-scrollable-tbody-rows, 1), auto);\r\n overflow: auto;\r\n /* Reserve space for the vertical scrollbar so it doesn't shrink content width and trigger a horizontal scrollbar */\r\n scrollbar-gutter: stable;\r\n}\r\n\r\n.apx-scrollable-table > tfoot {\r\n grid-template-rows: repeat(var(--apx-scrollable-tfoot-rows, 1), auto);\r\n}\r\n\r\n.apx-scrollable-table > thead > tr,\r\n.apx-scrollable-table > tbody > tr,\r\n.apx-scrollable-table > tfoot > tr {\r\n display: contents;\r\n}\r\n\r\n.apx-scrollable-table th,\r\n.apx-scrollable-table td {\r\n /* Grid placement set by JS (grid-row, grid-column) for colspan/rowspan */\r\n min-width: 0;\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./modules/scrollableTable/css/scrollableTable.css\"],\"names\":[],\"mappings\":\"AAAA,2GAA2G;;AAE3G;IACI,aAAa;IACb,4EAA4E;IAC5E,uFAAuF;IACvF,WAAW;AACf;;AAEA,4CAA4C;AAC5C;IACI,kFAAkF;AACtF;;AAEA,4CAA4C;AAC5C;IACI,kFAAkF;AACtF;;AAEA,mDAAmD;AACnD;IACI,6EAA6E;AACjF;;AAEA;;;IAGI,aAAa;IACb,8BAA8B;IAC9B,mBAAmB;IACnB,qEAAqE;IACrE,aAAa;AACjB;;AAEA;IACI,qEAAqE;AACzE;;AAEA;IACI,qEAAqE;IACrE,cAAc;IACd,mHAAmH;IACnH,wBAAwB;AAC5B;;AAEA;IACI,qEAAqE;AACzE;;AAEA;;;IAGI,iBAAiB;AACrB;;AAEA;;IAEI,yEAAyE;IACzE,YAAY;AAChB\",\"sourcesContent\":[\"/* APX Scrollable Table: scrollable tbody with fixed thead/tfoot and aligned columns (CSS Grid + subgrid) */\\r\\n\\r\\n.apx-scrollable-table {\\r\\n display: grid;\\r\\n grid-template-columns: repeat(var(--apx-scrollable-cols, 3), minmax(0, 1fr));\\r\\n grid-template-rows: auto fit-content(var(--apx-scrollable-body-max-height, 200px)) auto;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n/* Table with no tfoot: thead + tbody only */\\r\\n.apx-scrollable-table:not(.apx-scrollable-table--has-tfoot) {\\r\\n grid-template-rows: auto fit-content(var(--apx-scrollable-body-max-height, 200px));\\r\\n}\\r\\n\\r\\n/* Table with no thead: tbody + tfoot only */\\r\\n.apx-scrollable-table.apx-scrollable-table--no-thead {\\r\\n grid-template-rows: fit-content(var(--apx-scrollable-body-max-height, 200px)) auto;\\r\\n}\\r\\n\\r\\n/* Table with neither thead nor tfoot: tbody only */\\r\\n.apx-scrollable-table.apx-scrollable-table--no-thead:not(.apx-scrollable-table--has-tfoot) {\\r\\n grid-template-rows: fit-content(var(--apx-scrollable-body-max-height, 200px));\\r\\n}\\r\\n\\r\\n.apx-scrollable-table > thead,\\r\\n.apx-scrollable-table > tbody,\\r\\n.apx-scrollable-table > tfoot {\\r\\n display: grid;\\r\\n grid-template-columns: subgrid;\\r\\n grid-column: 1 / -1;\\r\\n grid-template-rows: repeat(var(--apx-scrollable-thead-rows, 1), auto);\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.apx-scrollable-table > thead {\\r\\n grid-template-rows: repeat(var(--apx-scrollable-thead-rows, 1), auto);\\r\\n}\\r\\n\\r\\n.apx-scrollable-table > tbody {\\r\\n grid-template-rows: repeat(var(--apx-scrollable-tbody-rows, 1), auto);\\r\\n overflow: auto;\\r\\n /* Reserve space for the vertical scrollbar so it doesn't shrink content width and trigger a horizontal scrollbar */\\r\\n scrollbar-gutter: stable;\\r\\n}\\r\\n\\r\\n.apx-scrollable-table > tfoot {\\r\\n grid-template-rows: repeat(var(--apx-scrollable-tfoot-rows, 1), auto);\\r\\n}\\r\\n\\r\\n.apx-scrollable-table > thead > tr,\\r\\n.apx-scrollable-table > tbody > tr,\\r\\n.apx-scrollable-table > tfoot > tr {\\r\\n display: contents;\\r\\n}\\r\\n\\r\\n.apx-scrollable-table th,\\r\\n.apx-scrollable-table td {\\r\\n /* Grid placement set by JS (grid-row, grid-column) for colspan/rowspan */\\r\\n min-width: 0;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.APX-toast-container {\r\n position: fixed;\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--apx-toast-gap, 8px);\r\n z-index: var(--apx-toast-z-index, 11000);\r\n pointer-events: none;\r\n}\r\n\r\n.APX-toast-container--bottom-right { right: 12px; bottom: 12px; align-items: flex-end; }\r\n.APX-toast-container--bottom-left { left: 12px; bottom: 12px; align-items: flex-start; }\r\n.APX-toast-container--top-right { right: 12px; top: 12px; align-items: flex-end; }\r\n.APX-toast-container--top-left { left: 12px; top: 12px; align-items: flex-start; }\r\n\r\n.APX-toast {\r\n min-width: var(--apx-toast-min-width, 260px);\r\n max-width: var(--apx-toast-max-width, 420px);\r\n font-size: var(--apx-toast-font-size, 14px);\r\n border-radius: var(--apx-toast-radius, 6px);\r\n box-shadow: var(--apx-toast-shadow, 0 6px 24px rgba(0,0,0,0.2));\r\n padding: var(--apx-toast-padding, 10px 42px 10px 14px);\r\n color: #111;\r\n background: #eee;\r\n pointer-events: auto;\r\n position: relative;\r\n transition: opacity 180ms ease, transform 180ms ease;\r\n}\r\n\r\n.APX-toast--info { background: var(--apx-toast-info-bg, #0dcaf0); color: var(--apx-toast-info-fg, #052c65); }\r\n.APX-toast--success { background: var(--apx-toast-success-bg, #198754); color: var(--apx-toast-success-fg, #ffffff); }\r\n.APX-toast--warning { background: var(--apx-toast-warning-bg, #ffc107); color: var(--apx-toast-warning-fg, #664d03); }\r\n.APX-toast--danger { background: var(--apx-toast-danger-bg, #dc3545); color: var(--apx-toast-danger-fg, #ffffff); }\r\n\r\n.APX-toast__content { line-height: 1.35; }\r\n\r\n.APX-toast__close {\r\n position: absolute;\r\n top: 50%; right: 10px;\r\n width: 24px; height: 24px;\r\n transform: translateY(-50%);\r\n display: inline-flex; align-items: center; justify-content: center;\r\n background: transparent; color: currentColor;\r\n border: 0; border-radius: 4px; padding: 0; margin: 0;\r\n cursor: pointer; appearance: none; -webkit-appearance: none;\r\n opacity: .75; transition: opacity 120ms ease;\r\n}\r\n.APX-toast__close:hover { opacity: 1; }\r\n.APX-toast__close:focus { outline: 2px solid rgba(0,0,0,.2); outline-offset: 2px; }\r\n.APX-toast__close::before {\r\n content: '×';\r\n font-size: 16px; line-height: 1; text-align: center;\r\n}\r\n\r\n/* Progress bar (outside content, flush to toast edges) */\r\n.APX-toast__progress {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n height: var(--apx-toast-progress-height, 4px);\r\n display: flex;\r\n flex-direction: row;\r\n align-items: stretch;\r\n flex-shrink: 0;\r\n border-radius: inherit;\r\n overflow: visible;\r\n}\r\n.APX-toast__progress--top {\r\n top: 0;\r\n border-radius: var(--apx-toast-radius, 6px) var(--apx-toast-radius, 6px) 0 0;\r\n}\r\n.APX-toast__progress--bottom {\r\n bottom: 0;\r\n border-radius: 0 0 var(--apx-toast-radius, 6px) var(--apx-toast-radius, 6px);\r\n}\r\n/* Track contains the bar; no margin (pause button is on the corner, overlapping) */\r\n.APX-toast__progress-track {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n}\r\n.APX-toast__progress-bar {\r\n height: 100%;\r\n width: 100%;\r\n max-width: 100%;\r\n transition: width 80ms linear;\r\n background: rgba(0, 0, 0, 0.25);\r\n}\r\n.APX-toast--info .APX-toast__progress-bar { background: rgba(5, 44, 101, 0.5); }\r\n.APX-toast--success .APX-toast__progress-bar { background: rgba(0, 0, 0, 0.25); }\r\n.APX-toast--warning .APX-toast__progress-bar { background: rgba(102, 77, 3, 0.5); }\r\n.APX-toast--danger .APX-toast__progress-bar { background: rgba(0, 0, 0, 0.25); }\r\n/* Pause/Resume button: round, center exactly on toast corner (top-left or bottom-left) */\r\n.APX-toast__progress-pause {\r\n position: absolute;\r\n width: var(--apx-toast-progress-pause-size, 18px);\r\n height: var(--apx-toast-progress-pause-size, 18px);\r\n left: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n background: #eee;\r\n color: currentColor;\r\n border: 1px solid rgba(0, 0, 0, 0.35);\r\n border-radius: 50%;\r\n padding: 0;\r\n margin: 0;\r\n cursor: pointer;\r\n line-height: 1;\r\n opacity: 0.95;\r\n transition: opacity 120ms ease;\r\n flex-shrink: 0;\r\n}\r\n.APX-toast__progress--top .APX-toast__progress-pause {\r\n top: 0;\r\n transform: translate(-50%, -50%);\r\n}\r\n.APX-toast__progress--bottom .APX-toast__progress-pause {\r\n bottom: 0;\r\n transform: translate(-50%, 50%);\r\n}\r\n.APX-toast--info .APX-toast__progress-pause { background: var(--apx-toast-info-bg, #0dcaf0); border-color: rgba(5, 44, 101, 0.55); }\r\n.APX-toast--success .APX-toast__progress-pause { background: var(--apx-toast-success-bg, #198754); border-color: rgba(0, 0, 0, 0.3); }\r\n.APX-toast--warning .APX-toast__progress-pause { background: var(--apx-toast-warning-bg, #ffc107); border-color: rgba(102, 77, 3, 0.6); }\r\n.APX-toast--danger .APX-toast__progress-pause { background: var(--apx-toast-danger-bg, #dc3545); border-color: rgba(0, 0, 0, 0.35); }\r\n.APX-toast__progress-pause:hover { opacity: 1; }\r\n.APX-toast__progress-pause:focus { outline: 2px solid rgba(0,0,0,.4); outline-offset: -2px; }\r\n.APX-toast__progress-pause svg {\r\n width: 10px;\r\n height: 10px;\r\n display: block;\r\n}\r\n/* Extra top/bottom padding when progress bar is present (default content padding 10px + bar height) */\r\n.APX-toast--has-progress-top { padding-top: calc(10px + var(--apx-toast-progress-height, 4px)); }\r\n.APX-toast--has-progress-bottom { padding-bottom: calc(10px + var(--apx-toast-progress-height, 4px)); }\r\n/* Reserve space for stacking when pause button is present (button extends outside toast corner) */\r\n.APX-toast--has-progress-top.APX-toast--has-progress-pause { margin-top: calc(var(--apx-toast-progress-pause-size, 18px) / 2); }\r\n.APX-toast--has-progress-bottom.APX-toast--has-progress-pause { margin-bottom: calc(var(--apx-toast-progress-pause-size, 18px) / 2); }\r\n\r\n/* Animations */\r\n.APX-toast--enter { opacity: 0; transform: translateY(8px); }\r\n.APX-toast--enter.APX-toast--enter-active { opacity: 1; transform: translateY(0); }\r\n.APX-toast--exit { opacity: 1; transform: translateY(0); }\r\n.APX-toast--exit.APX-toast--exit-active { opacity: 0; transform: translateY(8px); }\r\n\r\n\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./modules/toast/css/toast.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,eAAe;IACf,aAAa;IACb,sBAAsB;IACtB,8BAA8B;IAC9B,wCAAwC;IACxC,oBAAoB;AACxB;;AAEA,qCAAqC,WAAW,EAAE,YAAY,EAAE,qBAAqB,EAAE;AACvF,oCAAoC,UAAU,EAAE,YAAY,EAAE,uBAAuB,EAAE;AACvF,kCAAkC,WAAW,EAAE,SAAS,EAAE,qBAAqB,EAAE;AACjF,iCAAiC,UAAU,EAAE,SAAS,EAAE,uBAAuB,EAAE;;AAEjF;IACI,4CAA4C;IAC5C,4CAA4C;IAC5C,2CAA2C;IAC3C,2CAA2C;IAC3C,+DAA+D;IAC/D,sDAAsD;IACtD,WAAW;IACX,gBAAgB;IAChB,oBAAoB;IACpB,kBAAkB;IAClB,oDAAoD;AACxD;;AAEA,mBAAmB,6CAA6C,EAAE,wCAAwC,EAAE;AAC5G,sBAAsB,gDAAgD,EAAE,2CAA2C,EAAE;AACrH,sBAAsB,gDAAgD,EAAE,2CAA2C,EAAE;AACrH,qBAAqB,+CAA+C,EAAE,0CAA0C,EAAE;;AAElH,sBAAsB,iBAAiB,EAAE;;AAEzC;IACI,kBAAkB;IAClB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,YAAY;IACzB,2BAA2B;IAC3B,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB;IAClE,uBAAuB,EAAE,mBAAmB;IAC5C,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS;IACpD,eAAe,EAAE,gBAAgB,EAAE,wBAAwB;IAC3D,YAAY,EAAE,8BAA8B;AAChD;AACA,0BAA0B,UAAU,EAAE;AACtC,0BAA0B,iCAAiC,EAAE,mBAAmB,EAAE;AAClF;IACI,YAAY;IACZ,eAAe,EAAE,cAAc,EAAE,kBAAkB;AACvD;;AAEA,yDAAyD;AACzD;IACI,kBAAkB;IAClB,OAAO;IACP,QAAQ;IACR,6CAA6C;IAC7C,aAAa;IACb,mBAAmB;IACnB,oBAAoB;IACpB,cAAc;IACd,sBAAsB;IACtB,iBAAiB;AACrB;AACA;IACI,MAAM;IACN,4EAA4E;AAChF;AACA;IACI,SAAS;IACT,4EAA4E;AAChF;AACA,mFAAmF;AACnF;IACI,OAAO;IACP,YAAY;IACZ,gBAAgB;AACpB;AACA;IACI,YAAY;IACZ,WAAW;IACX,eAAe;IACf,6BAA6B;IAC7B,+BAA+B;AACnC;AACA,4CAA4C,iCAAiC,EAAE;AAC/E,+CAA+C,+BAA+B,EAAE;AAChF,+CAA+C,iCAAiC,EAAE;AAClF,8CAA8C,+BAA+B,EAAE;AAC/E,yFAAyF;AACzF;IACI,kBAAkB;IAClB,iDAAiD;IACjD,kDAAkD;IAClD,OAAO;IACP,oBAAoB;IACpB,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;IAChB,mBAAmB;IACnB,qCAAqC;IACrC,kBAAkB;IAClB,UAAU;IACV,SAAS;IACT,eAAe;IACf,cAAc;IACd,aAAa;IACb,8BAA8B;IAC9B,cAAc;AAClB;AACA;IACI,MAAM;IACN,gCAAgC;AACpC;AACA;IACI,SAAS;IACT,+BAA+B;AACnC;AACA,8CAA8C,6CAA6C,EAAE,oCAAoC,EAAE;AACnI,iDAAiD,gDAAgD,EAAE,gCAAgC,EAAE;AACrI,iDAAiD,gDAAgD,EAAE,mCAAmC,EAAE;AACxI,gDAAgD,+CAA+C,EAAE,iCAAiC,EAAE;AACpI,mCAAmC,UAAU,EAAE;AAC/C,mCAAmC,iCAAiC,EAAE,oBAAoB,EAAE;AAC5F;IACI,WAAW;IACX,YAAY;IACZ,cAAc;AAClB;AACA,sGAAsG;AACtG,+BAA+B,+DAA+D,EAAE;AAChG,kCAAkC,kEAAkE,EAAE;AACtG,kGAAkG;AAClG,6DAA6D,gEAAgE,EAAE;AAC/H,gEAAgE,mEAAmE,EAAE;;AAErI,eAAe;AACf,oBAAoB,UAAU,EAAE,0BAA0B,EAAE;AAC5D,4CAA4C,UAAU,EAAE,wBAAwB,EAAE;AAClF,mBAAmB,UAAU,EAAE,wBAAwB,EAAE;AACzD,0CAA0C,UAAU,EAAE,0BAA0B,EAAE\",\"sourcesContent\":[\".APX-toast-container {\\r\\n position: fixed;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n gap: var(--apx-toast-gap, 8px);\\r\\n z-index: var(--apx-toast-z-index, 11000);\\r\\n pointer-events: none;\\r\\n}\\r\\n\\r\\n.APX-toast-container--bottom-right { right: 12px; bottom: 12px; align-items: flex-end; }\\r\\n.APX-toast-container--bottom-left { left: 12px; bottom: 12px; align-items: flex-start; }\\r\\n.APX-toast-container--top-right { right: 12px; top: 12px; align-items: flex-end; }\\r\\n.APX-toast-container--top-left { left: 12px; top: 12px; align-items: flex-start; }\\r\\n\\r\\n.APX-toast {\\r\\n min-width: var(--apx-toast-min-width, 260px);\\r\\n max-width: var(--apx-toast-max-width, 420px);\\r\\n font-size: var(--apx-toast-font-size, 14px);\\r\\n border-radius: var(--apx-toast-radius, 6px);\\r\\n box-shadow: var(--apx-toast-shadow, 0 6px 24px rgba(0,0,0,0.2));\\r\\n padding: var(--apx-toast-padding, 10px 42px 10px 14px);\\r\\n color: #111;\\r\\n background: #eee;\\r\\n pointer-events: auto;\\r\\n position: relative;\\r\\n transition: opacity 180ms ease, transform 180ms ease;\\r\\n}\\r\\n\\r\\n.APX-toast--info { background: var(--apx-toast-info-bg, #0dcaf0); color: var(--apx-toast-info-fg, #052c65); }\\r\\n.APX-toast--success { background: var(--apx-toast-success-bg, #198754); color: var(--apx-toast-success-fg, #ffffff); }\\r\\n.APX-toast--warning { background: var(--apx-toast-warning-bg, #ffc107); color: var(--apx-toast-warning-fg, #664d03); }\\r\\n.APX-toast--danger { background: var(--apx-toast-danger-bg, #dc3545); color: var(--apx-toast-danger-fg, #ffffff); }\\r\\n\\r\\n.APX-toast__content { line-height: 1.35; }\\r\\n\\r\\n.APX-toast__close {\\r\\n position: absolute;\\r\\n top: 50%; right: 10px;\\r\\n width: 24px; height: 24px;\\r\\n transform: translateY(-50%);\\r\\n display: inline-flex; align-items: center; justify-content: center;\\r\\n background: transparent; color: currentColor;\\r\\n border: 0; border-radius: 4px; padding: 0; margin: 0;\\r\\n cursor: pointer; appearance: none; -webkit-appearance: none;\\r\\n opacity: .75; transition: opacity 120ms ease;\\r\\n}\\r\\n.APX-toast__close:hover { opacity: 1; }\\r\\n.APX-toast__close:focus { outline: 2px solid rgba(0,0,0,.2); outline-offset: 2px; }\\r\\n.APX-toast__close::before {\\r\\n content: '×';\\r\\n font-size: 16px; line-height: 1; text-align: center;\\r\\n}\\r\\n\\r\\n/* Progress bar (outside content, flush to toast edges) */\\r\\n.APX-toast__progress {\\r\\n position: absolute;\\r\\n left: 0;\\r\\n right: 0;\\r\\n height: var(--apx-toast-progress-height, 4px);\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n align-items: stretch;\\r\\n flex-shrink: 0;\\r\\n border-radius: inherit;\\r\\n overflow: visible;\\r\\n}\\r\\n.APX-toast__progress--top {\\r\\n top: 0;\\r\\n border-radius: var(--apx-toast-radius, 6px) var(--apx-toast-radius, 6px) 0 0;\\r\\n}\\r\\n.APX-toast__progress--bottom {\\r\\n bottom: 0;\\r\\n border-radius: 0 0 var(--apx-toast-radius, 6px) var(--apx-toast-radius, 6px);\\r\\n}\\r\\n/* Track contains the bar; no margin (pause button is on the corner, overlapping) */\\r\\n.APX-toast__progress-track {\\r\\n flex: 1;\\r\\n min-width: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n.APX-toast__progress-bar {\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n max-width: 100%;\\r\\n transition: width 80ms linear;\\r\\n background: rgba(0, 0, 0, 0.25);\\r\\n}\\r\\n.APX-toast--info .APX-toast__progress-bar { background: rgba(5, 44, 101, 0.5); }\\r\\n.APX-toast--success .APX-toast__progress-bar { background: rgba(0, 0, 0, 0.25); }\\r\\n.APX-toast--warning .APX-toast__progress-bar { background: rgba(102, 77, 3, 0.5); }\\r\\n.APX-toast--danger .APX-toast__progress-bar { background: rgba(0, 0, 0, 0.25); }\\r\\n/* Pause/Resume button: round, center exactly on toast corner (top-left or bottom-left) */\\r\\n.APX-toast__progress-pause {\\r\\n position: absolute;\\r\\n width: var(--apx-toast-progress-pause-size, 18px);\\r\\n height: var(--apx-toast-progress-pause-size, 18px);\\r\\n left: 0;\\r\\n display: inline-flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n background: #eee;\\r\\n color: currentColor;\\r\\n border: 1px solid rgba(0, 0, 0, 0.35);\\r\\n border-radius: 50%;\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n cursor: pointer;\\r\\n line-height: 1;\\r\\n opacity: 0.95;\\r\\n transition: opacity 120ms ease;\\r\\n flex-shrink: 0;\\r\\n}\\r\\n.APX-toast__progress--top .APX-toast__progress-pause {\\r\\n top: 0;\\r\\n transform: translate(-50%, -50%);\\r\\n}\\r\\n.APX-toast__progress--bottom .APX-toast__progress-pause {\\r\\n bottom: 0;\\r\\n transform: translate(-50%, 50%);\\r\\n}\\r\\n.APX-toast--info .APX-toast__progress-pause { background: var(--apx-toast-info-bg, #0dcaf0); border-color: rgba(5, 44, 101, 0.55); }\\r\\n.APX-toast--success .APX-toast__progress-pause { background: var(--apx-toast-success-bg, #198754); border-color: rgba(0, 0, 0, 0.3); }\\r\\n.APX-toast--warning .APX-toast__progress-pause { background: var(--apx-toast-warning-bg, #ffc107); border-color: rgba(102, 77, 3, 0.6); }\\r\\n.APX-toast--danger .APX-toast__progress-pause { background: var(--apx-toast-danger-bg, #dc3545); border-color: rgba(0, 0, 0, 0.35); }\\r\\n.APX-toast__progress-pause:hover { opacity: 1; }\\r\\n.APX-toast__progress-pause:focus { outline: 2px solid rgba(0,0,0,.4); outline-offset: -2px; }\\r\\n.APX-toast__progress-pause svg {\\r\\n width: 10px;\\r\\n height: 10px;\\r\\n display: block;\\r\\n}\\r\\n/* Extra top/bottom padding when progress bar is present (default content padding 10px + bar height) */\\r\\n.APX-toast--has-progress-top { padding-top: calc(10px + var(--apx-toast-progress-height, 4px)); }\\r\\n.APX-toast--has-progress-bottom { padding-bottom: calc(10px + var(--apx-toast-progress-height, 4px)); }\\r\\n/* Reserve space for stacking when pause button is present (button extends outside toast corner) */\\r\\n.APX-toast--has-progress-top.APX-toast--has-progress-pause { margin-top: calc(var(--apx-toast-progress-pause-size, 18px) / 2); }\\r\\n.APX-toast--has-progress-bottom.APX-toast--has-progress-pause { margin-bottom: calc(var(--apx-toast-progress-pause-size, 18px) / 2); }\\r\\n\\r\\n/* Animations */\\r\\n.APX-toast--enter { opacity: 0; transform: translateY(8px); }\\r\\n.APX-toast--enter.APX-toast--enter-active { opacity: 1; transform: translateY(0); }\\r\\n.APX-toast--exit { opacity: 1; transform: translateY(0); }\\r\\n.APX-toast--exit.APX-toast--exit-active { opacity: 0; transform: translateY(8px); }\\r\\n\\r\\n\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cmask id=%27frame-cutout%27%3E%3Crect width=%2732%27 height=%2732%27 fill=%27%23fff%27/%3E%3Crect x=%273%27 y=%273%27 width=%2726%27 height=%2726%27 rx=%274%27 ry=%274%27 fill=%27%23000%27/%3E%3C/mask%3E%3Crect width=%2732%27 height=%2732%27 fill=%27%23cccccc%27 mask=%27url%28%23frame-cutout%29%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M8 16h16%27 fill=%27none%27 stroke=%27%23fff%27 stroke-width=%273%27 stroke-linecap=%27round%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M6 17L12 23L26 9%27 fill=%27none%27 stroke=%27%23fff%27 stroke-width=%273%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M8 8L24 24M24 8L8 24%27 fill=%27none%27 stroke=%27%23fff%27 stroke-width=%273%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.apx-tristate {\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n position: relative;\n min-width:13px;\n min-height:13px;\n background-size: contain;\n background-color: transparent;\n border-radius:3px;\n --apx-tristate-tick-color: transparent;\n --apx-tristate-checked-color: #0654ba;\n --apx-tristate-crossed-color: #f00;\n}\n.apx-tristate.unchecked {\n background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n}\n.apx-tristate.unchecked.apx-tristate--unchecked-indeterminate::after {\n content: '';\n position: absolute;\n inset: 0;\n display: block;\n pointer-events: none;\n}\n/* When --mixed is used (e.g. parent + sub-checkboxes), dash shows only when children are mixed */\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash:not(.apx-tristate--mixed)::before,\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash:not(.apx-tristate--mixed)::after {\n display: none;\n}\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash::before {\n content: '';\n position: absolute;\n inset: 0;\n display: block;\n pointer-events: none;\n background-color: var(--apx-tristate-checked-color);\n border-radius: inherit;\n}\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash::after {\n background-color: var(--apx-tristate-tick-color);\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-position: center;\n -webkit-mask-size: 100% 100%;\n -webkit-mask-mode: alpha;\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: 100% 100%;\n mask-mode: alpha;\n -webkit-mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\n mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\n}\n.apx-tristate.unchecked.apx-tristate--indeterminate-filled-check::after {\n background-color: var(--apx-tristate-checked-color);\n border-radius: inherit;\n}\n.apx-tristate.checked {\n background-image: none;\n background-color: var(--apx-tristate-checked-color);\n}\n.apx-tristate.crossed {\n background-image: none;\n background-color: var(--apx-tristate-crossed-color);\n}\n\n.apx-tristate.checked::after,\n.apx-tristate.crossed::after {\n content: '';\n position: absolute;\n inset: 0;\n display: block;\n background-color: var(--apx-tristate-tick-color);\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-position: center;\n -webkit-mask-size: 100% 100%;\n -webkit-mask-mode: alpha;\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: 100% 100%;\n mask-mode: alpha;\n pointer-events: none;\n}\n\n.apx-tristate.checked::after {\n -webkit-mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___});\n mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___});\n}\n\n.apx-tristate.crossed::after {\n -webkit-mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_3___});\n mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_3___});\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./modules/tristate/css/tristate.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,qBAAqB;IACrB,sBAAsB;IACtB,kBAAkB;IAClB,eAAe;IACf,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,wBAAwB;IACxB,6BAA6B;IAC7B,iBAAiB;IACjB,sCAAsC;IACtC,qCAAqC;IACrC,kCAAkC;AACtC;AACA;IACI,yDAA6X;AACjY;AACA;IACI,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,cAAc;IACd,oBAAoB;AACxB;AACA,iGAAiG;AACjG;;IAEI,aAAa;AACjB;AACA;IACI,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,cAAc;IACd,oBAAoB;IACpB,mDAAmD;IACnD,sBAAsB;AAC1B;AACA;IACI,gDAAgD;IAChD,8BAA8B;IAC9B,6BAA6B;IAC7B,4BAA4B;IAC5B,wBAAwB;IACxB,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,gBAAgB;IAChB,2DAA2O;IAC3O,mDAAmO;AACvO;AACA;IACI,mDAAmD;IACnD,sBAAsB;AAC1B;AACA;IACI,sBAAsB;IACtB,mDAAmD;AACvD;AACA;IACI,sBAAsB;IACtB,mDAAmD;AACvD;;AAEA;;IAEI,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,cAAc;IACd,gDAAgD;IAChD,8BAA8B;IAC9B,6BAA6B;IAC7B,4BAA4B;IAC5B,wBAAwB;IACxB,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,gBAAgB;IAChB,oBAAoB;AACxB;;AAEA;IACI,2DAA2Q;IAC3Q,mDAAmQ;AACvQ;;AAEA;IACI,2DAA+Q;IAC/Q,mDAAuQ;AAC3Q\",\"sourcesContent\":[\".apx-tristate {\\n display: inline-block;\\n vertical-align: middle;\\n text-align: center;\\n cursor: pointer;\\n position: relative;\\n min-width:13px;\\n min-height:13px;\\n background-size: contain;\\n background-color: transparent;\\n border-radius:3px;\\n --apx-tristate-tick-color: transparent;\\n --apx-tristate-checked-color: #0654ba;\\n --apx-tristate-crossed-color: #f00;\\n}\\n.apx-tristate.unchecked {\\n background-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cmask id='frame-cutout'%3E%3Crect width='32' height='32' fill='%23fff'/%3E%3Crect x='3' y='3' width='26' height='26' rx='4' ry='4' fill='%23000'/%3E%3C/mask%3E%3Crect width='32' height='32' fill='%23cccccc' mask='url(%23frame-cutout)'/%3E%3C/svg%3E\\\");\\n}\\n.apx-tristate.unchecked.apx-tristate--unchecked-indeterminate::after {\\n content: '';\\n position: absolute;\\n inset: 0;\\n display: block;\\n pointer-events: none;\\n}\\n/* When --mixed is used (e.g. parent + sub-checkboxes), dash shows only when children are mixed */\\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash:not(.apx-tristate--mixed)::before,\\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash:not(.apx-tristate--mixed)::after {\\n display: none;\\n}\\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash::before {\\n content: '';\\n position: absolute;\\n inset: 0;\\n display: block;\\n pointer-events: none;\\n background-color: var(--apx-tristate-checked-color);\\n border-radius: inherit;\\n}\\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash::after {\\n background-color: var(--apx-tristate-tick-color);\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-position: center;\\n -webkit-mask-size: 100% 100%;\\n -webkit-mask-mode: alpha;\\n mask-repeat: no-repeat;\\n mask-position: center;\\n mask-size: 100% 100%;\\n mask-mode: alpha;\\n -webkit-mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M8 16h16' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E\\\");\\n mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M8 16h16' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E\\\");\\n}\\n.apx-tristate.unchecked.apx-tristate--indeterminate-filled-check::after {\\n background-color: var(--apx-tristate-checked-color);\\n border-radius: inherit;\\n}\\n.apx-tristate.checked {\\n background-image: none;\\n background-color: var(--apx-tristate-checked-color);\\n}\\n.apx-tristate.crossed {\\n background-image: none;\\n background-color: var(--apx-tristate-crossed-color);\\n}\\n\\n.apx-tristate.checked::after,\\n.apx-tristate.crossed::after {\\n content: '';\\n position: absolute;\\n inset: 0;\\n display: block;\\n background-color: var(--apx-tristate-tick-color);\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-position: center;\\n -webkit-mask-size: 100% 100%;\\n -webkit-mask-mode: alpha;\\n mask-repeat: no-repeat;\\n mask-position: center;\\n mask-size: 100% 100%;\\n mask-mode: alpha;\\n pointer-events: none;\\n}\\n\\n.apx-tristate.checked::after {\\n -webkit-mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M6 17L12 23L26 9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\\\");\\n mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M6 17L12 23L26 9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\\\");\\n}\\n\\n.apx-tristate.crossed::after {\\n -webkit-mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M8 8L24 24M24 8L8 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\\\");\\n mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M8 8L24 24M24 8L8 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\\\");\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","// Module\nvar code = \"<div class=\\\"APX-dialog\\\">\\r\\n <div class=\\\"APX-dialog-content\\\">\\r\\n <span class=\\\"APX-close-dialog\\\">×</span>\\r\\n <h2 class=\\\"APX-dialog-title\\\"></h2>\\r\\n <div class=\\\"APX-dialog-dynamic-content\\\"></div>\\r\\n <div class=\\\"APX-dialog-button-container\\\"></div>\\r\\n </div>\\r\\n</div>\";\n// Exports\nmodule.exports = code;","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./dialog.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./dialog.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./scrollableTable.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./scrollableTable.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./toast.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./toast.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./tristate.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./tristate.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","// Function to load the CSS from a given URL\r\nfunction loadCss(url) {\r\n return fetch(url)\r\n .then(response => response.text())\r\n .then(css => {\r\n const styleSheet = document.createElement(\"style\");\r\n styleSheet.type = \"text/css\";\r\n styleSheet.textContent = css; // Use textContent instead of innerText\r\n document.head.appendChild(styleSheet);\r\n })\r\n .catch(error => {\r\n console.error(\"Failed to load CSS:\", error);\r\n });\r\n}\r\n\r\nexport {\r\n loadCss\r\n}","// Importing the CSS and HTML templates\r\nimport './css/dialog.css';\r\nimport dialogTemplate from './html/dialog.html?raw';\r\n\r\nconst createDialog = (options) => {\r\n const dialogDefaults = {\r\n title: '',\r\n content: '',\r\n contentURI: '',\r\n buttons: [],\r\n size: 'medium',\r\n showLoadingIndicator: false,\r\n contentMethod: 'GET',\r\n contentData: null,\r\n contentHeaders: undefined\r\n };\r\n\r\n const { title, content, contentURI, buttons, size, showLoadingIndicator, contentMethod, contentData, contentHeaders } = { ...dialogDefaults, ...options };\r\n\r\n const wrapper = document.createElement('div');\r\n wrapper.innerHTML = dialogTemplate.trim();\r\n const dialogElement = wrapper.firstChild;\r\n\r\n // Lifecycle event management\r\n const lifecycleResolvers = {};\r\n const lifecycleEvents = {};\r\n\r\n // Define lifecycle promises as properties\r\n ['opening', 'opened', 'closing', 'closed', 'contentLoading', 'contentLoaded'].forEach((event) => {\r\n lifecycleEvents[event] = new Promise((resolve) => {\r\n lifecycleResolvers[event] = resolve;\r\n });\r\n });\r\n\r\n const triggerEvent = (event) => {\r\n if (lifecycleResolvers[event]) {\r\n lifecycleResolvers[event]();\r\n } else {\r\n console.warn(`No resolver found for lifecycle event: ${event}`);\r\n }\r\n };\r\n\r\n const dialog = {\r\n element: dialogElement,\r\n buttons: {},\r\n isClosed: false,\r\n lifecycle: lifecycleEvents, // Lifecycle promises directly exposed here\r\n disableButton: (key) => {\r\n const button = dialogElement.querySelector(`.APX-dialog-button[data-key=\"${key}\"]`);\r\n if (button) {\r\n button.disabled = true;\r\n button.classList.add('APX-dialog-button-disabled');\r\n }\r\n },\r\n enableButton: (key) => {\r\n const button = dialogElement.querySelector(`.APX-dialog-button[data-key=\"${key}\"]`);\r\n if (button) {\r\n button.disabled = false;\r\n button.classList.remove('APX-dialog-button-disabled');\r\n }\r\n },\r\n open: async () => {\r\n try {\r\n triggerEvent('opening');\r\n await dialog.lifecycle.opening;\r\n\r\n // If loading indicator is enabled and we're fetching content, show dialog first\r\n if (showLoadingIndicator && contentURI) {\r\n // Append dialog to the DOM and display it first\r\n document.body.appendChild(dialogElement);\r\n dialogElement.style.display = \"flex\";\r\n \r\n // Show loading indicator\r\n dialogElement.querySelector(\".APX-dialog-dynamic-content\").innerHTML = '<div class=\"APX-dialog-loading-indicator\"></div>';\r\n \r\n // Load content after dialog is visible\r\n await fetchAndInsertContent();\r\n } else {\r\n // Default behavior: load content first, then show dialog\r\n await fetchAndInsertContent();\r\n \r\n // Append dialog to the DOM and display it\r\n document.body.appendChild(dialogElement);\r\n dialogElement.style.display = \"flex\";\r\n }\r\n\r\n triggerEvent('opened');\r\n await dialog.lifecycle.opened;\r\n } catch (error) {\r\n console.error('Error opening dialog:', error);\r\n }\r\n return dialog; // Return for daisy-chaining\r\n },\r\n close: async () => {\r\n try {\r\n triggerEvent('closing');\r\n await dialog.lifecycle.closing;\r\n\r\n // Cleanup and remove dialog\r\n closeDialogAndCleanup();\r\n\r\n triggerEvent('closed');\r\n await dialog.lifecycle.closed;\r\n } catch (error) {\r\n console.error('Error during dialog closing:', error);\r\n }\r\n return dialog; // Return for daisy-chaining\r\n }\r\n };\r\n\r\n const closeDialogAndCleanup = () => {\r\n if (dialog.isClosed) return;\r\n\r\n dialog.isClosed = true;\r\n dialogElement.style.display = \"none\";\r\n if (document.body.contains(dialogElement)) {\r\n document.body.removeChild(dialogElement);\r\n }\r\n };\r\n\r\n const setDialogSize = () => {\r\n const dialogContent = dialogElement.querySelector(\".APX-dialog-content\");\r\n const sizes = {\r\n small: { width: '300px', height: '200px' },\r\n medium: { width: '500px', height: '400px' },\r\n large: { width: '800px', height: '600px' }\r\n };\r\n\r\n if (size === 'auto') return;\r\n\r\n const selectedSize = sizes[size] || (typeof size === 'object' && size);\r\n if (selectedSize) {\r\n dialogContent.style.minWidth = selectedSize.width || '500px';\r\n dialogContent.style.minHeight = selectedSize.height || '400px';\r\n }\r\n };\r\n\r\n const addButtons = () => {\r\n const buttonContainer = dialogElement.querySelector(\".APX-dialog-button-container\");\r\n\r\n buttons.forEach(({ key, label, order = 0, align = 'flex-end', closeOnClick = true }) => {\r\n const button = document.createElement('button');\r\n button.classList.add('APX-dialog-button');\r\n button.textContent = label;\r\n button.style.order = order;\r\n button.setAttribute('data-key', key);\r\n\r\n // Create button context with disable/enable methods\r\n const buttonContext = {\r\n disable: () => {\r\n button.disabled = true;\r\n button.classList.add('APX-dialog-button-disabled');\r\n },\r\n enable: () => {\r\n button.disabled = false;\r\n button.classList.remove('APX-dialog-button-disabled');\r\n },\r\n key,\r\n element: button\r\n };\r\n\r\n if (closeOnClick) {\r\n // Handle as a one-time Promise\r\n let firstClickResolved = false;\r\n\r\n const firstClickPromise = new Promise((resolve) => {\r\n button.onclick = () => {\r\n if (!firstClickResolved && !button.disabled) {\r\n firstClickResolved = true;\r\n resolve({ dialog, button: buttonContext }); // Pass both dialog and button context\r\n dialog.close(); // Close the dialog\r\n }\r\n };\r\n });\r\n\r\n // Assign the promise for chaining with `.then`\r\n dialog.buttons[key] = firstClickPromise;\r\n } else {\r\n // Handle as a repeated event handler\r\n let handlers = []; // Store handlers for `.then()`\r\n\r\n const clickPromise = {\r\n then: (callback) => {\r\n if (typeof callback === 'function') {\r\n handlers.push(callback); // Add to handlers\r\n }\r\n return clickPromise; // Allow chaining\r\n },\r\n };\r\n\r\n button.onclick = () => {\r\n if (!button.disabled) {\r\n handlers.forEach((handler) => handler({ dialog, button: buttonContext })); // Pass both dialog and button context\r\n }\r\n };\r\n\r\n dialog.buttons[key] = clickPromise; // Assign the \"fake\" promise\r\n }\r\n\r\n buttonContainer.appendChild(button);\r\n buttonContainer.style.justifyContent = align;\r\n });\r\n };\r\n\r\n const fetchAndInsertContent = async () => {\r\n const originalCursor = document.body.style.cursor;\r\n document.body.style.cursor = 'wait';\r\n const dynamicContent = dialogElement.querySelector(\".APX-dialog-dynamic-content\");\r\n \r\n try {\r\n triggerEvent('contentLoading');\r\n await dialog.lifecycle.contentLoading;\r\n\r\n const contentHtml = contentURI\r\n ? await fetchContent(contentURI)\r\n : content;\r\n\r\n dynamicContent.innerHTML = contentHtml;\r\n\r\n triggerEvent('contentLoaded');\r\n await dialog.lifecycle.contentLoaded;\r\n } catch (error) {\r\n console.error('Error loading content:', error);\r\n } finally {\r\n document.body.style.cursor = originalCursor;\r\n }\r\n };\r\n\r\n const fetchContent = async (uri) => {\r\n const method = (contentMethod || 'GET').toUpperCase();\r\n\r\n // Always allow custom headers; we only add Content-Type when we can infer it\r\n const headers = { ...(contentHeaders || {}) };\r\n const hasContentType = Object.keys(headers).some((k) => k.toLowerCase() === 'content-type');\r\n\r\n /**\r\n * Build RequestInit depending on method and contentData type.\r\n * We avoid setting Content-Type for FormData and raw string/Blob payloads,\r\n * unless the caller explicitly provided it via contentHeaders.\r\n */\r\n const init = { method };\r\n\r\n if (method === 'POST') {\r\n let body = undefined;\r\n\r\n const isFormData = typeof FormData !== 'undefined' && contentData instanceof FormData;\r\n const isURLSearchParams = typeof URLSearchParams !== 'undefined' && contentData instanceof URLSearchParams;\r\n const isBlob = typeof Blob !== 'undefined' && contentData instanceof Blob;\r\n const isString = typeof contentData === 'string';\r\n const isPlainObject = contentData && typeof contentData === 'object' && !isFormData && !isURLSearchParams && !isBlob;\r\n\r\n if (isFormData) {\r\n body = contentData;\r\n // Do not set Content-Type for FormData; browser will set the boundary\r\n } else if (isURLSearchParams) {\r\n body = contentData;\r\n if (!hasContentType) headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';\r\n } else if (isPlainObject) {\r\n body = JSON.stringify(contentData);\r\n if (!hasContentType) headers['Content-Type'] = 'application/json';\r\n } else if (isString || isBlob) {\r\n body = contentData;\r\n // Content-Type left to caller if needed\r\n } else if (contentData != null) {\r\n // Fallback: try send as-is\r\n body = contentData;\r\n }\r\n\r\n if (body !== undefined) {\r\n init.body = body;\r\n }\r\n }\r\n\r\n if (Object.keys(headers).length > 0) {\r\n init.headers = headers;\r\n }\r\n\r\n const response = await fetch(uri, init);\r\n if (!response.ok) throw new Error(`Failed to fetch content: ${response.statusText}`);\r\n return response.text();\r\n };\r\n\r\n // Initialize dialog\r\n setDialogSize();\r\n addButtons();\r\n\r\n // Set title and close button handler\r\n dialogElement.querySelector(\".APX-dialog-title\").textContent = title;\r\n dialogElement.querySelector('.APX-close-dialog').onclick = dialog.close;\r\n\r\n return dialog;\r\n};\r\n\r\nexport default createDialog;\r\n","let counter = 0;\r\nconst doCallbacks = {};\r\nconst timeouts = {};\r\n\r\n/**\r\n * This function adds an event listener to the elements and returns an object with a do method to add callback functions.\r\n * @param {Object} apx - The apx object to augment with the listen function.\r\n * @returns {Object} - The augmented apx object.\r\n */\r\nexport default function (apx) {\r\n let elements = apx.elements;\r\n\r\n /**\r\n * Adds an event listener to the elements and returns an object with a do method to add callback functions.\r\n * @param {string} eventType - The type of event to listen for (e.g. 'click', 'keydown', etc.).\r\n * @param {string} [selector] - The CSS selector to use for event delegation (optional).\r\n * @returns {Object} - An object with a do method to add callback functions.\r\n * @example\r\n * apx.listen('click', '.my-button').do((event) => {\r\n * console.log('Button clicked!', event.target);\r\n * });\r\n */\r\n apx.listen = function (eventTypes, secondArgument, thirdArgument) {\r\n let selector;\r\n let options = {};\r\n // Determine if the second argument is a selector or options\r\n if (typeof secondArgument === 'string') {\r\n selector = secondArgument;\r\n options = thirdArgument || {};\r\n } else {\r\n options = secondArgument || {};\r\n }\r\n\r\n const uniqueId = generateUniqueId();\r\n const timeoutDuration = options.timeout || 0;\r\n \r\n if (!Array.isArray(eventTypes)) {\r\n eventTypes = [eventTypes]; // Ensure eventTypes is an array\r\n }\r\n \r\n eventTypes.forEach((eventType) => {\r\n elements.forEach((element) => {\r\n element.addEventListener(eventType, (event) => {\r\n executeCallbacks(event, uniqueId, timeoutDuration, selector, element);\r\n });\r\n });\r\n });\r\n\r\n return {\r\n /**\r\n * Adds a callback function to the doCallbacks object for the current event listener.\r\n * @param {Function} doCallback - The callback function to execute when the event is triggered.\r\n * @returns {Object} - Returns the current object to allow for chained calls.\r\n * @example\r\n * apx.listen('click', '.my-button').do((event) => {\r\n * console.log('Button clicked!', event.target);\r\n * }).do((event) => {\r\n * console.log('Another callback function!');\r\n * });\r\n */\r\n do: function (doCallback) {\r\n if (!doCallbacks[uniqueId]) {\r\n doCallbacks[uniqueId] = [];\r\n }\r\n doCallbacks[uniqueId].push(doCallback);\r\n return this; // Return the object to allow for chained calls\r\n },\r\n };\r\n };\r\n\r\n /**\r\n * Manually triggers the registered callbacks for a given event type on all elements or creates a new event if a string is provided.\r\n * @param {string|Event} event - The event to trigger. This can be an event type string (like 'click') or an actual Event object.\r\n */\r\n apx.trigger = function (event) {\r\n let eventType;\r\n if (typeof event === 'string') {\r\n eventType = event;\r\n event = new Event(event, { bubbles: true, cancelable: true });\r\n } else if (event instanceof Event) {\r\n eventType = event.type;\r\n } else {\r\n console.error('Invalid event type provided to apx.trigger. It must be either a string or Event object.');\r\n return;\r\n }\r\n\r\n apx.elements.forEach((element) => {\r\n element.dispatchEvent(event); // This will allow the event to bubble up naturally.\r\n });\r\n\r\n // Handle event delegation manually by executing callbacks if the target matches the selector\r\n Object.keys(doCallbacks).forEach((uniqueId) => {\r\n const callbackDetails = doCallbacks[uniqueId];\r\n if (callbackDetails && callbackDetails.eventType === eventType) {\r\n // Check if the event target matches the selector used during listener registration\r\n const { selector } = callbackDetails;\r\n if (!selector || event.target.matches(selector)) {\r\n executeCallbacks(event, uniqueId, 0, selector, event.target); // Immediate execution, no timeout\r\n }\r\n }\r\n });\r\n };\r\n \r\n return apx;\r\n};\r\n\r\n\r\nfunction executeCallbacks(event, uniqueId, timeoutDuration, selector = '', element) {\r\n const matchedElement = selector ? closest(event.target, selector) : element;\r\n if (!matchedElement) {\r\n return;\r\n }\r\n\r\n // Clear any previous timeout for this uniqueId to prevent unintended behavior\r\n clearTimeout(timeouts[uniqueId]);\r\n\r\n // Function to handle the execution of callbacks\r\n function handleCallbackExecution() {\r\n if (doCallbacks[uniqueId]) {\r\n doCallbacks[uniqueId].reduce((prevPromise, doCallback) => {\r\n return prevPromise.then(() => {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n const result = doCallback.bind(matchedElement)(event);\r\n if (result instanceof Promise) {\r\n result.then(resolve).catch(reject);\r\n } else {\r\n resolve(result);\r\n }\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n });\r\n }, Promise.resolve()).catch(() => {});\r\n }\r\n }\r\n\r\n // Check if timeoutDuration is zero to decide whether to delay the callback execution or not\r\n if (timeoutDuration === 0) {\r\n handleCallbackExecution();\r\n } else {\r\n timeouts[uniqueId] = setTimeout(handleCallbackExecution, timeoutDuration);\r\n }\r\n}\r\n\r\n\r\nfunction generateUniqueId() {\r\n const randomPart = Math.random().toString(36).substr(2, 9); // More randomness\r\n const uniqueId = `${Date.now()}_${randomPart}_${counter}`;\r\n counter = (counter + 1) % 1000; // Reset counter to avoid overflow\r\n\r\n return uniqueId;\r\n}\r\n\r\nfunction closest(element, selector) {\r\n while (element && element.nodeType === 1) {\r\n if (element.matches(selector)) {\r\n return element;\r\n }\r\n element = element.parentNode;\r\n }\r\n return null;\r\n}\r\n","import './css/scrollableTable.css';\r\n\r\nconst DATA_KEY = '_apxScrollableTable';\r\nconst CLASS_TABLE = 'apx-scrollable-table';\r\n\r\nconst DEFAULT_MAX_HEIGHT = '200px';\r\n\r\n/**\r\n * Get number of columns from the first row that has cells (sum of colspan).\r\n * @param {HTMLTableSectionElement} section - thead, tbody, or tfoot\r\n * @returns {number}\r\n */\r\nfunction getColumnCountFromSection(section) {\r\n const firstRow = section?.querySelector(':scope > tr');\r\n if (!firstRow) return 0;\r\n let cols = 0;\r\n firstRow.querySelectorAll(':scope > th, :scope > td').forEach((cell) => {\r\n cols += parseInt(cell.getAttribute('colspan'), 10) || 1;\r\n });\r\n return cols;\r\n}\r\n\r\n/**\r\n * Get total column count for the table (from thead or tbody first row).\r\n * @param {HTMLTableElement} table\r\n * @returns {number}\r\n */\r\nfunction getTableColumnCount(table) {\r\n const thead = table.querySelector('thead');\r\n const tbody = table.querySelector('tbody');\r\n const countFromThead = thead ? getColumnCountFromSection(thead) : 0;\r\n const countFromTbody = tbody ? getColumnCountFromSection(tbody) : 0;\r\n return countFromThead || countFromTbody || 1;\r\n}\r\n\r\n/**\r\n * Count direct tr children in a section.\r\n * @param {HTMLTableSectionElement} section\r\n * @returns {number}\r\n */\r\nfunction getRowCount(section) {\r\n if (!section) return 0;\r\n return section.querySelectorAll(':scope > tr').length;\r\n}\r\n\r\n/**\r\n * Build a 2D grid of occupied slots for a section (for rowspan/colspan placement).\r\n * Place each cell in DOM order; return a list of { cell, row, col, colspan, rowspan }.\r\n * @param {HTMLTableSectionElement} section\r\n * @param {number} numRows\r\n * @param {number} numCols\r\n * @returns {{ cell: HTMLTableCellElement, row: number, col: number, colspan: number, rowspan: number }[]}\r\n */\r\nfunction computeCellPlacements(section, numRows, numCols) {\r\n if (!section || numRows === 0 || numCols === 0) return [];\r\n const occupied = Array.from({ length: numRows }, () => Array(numCols).fill(false));\r\n const placements = [];\r\n const rows = section.querySelectorAll(':scope > tr');\r\n\r\n for (let r = 0; r < rows.length; r++) {\r\n const tr = rows[r];\r\n const cells = tr.querySelectorAll(':scope > th, :scope > td');\r\n for (const cell of cells) {\r\n const colspan = Math.min(parseInt(cell.getAttribute('colspan'), 10) || 1, numCols);\r\n const rowspan = Math.min(parseInt(cell.getAttribute('rowspan'), 10) || 1, numRows - r);\r\n let col = 0;\r\n while (col < numCols) {\r\n let free = true;\r\n for (let rr = r; rr < r + rowspan && free; rr++) {\r\n for (let cc = col; cc < col + colspan && free; cc++) {\r\n if (occupied[rr]?.[cc]) free = false;\r\n }\r\n }\r\n if (free) break;\r\n col++;\r\n }\r\n if (col + colspan > numCols) continue;\r\n for (let rr = r; rr < r + rowspan; rr++) {\r\n for (let cc = col; cc < col + colspan; cc++) {\r\n if (occupied[rr]) occupied[rr][cc] = true;\r\n }\r\n }\r\n placements.push({ cell, row: r, col, colspan, rowspan });\r\n }\r\n }\r\n return placements;\r\n}\r\n\r\n/**\r\n * Apply grid placement styles to a list of placements (1-based line numbers for CSS Grid).\r\n */\r\nfunction applyPlacements(placements) {\r\n placements.forEach(({ cell, row, col, colspan, rowspan }) => {\r\n cell.style.gridRow = `${row + 1} / span ${rowspan}`;\r\n cell.style.gridColumn = `${col + 1} / span ${colspan}`;\r\n });\r\n}\r\n\r\n/**\r\n * Clear grid placement styles from all th/td in a table (for refresh).\r\n * @param {HTMLTableElement} table\r\n */\r\nfunction clearPlacements(table) {\r\n table.querySelectorAll('th, td').forEach((cell) => {\r\n cell.style.gridRow = '';\r\n cell.style.gridColumn = '';\r\n });\r\n}\r\n\r\n/**\r\n * Normalize maxHeight option to a CSS length string.\r\n * @param {number|string} value\r\n * @returns {string}\r\n */\r\nfunction normalizeMaxHeight(value) {\r\n if (value == null) return DEFAULT_MAX_HEIGHT;\r\n if (typeof value === 'number') return `${value}px`;\r\n return String(value);\r\n}\r\n\r\n/**\r\n * Apply scrollable table layout to a single table.\r\n * @param {HTMLTableElement} table\r\n * @param {{ maxHeight?: number|string }} options\r\n */\r\nfunction applyScrollableTable(table, options) {\r\n const thead = table.querySelector('thead');\r\n const tbody = table.querySelector('tbody');\r\n const tfoot = table.querySelector('tfoot');\r\n\r\n const numCols = getTableColumnCount(table);\r\n if (numCols === 0) return;\r\n\r\n const theadRows = getRowCount(thead);\r\n const tbodyRows = getRowCount(tbody);\r\n const tfootRows = getRowCount(tfoot);\r\n\r\n table.style.setProperty('--apx-scrollable-cols', String(numCols));\r\n table.style.setProperty('--apx-scrollable-thead-rows', String(Math.max(1, theadRows)));\r\n table.style.setProperty('--apx-scrollable-tbody-rows', String(Math.max(1, tbodyRows)));\r\n table.style.setProperty('--apx-scrollable-tfoot-rows', String(Math.max(1, tfootRows)));\r\n table.style.setProperty('--apx-scrollable-body-max-height', normalizeMaxHeight(options.maxHeight));\r\n\r\n table.classList.add(CLASS_TABLE);\r\n table.classList.toggle('apx-scrollable-table--has-tfoot', !!(tfoot && tfootRows > 0));\r\n table.classList.toggle('apx-scrollable-table--no-thead', !(thead && theadRows > 0));\r\n\r\n clearPlacements(table);\r\n\r\n const sections = [\r\n { section: thead, rows: Math.max(1, theadRows) },\r\n { section: tbody, rows: Math.max(1, tbodyRows) },\r\n { section: tfoot, rows: Math.max(1, tfootRows) }\r\n ];\r\n sections.forEach(({ section, rows }) => {\r\n if (!section) return;\r\n const placements = computeCellPlacements(section, rows, numCols);\r\n applyPlacements(placements);\r\n });\r\n}\r\n\r\n/**\r\n * Augments the APX object with scrollableTable(options | 'refresh').\r\n * Makes the tbody of a table scrollable while keeping thead/tfoot fixed and columns aligned (CSS Grid + subgrid).\r\n *\r\n * @param {Object} apx - The APX object to augment.\r\n * @example\r\n * APX('table.data-grid').scrollableTable({ maxHeight: 300 });\r\n * APX('table.data-grid').scrollableTable('refresh');\r\n */\r\nexport default function augmentWithScrollableTable(apx) {\r\n apx.scrollableTable = function (optionsOrAction) {\r\n const isRefresh = optionsOrAction === 'refresh';\r\n const options = isRefresh ? null : (optionsOrAction && typeof optionsOrAction === 'object' ? optionsOrAction : {});\r\n\r\n apx.elements.forEach((element) => {\r\n if (element.tagName !== 'TABLE') return;\r\n const table = /** @type {HTMLTableElement} */ (element);\r\n\r\n const ref = table[DATA_KEY];\r\n if (ref) {\r\n if (isRefresh) {\r\n applyScrollableTable(table, ref.options);\r\n } else if (options && Object.keys(options).length > 0) {\r\n ref.options = { ...ref.options, ...options };\r\n applyScrollableTable(table, ref.options);\r\n }\r\n return;\r\n }\r\n if (isRefresh) return;\r\n\r\n applyScrollableTable(table, options);\r\n table[DATA_KEY] = { options: { ...options } };\r\n });\r\n\r\n return apx;\r\n };\r\n}\r\n","// Minimal, framework-agnostic ToastManager for APX\r\n// ESM-first, no side effects on import. DOM only when used.\r\nimport './css/toast.css';\r\n\r\n/**\r\n * @typedef {Object} PositionObject\r\n * @property {'sticky'|'relative'|'anchored'} [type]\r\n * @property {string} [x]\r\n * @property {string} [y]\r\n * @property {HTMLElement} [element]\r\n * @property {'top'|'right'|'bottom'|'left'|'above'|'below'|'before'|'after'} [placement]\r\n * @property {string} [gap]\r\n * @property {boolean} [useNativeCSS]\r\n */\r\n\r\n/**\r\n * @typedef {string|PositionObject} Position\r\n */\r\n\r\n/**\r\n * @typedef {Object} ToastConfig\r\n * @property {Position} [position]\r\n * @property {'up'|'down'|'auto'} [flow] Flow direction for stacking toasts. 'auto' determines based on position. Default: 'auto'\r\n * @property {number} [maxToasts]\r\n * @property {number} [defaultDurationMs]\r\n * @property {number} [zIndex]\r\n * @property {'polite'|'assertive'|'off'} [ariaLive]\r\n * @property {number} [gap]\r\n * @property {boolean} [dedupe]\r\n * @property {string} [containerClass]\r\n * @property {number} [offset]\r\n * @property {string} [id]\r\n * @property {boolean|{enable: boolean, position: 'top'|'bottom'}} [progress] Default: false. Show progress bar when true or { enable: true, position: 'top'|'bottom' }.\r\n */\r\n\r\n/**\r\n * @typedef {{enable: boolean, position: 'top'|'bottom', pauseButton: boolean}} ProgressOpt\r\n */\r\n\r\n/**\r\n * @typedef {Object} ToastOptions\r\n * @property {string|Node} message\r\n * @property {'info'|'success'|'warning'|'danger'} [type]\r\n * @property {number} [durationMs]\r\n * @property {boolean} [dismissible]\r\n * @property {string} [id]\r\n * @property {(ref: ToastRef, ev: MouseEvent) => void} [onClick]\r\n * @property {(ref: ToastRef, reason: 'timeout'|'close'|'api'|'overflow') => void} [onClose]\r\n * @property {string} [className]\r\n * @property {Position} [position]\r\n * @property {'up'|'down'|'auto'} [flow] Flow direction for stacking toasts. 'auto' determines based on position. Default: 'auto'\r\n * @property {boolean|{enable: boolean, position: 'top'|'bottom', pauseButton?: boolean}} [progress] Show progress bar: true = top, or { enable, position, pauseButton } (pauseButton default false).\r\n */\r\n\r\n/**\r\n * @typedef {Object} ToastRef\r\n * @property {string} id\r\n * @property {HTMLElement} el\r\n * @property {(reason?: 'api'|'close') => void} close\r\n * @property {(partial: Partial<ToastOptions>) => void} update\r\n * @property {() => Promise<void>} whenClosed\r\n * @property {(event: 'close'|'click', handler: Function) => () => void} on\r\n * @property {(event: 'close'|'click', handler: Function) => void} off\r\n */\r\n\r\nconst isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\r\n\r\n// Shared container cache: Map<position, HTMLElement>\r\n// Containers are shared between managers with the same position\r\nconst _containerCache = new Map();\r\n\r\n// Garbage collection: cleanup empty unmanaged containers after a delay\r\nconst GC_DELAY_MS = 20000; // 20 seconds\r\nlet _gcTimeoutId = null;\r\n\r\n// Wrapper for all toast containers (keeps DOM clean)\r\nlet _toastWrapper = null;\r\n\r\n/**\r\n * Get or create the toast containers wrapper\r\n * @returns {HTMLElement|null}\r\n */\r\nfunction getToastWrapper() {\r\n if (!isBrowser) return null;\r\n \r\n if (!_toastWrapper) {\r\n _toastWrapper = document.querySelector('.APX-toast-wrapper');\r\n if (!_toastWrapper) {\r\n _toastWrapper = createEl('div', 'APX-toast-wrapper');\r\n _toastWrapper.style.position = 'fixed';\r\n _toastWrapper.style.top = '0';\r\n _toastWrapper.style.left = '0';\r\n _toastWrapper.style.width = '0';\r\n _toastWrapper.style.height = '0';\r\n _toastWrapper.style.pointerEvents = 'none';\r\n _toastWrapper.style.zIndex = '10000'; // Below containers but above most content\r\n document.body.appendChild(_toastWrapper);\r\n }\r\n }\r\n \r\n return _toastWrapper;\r\n}\r\n\r\nconst DEFAULT_CONFIG = {\r\n position: 'bottom-right',\r\n maxToasts: 5,\r\n defaultDurationMs: 5000,\r\n zIndex: 11000,\r\n ariaLive: 'polite',\r\n gap: 8,\r\n dedupe: false,\r\n containerClass: '',\r\n offset: 0,\r\n progress: false\r\n};\r\n\r\n/**\r\n * Create an element with classes\r\n */\r\nfunction createEl(tag, classNames) {\r\n const el = document.createElement(tag);\r\n if (classNames) {\r\n classNames.split(' ').filter(Boolean).forEach(c => el.classList.add(c));\r\n }\r\n return el;\r\n}\r\n\r\n/** Minimal line-based pause (two bars) / resume (triangle right) icon SVG. Uses currentColor. */\r\nfunction getProgressPauseResumeIconSVG(paused) {\r\n if (paused) {\r\n return `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M8 6L8 18L17 12Z\"/></svg>`;\r\n }\r\n return `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><line x1=\"9\" y1=\"6\" x2=\"9\" y2=\"18\"/><line x1=\"15\" y1=\"6\" x2=\"15\" y2=\"18\"/></svg>`;\r\n}\r\n\r\n/**\r\n * Create and insert progress block (track + bar, optional pause button) into toast. Button is fixed at left via track layout.\r\n * @param {HTMLElement} toastEl\r\n * @param {HTMLElement} contentEl\r\n * @param {HTMLElement|null} closeBtn\r\n * @param {ProgressOpt} progressOpt\r\n * @returns {{ wrap: HTMLElement, bar: HTMLElement, pauseBtn: HTMLElement|null }}\r\n */\r\nfunction createProgressBlock(toastEl, contentEl, closeBtn, progressOpt) {\r\n const pos = progressOpt.position;\r\n const showPauseButton = progressOpt.pauseButton === true;\r\n const wrap = createEl('div', `APX-toast__progress APX-toast__progress--${pos}`);\r\n const track = createEl('div', 'APX-toast__progress-track');\r\n const bar = createEl('div', 'APX-toast__progress-bar');\r\n bar.setAttribute('role', 'progressbar');\r\n bar.setAttribute('aria-valuemin', '0');\r\n bar.setAttribute('aria-valuemax', '100');\r\n bar.setAttribute('aria-label', 'Temps restant');\r\n bar.setAttribute('aria-valuenow', '100');\r\n bar.style.width = '100%';\r\n track.appendChild(bar);\r\n wrap.appendChild(track);\r\n let pauseBtn = null;\r\n if (showPauseButton) {\r\n pauseBtn = createEl('button', 'APX-toast__progress-pause');\r\n pauseBtn.type = 'button';\r\n pauseBtn.setAttribute('aria-label', 'Pause');\r\n pauseBtn.setAttribute('title', 'Pause');\r\n pauseBtn.innerHTML = getProgressPauseResumeIconSVG(false); // running = show pause icon\r\n wrap.insertBefore(pauseBtn, track);\r\n }\r\n if (pos === 'top') {\r\n toastEl.insertBefore(wrap, contentEl);\r\n toastEl.classList.add('APX-toast--has-progress-top');\r\n } else {\r\n toastEl.insertBefore(wrap, closeBtn);\r\n toastEl.classList.add('APX-toast--has-progress-bottom');\r\n }\r\n if (showPauseButton) toastEl.classList.add('APX-toast--has-progress-pause');\r\n return { wrap, bar, pauseBtn };\r\n}\r\n\r\n/**\r\n * Update progress block position (classes + DOM order)\r\n * @param {HTMLElement} toastEl\r\n * @param {HTMLElement} progressWrap\r\n * @param {HTMLElement} contentEl\r\n * @param {HTMLElement|null} closeBtn\r\n * @param {'top'|'bottom'} pos\r\n */\r\nfunction applyProgressPosition(toastEl, progressWrap, contentEl, closeBtn, pos) {\r\n toastEl.classList.remove('APX-toast--has-progress-top', 'APX-toast--has-progress-bottom');\r\n toastEl.classList.add(pos === 'top' ? 'APX-toast--has-progress-top' : 'APX-toast--has-progress-bottom');\r\n progressWrap.classList.remove('APX-toast__progress--top', 'APX-toast__progress--bottom');\r\n progressWrap.classList.add(`APX-toast__progress--${pos}`);\r\n const target = pos === 'top' ? contentEl : closeBtn;\r\n if (progressWrap.nextElementSibling !== target) toastEl.insertBefore(progressWrap, target);\r\n}\r\n\r\n/**\r\n * Resolve progress option from per-call option and config default\r\n * @param {boolean|{enable: boolean, position: 'top'|'bottom'}|undefined} option\r\n * @param {boolean|{enable: boolean, position: 'top'|'bottom'}|undefined} configDefault\r\n * @returns {ProgressOpt}\r\n */\r\nfunction resolveProgress(option, configDefault) {\r\n const fromConfig = configDefault === true\r\n ? { enable: true, position: 'top', pauseButton: false }\r\n : (configDefault && typeof configDefault === 'object'\r\n ? {\r\n enable: !!configDefault.enable,\r\n position: configDefault.position === 'bottom' ? 'bottom' : 'top',\r\n pauseButton: configDefault.pauseButton === true\r\n }\r\n : { enable: false, position: 'top', pauseButton: false });\r\n if (option === undefined || option === null) return fromConfig;\r\n if (option === true) return { enable: true, position: 'top', pauseButton: false };\r\n if (typeof option === 'object') {\r\n return {\r\n enable: !!option.enable,\r\n position: option.position === 'bottom' ? 'bottom' : 'top',\r\n pauseButton: option.pauseButton === true\r\n };\r\n }\r\n return { enable: false, position: 'top', pauseButton: false };\r\n}\r\n\r\n/**\r\n * Normalize placement synonyms to CSS values\r\n * @param {string} placement\r\n * @returns {'top'|'right'|'bottom'|'left'}\r\n */\r\nfunction normalizePlacement(placement) {\r\n const synonyms = {\r\n 'above': 'top',\r\n 'below': 'bottom',\r\n 'before': 'left',\r\n 'after': 'right'\r\n };\r\n return synonyms[placement] || placement;\r\n}\r\n\r\n/**\r\n * Determine flow direction based on position\r\n * @param {Position} position\r\n * @returns {'up'|'down'}\r\n */\r\nfunction determineFlow(position) {\r\n if (typeof position === 'string') {\r\n // String positions: top = up, bottom = down\r\n if (position.includes('top')) return 'up';\r\n if (position.includes('bottom')) return 'down';\r\n return 'down'; // default\r\n }\r\n \r\n if (typeof position === 'object' && position !== null) {\r\n const type = position.type || (position.x || position.y ? 'sticky' : null);\r\n \r\n if (type === 'sticky' || (!type && (position.x || position.y))) {\r\n // Sticky: determine based on y coordinate\r\n if (position.y !== undefined) {\r\n // If y starts with '-' or is a small value, likely top (up)\r\n // If y is a large value or percentage, likely bottom (down)\r\n if (position.y.startsWith('-')) {\r\n // Negative = from bottom, so flow down\r\n return 'down';\r\n }\r\n const num = parseFloat(position.y);\r\n if (!isNaN(num)) {\r\n // If y < 50% of viewport height, likely top (up)\r\n // Otherwise likely bottom (down)\r\n if (position.y.includes('%')) {\r\n return num < 50 ? 'up' : 'down';\r\n }\r\n // For px values, assume < 400px is top (up)\r\n return num < 400 ? 'up' : 'down';\r\n }\r\n }\r\n return 'down'; // default\r\n }\r\n \r\n if (type === 'anchored' && position.placement) {\r\n // Anchored: placement determines flow\r\n const placement = normalizePlacement(position.placement);\r\n if (placement === 'top' || placement === 'above') return 'up';\r\n if (placement === 'bottom' || placement === 'below') return 'down';\r\n // For left/right, default to down\r\n return 'down';\r\n }\r\n \r\n if (type === 'relative') {\r\n // Relative: determine based on y offset\r\n if (position.y !== undefined) {\r\n const num = parseFloat(position.y);\r\n if (!isNaN(num)) {\r\n // Negative y = above element = flow up\r\n // Positive y = below element = flow down\r\n return num < 0 ? 'up' : 'down';\r\n }\r\n }\r\n return 'down'; // default\r\n }\r\n }\r\n \r\n return 'down'; // default\r\n}\r\n\r\n/**\r\n * Garbage collection: remove empty unmanaged containers\r\n */\r\nfunction cleanupEmptyContainers() {\r\n if (!isBrowser) return;\r\n \r\n const containers = document.querySelectorAll('.APX-toast-container:not([data-apx-toast-managed=\"true\"])');\r\n containers.forEach(container => {\r\n // Check if container is empty (no toasts)\r\n if (container.children.length === 0) {\r\n const positionKey = container.getAttribute('data-apx-toast-position');\r\n if (positionKey) {\r\n _containerCache.delete(positionKey);\r\n }\r\n container.remove();\r\n }\r\n });\r\n \r\n // Clean up wrapper if it's empty (all containers removed)\r\n if (_toastWrapper && _toastWrapper.children.length === 0) {\r\n _toastWrapper.remove();\r\n _toastWrapper = null;\r\n }\r\n \r\n _gcTimeoutId = null;\r\n}\r\n\r\n/**\r\n * Schedule garbage collection for empty unmanaged containers\r\n */\r\nfunction scheduleGarbageCollection() {\r\n if (_gcTimeoutId) {\r\n clearTimeout(_gcTimeoutId);\r\n }\r\n _gcTimeoutId = setTimeout(cleanupEmptyContainers, GC_DELAY_MS);\r\n}\r\n\r\n/**\r\n * Find all scrollable parent elements\r\n * @param {HTMLElement} element\r\n * @returns {HTMLElement[]}\r\n */\r\nfunction findScrollableParents(element) {\r\n const scrollables = [];\r\n let current = element.parentElement;\r\n \r\n while (current && current !== document.body && current !== document.documentElement) {\r\n const style = window.getComputedStyle(current);\r\n const overflow = style.overflow + style.overflowY + style.overflowX;\r\n \r\n if (overflow.includes('scroll') || overflow.includes('auto')) {\r\n scrollables.push(current);\r\n }\r\n \r\n current = current.parentElement;\r\n }\r\n \r\n return scrollables;\r\n}\r\n\r\n/**\r\n * Hash an element to create a unique identifier\r\n * @param {HTMLElement} el\r\n * @returns {string}\r\n */\r\nfunction hashElement(el) {\r\n const rect = el.getBoundingClientRect();\r\n const str = `${el.tagName}_${rect.left}_${rect.top}_${rect.width}_${rect.height}`;\r\n let hash = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const char = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + char;\r\n hash = hash & hash; // Convert to 32bit integer\r\n }\r\n return Math.abs(hash).toString(36);\r\n}\r\n\r\n/**\r\n * Serialize position options into a unique key\r\n * @param {Position} position\r\n * @returns {string}\r\n */\r\nfunction serializePosition(position) {\r\n if (typeof position === 'string') {\r\n return `s:${position}`;\r\n }\r\n \r\n if (typeof position === 'object' && position !== null) {\r\n const parts = [];\r\n \r\n // Type (default: sticky if x/y provided)\r\n const type = position.type || (position.x || position.y ? 'sticky' : null);\r\n if (type) parts.push(`t:${type}`);\r\n \r\n // Coordinates\r\n if (position.x !== undefined) parts.push(`x:${position.x}`);\r\n if (position.y !== undefined) parts.push(`y:${position.y}`);\r\n \r\n // For relative/anchored: use element ID or hash\r\n if (position.element) {\r\n const elementId = position.element.id || \r\n position.element.dataset?.apxToastAnchorId ||\r\n `el_${hashElement(position.element)}`;\r\n parts.push(`el:${elementId}`);\r\n }\r\n \r\n if (position.placement) {\r\n // Normalize placement for serialization (use CSS values)\r\n const normalized = normalizePlacement(position.placement);\r\n parts.push(`p:${normalized}`);\r\n }\r\n if (position.gap !== undefined) parts.push(`g:${position.gap}`);\r\n if (position.useNativeCSS) parts.push(`native:true`);\r\n \r\n return `o:${parts.join('|')}`;\r\n }\r\n \r\n return 's:bottom-right';\r\n}\r\n\r\n/**\r\n * ToastManager class\r\n */\r\nclass ToastManager {\r\n /** @param {Partial<ToastConfig>=} config */\r\n constructor(config) {\r\n /** @type {ToastConfig} */\r\n this.config = { ...DEFAULT_CONFIG, ...(config || {}) };\r\n /** @type {HTMLElement|null} */\r\n this.container = null;\r\n /** @type {Map<string, ToastRef>} */\r\n this.idToRef = new Map();\r\n /** @type {ToastRef[]} */\r\n this.open = [];\r\n }\r\n\r\n /** @param {Partial<ToastConfig>} config */\r\n configure(config) {\r\n this.config = { ...this.config, ...(config || {}) };\r\n if (this.container) this.applyContainerConfig();\r\n }\r\n\r\n /** @param {'polite'|'assertive'|'off'} mode */\r\n setAriaLive(mode) { this.configure({ ariaLive: mode }); }\r\n\r\n /** @returns {ToastRef[]} */\r\n getOpenToasts() { return this.open.slice(); }\r\n\r\n /** @param {ToastOptions} opts */\r\n show(opts) {\r\n if (!isBrowser) return /** @type {any} */(null);\r\n const options = this.normalizeOptions(opts);\r\n\r\n if (this.config.dedupe && options.id && this.idToRef.has(options.id)) {\r\n const ref = this.idToRef.get(options.id);\r\n ref.update(options);\r\n return ref;\r\n }\r\n\r\n // Determine position and flow for this toast (options take precedence over config)\r\n const position = options.position || this.config.position || 'bottom-right';\r\n const flow = options.flow !== undefined ? options.flow : (this.config.flow !== undefined ? this.config.flow : 'auto');\r\n const finalFlow = flow === 'auto' ? determineFlow(position) : flow;\r\n \r\n // Ensure default container is set (for backward compatibility)\r\n this.ensureContainer();\r\n\r\n const toastEl = createEl('div', `APX-toast APX-toast--${options.type}`);\r\n toastEl.setAttribute('role', 'status');\r\n // Priority: options.id > config.id > auto-generated\r\n const toastId = options.id || `t_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;\r\n toastEl.dataset.toastId = toastId;\r\n if (options.className) toastEl.className += ` ${options.className}`;\r\n\r\n const contentEl = createEl('div', 'APX-toast__content');\r\n if (typeof options.message === 'string') {\r\n contentEl.textContent = options.message;\r\n } else if (options.message) {\r\n contentEl.appendChild(options.message);\r\n }\r\n toastEl.appendChild(contentEl);\r\n\r\n let closeBtn = null;\r\n if (options.dismissible !== false) {\r\n closeBtn = createEl('button', 'APX-toast__close');\r\n closeBtn.setAttribute('aria-label', 'Close');\r\n closeBtn.type = 'button';\r\n toastEl.appendChild(closeBtn);\r\n }\r\n\r\n let progressWrap = null;\r\n let progressBarEl = null;\r\n let progressPauseBtn = null;\r\n if (options.progress.enable && options.durationMs > 0) {\r\n const created = createProgressBlock(toastEl, contentEl, closeBtn, options.progress);\r\n progressWrap = created.wrap;\r\n progressBarEl = created.bar;\r\n progressPauseBtn = created.pauseBtn;\r\n }\r\n\r\n // Get or create container for this specific position\r\n let container = null;\r\n let positionUpdateFn = null;\r\n let positionCleanup = null;\r\n let originalElementStyle = null;\r\n \r\n if (position && typeof position === 'object' && position !== null) {\r\n const type = position.type || (position.x || position.y ? 'sticky' : null);\r\n \r\n if (position.useNativeCSS && (type === 'relative' || type === 'anchored') && position.element) {\r\n // useNativeCSS: true - create container in target element using native CSS\r\n const targetEl = position.element;\r\n originalElementStyle = targetEl.style.position;\r\n targetEl.style.position = 'relative';\r\n \r\n // Create a container for stacking toasts (reuse if exists)\r\n const positionKey = serializePosition(position);\r\n let nativeContainer = targetEl.querySelector(`[data-apx-toast-position=\"${positionKey}\"]`);\r\n if (!nativeContainer) {\r\n nativeContainer = createEl('div', 'APX-toast-container APX-toast-container-native');\r\n nativeContainer.setAttribute('data-apx-toast-position', positionKey);\r\n nativeContainer.style.position = 'absolute';\r\n nativeContainer.style.zIndex = String(this.config.zIndex);\r\n nativeContainer.style.gap = `${this.config.gap}px`;\r\n nativeContainer.setAttribute('aria-live', String(this.config.ariaLive));\r\n nativeContainer.style.flexDirection = finalFlow === 'up' ? 'column-reverse' : 'column';\r\n \r\n // Apply positioning to container\r\n if (type === 'relative') {\r\n // Relative: use x/y directly\r\n if (position.x !== undefined) {\r\n if (position.x.startsWith('-')) {\r\n nativeContainer.style.right = position.x.substring(1);\r\n } else {\r\n nativeContainer.style.left = position.x;\r\n }\r\n }\r\n if (position.y !== undefined) {\r\n if (position.y.startsWith('-')) {\r\n nativeContainer.style.bottom = position.y.substring(1);\r\n } else {\r\n nativeContainer.style.top = position.y;\r\n }\r\n }\r\n } else if (type === 'anchored') {\r\n // Anchored: position outside the element using 100% (element size) + gap\r\n const placement = normalizePlacement(position.placement);\r\n const gap = position.gap || '1em';\r\n \r\n switch (placement) {\r\n case 'top':\r\n nativeContainer.style.bottom = `calc(100% + ${gap})`;\r\n nativeContainer.style.left = '0';\r\n break;\r\n case 'bottom':\r\n nativeContainer.style.top = `calc(100% + ${gap})`;\r\n nativeContainer.style.left = '0';\r\n break;\r\n case 'left':\r\n nativeContainer.style.right = `calc(100% + ${gap})`;\r\n nativeContainer.style.top = '0';\r\n break;\r\n case 'right':\r\n nativeContainer.style.left = `calc(100% + ${gap})`;\r\n nativeContainer.style.top = '0';\r\n break;\r\n }\r\n }\r\n \r\n targetEl.appendChild(nativeContainer);\r\n } else {\r\n // Update flow direction if container exists\r\n nativeContainer.style.flexDirection = finalFlow === 'up' ? 'column-reverse' : 'column';\r\n }\r\n \r\n container = nativeContainer;\r\n \r\n positionCleanup = () => {\r\n if (targetEl && targetEl.parentElement) {\r\n targetEl.style.position = originalElementStyle || '';\r\n // Remove native container if empty\r\n if (nativeContainer && nativeContainer.children.length === 0) {\r\n const positionKey = nativeContainer.getAttribute('data-apx-toast-position');\r\n if (positionKey) {\r\n _containerCache.delete(positionKey);\r\n }\r\n nativeContainer.remove();\r\n }\r\n }\r\n };\r\n } else {\r\n // Default: get or create container for this position\r\n container = this.getContainerForPosition(position, finalFlow);\r\n \r\n const updateContainerPosition = () => {\r\n const styles = this.calculatePosition(position, container);\r\n Object.assign(container.style, styles);\r\n };\r\n \r\n updateContainerPosition();\r\n \r\n // For relative/anchored, listen to scroll/resize\r\n if ((type === 'relative' || type === 'anchored') && position.element) {\r\n let rafId = null;\r\n let lastUpdate = 0;\r\n const throttleMs = 16; // ~60fps\r\n \r\n const throttledUpdate = () => {\r\n const now = Date.now();\r\n if (now - lastUpdate < throttleMs) {\r\n if (rafId) cancelAnimationFrame(rafId);\r\n rafId = requestAnimationFrame(() => {\r\n updateContainerPosition();\r\n lastUpdate = Date.now();\r\n });\r\n } else {\r\n updateContainerPosition();\r\n lastUpdate = now;\r\n }\r\n };\r\n \r\n // Find all scrollable parents\r\n const scrollableParents = findScrollableParents(position.element);\r\n \r\n // Listen to scroll on window and all scrollable parents\r\n window.addEventListener('scroll', throttledUpdate, { passive: true });\r\n window.addEventListener('resize', throttledUpdate, { passive: true });\r\n \r\n // Listen to scroll on all scrollable parent elements\r\n scrollableParents.forEach(parent => {\r\n parent.addEventListener('scroll', throttledUpdate, { passive: true });\r\n });\r\n \r\n // Watch for element removal\r\n const observer = new MutationObserver(() => {\r\n if (!position.element.parentElement) {\r\n ref.close('api');\r\n }\r\n });\r\n observer.observe(document.body, { childList: true, subtree: true });\r\n \r\n positionUpdateFn = updateContainerPosition;\r\n positionCleanup = () => {\r\n window.removeEventListener('scroll', throttledUpdate);\r\n window.removeEventListener('resize', throttledUpdate);\r\n scrollableParents.forEach(parent => {\r\n parent.removeEventListener('scroll', throttledUpdate);\r\n });\r\n observer.disconnect();\r\n if (rafId) cancelAnimationFrame(rafId);\r\n };\r\n }\r\n }\r\n } else {\r\n // String position - get or create container for this position\r\n container = this.getContainerForPosition(position, finalFlow);\r\n }\r\n \r\n // Append toast to the appropriate container\r\n if (container) {\r\n container.appendChild(toastEl);\r\n } else {\r\n // Fallback to default container\r\n this.container.appendChild(toastEl);\r\n }\r\n\r\n // Enter animation\r\n toastEl.classList.add('APX-toast--enter');\r\n requestAnimationFrame(() => {\r\n toastEl.classList.add('APX-toast--enter-active');\r\n });\r\n\r\n // Event handling and timers\r\n let remaining = options.durationMs;\r\n let timerId = null;\r\n let startTs = null;\r\n let userPaused = false;\r\n let progressRafId = null;\r\n const handlers = { click: new Set(), close: new Set() };\r\n\r\n const startTimer = () => {\r\n if (!remaining || remaining <= 0) return; // sticky\r\n startTs = Date.now();\r\n timerId = window.setTimeout(() => ref.close('timeout'), remaining);\r\n if (progressBarEl) {\r\n const tick = () => {\r\n if (timerId == null || startTs == null) return;\r\n const elapsed = Date.now() - startTs;\r\n const remainingMs = Math.max(0, remaining - elapsed);\r\n const durationMs = options.durationMs;\r\n const pct = durationMs > 0 ? Math.max(0, Math.min(100, (remainingMs / durationMs) * 100)) : 0;\r\n progressBarEl.style.width = `${pct}%`;\r\n progressBarEl.setAttribute('aria-valuenow', String(Math.round(pct)));\r\n progressRafId = requestAnimationFrame(tick);\r\n };\r\n progressRafId = requestAnimationFrame(tick);\r\n }\r\n };\r\n const pauseTimer = () => {\r\n if (timerId != null) {\r\n window.clearTimeout(timerId);\r\n timerId = null;\r\n if (startTs != null) remaining -= (Date.now() - startTs);\r\n }\r\n if (progressRafId != null) {\r\n cancelAnimationFrame(progressRafId);\r\n progressRafId = null;\r\n }\r\n };\r\n\r\n const attachProgressPauseHandler = (btn) => {\r\n btn.addEventListener('click', (ev) => {\r\n ev.stopPropagation();\r\n userPaused = !userPaused;\r\n if (userPaused) pauseTimer(); else startTimer();\r\n const label = userPaused ? 'Reprendre' : 'Pause';\r\n btn.setAttribute('aria-label', label);\r\n btn.setAttribute('title', label);\r\n btn.innerHTML = getProgressPauseResumeIconSVG(userPaused); // paused = resume (triangle)\r\n });\r\n };\r\n\r\n /** @type {ToastRef} */\r\n const ref = {\r\n id: toastId,\r\n el: toastEl,\r\n close: (reason) => {\r\n cleanup(reason || 'api');\r\n },\r\n update: (partial) => {\r\n const merged = this.normalizeOptions({ ...options, ...partial });\r\n // update content\r\n if (typeof merged.message === 'string') {\r\n contentEl.textContent = merged.message;\r\n } else if (merged.message) {\r\n contentEl.innerHTML = '';\r\n contentEl.appendChild(merged.message);\r\n }\r\n // update type class\r\n ['info','success','warning','danger'].forEach(t => toastEl.classList.remove(`APX-toast--${t}`));\r\n toastEl.classList.add(`APX-toast--${merged.type}`);\r\n // update classes\r\n if (options.className !== merged.className) {\r\n if (options.className) toastEl.classList.remove(...options.className.split(' ').filter(Boolean));\r\n if (merged.className) toastEl.classList.add(...merged.className.split(' ').filter(Boolean));\r\n }\r\n // update progress visibility/position\r\n options.progress = merged.progress;\r\n if (progressWrap) {\r\n if (!merged.progress.enable || merged.durationMs <= 0) {\r\n progressWrap.style.display = 'none';\r\n } else {\r\n progressWrap.style.display = '';\r\n applyProgressPosition(toastEl, progressWrap, contentEl, closeBtn, merged.progress.position);\r\n }\r\n } else if (merged.progress.enable && merged.durationMs > 0) {\r\n const created = createProgressBlock(toastEl, contentEl, closeBtn, merged.progress);\r\n progressWrap = created.wrap;\r\n progressBarEl = created.bar;\r\n progressPauseBtn = created.pauseBtn;\r\n if (progressPauseBtn) attachProgressPauseHandler(progressPauseBtn);\r\n }\r\n if (progressWrap && progressWrap.style.display !== 'none' && merged.progress.pauseButton === true) {\r\n toastEl.classList.add('APX-toast--has-progress-pause');\r\n } else {\r\n toastEl.classList.remove('APX-toast--has-progress-pause');\r\n }\r\n // update duration logic\r\n options.durationMs = merged.durationMs;\r\n remaining = merged.durationMs;\r\n if (progressBarEl) {\r\n progressBarEl.style.width = '100%';\r\n progressBarEl.setAttribute('aria-valuenow', '100');\r\n }\r\n pauseTimer();\r\n startTimer();\r\n },\r\n whenClosed: () => closedPromise,\r\n on: (event, handler) => { handlers[event].add(handler); return () => ref.off(event, handler); },\r\n off: (event, handler) => { handlers[event].delete(handler); }\r\n };\r\n\r\n const notify = (event, arg) => handlers[event].forEach(fn => { try { fn(arg); } catch (_) {} });\r\n\r\n const closedPromise = new Promise(resolve => {\r\n const finish = (reason) => {\r\n notify('close', reason);\r\n if (typeof options.onClose === 'function') {\r\n try { options.onClose(ref, reason); } catch(_){}\r\n }\r\n resolve();\r\n };\r\n\r\n const cleanup = (reason) => {\r\n if (!toastEl) return;\r\n pauseTimer();\r\n if (progressRafId != null) {\r\n cancelAnimationFrame(progressRafId);\r\n progressRafId = null;\r\n }\r\n // Cleanup position listeners and restore styles\r\n if (positionCleanup) {\r\n positionCleanup();\r\n positionCleanup = null;\r\n }\r\n \r\n // If overflow, remove immediately to enforce hard cap\r\n if (reason === 'overflow') {\r\n if (toastEl.parentElement) toastEl.parentElement.removeChild(toastEl);\r\n const idx = this.open.indexOf(ref);\r\n if (idx >= 0) this.open.splice(idx, 1);\r\n this.idToRef.delete(toastId);\r\n finish(reason);\r\n return;\r\n }\r\n\r\n // Otherwise, animate out\r\n toastEl.classList.add('APX-toast--exit');\r\n requestAnimationFrame(() => toastEl.classList.add('APX-toast--exit-active'));\r\n\r\n const removeEl = () => {\r\n toastEl.removeEventListener('transitionend', removeEl);\r\n if (toastEl.parentElement) toastEl.parentElement.removeChild(toastEl);\r\n const idx = this.open.indexOf(ref);\r\n if (idx >= 0) this.open.splice(idx, 1);\r\n this.idToRef.delete(toastId);\r\n \r\n // Schedule garbage collection for unmanaged containers\r\n scheduleGarbageCollection();\r\n \r\n finish(reason);\r\n };\r\n toastEl.addEventListener('transitionend', removeEl);\r\n };\r\n\r\n // attach close behavior\r\n ref.close = (reason) => cleanup(reason || 'api');\r\n });\r\n\r\n // Click handling\r\n toastEl.addEventListener('click', (ev) => {\r\n notify('click', ev);\r\n if (typeof options.onClick === 'function') {\r\n try { options.onClick(ref, ev); } catch(_){}\r\n }\r\n });\r\n\r\n // Hover pause\r\n toastEl.addEventListener('mouseenter', pauseTimer);\r\n toastEl.addEventListener('mouseleave', () => { if (!userPaused) startTimer(); });\r\n\r\n if (closeBtn) closeBtn.addEventListener('click', (ev) => { ev.stopPropagation(); ref.close('close'); });\r\n if (progressPauseBtn) attachProgressPauseHandler(progressPauseBtn);\r\n\r\n // Track\r\n this.open.push(ref);\r\n this.idToRef.set(toastId, ref);\r\n\r\n // Overflow policy\r\n if (this.open.length > this.config.maxToasts) {\r\n const oldest = this.open[0];\r\n oldest.close('overflow');\r\n }\r\n\r\n startTimer();\r\n return ref;\r\n }\r\n\r\n /**\r\n * Convenience helpers\r\n */\r\n info(message, opts) { return this.show({ ...(opts||{}), message, type: 'info' }); }\r\n success(message, opts) { return this.show({ ...(opts||{}), message, type: 'success' }); }\r\n warning(message, opts) { return this.show({ ...(opts||{}), message, type: 'warning' }); }\r\n danger(message, opts) { return this.show({ ...(opts||{}), message, type: 'danger' }); }\r\n\r\n /** @param {'api'|'overflow'} [reason] */\r\n closeAll(reason) {\r\n // copy to avoid mutation during iteration\r\n const all = this.open.slice();\r\n all.forEach(r => r.close(reason || 'api'));\r\n }\r\n\r\n /** @param {ToastOptions} opts */\r\n normalizeOptions(opts) {\r\n const o = { ...opts };\r\n if (!o.type) o.type = 'info';\r\n if (typeof o.dismissible !== 'boolean') o.dismissible = true;\r\n if (typeof o.durationMs !== 'number') o.durationMs = this.config.defaultDurationMs;\r\n // Use id from options if provided, otherwise use id from config, otherwise undefined (will be auto-generated)\r\n if (!o.id && this.config.id) o.id = this.config.id;\r\n o.progress = resolveProgress(opts.progress, this.config.progress);\r\n return o;\r\n }\r\n\r\n /**\r\n * Find or create a container for a specific position\r\n * @param {Position} position\r\n * @param {'up'|'down'} [flow] Flow direction (already determined, not 'auto')\r\n * @param {boolean} [managed] Whether this container is managed by a manager (default: false)\r\n * @returns {HTMLElement|null}\r\n */\r\n getContainerForPosition(position, flow, managed = false) {\r\n if (!isBrowser) return null;\r\n \r\n const positionKey = serializePosition(position);\r\n \r\n // Flow should already be determined ('up' or 'down'), but fallback to auto if needed\r\n const finalFlow = flow && flow !== 'auto' ? flow : determineFlow(position);\r\n \r\n // 1. Check memory cache\r\n let c = _containerCache.get(positionKey);\r\n \r\n // 2. If not in cache, search in DOM by data attribute\r\n if (!c && isBrowser) {\r\n c = document.querySelector(`[data-apx-toast-position=\"${positionKey}\"]`);\r\n if (c) {\r\n _containerCache.set(positionKey, c);\r\n }\r\n }\r\n \r\n // 3. If still not found, create new container\r\n if (!c) {\r\n c = createEl('div', 'APX-toast-container');\r\n c.setAttribute('data-apx-toast-position', positionKey);\r\n \r\n // Mark as managed if created by a manager\r\n if (managed) {\r\n c.setAttribute('data-apx-toast-managed', 'true');\r\n }\r\n \r\n // Determine position class (for CSS)\r\n const posClass = typeof position === 'string' \r\n ? position \r\n : (position.type || 'bottom-right');\r\n c.classList.add(`APX-toast-container--${posClass}`);\r\n c.setAttribute('aria-live', String(this.config.ariaLive));\r\n c.style.zIndex = String(this.config.zIndex);\r\n c.style.gap = `${this.config.gap}px`;\r\n \r\n // Apply flow direction\r\n c.style.flexDirection = finalFlow === 'up' ? 'column-reverse' : 'column';\r\n \r\n // Apply position styles if object position\r\n if (typeof position === 'object' && position !== null) {\r\n c.style.position = 'fixed';\r\n const styles = this.calculatePosition(position, c);\r\n Object.assign(c.style, styles);\r\n }\r\n \r\n // Append to wrapper for clean DOM organization\r\n const wrapper = getToastWrapper();\r\n if (wrapper) {\r\n wrapper.appendChild(c);\r\n } else {\r\n document.body.appendChild(c);\r\n }\r\n _containerCache.set(positionKey, c);\r\n } else {\r\n // Update flow direction if container exists (may be shared)\r\n c.style.flexDirection = finalFlow === 'up' ? 'column-reverse' : 'column';\r\n \r\n // If container exists and is now managed, mark it\r\n if (managed && !c.hasAttribute('data-apx-toast-managed')) {\r\n c.setAttribute('data-apx-toast-managed', 'true');\r\n }\r\n }\r\n \r\n return c;\r\n }\r\n\r\n ensureContainer() {\r\n if (this.container || !isBrowser) return;\r\n \r\n const position = this.config.position || 'bottom-right';\r\n const flow = this.config.flow !== undefined ? this.config.flow : 'auto';\r\n // Containers created by ensureContainer are managed\r\n this.container = this.getContainerForPosition(position, flow, true);\r\n this.applyContainerConfig();\r\n }\r\n\r\n applyContainerConfig() {\r\n if (!this.container) return;\r\n const position = this.config.position || 'bottom-right';\r\n const pos = typeof position === 'string' ? position : (position.type || 'bottom-right');\r\n \r\n // Apply styles (these may be overridden by other managers sharing the container)\r\n this.container.style.zIndex = String(this.config.zIndex);\r\n this.container.style.gap = `${this.config.gap}px`;\r\n this.container.setAttribute('aria-live', String(this.config.ariaLive));\r\n \r\n // Update position class (only for string positions)\r\n if (typeof position === 'string') {\r\n const posClasses = ['bottom-right','bottom-left','top-right','top-left'].map(p => `APX-toast-container--${p}`);\r\n this.container.classList.remove(...posClasses);\r\n this.container.classList.add(`APX-toast-container--${pos}`);\r\n }\r\n \r\n // Apply container class if specified\r\n if (this.config.containerClass) {\r\n this.config.containerClass.split(' ').filter(Boolean).forEach(cls => {\r\n this.container.classList.add(cls);\r\n });\r\n }\r\n \r\n // Apply offset (only for string positions)\r\n if (typeof position === 'string') {\r\n if (this.config.offset) {\r\n const offset = `${this.config.offset}px`;\r\n if (pos.includes('bottom')) this.container.style.bottom = offset;\r\n else this.container.style.top = offset;\r\n if (pos.includes('right')) this.container.style.right = offset;\r\n else this.container.style.left = offset;\r\n } else {\r\n // Reset offset if not specified\r\n if (pos.includes('bottom')) this.container.style.bottom = '';\r\n else this.container.style.top = '';\r\n if (pos.includes('right')) this.container.style.right = '';\r\n else this.container.style.left = '';\r\n }\r\n } else if (typeof position === 'object' && position !== null) {\r\n // For object positions, ensure container has position: fixed\r\n this.container.style.position = 'fixed';\r\n }\r\n }\r\n\r\n /**\r\n * Calculate position for a container based on position config\r\n * @param {Position} position\r\n * @param {HTMLElement} containerEl\r\n * @returns {{left?: string, top?: string, right?: string, bottom?: string}}\r\n */\r\n calculatePosition(position, containerEl) {\r\n if (typeof position === 'string') {\r\n // String positions are handled by container CSS\r\n return {};\r\n }\r\n \r\n if (typeof position === 'object' && position !== null) {\r\n const type = position.type || (position.x || position.y ? 'sticky' : null);\r\n \r\n if (type === 'sticky' || (!type && (position.x || position.y))) {\r\n // Sticky: fixed position relative to viewport\r\n const styles = {};\r\n if (position.x !== undefined) {\r\n if (position.x.startsWith('-')) {\r\n styles.right = position.x.substring(1);\r\n } else {\r\n styles.left = position.x;\r\n }\r\n }\r\n if (position.y !== undefined) {\r\n if (position.y.startsWith('-')) {\r\n styles.bottom = position.y.substring(1);\r\n } else {\r\n styles.top = position.y;\r\n }\r\n }\r\n return styles;\r\n }\r\n \r\n if (type === 'relative' && position.element) {\r\n // Relative: position relative to element with x/y offset\r\n // Use fixed positioning, so getBoundingClientRect() is relative to viewport\r\n const rect = position.element.getBoundingClientRect();\r\n \r\n // Parse x/y offsets (can be px, em, etc.)\r\n const parseOffset = (val) => {\r\n if (!val) return 0;\r\n const num = parseFloat(val);\r\n if (val.includes('em')) {\r\n // Convert em to px (approximate: 1em = 16px)\r\n return num * 16;\r\n }\r\n return num;\r\n };\r\n \r\n const offsetX = parseOffset(position.x || '0');\r\n const offsetY = parseOffset(position.y || '0');\r\n \r\n const styles = {\r\n left: `${rect.left + offsetX}px`,\r\n top: `${rect.top + offsetY}px`\r\n };\r\n return styles;\r\n }\r\n \r\n if (type === 'anchored' && position.element) {\r\n // Anchored: position relative to element with placement\r\n const rect = position.element.getBoundingClientRect();\r\n const gap = position.gap || '1em';\r\n \r\n // Parse gap (can be px, em, etc.)\r\n const parseGap = (val) => {\r\n const num = parseFloat(val);\r\n if (val.includes('em')) {\r\n return num * 16; // Approximate: 1em = 16px\r\n }\r\n return num;\r\n };\r\n \r\n const gapPx = parseGap(gap);\r\n const styles = {};\r\n \r\n // Normalize placement synonyms (above/below/before/after) to CSS values\r\n const placement = normalizePlacement(position.placement);\r\n \r\n switch (placement) {\r\n case 'top':\r\n // Toast above element: bottom of toast = top of element - gap\r\n // bottom = viewport height - (element top - gap) = viewport height - element top + gap\r\n styles.bottom = `${window.innerHeight - rect.top + gapPx}px`;\r\n styles.left = `${rect.left}px`;\r\n break;\r\n case 'bottom':\r\n // Toast below element: top of toast = bottom of element + gap\r\n styles.top = `${rect.bottom + gapPx}px`;\r\n styles.left = `${rect.left}px`;\r\n break;\r\n case 'left':\r\n // Toast to the left: right of toast = left of element - gap\r\n styles.right = `${window.innerWidth - rect.left + gapPx}px`;\r\n styles.top = `${rect.top}px`;\r\n break;\r\n case 'right':\r\n // Toast to the right: left of toast = right of element + gap\r\n styles.left = `${rect.right + gapPx}px`;\r\n styles.top = `${rect.top}px`;\r\n break;\r\n }\r\n return styles;\r\n }\r\n }\r\n \r\n return {};\r\n }\r\n}\r\n\r\n/**\r\n * @param {Partial<ToastConfig>=} config\r\n * @returns {ToastManager}\r\n */\r\nfunction createToastManager(config) {\r\n return new ToastManager(config);\r\n}\r\n\r\n// High-level APX.toast API (default & named managers)\r\nlet _defaultManager = null;\r\nconst _getDefault = () => {\r\n if (!_defaultManager) _defaultManager = createToastManager();\r\n return _defaultManager;\r\n};\r\n\r\n/**\r\n * Toast API surface to be attached as APX.toast.\r\n * Callable form proxies to defaultManager.show(opts): APX.toast({...})\r\n */\r\nfunction toast(opts) {\r\n return _getDefault().show(opts);\r\n}\r\n\r\nObject.assign(toast, {\r\n /**\r\n * Create a manager. If first arg is string, register as named under toast.custom[name]\r\n * @param {string|Partial<ToastConfig>} nameOrConfig\r\n * @param {Partial<ToastConfig>=} maybeConfig\r\n * @returns {ToastManager}\r\n */\r\n create: (nameOrConfig, maybeConfig) => {\r\n if (typeof nameOrConfig === 'string') {\r\n const name = nameOrConfig;\r\n const manager = new ToastManager({ ...(maybeConfig || {}) });\r\n if (!toast.custom) toast.custom = {};\r\n toast.custom[name] = manager;\r\n return manager;\r\n }\r\n return new ToastManager({ ...(nameOrConfig || {}) });\r\n },\r\n /** @type {Record<string, ToastManager>} */\r\n custom: {},\r\n /** @param {string} name */\r\n use: (name) => (toast.custom && toast.custom[name]) || null,\r\n Manager: ToastManager,\r\n show: (opts) => _getDefault().show(opts),\r\n info: (message, opts) => _getDefault().info(message, opts),\r\n success: (message, opts) => _getDefault().success(message, opts),\r\n warning: (message, opts) => _getDefault().warning(message, opts),\r\n danger: (message, opts) => _getDefault().danger(message, opts),\r\n configure: (config) => _getDefault().configure(config),\r\n setAriaLive: (mode) => _getDefault().setAriaLive(mode),\r\n closeAll: (reason) => _getDefault().closeAll(reason),\r\n getOpenToasts: () => _getDefault().getOpenToasts()\r\n});\r\n\r\nexport default toast;\r\nexport { ToastManager, createToastManager, toast };\r\n","// Import des fonctions et modules des sous-modules\r\nimport augmentWithPack from './form-packer/augment-apx.mjs';\r\nimport { packFormToJSON } from './form-packer/packToJson.mjs';\r\n\r\n// Export de la fonction d'augmentation\r\nexport { augmentWithPack };\r\n\r\n// Export des fonctions utilitaires\r\nexport { packFormToJSON };\r\n\r\n// Export d'un objet tools pour faciliter l'utilisation\r\nexport const tools = {\r\n packFormToJSON: packFormToJSON\r\n};\r\n\r\n\r\n","import { packFormToJSON } from './packToJson.mjs';\r\n\r\n/**\r\n * Ajoute la méthode pack() aux objets APX pour convertir les formulaires en JSON\r\n * @param {Object} apx - L'objet APX à augmenter\r\n * @returns {Object} L'objet APX augmenté\r\n */\r\nexport default function (apx) {\r\n /**\r\n * Convertit le premier formulaire sélectionné en objet JSON\r\n * @param {Object} [options] - Options passées à packFormToJSON (ex. { numericKeysAlwaysArray: true })\r\n * @returns {Object} L'objet JSON résultant\r\n * @throws {Error} Si aucun formulaire n'est trouvé ou si le premier élément n'est pas un formulaire\r\n * @example\r\n * const data = APX('form.myformclass').pack();\r\n * const dataLegacy = APX('form').pack({ numericKeysAlwaysArray: true });\r\n */\r\n apx.pack = function (options) {\r\n const firstElement = this.first();\r\n if (!firstElement) {\r\n throw new Error('No element found');\r\n }\r\n if (firstElement.tagName !== 'FORM') {\r\n throw new Error('Element is not a form');\r\n }\r\n return packFormToJSON(firstElement, options);\r\n };\r\n \r\n return apx;\r\n}\r\n\r\n\r\n","/**\r\n * Convertit un formulaire HTML en objet JSON\r\n * @param {HTMLFormElement} form - Le formulaire à convertir\r\n * @param {Object} [options] - Options de conversion\r\n * @param {boolean} [options.numericKeysAlwaysArray=false] - Si true, toute clé numérique est traitée comme index de tableau (comportement d'avant 2.6.2). Sinon, heuristique : tableau seulement si indices denses 0,1,2,…,n.\r\n * @returns {Object} L'objet JSON résultant\r\n * @throws {TypeError} Si form n'est pas un HTMLFormElement\r\n */\r\nexport const packFormToJSON = (form, options = {}) => {\r\n // Validation de l'entrée\r\n if (!form || !(form instanceof HTMLFormElement)) {\r\n throw new TypeError('packFormToJSON expects an HTMLFormElement');\r\n }\r\n\r\n const numericKeysAlwaysArray = options.numericKeysAlwaysArray === true;\r\n\r\n const formData = new FormData(form);\r\n const jsonData = {};\r\n \r\n /**\r\n * Construit une représentation string du chemin pour les messages d'erreur\r\n * @param {Array} parts - Les parties du chemin\r\n * @returns {string} Le chemin formaté\r\n */\r\n const buildPathString = (parts) => {\r\n return parts.reduce((path, part) => {\r\n if (part.type === 'key') {\r\n return path ? `${path}[${part.name}]` : part.name;\r\n }\r\n if (part.type === 'numeric') {\r\n return `${path}[${part.index}]`;\r\n }\r\n if (part.type === 'array') {\r\n return `${path}[]`;\r\n }\r\n return path;\r\n }, '');\r\n };\r\n \r\n // ============================================================================\r\n // PHASE 1 : ANALYSE ET DÉTECTION DES CONFLITS\r\n // ============================================================================\r\n \r\n /**\r\n * Structure pour stocker l'utilisation d'un chemin\r\n * @typedef {Object} PathUsage\r\n * @property {boolean} isFinal - Le chemin est utilisé comme valeur finale\r\n * @property {boolean} isIntermediate - Le chemin est utilisé comme chemin intermédiaire\r\n * @property {boolean} hasArraySuffix - Le chemin se termine par [] (crée des valeurs primitives)\r\n * @property {string} key - La clé du formulaire qui utilise ce chemin\r\n */\r\n \r\n const pathUsage = new Map(); // Map<pathString, PathUsage>\r\n const keyAnalysis = new Map(); // Map<basePath, {hasNumeric: boolean, hasString: boolean}>\r\n const numericIndicesByPath = new Map(); // Map<pathString, Set<number>> — indices under each parent path\r\n const allEntries = [];\r\n \r\n /**\r\n * Enregistre l'utilisation d'un chemin dans pathUsage\r\n * @param {string} currentPath - Le chemin à enregistrer\r\n * @param {boolean} isFinal - Si c'est une valeur finale\r\n * @param {boolean} isArraySuffix - Si le chemin se termine par []\r\n * @param {string} key - La clé du formulaire\r\n */\r\n const recordPathUsage = (currentPath, isFinal, isArraySuffix, key) => {\r\n const usage = pathUsage.get(currentPath) ?? {\r\n isFinal: false,\r\n isIntermediate: false,\r\n hasArraySuffix: false,\r\n key\r\n };\r\n \r\n if (!pathUsage.has(currentPath)) {\r\n pathUsage.set(currentPath, usage);\r\n }\r\n \r\n if (isFinal) {\r\n usage.isFinal = true;\r\n usage.key = key;\r\n if (isArraySuffix) {\r\n usage.hasArraySuffix = true;\r\n }\r\n } else {\r\n usage.isIntermediate = true;\r\n usage.key ??= key;\r\n }\r\n };\r\n \r\n // Première passe : analyser toutes les clés et enregistrer les chemins\r\n for (const [key, value] of formData.entries()) {\r\n if (!key) continue;\r\n \r\n allEntries.push({ key, value });\r\n const parts = parseKey(key);\r\n \r\n // Construire tous les chemins intermédiaires et le chemin final\r\n let currentPath = '';\r\n \r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n const isLast = i === parts.length - 1;\r\n const isArraySuffix = part.type === 'array';\r\n \r\n // Construire le chemin jusqu'à ce niveau\r\n if (part.type === 'key') {\r\n currentPath = currentPath ? `${currentPath}[${part.name}]` : part.name;\r\n } else if (part.type === 'numeric') {\r\n const parentPath = currentPath;\r\n let set = numericIndicesByPath.get(parentPath);\r\n if (!set) {\r\n set = new Set();\r\n numericIndicesByPath.set(parentPath, set);\r\n }\r\n set.add(part.index);\r\n currentPath = `${currentPath}[${part.index}]`;\r\n } else if (part.type === 'array') {\r\n currentPath = `${currentPath}[]`;\r\n }\r\n \r\n // Enregistrer l'utilisation du chemin\r\n recordPathUsage(currentPath, isLast, isArraySuffix && isLast, key);\r\n }\r\n \r\n // Analyser chaque niveau de la hiérarchie pour détecter les conflits (indices numériques vs clés de chaîne)\r\n for (let i = 0; i < parts.length - 1; i++) {\r\n const part = parts[i];\r\n const nextPart = parts[i + 1];\r\n \r\n // Analyser seulement les clés (pas les indices numériques)\r\n if (part.type === 'key') {\r\n const basePath = part.name; // Le nom de la première clé dans le chemin\r\n \r\n const analysis = keyAnalysis.get(basePath) ?? { hasNumeric: false, hasString: false };\r\n if (!keyAnalysis.has(basePath)) {\r\n keyAnalysis.set(basePath, analysis);\r\n }\r\n \r\n if (nextPart) {\r\n if (nextPart.type === 'numeric') {\r\n analysis.hasNumeric = true;\r\n } else if (nextPart.type === 'key' || nextPart.type === 'array') {\r\n analysis.hasString = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n /**\r\n * Détecte et lève une exception pour tous les conflits de chemins\r\n * \r\n * Principe simple : pour chaque chemin final (valeur primitive), vérifier si un chemin\r\n * intermédiaire commence par ce chemin suivi de '['. Si c'est le cas, c'est un conflit.\r\n * \r\n * Cette approche unifiée couvre tous les cas :\r\n * - items[] (final) vs items[0][name] (intermédiaire)\r\n * - array[3] (final) vs array[3][nested] (intermédiaire)\r\n * - data[key] (final) vs data[key][sub] (intermédiaire)\r\n */\r\n const detectPathConflicts = () => {\r\n // 1. Collecter tous les chemins finaux (valeurs primitives)\r\n const finalPaths = new Set();\r\n const finalPathKeys = new Map(); // Pour les messages d'erreur\r\n \r\n for (const [path, usage] of pathUsage.entries()) {\r\n if (usage.isFinal) {\r\n finalPaths.add(path);\r\n finalPathKeys.set(path, usage.key);\r\n }\r\n }\r\n \r\n // 2. Pour chaque chemin intermédiaire, vérifier s'il commence par un chemin final\r\n for (const [path, usage] of pathUsage.entries()) {\r\n if (usage.isIntermediate) {\r\n for (const finalPath of finalPaths) {\r\n // Vérifier si ce chemin intermédiaire commence par un chemin final suivi de '['\r\n // Exemple: finalPath = \"array[3]\", path = \"array[3][nested]\" → conflit\r\n if (path.startsWith(`${finalPath}[`)) {\r\n throw new Error(\r\n `Path conflict: \"${finalPath}\" is used as a final value (in field \"${finalPathKeys.get(finalPath)}\"), ` +\r\n `but \"${path}\" tries to use it as an intermediate path (in field \"${usage.key}\"). ` +\r\n `This creates incompatible data structures. ` +\r\n `You cannot use \"${finalPath}\" as a primitive value and then access it as an object.`\r\n );\r\n }\r\n }\r\n }\r\n }\r\n };\r\n \r\n // Exécuter la détection des conflits\r\n detectPathConflicts();\r\n\r\n /**\r\n * Vérifie si un chemin de base a un conflit (indices numériques ET clés de chaîne)\r\n * @param {string} basePath - Le chemin de base à vérifier\r\n * @returns {boolean}\r\n */\r\n const hasConflict = (basePath) => {\r\n if (!basePath) return false;\r\n const analysis = keyAnalysis.get(basePath);\r\n return analysis?.hasNumeric && analysis?.hasString;\r\n };\r\n\r\n /**\r\n * True if indices are exactly 0, 1, 2, ..., n (dense, sequential from 0).\r\n * @param {number[]} indices - Sorted array of indices\r\n * @returns {boolean}\r\n */\r\n const isDenseSequential = (indices) => {\r\n if (indices.length === 0) return false;\r\n const sorted = [...indices].sort((a, b) => a - b);\r\n for (let j = 0; j < sorted.length; j++) {\r\n if (sorted[j] !== j) return false;\r\n }\r\n return true;\r\n };\r\n\r\n /**\r\n * True if numeric keys under this path should be treated as array indices.\r\n * With numericKeysAlwaysArray: always true when path has numeric children.\r\n * Otherwise: true only when indices are dense 0..n.\r\n * @param {string} parentPath - Path to the container that has numeric children\r\n * @returns {boolean}\r\n */\r\n const useArrayForNumericPath = (parentPath) => {\r\n const set = numericIndicesByPath.get(parentPath);\r\n if (!set || set.size === 0) return true;\r\n if (numericKeysAlwaysArray) return true;\r\n return isDenseSequential([...set]);\r\n };\r\n\r\n /**\r\n * Convertit un tableau en objet en préservant les indices numériques comme propriétés\r\n * @param {Array} arr - Le tableau à convertir\r\n * @returns {Object} L'objet résultant\r\n */\r\n const arrayToObject = (arr) => {\r\n const obj = {};\r\n // Copier les indices numériques\r\n for (let idx = 0; idx < arr.length; idx++) {\r\n obj[idx] = arr[idx];\r\n }\r\n // Copier les propriétés non-numériques\r\n for (const [k, v] of Object.entries(arr)) {\r\n const numKey = Number.parseInt(k, 10);\r\n if (Number.isNaN(numKey) || k !== String(numKey)) {\r\n obj[k] = v;\r\n }\r\n }\r\n return obj;\r\n };\r\n\r\n /**\r\n * Convertit un objet en tableau en préservant les indices numériques\r\n * @param {Object} obj - L'objet à convertir\r\n * @returns {Array} Le tableau résultant\r\n */\r\n const objectToArray = (obj) => {\r\n if (Array.isArray(obj)) return obj;\r\n const arr = [];\r\n if (typeof obj === 'object' && obj !== null) {\r\n for (const [k, v] of Object.entries(obj)) {\r\n const numKey = Number.parseInt(k, 10);\r\n if (!Number.isNaN(numKey)) {\r\n arr[numKey] = v;\r\n }\r\n }\r\n }\r\n return arr;\r\n };\r\n\r\n /**\r\n * Assure qu'un conteneur est un objet, en convertissant si nécessaire\r\n * @param {*} container - Le conteneur à vérifier\r\n * @param {string|null} key - La clé dans le conteneur parent\r\n * @param {Object|null} parent - Le conteneur parent\r\n * @param {boolean} forceObject - Forcer la conversion en objet même s'il n'y a pas de conflit\r\n * @returns {Object} Le conteneur (converti en objet si nécessaire)\r\n */\r\n const ensureObject = (container, key, parent, forceObject = false) => {\r\n if (Array.isArray(container)) {\r\n const obj = arrayToObject(container);\r\n if (parent && key !== null) {\r\n parent[key] = obj;\r\n }\r\n return obj;\r\n }\r\n if (typeof container !== 'object' || container === null) {\r\n const obj = {};\r\n if (parent && key !== null) {\r\n parent[key] = obj;\r\n }\r\n return obj;\r\n }\r\n return container;\r\n };\r\n\r\n /**\r\n * Assure qu'un conteneur est un tableau, en convertissant si nécessaire\r\n * @param {*} container - Le conteneur à vérifier\r\n * @param {string|null} key - La clé dans le conteneur parent\r\n * @param {Object|null} parent - Le conteneur parent\r\n * @returns {Array} Le conteneur (converti en tableau si nécessaire)\r\n */\r\n const ensureArray = (container, key, parent) => {\r\n if (!Array.isArray(container)) {\r\n const arr = objectToArray(container);\r\n if (parent && key !== null) {\r\n parent[key] = arr;\r\n }\r\n return arr;\r\n }\r\n return container;\r\n };\r\n\r\n // ============================================================================\r\n // PHASE 2 : TRAITEMENT DES VALEURS\r\n // ============================================================================\r\n \r\n /**\r\n * Traite une valeur finale (dernière partie du chemin)\r\n * @param {*} container - Le conteneur actuel\r\n * @param {Object} part - La partie à traiter\r\n * @param {*} value - La valeur à assigner\r\n * @param {Object} parent - Le conteneur parent\r\n * @param {string} basePath - Le chemin de base pour la détection de conflit\r\n * @param {string} parentPath - Chemin du conteneur actuel (pour heuristique numeric)\r\n */\r\n const processFinalValue = (container, part, value, parent, basePath, parentPath) => {\r\n if (part.type === 'array') {\r\n // Tableau explicite avec []\r\n container[part.name] ??= [];\r\n if (Array.isArray(container[part.name])) {\r\n container[part.name].push(value);\r\n } else {\r\n container[part.name] = [container[part.name], value];\r\n }\r\n } else if (part.type === 'numeric') {\r\n const { index } = part;\r\n const useArray = useArrayForNumericPath(parentPath);\r\n if (useArray) {\r\n container = ensureArray(container, parent.key, parent.container);\r\n while (container.length <= index) {\r\n container.push(undefined);\r\n }\r\n container[index] = value;\r\n } else {\r\n container = ensureObject(container, parent.key, parent.container, true);\r\n container[index] = value;\r\n }\r\n } else {\r\n // Clé simple finale\r\n const conflict = hasConflict(basePath);\r\n \r\n if (conflict) {\r\n container = ensureObject(container, parent.key, parent.container, true);\r\n if (Array.isArray(container[part.name])) {\r\n container[part.name] = arrayToObject(container[part.name]);\r\n }\r\n if (container[part.name] !== undefined && \r\n (typeof container[part.name] !== 'object' || container[part.name] === null)) {\r\n container[part.name] = value;\r\n } else if (container[part.name] === undefined) {\r\n container[part.name] = value;\r\n } else if (Array.isArray(container[part.name])) {\r\n container[part.name].push(value);\r\n } else {\r\n container[part.name] = [container[part.name], value];\r\n }\r\n } else {\r\n if (container[part.name] === undefined) {\r\n container[part.name] = value;\r\n } else if (Array.isArray(container[part.name])) {\r\n container[part.name].push(value);\r\n } else {\r\n container[part.name] = [container[part.name], value];\r\n }\r\n }\r\n }\r\n };\r\n \r\n /**\r\n * Traite une partie intermédiaire (crée la structure)\r\n * @param {*} container - Le conteneur actuel\r\n * @param {Object} part - La partie à traiter\r\n * @param {Object|null} nextPart - La partie suivante (peut être null)\r\n * @param {Object} parent - Le conteneur parent\r\n * @param {string} basePath - Le chemin de base pour la détection de conflit\r\n * @param {Array} parts - Toutes les parties du chemin (pour construire le chemin complet dans les erreurs)\r\n * @param {number} i - L'index de la partie actuelle (pour construire le chemin complet dans les erreurs)\r\n * @param {string} key - La clé du formulaire (pour les messages d'erreur)\r\n * @returns {*} Le nouveau conteneur après traitement\r\n */\r\n const processIntermediatePart = (container, part, nextPart, parent, basePath, parts, i, key) => {\r\n if (part.type === 'numeric') {\r\n const { index } = part;\r\n const parentPath = buildPathString(parts.slice(0, i));\r\n const useArray = useArrayForNumericPath(parentPath) && !hasConflict(basePath);\r\n \r\n if (!useArray) {\r\n container = ensureObject(container, parent.key, parent.container, true);\r\n container[index] ??= {};\r\n if (typeof container[index] !== 'object' || container[index] === null) {\r\n const pathParts = parts.slice(0, i + 1);\r\n const currentPath = buildPathString(pathParts);\r\n throw new Error(\r\n `Cannot access property on primitive value. ` +\r\n `Key \"${key}\" tries to access \"${currentPath}\" but it is already a ${typeof container[index]} value: ${JSON.stringify(container[index])}. ` +\r\n `This should have been detected during conflict detection phase.`\r\n );\r\n }\r\n } else {\r\n container = ensureArray(container, parent.key, parent.container);\r\n while (container.length <= index) {\r\n container.push(undefined);\r\n }\r\n container[index] ??= {};\r\n if (typeof container[index] !== 'object' || container[index] === null) {\r\n const pathParts = parts.slice(0, i + 1);\r\n const currentPath = buildPathString(pathParts);\r\n throw new Error(\r\n `Cannot access property on primitive value. ` +\r\n `Key \"${key}\" tries to access \"${currentPath}\" but it is already a ${typeof container[index]} value: ${JSON.stringify(container[index])}. ` +\r\n `This should have been detected during conflict detection phase.`\r\n );\r\n }\r\n }\r\n return container[index];\r\n }\r\n \r\n // Clé normale : créer objet ou tableau selon la partie suivante\r\n const nextIsNumeric = nextPart?.type === 'numeric';\r\n const conflict = hasConflict(basePath);\r\n \r\n if (conflict) {\r\n // Conflit : toujours utiliser un objet\r\n container = ensureObject(container, parent.key, parent.container, true);\r\n container[part.name] ??= {};\r\n if (Array.isArray(container[part.name])) {\r\n container[part.name] = arrayToObject(container[part.name]);\r\n } else if (typeof container[part.name] !== 'object' || container[part.name] === null) {\r\n // Cette erreur ne devrait jamais se produire si la détection fonctionne correctement\r\n const pathParts = parts.slice(0, i + 1);\r\n const currentPath = buildPathString(pathParts);\r\n throw new Error(\r\n `Cannot access property on primitive value. ` +\r\n `Key \"${key}\" tries to access \"${currentPath}\" but it is already a ${typeof container[part.name]} value: ${JSON.stringify(container[part.name])}. ` +\r\n `This should have been detected during conflict detection phase.`\r\n );\r\n }\r\n } else if (container[part.name] === undefined) {\r\n // Pas de conflit, créer selon la partie suivante\r\n container[part.name] = nextIsNumeric ? [] : {};\r\n } else if (nextIsNumeric && !Array.isArray(container[part.name])) {\r\n // On a besoin d'un tableau mais c'est un objet\r\n const hasStringKeys = Object.keys(container[part.name]).some(k => {\r\n const numKey = Number.parseInt(k, 10);\r\n return Number.isNaN(numKey) || k !== String(numKey);\r\n });\r\n if (!hasStringKeys) {\r\n container[part.name] = objectToArray(container[part.name]);\r\n }\r\n } else if (!nextIsNumeric && !isPlainObject(container[part.name])) {\r\n // On a besoin d'un objet mais c'est un tableau\r\n if (Array.isArray(container[part.name])) {\r\n container[part.name] = arrayToObject(container[part.name]);\r\n } else {\r\n container[part.name] = {};\r\n }\r\n }\r\n \r\n // S'assurer que container[part.name] est bien un objet après toutes les conversions\r\n if (container[part.name] !== undefined && \r\n (typeof container[part.name] !== 'object' || container[part.name] === null)) {\r\n // Cette erreur ne devrait jamais se produire si la détection fonctionne correctement\r\n const pathParts = parts.slice(0, i + 1);\r\n const currentPath = buildPathString(pathParts);\r\n throw new Error(\r\n `Cannot access property on primitive value. ` +\r\n `Key \"${key}\" tries to access \"${currentPath}\" but it is already a ${typeof container[part.name]} value: ${JSON.stringify(container[part.name])}. ` +\r\n `This should have been detected during conflict detection phase.`\r\n );\r\n }\r\n return container[part.name];\r\n };\r\n \r\n // Traiter toutes les entrées\r\n for (const { value, key } of allEntries) {\r\n if (!key) continue;\r\n\r\n const parts = parseKey(key);\r\n const path = [{ container: jsonData, key: null }];\r\n let container = jsonData;\r\n const basePath = parts[0]?.type === 'key' ? parts[0].name : '';\r\n\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n const isLast = i === parts.length - 1;\r\n const nextPart = i + 1 < parts.length ? parts[i + 1] : null;\r\n const parent = path[path.length - 1];\r\n\r\n if (isLast) {\r\n const parentPath = buildPathString(parts.slice(0, i));\r\n processFinalValue(container, part, value, parent, basePath, parentPath);\r\n } else {\r\n // Partie intermédiaire : créer la structure\r\n const newContainer = processIntermediatePart(container, part, nextPart, parent, basePath, parts, i, key);\r\n path.push({ container, key: part.type === 'numeric' ? part.index : part.name });\r\n container = newContainer;\r\n }\r\n }\r\n }\r\n\r\n return jsonData;\r\n};\r\n\r\n/**\r\n * Parse une clé de formulaire pour extraire les parties (nom, indices, etc.)\r\n * @param {string} key - La clé à parser (ex: \"user[email]\", \"tags[]\", \"items[0][name]\")\r\n * @returns {Array<{name: string, type: string, index?: number}>} Tableau des parties parsées\r\n * @private\r\n */\r\nconst parseKey = (key) => {\r\n const parts = [];\r\n let current = '';\r\n let i = 0;\r\n const len = key.length;\r\n\r\n while (i < len) {\r\n const char = key[i];\r\n \r\n if (char === '[') {\r\n // Sauvegarder la partie précédente si elle existe\r\n if (current) {\r\n parts.push({ name: current, type: 'key' });\r\n current = '';\r\n }\r\n \r\n // Trouver la fin du crochet\r\n i++;\r\n let bracketContent = '';\r\n while (i < len && key[i] !== ']') {\r\n bracketContent += key[i];\r\n i++;\r\n }\r\n \r\n if (bracketContent === '') {\r\n // [] vide = tableau\r\n const lastPart = parts[parts.length - 1];\r\n if (lastPart) {\r\n lastPart.type = 'array';\r\n } else {\r\n // [] au début, créer une partie spéciale\r\n parts.push({ name: '', type: 'array' });\r\n }\r\n } else {\r\n // Contenu dans les crochets\r\n const numIndex = Number.parseInt(bracketContent, 10);\r\n if (!Number.isNaN(numIndex) && bracketContent === String(numIndex)) {\r\n // Indice numérique\r\n parts.push({ name: String(numIndex), type: 'numeric', index: numIndex });\r\n } else {\r\n // Nom de propriété\r\n parts.push({ name: bracketContent, type: 'key' });\r\n }\r\n }\r\n i++; // Passer le ']'\r\n } else {\r\n current += char;\r\n i++;\r\n }\r\n }\r\n \r\n // Ajouter la dernière partie si elle existe\r\n if (current) {\r\n parts.push({ name: current, type: 'key' });\r\n }\r\n \r\n return parts;\r\n};\r\n\r\n/**\r\n * Vérifie si une valeur est un objet simple (pas un tableau, pas null)\r\n * @param {*} obj - La valeur à vérifier\r\n * @returns {boolean}\r\n * @private\r\n */\r\nconst isPlainObject = (obj) => {\r\n return typeof obj === 'object' && obj !== null && !Array.isArray(obj);\r\n};\r\n","import './css/tristate.css';\n\n/**\n * Creates a tri-state checkbox for each checkbox element in the apx.elements array.\n * @param {Array<HTMLElement>} apx - An array of HTMLElements which is returned by APX()\n * @example\n * // Call the tristate function on an array of checkbox elements\n * apx.tristate();\n */\nexport default function (apx) {\n apx.tristate = function (options = {}){\n apx.elements.forEach((element) => {\n if (element.type === 'checkbox') {\n const [originalCheckbox, tristateDom, hiddenInput] = createTriStateCheckbox(element, options);\n originalCheckbox._apxTristate = { dom: tristateDom, hiddenInput };\n if (options.callbacks && options.callbacks.after && typeof options.callbacks.after === 'function') {\n options.callbacks.after(originalCheckbox, tristateDom, hiddenInput);\n }\n }\n });\n return {\n setChildren(childrenApx) {\n return setChildren(apx, childrenApx, options);\n }\n };\n };\n}\n\n/**\n * Link parent tristate(s) to child checkboxes. When exactly one parent: that parent gets\n * indeterminate-dash automatically and shows dash when children are mixed; click parent to apply its state to all children.\n * @param {Object} parentApx - APX instance whose elements are the parent checkbox(es)\n * @param {Object} childrenApx - APX instance whose elements are the child checkbox(es)\n * @param {Object} options - Options used for the parent (and applied to children when initializing them)\n */\nfunction setChildren(parentApx, childrenApx, options) {\n const parents = parentApx.all().filter((el) => el.type === 'checkbox');\n if (parents.length === 0) return;\n if (parents.length > 1) {\n console.warn('APX tristate setChildren: only the first parent is linked to all children.');\n }\n const parentCheckbox = parents[0];\n const parentRef = parentCheckbox._apxTristate;\n if (!parentRef) return;\n\n const parentDom = parentRef.dom;\n const parentHiddenInput = parentRef.hiddenInput;\n\n // Automatically enable indeterminate (dash) on parent when it has children: dash shows only when children are mixed (--mixed)\n parentDom.classList.add('apx-tristate--unchecked-indeterminate', 'apx-tristate--indeterminate-dash');\n\n const childCheckboxes = childrenApx.all().filter((el) => el.type === 'checkbox');\n const childRefs = [];\n\n function syncParentFromChildren() {\n if (childRefs.length === 0) return;\n const states = childRefs.map((ref) => getTristateState(ref.dom));\n const allChecked = states.every((s) => s === 'checked');\n const allCrossed = states.every((s) => s === 'crossed');\n const allUnchecked = states.every((s) => s === 'unchecked');\n const mixed = !allChecked && !allCrossed && !allUnchecked;\n\n parentDom.classList.remove('unchecked', 'checked', 'crossed');\n if (mixed) parentDom.classList.add('apx-tristate--mixed');\n else parentDom.classList.remove('apx-tristate--mixed');\n\n if (allChecked) {\n parentDom.classList.add('checked');\n parentHiddenInput.value = 'true';\n } else if (allCrossed) {\n parentDom.classList.add('crossed');\n parentHiddenInput.value = 'false';\n } else {\n parentDom.classList.add('unchecked');\n parentHiddenInput.removeAttribute('name');\n parentHiddenInput.removeAttribute('value');\n }\n }\n\n function applyParentToChildren() {\n const parentState = getTristateState(parentDom);\n childRefs.forEach((ref) => setTristateState(ref.checkbox, ref.dom, ref.hiddenInput, parentState));\n }\n\n const childOptions = {\n ...options,\n callbacks: {\n after(checkbox, dom, hiddenInput) {\n childRefs.push({ checkbox, dom, hiddenInput });\n },\n change: syncParentFromChildren\n }\n };\n\n childrenApx.tristate(childOptions);\n\n syncParentFromChildren();\n parentDom.addEventListener('click', () => setTimeout(applyParentToChildren, 0));\n}\n\nfunction getTristateState(dom) {\n if (dom.classList.contains('checked')) return 'checked';\n if (dom.classList.contains('crossed')) return 'crossed';\n return 'unchecked';\n}\n\nfunction setTristateState(checkbox, dom, hiddenInput, state) {\n dom.classList.remove('unchecked', 'checked', 'crossed');\n dom.classList.add(state);\n const name = checkbox.dataset.name || checkbox.getAttribute('data-name') || checkbox.name || '';\n if (state === 'checked') {\n hiddenInput.value = 'true';\n if (name) hiddenInput.setAttribute('name', name);\n checkbox.checked = true;\n } else if (state === 'crossed') {\n hiddenInput.value = 'false';\n if (name) hiddenInput.setAttribute('name', name);\n checkbox.checked = false;\n } else {\n hiddenInput.removeAttribute('name');\n hiddenInput.removeAttribute('value');\n checkbox.checked = false;\n }\n}\n\nfunction toggleTriStateCheckboxState(customCheckbox, actualCheckbox, hiddenInput) {\n const wasChecked = customCheckbox.classList.contains('checked');\n const wasCrossed = customCheckbox.classList.contains('crossed');\n customCheckbox.classList.remove('unchecked', 'checked', 'crossed');\n if (wasChecked) {\n customCheckbox.classList.add('crossed');\n actualCheckbox.checked = false;\n hiddenInput.value = 'false';\n } else if (wasCrossed) {\n customCheckbox.classList.add('unchecked');\n hiddenInput.removeAttribute('name'); // Ensure the hidden input doesn't post any value\n hiddenInput.removeAttribute('value'); // Ensure the hidden input doesn't post any value\n } else {\n customCheckbox.classList.add('checked');\n actualCheckbox.checked = true;\n hiddenInput.value = 'true';\n hiddenInput.setAttribute('name', actualCheckbox.dataset.name); // Restore the name for posting\n }\n}\n\nfunction createTriStateCheckbox(checkboxElement, options) {\n \n //get the checkbox margins including browser default\n const checkboxStyle = window.getComputedStyle(checkboxElement);\n // Hide the original checkbox\n checkboxElement.style.display = 'none';\n\n // Create the custom checkbox div and set its initial state\n const tristateDom = document.createElement('div');\n tristateDom.classList.add('apx-tristate');\n if (options.size) {\n if (options.size.width != null) {\n const w = options.size.width;\n if (typeof w !== 'number' && typeof w !== 'string') {\n throw new TypeError('tristate size.width must be a number (px) or a string (CSS length).');\n }\n tristateDom.style.width = typeof w === 'number' ? w + 'px' : String(w);\n }\n if (options.size.height != null) {\n const h = options.size.height;\n if (typeof h !== 'number' && typeof h !== 'string') {\n throw new TypeError('tristate size.height must be a number (px) or a string (CSS length).');\n }\n tristateDom.style.height = typeof h === 'number' ? h + 'px' : String(h);\n }\n }\n if(options.classes) tristateDom.classList.add(...computeClasses(options.classes));\n const colors = resolveColors(options);\n if (colors.tick != null) tristateDom.style.setProperty('--apx-tristate-tick-color', String(colors.tick));\n if (colors.checked != null) tristateDom.style.setProperty('--apx-tristate-checked-color', String(colors.checked));\n if (colors.crossed != null) tristateDom.style.setProperty('--apx-tristate-crossed-color', String(colors.crossed));\n\n tristateDom.style.margin = checkboxStyle.margin;\n\n if (checkboxElement.checked) {\n tristateDom.classList.add('checked');\n } else {\n tristateDom.classList.add('unchecked');\n }\n\n // Create the hidden input field\n const hiddenInput = document.createElement('input');\n hiddenInput.type = 'hidden';\n hiddenInput.name = checkboxElement.name; // Copy the name from the original checkbox\n checkboxElement.dataset.name = checkboxElement.name; // Store the name in a data attribute for later use\n checkboxElement.removeAttribute('name'); // Remove the name from the original checkbox to avoid double posting\n\n if (options.defaultState) setDefaultState(options, tristateDom, hiddenInput);\n else{\n // Set the initial value for the hidden input based on the checkbox's state\n if (checkboxElement.checked) {\n hiddenInput.value = 'true';\n } else {\n hiddenInput.name = ''; // Ensure the hidden input doesn't post any value\n hiddenInput.value = '';\n }\n }\n\n //handle accessibility, set the tabindex to the same as the checkbox\n tristateDom.tabIndex = checkboxElement.tabIndex;\n\n // Insert the hidden input inside the custom checkbox div\n tristateDom.appendChild(hiddenInput);\n\n // Insert it next to the actual checkbox\n checkboxElement.parentNode.insertBefore(tristateDom, checkboxElement.nextSibling);\n\n // Add event listener\n tristateDom.addEventListener('click', function (e) {\n toggleTriStateCheckboxState(tristateDom, checkboxElement, hiddenInput);\n bubbleEventsToOriginalCheckbox(options, checkboxElement, tristateDom, hiddenInput, e);\n });\n tristateDom.addEventListener('keyup', onkeyup.bind(null, checkboxElement));\n\n return [checkboxElement, tristateDom, hiddenInput];\n}\n\nfunction setDefaultState(options, tristateDom, hiddenInput) {\n // Ensure only one state class is set (uncheckedAppearance modifiers must not affect checked/crossed)\n tristateDom.classList.remove('unchecked', 'checked', 'crossed');\n if (options.defaultState === 'checked') {\n tristateDom.classList.add('checked');\n hiddenInput.value = 'true';\n }\n else if (options.defaultState === 'unchecked') {\n tristateDom.classList.add('unchecked');\n hiddenInput.removeAttribute('name'); // Ensure the hidden input doesn't post any value\n hiddenInput.removeAttribute('value'); // Ensure the hidden input doesn't post any value\n }\n else if (options.defaultState === 'crossed') {\n tristateDom.classList.add('crossed');\n hiddenInput.value = 'false';\n }\n}\n\nfunction computeClasses(classes) {\n let computedClasses = [];\n if(typeof classes === 'string') {\n //replace multiple white spaces with a single space\n classes = classes.replace(/\\s\\s+/g, ' ');\n if(classes.indexOf(' ') > -1)\n computedClasses = classes.split(' ');\n else if(classes.indexOf(',') > -1)\n computedClasses = classes.split(',');\n else\n computedClasses = [classes];\n }\n else if(Array.isArray(classes)) {\n computedClasses = classes;\n }\n return computedClasses;\n}\n\nfunction resolveColors(options) {\n const c = options.colors || {};\n return {\n tick: c.tick != null ? c.tick : options.tickColor,\n checked: c.checked != null ? c.checked : options.checkedColor,\n crossed: c.crossed != null ? c.crossed : options.crossedColor\n };\n}\n\nfunction bubbleEventsToOriginalCheckbox(options, checkboxElement, tristateDom, hiddenInput, event) {\n //if options.callbacks.change is set, call it\n if(options.callbacks && options.callbacks.change && typeof options.callbacks.change === 'function') {\n options.callbacks.change(checkboxElement, tristateDom, hiddenInput);\n }\n\n if(!options.bubbleEvents) return;\n\n if(event.type === 'click') {\n checkboxElement.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true }));\n }\n else if(event.type === 'keyup') {\n checkboxElement.dispatchEvent(new KeyboardEvent('keyup', { key: ' ', bubbles: true, cancelable: true }));\n }\n else if(event.type === 'change') {\n checkboxElement.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));\n }\n}\n\nfunction onkeyup(checkboxElement, event) {\n if (event.keyCode === 32) {\n bubbleEventsToOriginalCheckbox(checkboxElement, event);\n event.preventDefault();\n event.target.click();\n }\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"main\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","__webpack_require__.nc = undefined;","import augmentWithListen from './modules/listen/listen.mjs';\nimport augmentWithTristate from './modules/tristate/tristate.mjs';\nimport augmentWithScrollableTable from './modules/scrollableTable/scrollableTable.mjs';\nimport dialog from './modules/dialog/dialog.mjs';\nimport toast from './modules/toast/toast.mjs';\nimport { loadCss } from './modules/common.mjs';\nimport { augmentWithPack, tools } from './modules/tools/exports.mjs';\n\n/**\n * Creates an APX object that wraps one or more HTML elements.\n * @param {string|HTMLElement|NodeList|HTMLCollection|Array<HTMLElement>|jQuery|Function} input - The input to create the APX object from.\n * @returns {Object} The APX object.\n * @throws {Error} If the input type is invalid.\n * @example\n * // XPath\n * const apx1 = APX('//div[@class=\"example\"]');\n *\n * // CSS selector\n * const apx2 = APX('.example');\n *\n * // Single element\n * const element = document.querySelector('.example');\n * const apx3 = APX(element);\n *\n * // NodeList or HTMLCollection\n * const nodeList = document.querySelectorAll('.example');\n * const apx4 = APX(nodeList);\n *\n * // Array of elements\n * const elements = [document.querySelector('.example1'), document.querySelector('.example2')];\n * const apx5 = APX(elements);\n *\n * // jQuery object\n * const $example = $('.example');\n * const apx6 = APX($example);\n *\n * // Function returning an APX object\n * const apx7 = APX(() => APX('.example'));\n */\nconst APX = function (input, context = document) {\n let elements;\n\n // Validate context\n if (typeof context === 'string') {\n context = document.querySelector(context);\n }\n else if (APX.isAPXObject(context)) {\n context = context.first();\n } else if (!(context instanceof HTMLElement || context instanceof Document)) {\n throw new Error('Invalid context for APX');\n }\n\n if (typeof input === 'string' && input.startsWith('//')) {\n // XPath with context\n elements = document.evaluate(input, context, null, XPathResult.ANY_TYPE, null);\n let nodes = [];\n let node = elements.iterateNext();\n while (node) {\n nodes.push(node);\n node = elements.iterateNext();\n }\n elements = nodes;\n } else if (typeof input === 'string') {\n // CSS selector with context\n elements = context.querySelectorAll(input);\n } else if (input instanceof HTMLElement) {\n // Single element within context\n elements = context.contains(input) ? [input] : [];\n } else if (input instanceof NodeList || input instanceof HTMLCollection) {\n // NodeList or HTMLCollection within context\n elements = Array.from(input).filter(el => context.contains(el));\n } else if (Array.isArray(input) && input.every(el => el instanceof HTMLElement)) {\n // Array of elements within context\n elements = input.filter(el => context.contains(el));\n } else if (typeof jQuery != 'undefined' && input instanceof jQuery) {\n // jQuery object within context\n elements = Array.from(input.get()).filter(el => context.contains(el));\n } else if (typeof input === 'function') {\n // Function returning an APX object with context\n elements = APX(input(), context);\n } else {\n throw new Error('Invalid input type for APX');\n }\n\n var apx = {\n elements: elements,\n _isAPXObject: true\n };\n apx.length = elements.length;\n apx.each = function (callback) {\n if (this.elements instanceof Array) this.elements.forEach(callback);\n if (this.elements instanceof NodeList) Array.from(this.elements).forEach(callback);\n return this;\n };\n apx.get = function (index) {\n return this.elements[index];\n };\n apx.all = function () {\n if (this.elements instanceof Array) return this.elements;\n if (this.elements instanceof NodeList) return Array.from(this.elements);\n return this;\n };\n apx.first = function () {\n return this.get(0);\n };\n augmentWithListen(apx);\n augmentWithTristate(apx);\n augmentWithScrollableTable(apx);\n augmentWithPack(apx);\n return apx;\n};\n\nAPX.loadCss = loadCss;\nAPX.dialog = dialog;\nAPX.toast = toast;\nAPX.tools = tools;\nAPX.isAPXObject = function (obj) {\n return obj && obj._isAPXObject === true;\n}\nAPX.is_numeric = (n) => {\n return !isNaN(n - parseFloat(n));\n}\n\nexport default APX;"],"names":["loadCss","url","fetch","then","response","text","css","styleSheet","document","createElement","type","textContent","head","appendChild","error","console","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_toPrimitive","String","input","hint","prim","toPrimitive","res","Number","dialogTemplate","createDialog","options","dialogDefaults","title","content","contentURI","buttons","size","showLoadingIndicator","contentMethod","contentData","contentHeaders","_dialogDefaults$optio","wrapper","innerHTML","trim","dialogElement","firstChild","lifecycleResolvers","lifecycleEvents","event","triggerEvent","warn","concat","dialog","element","isClosed","lifecycle","disableButton","button","querySelector","disabled","classList","add","enableButton","remove","open","_open","_callee","_callee$","_context","opening","body","style","display","fetchAndInsertContent","opened","t0","close","_close","_callee2","_callee2$","_context2","closing","closeDialogAndCleanup","closed","contains","removeChild","setDialogSize","dialogContent","sizes","small","width","height","medium","large","selectedSize","minWidth","minHeight","addButtons","buttonContainer","_ref","label","_ref$order","order","_ref$align","align","_ref$closeOnClick","closeOnClick","setAttribute","buttonContext","disable","enable","firstClickResolved","firstClickPromise","onclick","handlers","clickPromise","callback","handler","justifyContent","_ref2","_callee3","originalCursor","dynamicContent","contentHtml","_callee3$","_context3","cursor","contentLoading","fetchContent","contentLoaded","t1","_ref3","_callee4","uri","headers","hasContentType","init","isFormData","isURLSearchParams","isBlob","isString","isPlainObject","_callee4$","_context4","toUpperCase","some","k","toLowerCase","FormData","URLSearchParams","Blob","JSON","stringify","ok","statusText","_x","counter","doCallbacks","timeouts","apx","elements","listen","eventTypes","secondArgument","thirdArgument","selector","uniqueId","generateUniqueId","timeoutDuration","timeout","Array","isArray","eventType","addEventListener","executeCallbacks","_do","doCallback","trigger","Event","bubbles","cancelable","dispatchEvent","callbackDetails","target","matches","matchedElement","closest","clearTimeout","handleCallbackExecution","reduce","prevPromise","result","bind","setTimeout","randomPart","Math","random","toString","substr","Date","now","nodeType","parentNode","DATA_KEY","CLASS_TABLE","DEFAULT_MAX_HEIGHT","getColumnCountFromSection","section","firstRow","cols","querySelectorAll","cell","parseInt","getAttribute","getTableColumnCount","table","thead","tbody","countFromThead","countFromTbody","getRowCount","computeCellPlacements","numRows","numCols","occupied","from","fill","placements","rows","tr","cells","_iterator","_createForOfIteratorHelper","_step","colspan","min","rowspan","col","free","rr","cc","_occupied$rr","row","applyPlacements","gridRow","gridColumn","clearPlacements","normalizeMaxHeight","applyScrollableTable","tfoot","theadRows","tbodyRows","tfootRows","setProperty","max","maxHeight","toggle","sections","augmentWithScrollableTable","scrollableTable","optionsOrAction","isRefresh","tagName","ref","isBrowser","window","_containerCache","Map","GC_DELAY_MS","_gcTimeoutId","_toastWrapper","getToastWrapper","createEl","position","top","left","pointerEvents","zIndex","DEFAULT_CONFIG","maxToasts","defaultDurationMs","ariaLive","gap","dedupe","containerClass","offset","progress","tag","classNames","el","split","Boolean","getProgressPauseResumeIconSVG","paused","createProgressBlock","toastEl","contentEl","closeBtn","progressOpt","pos","showPauseButton","pauseButton","track","bar","pauseBtn","insertBefore","applyProgressPosition","progressWrap","nextElementSibling","resolveProgress","option","configDefault","fromConfig","normalizePlacement","placement","synonyms","determineFlow","includes","x","startsWith","num","parseFloat","cleanupEmptyContainers","containers","container","children","positionKey","scheduleGarbageCollection","findScrollableParents","scrollables","current","parentElement","documentElement","getComputedStyle","overflow","overflowY","overflowX","hashElement","rect","getBoundingClientRect","str","hash","char","charCodeAt","abs","serializePosition","parts","_position$element$dat","elementId","id","dataset","apxToastAnchorId","normalized","useNativeCSS","join","ToastManager","config","_classCallCheck","idToRef","_createClass","configure","applyContainerConfig","setAriaLive","mode","getOpenToasts","show","opts","_this","normalizeOptions","has","get","update","flow","finalFlow","ensureContainer","toastId","className","message","dismissible","progressBarEl","progressPauseBtn","durationMs","created","positionUpdateFn","positionCleanup","originalElementStyle","targetEl","nativeContainer","flexDirection","right","substring","bottom","getContainerForPosition","updateContainerPosition","styles","calculatePosition","assign","rafId","lastUpdate","throttleMs","throttledUpdate","cancelAnimationFrame","requestAnimationFrame","scrollableParents","passive","parent","observer","MutationObserver","observe","childList","subtree","removeEventListener","disconnect","remaining","timerId","startTs","userPaused","progressRafId","click","Set","startTimer","tick","elapsed","remainingMs","pct","round","pauseTimer","attachProgressPauseHandler","btn","ev","stopPropagation","reason","cleanup","partial","merged","_toastEl$classList","_toastEl$classList2","_toConsumableArray","whenClosed","closedPromise","on","off","notify","_","onClose","idx","indexOf","splice","removeEl","onClick","set","oldest","success","warning","danger","closeAll","all","managed","posClass","hasAttribute","_this2","_this$container$class","posClasses","map","cls","containerEl","parseOffset","val","offsetX","offsetY","parseGap","gapPx","innerHeight","innerWidth","createToastManager","_defaultManager","_getDefault","toast","nameOrConfig","maybeConfig","manager","custom","use","Manager","augmentWithPack","packFormToJSON","tools","pack","firstElement","first","form","HTMLFormElement","numericKeysAlwaysArray","formData","jsonData","buildPathString","path","part","index","pathUsage","keyAnalysis","numericIndicesByPath","allEntries","recordPathUsage","currentPath","isFinal","isArraySuffix","_pathUsage$get","usage","isIntermediate","hasArraySuffix","_usage$key","entries","_step$value","_slicedToArray","parseKey","isLast","parentPath","nextPart","_keyAnalysis$get","basePath","analysis","hasNumeric","hasString","detectPathConflicts","finalPaths","finalPathKeys","_iterator2","_step2","_step2$value","_iterator3","_step3","_step3$value","_iterator4","_step4","finalPath","hasConflict","isDenseSequential","indices","sorted","sort","b","j","useArrayForNumericPath","arrayToObject","arr","_i","_Object$entries","_Object$entries$_i","numKey","objectToArray","_i2","_Object$entries2","_Object$entries2$_i","ensureObject","forceObject","ensureArray","processFinalValue","_container","_part$name","_container$_part$name","useArray","conflict","processIntermediatePart","_container2","_container2$index","pathParts","_container3","_container3$index","nextIsNumeric","_container4","_part$name2","_container4$_part$nam","hasStringKeys","_i3","_allEntries","_parts$","_allEntries$_i","newContainer","len","bracketContent","lastPart","numIndex","tristate","_createTriStateCheckb","createTriStateCheckbox","_createTriStateCheckb2","originalCheckbox","tristateDom","hiddenInput","_apxTristate","dom","callbacks","after","setChildren","childrenApx","parentApx","parents","parentCheckbox","parentRef","parentDom","parentHiddenInput","childCheckboxes","childRefs","syncParentFromChildren","states","getTristateState","allChecked","every","allCrossed","allUnchecked","mixed","removeAttribute","applyParentToChildren","parentState","setTristateState","checkbox","childOptions","change","state","checked","toggleTriStateCheckboxState","customCheckbox","actualCheckbox","wasChecked","wasCrossed","checkboxElement","_tristateDom$classLis","checkboxStyle","w","classes","computeClasses","colors","resolveColors","crossed","margin","defaultState","setDefaultState","tabIndex","nextSibling","bubbleEventsToOriginalCheckbox","onkeyup","computedClasses","replace","tickColor","checkedColor","crossedColor","bubbleEvents","MouseEvent","KeyboardEvent","keyCode","preventDefault","augmentWithListen","augmentWithTristate","APX","context","isAPXObject","HTMLElement","Document","evaluate","XPathResult","ANY_TYPE","nodes","node","iterateNext","NodeList","HTMLCollection","jQuery","_isAPXObject","each","is_numeric"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"APX.standalone.js","mappings":";;;;;;;;;;;;;;;;;;AAAA;AACgH;AACjB;AAC/F,8BAA8B,mFAA2B,CAAC,4FAAqC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,WAAW;AACX;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,OAAO,uGAAuG,MAAM,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,YAAY,aAAa,OAAO,KAAK,YAAY,WAAW,UAAU,UAAU,YAAY,WAAW,UAAU,YAAY,aAAa,aAAa,OAAO,KAAK,UAAU,OAAO,KAAK,UAAU,UAAU,UAAU,YAAY,aAAa,aAAa,OAAO,MAAM,UAAU,YAAY,WAAW,OAAO,YAAY,SAAS,UAAU,UAAU,YAAY,aAAa,aAAa,aAAa,WAAW,YAAY,aAAa,OAAO,QAAQ,YAAY,aAAa,WAAW,OAAO,YAAY,MAAM,YAAY,aAAa,WAAW,UAAU,YAAY,aAAa,WAAW,UAAU,YAAY,aAAa,OAAO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BAA2B,uBAAuB,2BAA2B,GAAG,kCAAkC,oRAAoR,4QAA4Q,GAAG,kCAAkC,wRAAwR,gRAAgR,GAAG,mBAAmB;AACp5K;AACA,iEAAe,uBAAuB,EAAC;;;;;;;;;;;;AC3G1B;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,gDAAgD;AAChD;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,sFAAsF,qBAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,iDAAiD,qBAAqB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,sDAAsD,qBAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpFa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA;AACA;AACA;;;;;;;;;;ACfA;AACA,oIAAoI;AACpI;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA,MAAqG;AACrG,MAA2F;AAC3F,MAAkG;AAClG,MAAqH;AACrH,MAA8G;AAC9G,MAA8G;AAC9G,MAA0G;AAC1G;AACA;;AAEA;;AAEA,4BAA4B,qGAAmB;AAC/C,wBAAwB,kHAAa;;AAErC,uBAAuB,uGAAa;AACpC;AACA,iBAAiB,+FAAM;AACvB,6BAA6B,sGAAkB;;AAE/C,aAAa,0GAAG,CAAC,uFAAO;;;;AAIoD;AAC5E,OAAO,iEAAe,uFAAO,IAAI,uFAAO,UAAU,uFAAO,mBAAmB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB7E,MAAqG;AACrG,MAA2F;AAC3F,MAAkG;AAClG,MAAqH;AACrH,MAA8G;AAC9G,MAA8G;AAC9G,MAAmH;AACnH;AACA;;AAEA;;AAEA,4BAA4B,qGAAmB;AAC/C,wBAAwB,kHAAa;;AAErC,uBAAuB,uGAAa;AACpC;AACA,iBAAiB,+FAAM;AACvB,6BAA6B,sGAAkB;;AAE/C,aAAa,0GAAG,CAAC,gGAAO;;;;AAI6D;AACrF,OAAO,iEAAe,gGAAO,IAAI,gGAAO,UAAU,gGAAO,mBAAmB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB7E,MAAqG;AACrG,MAA2F;AAC3F,MAAkG;AAClG,MAAqH;AACrH,MAA8G;AAC9G,MAA8G;AAC9G,MAAyG;AACzG;AACA;;AAEA;;AAEA,4BAA4B,qGAAmB;AAC/C,wBAAwB,kHAAa;;AAErC,uBAAuB,uGAAa;AACpC;AACA,iBAAiB,+FAAM;AACvB,6BAA6B,sGAAkB;;AAE/C,aAAa,0GAAG,CAAC,sFAAO;;;;AAImD;AAC3E,OAAO,iEAAe,sFAAO,IAAI,sFAAO,UAAU,sFAAO,mBAAmB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB7E,MAAqG;AACrG,MAA2F;AAC3F,MAAkG;AAClG,MAAqH;AACrH,MAA8G;AAC9G,MAA8G;AAC9G,MAA4G;AAC5G;AACA;;AAEA;;AAEA,4BAA4B,qGAAmB;AAC/C,wBAAwB,kHAAa;;AAErC,uBAAuB,uGAAa;AACpC;AACA,iBAAiB,+FAAM;AACvB,6BAA6B,sGAAkB;;AAE/C,aAAa,0GAAG,CAAC,yFAAO;;;;AAIsD;AAC9E,OAAO,iEAAe,yFAAO,IAAI,yFAAO,UAAU,yFAAO,mBAAmB,EAAC;;;;;;;;;;;;AC1BhE;;AAEb;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnFa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTa;;AAEb;AACA;AACA,cAAc,KAAwC,GAAG,sBAAiB,GAAG,CAAI;AACjF;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTa;;AAEb;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Da;;AAEb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbA;AACA,SAAS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","sources":["webpack://APX/./modules/dialog/css/dialog.css","webpack://APX/./modules/scrollableTable/css/scrollableTable.css","webpack://APX/./modules/toast/css/toast.css","webpack://APX/./modules/tristate/css/tristate.css","webpack://APX/./node_modules/css-loader/dist/runtime/api.js","webpack://APX/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://APX/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://APX/./modules/dialog/html/dialog.html","webpack://APX/./modules/dialog/css/dialog.css?a567","webpack://APX/./modules/scrollableTable/css/scrollableTable.css?92fd","webpack://APX/./modules/toast/css/toast.css?8a48","webpack://APX/./modules/tristate/css/tristate.css?a094","webpack://APX/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://APX/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://APX/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://APX/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://APX/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://APX/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://APX/./modules/common.mjs","webpack://APX/./modules/dialog/dialog.mjs","webpack://APX/./modules/listen/listen.mjs","webpack://APX/./modules/scrollableTable/scrollableTable.mjs","webpack://APX/./modules/toast/toast.mjs","webpack://APX/./modules/tools/exports.mjs","webpack://APX/./modules/tools/form-packer/augment-apx.mjs","webpack://APX/./modules/tools/form-packer/packToJson.mjs","webpack://APX/./modules/tristate/tristate.mjs","webpack://APX/webpack/bootstrap","webpack://APX/webpack/runtime/compat get default export","webpack://APX/webpack/runtime/define property getters","webpack://APX/webpack/runtime/hasOwnProperty shorthand","webpack://APX/webpack/runtime/make namespace object","webpack://APX/webpack/runtime/jsonp chunk loading","webpack://APX/webpack/runtime/nonce","webpack://APX/./APX.mjs"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/* Dialog styling */\r\n.APX-dialog {\r\n display: none;\r\n position: fixed;\r\n z-index: 1002;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n overflow: auto;\r\n background-color: rgba(0, 0, 0, 0.4);\r\n /* Dimmed background for focus on dialog */\r\n}\r\n\r\n.APX-dialog-content {\r\n background-color: #fefefe;\r\n padding: 40px;\r\n border: none;\r\n width: auto;\r\n min-width: 300px;\r\n max-width: 80%;\r\n margin: auto;\r\n border-radius: 8px;\r\n box-shadow: 0px 6px 20px rgba(0, 0, 0, 0.1);\r\n font-family: 'Helvetica Neue', Arial, sans-serif;\r\n}\r\n\r\nh2.APX-dialog-title{\r\n margin-top:0;\r\n}\r\n\r\n.APX-close-dialog {\r\n color: #aaa;\r\n float: right;\r\n font-size: 24px;\r\n margin-top: -10px;\r\n /* Adjust positioning */\r\n margin-right: -10px;\r\n}\r\n\r\n.APX-close-dialog:hover,\r\n.APX-close-dialog:focus {\r\n color: #333;\r\n /* Darker color on hover/focus */\r\n cursor: pointer;\r\n}\r\n\r\n/* Input fields styling */\r\n.APX-dialog-content input[type=\"text\"],\r\n.APX-dialog-content input[type=\"number\"],\r\n.APX-dialog-content input[type=\"date\"],\r\n.APX-dialog-content input[type=\"datetime-local\"] {\r\n width: 100%;\r\n padding: 10px;\r\n margin-bottom: 20px;\r\n border: 1px solid #ccc;\r\n border-radius: 4px;\r\n font-family: 'Helvetica Neue', Arial, sans-serif;\r\n font-size: 16px;\r\n box-sizing: border-box;\r\n transition: border-color 0.3s;\r\n}\r\n\r\n.APX-dialog-content input[type=\"text\"]:focus,\r\n.APX-dialog-content input[type=\"number\"]:focus,\r\n.APX-dialog-content input[type=\"date\"]:focus,\r\n.APX-dialog-content input[type=\"datetime-local\"]:focus {\r\n border-color: #2C3E50;\r\n /* Deep Blue Color */\r\n outline: none;\r\n}\r\n\r\n/* Button in the dialog */\r\n.APX-dialog-button-container button {\r\n position: relative;\r\n background-color: #2C3E50;\r\n color: #ECF0F1;\r\n border: none;\r\n padding: 10px 20px;\r\n border-radius: 5px;\r\n font-size: 16px;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.APX-dialog-button-container button:hover {\r\n background-color: #34495E;\r\n transform: translateY(-1px);\r\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\r\n}\r\n\r\n.APX-dialog-button-container {\r\n display: flex;\r\n gap: 10px;\r\n margin-top:1em;\r\n /* spacing between buttons */\r\n}\r\n\r\n/* Loading indicator */\r\n.APX-dialog-loading-indicator {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100px;\r\n width: 100%;\r\n}\r\n\r\n.APX-dialog-loading-indicator::before {\r\n content: '';\r\n width: 40px;\r\n height: 40px;\r\n border: 4px solid #f3f3f3;\r\n border-top: 4px solid #2C3E50;\r\n border-radius: 50%;\r\n animation: APX-dialog-spin 1s linear infinite;\r\n}\r\n\r\n@keyframes APX-dialog-spin {\r\n 0% { transform: rotate(0deg); }\r\n 100% { transform: rotate(360deg); }\r\n}\r\n.APX-dialog-button-disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed !important;\r\n background-color: #95a5a6 !important; /* Grayed out color */\r\n box-shadow: none !important;\r\n transition: all 0.2s ease;\r\n transform: none !important;\r\n}\r\n\r\n.APX-dialog-button-disabled:hover {\r\n background-color: #95a5a6 !important; /* Keep gray on hover */\r\n transform: none !important;\r\n}\r\n\r\n/* Add a subtle strikethrough effect */\r\n.APX-dialog-button-disabled::after {\r\n content: '';\r\n position: absolute;\r\n top: 50%;\r\n left: 0;\r\n width: 100%;\r\n height: 1px;\r\n background-color: rgba(0, 0, 0, 0.2);\r\n transform: rotate(-5deg);\r\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./modules/dialog/css/dialog.css\"],\"names\":[],\"mappings\":\"AAAA,mBAAmB;AACnB;IACI,aAAa;IACb,eAAe;IACf,aAAa;IACb,OAAO;IACP,MAAM;IACN,WAAW;IACX,YAAY;IACZ,cAAc;IACd,oCAAoC;IACpC,0CAA0C;AAC9C;;AAEA;IACI,yBAAyB;IACzB,aAAa;IACb,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,2CAA2C;IAC3C,gDAAgD;AACpD;;AAEA;IACI,YAAY;AAChB;;AAEA;IACI,WAAW;IACX,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,uBAAuB;IACvB,mBAAmB;AACvB;;AAEA;;IAEI,WAAW;IACX,gCAAgC;IAChC,eAAe;AACnB;;AAEA,yBAAyB;AACzB;;;;IAII,WAAW;IACX,aAAa;IACb,mBAAmB;IACnB,sBAAsB;IACtB,kBAAkB;IAClB,gDAAgD;IAChD,eAAe;IACf,sBAAsB;IACtB,6BAA6B;AACjC;;AAEA;;;;IAII,qBAAqB;IACrB,oBAAoB;IACpB,aAAa;AACjB;;AAEA,yBAAyB;AACzB;IACI,kBAAkB;IAClB,yBAAyB;IACzB,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,eAAe;IACf,yBAAyB;IACzB,wCAAwC;AAC5C;;AAEA;IACI,yBAAyB;IACzB,2BAA2B;IAC3B,yCAAyC;AAC7C;;AAEA;IACI,aAAa;IACb,SAAS;IACT,cAAc;IACd,4BAA4B;AAChC;;AAEA,sBAAsB;AACtB;IACI,aAAa;IACb,uBAAuB;IACvB,mBAAmB;IACnB,aAAa;IACb,WAAW;AACf;;AAEA;IACI,WAAW;IACX,WAAW;IACX,YAAY;IACZ,yBAAyB;IACzB,6BAA6B;IAC7B,kBAAkB;IAClB,6CAA6C;AACjD;;AAEA;IACI,KAAK,uBAAuB,EAAE;IAC9B,OAAO,yBAAyB,EAAE;AACtC;AACA;IACI,YAAY;IACZ,8BAA8B;IAC9B,oCAAoC,EAAE,qBAAqB;IAC3D,2BAA2B;IAC3B,yBAAyB;IACzB,0BAA0B;AAC9B;;AAEA;IACI,oCAAoC,EAAE,uBAAuB;IAC7D,0BAA0B;AAC9B;;AAEA,sCAAsC;AACtC;IACI,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,OAAO;IACP,WAAW;IACX,WAAW;IACX,oCAAoC;IACpC,wBAAwB;AAC5B\",\"sourcesContent\":[\"/* Dialog styling */\\r\\n.APX-dialog {\\r\\n display: none;\\r\\n position: fixed;\\r\\n z-index: 1002;\\r\\n left: 0;\\r\\n top: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n overflow: auto;\\r\\n background-color: rgba(0, 0, 0, 0.4);\\r\\n /* Dimmed background for focus on dialog */\\r\\n}\\r\\n\\r\\n.APX-dialog-content {\\r\\n background-color: #fefefe;\\r\\n padding: 40px;\\r\\n border: none;\\r\\n width: auto;\\r\\n min-width: 300px;\\r\\n max-width: 80%;\\r\\n margin: auto;\\r\\n border-radius: 8px;\\r\\n box-shadow: 0px 6px 20px rgba(0, 0, 0, 0.1);\\r\\n font-family: 'Helvetica Neue', Arial, sans-serif;\\r\\n}\\r\\n\\r\\nh2.APX-dialog-title{\\r\\n margin-top:0;\\r\\n}\\r\\n\\r\\n.APX-close-dialog {\\r\\n color: #aaa;\\r\\n float: right;\\r\\n font-size: 24px;\\r\\n margin-top: -10px;\\r\\n /* Adjust positioning */\\r\\n margin-right: -10px;\\r\\n}\\r\\n\\r\\n.APX-close-dialog:hover,\\r\\n.APX-close-dialog:focus {\\r\\n color: #333;\\r\\n /* Darker color on hover/focus */\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n/* Input fields styling */\\r\\n.APX-dialog-content input[type=\\\"text\\\"],\\r\\n.APX-dialog-content input[type=\\\"number\\\"],\\r\\n.APX-dialog-content input[type=\\\"date\\\"],\\r\\n.APX-dialog-content input[type=\\\"datetime-local\\\"] {\\r\\n width: 100%;\\r\\n padding: 10px;\\r\\n margin-bottom: 20px;\\r\\n border: 1px solid #ccc;\\r\\n border-radius: 4px;\\r\\n font-family: 'Helvetica Neue', Arial, sans-serif;\\r\\n font-size: 16px;\\r\\n box-sizing: border-box;\\r\\n transition: border-color 0.3s;\\r\\n}\\r\\n\\r\\n.APX-dialog-content input[type=\\\"text\\\"]:focus,\\r\\n.APX-dialog-content input[type=\\\"number\\\"]:focus,\\r\\n.APX-dialog-content input[type=\\\"date\\\"]:focus,\\r\\n.APX-dialog-content input[type=\\\"datetime-local\\\"]:focus {\\r\\n border-color: #2C3E50;\\r\\n /* Deep Blue Color */\\r\\n outline: none;\\r\\n}\\r\\n\\r\\n/* Button in the dialog */\\r\\n.APX-dialog-button-container button {\\r\\n position: relative;\\r\\n background-color: #2C3E50;\\r\\n color: #ECF0F1;\\r\\n border: none;\\r\\n padding: 10px 20px;\\r\\n border-radius: 5px;\\r\\n font-size: 16px;\\r\\n cursor: pointer;\\r\\n transition: all 0.3s ease;\\r\\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\\r\\n}\\r\\n\\r\\n.APX-dialog-button-container button:hover {\\r\\n background-color: #34495E;\\r\\n transform: translateY(-1px);\\r\\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\\r\\n}\\r\\n\\r\\n.APX-dialog-button-container {\\r\\n display: flex;\\r\\n gap: 10px;\\r\\n margin-top:1em;\\r\\n /* spacing between buttons */\\r\\n}\\r\\n\\r\\n/* Loading indicator */\\r\\n.APX-dialog-loading-indicator {\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n align-items: center;\\r\\n height: 100px;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.APX-dialog-loading-indicator::before {\\r\\n content: '';\\r\\n width: 40px;\\r\\n height: 40px;\\r\\n border: 4px solid #f3f3f3;\\r\\n border-top: 4px solid #2C3E50;\\r\\n border-radius: 50%;\\r\\n animation: APX-dialog-spin 1s linear infinite;\\r\\n}\\r\\n\\r\\n@keyframes APX-dialog-spin {\\r\\n 0% { transform: rotate(0deg); }\\r\\n 100% { transform: rotate(360deg); }\\r\\n}\\r\\n.APX-dialog-button-disabled {\\r\\n opacity: 0.5;\\r\\n cursor: not-allowed !important;\\r\\n background-color: #95a5a6 !important; /* Grayed out color */\\r\\n box-shadow: none !important;\\r\\n transition: all 0.2s ease;\\r\\n transform: none !important;\\r\\n}\\r\\n\\r\\n.APX-dialog-button-disabled:hover {\\r\\n background-color: #95a5a6 !important; /* Keep gray on hover */\\r\\n transform: none !important;\\r\\n}\\r\\n\\r\\n/* Add a subtle strikethrough effect */\\r\\n.APX-dialog-button-disabled::after {\\r\\n content: '';\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 1px;\\r\\n background-color: rgba(0, 0, 0, 0.2);\\r\\n transform: rotate(-5deg);\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/* APX Scrollable Table: scrollable tbody with fixed thead/tfoot and aligned columns (CSS Grid + subgrid)\r\n Use !important so page styles (e.g. display: table) do not override the grid layout. */\r\n\r\n/* --apx-scrollable-template-columns: set by JS (measured widths + gutter); fallback = equal columns + gutter */\r\n/* --apx-scrollable-gutter-width: space for vertical scrollbar so it does not overlap the last column (set to 0 to allow overlap) */\r\n/* --apx-scrollable-body-height: when class apx-scrollable-table--body-height is set, tbody row uses fixed height instead of max-height */\r\n.apx-scrollable-table {\r\n display: grid !important;\r\n grid-template-columns: var(--apx-scrollable-template-columns, repeat(var(--apx-scrollable-cols, 3), minmax(0, 1fr)) minmax(var(--apx-scrollable-gutter-width, 17px), var(--apx-scrollable-gutter-width, 17px)));\r\n grid-template-rows: auto var(--apx-scrollable-body-row-size, fit-content(var(--apx-scrollable-body-max-height, 200px))) auto;\r\n width: 100%;\r\n table-layout: unset !important;\r\n}\r\n\r\n.apx-scrollable-table--body-height {\r\n --apx-scrollable-body-row-size: var(--apx-scrollable-body-max-height, 200px);\r\n}\r\n\r\n/* Table with no tfoot: thead + tbody only */\r\n.apx-scrollable-table:not(.apx-scrollable-table--has-tfoot) {\r\n grid-template-rows: auto var(--apx-scrollable-body-row-size, fit-content(var(--apx-scrollable-body-max-height, 200px)));\r\n}\r\n\r\n/* Table with no thead: tbody + tfoot only */\r\n.apx-scrollable-table.apx-scrollable-table--no-thead {\r\n grid-template-rows: var(--apx-scrollable-body-row-size, fit-content(var(--apx-scrollable-body-max-height, 200px))) auto;\r\n}\r\n\r\n/* Table with neither thead nor tfoot: tbody only */\r\n.apx-scrollable-table.apx-scrollable-table--no-thead:not(.apx-scrollable-table--has-tfoot) {\r\n grid-template-rows: var(--apx-scrollable-body-row-size, fit-content(var(--apx-scrollable-body-max-height, 200px)));\r\n}\r\n\r\n/* --apx-scrollable-*-template-rows: set by JS (measured heights) or override in CSS / via options */\r\n.apx-scrollable-table > thead,\r\n.apx-scrollable-table > tbody,\r\n.apx-scrollable-table > tfoot {\r\n display: grid !important;\r\n grid-template-columns: subgrid;\r\n grid-column: 1 / -1;\r\n min-height: 0;\r\n}\r\n\r\n.apx-scrollable-table > thead {\r\n grid-template-rows: var(--apx-scrollable-thead-template-rows, repeat(var(--apx-scrollable-thead-rows, 1), auto));\r\n}\r\n\r\n.apx-scrollable-table > tbody {\r\n grid-template-rows: var(--apx-scrollable-tbody-template-rows, repeat(var(--apx-scrollable-tbody-rows, 1), auto));\r\n overflow: auto;\r\n}\r\n\r\n.apx-scrollable-table > tfoot {\r\n grid-template-rows: var(--apx-scrollable-tfoot-template-rows, repeat(var(--apx-scrollable-tfoot-rows, 1), auto));\r\n}\r\n\r\n.apx-scrollable-table > thead > tr,\r\n.apx-scrollable-table > tbody > tr,\r\n.apx-scrollable-table > tfoot > tr {\r\n display: contents !important;\r\n}\r\n\r\n.apx-scrollable-table th,\r\n.apx-scrollable-table td {\r\n min-width: 0;\r\n box-sizing: border-box;\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./modules/scrollableTable/css/scrollableTable.css\"],\"names\":[],\"mappings\":\"AAAA;yFACyF;;AAEzF,+GAA+G;AAC/G,mIAAmI;AACnI,yIAAyI;AACzI;IACI,wBAAwB;IACxB,+MAA+M;IAC/M,4HAA4H;IAC5H,WAAW;IACX,8BAA8B;AAClC;;AAEA;IACI,4EAA4E;AAChF;;AAEA,4CAA4C;AAC5C;IACI,uHAAuH;AAC3H;;AAEA,4CAA4C;AAC5C;IACI,uHAAuH;AAC3H;;AAEA,mDAAmD;AACnD;IACI,kHAAkH;AACtH;;AAEA,oGAAoG;AACpG;;;IAGI,wBAAwB;IACxB,8BAA8B;IAC9B,mBAAmB;IACnB,aAAa;AACjB;;AAEA;IACI,gHAAgH;AACpH;;AAEA;IACI,gHAAgH;IAChH,cAAc;AAClB;;AAEA;IACI,gHAAgH;AACpH;;AAEA;;;IAGI,4BAA4B;AAChC;;AAEA;;IAEI,YAAY;IACZ,sBAAsB;AAC1B\",\"sourcesContent\":[\"/* APX Scrollable Table: scrollable tbody with fixed thead/tfoot and aligned columns (CSS Grid + subgrid)\\r\\n Use !important so page styles (e.g. display: table) do not override the grid layout. */\\r\\n\\r\\n/* --apx-scrollable-template-columns: set by JS (measured widths + gutter); fallback = equal columns + gutter */\\r\\n/* --apx-scrollable-gutter-width: space for vertical scrollbar so it does not overlap the last column (set to 0 to allow overlap) */\\r\\n/* --apx-scrollable-body-height: when class apx-scrollable-table--body-height is set, tbody row uses fixed height instead of max-height */\\r\\n.apx-scrollable-table {\\r\\n display: grid !important;\\r\\n grid-template-columns: var(--apx-scrollable-template-columns, repeat(var(--apx-scrollable-cols, 3), minmax(0, 1fr)) minmax(var(--apx-scrollable-gutter-width, 17px), var(--apx-scrollable-gutter-width, 17px)));\\r\\n grid-template-rows: auto var(--apx-scrollable-body-row-size, fit-content(var(--apx-scrollable-body-max-height, 200px))) auto;\\r\\n width: 100%;\\r\\n table-layout: unset !important;\\r\\n}\\r\\n\\r\\n.apx-scrollable-table--body-height {\\r\\n --apx-scrollable-body-row-size: var(--apx-scrollable-body-max-height, 200px);\\r\\n}\\r\\n\\r\\n/* Table with no tfoot: thead + tbody only */\\r\\n.apx-scrollable-table:not(.apx-scrollable-table--has-tfoot) {\\r\\n grid-template-rows: auto var(--apx-scrollable-body-row-size, fit-content(var(--apx-scrollable-body-max-height, 200px)));\\r\\n}\\r\\n\\r\\n/* Table with no thead: tbody + tfoot only */\\r\\n.apx-scrollable-table.apx-scrollable-table--no-thead {\\r\\n grid-template-rows: var(--apx-scrollable-body-row-size, fit-content(var(--apx-scrollable-body-max-height, 200px))) auto;\\r\\n}\\r\\n\\r\\n/* Table with neither thead nor tfoot: tbody only */\\r\\n.apx-scrollable-table.apx-scrollable-table--no-thead:not(.apx-scrollable-table--has-tfoot) {\\r\\n grid-template-rows: var(--apx-scrollable-body-row-size, fit-content(var(--apx-scrollable-body-max-height, 200px)));\\r\\n}\\r\\n\\r\\n/* --apx-scrollable-*-template-rows: set by JS (measured heights) or override in CSS / via options */\\r\\n.apx-scrollable-table > thead,\\r\\n.apx-scrollable-table > tbody,\\r\\n.apx-scrollable-table > tfoot {\\r\\n display: grid !important;\\r\\n grid-template-columns: subgrid;\\r\\n grid-column: 1 / -1;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.apx-scrollable-table > thead {\\r\\n grid-template-rows: var(--apx-scrollable-thead-template-rows, repeat(var(--apx-scrollable-thead-rows, 1), auto));\\r\\n}\\r\\n\\r\\n.apx-scrollable-table > tbody {\\r\\n grid-template-rows: var(--apx-scrollable-tbody-template-rows, repeat(var(--apx-scrollable-tbody-rows, 1), auto));\\r\\n overflow: auto;\\r\\n}\\r\\n\\r\\n.apx-scrollable-table > tfoot {\\r\\n grid-template-rows: var(--apx-scrollable-tfoot-template-rows, repeat(var(--apx-scrollable-tfoot-rows, 1), auto));\\r\\n}\\r\\n\\r\\n.apx-scrollable-table > thead > tr,\\r\\n.apx-scrollable-table > tbody > tr,\\r\\n.apx-scrollable-table > tfoot > tr {\\r\\n display: contents !important;\\r\\n}\\r\\n\\r\\n.apx-scrollable-table th,\\r\\n.apx-scrollable-table td {\\r\\n min-width: 0;\\r\\n box-sizing: border-box;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.APX-toast-container {\r\n position: fixed;\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--apx-toast-gap, 8px);\r\n z-index: var(--apx-toast-z-index, 11000);\r\n pointer-events: none;\r\n}\r\n\r\n.APX-toast-container--bottom-right { right: 12px; bottom: 12px; align-items: flex-end; }\r\n.APX-toast-container--bottom-left { left: 12px; bottom: 12px; align-items: flex-start; }\r\n.APX-toast-container--top-right { right: 12px; top: 12px; align-items: flex-end; }\r\n.APX-toast-container--top-left { left: 12px; top: 12px; align-items: flex-start; }\r\n\r\n.APX-toast {\r\n min-width: var(--apx-toast-min-width, 260px);\r\n max-width: var(--apx-toast-max-width, 420px);\r\n font-size: var(--apx-toast-font-size, 14px);\r\n border-radius: var(--apx-toast-radius, 6px);\r\n box-shadow: var(--apx-toast-shadow, 0 6px 24px rgba(0,0,0,0.2));\r\n padding: var(--apx-toast-padding, 10px 42px 10px 14px);\r\n color: #111;\r\n background: #eee;\r\n pointer-events: auto;\r\n position: relative;\r\n transition: opacity 180ms ease, transform 180ms ease;\r\n}\r\n\r\n.APX-toast--info { background: var(--apx-toast-info-bg, #0dcaf0); color: var(--apx-toast-info-fg, #052c65); }\r\n.APX-toast--success { background: var(--apx-toast-success-bg, #198754); color: var(--apx-toast-success-fg, #ffffff); }\r\n.APX-toast--warning { background: var(--apx-toast-warning-bg, #ffc107); color: var(--apx-toast-warning-fg, #664d03); }\r\n.APX-toast--danger { background: var(--apx-toast-danger-bg, #dc3545); color: var(--apx-toast-danger-fg, #ffffff); }\r\n\r\n.APX-toast__content { line-height: 1.35; }\r\n\r\n.APX-toast__close {\r\n position: absolute;\r\n top: 50%; right: 10px;\r\n width: 24px; height: 24px;\r\n transform: translateY(-50%);\r\n display: inline-flex; align-items: center; justify-content: center;\r\n background: transparent; color: currentColor;\r\n border: 0; border-radius: 4px; padding: 0; margin: 0;\r\n cursor: pointer; appearance: none; -webkit-appearance: none;\r\n opacity: .75; transition: opacity 120ms ease;\r\n}\r\n.APX-toast__close:hover { opacity: 1; }\r\n.APX-toast__close:focus { outline: 2px solid rgba(0,0,0,.2); outline-offset: 2px; }\r\n.APX-toast__close::before {\r\n content: '×';\r\n font-size: 16px; line-height: 1; text-align: center;\r\n}\r\n\r\n/* Progress bar (outside content, flush to toast edges) */\r\n.APX-toast__progress {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n height: var(--apx-toast-progress-height, 4px);\r\n display: flex;\r\n flex-direction: row;\r\n align-items: stretch;\r\n flex-shrink: 0;\r\n border-radius: inherit;\r\n overflow: visible;\r\n}\r\n.APX-toast__progress--top {\r\n top: 0;\r\n border-radius: var(--apx-toast-radius, 6px) var(--apx-toast-radius, 6px) 0 0;\r\n}\r\n.APX-toast__progress--bottom {\r\n bottom: 0;\r\n border-radius: 0 0 var(--apx-toast-radius, 6px) var(--apx-toast-radius, 6px);\r\n}\r\n/* Track contains the bar; no margin (pause button is on the corner, overlapping) */\r\n.APX-toast__progress-track {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n}\r\n.APX-toast__progress-bar {\r\n height: 100%;\r\n width: 100%;\r\n max-width: 100%;\r\n transition: width 80ms linear;\r\n background: rgba(0, 0, 0, 0.25);\r\n}\r\n.APX-toast--info .APX-toast__progress-bar { background: rgba(5, 44, 101, 0.5); }\r\n.APX-toast--success .APX-toast__progress-bar { background: rgba(0, 0, 0, 0.25); }\r\n.APX-toast--warning .APX-toast__progress-bar { background: rgba(102, 77, 3, 0.5); }\r\n.APX-toast--danger .APX-toast__progress-bar { background: rgba(0, 0, 0, 0.25); }\r\n/* Pause/Resume button: round, center exactly on toast corner (top-left or bottom-left) */\r\n.APX-toast__progress-pause {\r\n position: absolute;\r\n width: var(--apx-toast-progress-pause-size, 18px);\r\n height: var(--apx-toast-progress-pause-size, 18px);\r\n left: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n background: #eee;\r\n color: currentColor;\r\n border: 1px solid rgba(0, 0, 0, 0.35);\r\n border-radius: 50%;\r\n padding: 0;\r\n margin: 0;\r\n cursor: pointer;\r\n line-height: 1;\r\n opacity: 0.95;\r\n transition: opacity 120ms ease;\r\n flex-shrink: 0;\r\n}\r\n.APX-toast__progress--top .APX-toast__progress-pause {\r\n top: 0;\r\n transform: translate(-50%, -50%);\r\n}\r\n.APX-toast__progress--bottom .APX-toast__progress-pause {\r\n bottom: 0;\r\n transform: translate(-50%, 50%);\r\n}\r\n.APX-toast--info .APX-toast__progress-pause { background: var(--apx-toast-info-bg, #0dcaf0); border-color: rgba(5, 44, 101, 0.55); }\r\n.APX-toast--success .APX-toast__progress-pause { background: var(--apx-toast-success-bg, #198754); border-color: rgba(0, 0, 0, 0.3); }\r\n.APX-toast--warning .APX-toast__progress-pause { background: var(--apx-toast-warning-bg, #ffc107); border-color: rgba(102, 77, 3, 0.6); }\r\n.APX-toast--danger .APX-toast__progress-pause { background: var(--apx-toast-danger-bg, #dc3545); border-color: rgba(0, 0, 0, 0.35); }\r\n.APX-toast__progress-pause:hover { opacity: 1; }\r\n.APX-toast__progress-pause:focus { outline: 2px solid rgba(0,0,0,.4); outline-offset: -2px; }\r\n.APX-toast__progress-pause svg {\r\n width: 10px;\r\n height: 10px;\r\n display: block;\r\n}\r\n/* Extra top/bottom padding when progress bar is present (default content padding 10px + bar height) */\r\n.APX-toast--has-progress-top { padding-top: calc(10px + var(--apx-toast-progress-height, 4px)); }\r\n.APX-toast--has-progress-bottom { padding-bottom: calc(10px + var(--apx-toast-progress-height, 4px)); }\r\n/* Reserve space for stacking when pause button is present (button extends outside toast corner) */\r\n.APX-toast--has-progress-top.APX-toast--has-progress-pause { margin-top: calc(var(--apx-toast-progress-pause-size, 18px) / 2); }\r\n.APX-toast--has-progress-bottom.APX-toast--has-progress-pause { margin-bottom: calc(var(--apx-toast-progress-pause-size, 18px) / 2); }\r\n\r\n/* Animations */\r\n.APX-toast--enter { opacity: 0; transform: translateY(8px); }\r\n.APX-toast--enter.APX-toast--enter-active { opacity: 1; transform: translateY(0); }\r\n.APX-toast--exit { opacity: 1; transform: translateY(0); }\r\n.APX-toast--exit.APX-toast--exit-active { opacity: 0; transform: translateY(8px); }\r\n\r\n\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./modules/toast/css/toast.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".APX-toast-container {\\r\\n position: fixed;\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n gap: var(--apx-toast-gap, 8px);\\r\\n z-index: var(--apx-toast-z-index, 11000);\\r\\n pointer-events: none;\\r\\n}\\r\\n\\r\\n.APX-toast-container--bottom-right { right: 12px; bottom: 12px; align-items: flex-end; }\\r\\n.APX-toast-container--bottom-left { left: 12px; bottom: 12px; align-items: flex-start; }\\r\\n.APX-toast-container--top-right { right: 12px; top: 12px; align-items: flex-end; }\\r\\n.APX-toast-container--top-left { left: 12px; top: 12px; align-items: flex-start; }\\r\\n\\r\\n.APX-toast {\\r\\n min-width: var(--apx-toast-min-width, 260px);\\r\\n max-width: var(--apx-toast-max-width, 420px);\\r\\n font-size: var(--apx-toast-font-size, 14px);\\r\\n border-radius: var(--apx-toast-radius, 6px);\\r\\n box-shadow: var(--apx-toast-shadow, 0 6px 24px rgba(0,0,0,0.2));\\r\\n padding: var(--apx-toast-padding, 10px 42px 10px 14px);\\r\\n color: #111;\\r\\n background: #eee;\\r\\n pointer-events: auto;\\r\\n position: relative;\\r\\n transition: opacity 180ms ease, transform 180ms ease;\\r\\n}\\r\\n\\r\\n.APX-toast--info { background: var(--apx-toast-info-bg, #0dcaf0); color: var(--apx-toast-info-fg, #052c65); }\\r\\n.APX-toast--success { background: var(--apx-toast-success-bg, #198754); color: var(--apx-toast-success-fg, #ffffff); }\\r\\n.APX-toast--warning { background: var(--apx-toast-warning-bg, #ffc107); color: var(--apx-toast-warning-fg, #664d03); }\\r\\n.APX-toast--danger { background: var(--apx-toast-danger-bg, #dc3545); color: var(--apx-toast-danger-fg, #ffffff); }\\r\\n\\r\\n.APX-toast__content { line-height: 1.35; }\\r\\n\\r\\n.APX-toast__close {\\r\\n position: absolute;\\r\\n top: 50%; right: 10px;\\r\\n width: 24px; height: 24px;\\r\\n transform: translateY(-50%);\\r\\n display: inline-flex; align-items: center; justify-content: center;\\r\\n background: transparent; color: currentColor;\\r\\n border: 0; border-radius: 4px; padding: 0; margin: 0;\\r\\n cursor: pointer; appearance: none; -webkit-appearance: none;\\r\\n opacity: .75; transition: opacity 120ms ease;\\r\\n}\\r\\n.APX-toast__close:hover { opacity: 1; }\\r\\n.APX-toast__close:focus { outline: 2px solid rgba(0,0,0,.2); outline-offset: 2px; }\\r\\n.APX-toast__close::before {\\r\\n content: '×';\\r\\n font-size: 16px; line-height: 1; text-align: center;\\r\\n}\\r\\n\\r\\n/* Progress bar (outside content, flush to toast edges) */\\r\\n.APX-toast__progress {\\r\\n position: absolute;\\r\\n left: 0;\\r\\n right: 0;\\r\\n height: var(--apx-toast-progress-height, 4px);\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n align-items: stretch;\\r\\n flex-shrink: 0;\\r\\n border-radius: inherit;\\r\\n overflow: visible;\\r\\n}\\r\\n.APX-toast__progress--top {\\r\\n top: 0;\\r\\n border-radius: var(--apx-toast-radius, 6px) var(--apx-toast-radius, 6px) 0 0;\\r\\n}\\r\\n.APX-toast__progress--bottom {\\r\\n bottom: 0;\\r\\n border-radius: 0 0 var(--apx-toast-radius, 6px) var(--apx-toast-radius, 6px);\\r\\n}\\r\\n/* Track contains the bar; no margin (pause button is on the corner, overlapping) */\\r\\n.APX-toast__progress-track {\\r\\n flex: 1;\\r\\n min-width: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n.APX-toast__progress-bar {\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n max-width: 100%;\\r\\n transition: width 80ms linear;\\r\\n background: rgba(0, 0, 0, 0.25);\\r\\n}\\r\\n.APX-toast--info .APX-toast__progress-bar { background: rgba(5, 44, 101, 0.5); }\\r\\n.APX-toast--success .APX-toast__progress-bar { background: rgba(0, 0, 0, 0.25); }\\r\\n.APX-toast--warning .APX-toast__progress-bar { background: rgba(102, 77, 3, 0.5); }\\r\\n.APX-toast--danger .APX-toast__progress-bar { background: rgba(0, 0, 0, 0.25); }\\r\\n/* Pause/Resume button: round, center exactly on toast corner (top-left or bottom-left) */\\r\\n.APX-toast__progress-pause {\\r\\n position: absolute;\\r\\n width: var(--apx-toast-progress-pause-size, 18px);\\r\\n height: var(--apx-toast-progress-pause-size, 18px);\\r\\n left: 0;\\r\\n display: inline-flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n background: #eee;\\r\\n color: currentColor;\\r\\n border: 1px solid rgba(0, 0, 0, 0.35);\\r\\n border-radius: 50%;\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n cursor: pointer;\\r\\n line-height: 1;\\r\\n opacity: 0.95;\\r\\n transition: opacity 120ms ease;\\r\\n flex-shrink: 0;\\r\\n}\\r\\n.APX-toast__progress--top .APX-toast__progress-pause {\\r\\n top: 0;\\r\\n transform: translate(-50%, -50%);\\r\\n}\\r\\n.APX-toast__progress--bottom .APX-toast__progress-pause {\\r\\n bottom: 0;\\r\\n transform: translate(-50%, 50%);\\r\\n}\\r\\n.APX-toast--info .APX-toast__progress-pause { background: var(--apx-toast-info-bg, #0dcaf0); border-color: rgba(5, 44, 101, 0.55); }\\r\\n.APX-toast--success .APX-toast__progress-pause { background: var(--apx-toast-success-bg, #198754); border-color: rgba(0, 0, 0, 0.3); }\\r\\n.APX-toast--warning .APX-toast__progress-pause { background: var(--apx-toast-warning-bg, #ffc107); border-color: rgba(102, 77, 3, 0.6); }\\r\\n.APX-toast--danger .APX-toast__progress-pause { background: var(--apx-toast-danger-bg, #dc3545); border-color: rgba(0, 0, 0, 0.35); }\\r\\n.APX-toast__progress-pause:hover { opacity: 1; }\\r\\n.APX-toast__progress-pause:focus { outline: 2px solid rgba(0,0,0,.4); outline-offset: -2px; }\\r\\n.APX-toast__progress-pause svg {\\r\\n width: 10px;\\r\\n height: 10px;\\r\\n display: block;\\r\\n}\\r\\n/* Extra top/bottom padding when progress bar is present (default content padding 10px + bar height) */\\r\\n.APX-toast--has-progress-top { padding-top: calc(10px + var(--apx-toast-progress-height, 4px)); }\\r\\n.APX-toast--has-progress-bottom { padding-bottom: calc(10px + var(--apx-toast-progress-height, 4px)); }\\r\\n/* Reserve space for stacking when pause button is present (button extends outside toast corner) */\\r\\n.APX-toast--has-progress-top.APX-toast--has-progress-pause { margin-top: calc(var(--apx-toast-progress-pause-size, 18px) / 2); }\\r\\n.APX-toast--has-progress-bottom.APX-toast--has-progress-pause { margin-bottom: calc(var(--apx-toast-progress-pause-size, 18px) / 2); }\\r\\n\\r\\n/* Animations */\\r\\n.APX-toast--enter { opacity: 0; transform: translateY(8px); }\\r\\n.APX-toast--enter.APX-toast--enter-active { opacity: 1; transform: translateY(0); }\\r\\n.APX-toast--exit { opacity: 1; transform: translateY(0); }\\r\\n.APX-toast--exit.APX-toast--exit-active { opacity: 0; transform: translateY(8px); }\\r\\n\\r\\n\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cmask id=%27frame-cutout%27%3E%3Crect width=%2732%27 height=%2732%27 fill=%27%23fff%27/%3E%3Crect x=%273%27 y=%273%27 width=%2726%27 height=%2726%27 rx=%274%27 ry=%274%27 fill=%27%23000%27/%3E%3C/mask%3E%3Crect width=%2732%27 height=%2732%27 fill=%27%23cccccc%27 mask=%27url%28%23frame-cutout%29%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M8 16h16%27 fill=%27none%27 stroke=%27%23fff%27 stroke-width=%273%27 stroke-linecap=%27round%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M6 17L12 23L26 9%27 fill=%27none%27 stroke=%27%23fff%27 stroke-width=%273%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M8 8L24 24M24 8L8 24%27 fill=%27none%27 stroke=%27%23fff%27 stroke-width=%273%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.apx-tristate {\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n position: relative;\n min-width:13px;\n min-height:13px;\n background-size: contain;\n background-color: transparent;\n border-radius:3px;\n --apx-tristate-tick-color: transparent;\n --apx-tristate-checked-color: #0654ba;\n --apx-tristate-crossed-color: #f00;\n}\n.apx-tristate.unchecked {\n background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n}\n.apx-tristate.unchecked.apx-tristate--unchecked-indeterminate::after {\n content: '';\n position: absolute;\n inset: 0;\n display: block;\n pointer-events: none;\n}\n/* When --mixed is used (e.g. parent + sub-checkboxes), dash shows only when children are mixed */\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash:not(.apx-tristate--mixed)::before,\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash:not(.apx-tristate--mixed)::after {\n display: none;\n}\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash::before {\n content: '';\n position: absolute;\n inset: 0;\n display: block;\n pointer-events: none;\n background-color: var(--apx-tristate-checked-color);\n border-radius: inherit;\n}\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash::after {\n background-color: var(--apx-tristate-tick-color);\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-position: center;\n -webkit-mask-size: 100% 100%;\n -webkit-mask-mode: alpha;\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: 100% 100%;\n mask-mode: alpha;\n -webkit-mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\n mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\n}\n.apx-tristate.unchecked.apx-tristate--indeterminate-filled-check::after {\n background-color: var(--apx-tristate-checked-color);\n border-radius: inherit;\n}\n.apx-tristate.checked {\n background-image: none;\n background-color: var(--apx-tristate-checked-color);\n}\n.apx-tristate.crossed {\n background-image: none;\n background-color: var(--apx-tristate-crossed-color);\n}\n\n.apx-tristate.checked::after,\n.apx-tristate.crossed::after {\n content: '';\n position: absolute;\n inset: 0;\n display: block;\n background-color: var(--apx-tristate-tick-color);\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-position: center;\n -webkit-mask-size: 100% 100%;\n -webkit-mask-mode: alpha;\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: 100% 100%;\n mask-mode: alpha;\n pointer-events: none;\n}\n\n.apx-tristate.checked::after {\n -webkit-mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___});\n mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___});\n}\n\n.apx-tristate.crossed::after {\n -webkit-mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_3___});\n mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_3___});\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./modules/tristate/css/tristate.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,qBAAqB;IACrB,sBAAsB;IACtB,kBAAkB;IAClB,eAAe;IACf,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,wBAAwB;IACxB,6BAA6B;IAC7B,iBAAiB;IACjB,sCAAsC;IACtC,qCAAqC;IACrC,kCAAkC;AACtC;AACA;IACI,yDAA6X;AACjY;AACA;IACI,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,cAAc;IACd,oBAAoB;AACxB;AACA,iGAAiG;AACjG;;IAEI,aAAa;AACjB;AACA;IACI,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,cAAc;IACd,oBAAoB;IACpB,mDAAmD;IACnD,sBAAsB;AAC1B;AACA;IACI,gDAAgD;IAChD,8BAA8B;IAC9B,6BAA6B;IAC7B,4BAA4B;IAC5B,wBAAwB;IACxB,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,gBAAgB;IAChB,2DAA2O;IAC3O,mDAAmO;AACvO;AACA;IACI,mDAAmD;IACnD,sBAAsB;AAC1B;AACA;IACI,sBAAsB;IACtB,mDAAmD;AACvD;AACA;IACI,sBAAsB;IACtB,mDAAmD;AACvD;;AAEA;;IAEI,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,cAAc;IACd,gDAAgD;IAChD,8BAA8B;IAC9B,6BAA6B;IAC7B,4BAA4B;IAC5B,wBAAwB;IACxB,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,gBAAgB;IAChB,oBAAoB;AACxB;;AAEA;IACI,2DAA2Q;IAC3Q,mDAAmQ;AACvQ;;AAEA;IACI,2DAA+Q;IAC/Q,mDAAuQ;AAC3Q\",\"sourcesContent\":[\".apx-tristate {\\n display: inline-block;\\n vertical-align: middle;\\n text-align: center;\\n cursor: pointer;\\n position: relative;\\n min-width:13px;\\n min-height:13px;\\n background-size: contain;\\n background-color: transparent;\\n border-radius:3px;\\n --apx-tristate-tick-color: transparent;\\n --apx-tristate-checked-color: #0654ba;\\n --apx-tristate-crossed-color: #f00;\\n}\\n.apx-tristate.unchecked {\\n background-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cmask id='frame-cutout'%3E%3Crect width='32' height='32' fill='%23fff'/%3E%3Crect x='3' y='3' width='26' height='26' rx='4' ry='4' fill='%23000'/%3E%3C/mask%3E%3Crect width='32' height='32' fill='%23cccccc' mask='url(%23frame-cutout)'/%3E%3C/svg%3E\\\");\\n}\\n.apx-tristate.unchecked.apx-tristate--unchecked-indeterminate::after {\\n content: '';\\n position: absolute;\\n inset: 0;\\n display: block;\\n pointer-events: none;\\n}\\n/* When --mixed is used (e.g. parent + sub-checkboxes), dash shows only when children are mixed */\\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash:not(.apx-tristate--mixed)::before,\\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash:not(.apx-tristate--mixed)::after {\\n display: none;\\n}\\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash::before {\\n content: '';\\n position: absolute;\\n inset: 0;\\n display: block;\\n pointer-events: none;\\n background-color: var(--apx-tristate-checked-color);\\n border-radius: inherit;\\n}\\n.apx-tristate.unchecked.apx-tristate--indeterminate-dash::after {\\n background-color: var(--apx-tristate-tick-color);\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-position: center;\\n -webkit-mask-size: 100% 100%;\\n -webkit-mask-mode: alpha;\\n mask-repeat: no-repeat;\\n mask-position: center;\\n mask-size: 100% 100%;\\n mask-mode: alpha;\\n -webkit-mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M8 16h16' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E\\\");\\n mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M8 16h16' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E\\\");\\n}\\n.apx-tristate.unchecked.apx-tristate--indeterminate-filled-check::after {\\n background-color: var(--apx-tristate-checked-color);\\n border-radius: inherit;\\n}\\n.apx-tristate.checked {\\n background-image: none;\\n background-color: var(--apx-tristate-checked-color);\\n}\\n.apx-tristate.crossed {\\n background-image: none;\\n background-color: var(--apx-tristate-crossed-color);\\n}\\n\\n.apx-tristate.checked::after,\\n.apx-tristate.crossed::after {\\n content: '';\\n position: absolute;\\n inset: 0;\\n display: block;\\n background-color: var(--apx-tristate-tick-color);\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-position: center;\\n -webkit-mask-size: 100% 100%;\\n -webkit-mask-mode: alpha;\\n mask-repeat: no-repeat;\\n mask-position: center;\\n mask-size: 100% 100%;\\n mask-mode: alpha;\\n pointer-events: none;\\n}\\n\\n.apx-tristate.checked::after {\\n -webkit-mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M6 17L12 23L26 9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\\\");\\n mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M6 17L12 23L26 9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\\\");\\n}\\n\\n.apx-tristate.crossed::after {\\n -webkit-mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M8 8L24 24M24 8L8 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\\\");\\n mask-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M8 8L24 24M24 8L8 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\\\");\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","// Module\nvar code = \"<div class=\\\"APX-dialog\\\">\\r\\n <div class=\\\"APX-dialog-content\\\">\\r\\n <span class=\\\"APX-close-dialog\\\">×</span>\\r\\n <h2 class=\\\"APX-dialog-title\\\"></h2>\\r\\n <div class=\\\"APX-dialog-dynamic-content\\\"></div>\\r\\n <div class=\\\"APX-dialog-button-container\\\"></div>\\r\\n </div>\\r\\n</div>\";\n// Exports\nmodule.exports = code;","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./dialog.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./dialog.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./scrollableTable.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./scrollableTable.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./toast.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./toast.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./tristate.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./tristate.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","// Function to load the CSS from a given URL\r\nfunction loadCss(url) {\r\n return fetch(url)\r\n .then(response => response.text())\r\n .then(css => {\r\n const styleSheet = document.createElement(\"style\");\r\n styleSheet.type = \"text/css\";\r\n styleSheet.textContent = css; // Use textContent instead of innerText\r\n document.head.appendChild(styleSheet);\r\n })\r\n .catch(error => {\r\n console.error(\"Failed to load CSS:\", error);\r\n });\r\n}\r\n\r\nexport {\r\n loadCss\r\n}","// Importing the CSS and HTML templates\r\nimport './css/dialog.css';\r\nimport dialogTemplate from './html/dialog.html?raw';\r\n\r\nconst createDialog = (options) => {\r\n const dialogDefaults = {\r\n title: '',\r\n content: '',\r\n contentURI: '',\r\n buttons: [],\r\n size: 'medium',\r\n showLoadingIndicator: false,\r\n contentMethod: 'GET',\r\n contentData: null,\r\n contentHeaders: undefined\r\n };\r\n\r\n const { title, content, contentURI, buttons, size, showLoadingIndicator, contentMethod, contentData, contentHeaders } = { ...dialogDefaults, ...options };\r\n\r\n const wrapper = document.createElement('div');\r\n wrapper.innerHTML = dialogTemplate.trim();\r\n const dialogElement = wrapper.firstChild;\r\n\r\n // Lifecycle event management\r\n const lifecycleResolvers = {};\r\n const lifecycleEvents = {};\r\n\r\n // Define lifecycle promises as properties\r\n ['opening', 'opened', 'closing', 'closed', 'contentLoading', 'contentLoaded'].forEach((event) => {\r\n lifecycleEvents[event] = new Promise((resolve) => {\r\n lifecycleResolvers[event] = resolve;\r\n });\r\n });\r\n\r\n const triggerEvent = (event) => {\r\n if (lifecycleResolvers[event]) {\r\n lifecycleResolvers[event]();\r\n } else {\r\n console.warn(`No resolver found for lifecycle event: ${event}`);\r\n }\r\n };\r\n\r\n const dialog = {\r\n element: dialogElement,\r\n buttons: {},\r\n isClosed: false,\r\n lifecycle: lifecycleEvents, // Lifecycle promises directly exposed here\r\n disableButton: (key) => {\r\n const button = dialogElement.querySelector(`.APX-dialog-button[data-key=\"${key}\"]`);\r\n if (button) {\r\n button.disabled = true;\r\n button.classList.add('APX-dialog-button-disabled');\r\n }\r\n },\r\n enableButton: (key) => {\r\n const button = dialogElement.querySelector(`.APX-dialog-button[data-key=\"${key}\"]`);\r\n if (button) {\r\n button.disabled = false;\r\n button.classList.remove('APX-dialog-button-disabled');\r\n }\r\n },\r\n open: async () => {\r\n try {\r\n triggerEvent('opening');\r\n await dialog.lifecycle.opening;\r\n\r\n // If loading indicator is enabled and we're fetching content, show dialog first\r\n if (showLoadingIndicator && contentURI) {\r\n // Append dialog to the DOM and display it first\r\n document.body.appendChild(dialogElement);\r\n dialogElement.style.display = \"flex\";\r\n \r\n // Show loading indicator\r\n dialogElement.querySelector(\".APX-dialog-dynamic-content\").innerHTML = '<div class=\"APX-dialog-loading-indicator\"></div>';\r\n \r\n // Load content after dialog is visible\r\n await fetchAndInsertContent();\r\n } else {\r\n // Default behavior: load content first, then show dialog\r\n await fetchAndInsertContent();\r\n \r\n // Append dialog to the DOM and display it\r\n document.body.appendChild(dialogElement);\r\n dialogElement.style.display = \"flex\";\r\n }\r\n\r\n triggerEvent('opened');\r\n await dialog.lifecycle.opened;\r\n } catch (error) {\r\n console.error('Error opening dialog:', error);\r\n }\r\n return dialog; // Return for daisy-chaining\r\n },\r\n close: async () => {\r\n try {\r\n triggerEvent('closing');\r\n await dialog.lifecycle.closing;\r\n\r\n // Cleanup and remove dialog\r\n closeDialogAndCleanup();\r\n\r\n triggerEvent('closed');\r\n await dialog.lifecycle.closed;\r\n } catch (error) {\r\n console.error('Error during dialog closing:', error);\r\n }\r\n return dialog; // Return for daisy-chaining\r\n }\r\n };\r\n\r\n const closeDialogAndCleanup = () => {\r\n if (dialog.isClosed) return;\r\n\r\n dialog.isClosed = true;\r\n dialogElement.style.display = \"none\";\r\n if (document.body.contains(dialogElement)) {\r\n document.body.removeChild(dialogElement);\r\n }\r\n };\r\n\r\n const setDialogSize = () => {\r\n const dialogContent = dialogElement.querySelector(\".APX-dialog-content\");\r\n const sizes = {\r\n small: { width: '300px', height: '200px' },\r\n medium: { width: '500px', height: '400px' },\r\n large: { width: '800px', height: '600px' }\r\n };\r\n\r\n if (size === 'auto') return;\r\n\r\n const selectedSize = sizes[size] || (typeof size === 'object' && size);\r\n if (selectedSize) {\r\n dialogContent.style.minWidth = selectedSize.width || '500px';\r\n dialogContent.style.minHeight = selectedSize.height || '400px';\r\n }\r\n };\r\n\r\n const addButtons = () => {\r\n const buttonContainer = dialogElement.querySelector(\".APX-dialog-button-container\");\r\n\r\n buttons.forEach(({ key, label, order = 0, align = 'flex-end', closeOnClick = true }) => {\r\n const button = document.createElement('button');\r\n button.classList.add('APX-dialog-button');\r\n button.textContent = label;\r\n button.style.order = order;\r\n button.setAttribute('data-key', key);\r\n\r\n // Create button context with disable/enable methods\r\n const buttonContext = {\r\n disable: () => {\r\n button.disabled = true;\r\n button.classList.add('APX-dialog-button-disabled');\r\n },\r\n enable: () => {\r\n button.disabled = false;\r\n button.classList.remove('APX-dialog-button-disabled');\r\n },\r\n key,\r\n element: button\r\n };\r\n\r\n if (closeOnClick) {\r\n // Handle as a one-time Promise\r\n let firstClickResolved = false;\r\n\r\n const firstClickPromise = new Promise((resolve) => {\r\n button.onclick = () => {\r\n if (!firstClickResolved && !button.disabled) {\r\n firstClickResolved = true;\r\n resolve({ dialog, button: buttonContext }); // Pass both dialog and button context\r\n dialog.close(); // Close the dialog\r\n }\r\n };\r\n });\r\n\r\n // Assign the promise for chaining with `.then`\r\n dialog.buttons[key] = firstClickPromise;\r\n } else {\r\n // Handle as a repeated event handler\r\n let handlers = []; // Store handlers for `.then()`\r\n\r\n const clickPromise = {\r\n then: (callback) => {\r\n if (typeof callback === 'function') {\r\n handlers.push(callback); // Add to handlers\r\n }\r\n return clickPromise; // Allow chaining\r\n },\r\n };\r\n\r\n button.onclick = () => {\r\n if (!button.disabled) {\r\n handlers.forEach((handler) => handler({ dialog, button: buttonContext })); // Pass both dialog and button context\r\n }\r\n };\r\n\r\n dialog.buttons[key] = clickPromise; // Assign the \"fake\" promise\r\n }\r\n\r\n buttonContainer.appendChild(button);\r\n buttonContainer.style.justifyContent = align;\r\n });\r\n };\r\n\r\n const fetchAndInsertContent = async () => {\r\n const originalCursor = document.body.style.cursor;\r\n document.body.style.cursor = 'wait';\r\n const dynamicContent = dialogElement.querySelector(\".APX-dialog-dynamic-content\");\r\n \r\n try {\r\n triggerEvent('contentLoading');\r\n await dialog.lifecycle.contentLoading;\r\n\r\n const contentHtml = contentURI\r\n ? await fetchContent(contentURI)\r\n : content;\r\n\r\n dynamicContent.innerHTML = contentHtml;\r\n\r\n triggerEvent('contentLoaded');\r\n await dialog.lifecycle.contentLoaded;\r\n } catch (error) {\r\n console.error('Error loading content:', error);\r\n } finally {\r\n document.body.style.cursor = originalCursor;\r\n }\r\n };\r\n\r\n const fetchContent = async (uri) => {\r\n const method = (contentMethod || 'GET').toUpperCase();\r\n\r\n // Always allow custom headers; we only add Content-Type when we can infer it\r\n const headers = { ...(contentHeaders || {}) };\r\n const hasContentType = Object.keys(headers).some((k) => k.toLowerCase() === 'content-type');\r\n\r\n /**\r\n * Build RequestInit depending on method and contentData type.\r\n * We avoid setting Content-Type for FormData and raw string/Blob payloads,\r\n * unless the caller explicitly provided it via contentHeaders.\r\n */\r\n const init = { method };\r\n\r\n if (method === 'POST') {\r\n let body = undefined;\r\n\r\n const isFormData = typeof FormData !== 'undefined' && contentData instanceof FormData;\r\n const isURLSearchParams = typeof URLSearchParams !== 'undefined' && contentData instanceof URLSearchParams;\r\n const isBlob = typeof Blob !== 'undefined' && contentData instanceof Blob;\r\n const isString = typeof contentData === 'string';\r\n const isPlainObject = contentData && typeof contentData === 'object' && !isFormData && !isURLSearchParams && !isBlob;\r\n\r\n if (isFormData) {\r\n body = contentData;\r\n // Do not set Content-Type for FormData; browser will set the boundary\r\n } else if (isURLSearchParams) {\r\n body = contentData;\r\n if (!hasContentType) headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';\r\n } else if (isPlainObject) {\r\n body = JSON.stringify(contentData);\r\n if (!hasContentType) headers['Content-Type'] = 'application/json';\r\n } else if (isString || isBlob) {\r\n body = contentData;\r\n // Content-Type left to caller if needed\r\n } else if (contentData != null) {\r\n // Fallback: try send as-is\r\n body = contentData;\r\n }\r\n\r\n if (body !== undefined) {\r\n init.body = body;\r\n }\r\n }\r\n\r\n if (Object.keys(headers).length > 0) {\r\n init.headers = headers;\r\n }\r\n\r\n const response = await fetch(uri, init);\r\n if (!response.ok) throw new Error(`Failed to fetch content: ${response.statusText}`);\r\n return response.text();\r\n };\r\n\r\n // Initialize dialog\r\n setDialogSize();\r\n addButtons();\r\n\r\n // Set title and close button handler\r\n dialogElement.querySelector(\".APX-dialog-title\").textContent = title;\r\n dialogElement.querySelector('.APX-close-dialog').onclick = dialog.close;\r\n\r\n return dialog;\r\n};\r\n\r\nexport default createDialog;\r\n","let counter = 0;\r\nconst doCallbacks = {};\r\nconst timeouts = {};\r\n\r\n/**\r\n * This function adds an event listener to the elements and returns an object with a do method to add callback functions.\r\n * @param {Object} apx - The apx object to augment with the listen function.\r\n * @returns {Object} - The augmented apx object.\r\n */\r\nexport default function (apx) {\r\n let elements = apx.elements;\r\n\r\n /**\r\n * Adds an event listener to the elements and returns an object with a do method to add callback functions.\r\n * @param {string} eventType - The type of event to listen for (e.g. 'click', 'keydown', etc.).\r\n * @param {string} [selector] - The CSS selector to use for event delegation (optional).\r\n * @returns {Object} - An object with a do method to add callback functions.\r\n * @example\r\n * apx.listen('click', '.my-button').do((event) => {\r\n * console.log('Button clicked!', event.target);\r\n * });\r\n */\r\n apx.listen = function (eventTypes, secondArgument, thirdArgument) {\r\n let selector;\r\n let options = {};\r\n // Determine if the second argument is a selector or options\r\n if (typeof secondArgument === 'string') {\r\n selector = secondArgument;\r\n options = thirdArgument || {};\r\n } else {\r\n options = secondArgument || {};\r\n }\r\n\r\n const uniqueId = generateUniqueId();\r\n const timeoutDuration = options.timeout || 0;\r\n \r\n if (!Array.isArray(eventTypes)) {\r\n eventTypes = [eventTypes]; // Ensure eventTypes is an array\r\n }\r\n \r\n eventTypes.forEach((eventType) => {\r\n elements.forEach((element) => {\r\n element.addEventListener(eventType, (event) => {\r\n executeCallbacks(event, uniqueId, timeoutDuration, selector, element);\r\n });\r\n });\r\n });\r\n\r\n return {\r\n /**\r\n * Adds a callback function to the doCallbacks object for the current event listener.\r\n * @param {Function} doCallback - The callback function to execute when the event is triggered.\r\n * @returns {Object} - Returns the current object to allow for chained calls.\r\n * @example\r\n * apx.listen('click', '.my-button').do((event) => {\r\n * console.log('Button clicked!', event.target);\r\n * }).do((event) => {\r\n * console.log('Another callback function!');\r\n * });\r\n */\r\n do: function (doCallback) {\r\n if (!doCallbacks[uniqueId]) {\r\n doCallbacks[uniqueId] = [];\r\n }\r\n doCallbacks[uniqueId].push(doCallback);\r\n return this; // Return the object to allow for chained calls\r\n },\r\n };\r\n };\r\n\r\n /**\r\n * Manually triggers the registered callbacks for a given event type on all elements or creates a new event if a string is provided.\r\n * @param {string|Event} event - The event to trigger. This can be an event type string (like 'click') or an actual Event object.\r\n */\r\n apx.trigger = function (event) {\r\n let eventType;\r\n if (typeof event === 'string') {\r\n eventType = event;\r\n event = new Event(event, { bubbles: true, cancelable: true });\r\n } else if (event instanceof Event) {\r\n eventType = event.type;\r\n } else {\r\n console.error('Invalid event type provided to apx.trigger. It must be either a string or Event object.');\r\n return;\r\n }\r\n\r\n apx.elements.forEach((element) => {\r\n element.dispatchEvent(event); // This will allow the event to bubble up naturally.\r\n });\r\n\r\n // Handle event delegation manually by executing callbacks if the target matches the selector\r\n Object.keys(doCallbacks).forEach((uniqueId) => {\r\n const callbackDetails = doCallbacks[uniqueId];\r\n if (callbackDetails && callbackDetails.eventType === eventType) {\r\n // Check if the event target matches the selector used during listener registration\r\n const { selector } = callbackDetails;\r\n if (!selector || event.target.matches(selector)) {\r\n executeCallbacks(event, uniqueId, 0, selector, event.target); // Immediate execution, no timeout\r\n }\r\n }\r\n });\r\n };\r\n \r\n return apx;\r\n};\r\n\r\n\r\nfunction executeCallbacks(event, uniqueId, timeoutDuration, selector = '', element) {\r\n const matchedElement = selector ? closest(event.target, selector) : element;\r\n if (!matchedElement) {\r\n return;\r\n }\r\n\r\n // Clear any previous timeout for this uniqueId to prevent unintended behavior\r\n clearTimeout(timeouts[uniqueId]);\r\n\r\n // Function to handle the execution of callbacks\r\n function handleCallbackExecution() {\r\n if (doCallbacks[uniqueId]) {\r\n doCallbacks[uniqueId].reduce((prevPromise, doCallback) => {\r\n return prevPromise.then(() => {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n const result = doCallback.bind(matchedElement)(event);\r\n if (result instanceof Promise) {\r\n result.then(resolve).catch(reject);\r\n } else {\r\n resolve(result);\r\n }\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n });\r\n }, Promise.resolve()).catch(() => {});\r\n }\r\n }\r\n\r\n // Check if timeoutDuration is zero to decide whether to delay the callback execution or not\r\n if (timeoutDuration === 0) {\r\n handleCallbackExecution();\r\n } else {\r\n timeouts[uniqueId] = setTimeout(handleCallbackExecution, timeoutDuration);\r\n }\r\n}\r\n\r\n\r\nfunction generateUniqueId() {\r\n const randomPart = Math.random().toString(36).substr(2, 9); // More randomness\r\n const uniqueId = `${Date.now()}_${randomPart}_${counter}`;\r\n counter = (counter + 1) % 1000; // Reset counter to avoid overflow\r\n\r\n return uniqueId;\r\n}\r\n\r\nfunction closest(element, selector) {\r\n while (element && element.nodeType === 1) {\r\n if (element.matches(selector)) {\r\n return element;\r\n }\r\n element = element.parentNode;\r\n }\r\n return null;\r\n}\r\n","import './css/scrollableTable.css';\r\n\r\nconst DATA_KEY = '_apxScrollableTable';\r\nconst CLASS_TABLE = 'apx-scrollable-table';\r\n\r\nconst DEFAULT_MAX_HEIGHT = '200px';\r\n\r\nconst THROTTLE_MS = 16;\r\n\r\n/** @type {Set<HTMLTableElement>} */\r\nconst dynamicTables = new Set();\r\n/** @type {Map<Element, Set<HTMLTableElement>>} */\r\nconst scrollSourceToTables = new Map();\r\n/** @type {Map<Element, Set<HTMLTableElement>>} */\r\nconst resizeSourceToTables = new Map();\r\n/** @type {boolean} */\r\nlet resizeWindowAttached = false;\r\n/** @type {ResizeObserver|null} */\r\nlet resizeObserver = null;\r\n/** @type {number} */\r\nlet throttleLast = 0;\r\n/** @type {number|null} */\r\nlet throttleRaf = null;\r\n\r\n/**\r\n * Sum of colspans for one row (direct th/td children of tr).\r\n * @param {HTMLTableRowElement} tr\r\n * @returns {number}\r\n */\r\nfunction getRowColumnCount(tr) {\r\n let cols = 0;\r\n tr.querySelectorAll(':scope > th, :scope > td').forEach((cell) => {\r\n cols += parseInt(cell.getAttribute('colspan'), 10) || 1;\r\n });\r\n return cols;\r\n}\r\n\r\n/**\r\n * Get maximum column count in a section (max sum of colspans across all rows).\r\n * @param {HTMLTableSectionElement} section - thead, tbody, or tfoot\r\n * @returns {number}\r\n */\r\nfunction getColumnCountFromSection(section) {\r\n if (!section) return 0;\r\n const rows = section.querySelectorAll(':scope > tr');\r\n let maxCols = 0;\r\n rows.forEach((tr) => {\r\n const sum = getRowColumnCount(tr);\r\n if (sum > maxCols) maxCols = sum;\r\n });\r\n return maxCols;\r\n}\r\n\r\n/**\r\n * Get total column count for the table (max across thead, tbody, tfoot).\r\n * @param {HTMLTableElement} table\r\n * @returns {number}\r\n */\r\nfunction getTableColumnCount(table) {\r\n const thead = table.querySelector('thead');\r\n const tbody = table.querySelector('tbody');\r\n const tfoot = table.querySelector('tfoot');\r\n const countThead = thead ? getColumnCountFromSection(thead) : 0;\r\n const countTbody = tbody ? getColumnCountFromSection(tbody) : 0;\r\n const countTfoot = tfoot ? getColumnCountFromSection(tfoot) : 0;\r\n return Math.max(countThead, countTbody, countTfoot, 1);\r\n}\r\n\r\n/**\r\n * Measure current column widths from the table in its natural layout (before applying scrollable class).\r\n * Prefers a row where each cell has colspan 1 so we get one width per column; otherwise splits cell widths by colspan.\r\n * @param {HTMLTableElement} table - table not yet with scrollable class\r\n * @param {number} numCols\r\n * @returns {number[]} pixel widths per column\r\n */\r\nfunction measureColumnWidths(table, numCols) {\r\n const thead = table.querySelector('thead');\r\n const tbody = table.querySelector('tbody');\r\n const sections = [thead, tbody].filter(Boolean);\r\n /** @type {HTMLTableRowElement|null} */\r\n let bestRow = null;\r\n for (const section of sections) {\r\n const rows = section.querySelectorAll(':scope > tr');\r\n for (const tr of rows) {\r\n const cells = tr.querySelectorAll(':scope > th, :scope > td');\r\n if (getRowColumnCount(tr) !== numCols) continue;\r\n const allSingle = Array.from(cells).every((c) => (parseInt(c.getAttribute('colspan'), 10) || 1) === 1);\r\n if (allSingle && cells.length === numCols) {\r\n bestRow = tr;\r\n break;\r\n }\r\n if (!bestRow) bestRow = tr;\r\n }\r\n if (bestRow && Array.from(bestRow.querySelectorAll(':scope > th, :scope > td')).every((c) => (parseInt(c.getAttribute('colspan'), 10) || 1) === 1))\r\n break;\r\n }\r\n if (!bestRow) return [];\r\n\r\n const widths = new Array(numCols).fill(0);\r\n const cells = bestRow.querySelectorAll(':scope > th, :scope > td');\r\n let col = 0;\r\n for (const cell of cells) {\r\n const span = Math.min(parseInt(cell.getAttribute('colspan'), 10) || 1, numCols - col);\r\n if (span <= 0) break;\r\n const w = cell.getBoundingClientRect().width;\r\n const perCol = w / span;\r\n for (let i = 0; i < span; i++) widths[col + i] = perCol;\r\n col += span;\r\n }\r\n if (col === 0) return [];\r\n const fallback = widths.some((w) => w > 0) ? Math.max(80, ...widths.filter((w) => w > 0)) / 2 : 80;\r\n for (let i = 0; i < numCols; i++) if (widths[i] <= 0) widths[i] = fallback;\r\n return widths.slice(0, numCols);\r\n}\r\n\r\n/**\r\n * Count direct tr children in a section.\r\n * @param {HTMLTableSectionElement} section\r\n * @returns {number}\r\n */\r\nfunction getRowCount(section) {\r\n if (!section) return 0;\r\n return section.querySelectorAll(':scope > tr').length;\r\n}\r\n\r\n/**\r\n * Build a 2D grid of occupied slots for a section (for rowspan/colspan placement).\r\n * Place each cell in DOM order; return a list of { cell, row, col, colspan, rowspan }.\r\n * @param {HTMLTableSectionElement} section\r\n * @param {number} numRows\r\n * @param {number} numCols\r\n * @returns {{ cell: HTMLTableCellElement, row: number, col: number, colspan: number, rowspan: number }[]}\r\n */\r\nfunction computeCellPlacements(section, numRows, numCols) {\r\n if (!section || numRows === 0 || numCols === 0) return [];\r\n const occupied = Array.from({ length: numRows }, () => Array(numCols).fill(false));\r\n const placements = [];\r\n const rows = section.querySelectorAll(':scope > tr');\r\n\r\n for (let r = 0; r < rows.length; r++) {\r\n const tr = rows[r];\r\n const cells = tr.querySelectorAll(':scope > th, :scope > td');\r\n for (const cell of cells) {\r\n const colspan = Math.min(parseInt(cell.getAttribute('colspan'), 10) || 1, numCols);\r\n const rowspan = Math.min(parseInt(cell.getAttribute('rowspan'), 10) || 1, numRows - r);\r\n let col = 0;\r\n while (col < numCols) {\r\n let free = true;\r\n for (let rr = r; rr < r + rowspan && free; rr++) {\r\n for (let cc = col; cc < col + colspan && free; cc++) {\r\n if (occupied[rr]?.[cc]) free = false;\r\n }\r\n }\r\n if (free) break;\r\n col++;\r\n }\r\n if (col + colspan > numCols) continue;\r\n for (let rr = r; rr < r + rowspan; rr++) {\r\n for (let cc = col; cc < col + colspan; cc++) {\r\n if (occupied[rr]) occupied[rr][cc] = true;\r\n }\r\n }\r\n placements.push({ cell, row: r, col, colspan, rowspan });\r\n }\r\n }\r\n return placements;\r\n}\r\n\r\n/**\r\n * Apply grid placement styles to a list of placements (1-based line numbers for CSS Grid).\r\n */\r\nfunction applyPlacements(placements) {\r\n placements.forEach(({ cell, row, col, colspan, rowspan }) => {\r\n cell.style.gridRow = `${row + 1} / span ${rowspan}`;\r\n cell.style.gridColumn = `${col + 1} / span ${colspan}`;\r\n });\r\n}\r\n\r\n/**\r\n * Clear grid placement styles from all th/td in a table (for refresh).\r\n * @param {HTMLTableElement} table\r\n */\r\nfunction clearPlacements(table) {\r\n table.querySelectorAll('th, td').forEach((cell) => {\r\n cell.style.gridRow = '';\r\n cell.style.gridColumn = '';\r\n });\r\n}\r\n\r\n/**\r\n * Normalize height/maxHeight option to a CSS length string.\r\n * @param {number|string} value\r\n * @returns {string}\r\n */\r\nfunction normalizeHeight(value) {\r\n if (value == null) return DEFAULT_MAX_HEIGHT;\r\n if (typeof value === 'number') return `${value}px`;\r\n return String(value);\r\n}\r\n\r\n/**\r\n * Resolve current body height from options: either bodyHeightDynamic.get(table) or static height/maxHeight.\r\n * @param {Object} options - scrollableTable options (may include bodyHeightDynamic, height, maxHeight)\r\n * @param {HTMLTableElement} table\r\n * @returns {{ bodySize: string, useFixedHeight: boolean }}\r\n */\r\nfunction resolveBodyHeight(options, table) {\r\n const dyn = options.bodyHeightDynamic;\r\n if (dyn && typeof dyn.get === 'function') {\r\n const value = dyn.get(table);\r\n const bodySize = normalizeHeight(value);\r\n const useFixedHeight = dyn.useAs === 'height';\r\n return { bodySize, useFixedHeight };\r\n }\r\n const useFixedHeight = options.height != null;\r\n const raw = useFixedHeight ? options.height : options.maxHeight;\r\n const bodySize = normalizeHeight(raw);\r\n return { bodySize, useFixedHeight };\r\n}\r\n\r\n/**\r\n * Update only the tbody height CSS variable and class (used on scroll/resize for dynamic height).\r\n * @param {HTMLTableElement} table\r\n * @param {Object} options - full scrollableTable options (with ref.options when called from throttle)\r\n */\r\nfunction updateTableBodyHeight(table, options) {\r\n const { bodySize, useFixedHeight } = resolveBodyHeight(options, table);\r\n table.style.setProperty('--apx-scrollable-body-max-height', bodySize);\r\n table.classList.toggle('apx-scrollable-table--body-height', useFixedHeight);\r\n}\r\n\r\n/**\r\n * Run lazy cleanup then updateTableBodyHeight for all tables still in dynamicTables. (Called by throttled entry point or RAF.)\r\n */\r\nfunction flushDynamicHeightUpdate() {\r\n const toRemove = [];\r\n dynamicTables.forEach((table) => {\r\n if (!table.isConnected) toRemove.push(table);\r\n });\r\n toRemove.forEach((table) => removeTableFromDynamicSources(table));\r\n dynamicTables.forEach((table) => {\r\n const ref = table[DATA_KEY];\r\n if (ref?.options) updateTableBodyHeight(table, ref.options);\r\n });\r\n}\r\n\r\n/**\r\n * Throttled entry: run flushDynamicHeightUpdate now or schedule with RAF.\r\n */\r\nfunction runDynamicHeightUpdate() {\r\n const now = Date.now();\r\n if (now - throttleLast < THROTTLE_MS) {\r\n if (!throttleRaf) {\r\n throttleRaf = requestAnimationFrame(() => {\r\n throttleRaf = null;\r\n throttleLast = Date.now();\r\n flushDynamicHeightUpdate();\r\n });\r\n }\r\n return;\r\n }\r\n throttleLast = now;\r\n flushDynamicHeightUpdate();\r\n}\r\n\r\n/**\r\n * Resolve updateOn into scroll targets (Element[]) and resize: { window: boolean, elements: Element[] }.\r\n * @param {Object} options - options.bodyHeightDynamic.updateOn\r\n * @returns {{ scrollTargets: Element[], resizeWindow: boolean, resizeElements: Element[] }}\r\n */\r\nfunction resolveUpdateOn(options) {\r\n const u = options?.bodyHeightDynamic?.updateOn;\r\n const scrollOn = u?.scrollOn;\r\n const resizeOn = u?.resizeOn;\r\n const scrollTargets = [];\r\n if (scrollOn != null && Array.isArray(scrollOn) && scrollOn.length > 0) {\r\n scrollOn.forEach((x) => {\r\n if (x === 'document') scrollTargets.push(document.documentElement);\r\n else if (x && typeof x.addEventListener === 'function') scrollTargets.push(x);\r\n });\r\n } else if (u?.scroll === true) {\r\n scrollTargets.push(document.documentElement);\r\n scrollTargets.push(typeof window !== 'undefined' ? window : document.documentElement);\r\n }\r\n let resizeWindow = false;\r\n const resizeElements = [];\r\n if (resizeOn != null && Array.isArray(resizeOn) && resizeOn.length > 0) {\r\n resizeOn.forEach((x) => {\r\n if (x === 'window') resizeWindow = true;\r\n else if (x && typeof x.addEventListener === 'function') resizeElements.push(x);\r\n });\r\n } else if (u?.resize !== false) {\r\n resizeWindow = true;\r\n resizeElements.push(document.documentElement);\r\n }\r\n return { scrollTargets, resizeWindow, resizeElements };\r\n}\r\n\r\n/**\r\n * Remove table from dynamicTables and from all scroll/resize Maps; detach listeners if Set becomes empty.\r\n * @param {HTMLTableElement} table\r\n */\r\nfunction removeTableFromDynamicSources(table) {\r\n dynamicTables.delete(table);\r\n scrollSourceToTables.forEach((set, el) => {\r\n set.delete(table);\r\n if (set.size === 0) {\r\n scrollSourceToTables.delete(el);\r\n el.removeEventListener('scroll', onScrollThrottled);\r\n }\r\n });\r\n resizeSourceToTables.forEach((set, el) => {\r\n set.delete(table);\r\n if (set.size === 0) {\r\n resizeSourceToTables.delete(el);\r\n if (resizeObserver) resizeObserver.unobserve(el);\r\n }\r\n });\r\n if (resizeWindowAttached && dynamicTables.size === 0) {\r\n window.removeEventListener('resize', onResizeThrottled);\r\n resizeWindowAttached = false;\r\n }\r\n}\r\n\r\nfunction onScrollThrottled() {\r\n runDynamicHeightUpdate();\r\n}\r\n\r\nfunction onResizeThrottled() {\r\n runDynamicHeightUpdate();\r\n}\r\n\r\n/**\r\n * Register a table with bodyHeightDynamic: add to Set and attach scroll/resize listeners per updateOn.\r\n * @param {HTMLTableElement} table\r\n * @param {Object} options - full options (ref.options)\r\n */\r\nfunction registerDynamicTable(table, options) {\r\n const { scrollTargets, resizeWindow, resizeElements } = resolveUpdateOn(options);\r\n dynamicTables.add(table);\r\n scrollTargets.forEach((el) => {\r\n let set = scrollSourceToTables.get(el);\r\n if (!set) {\r\n set = new Set();\r\n scrollSourceToTables.set(el, set);\r\n el.addEventListener('scroll', onScrollThrottled, { passive: true });\r\n }\r\n set.add(table);\r\n });\r\n if (resizeWindow) {\r\n if (!resizeWindowAttached) {\r\n resizeWindowAttached = true;\r\n window.addEventListener('resize', onResizeThrottled, { passive: true });\r\n }\r\n }\r\n resizeElements.forEach((el) => {\r\n let set = resizeSourceToTables.get(el);\r\n if (!set) {\r\n set = new Set();\r\n resizeSourceToTables.set(el, set);\r\n if (!resizeObserver) resizeObserver = new ResizeObserver(onResizeThrottled);\r\n resizeObserver.observe(el);\r\n }\r\n set.add(table);\r\n });\r\n}\r\n\r\n/**\r\n * Build grid-template-columns from measured widths and optional overrides per column.\r\n * @param {number} numCols\r\n * @param {number[]} columnWidths\r\n * @param {Object<number, string>|(string|null)[]} columnOverrides - map column index → CSS value (e.g. '2fr'), or array; null/empty = use measured\r\n * @returns {string}\r\n */\r\nfunction buildTemplateColumns(numCols, columnWidths, columnOverrides) {\r\n if (!columnWidths || columnWidths.length !== numCols) return '';\r\n const get = (i) =>\r\n Array.isArray(columnOverrides) ? columnOverrides[i] : columnOverrides[i];\r\n const parts = [];\r\n for (let i = 0; i < numCols; i++) {\r\n const ov = get(i);\r\n if (ov != null && typeof ov === 'string' && ov.trim() !== '') {\r\n parts.push(ov.trim());\r\n } else {\r\n parts.push(`${Math.round(columnWidths[i])}fr`);\r\n }\r\n }\r\n return parts.join(' ');\r\n}\r\n\r\n/**\r\n * Build grid-template-rows from measured heights and optional overrides per row.\r\n * @param {number} numRows\r\n * @param {number[]} rowHeights\r\n * @param {Object<number, string>|(string|null)[]} rowOverrides - map row index → CSS value (e.g. '48px', '2fr'), or array; null/empty = use measured\r\n * @returns {string}\r\n */\r\nfunction buildTemplateRows(numRows, rowHeights, rowOverrides) {\r\n if (!rowHeights || rowHeights.length < numRows) return '';\r\n const get = (i) =>\r\n Array.isArray(rowOverrides) ? rowOverrides[i] : rowOverrides?.[i];\r\n const parts = [];\r\n for (let i = 0; i < numRows; i++) {\r\n const ov = get(i);\r\n if (ov != null && typeof ov === 'string' && ov.trim() !== '') {\r\n parts.push(ov.trim());\r\n } else {\r\n parts.push(`${Math.round(rowHeights[i] ?? 0)}px`);\r\n }\r\n }\r\n return parts.join(' ');\r\n}\r\n\r\n/**\r\n * Measure each tr height in a section (table must not yet have scrollable class).\r\n * @param {HTMLTableSectionElement|null} section\r\n * @returns {number[]}\r\n */\r\nfunction measureRowHeights(section) {\r\n if (!section) return [];\r\n const rows = section.querySelectorAll(':scope > tr');\r\n return Array.from(rows).map((tr) => tr.getBoundingClientRect().height);\r\n}\r\n\r\n/**\r\n * Apply scrollable table layout to a single table.\r\n * @param {HTMLTableElement} table\r\n * @param {Object} options - scrollableTable options\r\n * @param {number|string} [options.maxHeight] - Max height of tbody (default '200px'). Ignored when height or bodyHeightDynamic is set.\r\n * @param {number|string} [options.height] - Fixed height of tbody. Ignored when bodyHeightDynamic is set.\r\n * @param {{ get: (function(HTMLTableElement): number|string), useAs: 'height'|'maxHeight', updateOn?: { scroll?: boolean, resize?: boolean, scrollOn?: ('document'|Element)[], resizeOn?: ('window'|Element)[] } }} [options.bodyHeightDynamic] - When set, body size is computed by get(table) and re-applied when scroll/resize sources fire. updateOn: scrollOn/resizeOn list elements (sentinels 'document'/'window'); or use scroll (default false) / resize (default true) booleans.\r\n * @param {string} [options.gridTemplateColumns]\r\n * @param {{ thead?: string, tbody?: string, tfoot?: string }} [options.gridTemplateRows]\r\n * @param {{ thead?: Object<number, string>|(string|null)[], tbody?: Object<number, string>|(string|null)[], tfoot?: Object<number, string>|(string|null)[] }} [options.rowOverrides]\r\n * @param {Object<number, string>|(string|null)[]} [options.columnOverrides]\r\n * @param {{ columnWidths?: number[], rowHeights?: { thead?: number[], tbody?: number[], tfoot?: number[] } } | undefined} ref - existing ref when refreshing\r\n */\r\nfunction applyScrollableTable(table, options, ref) {\r\n const thead = table.querySelector('thead');\r\n const tbody = table.querySelector('tbody');\r\n const tfoot = table.querySelector('tfoot');\r\n\r\n const numCols = getTableColumnCount(table);\r\n if (numCols === 0) return;\r\n\r\n const alreadyScrollable = table.classList.contains(CLASS_TABLE);\r\n const customTemplate = typeof options.gridTemplateColumns === 'string' && options.gridTemplateColumns.trim().length > 0;\r\n const columnWidths = customTemplate\r\n ? null\r\n : (ref?.columnWidths ?? (alreadyScrollable ? null : measureColumnWidths(table, numCols)));\r\n\r\n const theadRows = getRowCount(thead);\r\n const tbodyRows = getRowCount(tbody);\r\n const tfootRows = getRowCount(tfoot);\r\n\r\n const rowHeights =\r\n ref?.rowHeights ??\r\n (alreadyScrollable\r\n ? null\r\n : {\r\n thead: measureRowHeights(thead),\r\n tbody: measureRowHeights(tbody),\r\n tfoot: measureRowHeights(tfoot)\r\n });\r\n\r\n table.style.setProperty('--apx-scrollable-cols', String(numCols));\r\n table.style.setProperty('--apx-scrollable-thead-rows', String(Math.max(1, theadRows)));\r\n table.style.setProperty('--apx-scrollable-tbody-rows', String(Math.max(1, tbodyRows)));\r\n table.style.setProperty('--apx-scrollable-tfoot-rows', String(Math.max(1, tfootRows)));\r\n const { bodySize, useFixedHeight } = resolveBodyHeight(options, table);\r\n table.style.setProperty('--apx-scrollable-body-max-height', bodySize);\r\n table.classList.toggle('apx-scrollable-table--body-height', useFixedHeight);\r\n\r\n table.classList.add(CLASS_TABLE);\r\n table.classList.toggle('apx-scrollable-table--has-tfoot', !!(tfoot && tfootRows > 0));\r\n table.classList.toggle('apx-scrollable-table--no-thead', !(thead && theadRows > 0));\r\n\r\n // Force reflow so the grid layout is established before setting measured template-columns.\r\n // Without this, the browser batches class + template into one pass and the tbody overflows horizontally.\r\n table.offsetHeight; // eslint-disable-line no-unused-expressions\r\n\r\n const gutterSuffix = ' minmax(var(--apx-scrollable-gutter-width, 17px), var(--apx-scrollable-gutter-width, 17px))';\r\n if (customTemplate) {\r\n table.style.setProperty('--apx-scrollable-template-columns', options.gridTemplateColumns.trim() + gutterSuffix);\r\n } else if (columnWidths && columnWidths.length === numCols) {\r\n const template =\r\n options.columnOverrides != null\r\n ? buildTemplateColumns(numCols, columnWidths, options.columnOverrides)\r\n : columnWidths.map((w) => `${Math.round(w)}fr`).join(' ');\r\n table.style.setProperty('--apx-scrollable-template-columns', template + gutterSuffix);\r\n } else {\r\n table.style.removeProperty('--apx-scrollable-template-columns');\r\n }\r\n\r\n clearPlacements(table);\r\n\r\n const sections = [\r\n { section: thead, rows: Math.max(1, theadRows), heights: rowHeights?.thead, key: 'thead' },\r\n { section: tbody, rows: Math.max(1, tbodyRows), heights: rowHeights?.tbody, key: 'tbody' },\r\n { section: tfoot, rows: Math.max(1, tfootRows), heights: rowHeights?.tfoot, key: 'tfoot' }\r\n ];\r\n const customRows = options.gridTemplateRows && typeof options.gridTemplateRows === 'object' ? options.gridTemplateRows : null;\r\n const rowOverrides = options.rowOverrides && typeof options.rowOverrides === 'object' ? options.rowOverrides : null;\r\n sections.forEach(({ section, rows, heights, key }) => {\r\n if (!section) return;\r\n const varName = `--apx-scrollable-${key}-template-rows`;\r\n const custom = customRows?.[key];\r\n const overrides = rowOverrides?.[key];\r\n if (typeof custom === 'string' && custom.trim().length > 0) {\r\n section.style.setProperty(varName, custom.trim());\r\n } else if (heights && heights.length >= rows) {\r\n const template =\r\n overrides != null\r\n ? buildTemplateRows(rows, heights.slice(0, rows), overrides)\r\n : heights\r\n .slice(0, rows)\r\n .map((h) => `${Math.round(h)}px`)\r\n .join(' ');\r\n section.style.setProperty(varName, template);\r\n } else {\r\n section.style.removeProperty(varName);\r\n }\r\n const placements = computeCellPlacements(section, rows, numCols);\r\n applyPlacements(placements);\r\n });\r\n\r\n return { columnWidths, rowHeights };\r\n}\r\n\r\n/**\r\n * Augments the APX object with scrollableTable(options | 'refresh').\r\n * Makes the tbody of a table scrollable while keeping thead/tfoot fixed and columns aligned (CSS Grid + subgrid).\r\n *\r\n * @param {Object} apx - The APX object to augment.\r\n * @example\r\n * APX('table.data-grid').scrollableTable({ maxHeight: 300 });\r\n * APX('table.data-grid').scrollableTable('refresh');\r\n */\r\nexport default function augmentWithScrollableTable(apx) {\r\n apx.scrollableTable = function (optionsOrAction) {\r\n const isRefresh = optionsOrAction === 'refresh';\r\n const options = isRefresh ? null : (optionsOrAction && typeof optionsOrAction === 'object' ? optionsOrAction : {});\r\n\r\n apx.elements.forEach((element) => {\r\n if (element.tagName !== 'TABLE') return;\r\n const table = /** @type {HTMLTableElement} */ (element);\r\n\r\n const ref = table[DATA_KEY];\r\n if (ref) {\r\n if (isRefresh) {\r\n applyScrollableTable(table, ref.options, ref);\r\n } else if (options && Object.keys(options).length > 0) {\r\n ref.options = { ...ref.options, ...options };\r\n const result = applyScrollableTable(table, ref.options, ref);\r\n if (result?.columnWidths) ref.columnWidths = result.columnWidths;\r\n if (result?.rowHeights) ref.rowHeights = result.rowHeights;\r\n }\r\n const currentOptions = ref.options;\r\n if (currentOptions?.bodyHeightDynamic) registerDynamicTable(table, currentOptions);\r\n else removeTableFromDynamicSources(table);\r\n return;\r\n }\r\n if (isRefresh) return;\r\n\r\n console.log('[APX scrollableTable] create', table);\r\n const result = applyScrollableTable(table, options, undefined);\r\n table[DATA_KEY] = {\r\n options: { ...options },\r\n columnWidths: result?.columnWidths || undefined,\r\n rowHeights: result?.rowHeights || undefined\r\n };\r\n if (options?.bodyHeightDynamic) registerDynamicTable(table, options);\r\n });\r\n\r\n return apx;\r\n };\r\n}\r\n","// Minimal, framework-agnostic ToastManager for APX\r\n// ESM-first, no side effects on import. DOM only when used.\r\nimport './css/toast.css';\r\n\r\n/**\r\n * @typedef {Object} PositionObject\r\n * @property {'sticky'|'relative'|'anchored'} [type]\r\n * @property {string} [x]\r\n * @property {string} [y]\r\n * @property {HTMLElement} [element]\r\n * @property {'top'|'right'|'bottom'|'left'|'above'|'below'|'before'|'after'} [placement]\r\n * @property {string} [gap]\r\n * @property {boolean} [useNativeCSS]\r\n */\r\n\r\n/**\r\n * @typedef {string|PositionObject} Position\r\n */\r\n\r\n/**\r\n * @typedef {Object} ToastConfig\r\n * @property {Position} [position]\r\n * @property {'up'|'down'|'auto'} [flow] Flow direction for stacking toasts. 'auto' determines based on position. Default: 'auto'\r\n * @property {number} [maxToasts]\r\n * @property {number} [defaultDurationMs]\r\n * @property {number} [zIndex]\r\n * @property {'polite'|'assertive'|'off'} [ariaLive]\r\n * @property {number} [gap]\r\n * @property {boolean} [dedupe]\r\n * @property {string} [containerClass]\r\n * @property {number} [offset]\r\n * @property {string} [id]\r\n * @property {boolean|{enable: boolean, position: 'top'|'bottom'}} [progress] Default: false. Show progress bar when true or { enable: true, position: 'top'|'bottom' }.\r\n */\r\n\r\n/**\r\n * @typedef {{enable: boolean, position: 'top'|'bottom', pauseButton: boolean}} ProgressOpt\r\n */\r\n\r\n/**\r\n * @typedef {Object} ToastOptions\r\n * @property {string|Node} message\r\n * @property {'info'|'success'|'warning'|'danger'} [type]\r\n * @property {number} [durationMs]\r\n * @property {boolean} [dismissible]\r\n * @property {string} [id]\r\n * @property {(ref: ToastRef, ev: MouseEvent) => void} [onClick]\r\n * @property {(ref: ToastRef, reason: 'timeout'|'close'|'api'|'overflow') => void} [onClose]\r\n * @property {string} [className]\r\n * @property {Position} [position]\r\n * @property {'up'|'down'|'auto'} [flow] Flow direction for stacking toasts. 'auto' determines based on position. Default: 'auto'\r\n * @property {boolean|{enable: boolean, position: 'top'|'bottom', pauseButton?: boolean}} [progress] Show progress bar: true = top, or { enable, position, pauseButton } (pauseButton default false).\r\n */\r\n\r\n/**\r\n * @typedef {Object} ToastRef\r\n * @property {string} id\r\n * @property {HTMLElement} el\r\n * @property {(reason?: 'api'|'close') => void} close\r\n * @property {(partial: Partial<ToastOptions>) => void} update\r\n * @property {() => Promise<void>} whenClosed\r\n * @property {(event: 'close'|'click', handler: Function) => () => void} on\r\n * @property {(event: 'close'|'click', handler: Function) => void} off\r\n */\r\n\r\nconst isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\r\n\r\n// Shared container cache: Map<position, HTMLElement>\r\n// Containers are shared between managers with the same position\r\nconst _containerCache = new Map();\r\n\r\n// Garbage collection: cleanup empty unmanaged containers after a delay\r\nconst GC_DELAY_MS = 20000; // 20 seconds\r\nlet _gcTimeoutId = null;\r\n\r\n// Wrapper for all toast containers (keeps DOM clean)\r\nlet _toastWrapper = null;\r\n\r\n/**\r\n * Get or create the toast containers wrapper\r\n * @returns {HTMLElement|null}\r\n */\r\nfunction getToastWrapper() {\r\n if (!isBrowser) return null;\r\n \r\n if (!_toastWrapper) {\r\n _toastWrapper = document.querySelector('.APX-toast-wrapper');\r\n if (!_toastWrapper) {\r\n _toastWrapper = createEl('div', 'APX-toast-wrapper');\r\n _toastWrapper.style.position = 'fixed';\r\n _toastWrapper.style.top = '0';\r\n _toastWrapper.style.left = '0';\r\n _toastWrapper.style.width = '0';\r\n _toastWrapper.style.height = '0';\r\n _toastWrapper.style.pointerEvents = 'none';\r\n _toastWrapper.style.zIndex = '10000'; // Below containers but above most content\r\n document.body.appendChild(_toastWrapper);\r\n }\r\n }\r\n \r\n return _toastWrapper;\r\n}\r\n\r\nconst DEFAULT_CONFIG = {\r\n position: 'bottom-right',\r\n maxToasts: 5,\r\n defaultDurationMs: 5000,\r\n zIndex: 11000,\r\n ariaLive: 'polite',\r\n gap: 8,\r\n dedupe: false,\r\n containerClass: '',\r\n offset: 0,\r\n progress: false\r\n};\r\n\r\n/**\r\n * Create an element with classes\r\n */\r\nfunction createEl(tag, classNames) {\r\n const el = document.createElement(tag);\r\n if (classNames) {\r\n classNames.split(' ').filter(Boolean).forEach(c => el.classList.add(c));\r\n }\r\n return el;\r\n}\r\n\r\n/** Minimal line-based pause (two bars) / resume (triangle right) icon SVG. Uses currentColor. */\r\nfunction getProgressPauseResumeIconSVG(paused) {\r\n if (paused) {\r\n return `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M8 6L8 18L17 12Z\"/></svg>`;\r\n }\r\n return `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><line x1=\"9\" y1=\"6\" x2=\"9\" y2=\"18\"/><line x1=\"15\" y1=\"6\" x2=\"15\" y2=\"18\"/></svg>`;\r\n}\r\n\r\n/**\r\n * Create and insert progress block (track + bar, optional pause button) into toast. Button is fixed at left via track layout.\r\n * @param {HTMLElement} toastEl\r\n * @param {HTMLElement} contentEl\r\n * @param {HTMLElement|null} closeBtn\r\n * @param {ProgressOpt} progressOpt\r\n * @returns {{ wrap: HTMLElement, bar: HTMLElement, pauseBtn: HTMLElement|null }}\r\n */\r\nfunction createProgressBlock(toastEl, contentEl, closeBtn, progressOpt) {\r\n const pos = progressOpt.position;\r\n const showPauseButton = progressOpt.pauseButton === true;\r\n const wrap = createEl('div', `APX-toast__progress APX-toast__progress--${pos}`);\r\n const track = createEl('div', 'APX-toast__progress-track');\r\n const bar = createEl('div', 'APX-toast__progress-bar');\r\n bar.setAttribute('role', 'progressbar');\r\n bar.setAttribute('aria-valuemin', '0');\r\n bar.setAttribute('aria-valuemax', '100');\r\n bar.setAttribute('aria-label', 'Temps restant');\r\n bar.setAttribute('aria-valuenow', '100');\r\n bar.style.width = '100%';\r\n track.appendChild(bar);\r\n wrap.appendChild(track);\r\n let pauseBtn = null;\r\n if (showPauseButton) {\r\n pauseBtn = createEl('button', 'APX-toast__progress-pause');\r\n pauseBtn.type = 'button';\r\n pauseBtn.setAttribute('aria-label', 'Pause');\r\n pauseBtn.setAttribute('title', 'Pause');\r\n pauseBtn.innerHTML = getProgressPauseResumeIconSVG(false); // running = show pause icon\r\n wrap.insertBefore(pauseBtn, track);\r\n }\r\n if (pos === 'top') {\r\n toastEl.insertBefore(wrap, contentEl);\r\n toastEl.classList.add('APX-toast--has-progress-top');\r\n } else {\r\n toastEl.insertBefore(wrap, closeBtn);\r\n toastEl.classList.add('APX-toast--has-progress-bottom');\r\n }\r\n if (showPauseButton) toastEl.classList.add('APX-toast--has-progress-pause');\r\n return { wrap, bar, pauseBtn };\r\n}\r\n\r\n/**\r\n * Update progress block position (classes + DOM order)\r\n * @param {HTMLElement} toastEl\r\n * @param {HTMLElement} progressWrap\r\n * @param {HTMLElement} contentEl\r\n * @param {HTMLElement|null} closeBtn\r\n * @param {'top'|'bottom'} pos\r\n */\r\nfunction applyProgressPosition(toastEl, progressWrap, contentEl, closeBtn, pos) {\r\n toastEl.classList.remove('APX-toast--has-progress-top', 'APX-toast--has-progress-bottom');\r\n toastEl.classList.add(pos === 'top' ? 'APX-toast--has-progress-top' : 'APX-toast--has-progress-bottom');\r\n progressWrap.classList.remove('APX-toast__progress--top', 'APX-toast__progress--bottom');\r\n progressWrap.classList.add(`APX-toast__progress--${pos}`);\r\n const target = pos === 'top' ? contentEl : closeBtn;\r\n if (progressWrap.nextElementSibling !== target) toastEl.insertBefore(progressWrap, target);\r\n}\r\n\r\n/**\r\n * Resolve progress option from per-call option and config default\r\n * @param {boolean|{enable: boolean, position: 'top'|'bottom'}|undefined} option\r\n * @param {boolean|{enable: boolean, position: 'top'|'bottom'}|undefined} configDefault\r\n * @returns {ProgressOpt}\r\n */\r\nfunction resolveProgress(option, configDefault) {\r\n const fromConfig = configDefault === true\r\n ? { enable: true, position: 'top', pauseButton: false }\r\n : (configDefault && typeof configDefault === 'object'\r\n ? {\r\n enable: !!configDefault.enable,\r\n position: configDefault.position === 'bottom' ? 'bottom' : 'top',\r\n pauseButton: configDefault.pauseButton === true\r\n }\r\n : { enable: false, position: 'top', pauseButton: false });\r\n if (option === undefined || option === null) return fromConfig;\r\n if (option === true) return { enable: true, position: 'top', pauseButton: false };\r\n if (typeof option === 'object') {\r\n return {\r\n enable: !!option.enable,\r\n position: option.position === 'bottom' ? 'bottom' : 'top',\r\n pauseButton: option.pauseButton === true\r\n };\r\n }\r\n return { enable: false, position: 'top', pauseButton: false };\r\n}\r\n\r\n/**\r\n * Normalize placement synonyms to CSS values\r\n * @param {string} placement\r\n * @returns {'top'|'right'|'bottom'|'left'}\r\n */\r\nfunction normalizePlacement(placement) {\r\n const synonyms = {\r\n 'above': 'top',\r\n 'below': 'bottom',\r\n 'before': 'left',\r\n 'after': 'right'\r\n };\r\n return synonyms[placement] || placement;\r\n}\r\n\r\n/**\r\n * Determine flow direction based on position\r\n * @param {Position} position\r\n * @returns {'up'|'down'}\r\n */\r\nfunction determineFlow(position) {\r\n if (typeof position === 'string') {\r\n // String positions: top = up, bottom = down\r\n if (position.includes('top')) return 'up';\r\n if (position.includes('bottom')) return 'down';\r\n return 'down'; // default\r\n }\r\n \r\n if (typeof position === 'object' && position !== null) {\r\n const type = position.type || (position.x || position.y ? 'sticky' : null);\r\n \r\n if (type === 'sticky' || (!type && (position.x || position.y))) {\r\n // Sticky: determine based on y coordinate\r\n if (position.y !== undefined) {\r\n // If y starts with '-' or is a small value, likely top (up)\r\n // If y is a large value or percentage, likely bottom (down)\r\n if (position.y.startsWith('-')) {\r\n // Negative = from bottom, so flow down\r\n return 'down';\r\n }\r\n const num = parseFloat(position.y);\r\n if (!isNaN(num)) {\r\n // If y < 50% of viewport height, likely top (up)\r\n // Otherwise likely bottom (down)\r\n if (position.y.includes('%')) {\r\n return num < 50 ? 'up' : 'down';\r\n }\r\n // For px values, assume < 400px is top (up)\r\n return num < 400 ? 'up' : 'down';\r\n }\r\n }\r\n return 'down'; // default\r\n }\r\n \r\n if (type === 'anchored' && position.placement) {\r\n // Anchored: placement determines flow\r\n const placement = normalizePlacement(position.placement);\r\n if (placement === 'top' || placement === 'above') return 'up';\r\n if (placement === 'bottom' || placement === 'below') return 'down';\r\n // For left/right, default to down\r\n return 'down';\r\n }\r\n \r\n if (type === 'relative') {\r\n // Relative: determine based on y offset\r\n if (position.y !== undefined) {\r\n const num = parseFloat(position.y);\r\n if (!isNaN(num)) {\r\n // Negative y = above element = flow up\r\n // Positive y = below element = flow down\r\n return num < 0 ? 'up' : 'down';\r\n }\r\n }\r\n return 'down'; // default\r\n }\r\n }\r\n \r\n return 'down'; // default\r\n}\r\n\r\n/**\r\n * Garbage collection: remove empty unmanaged containers\r\n */\r\nfunction cleanupEmptyContainers() {\r\n if (!isBrowser) return;\r\n \r\n const containers = document.querySelectorAll('.APX-toast-container:not([data-apx-toast-managed=\"true\"])');\r\n containers.forEach(container => {\r\n // Check if container is empty (no toasts)\r\n if (container.children.length === 0) {\r\n const positionKey = container.getAttribute('data-apx-toast-position');\r\n if (positionKey) {\r\n _containerCache.delete(positionKey);\r\n }\r\n container.remove();\r\n }\r\n });\r\n \r\n // Clean up wrapper if it's empty (all containers removed)\r\n if (_toastWrapper && _toastWrapper.children.length === 0) {\r\n _toastWrapper.remove();\r\n _toastWrapper = null;\r\n }\r\n \r\n _gcTimeoutId = null;\r\n}\r\n\r\n/**\r\n * Schedule garbage collection for empty unmanaged containers\r\n */\r\nfunction scheduleGarbageCollection() {\r\n if (_gcTimeoutId) {\r\n clearTimeout(_gcTimeoutId);\r\n }\r\n _gcTimeoutId = setTimeout(cleanupEmptyContainers, GC_DELAY_MS);\r\n}\r\n\r\n/**\r\n * Find all scrollable parent elements\r\n * @param {HTMLElement} element\r\n * @returns {HTMLElement[]}\r\n */\r\nfunction findScrollableParents(element) {\r\n const scrollables = [];\r\n let current = element.parentElement;\r\n \r\n while (current && current !== document.body && current !== document.documentElement) {\r\n const style = window.getComputedStyle(current);\r\n const overflow = style.overflow + style.overflowY + style.overflowX;\r\n \r\n if (overflow.includes('scroll') || overflow.includes('auto')) {\r\n scrollables.push(current);\r\n }\r\n \r\n current = current.parentElement;\r\n }\r\n \r\n return scrollables;\r\n}\r\n\r\n/**\r\n * Hash an element to create a unique identifier\r\n * @param {HTMLElement} el\r\n * @returns {string}\r\n */\r\nfunction hashElement(el) {\r\n const rect = el.getBoundingClientRect();\r\n const str = `${el.tagName}_${rect.left}_${rect.top}_${rect.width}_${rect.height}`;\r\n let hash = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const char = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + char;\r\n hash = hash & hash; // Convert to 32bit integer\r\n }\r\n return Math.abs(hash).toString(36);\r\n}\r\n\r\n/**\r\n * Serialize position options into a unique key\r\n * @param {Position} position\r\n * @returns {string}\r\n */\r\nfunction serializePosition(position) {\r\n if (typeof position === 'string') {\r\n return `s:${position}`;\r\n }\r\n \r\n if (typeof position === 'object' && position !== null) {\r\n const parts = [];\r\n \r\n // Type (default: sticky if x/y provided)\r\n const type = position.type || (position.x || position.y ? 'sticky' : null);\r\n if (type) parts.push(`t:${type}`);\r\n \r\n // Coordinates\r\n if (position.x !== undefined) parts.push(`x:${position.x}`);\r\n if (position.y !== undefined) parts.push(`y:${position.y}`);\r\n \r\n // For relative/anchored: use element ID or hash\r\n if (position.element) {\r\n const elementId = position.element.id || \r\n position.element.dataset?.apxToastAnchorId ||\r\n `el_${hashElement(position.element)}`;\r\n parts.push(`el:${elementId}`);\r\n }\r\n \r\n if (position.placement) {\r\n // Normalize placement for serialization (use CSS values)\r\n const normalized = normalizePlacement(position.placement);\r\n parts.push(`p:${normalized}`);\r\n }\r\n if (position.gap !== undefined) parts.push(`g:${position.gap}`);\r\n if (position.useNativeCSS) parts.push(`native:true`);\r\n \r\n return `o:${parts.join('|')}`;\r\n }\r\n \r\n return 's:bottom-right';\r\n}\r\n\r\n/**\r\n * ToastManager class\r\n */\r\nclass ToastManager {\r\n /** @param {Partial<ToastConfig>=} config */\r\n constructor(config) {\r\n /** @type {ToastConfig} */\r\n this.config = { ...DEFAULT_CONFIG, ...(config || {}) };\r\n /** @type {HTMLElement|null} */\r\n this.container = null;\r\n /** @type {Map<string, ToastRef>} */\r\n this.idToRef = new Map();\r\n /** @type {ToastRef[]} */\r\n this.open = [];\r\n }\r\n\r\n /** @param {Partial<ToastConfig>} config */\r\n configure(config) {\r\n this.config = { ...this.config, ...(config || {}) };\r\n if (this.container) this.applyContainerConfig();\r\n }\r\n\r\n /** @param {'polite'|'assertive'|'off'} mode */\r\n setAriaLive(mode) { this.configure({ ariaLive: mode }); }\r\n\r\n /** @returns {ToastRef[]} */\r\n getOpenToasts() { return this.open.slice(); }\r\n\r\n /** @param {ToastOptions} opts */\r\n show(opts) {\r\n if (!isBrowser) return /** @type {any} */(null);\r\n const options = this.normalizeOptions(opts);\r\n\r\n if (this.config.dedupe && options.id && this.idToRef.has(options.id)) {\r\n const ref = this.idToRef.get(options.id);\r\n ref.update(options);\r\n return ref;\r\n }\r\n\r\n // Determine position and flow for this toast (options take precedence over config)\r\n const position = options.position || this.config.position || 'bottom-right';\r\n const flow = options.flow !== undefined ? options.flow : (this.config.flow !== undefined ? this.config.flow : 'auto');\r\n const finalFlow = flow === 'auto' ? determineFlow(position) : flow;\r\n \r\n // Ensure default container is set (for backward compatibility)\r\n this.ensureContainer();\r\n\r\n const toastEl = createEl('div', `APX-toast APX-toast--${options.type}`);\r\n toastEl.setAttribute('role', 'status');\r\n // Priority: options.id > config.id > auto-generated\r\n const toastId = options.id || `t_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;\r\n toastEl.dataset.toastId = toastId;\r\n if (options.className) toastEl.className += ` ${options.className}`;\r\n\r\n const contentEl = createEl('div', 'APX-toast__content');\r\n if (typeof options.message === 'string') {\r\n contentEl.textContent = options.message;\r\n } else if (options.message) {\r\n contentEl.appendChild(options.message);\r\n }\r\n toastEl.appendChild(contentEl);\r\n\r\n let closeBtn = null;\r\n if (options.dismissible !== false) {\r\n closeBtn = createEl('button', 'APX-toast__close');\r\n closeBtn.setAttribute('aria-label', 'Close');\r\n closeBtn.type = 'button';\r\n toastEl.appendChild(closeBtn);\r\n }\r\n\r\n let progressWrap = null;\r\n let progressBarEl = null;\r\n let progressPauseBtn = null;\r\n if (options.progress.enable && options.durationMs > 0) {\r\n const created = createProgressBlock(toastEl, contentEl, closeBtn, options.progress);\r\n progressWrap = created.wrap;\r\n progressBarEl = created.bar;\r\n progressPauseBtn = created.pauseBtn;\r\n }\r\n\r\n // Get or create container for this specific position\r\n let container = null;\r\n let positionUpdateFn = null;\r\n let positionCleanup = null;\r\n let originalElementStyle = null;\r\n \r\n if (position && typeof position === 'object' && position !== null) {\r\n const type = position.type || (position.x || position.y ? 'sticky' : null);\r\n \r\n if (position.useNativeCSS && (type === 'relative' || type === 'anchored') && position.element) {\r\n // useNativeCSS: true - create container in target element using native CSS\r\n const targetEl = position.element;\r\n originalElementStyle = targetEl.style.position;\r\n targetEl.style.position = 'relative';\r\n \r\n // Create a container for stacking toasts (reuse if exists)\r\n const positionKey = serializePosition(position);\r\n let nativeContainer = targetEl.querySelector(`[data-apx-toast-position=\"${positionKey}\"]`);\r\n if (!nativeContainer) {\r\n nativeContainer = createEl('div', 'APX-toast-container APX-toast-container-native');\r\n nativeContainer.setAttribute('data-apx-toast-position', positionKey);\r\n nativeContainer.style.position = 'absolute';\r\n nativeContainer.style.zIndex = String(this.config.zIndex);\r\n nativeContainer.style.gap = `${this.config.gap}px`;\r\n nativeContainer.setAttribute('aria-live', String(this.config.ariaLive));\r\n nativeContainer.style.flexDirection = finalFlow === 'up' ? 'column-reverse' : 'column';\r\n \r\n // Apply positioning to container\r\n if (type === 'relative') {\r\n // Relative: use x/y directly\r\n if (position.x !== undefined) {\r\n if (position.x.startsWith('-')) {\r\n nativeContainer.style.right = position.x.substring(1);\r\n } else {\r\n nativeContainer.style.left = position.x;\r\n }\r\n }\r\n if (position.y !== undefined) {\r\n if (position.y.startsWith('-')) {\r\n nativeContainer.style.bottom = position.y.substring(1);\r\n } else {\r\n nativeContainer.style.top = position.y;\r\n }\r\n }\r\n } else if (type === 'anchored') {\r\n // Anchored: position outside the element using 100% (element size) + gap\r\n const placement = normalizePlacement(position.placement);\r\n const gap = position.gap || '1em';\r\n \r\n switch (placement) {\r\n case 'top':\r\n nativeContainer.style.bottom = `calc(100% + ${gap})`;\r\n nativeContainer.style.left = '0';\r\n break;\r\n case 'bottom':\r\n nativeContainer.style.top = `calc(100% + ${gap})`;\r\n nativeContainer.style.left = '0';\r\n break;\r\n case 'left':\r\n nativeContainer.style.right = `calc(100% + ${gap})`;\r\n nativeContainer.style.top = '0';\r\n break;\r\n case 'right':\r\n nativeContainer.style.left = `calc(100% + ${gap})`;\r\n nativeContainer.style.top = '0';\r\n break;\r\n }\r\n }\r\n \r\n targetEl.appendChild(nativeContainer);\r\n } else {\r\n // Update flow direction if container exists\r\n nativeContainer.style.flexDirection = finalFlow === 'up' ? 'column-reverse' : 'column';\r\n }\r\n \r\n container = nativeContainer;\r\n \r\n positionCleanup = () => {\r\n if (targetEl && targetEl.parentElement) {\r\n targetEl.style.position = originalElementStyle || '';\r\n // Remove native container if empty\r\n if (nativeContainer && nativeContainer.children.length === 0) {\r\n const positionKey = nativeContainer.getAttribute('data-apx-toast-position');\r\n if (positionKey) {\r\n _containerCache.delete(positionKey);\r\n }\r\n nativeContainer.remove();\r\n }\r\n }\r\n };\r\n } else {\r\n // Default: get or create container for this position\r\n container = this.getContainerForPosition(position, finalFlow);\r\n \r\n const updateContainerPosition = () => {\r\n const styles = this.calculatePosition(position, container);\r\n Object.assign(container.style, styles);\r\n };\r\n \r\n updateContainerPosition();\r\n \r\n // For relative/anchored, listen to scroll/resize\r\n if ((type === 'relative' || type === 'anchored') && position.element) {\r\n let rafId = null;\r\n let lastUpdate = 0;\r\n const throttleMs = 16; // ~60fps\r\n \r\n const throttledUpdate = () => {\r\n const now = Date.now();\r\n if (now - lastUpdate < throttleMs) {\r\n if (rafId) cancelAnimationFrame(rafId);\r\n rafId = requestAnimationFrame(() => {\r\n updateContainerPosition();\r\n lastUpdate = Date.now();\r\n });\r\n } else {\r\n updateContainerPosition();\r\n lastUpdate = now;\r\n }\r\n };\r\n \r\n // Find all scrollable parents\r\n const scrollableParents = findScrollableParents(position.element);\r\n \r\n // Listen to scroll on window and all scrollable parents\r\n window.addEventListener('scroll', throttledUpdate, { passive: true });\r\n window.addEventListener('resize', throttledUpdate, { passive: true });\r\n \r\n // Listen to scroll on all scrollable parent elements\r\n scrollableParents.forEach(parent => {\r\n parent.addEventListener('scroll', throttledUpdate, { passive: true });\r\n });\r\n \r\n // Watch for element removal\r\n const observer = new MutationObserver(() => {\r\n if (!position.element.parentElement) {\r\n ref.close('api');\r\n }\r\n });\r\n observer.observe(document.body, { childList: true, subtree: true });\r\n \r\n positionUpdateFn = updateContainerPosition;\r\n positionCleanup = () => {\r\n window.removeEventListener('scroll', throttledUpdate);\r\n window.removeEventListener('resize', throttledUpdate);\r\n scrollableParents.forEach(parent => {\r\n parent.removeEventListener('scroll', throttledUpdate);\r\n });\r\n observer.disconnect();\r\n if (rafId) cancelAnimationFrame(rafId);\r\n };\r\n }\r\n }\r\n } else {\r\n // String position - get or create container for this position\r\n container = this.getContainerForPosition(position, finalFlow);\r\n }\r\n \r\n // Append toast to the appropriate container\r\n if (container) {\r\n container.appendChild(toastEl);\r\n } else {\r\n // Fallback to default container\r\n this.container.appendChild(toastEl);\r\n }\r\n\r\n // Enter animation\r\n toastEl.classList.add('APX-toast--enter');\r\n requestAnimationFrame(() => {\r\n toastEl.classList.add('APX-toast--enter-active');\r\n });\r\n\r\n // Event handling and timers\r\n let remaining = options.durationMs;\r\n let timerId = null;\r\n let startTs = null;\r\n let userPaused = false;\r\n let progressRafId = null;\r\n const handlers = { click: new Set(), close: new Set() };\r\n\r\n const startTimer = () => {\r\n if (!remaining || remaining <= 0) return; // sticky\r\n startTs = Date.now();\r\n timerId = window.setTimeout(() => ref.close('timeout'), remaining);\r\n if (progressBarEl) {\r\n const tick = () => {\r\n if (timerId == null || startTs == null) return;\r\n const elapsed = Date.now() - startTs;\r\n const remainingMs = Math.max(0, remaining - elapsed);\r\n const durationMs = options.durationMs;\r\n const pct = durationMs > 0 ? Math.max(0, Math.min(100, (remainingMs / durationMs) * 100)) : 0;\r\n progressBarEl.style.width = `${pct}%`;\r\n progressBarEl.setAttribute('aria-valuenow', String(Math.round(pct)));\r\n progressRafId = requestAnimationFrame(tick);\r\n };\r\n progressRafId = requestAnimationFrame(tick);\r\n }\r\n };\r\n const pauseTimer = () => {\r\n if (timerId != null) {\r\n window.clearTimeout(timerId);\r\n timerId = null;\r\n if (startTs != null) remaining -= (Date.now() - startTs);\r\n }\r\n if (progressRafId != null) {\r\n cancelAnimationFrame(progressRafId);\r\n progressRafId = null;\r\n }\r\n };\r\n\r\n const attachProgressPauseHandler = (btn) => {\r\n btn.addEventListener('click', (ev) => {\r\n ev.stopPropagation();\r\n userPaused = !userPaused;\r\n if (userPaused) pauseTimer(); else startTimer();\r\n const label = userPaused ? 'Reprendre' : 'Pause';\r\n btn.setAttribute('aria-label', label);\r\n btn.setAttribute('title', label);\r\n btn.innerHTML = getProgressPauseResumeIconSVG(userPaused); // paused = resume (triangle)\r\n });\r\n };\r\n\r\n /** @type {ToastRef} */\r\n const ref = {\r\n id: toastId,\r\n el: toastEl,\r\n close: (reason) => {\r\n cleanup(reason || 'api');\r\n },\r\n update: (partial) => {\r\n const merged = this.normalizeOptions({ ...options, ...partial });\r\n // update content\r\n if (typeof merged.message === 'string') {\r\n contentEl.textContent = merged.message;\r\n } else if (merged.message) {\r\n contentEl.innerHTML = '';\r\n contentEl.appendChild(merged.message);\r\n }\r\n // update type class\r\n ['info','success','warning','danger'].forEach(t => toastEl.classList.remove(`APX-toast--${t}`));\r\n toastEl.classList.add(`APX-toast--${merged.type}`);\r\n // update classes\r\n if (options.className !== merged.className) {\r\n if (options.className) toastEl.classList.remove(...options.className.split(' ').filter(Boolean));\r\n if (merged.className) toastEl.classList.add(...merged.className.split(' ').filter(Boolean));\r\n }\r\n // update progress visibility/position\r\n options.progress = merged.progress;\r\n if (progressWrap) {\r\n if (!merged.progress.enable || merged.durationMs <= 0) {\r\n progressWrap.style.display = 'none';\r\n } else {\r\n progressWrap.style.display = '';\r\n applyProgressPosition(toastEl, progressWrap, contentEl, closeBtn, merged.progress.position);\r\n }\r\n } else if (merged.progress.enable && merged.durationMs > 0) {\r\n const created = createProgressBlock(toastEl, contentEl, closeBtn, merged.progress);\r\n progressWrap = created.wrap;\r\n progressBarEl = created.bar;\r\n progressPauseBtn = created.pauseBtn;\r\n if (progressPauseBtn) attachProgressPauseHandler(progressPauseBtn);\r\n }\r\n if (progressWrap && progressWrap.style.display !== 'none' && merged.progress.pauseButton === true) {\r\n toastEl.classList.add('APX-toast--has-progress-pause');\r\n } else {\r\n toastEl.classList.remove('APX-toast--has-progress-pause');\r\n }\r\n // update duration logic\r\n options.durationMs = merged.durationMs;\r\n remaining = merged.durationMs;\r\n if (progressBarEl) {\r\n progressBarEl.style.width = '100%';\r\n progressBarEl.setAttribute('aria-valuenow', '100');\r\n }\r\n pauseTimer();\r\n startTimer();\r\n },\r\n whenClosed: () => closedPromise,\r\n on: (event, handler) => { handlers[event].add(handler); return () => ref.off(event, handler); },\r\n off: (event, handler) => { handlers[event].delete(handler); }\r\n };\r\n\r\n const notify = (event, arg) => handlers[event].forEach(fn => { try { fn(arg); } catch (_) {} });\r\n\r\n const closedPromise = new Promise(resolve => {\r\n const finish = (reason) => {\r\n notify('close', reason);\r\n if (typeof options.onClose === 'function') {\r\n try { options.onClose(ref, reason); } catch(_){}\r\n }\r\n resolve();\r\n };\r\n\r\n const cleanup = (reason) => {\r\n if (!toastEl) return;\r\n pauseTimer();\r\n if (progressRafId != null) {\r\n cancelAnimationFrame(progressRafId);\r\n progressRafId = null;\r\n }\r\n // Cleanup position listeners and restore styles\r\n if (positionCleanup) {\r\n positionCleanup();\r\n positionCleanup = null;\r\n }\r\n \r\n // If overflow, remove immediately to enforce hard cap\r\n if (reason === 'overflow') {\r\n if (toastEl.parentElement) toastEl.parentElement.removeChild(toastEl);\r\n const idx = this.open.indexOf(ref);\r\n if (idx >= 0) this.open.splice(idx, 1);\r\n this.idToRef.delete(toastId);\r\n finish(reason);\r\n return;\r\n }\r\n\r\n // Otherwise, animate out\r\n toastEl.classList.add('APX-toast--exit');\r\n requestAnimationFrame(() => toastEl.classList.add('APX-toast--exit-active'));\r\n\r\n const removeEl = () => {\r\n toastEl.removeEventListener('transitionend', removeEl);\r\n if (toastEl.parentElement) toastEl.parentElement.removeChild(toastEl);\r\n const idx = this.open.indexOf(ref);\r\n if (idx >= 0) this.open.splice(idx, 1);\r\n this.idToRef.delete(toastId);\r\n \r\n // Schedule garbage collection for unmanaged containers\r\n scheduleGarbageCollection();\r\n \r\n finish(reason);\r\n };\r\n toastEl.addEventListener('transitionend', removeEl);\r\n };\r\n\r\n // attach close behavior\r\n ref.close = (reason) => cleanup(reason || 'api');\r\n });\r\n\r\n // Click handling\r\n toastEl.addEventListener('click', (ev) => {\r\n notify('click', ev);\r\n if (typeof options.onClick === 'function') {\r\n try { options.onClick(ref, ev); } catch(_){}\r\n }\r\n });\r\n\r\n // Hover pause\r\n toastEl.addEventListener('mouseenter', pauseTimer);\r\n toastEl.addEventListener('mouseleave', () => { if (!userPaused) startTimer(); });\r\n\r\n if (closeBtn) closeBtn.addEventListener('click', (ev) => { ev.stopPropagation(); ref.close('close'); });\r\n if (progressPauseBtn) attachProgressPauseHandler(progressPauseBtn);\r\n\r\n // Track\r\n this.open.push(ref);\r\n this.idToRef.set(toastId, ref);\r\n\r\n // Overflow policy\r\n if (this.open.length > this.config.maxToasts) {\r\n const oldest = this.open[0];\r\n oldest.close('overflow');\r\n }\r\n\r\n startTimer();\r\n return ref;\r\n }\r\n\r\n /**\r\n * Convenience helpers\r\n */\r\n info(message, opts) { return this.show({ ...(opts||{}), message, type: 'info' }); }\r\n success(message, opts) { return this.show({ ...(opts||{}), message, type: 'success' }); }\r\n warning(message, opts) { return this.show({ ...(opts||{}), message, type: 'warning' }); }\r\n danger(message, opts) { return this.show({ ...(opts||{}), message, type: 'danger' }); }\r\n\r\n /** @param {'api'|'overflow'} [reason] */\r\n closeAll(reason) {\r\n // copy to avoid mutation during iteration\r\n const all = this.open.slice();\r\n all.forEach(r => r.close(reason || 'api'));\r\n }\r\n\r\n /** @param {ToastOptions} opts */\r\n normalizeOptions(opts) {\r\n const o = { ...opts };\r\n if (!o.type) o.type = 'info';\r\n if (typeof o.dismissible !== 'boolean') o.dismissible = true;\r\n if (typeof o.durationMs !== 'number') o.durationMs = this.config.defaultDurationMs;\r\n // Use id from options if provided, otherwise use id from config, otherwise undefined (will be auto-generated)\r\n if (!o.id && this.config.id) o.id = this.config.id;\r\n o.progress = resolveProgress(opts.progress, this.config.progress);\r\n return o;\r\n }\r\n\r\n /**\r\n * Find or create a container for a specific position\r\n * @param {Position} position\r\n * @param {'up'|'down'} [flow] Flow direction (already determined, not 'auto')\r\n * @param {boolean} [managed] Whether this container is managed by a manager (default: false)\r\n * @returns {HTMLElement|null}\r\n */\r\n getContainerForPosition(position, flow, managed = false) {\r\n if (!isBrowser) return null;\r\n \r\n const positionKey = serializePosition(position);\r\n \r\n // Flow should already be determined ('up' or 'down'), but fallback to auto if needed\r\n const finalFlow = flow && flow !== 'auto' ? flow : determineFlow(position);\r\n \r\n // 1. Check memory cache\r\n let c = _containerCache.get(positionKey);\r\n \r\n // 2. If not in cache, search in DOM by data attribute\r\n if (!c && isBrowser) {\r\n c = document.querySelector(`[data-apx-toast-position=\"${positionKey}\"]`);\r\n if (c) {\r\n _containerCache.set(positionKey, c);\r\n }\r\n }\r\n \r\n // 3. If still not found, create new container\r\n if (!c) {\r\n c = createEl('div', 'APX-toast-container');\r\n c.setAttribute('data-apx-toast-position', positionKey);\r\n \r\n // Mark as managed if created by a manager\r\n if (managed) {\r\n c.setAttribute('data-apx-toast-managed', 'true');\r\n }\r\n \r\n // Determine position class (for CSS)\r\n const posClass = typeof position === 'string' \r\n ? position \r\n : (position.type || 'bottom-right');\r\n c.classList.add(`APX-toast-container--${posClass}`);\r\n c.setAttribute('aria-live', String(this.config.ariaLive));\r\n c.style.zIndex = String(this.config.zIndex);\r\n c.style.gap = `${this.config.gap}px`;\r\n \r\n // Apply flow direction\r\n c.style.flexDirection = finalFlow === 'up' ? 'column-reverse' : 'column';\r\n \r\n // Apply position styles if object position\r\n if (typeof position === 'object' && position !== null) {\r\n c.style.position = 'fixed';\r\n const styles = this.calculatePosition(position, c);\r\n Object.assign(c.style, styles);\r\n }\r\n \r\n // Append to wrapper for clean DOM organization\r\n const wrapper = getToastWrapper();\r\n if (wrapper) {\r\n wrapper.appendChild(c);\r\n } else {\r\n document.body.appendChild(c);\r\n }\r\n _containerCache.set(positionKey, c);\r\n } else {\r\n // Update flow direction if container exists (may be shared)\r\n c.style.flexDirection = finalFlow === 'up' ? 'column-reverse' : 'column';\r\n \r\n // If container exists and is now managed, mark it\r\n if (managed && !c.hasAttribute('data-apx-toast-managed')) {\r\n c.setAttribute('data-apx-toast-managed', 'true');\r\n }\r\n }\r\n \r\n return c;\r\n }\r\n\r\n ensureContainer() {\r\n if (this.container || !isBrowser) return;\r\n \r\n const position = this.config.position || 'bottom-right';\r\n const flow = this.config.flow !== undefined ? this.config.flow : 'auto';\r\n // Containers created by ensureContainer are managed\r\n this.container = this.getContainerForPosition(position, flow, true);\r\n this.applyContainerConfig();\r\n }\r\n\r\n applyContainerConfig() {\r\n if (!this.container) return;\r\n const position = this.config.position || 'bottom-right';\r\n const pos = typeof position === 'string' ? position : (position.type || 'bottom-right');\r\n \r\n // Apply styles (these may be overridden by other managers sharing the container)\r\n this.container.style.zIndex = String(this.config.zIndex);\r\n this.container.style.gap = `${this.config.gap}px`;\r\n this.container.setAttribute('aria-live', String(this.config.ariaLive));\r\n \r\n // Update position class (only for string positions)\r\n if (typeof position === 'string') {\r\n const posClasses = ['bottom-right','bottom-left','top-right','top-left'].map(p => `APX-toast-container--${p}`);\r\n this.container.classList.remove(...posClasses);\r\n this.container.classList.add(`APX-toast-container--${pos}`);\r\n }\r\n \r\n // Apply container class if specified\r\n if (this.config.containerClass) {\r\n this.config.containerClass.split(' ').filter(Boolean).forEach(cls => {\r\n this.container.classList.add(cls);\r\n });\r\n }\r\n \r\n // Apply offset (only for string positions)\r\n if (typeof position === 'string') {\r\n if (this.config.offset) {\r\n const offset = `${this.config.offset}px`;\r\n if (pos.includes('bottom')) this.container.style.bottom = offset;\r\n else this.container.style.top = offset;\r\n if (pos.includes('right')) this.container.style.right = offset;\r\n else this.container.style.left = offset;\r\n } else {\r\n // Reset offset if not specified\r\n if (pos.includes('bottom')) this.container.style.bottom = '';\r\n else this.container.style.top = '';\r\n if (pos.includes('right')) this.container.style.right = '';\r\n else this.container.style.left = '';\r\n }\r\n } else if (typeof position === 'object' && position !== null) {\r\n // For object positions, ensure container has position: fixed\r\n this.container.style.position = 'fixed';\r\n }\r\n }\r\n\r\n /**\r\n * Calculate position for a container based on position config\r\n * @param {Position} position\r\n * @param {HTMLElement} containerEl\r\n * @returns {{left?: string, top?: string, right?: string, bottom?: string}}\r\n */\r\n calculatePosition(position, containerEl) {\r\n if (typeof position === 'string') {\r\n // String positions are handled by container CSS\r\n return {};\r\n }\r\n \r\n if (typeof position === 'object' && position !== null) {\r\n const type = position.type || (position.x || position.y ? 'sticky' : null);\r\n \r\n if (type === 'sticky' || (!type && (position.x || position.y))) {\r\n // Sticky: fixed position relative to viewport\r\n const styles = {};\r\n if (position.x !== undefined) {\r\n if (position.x.startsWith('-')) {\r\n styles.right = position.x.substring(1);\r\n } else {\r\n styles.left = position.x;\r\n }\r\n }\r\n if (position.y !== undefined) {\r\n if (position.y.startsWith('-')) {\r\n styles.bottom = position.y.substring(1);\r\n } else {\r\n styles.top = position.y;\r\n }\r\n }\r\n return styles;\r\n }\r\n \r\n if (type === 'relative' && position.element) {\r\n // Relative: position relative to element with x/y offset\r\n // Use fixed positioning, so getBoundingClientRect() is relative to viewport\r\n const rect = position.element.getBoundingClientRect();\r\n \r\n // Parse x/y offsets (can be px, em, etc.)\r\n const parseOffset = (val) => {\r\n if (!val) return 0;\r\n const num = parseFloat(val);\r\n if (val.includes('em')) {\r\n // Convert em to px (approximate: 1em = 16px)\r\n return num * 16;\r\n }\r\n return num;\r\n };\r\n \r\n const offsetX = parseOffset(position.x || '0');\r\n const offsetY = parseOffset(position.y || '0');\r\n \r\n const styles = {\r\n left: `${rect.left + offsetX}px`,\r\n top: `${rect.top + offsetY}px`\r\n };\r\n return styles;\r\n }\r\n \r\n if (type === 'anchored' && position.element) {\r\n // Anchored: position relative to element with placement\r\n const rect = position.element.getBoundingClientRect();\r\n const gap = position.gap || '1em';\r\n \r\n // Parse gap (can be px, em, etc.)\r\n const parseGap = (val) => {\r\n const num = parseFloat(val);\r\n if (val.includes('em')) {\r\n return num * 16; // Approximate: 1em = 16px\r\n }\r\n return num;\r\n };\r\n \r\n const gapPx = parseGap(gap);\r\n const styles = {};\r\n \r\n // Normalize placement synonyms (above/below/before/after) to CSS values\r\n const placement = normalizePlacement(position.placement);\r\n \r\n switch (placement) {\r\n case 'top':\r\n // Toast above element: bottom of toast = top of element - gap\r\n // bottom = viewport height - (element top - gap) = viewport height - element top + gap\r\n styles.bottom = `${window.innerHeight - rect.top + gapPx}px`;\r\n styles.left = `${rect.left}px`;\r\n break;\r\n case 'bottom':\r\n // Toast below element: top of toast = bottom of element + gap\r\n styles.top = `${rect.bottom + gapPx}px`;\r\n styles.left = `${rect.left}px`;\r\n break;\r\n case 'left':\r\n // Toast to the left: right of toast = left of element - gap\r\n styles.right = `${window.innerWidth - rect.left + gapPx}px`;\r\n styles.top = `${rect.top}px`;\r\n break;\r\n case 'right':\r\n // Toast to the right: left of toast = right of element + gap\r\n styles.left = `${rect.right + gapPx}px`;\r\n styles.top = `${rect.top}px`;\r\n break;\r\n }\r\n return styles;\r\n }\r\n }\r\n \r\n return {};\r\n }\r\n}\r\n\r\n/**\r\n * @param {Partial<ToastConfig>=} config\r\n * @returns {ToastManager}\r\n */\r\nfunction createToastManager(config) {\r\n return new ToastManager(config);\r\n}\r\n\r\n// High-level APX.toast API (default & named managers)\r\nlet _defaultManager = null;\r\nconst _getDefault = () => {\r\n if (!_defaultManager) _defaultManager = createToastManager();\r\n return _defaultManager;\r\n};\r\n\r\n/**\r\n * Toast API surface to be attached as APX.toast.\r\n * Callable form proxies to defaultManager.show(opts): APX.toast({...})\r\n */\r\nfunction toast(opts) {\r\n return _getDefault().show(opts);\r\n}\r\n\r\nObject.assign(toast, {\r\n /**\r\n * Create a manager. If first arg is string, register as named under toast.custom[name]\r\n * @param {string|Partial<ToastConfig>} nameOrConfig\r\n * @param {Partial<ToastConfig>=} maybeConfig\r\n * @returns {ToastManager}\r\n */\r\n create: (nameOrConfig, maybeConfig) => {\r\n if (typeof nameOrConfig === 'string') {\r\n const name = nameOrConfig;\r\n const manager = new ToastManager({ ...(maybeConfig || {}) });\r\n if (!toast.custom) toast.custom = {};\r\n toast.custom[name] = manager;\r\n return manager;\r\n }\r\n return new ToastManager({ ...(nameOrConfig || {}) });\r\n },\r\n /** @type {Record<string, ToastManager>} */\r\n custom: {},\r\n /** @param {string} name */\r\n use: (name) => (toast.custom && toast.custom[name]) || null,\r\n Manager: ToastManager,\r\n show: (opts) => _getDefault().show(opts),\r\n info: (message, opts) => _getDefault().info(message, opts),\r\n success: (message, opts) => _getDefault().success(message, opts),\r\n warning: (message, opts) => _getDefault().warning(message, opts),\r\n danger: (message, opts) => _getDefault().danger(message, opts),\r\n configure: (config) => _getDefault().configure(config),\r\n setAriaLive: (mode) => _getDefault().setAriaLive(mode),\r\n closeAll: (reason) => _getDefault().closeAll(reason),\r\n getOpenToasts: () => _getDefault().getOpenToasts()\r\n});\r\n\r\nexport default toast;\r\nexport { ToastManager, createToastManager, toast };\r\n","// Import des fonctions et modules des sous-modules\r\nimport augmentWithPack from './form-packer/augment-apx.mjs';\r\nimport { packFormToJSON } from './form-packer/packToJson.mjs';\r\n\r\n// Export de la fonction d'augmentation\r\nexport { augmentWithPack };\r\n\r\n// Export des fonctions utilitaires\r\nexport { packFormToJSON };\r\n\r\n// Export d'un objet tools pour faciliter l'utilisation\r\nexport const tools = {\r\n packFormToJSON: packFormToJSON\r\n};\r\n\r\n\r\n","import { packFormToJSON } from './packToJson.mjs';\r\n\r\n/**\r\n * Ajoute la méthode pack() aux objets APX pour convertir les formulaires en JSON\r\n * @param {Object} apx - L'objet APX à augmenter\r\n * @returns {Object} L'objet APX augmenté\r\n */\r\nexport default function (apx) {\r\n /**\r\n * Convertit le premier formulaire sélectionné en objet JSON\r\n * @param {Object} [options] - Options passées à packFormToJSON (ex. { numericKeysAlwaysArray: true })\r\n * @returns {Object} L'objet JSON résultant\r\n * @throws {Error} Si aucun formulaire n'est trouvé ou si le premier élément n'est pas un formulaire\r\n * @example\r\n * const data = APX('form.myformclass').pack();\r\n * const dataLegacy = APX('form').pack({ numericKeysAlwaysArray: true });\r\n */\r\n apx.pack = function (options) {\r\n const firstElement = this.first();\r\n if (!firstElement) {\r\n throw new Error('No element found');\r\n }\r\n if (firstElement.tagName !== 'FORM') {\r\n throw new Error('Element is not a form');\r\n }\r\n return packFormToJSON(firstElement, options);\r\n };\r\n \r\n return apx;\r\n}\r\n\r\n\r\n","/**\r\n * Convertit un formulaire HTML en objet JSON\r\n * @param {HTMLFormElement} form - Le formulaire à convertir\r\n * @param {Object} [options] - Options de conversion\r\n * @param {boolean} [options.numericKeysAlwaysArray=false] - Si true, toute clé numérique est traitée comme index de tableau (comportement d'avant 2.6.2). Sinon, heuristique : tableau seulement si indices denses 0,1,2,…,n.\r\n * @returns {Object} L'objet JSON résultant\r\n * @throws {TypeError} Si form n'est pas un HTMLFormElement\r\n */\r\nexport const packFormToJSON = (form, options = {}) => {\r\n // Validation de l'entrée\r\n if (!form || !(form instanceof HTMLFormElement)) {\r\n throw new TypeError('packFormToJSON expects an HTMLFormElement');\r\n }\r\n\r\n const numericKeysAlwaysArray = options.numericKeysAlwaysArray === true;\r\n\r\n const formData = new FormData(form);\r\n const jsonData = {};\r\n \r\n /**\r\n * Construit une représentation string du chemin pour les messages d'erreur\r\n * @param {Array} parts - Les parties du chemin\r\n * @returns {string} Le chemin formaté\r\n */\r\n const buildPathString = (parts) => {\r\n return parts.reduce((path, part) => {\r\n if (part.type === 'key') {\r\n return path ? `${path}[${part.name}]` : part.name;\r\n }\r\n if (part.type === 'numeric') {\r\n return `${path}[${part.index}]`;\r\n }\r\n if (part.type === 'array') {\r\n return `${path}[]`;\r\n }\r\n return path;\r\n }, '');\r\n };\r\n \r\n // ============================================================================\r\n // PHASE 1 : ANALYSE ET DÉTECTION DES CONFLITS\r\n // ============================================================================\r\n \r\n /**\r\n * Structure pour stocker l'utilisation d'un chemin\r\n * @typedef {Object} PathUsage\r\n * @property {boolean} isFinal - Le chemin est utilisé comme valeur finale\r\n * @property {boolean} isIntermediate - Le chemin est utilisé comme chemin intermédiaire\r\n * @property {boolean} hasArraySuffix - Le chemin se termine par [] (crée des valeurs primitives)\r\n * @property {string} key - La clé du formulaire qui utilise ce chemin\r\n */\r\n \r\n const pathUsage = new Map(); // Map<pathString, PathUsage>\r\n const keyAnalysis = new Map(); // Map<basePath, {hasNumeric: boolean, hasString: boolean}>\r\n const numericIndicesByPath = new Map(); // Map<pathString, Set<number>> — indices under each parent path\r\n const allEntries = [];\r\n \r\n /**\r\n * Enregistre l'utilisation d'un chemin dans pathUsage\r\n * @param {string} currentPath - Le chemin à enregistrer\r\n * @param {boolean} isFinal - Si c'est une valeur finale\r\n * @param {boolean} isArraySuffix - Si le chemin se termine par []\r\n * @param {string} key - La clé du formulaire\r\n */\r\n const recordPathUsage = (currentPath, isFinal, isArraySuffix, key) => {\r\n const usage = pathUsage.get(currentPath) ?? {\r\n isFinal: false,\r\n isIntermediate: false,\r\n hasArraySuffix: false,\r\n key\r\n };\r\n \r\n if (!pathUsage.has(currentPath)) {\r\n pathUsage.set(currentPath, usage);\r\n }\r\n \r\n if (isFinal) {\r\n usage.isFinal = true;\r\n usage.key = key;\r\n if (isArraySuffix) {\r\n usage.hasArraySuffix = true;\r\n }\r\n } else {\r\n usage.isIntermediate = true;\r\n usage.key ??= key;\r\n }\r\n };\r\n \r\n // Première passe : analyser toutes les clés et enregistrer les chemins\r\n for (const [key, value] of formData.entries()) {\r\n if (!key) continue;\r\n \r\n allEntries.push({ key, value });\r\n const parts = parseKey(key);\r\n \r\n // Construire tous les chemins intermédiaires et le chemin final\r\n let currentPath = '';\r\n \r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n const isLast = i === parts.length - 1;\r\n const isArraySuffix = part.type === 'array';\r\n \r\n // Construire le chemin jusqu'à ce niveau\r\n if (part.type === 'key') {\r\n currentPath = currentPath ? `${currentPath}[${part.name}]` : part.name;\r\n } else if (part.type === 'numeric') {\r\n const parentPath = currentPath;\r\n let set = numericIndicesByPath.get(parentPath);\r\n if (!set) {\r\n set = new Set();\r\n numericIndicesByPath.set(parentPath, set);\r\n }\r\n set.add(part.index);\r\n currentPath = `${currentPath}[${part.index}]`;\r\n } else if (part.type === 'array') {\r\n currentPath = `${currentPath}[]`;\r\n }\r\n \r\n // Enregistrer l'utilisation du chemin\r\n recordPathUsage(currentPath, isLast, isArraySuffix && isLast, key);\r\n }\r\n \r\n // Analyser chaque niveau de la hiérarchie pour détecter les conflits (indices numériques vs clés de chaîne)\r\n for (let i = 0; i < parts.length - 1; i++) {\r\n const part = parts[i];\r\n const nextPart = parts[i + 1];\r\n \r\n // Analyser seulement les clés (pas les indices numériques)\r\n if (part.type === 'key') {\r\n const basePath = part.name; // Le nom de la première clé dans le chemin\r\n \r\n const analysis = keyAnalysis.get(basePath) ?? { hasNumeric: false, hasString: false };\r\n if (!keyAnalysis.has(basePath)) {\r\n keyAnalysis.set(basePath, analysis);\r\n }\r\n \r\n if (nextPart) {\r\n if (nextPart.type === 'numeric') {\r\n analysis.hasNumeric = true;\r\n } else if (nextPart.type === 'key' || nextPart.type === 'array') {\r\n analysis.hasString = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n /**\r\n * Détecte et lève une exception pour tous les conflits de chemins\r\n * \r\n * Principe simple : pour chaque chemin final (valeur primitive), vérifier si un chemin\r\n * intermédiaire commence par ce chemin suivi de '['. Si c'est le cas, c'est un conflit.\r\n * \r\n * Cette approche unifiée couvre tous les cas :\r\n * - items[] (final) vs items[0][name] (intermédiaire)\r\n * - array[3] (final) vs array[3][nested] (intermédiaire)\r\n * - data[key] (final) vs data[key][sub] (intermédiaire)\r\n */\r\n const detectPathConflicts = () => {\r\n // 1. Collecter tous les chemins finaux (valeurs primitives)\r\n const finalPaths = new Set();\r\n const finalPathKeys = new Map(); // Pour les messages d'erreur\r\n \r\n for (const [path, usage] of pathUsage.entries()) {\r\n if (usage.isFinal) {\r\n finalPaths.add(path);\r\n finalPathKeys.set(path, usage.key);\r\n }\r\n }\r\n \r\n // 2. Pour chaque chemin intermédiaire, vérifier s'il commence par un chemin final\r\n for (const [path, usage] of pathUsage.entries()) {\r\n if (usage.isIntermediate) {\r\n for (const finalPath of finalPaths) {\r\n // Vérifier si ce chemin intermédiaire commence par un chemin final suivi de '['\r\n // Exemple: finalPath = \"array[3]\", path = \"array[3][nested]\" → conflit\r\n if (path.startsWith(`${finalPath}[`)) {\r\n throw new Error(\r\n `Path conflict: \"${finalPath}\" is used as a final value (in field \"${finalPathKeys.get(finalPath)}\"), ` +\r\n `but \"${path}\" tries to use it as an intermediate path (in field \"${usage.key}\"). ` +\r\n `This creates incompatible data structures. ` +\r\n `You cannot use \"${finalPath}\" as a primitive value and then access it as an object.`\r\n );\r\n }\r\n }\r\n }\r\n }\r\n };\r\n \r\n // Exécuter la détection des conflits\r\n detectPathConflicts();\r\n\r\n /**\r\n * Vérifie si un chemin de base a un conflit (indices numériques ET clés de chaîne)\r\n * @param {string} basePath - Le chemin de base à vérifier\r\n * @returns {boolean}\r\n */\r\n const hasConflict = (basePath) => {\r\n if (!basePath) return false;\r\n const analysis = keyAnalysis.get(basePath);\r\n return analysis?.hasNumeric && analysis?.hasString;\r\n };\r\n\r\n /**\r\n * True if indices are exactly 0, 1, 2, ..., n (dense, sequential from 0).\r\n * @param {number[]} indices - Sorted array of indices\r\n * @returns {boolean}\r\n */\r\n const isDenseSequential = (indices) => {\r\n if (indices.length === 0) return false;\r\n const sorted = [...indices].sort((a, b) => a - b);\r\n for (let j = 0; j < sorted.length; j++) {\r\n if (sorted[j] !== j) return false;\r\n }\r\n return true;\r\n };\r\n\r\n /**\r\n * True if numeric keys under this path should be treated as array indices.\r\n * With numericKeysAlwaysArray: always true when path has numeric children.\r\n * Otherwise: true only when indices are dense 0..n.\r\n * @param {string} parentPath - Path to the container that has numeric children\r\n * @returns {boolean}\r\n */\r\n const useArrayForNumericPath = (parentPath) => {\r\n const set = numericIndicesByPath.get(parentPath);\r\n if (!set || set.size === 0) return true;\r\n if (numericKeysAlwaysArray) return true;\r\n return isDenseSequential([...set]);\r\n };\r\n\r\n /**\r\n * Convertit un tableau en objet en préservant les indices numériques comme propriétés\r\n * @param {Array} arr - Le tableau à convertir\r\n * @returns {Object} L'objet résultant\r\n */\r\n const arrayToObject = (arr) => {\r\n const obj = {};\r\n // Copier les indices numériques\r\n for (let idx = 0; idx < arr.length; idx++) {\r\n obj[idx] = arr[idx];\r\n }\r\n // Copier les propriétés non-numériques\r\n for (const [k, v] of Object.entries(arr)) {\r\n const numKey = Number.parseInt(k, 10);\r\n if (Number.isNaN(numKey) || k !== String(numKey)) {\r\n obj[k] = v;\r\n }\r\n }\r\n return obj;\r\n };\r\n\r\n /**\r\n * Convertit un objet en tableau en préservant les indices numériques\r\n * @param {Object} obj - L'objet à convertir\r\n * @returns {Array} Le tableau résultant\r\n */\r\n const objectToArray = (obj) => {\r\n if (Array.isArray(obj)) return obj;\r\n const arr = [];\r\n if (typeof obj === 'object' && obj !== null) {\r\n for (const [k, v] of Object.entries(obj)) {\r\n const numKey = Number.parseInt(k, 10);\r\n if (!Number.isNaN(numKey)) {\r\n arr[numKey] = v;\r\n }\r\n }\r\n }\r\n return arr;\r\n };\r\n\r\n /**\r\n * Assure qu'un conteneur est un objet, en convertissant si nécessaire\r\n * @param {*} container - Le conteneur à vérifier\r\n * @param {string|null} key - La clé dans le conteneur parent\r\n * @param {Object|null} parent - Le conteneur parent\r\n * @param {boolean} forceObject - Forcer la conversion en objet même s'il n'y a pas de conflit\r\n * @returns {Object} Le conteneur (converti en objet si nécessaire)\r\n */\r\n const ensureObject = (container, key, parent, forceObject = false) => {\r\n if (Array.isArray(container)) {\r\n const obj = arrayToObject(container);\r\n if (parent && key !== null) {\r\n parent[key] = obj;\r\n }\r\n return obj;\r\n }\r\n if (typeof container !== 'object' || container === null) {\r\n const obj = {};\r\n if (parent && key !== null) {\r\n parent[key] = obj;\r\n }\r\n return obj;\r\n }\r\n return container;\r\n };\r\n\r\n /**\r\n * Assure qu'un conteneur est un tableau, en convertissant si nécessaire\r\n * @param {*} container - Le conteneur à vérifier\r\n * @param {string|null} key - La clé dans le conteneur parent\r\n * @param {Object|null} parent - Le conteneur parent\r\n * @returns {Array} Le conteneur (converti en tableau si nécessaire)\r\n */\r\n const ensureArray = (container, key, parent) => {\r\n if (!Array.isArray(container)) {\r\n const arr = objectToArray(container);\r\n if (parent && key !== null) {\r\n parent[key] = arr;\r\n }\r\n return arr;\r\n }\r\n return container;\r\n };\r\n\r\n // ============================================================================\r\n // PHASE 2 : TRAITEMENT DES VALEURS\r\n // ============================================================================\r\n \r\n /**\r\n * Traite une valeur finale (dernière partie du chemin)\r\n * @param {*} container - Le conteneur actuel\r\n * @param {Object} part - La partie à traiter\r\n * @param {*} value - La valeur à assigner\r\n * @param {Object} parent - Le conteneur parent\r\n * @param {string} basePath - Le chemin de base pour la détection de conflit\r\n * @param {string} parentPath - Chemin du conteneur actuel (pour heuristique numeric)\r\n */\r\n const processFinalValue = (container, part, value, parent, basePath, parentPath) => {\r\n if (part.type === 'array') {\r\n // Tableau explicite avec []\r\n container[part.name] ??= [];\r\n if (Array.isArray(container[part.name])) {\r\n container[part.name].push(value);\r\n } else {\r\n container[part.name] = [container[part.name], value];\r\n }\r\n } else if (part.type === 'numeric') {\r\n const { index } = part;\r\n const useArray = useArrayForNumericPath(parentPath);\r\n if (useArray) {\r\n container = ensureArray(container, parent.key, parent.container);\r\n while (container.length <= index) {\r\n container.push(undefined);\r\n }\r\n container[index] = value;\r\n } else {\r\n container = ensureObject(container, parent.key, parent.container, true);\r\n container[index] = value;\r\n }\r\n } else {\r\n // Clé simple finale\r\n const conflict = hasConflict(basePath);\r\n \r\n if (conflict) {\r\n container = ensureObject(container, parent.key, parent.container, true);\r\n if (Array.isArray(container[part.name])) {\r\n container[part.name] = arrayToObject(container[part.name]);\r\n }\r\n if (container[part.name] !== undefined && \r\n (typeof container[part.name] !== 'object' || container[part.name] === null)) {\r\n container[part.name] = value;\r\n } else if (container[part.name] === undefined) {\r\n container[part.name] = value;\r\n } else if (Array.isArray(container[part.name])) {\r\n container[part.name].push(value);\r\n } else {\r\n container[part.name] = [container[part.name], value];\r\n }\r\n } else {\r\n if (container[part.name] === undefined) {\r\n container[part.name] = value;\r\n } else if (Array.isArray(container[part.name])) {\r\n container[part.name].push(value);\r\n } else {\r\n container[part.name] = [container[part.name], value];\r\n }\r\n }\r\n }\r\n };\r\n \r\n /**\r\n * Traite une partie intermédiaire (crée la structure)\r\n * @param {*} container - Le conteneur actuel\r\n * @param {Object} part - La partie à traiter\r\n * @param {Object|null} nextPart - La partie suivante (peut être null)\r\n * @param {Object} parent - Le conteneur parent\r\n * @param {string} basePath - Le chemin de base pour la détection de conflit\r\n * @param {Array} parts - Toutes les parties du chemin (pour construire le chemin complet dans les erreurs)\r\n * @param {number} i - L'index de la partie actuelle (pour construire le chemin complet dans les erreurs)\r\n * @param {string} key - La clé du formulaire (pour les messages d'erreur)\r\n * @returns {*} Le nouveau conteneur après traitement\r\n */\r\n const processIntermediatePart = (container, part, nextPart, parent, basePath, parts, i, key) => {\r\n if (part.type === 'numeric') {\r\n const { index } = part;\r\n const parentPath = buildPathString(parts.slice(0, i));\r\n const useArray = useArrayForNumericPath(parentPath) && !hasConflict(basePath);\r\n \r\n if (!useArray) {\r\n container = ensureObject(container, parent.key, parent.container, true);\r\n container[index] ??= {};\r\n if (typeof container[index] !== 'object' || container[index] === null) {\r\n const pathParts = parts.slice(0, i + 1);\r\n const currentPath = buildPathString(pathParts);\r\n throw new Error(\r\n `Cannot access property on primitive value. ` +\r\n `Key \"${key}\" tries to access \"${currentPath}\" but it is already a ${typeof container[index]} value: ${JSON.stringify(container[index])}. ` +\r\n `This should have been detected during conflict detection phase.`\r\n );\r\n }\r\n } else {\r\n container = ensureArray(container, parent.key, parent.container);\r\n while (container.length <= index) {\r\n container.push(undefined);\r\n }\r\n container[index] ??= {};\r\n if (typeof container[index] !== 'object' || container[index] === null) {\r\n const pathParts = parts.slice(0, i + 1);\r\n const currentPath = buildPathString(pathParts);\r\n throw new Error(\r\n `Cannot access property on primitive value. ` +\r\n `Key \"${key}\" tries to access \"${currentPath}\" but it is already a ${typeof container[index]} value: ${JSON.stringify(container[index])}. ` +\r\n `This should have been detected during conflict detection phase.`\r\n );\r\n }\r\n }\r\n return container[index];\r\n }\r\n \r\n // Clé normale : créer objet ou tableau selon la partie suivante\r\n const nextIsNumeric = nextPart?.type === 'numeric';\r\n const conflict = hasConflict(basePath);\r\n \r\n if (conflict) {\r\n // Conflit : toujours utiliser un objet\r\n container = ensureObject(container, parent.key, parent.container, true);\r\n container[part.name] ??= {};\r\n if (Array.isArray(container[part.name])) {\r\n container[part.name] = arrayToObject(container[part.name]);\r\n } else if (typeof container[part.name] !== 'object' || container[part.name] === null) {\r\n // Cette erreur ne devrait jamais se produire si la détection fonctionne correctement\r\n const pathParts = parts.slice(0, i + 1);\r\n const currentPath = buildPathString(pathParts);\r\n throw new Error(\r\n `Cannot access property on primitive value. ` +\r\n `Key \"${key}\" tries to access \"${currentPath}\" but it is already a ${typeof container[part.name]} value: ${JSON.stringify(container[part.name])}. ` +\r\n `This should have been detected during conflict detection phase.`\r\n );\r\n }\r\n } else if (container[part.name] === undefined) {\r\n // Pas de conflit, créer selon la partie suivante\r\n container[part.name] = nextIsNumeric ? [] : {};\r\n } else if (nextIsNumeric && !Array.isArray(container[part.name])) {\r\n // On a besoin d'un tableau mais c'est un objet\r\n const hasStringKeys = Object.keys(container[part.name]).some(k => {\r\n const numKey = Number.parseInt(k, 10);\r\n return Number.isNaN(numKey) || k !== String(numKey);\r\n });\r\n if (!hasStringKeys) {\r\n container[part.name] = objectToArray(container[part.name]);\r\n }\r\n } else if (!nextIsNumeric && !isPlainObject(container[part.name])) {\r\n // On a besoin d'un objet mais c'est un tableau\r\n if (Array.isArray(container[part.name])) {\r\n container[part.name] = arrayToObject(container[part.name]);\r\n } else {\r\n container[part.name] = {};\r\n }\r\n }\r\n \r\n // S'assurer que container[part.name] est bien un objet après toutes les conversions\r\n if (container[part.name] !== undefined && \r\n (typeof container[part.name] !== 'object' || container[part.name] === null)) {\r\n // Cette erreur ne devrait jamais se produire si la détection fonctionne correctement\r\n const pathParts = parts.slice(0, i + 1);\r\n const currentPath = buildPathString(pathParts);\r\n throw new Error(\r\n `Cannot access property on primitive value. ` +\r\n `Key \"${key}\" tries to access \"${currentPath}\" but it is already a ${typeof container[part.name]} value: ${JSON.stringify(container[part.name])}. ` +\r\n `This should have been detected during conflict detection phase.`\r\n );\r\n }\r\n return container[part.name];\r\n };\r\n \r\n // Traiter toutes les entrées\r\n for (const { value, key } of allEntries) {\r\n if (!key) continue;\r\n\r\n const parts = parseKey(key);\r\n const path = [{ container: jsonData, key: null }];\r\n let container = jsonData;\r\n const basePath = parts[0]?.type === 'key' ? parts[0].name : '';\r\n\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n const isLast = i === parts.length - 1;\r\n const nextPart = i + 1 < parts.length ? parts[i + 1] : null;\r\n const parent = path[path.length - 1];\r\n\r\n if (isLast) {\r\n const parentPath = buildPathString(parts.slice(0, i));\r\n processFinalValue(container, part, value, parent, basePath, parentPath);\r\n } else {\r\n // Partie intermédiaire : créer la structure\r\n const newContainer = processIntermediatePart(container, part, nextPart, parent, basePath, parts, i, key);\r\n path.push({ container, key: part.type === 'numeric' ? part.index : part.name });\r\n container = newContainer;\r\n }\r\n }\r\n }\r\n\r\n return jsonData;\r\n};\r\n\r\n/**\r\n * Parse une clé de formulaire pour extraire les parties (nom, indices, etc.)\r\n * @param {string} key - La clé à parser (ex: \"user[email]\", \"tags[]\", \"items[0][name]\")\r\n * @returns {Array<{name: string, type: string, index?: number}>} Tableau des parties parsées\r\n * @private\r\n */\r\nconst parseKey = (key) => {\r\n const parts = [];\r\n let current = '';\r\n let i = 0;\r\n const len = key.length;\r\n\r\n while (i < len) {\r\n const char = key[i];\r\n \r\n if (char === '[') {\r\n // Sauvegarder la partie précédente si elle existe\r\n if (current) {\r\n parts.push({ name: current, type: 'key' });\r\n current = '';\r\n }\r\n \r\n // Trouver la fin du crochet\r\n i++;\r\n let bracketContent = '';\r\n while (i < len && key[i] !== ']') {\r\n bracketContent += key[i];\r\n i++;\r\n }\r\n \r\n if (bracketContent === '') {\r\n // [] vide = tableau\r\n const lastPart = parts[parts.length - 1];\r\n if (lastPart) {\r\n lastPart.type = 'array';\r\n } else {\r\n // [] au début, créer une partie spéciale\r\n parts.push({ name: '', type: 'array' });\r\n }\r\n } else {\r\n // Contenu dans les crochets\r\n const numIndex = Number.parseInt(bracketContent, 10);\r\n if (!Number.isNaN(numIndex) && bracketContent === String(numIndex)) {\r\n // Indice numérique\r\n parts.push({ name: String(numIndex), type: 'numeric', index: numIndex });\r\n } else {\r\n // Nom de propriété\r\n parts.push({ name: bracketContent, type: 'key' });\r\n }\r\n }\r\n i++; // Passer le ']'\r\n } else {\r\n current += char;\r\n i++;\r\n }\r\n }\r\n \r\n // Ajouter la dernière partie si elle existe\r\n if (current) {\r\n parts.push({ name: current, type: 'key' });\r\n }\r\n \r\n return parts;\r\n};\r\n\r\n/**\r\n * Vérifie si une valeur est un objet simple (pas un tableau, pas null)\r\n * @param {*} obj - La valeur à vérifier\r\n * @returns {boolean}\r\n * @private\r\n */\r\nconst isPlainObject = (obj) => {\r\n return typeof obj === 'object' && obj !== null && !Array.isArray(obj);\r\n};\r\n","import './css/tristate.css';\n\n/**\n * Creates a tri-state checkbox for each checkbox element in the apx.elements array.\n * @param {Array<HTMLElement>} apx - An array of HTMLElements which is returned by APX()\n * @example\n * // Call the tristate function on an array of checkbox elements\n * apx.tristate();\n */\nexport default function (apx) {\n apx.tristate = function (options = {}){\n apx.elements.forEach((element) => {\n if (element.type === 'checkbox') {\n const [originalCheckbox, tristateDom, hiddenInput] = createTriStateCheckbox(element, options);\n originalCheckbox._apxTristate = { dom: tristateDom, hiddenInput };\n if (options.callbacks && options.callbacks.after && typeof options.callbacks.after === 'function') {\n options.callbacks.after(originalCheckbox, tristateDom, hiddenInput);\n }\n }\n });\n return {\n setChildren(childrenApx) {\n return setChildren(apx, childrenApx, options);\n }\n };\n };\n}\n\n/**\n * Link parent tristate(s) to child checkboxes. When exactly one parent: that parent gets\n * indeterminate-dash automatically and shows dash when children are mixed; click parent to apply its state to all children.\n * @param {Object} parentApx - APX instance whose elements are the parent checkbox(es)\n * @param {Object} childrenApx - APX instance whose elements are the child checkbox(es)\n * @param {Object} options - Options used for the parent (and applied to children when initializing them)\n */\nfunction setChildren(parentApx, childrenApx, options) {\n const parents = parentApx.all().filter((el) => el.type === 'checkbox');\n if (parents.length === 0) return;\n if (parents.length > 1) {\n console.warn('APX tristate setChildren: only the first parent is linked to all children.');\n }\n const parentCheckbox = parents[0];\n const parentRef = parentCheckbox._apxTristate;\n if (!parentRef) return;\n\n const parentDom = parentRef.dom;\n const parentHiddenInput = parentRef.hiddenInput;\n\n // Automatically enable indeterminate (dash) on parent when it has children: dash shows only when children are mixed (--mixed)\n parentDom.classList.add('apx-tristate--unchecked-indeterminate', 'apx-tristate--indeterminate-dash');\n\n const childCheckboxes = childrenApx.all().filter((el) => el.type === 'checkbox');\n const childRefs = [];\n\n function syncParentFromChildren() {\n if (childRefs.length === 0) return;\n const states = childRefs.map((ref) => getTristateState(ref.dom));\n const allChecked = states.every((s) => s === 'checked');\n const allCrossed = states.every((s) => s === 'crossed');\n const allUnchecked = states.every((s) => s === 'unchecked');\n const mixed = !allChecked && !allCrossed && !allUnchecked;\n\n parentDom.classList.remove('unchecked', 'checked', 'crossed');\n if (mixed) parentDom.classList.add('apx-tristate--mixed');\n else parentDom.classList.remove('apx-tristate--mixed');\n\n if (allChecked) {\n parentDom.classList.add('checked');\n parentHiddenInput.value = 'true';\n } else if (allCrossed) {\n parentDom.classList.add('crossed');\n parentHiddenInput.value = 'false';\n } else {\n parentDom.classList.add('unchecked');\n parentHiddenInput.removeAttribute('name');\n parentHiddenInput.removeAttribute('value');\n }\n }\n\n function applyParentToChildren() {\n const parentState = getTristateState(parentDom);\n childRefs.forEach((ref) => setTristateState(ref.checkbox, ref.dom, ref.hiddenInput, parentState));\n }\n\n const childOptions = {\n ...options,\n callbacks: {\n after(checkbox, dom, hiddenInput) {\n childRefs.push({ checkbox, dom, hiddenInput });\n },\n change: syncParentFromChildren\n }\n };\n\n childrenApx.tristate(childOptions);\n\n syncParentFromChildren();\n parentDom.addEventListener('click', () => setTimeout(applyParentToChildren, 0));\n}\n\nfunction getTristateState(dom) {\n if (dom.classList.contains('checked')) return 'checked';\n if (dom.classList.contains('crossed')) return 'crossed';\n return 'unchecked';\n}\n\nfunction setTristateState(checkbox, dom, hiddenInput, state) {\n dom.classList.remove('unchecked', 'checked', 'crossed');\n dom.classList.add(state);\n const name = checkbox.dataset.name || checkbox.getAttribute('data-name') || checkbox.name || '';\n if (state === 'checked') {\n hiddenInput.value = 'true';\n if (name) hiddenInput.setAttribute('name', name);\n checkbox.checked = true;\n } else if (state === 'crossed') {\n hiddenInput.value = 'false';\n if (name) hiddenInput.setAttribute('name', name);\n checkbox.checked = false;\n } else {\n hiddenInput.removeAttribute('name');\n hiddenInput.removeAttribute('value');\n checkbox.checked = false;\n }\n}\n\nfunction toggleTriStateCheckboxState(customCheckbox, actualCheckbox, hiddenInput) {\n const wasChecked = customCheckbox.classList.contains('checked');\n const wasCrossed = customCheckbox.classList.contains('crossed');\n customCheckbox.classList.remove('unchecked', 'checked', 'crossed');\n if (wasChecked) {\n customCheckbox.classList.add('crossed');\n actualCheckbox.checked = false;\n hiddenInput.value = 'false';\n } else if (wasCrossed) {\n customCheckbox.classList.add('unchecked');\n hiddenInput.removeAttribute('name'); // Ensure the hidden input doesn't post any value\n hiddenInput.removeAttribute('value'); // Ensure the hidden input doesn't post any value\n } else {\n customCheckbox.classList.add('checked');\n actualCheckbox.checked = true;\n hiddenInput.value = 'true';\n hiddenInput.setAttribute('name', actualCheckbox.dataset.name); // Restore the name for posting\n }\n}\n\nfunction createTriStateCheckbox(checkboxElement, options) {\n \n //get the checkbox margins including browser default\n const checkboxStyle = window.getComputedStyle(checkboxElement);\n // Hide the original checkbox\n checkboxElement.style.display = 'none';\n\n // Create the custom checkbox div and set its initial state\n const tristateDom = document.createElement('div');\n tristateDom.classList.add('apx-tristate');\n if (options.size) {\n if (options.size.width != null) {\n const w = options.size.width;\n if (typeof w !== 'number' && typeof w !== 'string') {\n throw new TypeError('tristate size.width must be a number (px) or a string (CSS length).');\n }\n tristateDom.style.width = typeof w === 'number' ? w + 'px' : String(w);\n }\n if (options.size.height != null) {\n const h = options.size.height;\n if (typeof h !== 'number' && typeof h !== 'string') {\n throw new TypeError('tristate size.height must be a number (px) or a string (CSS length).');\n }\n tristateDom.style.height = typeof h === 'number' ? h + 'px' : String(h);\n }\n }\n if(options.classes) tristateDom.classList.add(...computeClasses(options.classes));\n const colors = resolveColors(options);\n if (colors.tick != null) tristateDom.style.setProperty('--apx-tristate-tick-color', String(colors.tick));\n if (colors.checked != null) tristateDom.style.setProperty('--apx-tristate-checked-color', String(colors.checked));\n if (colors.crossed != null) tristateDom.style.setProperty('--apx-tristate-crossed-color', String(colors.crossed));\n\n tristateDom.style.margin = checkboxStyle.margin;\n\n if (checkboxElement.checked) {\n tristateDom.classList.add('checked');\n } else {\n tristateDom.classList.add('unchecked');\n }\n\n // Create the hidden input field\n const hiddenInput = document.createElement('input');\n hiddenInput.type = 'hidden';\n hiddenInput.name = checkboxElement.name; // Copy the name from the original checkbox\n checkboxElement.dataset.name = checkboxElement.name; // Store the name in a data attribute for later use\n checkboxElement.removeAttribute('name'); // Remove the name from the original checkbox to avoid double posting\n\n if (options.defaultState) setDefaultState(options, tristateDom, hiddenInput);\n else{\n // Set the initial value for the hidden input based on the checkbox's state\n if (checkboxElement.checked) {\n hiddenInput.value = 'true';\n } else {\n hiddenInput.name = ''; // Ensure the hidden input doesn't post any value\n hiddenInput.value = '';\n }\n }\n\n //handle accessibility, set the tabindex to the same as the checkbox\n tristateDom.tabIndex = checkboxElement.tabIndex;\n\n // Insert the hidden input inside the custom checkbox div\n tristateDom.appendChild(hiddenInput);\n\n // Insert it next to the actual checkbox\n checkboxElement.parentNode.insertBefore(tristateDom, checkboxElement.nextSibling);\n\n // Add event listener\n tristateDom.addEventListener('click', function (e) {\n toggleTriStateCheckboxState(tristateDom, checkboxElement, hiddenInput);\n bubbleEventsToOriginalCheckbox(options, checkboxElement, tristateDom, hiddenInput, e);\n });\n tristateDom.addEventListener('keyup', onkeyup.bind(null, checkboxElement));\n\n return [checkboxElement, tristateDom, hiddenInput];\n}\n\nfunction setDefaultState(options, tristateDom, hiddenInput) {\n // Ensure only one state class is set (uncheckedAppearance modifiers must not affect checked/crossed)\n tristateDom.classList.remove('unchecked', 'checked', 'crossed');\n if (options.defaultState === 'checked') {\n tristateDom.classList.add('checked');\n hiddenInput.value = 'true';\n }\n else if (options.defaultState === 'unchecked') {\n tristateDom.classList.add('unchecked');\n hiddenInput.removeAttribute('name'); // Ensure the hidden input doesn't post any value\n hiddenInput.removeAttribute('value'); // Ensure the hidden input doesn't post any value\n }\n else if (options.defaultState === 'crossed') {\n tristateDom.classList.add('crossed');\n hiddenInput.value = 'false';\n }\n}\n\nfunction computeClasses(classes) {\n let computedClasses = [];\n if(typeof classes === 'string') {\n //replace multiple white spaces with a single space\n classes = classes.replace(/\\s\\s+/g, ' ');\n if(classes.indexOf(' ') > -1)\n computedClasses = classes.split(' ');\n else if(classes.indexOf(',') > -1)\n computedClasses = classes.split(',');\n else\n computedClasses = [classes];\n }\n else if(Array.isArray(classes)) {\n computedClasses = classes;\n }\n return computedClasses;\n}\n\nfunction resolveColors(options) {\n const c = options.colors || {};\n return {\n tick: c.tick != null ? c.tick : options.tickColor,\n checked: c.checked != null ? c.checked : options.checkedColor,\n crossed: c.crossed != null ? c.crossed : options.crossedColor\n };\n}\n\nfunction bubbleEventsToOriginalCheckbox(options, checkboxElement, tristateDom, hiddenInput, event) {\n //if options.callbacks.change is set, call it\n if(options.callbacks && options.callbacks.change && typeof options.callbacks.change === 'function') {\n options.callbacks.change(checkboxElement, tristateDom, hiddenInput);\n }\n\n if(!options.bubbleEvents) return;\n\n if(event.type === 'click') {\n checkboxElement.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true }));\n }\n else if(event.type === 'keyup') {\n checkboxElement.dispatchEvent(new KeyboardEvent('keyup', { key: ' ', bubbles: true, cancelable: true }));\n }\n else if(event.type === 'change') {\n checkboxElement.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));\n }\n}\n\nfunction onkeyup(checkboxElement, event) {\n if (event.keyCode === 32) {\n bubbleEventsToOriginalCheckbox(checkboxElement, event);\n event.preventDefault();\n event.target.click();\n }\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"main\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","__webpack_require__.nc = undefined;","import augmentWithListen from './modules/listen/listen.mjs';\nimport augmentWithTristate from './modules/tristate/tristate.mjs';\nimport augmentWithScrollableTable from './modules/scrollableTable/scrollableTable.mjs';\nimport dialog from './modules/dialog/dialog.mjs';\nimport toast from './modules/toast/toast.mjs';\nimport { loadCss } from './modules/common.mjs';\nimport { augmentWithPack, tools } from './modules/tools/exports.mjs';\n\n/**\n * Creates an APX object that wraps one or more HTML elements.\n * @param {string|HTMLElement|NodeList|HTMLCollection|Array<HTMLElement>|jQuery|Function} input - The input to create the APX object from.\n * @returns {Object} The APX object.\n * @throws {Error} If the input type is invalid.\n * @example\n * // XPath\n * const apx1 = APX('//div[@class=\"example\"]');\n *\n * // CSS selector\n * const apx2 = APX('.example');\n *\n * // Single element\n * const element = document.querySelector('.example');\n * const apx3 = APX(element);\n *\n * // NodeList or HTMLCollection\n * const nodeList = document.querySelectorAll('.example');\n * const apx4 = APX(nodeList);\n *\n * // Array of elements\n * const elements = [document.querySelector('.example1'), document.querySelector('.example2')];\n * const apx5 = APX(elements);\n *\n * // jQuery object\n * const $example = $('.example');\n * const apx6 = APX($example);\n *\n * // Function returning an APX object\n * const apx7 = APX(() => APX('.example'));\n */\nconst APX = function (input, context = document) {\n let elements;\n\n // Validate context\n if (typeof context === 'string') {\n context = document.querySelector(context);\n }\n else if (APX.isAPXObject(context)) {\n context = context.first();\n } else if (!(context instanceof HTMLElement || context instanceof Document)) {\n throw new Error('Invalid context for APX');\n }\n\n if (typeof input === 'string' && input.startsWith('//')) {\n // XPath with context\n elements = document.evaluate(input, context, null, XPathResult.ANY_TYPE, null);\n let nodes = [];\n let node = elements.iterateNext();\n while (node) {\n nodes.push(node);\n node = elements.iterateNext();\n }\n elements = nodes;\n } else if (typeof input === 'string') {\n // CSS selector with context\n elements = context.querySelectorAll(input);\n } else if (input instanceof HTMLElement) {\n // Single element within context\n elements = context.contains(input) ? [input] : [];\n } else if (input instanceof NodeList || input instanceof HTMLCollection) {\n // NodeList or HTMLCollection within context\n elements = Array.from(input).filter(el => context.contains(el));\n } else if (Array.isArray(input) && input.every(el => el instanceof HTMLElement)) {\n // Array of elements within context\n elements = input.filter(el => context.contains(el));\n } else if (typeof jQuery != 'undefined' && input instanceof jQuery) {\n // jQuery object within context\n elements = Array.from(input.get()).filter(el => context.contains(el));\n } else if (typeof input === 'function') {\n // Function returning an APX object with context\n elements = APX(input(), context);\n } else {\n throw new Error('Invalid input type for APX');\n }\n\n var apx = {\n elements: elements,\n _isAPXObject: true\n };\n apx.length = elements.length;\n apx.each = function (callback) {\n if (this.elements instanceof Array) this.elements.forEach(callback);\n if (this.elements instanceof NodeList) Array.from(this.elements).forEach(callback);\n return this;\n };\n apx.get = function (index) {\n return this.elements[index];\n };\n apx.all = function () {\n if (this.elements instanceof Array) return this.elements;\n if (this.elements instanceof NodeList) return Array.from(this.elements);\n return this;\n };\n apx.first = function () {\n return this.get(0);\n };\n augmentWithListen(apx);\n augmentWithTristate(apx);\n augmentWithScrollableTable(apx);\n augmentWithPack(apx);\n return apx;\n};\n\nAPX.loadCss = loadCss;\nAPX.dialog = dialog;\nAPX.toast = toast;\nAPX.tools = tools;\nAPX.isAPXObject = function (obj) {\n return obj && obj._isAPXObject === true;\n}\nAPX.is_numeric = (n) => {\n return !isNaN(n - parseFloat(n));\n}\n\nexport default APX;"],"names":["loadCss","url","fetch","then","response","text","css","styleSheet","document","createElement","type","textContent","head","appendChild","error","console","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_toPrimitive","String","input","hint","prim","toPrimitive","res","Number","dialogTemplate","createDialog","options","dialogDefaults","title","content","contentURI","buttons","size","showLoadingIndicator","contentMethod","contentData","contentHeaders","_dialogDefaults$optio","wrapper","innerHTML","trim","dialogElement","firstChild","lifecycleResolvers","lifecycleEvents","event","triggerEvent","warn","concat","dialog","element","isClosed","lifecycle","disableButton","button","querySelector","disabled","classList","add","enableButton","remove","open","_open","_callee","_callee$","_context","opening","body","style","display","fetchAndInsertContent","opened","t0","close","_close","_callee2","_callee2$","_context2","closing","closeDialogAndCleanup","closed","contains","removeChild","setDialogSize","dialogContent","sizes","small","width","height","medium","large","selectedSize","minWidth","minHeight","addButtons","buttonContainer","_ref","label","_ref$order","order","_ref$align","align","_ref$closeOnClick","closeOnClick","setAttribute","buttonContext","disable","enable","firstClickResolved","firstClickPromise","onclick","handlers","clickPromise","callback","handler","justifyContent","_ref2","_callee3","originalCursor","dynamicContent","contentHtml","_callee3$","_context3","cursor","contentLoading","fetchContent","contentLoaded","t1","_ref3","_callee4","uri","headers","hasContentType","init","isFormData","isURLSearchParams","isBlob","isString","isPlainObject","_callee4$","_context4","toUpperCase","some","k","toLowerCase","FormData","URLSearchParams","Blob","JSON","stringify","ok","statusText","_x","counter","doCallbacks","timeouts","apx","elements","listen","eventTypes","secondArgument","thirdArgument","selector","uniqueId","generateUniqueId","timeoutDuration","timeout","Array","isArray","eventType","addEventListener","executeCallbacks","_do","doCallback","trigger","Event","bubbles","cancelable","dispatchEvent","callbackDetails","target","matches","matchedElement","closest","clearTimeout","handleCallbackExecution","reduce","prevPromise","result","bind","setTimeout","randomPart","Math","random","toString","substr","Date","now","nodeType","parentNode","DATA_KEY","CLASS_TABLE","DEFAULT_MAX_HEIGHT","THROTTLE_MS","dynamicTables","Set","scrollSourceToTables","Map","resizeSourceToTables","resizeWindowAttached","resizeObserver","throttleLast","throttleRaf","getRowColumnCount","tr","cols","querySelectorAll","cell","parseInt","getAttribute","getColumnCountFromSection","section","rows","maxCols","sum","getTableColumnCount","table","thead","tbody","tfoot","countThead","countTbody","countTfoot","max","measureColumnWidths","numCols","sections","Boolean","bestRow","_iterator","_createForOfIteratorHelper","_step","_iterator3","_step3","cells","allSingle","from","every","widths","fill","col","_iterator2","_step2","span","min","w","getBoundingClientRect","perCol","fallback","_toConsumableArray","getRowCount","computeCellPlacements","numRows","occupied","placements","_iterator4","_step4","colspan","rowspan","free","rr","cc","_occupied$rr","row","applyPlacements","gridRow","gridColumn","clearPlacements","normalizeHeight","resolveBodyHeight","dyn","bodyHeightDynamic","get","bodySize","useFixedHeight","useAs","raw","maxHeight","updateTableBodyHeight","_resolveBodyHeight","setProperty","toggle","flushDynamicHeightUpdate","toRemove","isConnected","removeTableFromDynamicSources","ref","runDynamicHeightUpdate","requestAnimationFrame","resolveUpdateOn","_options$bodyHeightDy","updateOn","scrollOn","resizeOn","scrollTargets","x","documentElement","scroll","window","resizeWindow","resizeElements","resize","set","el","removeEventListener","onScrollThrottled","unobserve","onResizeThrottled","registerDynamicTable","_resolveUpdateOn","passive","ResizeObserver","observe","buildTemplateColumns","columnWidths","columnOverrides","parts","ov","round","join","buildTemplateRows","rowHeights","rowOverrides","_rowHeights$i","measureRowHeights","map","applyScrollableTable","_ref$columnWidths","_ref$rowHeights","alreadyScrollable","customTemplate","gridTemplateColumns","theadRows","tbodyRows","tfootRows","_resolveBodyHeight2","offsetHeight","gutterSuffix","template","removeProperty","heights","customRows","gridTemplateRows","varName","custom","overrides","augmentWithScrollableTable","scrollableTable","optionsOrAction","isRefresh","tagName","currentOptions","log","isBrowser","_containerCache","GC_DELAY_MS","_gcTimeoutId","_toastWrapper","getToastWrapper","createEl","position","top","left","pointerEvents","zIndex","DEFAULT_CONFIG","maxToasts","defaultDurationMs","ariaLive","gap","dedupe","containerClass","offset","progress","tag","classNames","split","getProgressPauseResumeIconSVG","paused","createProgressBlock","toastEl","contentEl","closeBtn","progressOpt","pos","showPauseButton","pauseButton","track","bar","pauseBtn","insertBefore","applyProgressPosition","progressWrap","nextElementSibling","resolveProgress","option","configDefault","fromConfig","normalizePlacement","placement","synonyms","determineFlow","includes","startsWith","num","parseFloat","cleanupEmptyContainers","containers","container","children","positionKey","scheduleGarbageCollection","findScrollableParents","scrollables","current","parentElement","getComputedStyle","overflow","overflowY","overflowX","hashElement","rect","str","hash","char","charCodeAt","abs","serializePosition","_position$element$dat","elementId","id","dataset","apxToastAnchorId","normalized","useNativeCSS","ToastManager","config","_classCallCheck","idToRef","_createClass","configure","applyContainerConfig","setAriaLive","mode","getOpenToasts","show","opts","_this","normalizeOptions","has","update","flow","finalFlow","ensureContainer","toastId","className","message","dismissible","progressBarEl","progressPauseBtn","durationMs","created","positionUpdateFn","positionCleanup","originalElementStyle","targetEl","nativeContainer","flexDirection","right","substring","bottom","getContainerForPosition","updateContainerPosition","styles","calculatePosition","assign","rafId","lastUpdate","throttleMs","throttledUpdate","cancelAnimationFrame","scrollableParents","parent","observer","MutationObserver","childList","subtree","disconnect","remaining","timerId","startTs","userPaused","progressRafId","click","startTimer","tick","elapsed","remainingMs","pct","pauseTimer","attachProgressPauseHandler","btn","ev","stopPropagation","reason","cleanup","partial","merged","_toastEl$classList","_toastEl$classList2","whenClosed","closedPromise","on","off","notify","_","onClose","idx","indexOf","splice","removeEl","onClick","oldest","success","warning","danger","closeAll","all","managed","posClass","hasAttribute","_this2","_this$container$class","posClasses","cls","containerEl","parseOffset","val","offsetX","offsetY","parseGap","gapPx","innerHeight","innerWidth","createToastManager","_defaultManager","_getDefault","toast","nameOrConfig","maybeConfig","manager","use","Manager","augmentWithPack","packFormToJSON","tools","pack","firstElement","first","form","HTMLFormElement","numericKeysAlwaysArray","formData","jsonData","buildPathString","path","part","index","pathUsage","keyAnalysis","numericIndicesByPath","allEntries","recordPathUsage","currentPath","isFinal","isArraySuffix","_pathUsage$get","usage","isIntermediate","hasArraySuffix","_usage$key","entries","_step$value","_slicedToArray","parseKey","isLast","parentPath","nextPart","_keyAnalysis$get","basePath","analysis","hasNumeric","hasString","detectPathConflicts","finalPaths","finalPathKeys","_step2$value","_step3$value","finalPath","hasConflict","isDenseSequential","indices","sorted","sort","b","j","useArrayForNumericPath","arrayToObject","arr","_i","_Object$entries","_Object$entries$_i","numKey","objectToArray","_i2","_Object$entries2","_Object$entries2$_i","ensureObject","forceObject","ensureArray","processFinalValue","_container","_part$name","_container$_part$name","useArray","conflict","processIntermediatePart","_container2","_container2$index","pathParts","_container3","_container3$index","nextIsNumeric","_container4","_part$name2","_container4$_part$nam","hasStringKeys","_i3","_allEntries","_parts$","_allEntries$_i","newContainer","len","bracketContent","lastPart","numIndex","tristate","_createTriStateCheckb","createTriStateCheckbox","_createTriStateCheckb2","originalCheckbox","tristateDom","hiddenInput","_apxTristate","dom","callbacks","after","setChildren","childrenApx","parentApx","parents","parentCheckbox","parentRef","parentDom","parentHiddenInput","childCheckboxes","childRefs","syncParentFromChildren","states","getTristateState","allChecked","allCrossed","allUnchecked","mixed","removeAttribute","applyParentToChildren","parentState","setTristateState","checkbox","childOptions","change","state","checked","toggleTriStateCheckboxState","customCheckbox","actualCheckbox","wasChecked","wasCrossed","checkboxElement","_tristateDom$classLis","checkboxStyle","classes","computeClasses","colors","resolveColors","crossed","margin","defaultState","setDefaultState","tabIndex","nextSibling","bubbleEventsToOriginalCheckbox","onkeyup","computedClasses","replace","tickColor","checkedColor","crossedColor","bubbleEvents","MouseEvent","KeyboardEvent","keyCode","preventDefault","augmentWithListen","augmentWithTristate","APX","context","isAPXObject","HTMLElement","Document","evaluate","XPathResult","ANY_TYPE","nodes","node","iterateNext","NodeList","HTMLCollection","jQuery","_isAPXObject","each","is_numeric"],"sourceRoot":""}
|