From 85e228846676e570c6369a36fd6a26bdb89def3e Mon Sep 17 00:00:00 2001 From: Maggie Epps Date: Tue, 13 Feb 2024 09:50:27 -0500 Subject: [PATCH] Other changes related to scenario-widget name change --- cdn/18/config.json | 30 +- cdn/18/resources/config/config.json | 30 +- .../resources/images/icon-resources-list.json | 4 +- .../09ba6034189150cd7e8b31ab5a44acb7.js | 26 - .../2235270aa93b24fde5d29d3b1ceaa0d8.js | 18212 ---------------- .../26c1c428ab3c9f79e82c16889ef5c112.js | 406 - .../86082a4504a32eb11e96a998cb98bc52.js | 25 - cdn/18/widgets/oem-dashboard/config.json | 6 - .../oem-dashboard/dist/runtime/widget.js | 4287 ---- .../oem-dashboard/dist/setting/setting.js | 160 - cdn/18/widgets/oem-dashboard/manifest.json | 22 - cdn/18/widgets/widgets-info.json | 32 +- 12 files changed, 36 insertions(+), 23204 deletions(-) delete mode 100644 cdn/18/widgets/chunks/09ba6034189150cd7e8b31ab5a44acb7.js delete mode 100644 cdn/18/widgets/chunks/2235270aa93b24fde5d29d3b1ceaa0d8.js delete mode 100644 cdn/18/widgets/chunks/26c1c428ab3c9f79e82c16889ef5c112.js delete mode 100644 cdn/18/widgets/chunks/86082a4504a32eb11e96a998cb98bc52.js delete mode 100644 cdn/18/widgets/oem-dashboard/config.json delete mode 100644 cdn/18/widgets/oem-dashboard/dist/runtime/widget.js delete mode 100644 cdn/18/widgets/oem-dashboard/dist/setting/setting.js delete mode 100644 cdn/18/widgets/oem-dashboard/manifest.json diff --git a/cdn/18/config.json b/cdn/18/config.json index 016f721..943a30d 100644 --- a/cdn/18/config.json +++ b/cdn/18/config.json @@ -616,21 +616,8 @@ }, "layout_19": { "label": "Open widget layout", - "content": { - "0": { - "type": "WIDGET", - "widgetId": "widget_48", - "bbox": { - "left": 0, - "top": 0, - "bottom": 0, - "right": 0 - } - } - }, - "order": [ - "0" - ] + "content": {}, + "order": [] } }, "exbVersion": "1.12.0", @@ -642,16 +629,15 @@ "template": "blankfullscreen", "widgets": { "widget_2": { - "uri": "widgets/oem-dashboard/", + "uri": "widgets/scenario-dashboard/", "version": "1.11.0", - "label": "OEM Dashboard", + "label": "Scenario Dashboard", "config": { + "appId": "eS2vUdIZbHaVOrDz", "layerTableUrl": "https://services1.arcgis.com/UWYHeuuJISiGmgXx/arcgis/rest/services/OEM_Database_v2/FeatureServer/0", "templateTableUrl": "https://services1.arcgis.com/UWYHeuuJISiGmgXx/arcgis/rest/services/OEM_Database_v2/FeatureServer/1", "categoryTableUrl": "https://services1.arcgis.com/UWYHeuuJISiGmgXx/arcgis/rest/services/OEM_Database_v2/FeatureServer/2", - "templateLayerRelationshipsUrl": "https://services1.arcgis.com/UWYHeuuJISiGmgXx/arcgis/rest/services/OEM_Database_v2/FeatureServer/3", - "clientId": "3pRp9BFJJxX3XDIq", - "clientSecret": "3pRp9BFJJxX3XDIq" + "templateLayerRelationshipsUrl": "https://services1.arcgis.com/UWYHeuuJISiGmgXx/arcgis/rest/services/OEM_Database_v2/FeatureServer/3" }, "id": "widget_2", "useMapWidgetIds": [ @@ -2783,7 +2769,7 @@ "page_2": [] } ], - "timestamp": 1700084206344, + "timestamp": 1701356873445, "customTheme": { "colors": { "primary": "#442b57", @@ -2870,4 +2856,4 @@ ] } } -} +} \ No newline at end of file diff --git a/cdn/18/resources/config/config.json b/cdn/18/resources/config/config.json index a8a44a1..c8d2e67 100644 --- a/cdn/18/resources/config/config.json +++ b/cdn/18/resources/config/config.json @@ -616,21 +616,8 @@ }, "layout_19": { "label": "Open widget layout", - "content": { - "0": { - "type": "WIDGET", - "widgetId": "widget_48", - "bbox": { - "left": 0, - "top": 0, - "bottom": 0, - "right": 0 - } - } - }, - "order": [ - "0" - ] + "content": {}, + "order": [] } }, "exbVersion": "1.12.0", @@ -642,16 +629,15 @@ "template": "blankfullscreen", "widgets": { "widget_2": { - "uri": "widgets/oem-dashboard/", + "uri": "widgets/scenario-dashboard/", "version": "1.11.0", - "label": "OEM Dashboard", + "label": "Scenario Dashboard", "config": { + "appId": "eS2vUdIZbHaVOrDz", "layerTableUrl": "https://services1.arcgis.com/UWYHeuuJISiGmgXx/arcgis/rest/services/OEM_Database_v2/FeatureServer/0", "templateTableUrl": "https://services1.arcgis.com/UWYHeuuJISiGmgXx/arcgis/rest/services/OEM_Database_v2/FeatureServer/1", "categoryTableUrl": "https://services1.arcgis.com/UWYHeuuJISiGmgXx/arcgis/rest/services/OEM_Database_v2/FeatureServer/2", - "templateLayerRelationshipsUrl": "https://services1.arcgis.com/UWYHeuuJISiGmgXx/arcgis/rest/services/OEM_Database_v2/FeatureServer/3", - "clientId": "3pRp9BFJJxX3XDIq", - "clientSecret": "3pRp9BFJJxX3XDIq" + "templateLayerRelationshipsUrl": "https://services1.arcgis.com/UWYHeuuJISiGmgXx/arcgis/rest/services/OEM_Database_v2/FeatureServer/3" }, "id": "widget_2", "useMapWidgetIds": [ @@ -2784,7 +2770,7 @@ "page_2": [] } ], - "timestamp": 1700084206344, + "timestamp": 1701356873445, "customTheme": { "colors": { "primary": "#442b57", @@ -2861,4 +2847,4 @@ "orgSetting": {} } } -} \ No newline at end of file +} diff --git a/cdn/18/resources/images/icon-resources-list.json b/cdn/18/resources/images/icon-resources-list.json index ecf8773..ad87e52 100644 --- a/cdn/18/resources/images/icon-resources-list.json +++ b/cdn/18/resources/images/icon-resources-list.json @@ -1,12 +1,12 @@ { "Sidebar": { - "svg": "https://localhost:3001/experience/../widgets/layout/sidebar/icon.svg?token=n9ly7h_AXy3kCdeR2zlL4fmIqzMf-YCpq1zbmCDNpxufZg4oL2-NVgKqenricRWykdc8vPfSV0e69CYMWTW_9OiOdkfSctfpyo4cQdmA7-SImDvB53zLak9gzVoHVqlQv243O2vFzMQh5EKQd19rv2G610ldtXXplPkalYgQ0L4mlobxAiaHHN34sTFfr-DVHWQR-yoLiHGQmBYw1M1fbQwqjekqIdQfAgU3ytsgJcuNH9dI0WVkINR_-8JzCNB3?token=n9ly7h_AXy3kCdeR2zlL4fmIqzMf-YCpq1zbmCDNpxufZg4oL2-NVgKqenricRWykdc8vPfSV0e69CYMWTW_9OiOdkfSctfpyo4cQdmA7-SImDvB53zLak9gzVoHVqlQv243O2vFzMQh5EKQd19rv2G610ldtXXplPkalYgQ0L4mlobxAiaHHN34sTFfr-DVHWQR-yoLiHGQmBYw1M1fbQwqjekqIdQfAgU3ytsgJcuNH9dI0WVkINR_-8JzCNB3?token=RWGhC1pRn4Q5uas8cKhd6BMVSGCTrn5DhzBTLpUabzF60jlMKWDXi6OJsBbm9IpsN29bM754vlmaDxFHQQFCYsSODOJO2H04wsFwig1bXEOqyW_VGPaE9xRIC2_jYqECHDnxh-YEWCbRXAOKE3GFr64k--wGhjrjOFlJ6REf6diI_nBnRmzKyWlVMzSaXlD2STL7_KCJWRdot8u0kN2Eu4VgwZgJvO-6MmhV9Rs-2daRt7at2B9SMHWIkNsw_6G6", + "svg": "https://localhost:3001/experience/../widgets/layout/sidebar/icon.svg?token=n9ly7h_AXy3kCdeR2zlL4fmIqzMf-YCpq1zbmCDNpxufZg4oL2-NVgKqenricRWykdc8vPfSV0e69CYMWTW_9OiOdkfSctfpyo4cQdmA7-SImDvB53zLak9gzVoHVqlQv243O2vFzMQh5EKQd19rv2G610ldtXXplPkalYgQ0L4mlobxAiaHHN34sTFfr-DVHWQR-yoLiHGQmBYw1M1fbQwqjekqIdQfAgU3ytsgJcuNH9dI0WVkINR_-8JzCNB3?token=n9ly7h_AXy3kCdeR2zlL4fmIqzMf-YCpq1zbmCDNpxufZg4oL2-NVgKqenricRWykdc8vPfSV0e69CYMWTW_9OiOdkfSctfpyo4cQdmA7-SImDvB53zLak9gzVoHVqlQv243O2vFzMQh5EKQd19rv2G610ldtXXplPkalYgQ0L4mlobxAiaHHN34sTFfr-DVHWQR-yoLiHGQmBYw1M1fbQwqjekqIdQfAgU3ytsgJcuNH9dI0WVkINR_-8JzCNB3?token=RWGhC1pRn4Q5uas8cKhd6BMVSGCTrn5DhzBTLpUabzF60jlMKWDXi6OJsBbm9IpsN29bM754vlmaDxFHQQFCYsSODOJO2H04wsFwig1bXEOqyW_VGPaE9xRIC2_jYqECHDnxh-YEWCbRXAOKE3GFr64k--wGhjrjOFlJ6REf6diI_nBnRmzKyWlVMzSaXlD2STL7_KCJWRdot8u0kN2Eu4VgwZgJvO-6MmhV9Rs-2daRt7at2B9SMHWIkNsw_6G6?token=QwUcaNW6F74u-FbXqFRzkHrSc5sou_slm6Kw01Rx3oBEq0yjwCJ9IazQ16ABiiI79fxcr8e0ZMTKyC0MqfaySk6WHsh1oysU-NuWDk_h6afDxIAHjnJ0qNZjUJIqv6ixCeAzeTiXqu0cG5AOAVzVdA0FIcjb4kU-4P_3YivfNirFNpmrTYCQyw-gDXD7Tpm2kGcOjDUn-aJ2LKnjMDYapnVUxglwOvk2u2R8w_Ayw1Aotosphqu7vI9WuF_Ee9CpfVlCl8VuRz_9un5NAgvW5A..", "properties": { "filename": "Sidebar" } }, "Text": { - "svg": "https://localhost:3001/experience/../widgets/common/text/icon.svg?token=n9ly7h_AXy3kCdeR2zlL4fmIqzMf-YCpq1zbmCDNpxufZg4oL2-NVgKqenricRWykdc8vPfSV0e69CYMWTW_9OiOdkfSctfpyo4cQdmA7-SImDvB53zLak9gzVoHVqlQv243O2vFzMQh5EKQd19rv2G610ldtXXplPkalYgQ0L4mlobxAiaHHN34sTFfr-DVHWQR-yoLiHGQmBYw1M1fbQwqjekqIdQfAgU3ytsgJcuNH9dI0WVkINR_-8JzCNB3?token=n9ly7h_AXy3kCdeR2zlL4fmIqzMf-YCpq1zbmCDNpxufZg4oL2-NVgKqenricRWykdc8vPfSV0e69CYMWTW_9OiOdkfSctfpyo4cQdmA7-SImDvB53zLak9gzVoHVqlQv243O2vFzMQh5EKQd19rv2G610ldtXXplPkalYgQ0L4mlobxAiaHHN34sTFfr-DVHWQR-yoLiHGQmBYw1M1fbQwqjekqIdQfAgU3ytsgJcuNH9dI0WVkINR_-8JzCNB3?token=RWGhC1pRn4Q5uas8cKhd6BMVSGCTrn5DhzBTLpUabzF60jlMKWDXi6OJsBbm9IpsN29bM754vlmaDxFHQQFCYsSODOJO2H04wsFwig1bXEOqyW_VGPaE9xRIC2_jYqECHDnxh-YEWCbRXAOKE3GFr64k--wGhjrjOFlJ6REf6diI_nBnRmzKyWlVMzSaXlD2STL7_KCJWRdot8u0kN2Eu4VgwZgJvO-6MmhV9Rs-2daRt7at2B9SMHWIkNsw_6G6", + "svg": "https://localhost:3001/experience/../widgets/common/text/icon.svg?token=n9ly7h_AXy3kCdeR2zlL4fmIqzMf-YCpq1zbmCDNpxufZg4oL2-NVgKqenricRWykdc8vPfSV0e69CYMWTW_9OiOdkfSctfpyo4cQdmA7-SImDvB53zLak9gzVoHVqlQv243O2vFzMQh5EKQd19rv2G610ldtXXplPkalYgQ0L4mlobxAiaHHN34sTFfr-DVHWQR-yoLiHGQmBYw1M1fbQwqjekqIdQfAgU3ytsgJcuNH9dI0WVkINR_-8JzCNB3?token=n9ly7h_AXy3kCdeR2zlL4fmIqzMf-YCpq1zbmCDNpxufZg4oL2-NVgKqenricRWykdc8vPfSV0e69CYMWTW_9OiOdkfSctfpyo4cQdmA7-SImDvB53zLak9gzVoHVqlQv243O2vFzMQh5EKQd19rv2G610ldtXXplPkalYgQ0L4mlobxAiaHHN34sTFfr-DVHWQR-yoLiHGQmBYw1M1fbQwqjekqIdQfAgU3ytsgJcuNH9dI0WVkINR_-8JzCNB3?token=RWGhC1pRn4Q5uas8cKhd6BMVSGCTrn5DhzBTLpUabzF60jlMKWDXi6OJsBbm9IpsN29bM754vlmaDxFHQQFCYsSODOJO2H04wsFwig1bXEOqyW_VGPaE9xRIC2_jYqECHDnxh-YEWCbRXAOKE3GFr64k--wGhjrjOFlJ6REf6diI_nBnRmzKyWlVMzSaXlD2STL7_KCJWRdot8u0kN2Eu4VgwZgJvO-6MmhV9Rs-2daRt7at2B9SMHWIkNsw_6G6?token=QwUcaNW6F74u-FbXqFRzkHrSc5sou_slm6Kw01Rx3oBEq0yjwCJ9IazQ16ABiiI79fxcr8e0ZMTKyC0MqfaySk6WHsh1oysU-NuWDk_h6afDxIAHjnJ0qNZjUJIqv6ixCeAzeTiXqu0cG5AOAVzVdA0FIcjb4kU-4P_3YivfNirFNpmrTYCQyw-gDXD7Tpm2kGcOjDUn-aJ2LKnjMDYapnVUxglwOvk2u2R8w_Ayw1Aotosphqu7vI9WuF_Ee9CpfVlCl8VuRz_9un5NAgvW5A..", "properties": { "filename": "Text" } diff --git a/cdn/18/widgets/chunks/09ba6034189150cd7e8b31ab5a44acb7.js b/cdn/18/widgets/chunks/09ba6034189150cd7e8b31ab5a44acb7.js deleted file mode 100644 index 72ce70f..0000000 --- a/cdn/18/widgets/chunks/09ba6034189150cd7e8b31ab5a44acb7.js +++ /dev/null @@ -1,26 +0,0 @@ -(self["webpackChunkexb_client"] = self["webpackChunkexb_client"] || []).push([["node_modules_stencil_core_internal_client_lazy_recursive_entry_js_include_entry_js_exclude_sy-4b148b"],{ - -/***/ "./node_modules/@stencil/core/internal/client lazy recursive ^\\.\\/.*\\.entry\\.js.*$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$": -/*!*****************************************************************************************************************************************************!*\ - !*** ./node_modules/@stencil/core/internal/client/ lazy ^\.\/.*\.entry\.js.*$ include: \.entry\.js$ exclude: \.system\.entry\.js$ namespace object ***! - \*****************************************************************************************************************************************************/ -/***/ ((module) => { - -function webpackEmptyAsyncContext(req) { - // Here Promise.resolve().then() is used instead of new Promise() to prevent - // uncaught exception popping up in devtools - return Promise.resolve().then(() => { - var e = new Error("Cannot find module '" + req + "'"); - e.code = 'MODULE_NOT_FOUND'; - throw e; - }); -} -webpackEmptyAsyncContext.keys = () => ([]); -webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext; -webpackEmptyAsyncContext.id = "./node_modules/@stencil/core/internal/client lazy recursive ^\\.\\/.*\\.entry\\.js.*$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$"; -module.exports = webpackEmptyAsyncContext; - -/***/ }) - -}]); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy9jaHVua3MvMDliYTYwMzQxODkxNTBjZDdlOGIzMWFiNWE0NGFjYjcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZXhiLWNsaWVudC8uL25vZGVfbW9kdWxlcy9Ac3RlbmNpbC9jb3JlL2ludGVybmFsL2NsaWVudC8gbGF6eSBeXFwuXFwvLipcXC5lbnRyeVxcLmpzLiokIGluY2x1ZGU6IFxcLmVudHJ5XFwuanMkIGV4Y2x1ZGU6IFxcLnN5c3RlbVxcLmVudHJ5XFwuanMkIG5hbWVzcGFjZSBvYmplY3QiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gd2VicGFja0VtcHR5QXN5bmNDb250ZXh0KHJlcSkge1xuXHQvLyBIZXJlIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKSBpcyB1c2VkIGluc3RlYWQgb2YgbmV3IFByb21pc2UoKSB0byBwcmV2ZW50XG5cdC8vIHVuY2F1Z2h0IGV4Y2VwdGlvbiBwb3BwaW5nIHVwIGluIGRldnRvb2xzXG5cdHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcblx0XHR2YXIgZSA9IG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIgKyByZXEgKyBcIidcIik7XG5cdFx0ZS5jb2RlID0gJ01PRFVMRV9OT1RfRk9VTkQnO1xuXHRcdHRocm93IGU7XG5cdH0pO1xufVxud2VicGFja0VtcHR5QXN5bmNDb250ZXh0LmtleXMgPSAoKSA9PiAoW10pO1xud2VicGFja0VtcHR5QXN5bmNDb250ZXh0LnJlc29sdmUgPSB3ZWJwYWNrRW1wdHlBc3luY0NvbnRleHQ7XG53ZWJwYWNrRW1wdHlBc3luY0NvbnRleHQuaWQgPSBcIi4vbm9kZV9tb2R1bGVzL0BzdGVuY2lsL2NvcmUvaW50ZXJuYWwvY2xpZW50IGxhenkgcmVjdXJzaXZlIF5cXFxcLlxcXFwvLipcXFxcLmVudHJ5XFxcXC5qcy4qJCBpbmNsdWRlOiBcXFxcLmVudHJ5XFxcXC5qcyQgZXhjbHVkZTogXFxcXC5zeXN0ZW1cXFxcLmVudHJ5XFxcXC5qcyRcIjtcbm1vZHVsZS5leHBvcnRzID0gd2VicGFja0VtcHR5QXN5bmNDb250ZXh0OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/cdn/18/widgets/chunks/2235270aa93b24fde5d29d3b1ceaa0d8.js b/cdn/18/widgets/chunks/2235270aa93b24fde5d29d3b1ceaa0d8.js deleted file mode 100644 index ed8db97..0000000 --- a/cdn/18/widgets/chunks/2235270aa93b24fde5d29d3b1ceaa0d8.js +++ /dev/null @@ -1,18212 +0,0 @@ -"use strict"; -(self["webpackChunkexb_client"] = self["webpackChunkexb_client"] || []).push([["vendors-node_modules_arcgis_core_identity_IdentityManager_js"],{ - -/***/ "./node_modules/@stencil/core/internal/client/index.js": -/*!*************************************************************!*\ - !*** ./node_modules/@stencil/core/internal/client/index.js ***! - \*************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "BUILD": () => (/* reexport safe */ _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD), -/* harmony export */ "Build": () => (/* binding */ Build), -/* harmony export */ "CSS": () => (/* binding */ CSS), -/* harmony export */ "Context": () => (/* binding */ Context), -/* harmony export */ "Env": () => (/* reexport safe */ _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.Env), -/* harmony export */ "Fragment": () => (/* binding */ Fragment), -/* harmony export */ "H": () => (/* binding */ H), -/* harmony export */ "HTMLElement": () => (/* binding */ H), -/* harmony export */ "Host": () => (/* binding */ Host), -/* harmony export */ "NAMESPACE": () => (/* reexport safe */ _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.NAMESPACE), -/* harmony export */ "STENCIL_DEV_MODE": () => (/* binding */ STENCIL_DEV_MODE), -/* harmony export */ "addHostEventListeners": () => (/* binding */ addHostEventListeners), -/* harmony export */ "bootstrapLazy": () => (/* binding */ bootstrapLazy), -/* harmony export */ "cmpModules": () => (/* binding */ cmpModules), -/* harmony export */ "connectedCallback": () => (/* binding */ connectedCallback), -/* harmony export */ "consoleDevError": () => (/* binding */ consoleDevError), -/* harmony export */ "consoleDevInfo": () => (/* binding */ consoleDevInfo), -/* harmony export */ "consoleDevWarn": () => (/* binding */ consoleDevWarn), -/* harmony export */ "consoleError": () => (/* binding */ consoleError), -/* harmony export */ "createEvent": () => (/* binding */ createEvent), -/* harmony export */ "defineCustomElement": () => (/* binding */ defineCustomElement), -/* harmony export */ "disconnectedCallback": () => (/* binding */ disconnectedCallback), -/* harmony export */ "doc": () => (/* binding */ doc), -/* harmony export */ "forceModeUpdate": () => (/* binding */ forceModeUpdate), -/* harmony export */ "forceUpdate": () => (/* binding */ forceUpdate), -/* harmony export */ "getAssetPath": () => (/* binding */ getAssetPath), -/* harmony export */ "getConnect": () => (/* binding */ getConnect), -/* harmony export */ "getContext": () => (/* binding */ getContext), -/* harmony export */ "getElement": () => (/* binding */ getElement), -/* harmony export */ "getHostRef": () => (/* binding */ getHostRef), -/* harmony export */ "getMode": () => (/* binding */ getMode), -/* harmony export */ "getRenderingRef": () => (/* binding */ getRenderingRef), -/* harmony export */ "getValue": () => (/* binding */ getValue), -/* harmony export */ "h": () => (/* binding */ h), -/* harmony export */ "insertVdomAnnotations": () => (/* binding */ insertVdomAnnotations), -/* harmony export */ "isMemberInElement": () => (/* binding */ isMemberInElement), -/* harmony export */ "loadModule": () => (/* binding */ loadModule), -/* harmony export */ "modeResolutionChain": () => (/* binding */ modeResolutionChain), -/* harmony export */ "nextTick": () => (/* binding */ nextTick), -/* harmony export */ "parsePropertyValue": () => (/* binding */ parsePropertyValue), -/* harmony export */ "plt": () => (/* binding */ plt), -/* harmony export */ "postUpdateComponent": () => (/* binding */ postUpdateComponent), -/* harmony export */ "promiseResolve": () => (/* binding */ promiseResolve), -/* harmony export */ "proxyComponent": () => (/* binding */ proxyComponent), -/* harmony export */ "proxyCustomElement": () => (/* binding */ proxyCustomElement), -/* harmony export */ "readTask": () => (/* binding */ readTask), -/* harmony export */ "registerHost": () => (/* binding */ registerHost), -/* harmony export */ "registerInstance": () => (/* binding */ registerInstance), -/* harmony export */ "renderVdom": () => (/* binding */ renderVdom), -/* harmony export */ "setAssetPath": () => (/* binding */ setAssetPath), -/* harmony export */ "setErrorHandler": () => (/* binding */ setErrorHandler), -/* harmony export */ "setMode": () => (/* binding */ setMode), -/* harmony export */ "setNonce": () => (/* binding */ setNonce), -/* harmony export */ "setPlatformHelpers": () => (/* binding */ setPlatformHelpers), -/* harmony export */ "setPlatformOptions": () => (/* binding */ setPlatformOptions), -/* harmony export */ "setValue": () => (/* binding */ setValue), -/* harmony export */ "styles": () => (/* binding */ styles), -/* harmony export */ "supportsConstructableStylesheets": () => (/* binding */ supportsConstructableStylesheets), -/* harmony export */ "supportsListenerOptions": () => (/* binding */ supportsListenerOptions), -/* harmony export */ "supportsShadow": () => (/* binding */ supportsShadow), -/* harmony export */ "win": () => (/* binding */ win), -/* harmony export */ "writeTask": () => (/* binding */ writeTask) -/* harmony export */ }); -/* harmony import */ var _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @stencil/core/internal/app-data */ "./node_modules/@stencil/core/internal/app-data/index.js"); -/** - * Virtual DOM patching algorithm based on Snabbdom by - * Simon Friis Vindum (@paldepind) - * Licensed under the MIT License - * https://github.com/snabbdom/snabbdom/blob/master/LICENSE - * - * Modified for Stencil's renderer and slot projection - */ -let scopeId; -let contentRef; -let hostTagName; -let customError; -let i = 0; -let useNativeShadowDom = false; -let checkSlotFallbackVisibility = false; -let checkSlotRelocate = false; -let isSvgMode = false; -let renderingRef = null; -let queueCongestion = 0; -let queuePending = false; -/* - Stencil Client Platform v2.22.3 | MIT Licensed | https://stenciljs.com - */ - -const Build = { - isDev: _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDev ? true : false, - isBrowser: true, - isServer: false, - isTesting: _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isTesting ? true : false, -}; -const Context = {}; -const getAssetPath = (path) => { - const assetUrl = new URL(path, plt.$resourcesUrl$); - return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname; -}; -const setAssetPath = (path) => (plt.$resourcesUrl$ = path); -const createTime = (fnName, tagName = '') => { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.profile && performance.mark) { - const key = `st:${fnName}:${tagName}:${i++}`; - // Start - performance.mark(key); - // End - return () => performance.measure(`[Stencil] ${fnName}() <${tagName}>`, key); - } - else { - return () => { - return; - }; - } -}; -const uniqueTime = (key, measureText) => { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.profile && performance.mark) { - if (performance.getEntriesByName(key, 'mark').length === 0) { - performance.mark(key); - } - return () => { - if (performance.getEntriesByName(measureText, 'measure').length === 0) { - performance.measure(measureText, key); - } - }; - } - else { - return () => { - return; - }; - } -}; -const inspect = (ref) => { - const hostRef = getHostRef(ref); - if (!hostRef) { - return undefined; - } - const flags = hostRef.$flags$; - const hostElement = hostRef.$hostElement$; - return { - renderCount: hostRef.$renderCount$, - flags: { - hasRendered: !!(flags & 2 /* HOST_FLAGS.hasRendered */), - hasConnected: !!(flags & 1 /* HOST_FLAGS.hasConnected */), - isWaitingForChildren: !!(flags & 4 /* HOST_FLAGS.isWaitingForChildren */), - isConstructingInstance: !!(flags & 8 /* HOST_FLAGS.isConstructingInstance */), - isQueuedForUpdate: !!(flags & 16 /* HOST_FLAGS.isQueuedForUpdate */), - hasInitializedComponent: !!(flags & 32 /* HOST_FLAGS.hasInitializedComponent */), - hasLoadedComponent: !!(flags & 64 /* HOST_FLAGS.hasLoadedComponent */), - isWatchReady: !!(flags & 128 /* HOST_FLAGS.isWatchReady */), - isListenReady: !!(flags & 256 /* HOST_FLAGS.isListenReady */), - needsRerender: !!(flags & 512 /* HOST_FLAGS.needsRerender */), - }, - instanceValues: hostRef.$instanceValues$, - ancestorComponent: hostRef.$ancestorComponent$, - hostElement, - lazyInstance: hostRef.$lazyInstance$, - vnode: hostRef.$vnode$, - modeName: hostRef.$modeName$, - onReadyPromise: hostRef.$onReadyPromise$, - onReadyResolve: hostRef.$onReadyResolve$, - onInstancePromise: hostRef.$onInstancePromise$, - onInstanceResolve: hostRef.$onInstanceResolve$, - onRenderResolve: hostRef.$onRenderResolve$, - queuedListeners: hostRef.$queuedListeners$, - rmListeners: hostRef.$rmListeners$, - ['s-id']: hostElement['s-id'], - ['s-cr']: hostElement['s-cr'], - ['s-lr']: hostElement['s-lr'], - ['s-p']: hostElement['s-p'], - ['s-rc']: hostElement['s-rc'], - ['s-sc']: hostElement['s-sc'], - }; -}; -const installDevTools = () => { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.devTools) { - const stencil = (win.stencil = win.stencil || {}); - const originalInspect = stencil.inspect; - stencil.inspect = (ref) => { - let result = inspect(ref); - if (!result && typeof originalInspect === 'function') { - result = originalInspect(ref); - } - return result; - }; - } -}; -const CONTENT_REF_ID = 'r'; -const ORG_LOCATION_ID = 'o'; -const SLOT_NODE_ID = 's'; -const TEXT_NODE_ID = 't'; -const HYDRATE_ID = 's-id'; -const HYDRATED_STYLE_ID = 'sty-id'; -const HYDRATE_CHILD_ID = 'c-id'; -const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}'; -const XLINK_NS = 'http://www.w3.org/1999/xlink'; -/** - * Default style mode id - */ -/** - * Reusable empty obj/array - * Don't add values to these!! - */ -const EMPTY_OBJ = {}; -/** - * Namespaces - */ -const SVG_NS = 'http://www.w3.org/2000/svg'; -const HTML_NS = 'http://www.w3.org/1999/xhtml'; -const isDef = (v) => v != null; -const isComplexType = (o) => { - // https://jsperf.com/typeof-fn-object/5 - o = typeof o; - return o === 'object' || o === 'function'; -}; -/** - * Helper method for querying a `meta` tag that contains a nonce value - * out of a DOM's head. - * - * @param doc The DOM containing the `head` to query against - * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag - * exists or the tag has no content. - */ -function queryNonceMetaTagContent(doc) { - var _a, _b, _c; - return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined; -} -/** - * Production h() function based on Preact by - * Jason Miller (@developit) - * Licensed under the MIT License - * https://github.com/developit/preact/blob/master/LICENSE - * - * Modified for Stencil's compiler and vdom - */ -// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode; -// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode; -const h = (nodeName, vnodeData, ...children) => { - let child = null; - let key = null; - let slotName = null; - let simple = false; - let lastSimple = false; - const vNodeChildren = []; - const walk = (c) => { - for (let i = 0; i < c.length; i++) { - child = c[i]; - if (Array.isArray(child)) { - walk(child); - } - else if (child != null && typeof child !== 'boolean') { - if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) { - child = String(child); - } - else if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDev && typeof nodeName !== 'function' && child.$flags$ === undefined) { - consoleDevError(`vNode passed as children has unexpected type. -Make sure it's using the correct h() function. -Empty objects can also be the cause, look for JSX comments that became objects.`); - } - if (simple && lastSimple) { - // If the previous child was simple (string), we merge both - vNodeChildren[vNodeChildren.length - 1].$text$ += child; - } - else { - // Append a new vNode, if it's text, we create a text vNode - vNodeChildren.push(simple ? newVNode(null, child) : child); - } - lastSimple = simple; - } - } - }; - walk(children); - if (vnodeData) { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDev && nodeName === 'input') { - validateInputProperties(vnodeData); - } - // normalize class / classname attributes - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomKey && vnodeData.key) { - key = vnodeData.key; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation && vnodeData.name) { - slotName = vnodeData.name; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomClass) { - const classData = vnodeData.className || vnodeData.class; - if (classData) { - vnodeData.class = - typeof classData !== 'object' - ? classData - : Object.keys(classData) - .filter((k) => classData[k]) - .join(' '); - } - } - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDev && vNodeChildren.some(isHost)) { - consoleDevError(`The must be the single root component. Make sure: -- You are NOT using hostData() and in the same component. -- is used once, and it's the single root component of the render() function.`); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomFunctional && typeof nodeName === 'function') { - // nodeName is a functional component - return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils); - } - const vnode = newVNode(nodeName, null); - vnode.$attrs$ = vnodeData; - if (vNodeChildren.length > 0) { - vnode.$children$ = vNodeChildren; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomKey) { - vnode.$key$ = key; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation) { - vnode.$name$ = slotName; - } - return vnode; -}; -/** - * A utility function for creating a virtual DOM node from a tag and some - * possible text content. - * - * @param tag the tag for this element - * @param text possible text content for the node - * @returns a newly-minted virtual DOM node - */ -const newVNode = (tag, text) => { - const vnode = { - $flags$: 0, - $tag$: tag, - $text$: text, - $elm$: null, - $children$: null, - }; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomAttribute) { - vnode.$attrs$ = null; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomKey) { - vnode.$key$ = null; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation) { - vnode.$name$ = null; - } - return vnode; -}; -const Host = {}; -/** - * Check whether a given node is a Host node or not - * - * @param node the virtual DOM node to check - * @returns whether it's a Host node or not - */ -const isHost = (node) => node && node.$tag$ === Host; -/** - * Implementation of {@link d.FunctionalUtilities} for Stencil's VDom. - * - * Note that these functions convert from {@link d.VNode} to - * {@link d.ChildNode} to give functional component developers a friendly - * interface. - */ -const vdomFnUtils = { - forEach: (children, cb) => children.map(convertToPublic).forEach(cb), - map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate), -}; -/** - * Convert a {@link d.VNode} to a {@link d.ChildNode} in order to present a - * friendlier public interface (hence, 'convertToPublic'). - * - * @param node the virtual DOM node to convert - * @returns a converted child node - */ -const convertToPublic = (node) => ({ - vattrs: node.$attrs$, - vchildren: node.$children$, - vkey: node.$key$, - vname: node.$name$, - vtag: node.$tag$, - vtext: node.$text$, -}); -/** - * Convert a {@link d.ChildNode} back to an equivalent {@link d.VNode} in - * order to use the resulting object in the virtual DOM. The initial object was - * likely created as part of presenting a public API, so converting it back - * involved making it 'private' again (hence, `convertToPrivate`). - * - * @param node the child node to convert - * @returns a converted virtual DOM node - */ -const convertToPrivate = (node) => { - if (typeof node.vtag === 'function') { - const vnodeData = Object.assign({}, node.vattrs); - if (node.vkey) { - vnodeData.key = node.vkey; - } - if (node.vname) { - vnodeData.name = node.vname; - } - return h(node.vtag, vnodeData, ...(node.vchildren || [])); - } - const vnode = newVNode(node.vtag, node.vtext); - vnode.$attrs$ = node.vattrs; - vnode.$children$ = node.vchildren; - vnode.$key$ = node.vkey; - vnode.$name$ = node.vname; - return vnode; -}; -/** - * Validates the ordering of attributes on an input element - * - * @param inputElm the element to validate - */ -const validateInputProperties = (inputElm) => { - const props = Object.keys(inputElm); - const value = props.indexOf('value'); - if (value === -1) { - return; - } - const typeIndex = props.indexOf('type'); - const minIndex = props.indexOf('min'); - const maxIndex = props.indexOf('max'); - const stepIndex = props.indexOf('step'); - if (value < typeIndex || value < minIndex || value < maxIndex || value < stepIndex) { - consoleDevWarn(`The "value" prop of should be set after "min", "max", "type" and "step"`); - } -}; -const initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => { - const endHydrate = createTime('hydrateClient', tagName); - const shadowRoot = hostElm.shadowRoot; - const childRenderNodes = []; - const slotNodes = []; - const shadowRootNodes = _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom && shadowRoot ? [] : null; - const vnode = (hostRef.$vnode$ = newVNode(tagName, null)); - if (!plt.$orgLocNodes$) { - initializeDocumentHydrate(doc.body, (plt.$orgLocNodes$ = new Map())); - } - hostElm[HYDRATE_ID] = hostId; - hostElm.removeAttribute(HYDRATE_ID); - clientHydrate(vnode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, hostElm, hostId); - childRenderNodes.map((c) => { - const orgLocationId = c.$hostId$ + '.' + c.$nodeId$; - const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId); - const node = c.$elm$; - if (orgLocationNode && supportsShadow && orgLocationNode['s-en'] === '') { - orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling); - } - if (!shadowRoot) { - node['s-hn'] = tagName; - if (orgLocationNode) { - node['s-ol'] = orgLocationNode; - node['s-ol']['s-nr'] = node; - } - } - plt.$orgLocNodes$.delete(orgLocationId); - }); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom && shadowRoot) { - shadowRootNodes.map((shadowRootNode) => { - if (shadowRootNode) { - shadowRoot.appendChild(shadowRootNode); - } - }); - } - endHydrate(); -}; -const clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId) => { - let childNodeType; - let childIdSplt; - let childVNode; - let i; - if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) { - childNodeType = node.getAttribute(HYDRATE_CHILD_ID); - if (childNodeType) { - // got the node data from the element's attribute - // `${hostId}.${nodeId}.${depth}.${index}` - childIdSplt = childNodeType.split('.'); - if (childIdSplt[0] === hostId || childIdSplt[0] === '0') { - childVNode = { - $flags$: 0, - $hostId$: childIdSplt[0], - $nodeId$: childIdSplt[1], - $depth$: childIdSplt[2], - $index$: childIdSplt[3], - $tag$: node.tagName.toLowerCase(), - $elm$: node, - $attrs$: null, - $children$: null, - $key$: null, - $name$: null, - $text$: null, - }; - childRenderNodes.push(childVNode); - node.removeAttribute(HYDRATE_CHILD_ID); - // this is a new child vnode - // so ensure its parent vnode has the vchildren array - if (!parentVNode.$children$) { - parentVNode.$children$ = []; - } - // add our child vnode to a specific index of the vnode's children - parentVNode.$children$[childVNode.$index$] = childVNode; - // this is now the new parent vnode for all the next child checks - parentVNode = childVNode; - if (shadowRootNodes && childVNode.$depth$ === '0') { - shadowRootNodes[childVNode.$index$] = childVNode.$elm$; - } - } - } - // recursively drill down, end to start so we can remove nodes - for (i = node.childNodes.length - 1; i >= 0; i--) { - clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.childNodes[i], hostId); - } - if (node.shadowRoot) { - // keep drilling down through the shadow root nodes - for (i = node.shadowRoot.childNodes.length - 1; i >= 0; i--) { - clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.shadowRoot.childNodes[i], hostId); - } - } - } - else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) { - // `${COMMENT_TYPE}.${hostId}.${nodeId}.${depth}.${index}` - childIdSplt = node.nodeValue.split('.'); - if (childIdSplt[1] === hostId || childIdSplt[1] === '0') { - // comment node for either the host id or a 0 host id - childNodeType = childIdSplt[0]; - childVNode = { - $flags$: 0, - $hostId$: childIdSplt[1], - $nodeId$: childIdSplt[2], - $depth$: childIdSplt[3], - $index$: childIdSplt[4], - $elm$: node, - $attrs$: null, - $children$: null, - $key$: null, - $name$: null, - $tag$: null, - $text$: null, - }; - if (childNodeType === TEXT_NODE_ID) { - childVNode.$elm$ = node.nextSibling; - if (childVNode.$elm$ && childVNode.$elm$.nodeType === 3 /* NODE_TYPE.TextNode */) { - childVNode.$text$ = childVNode.$elm$.textContent; - childRenderNodes.push(childVNode); - // remove the text comment since it's no longer needed - node.remove(); - if (!parentVNode.$children$) { - parentVNode.$children$ = []; - } - parentVNode.$children$[childVNode.$index$] = childVNode; - if (shadowRootNodes && childVNode.$depth$ === '0') { - shadowRootNodes[childVNode.$index$] = childVNode.$elm$; - } - } - } - else if (childVNode.$hostId$ === hostId) { - // this comment node is specifcally for this host id - if (childNodeType === SLOT_NODE_ID) { - // `${SLOT_NODE_ID}.${hostId}.${nodeId}.${depth}.${index}.${slotName}`; - childVNode.$tag$ = 'slot'; - if (childIdSplt[5]) { - node['s-sn'] = childVNode.$name$ = childIdSplt[5]; - } - else { - node['s-sn'] = ''; - } - node['s-sr'] = true; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom && shadowRootNodes) { - // browser support shadowRoot and this is a shadow dom component - // create an actual slot element - childVNode.$elm$ = doc.createElement(childVNode.$tag$); - if (childVNode.$name$) { - // add the slot name attribute - childVNode.$elm$.setAttribute('name', childVNode.$name$); - } - // insert the new slot element before the slot comment - node.parentNode.insertBefore(childVNode.$elm$, node); - // remove the slot comment since it's not needed for shadow - node.remove(); - if (childVNode.$depth$ === '0') { - shadowRootNodes[childVNode.$index$] = childVNode.$elm$; - } - } - slotNodes.push(childVNode); - if (!parentVNode.$children$) { - parentVNode.$children$ = []; - } - parentVNode.$children$[childVNode.$index$] = childVNode; - } - else if (childNodeType === CONTENT_REF_ID) { - // `${CONTENT_REF_ID}.${hostId}`; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom && shadowRootNodes) { - // remove the content ref comment since it's not needed for shadow - node.remove(); - } - else if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation) { - hostElm['s-cr'] = node; - node['s-cn'] = true; - } - } - } - } - } - else if (parentVNode && parentVNode.$tag$ === 'style') { - const vnode = newVNode(null, node.textContent); - vnode.$elm$ = node; - vnode.$index$ = '0'; - parentVNode.$children$ = [vnode]; - } -}; -const initializeDocumentHydrate = (node, orgLocNodes) => { - if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) { - let i = 0; - for (; i < node.childNodes.length; i++) { - initializeDocumentHydrate(node.childNodes[i], orgLocNodes); - } - if (node.shadowRoot) { - for (i = 0; i < node.shadowRoot.childNodes.length; i++) { - initializeDocumentHydrate(node.shadowRoot.childNodes[i], orgLocNodes); - } - } - } - else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) { - const childIdSplt = node.nodeValue.split('.'); - if (childIdSplt[0] === ORG_LOCATION_ID) { - orgLocNodes.set(childIdSplt[1] + '.' + childIdSplt[2], node); - node.nodeValue = ''; - // useful to know if the original location is - // the root light-dom of a shadow dom component - node['s-en'] = childIdSplt[3]; - } - } -}; -// Private -const computeMode = (elm) => modeResolutionChain.map((h) => h(elm)).find((m) => !!m); -// Public -const setMode = (handler) => modeResolutionChain.push(handler); -const getMode = (ref) => getHostRef(ref).$modeName$; -/** - * Parse a new property value for a given property type. - * - * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned, - * it is not safe to assume that the string returned by evaluating `typeof propValue` matches: - * 1. `any`, the type given to `propValue` in the function signature - * 2. the type stored from `propType`. - * - * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type. - * - * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to - * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is - * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`. - * ```tsx - * - * ``` - * - * HTML prop values on the other hand, will always a string - * - * @param propValue the new value to coerce to some type - * @param propType the type of the prop, expressed as a binary number - * @returns the parsed/coerced value - */ -const parsePropertyValue = (propValue, propType) => { - // ensure this value is of the correct prop type - if (propValue != null && !isComplexType(propValue)) { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.propBoolean && propType & 4 /* MEMBER_FLAGS.Boolean */) { - // per the HTML spec, any string value means it is a boolean true value - // but we'll cheat here and say that the string "false" is the boolean false - return propValue === 'false' ? false : propValue === '' || !!propValue; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.propNumber && propType & 2 /* MEMBER_FLAGS.Number */) { - // force it to be a number - return parseFloat(propValue); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.propString && propType & 1 /* MEMBER_FLAGS.String */) { - // could have been passed as a number or boolean - // but we still want it as a string - return String(propValue); - } - // redundant return here for better minification - return propValue; - } - // not sure exactly what type we want - // so no need to change to a different type - return propValue; -}; -const getElement = (ref) => (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.lazyLoad ? getHostRef(ref).$hostElement$ : ref); -const createEvent = (ref, name, flags) => { - const elm = getElement(ref); - return { - emit: (detail) => { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDev && !elm.isConnected) { - consoleDevWarn(`The "${name}" event was emitted, but the dispatcher node is no longer connected to the dom.`); - } - return emitEvent(elm, name, { - bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */), - composed: !!(flags & 2 /* EVENT_FLAGS.Composed */), - cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */), - detail, - }); - }, - }; -}; -/** - * Helper function to create & dispatch a custom Event on a provided target - * @param elm the target of the Event - * @param name the name to give the custom Event - * @param opts options for configuring a custom Event - * @returns the custom Event - */ -const emitEvent = (elm, name, opts) => { - const ev = plt.ce(name, opts); - elm.dispatchEvent(ev); - return ev; -}; -const rootAppliedStyles = /*@__PURE__*/ new WeakMap(); -const registerStyle = (scopeId, cssText, allowCS) => { - let style = styles.get(scopeId); - if (supportsConstructableStylesheets && allowCS) { - style = (style || new CSSStyleSheet()); - if (typeof style === 'string') { - style = cssText; - } - else { - style.replaceSync(cssText); - } - } - else { - style = cssText; - } - styles.set(scopeId, style); -}; -const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => { - var _a; - let scopeId = getScopeId(cmpMeta, mode); - const style = styles.get(scopeId); - if (!_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.attachStyles) { - return scopeId; - } - // if an element is NOT connected then getRootNode() will return the wrong root node - // so the fallback is to always use the document for the root node in those cases - styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc; - if (style) { - if (typeof style === 'string') { - styleContainerNode = styleContainerNode.head || styleContainerNode; - let appliedStyles = rootAppliedStyles.get(styleContainerNode); - let styleElm; - if (!appliedStyles) { - rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set())); - } - if (!appliedStyles.has(scopeId)) { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateClientSide && - styleContainerNode.host && - (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId}"]`))) { - // This is only happening on native shadow-dom, do not needs CSS var shim - styleElm.innerHTML = style; - } - else { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.cssVarShim && plt.$cssShim$) { - styleElm = plt.$cssShim$.createHostStyle(hostElm, scopeId, style, !!(cmpMeta.$flags$ & 10 /* CMP_FLAGS.needsScopedEncapsulation */)); - const newScopeId = styleElm['s-sc']; - if (newScopeId) { - scopeId = newScopeId; - // we don't want to add this styleID to the appliedStyles Set - // since the cssVarShim might need to apply several different - // stylesheets for the same component - appliedStyles = null; - } - } - else { - styleElm = doc.createElement('style'); - styleElm.innerHTML = style; - } - // Apply CSP nonce to the style tag if it exists - const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc); - if (nonce != null) { - styleElm.setAttribute('nonce', nonce); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide || _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hotModuleReplacement) { - styleElm.setAttribute(HYDRATED_STYLE_ID, scopeId); - } - styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link')); - } - if (appliedStyles) { - appliedStyles.add(scopeId); - } - } - } - else if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.constructableCSS && !styleContainerNode.adoptedStyleSheets.includes(style)) { - styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style]; - } - } - return scopeId; -}; -const attachStyles = (hostRef) => { - const cmpMeta = hostRef.$cmpMeta$; - const elm = hostRef.$hostElement$; - const flags = cmpMeta.$flags$; - const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$); - const scopeId = addStyle(_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom && supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$, elm); - if ((_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom || _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.scoped) && _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.cssAnnotations && flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) { - // only required when we're NOT using native shadow dom (slot) - // or this browser doesn't support native shadow dom - // and this host element was NOT created with SSR - // let's pick out the inner content for slot projection - // create a node to represent where the original - // content was first placed, which is useful later on - // DOM WRITE!! - elm['s-sc'] = scopeId; - elm.classList.add(scopeId + '-h'); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.scoped && flags & 2 /* CMP_FLAGS.scopedCssEncapsulation */) { - elm.classList.add(scopeId + '-s'); - } - } - endAttachStyles(); -}; -const getScopeId = (cmp, mode) => 'sc-' + (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.mode && mode && cmp.$flags$ & 32 /* CMP_FLAGS.hasMode */ ? cmp.$tagName$ + '-' + mode : cmp.$tagName$); -const convertScopedToShadow = (css) => css.replace(/\/\*!@([^\/]+)\*\/[^\{]+\{/g, '$1{'); -/** - * Production setAccessor() function based on Preact by - * Jason Miller (@developit) - * Licensed under the MIT License - * https://github.com/developit/preact/blob/master/LICENSE - * - * Modified for Stencil's compiler and vdom - */ -const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => { - if (oldValue !== newValue) { - let isProp = isMemberInElement(elm, memberName); - let ln = memberName.toLowerCase(); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomClass && memberName === 'class') { - const classList = elm.classList; - const oldClasses = parseClassList(oldValue); - const newClasses = parseClassList(newValue); - classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c))); - classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c))); - } - else if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomStyle && memberName === 'style') { - // update style attribute, css properties and values - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.updatable) { - for (const prop in oldValue) { - if (!newValue || newValue[prop] == null) { - if (!_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide && prop.includes('-')) { - elm.style.removeProperty(prop); - } - else { - elm.style[prop] = ''; - } - } - } - } - for (const prop in newValue) { - if (!oldValue || newValue[prop] !== oldValue[prop]) { - if (!_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide && prop.includes('-')) { - elm.style.setProperty(prop, newValue[prop]); - } - else { - elm.style[prop] = newValue[prop]; - } - } - } - } - else if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomKey && memberName === 'key') - ; - else if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomRef && memberName === 'ref') { - // minifier will clean this up - if (newValue) { - newValue(elm); - } - } - else if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomListener && - (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.lazyLoad ? !isProp : !elm.__lookupSetter__(memberName)) && - memberName[0] === 'o' && - memberName[1] === 'n') { - // Event Handlers - // so if the member name starts with "on" and the 3rd characters is - // a capital letter, and it's not already a member on the element, - // then we're assuming it's an event listener - if (memberName[2] === '-') { - // on- prefixed events - // allows to be explicit about the dom event to listen without any magic - // under the hood: - // // listens for "click" - // // listens for "Click" - // // listens for "ionChange" - // // listens for "EVENTS" - memberName = memberName.slice(3); - } - else if (isMemberInElement(win, ln)) { - // standard event - // the JSX attribute could have been "onMouseOver" and the - // member name "onmouseover" is on the window's prototype - // so let's add the listener "mouseover", which is all lowercased - memberName = ln.slice(2); - } - else { - // custom event - // the JSX attribute could have been "onMyCustomEvent" - // so let's trim off the "on" prefix and lowercase the first character - // and add the listener "myCustomEvent" - // except for the first character, we keep the event name case - memberName = ln[2] + memberName.slice(3); - } - if (oldValue) { - plt.rel(elm, memberName, oldValue, false); - } - if (newValue) { - plt.ael(elm, memberName, newValue, false); - } - } - else if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomPropOrAttr) { - // Set property if it exists and it's not a SVG - const isComplex = isComplexType(newValue); - if ((isProp || (isComplex && newValue !== null)) && !isSvg) { - try { - if (!elm.tagName.includes('-')) { - const n = newValue == null ? '' : newValue; - // Workaround for Safari, moving the caret when re-assigning the same valued - if (memberName === 'list') { - isProp = false; - } - else if (oldValue == null || elm[memberName] != n) { - elm[memberName] = n; - } - } - else { - elm[memberName] = newValue; - } - } - catch (e) { } - } - /** - * Need to manually update attribute if: - * - memberName is not an attribute - * - if we are rendering the host element in order to reflect attribute - * - if it's a SVG, since properties might not work in - * - if the newValue is null/undefined or 'false'. - */ - let xlink = false; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomXlink) { - if (ln !== (ln = ln.replace(/^xlink\:?/, ''))) { - memberName = ln; - xlink = true; - } - } - if (newValue == null || newValue === false) { - if (newValue !== false || elm.getAttribute(memberName) === '') { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomXlink && xlink) { - elm.removeAttributeNS(XLINK_NS, memberName); - } - else { - elm.removeAttribute(memberName); - } - } - } - else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) { - newValue = newValue === true ? '' : newValue; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomXlink && xlink) { - elm.setAttributeNS(XLINK_NS, memberName, newValue); - } - else { - elm.setAttribute(memberName, newValue); - } - } - } - } -}; -const parseClassListRegex = /\s/; -const parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex)); -const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => { - // if the element passed in is a shadow root, which is a document fragment - // then we want to be adding attrs/props to the shadow root's "host" element - // if it's not a shadow root, then we add attrs/props to the same element - const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host - ? newVnode.$elm$.host - : newVnode.$elm$; - const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ; - const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.updatable) { - // remove attributes no longer present on the vnode by setting them to undefined - for (memberName in oldVnodeAttrs) { - if (!(memberName in newVnodeAttrs)) { - setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$); - } - } - } - // add new & update changed attributes - for (memberName in newVnodeAttrs) { - setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$); - } -}; -/** - * Create a DOM Node corresponding to one of the children of a given VNode. - * - * @param oldParentVNode the parent VNode from the previous render - * @param newParentVNode the parent VNode from the current render - * @param childIndex the index of the VNode, in the _new_ parent node's - * children, for which we will create a new DOM node - * @param parentElm the parent DOM node which our new node will be a child of - * @returns the newly created node - */ -const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => { - // tslint:disable-next-line: prefer-const - const newVNode = newParentVNode.$children$[childIndex]; - let i = 0; - let elm; - let childNode; - let oldVNode; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation && !useNativeShadowDom) { - // remember for later we need to check to relocate nodes - checkSlotRelocate = true; - if (newVNode.$tag$ === 'slot') { - if (scopeId) { - // scoped css needs to add its scoped id to the parent element - parentElm.classList.add(scopeId + '-s'); - } - newVNode.$flags$ |= newVNode.$children$ - ? // slot element has fallback content - 2 /* VNODE_FLAGS.isSlotFallback */ - : // slot element does not have fallback content - 1 /* VNODE_FLAGS.isSlotReference */; - } - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDev && newVNode.$elm$) { - consoleDevError(`The JSX ${newVNode.$text$ !== null ? `"${newVNode.$text$}" text` : `"${newVNode.$tag$}" element`} node should not be shared within the same renderer. The renderer caches element lookups in order to improve performance. However, a side effect from this is that the exact same JSX node should not be reused. For more information please see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes`); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomText && newVNode.$text$ !== null) { - // create text node - elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$); - } - else if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation && newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) { - // create a slot reference node - elm = newVNode.$elm$ = - _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDebug || _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide ? slotReferenceDebugNode(newVNode) : doc.createTextNode(''); - } - else { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.svg && !isSvgMode) { - isSvgMode = newVNode.$tag$ === 'svg'; - } - // create element - elm = newVNode.$elm$ = (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.svg - ? doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */ - ? 'slot-fb' - : newVNode.$tag$) - : doc.createElement(_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */ - ? 'slot-fb' - : newVNode.$tag$)); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.svg && isSvgMode && newVNode.$tag$ === 'foreignObject') { - isSvgMode = false; - } - // add css classes, attrs, props, listeners, etc. - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.vdomAttribute) { - updateElement(null, newVNode, isSvgMode); - } - if ((_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom || _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.scoped) && isDef(scopeId) && elm['s-si'] !== scopeId) { - // if there is a scopeId and this is the initial render - // then let's add the scopeId as a css class - elm.classList.add((elm['s-si'] = scopeId)); - } - if (newVNode.$children$) { - for (i = 0; i < newVNode.$children$.length; ++i) { - // create the node - childNode = createElm(oldParentVNode, newVNode, i, elm); - // return node could have been null - if (childNode) { - // append our new node - elm.appendChild(childNode); - } - } - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.svg) { - if (newVNode.$tag$ === 'svg') { - // Only reset the SVG context when we're exiting element - isSvgMode = false; - } - else if (elm.tagName === 'foreignObject') { - // Reenter SVG context when we're exiting element - isSvgMode = true; - } - } - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation) { - elm['s-hn'] = hostTagName; - if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) { - // remember the content reference comment - elm['s-sr'] = true; - // remember the content reference comment - elm['s-cr'] = contentRef; - // remember the slot name, or empty string for default slot - elm['s-sn'] = newVNode.$name$ || ''; - // check if we've got an old vnode for this slot - oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex]; - if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) { - // we've got an old slot vnode and the wrapper is being replaced - // so let's move the old slot content back to it's original location - putBackInOriginalLocation(oldParentVNode.$elm$, false); - } - } - } - return elm; -}; -const putBackInOriginalLocation = (parentElm, recursive) => { - plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */; - const oldSlotChildNodes = parentElm.childNodes; - for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) { - const childNode = oldSlotChildNodes[i]; - if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) { - // // this child node in the old element is from another component - // // remove this node from the old slot's parent - // childNode.remove(); - // and relocate it back to it's original location - parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode)); - // remove the old original location comment entirely - // later on the patch function will know what to do - // and move this to the correct spot in need be - childNode['s-ol'].remove(); - childNode['s-ol'] = undefined; - checkSlotRelocate = true; - } - if (recursive) { - putBackInOriginalLocation(childNode, recursive); - } - } - plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */; -}; -/** - * Create DOM nodes corresponding to a list of {@link d.Vnode} objects and - * add them to the DOM in the appropriate place. - * - * @param parentElm the DOM node which should be used as a parent for the new - * DOM nodes - * @param before a child of the `parentElm` which the new children should be - * inserted before (optional) - * @param parentVNode the parent virtual DOM node - * @param vnodes the new child virtual DOM nodes to produce DOM nodes for - * @param startIdx the index in the child virtual DOM nodes at which to start - * creating DOM nodes (inclusive) - * @param endIdx the index in the child virtual DOM nodes at which to stop - * creating DOM nodes (inclusive) - */ -const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => { - let containerElm = ((_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation && parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm); - let childNode; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom && containerElm.shadowRoot && containerElm.tagName === hostTagName) { - containerElm = containerElm.shadowRoot; - } - for (; startIdx <= endIdx; ++startIdx) { - if (vnodes[startIdx]) { - childNode = createElm(null, parentVNode, startIdx, parentElm); - if (childNode) { - vnodes[startIdx].$elm$ = childNode; - containerElm.insertBefore(childNode, _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation ? referenceNode(before) : before); - } - } - } -}; -/** - * Remove the DOM elements corresponding to a list of {@link d.VNode} objects. - * This can be used to, for instance, clean up after a list of children which - * should no longer be shown. - * - * This function also handles some of Stencil's slot relocation logic. - * - * @param vnodes a list of virtual DOM nodes to remove - * @param startIdx the index at which to start removing nodes (inclusive) - * @param endIdx the index at which to stop removing nodes (inclusive) - * @param vnode a VNode - * @param elm an element - */ -const removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => { - for (; startIdx <= endIdx; ++startIdx) { - if ((vnode = vnodes[startIdx])) { - elm = vnode.$elm$; - callNodeRefs(vnode); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation) { - // we're removing this element - // so it's possible we need to show slot fallback content now - checkSlotFallbackVisibility = true; - if (elm['s-ol']) { - // remove the original location comment - elm['s-ol'].remove(); - } - else { - // it's possible that child nodes of the node - // that's being removed are slot nodes - putBackInOriginalLocation(elm, true); - } - } - // remove the vnode's element from the dom - elm.remove(); - } - } -}; -/** - * Reconcile the children of a new VNode with the children of an old VNode by - * traversing the two collections of children, identifying nodes that are - * conserved or changed, calling out to `patch` to make any necessary - * updates to the DOM, and rearranging DOM nodes as needed. - * - * The algorithm for reconciling children works by analyzing two 'windows' onto - * the two arrays of children (`oldCh` and `newCh`). We keep track of the - * 'windows' by storing start and end indices and references to the - * corresponding array entries. Initially the two 'windows' are basically equal - * to the entire array, but we progressively narrow the windows until there are - * no children left to update by doing the following: - * - * 1. Skip any `null` entries at the beginning or end of the two arrays, so - * that if we have an initial array like the following we'll end up dealing - * only with a window bounded by the highlighted elements: - * - * [null, null, VNode1 , ... , VNode2, null, null] - * ^^^^^^ ^^^^^^ - * - * 2. Check to see if the elements at the head and tail positions are equal - * across the windows. This will basically detect elements which haven't - * been added, removed, or changed position, i.e. if you had the following - * VNode elements (represented as HTML): - * - * oldVNode: `

HEY

` - * newVNode: `

THERE

` - * - * Then when comparing the children of the `
` tag we check the equality - * of the VNodes corresponding to the `

` tags and, since they are the - * same tag in the same position, we'd be able to avoid completely - * re-rendering the subtree under them with a new DOM element and would just - * call out to `patch` to handle reconciling their children and so on. - * - * 3. Check, for both windows, to see if the element at the beginning of the - * window corresponds to the element at the end of the other window. This is - * a heuristic which will let us identify _some_ situations in which - * elements have changed position, for instance it _should_ detect that the - * children nodes themselves have not changed but merely moved in the - * following example: - * - * oldVNode: `

` - * newVNode: `
` - * - * If we find cases like this then we also need to move the concrete DOM - * elements corresponding to the moved children to write the re-order to the - * DOM. - * - * 4. Finally, if VNodes have the `key` attribute set on them we check for any - * nodes in the old children which have the same key as the first element in - * our window on the new children. If we find such a node we handle calling - * out to `patch`, moving relevant DOM nodes, and so on, in accordance with - * what we find. - * - * Finally, once we've narrowed our 'windows' to the point that either of them - * collapse (i.e. they have length 0) we then handle any remaining VNode - * insertion or deletion that needs to happen to get a DOM state that correctly - * reflects the new child VNodes. If, for instance, after our window on the old - * children has collapsed we still have more nodes on the new children that - * we haven't dealt with yet then we need to add them, or if the new children - * collapse but we still have unhandled _old_ children then we need to make - * sure the corresponding DOM nodes are removed. - * - * @param parentElm the node into which the parent VNode is rendered - * @param oldCh the old children of the parent node - * @param newVNode the new VNode which will replace the parent - * @param newCh the new children of the parent node - */ -const updateChildren = (parentElm, oldCh, newVNode, newCh) => { - let oldStartIdx = 0; - let newStartIdx = 0; - let idxInOld = 0; - let i = 0; - let oldEndIdx = oldCh.length - 1; - let oldStartVnode = oldCh[0]; - let oldEndVnode = oldCh[oldEndIdx]; - let newEndIdx = newCh.length - 1; - let newStartVnode = newCh[0]; - let newEndVnode = newCh[newEndIdx]; - let node; - let elmToMove; - while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) { - if (oldStartVnode == null) { - // VNode might have been moved left - oldStartVnode = oldCh[++oldStartIdx]; - } - else if (oldEndVnode == null) { - oldEndVnode = oldCh[--oldEndIdx]; - } - else if (newStartVnode == null) { - newStartVnode = newCh[++newStartIdx]; - } - else if (newEndVnode == null) { - newEndVnode = newCh[--newEndIdx]; - } - else if (isSameVnode(oldStartVnode, newStartVnode)) { - // if the start nodes are the same then we should patch the new VNode - // onto the old one, and increment our `newStartIdx` and `oldStartIdx` - // indices to reflect that. We don't need to move any DOM Nodes around - // since things are matched up in order. - patch(oldStartVnode, newStartVnode); - oldStartVnode = oldCh[++oldStartIdx]; - newStartVnode = newCh[++newStartIdx]; - } - else if (isSameVnode(oldEndVnode, newEndVnode)) { - // likewise, if the end nodes are the same we patch new onto old and - // decrement our end indices, and also likewise in this case we don't - // need to move any DOM Nodes. - patch(oldEndVnode, newEndVnode); - oldEndVnode = oldCh[--oldEndIdx]; - newEndVnode = newCh[--newEndIdx]; - } - else if (isSameVnode(oldStartVnode, newEndVnode)) { - // case: "Vnode moved right" - // - // We've found that the last node in our window on the new children is - // the same VNode as the _first_ node in our window on the old children - // we're dealing with now. Visually, this is the layout of these two - // nodes: - // - // newCh: [..., newStartVnode , ... , newEndVnode , ...] - // ^^^^^^^^^^^ - // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...] - // ^^^^^^^^^^^^^ - // - // In this situation we need to patch `newEndVnode` onto `oldStartVnode` - // and move the DOM element for `oldStartVnode`. - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation && (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) { - putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false); - } - patch(oldStartVnode, newEndVnode); - // We need to move the element for `oldStartVnode` into a position which - // will be appropriate for `newEndVnode`. For this we can use - // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a - // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for - // `oldStartVnode` between `oldEndVnode` and it's sibling, like so: - // - // - // - // - // - // - // - // ``` - // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback - // will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value") - // to the value that was set inline i.e. "some-value" from above example. When - // the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value" - // - // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed - // by connectedCallback as this attributeChangedCallback will not fire. - // - // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties - // - // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to - // properties here given that this goes against best practices outlined here - // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy - if (this.hasOwnProperty(propName)) { - newValue = this[propName]; - delete this[propName]; - } - else if (prototype.hasOwnProperty(propName) && - typeof this[propName] === 'number' && - this[propName] == newValue) { - // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native - // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in - // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props. - return; - } - this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue; - }); - }; - // create an array of attributes to observe - // and also create a map of html attribute name to js property name - Cstr.observedAttributes = members - .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes - .map(([propName, m]) => { - const attrName = m[1] || propName; - attrNameToPropName.set(attrName, propName); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.reflect && m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) { - cmpMeta.$attrsToReflect$.push([propName, attrName]); - } - return attrName; - }); - } - } - return Cstr; -}; -const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => { - // initializeComponent - if ((_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.lazyLoad || _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide || _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.style) && - (hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.lazyLoad || _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateClientSide) { - // we haven't initialized this element yet - hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */; - // lazy loaded components - // request the component's implementation to be - // wired up with the host element - Cstr = loadModule(cmpMeta, hostRef, hmrVersionId); - if (Cstr.then) { - // Await creates a micro-task avoid if possible - const endLoad = uniqueTime(`st:load:${cmpMeta.$tagName$}:${hostRef.$modeName$}`, `[Stencil] Load module for <${cmpMeta.$tagName$}>`); - Cstr = await Cstr; - endLoad(); - } - if ((_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDev || _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDebug) && !Cstr) { - throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.member && !Cstr.isProxied) { - // we've never proxied this Constructor before - // let's add the getters/setters to its prototype before - // the first time we create an instance of the implementation - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.watchCallback) { - cmpMeta.$watchers$ = Cstr.watchers; - } - proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */); - Cstr.isProxied = true; - } - const endNewInstance = createTime('createInstance', cmpMeta.$tagName$); - // ok, time to construct the instance - // but let's keep track of when we start and stop - // so that the getters/setters don't incorrectly step on data - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.member) { - hostRef.$flags$ |= 8 /* HOST_FLAGS.isConstructingInstance */; - } - // construct the lazy-loaded component implementation - // passing the hostRef is very important during - // construction in order to directly wire together the - // host element and the lazy-loaded instance - try { - new Cstr(hostRef); - } - catch (e) { - consoleError(e); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.member) { - hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.watchCallback) { - hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */; - } - endNewInstance(); - fireConnectedCallback(hostRef.$lazyInstance$); - } - else { - // sync constructor component - Cstr = elm.constructor; - hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */; - // wait for the CustomElementRegistry to mark the component as ready before setting `isWatchReady`. Otherwise, - // watchers may fire prematurely if `customElements.get()`/`customElements.whenDefined()` resolves _before_ - // Stencil has completed instantiating the component. - customElements.whenDefined(cmpMeta.$tagName$).then(() => (hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */)); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.style && Cstr.style) { - // this component has styles but we haven't registered them yet - let style = Cstr.style; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.mode && typeof style !== 'string') { - style = style[(hostRef.$modeName$ = computeMode(elm))]; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide && hostRef.$modeName$) { - elm.setAttribute('s-mode', hostRef.$modeName$); - } - } - const scopeId = getScopeId(cmpMeta, hostRef.$modeName$); - if (!styles.has(scopeId)) { - const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$); - if (!_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide && - _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom && - _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDomShim && - cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) { - style = await __webpack_require__.e(/*! import() */ "vendors-node_modules_stencil_core_internal_client_shadow-css_js").then(__webpack_require__.bind(__webpack_require__, /*! ./shadow-css.js */ "./node_modules/@stencil/core/internal/client/shadow-css.js")).then((m) => m.scopeCss(style, scopeId, false)); - } - registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */)); - endRegisterStyles(); - } - } - } - // we've successfully created a lazy instance - const ancestorComponent = hostRef.$ancestorComponent$; - const schedule = () => scheduleUpdate(hostRef, true); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.asyncLoading && ancestorComponent && ancestorComponent['s-rc']) { - // this is the initial load and this component it has an ancestor component - // but the ancestor component has NOT fired its will update lifecycle yet - // so let's just cool our jets and wait for the ancestor to continue first - // this will get fired off when the ancestor component - // finally gets around to rendering its lazy self - // fire off the initial update - ancestorComponent['s-rc'].push(schedule); - } - else { - schedule(); - } -}; -const fireConnectedCallback = (instance) => { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.lazyLoad && _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.connectedCallback) { - safeCall(instance, 'connectedCallback'); - } -}; -const connectedCallback = (elm) => { - if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) { - const hostRef = getHostRef(elm); - const cmpMeta = hostRef.$cmpMeta$; - const endConnected = createTime('connectedCallback', cmpMeta.$tagName$); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hostListenerTargetParent) { - // only run if we have listeners being attached to a parent - addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, true); - } - if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) { - // first time this component has connected - hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */; - let hostId; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateClientSide) { - hostId = elm.getAttribute(HYDRATE_ID); - if (hostId) { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom && supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) { - const scopeId = _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.mode - ? addStyle(elm.shadowRoot, cmpMeta, elm.getAttribute('s-mode')) - : addStyle(elm.shadowRoot, cmpMeta); - elm.classList.remove(scopeId + '-h', scopeId + '-s'); - } - initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef); - } - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotRelocation && !hostId) { - // initUpdate - // if the slot polyfill is required we'll need to put some nodes - // in here to act as original content anchors as we move nodes around - // host element has been connected to the DOM - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide || - ((_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slot || _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom) && - cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) { - setContentReference(elm); - } - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.asyncLoading) { - // find the first ancestor component (if there is one) and register - // this component as one of the actively loading child components for its ancestor - let ancestorComponent = elm; - while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) { - // climb up the ancestors looking for the first - // component that hasn't finished its lifecycle update yet - if ((_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateClientSide && - ancestorComponent.nodeType === 1 /* NODE_TYPE.ElementNode */ && - ancestorComponent.hasAttribute('s-id') && - ancestorComponent['s-p']) || - ancestorComponent['s-p']) { - // we found this components first ancestor component - // keep a reference to this component's ancestor component - attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent)); - break; - } - } - } - // Lazy properties - // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.prop && !_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide && cmpMeta.$members$) { - Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => { - if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) { - const value = elm[memberName]; - delete elm[memberName]; - elm[memberName] = value; - } - }); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.initializeNextTick) { - // connectedCallback, taskQueue, initialLoad - // angular sets attribute AFTER connectCallback - // https://github.com/angular/angular/issues/18909 - // https://github.com/angular/angular/issues/19940 - nextTick(() => initializeComponent(elm, hostRef, cmpMeta)); - } - else { - initializeComponent(elm, hostRef, cmpMeta); - } - } - else { - // not the first time this has connected - // reattach any event listeners to the host - // since they would have been removed when disconnected - addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false); - // fire off connectedCallback() on component instance - fireConnectedCallback(hostRef.$lazyInstance$); - } - endConnected(); - } -}; -const setContentReference = (elm) => { - // only required when we're NOT using native shadow dom (slot) - // or this browser doesn't support native shadow dom - // and this host element was NOT created with SSR - // let's pick out the inner content for slot projection - // create a node to represent where the original - // content was first placed, which is useful later on - const contentRefElm = (elm['s-cr'] = doc.createComment(_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDebug ? `content-ref (host=${elm.localName})` : '')); - contentRefElm['s-cn'] = true; - elm.insertBefore(contentRefElm, elm.firstChild); -}; -const disconnectedCallback = (elm) => { - if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) { - const hostRef = getHostRef(elm); - const instance = _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hostListener) { - if (hostRef.$rmListeners$) { - hostRef.$rmListeners$.map((rmListener) => rmListener()); - hostRef.$rmListeners$ = undefined; - } - } - // clear CSS var-shim tracking - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.cssVarShim && plt.$cssShim$) { - plt.$cssShim$.removeHost(elm); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.lazyLoad && _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.disconnectedCallback) { - safeCall(instance, 'disconnectedCallback'); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.cmpDidUnload) { - safeCall(instance, 'componentDidUnload'); - } - } -}; -const defineCustomElement = (Cstr, compactMeta) => { - customElements.define(compactMeta[1], proxyCustomElement(Cstr, compactMeta)); -}; -const proxyCustomElement = (Cstr, compactMeta) => { - const cmpMeta = { - $flags$: compactMeta[0], - $tagName$: compactMeta[1], - }; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.member) { - cmpMeta.$members$ = compactMeta[2]; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hostListener) { - cmpMeta.$listeners$ = compactMeta[3]; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.watchCallback) { - cmpMeta.$watchers$ = Cstr.$watchers$; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.reflect) { - cmpMeta.$attrsToReflect$ = []; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) { - cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */; - } - const originalConnectedCallback = Cstr.prototype.connectedCallback; - const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback; - Object.assign(Cstr.prototype, { - __registerHost() { - registerHost(this, cmpMeta); - }, - connectedCallback() { - connectedCallback(this); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.connectedCallback && originalConnectedCallback) { - originalConnectedCallback.call(this); - } - }, - disconnectedCallback() { - disconnectedCallback(this); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.disconnectedCallback && originalDisconnectedCallback) { - originalDisconnectedCallback.call(this); - } - }, - __attachShadow() { - if (supportsShadow) { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDelegatesFocus) { - this.attachShadow({ - mode: 'open', - delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */), - }); - } - else { - this.attachShadow({ mode: 'open' }); - } - } - else { - this.shadowRoot = this; - } - }, - }); - Cstr.is = cmpMeta.$tagName$; - return proxyComponent(Cstr, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */ | 2 /* PROXY_FLAGS.proxyState */); -}; -const forceModeUpdate = (elm) => { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.style && _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.mode && !_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.lazyLoad) { - const mode = computeMode(elm); - const hostRef = getHostRef(elm); - if (hostRef.$modeName$ !== mode) { - const cmpMeta = hostRef.$cmpMeta$; - const oldScopeId = elm['s-sc']; - const scopeId = getScopeId(cmpMeta, mode); - const style = elm.constructor.style[mode]; - const flags = cmpMeta.$flags$; - if (style) { - if (!styles.has(scopeId)) { - registerStyle(scopeId, style, !!(flags & 1 /* CMP_FLAGS.shadowDomEncapsulation */)); - } - hostRef.$modeName$ = mode; - elm.classList.remove(oldScopeId + '-h', oldScopeId + '-s'); - attachStyles(hostRef); - forceUpdate(elm); - } - } - } -}; -const patchCloneNode = (HostElementPrototype) => { - const orgCloneNode = HostElementPrototype.cloneNode; - HostElementPrototype.cloneNode = function (deep) { - const srcNode = this; - const isShadowDom = _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom ? srcNode.shadowRoot && supportsShadow : false; - const clonedNode = orgCloneNode.call(srcNode, isShadowDom ? deep : false); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slot && !isShadowDom && deep) { - let i = 0; - let slotted, nonStencilNode; - const stencilPrivates = [ - 's-id', - 's-cr', - 's-lr', - 's-rc', - 's-sc', - 's-p', - 's-cn', - 's-sr', - 's-sn', - 's-hn', - 's-ol', - 's-nr', - 's-si', - ]; - for (; i < srcNode.childNodes.length; i++) { - slotted = srcNode.childNodes[i]['s-nr']; - nonStencilNode = stencilPrivates.every((privateField) => !srcNode.childNodes[i][privateField]); - if (slotted) { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.appendChildSlotFix && clonedNode.__appendChild) { - clonedNode.__appendChild(slotted.cloneNode(true)); - } - else { - clonedNode.appendChild(slotted.cloneNode(true)); - } - } - if (nonStencilNode) { - clonedNode.appendChild(srcNode.childNodes[i].cloneNode(true)); - } - } - } - return clonedNode; - }; -}; -const patchSlotAppendChild = (HostElementPrototype) => { - HostElementPrototype.__appendChild = HostElementPrototype.appendChild; - HostElementPrototype.appendChild = function (newChild) { - const slotName = (newChild['s-sn'] = getSlotName(newChild)); - const slotNode = getHostSlotNode(this.childNodes, slotName); - if (slotNode) { - const slotChildNodes = getHostSlotChildNodes(slotNode, slotName); - const appendAfter = slotChildNodes[slotChildNodes.length - 1]; - return appendAfter.parentNode.insertBefore(newChild, appendAfter.nextSibling); - } - return this.__appendChild(newChild); - }; -}; -/** - * Patches the text content of an unnamed slotted node inside a scoped component - * @param hostElementPrototype the `Element` to be patched - * @param cmpMeta component runtime metadata used to determine if the component should be patched or not - */ -const patchTextContent = (hostElementPrototype, cmpMeta) => { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.scoped && cmpMeta.$flags$ & 2 /* CMP_FLAGS.scopedCssEncapsulation */) { - const descriptor = Object.getOwnPropertyDescriptor(Node.prototype, 'textContent'); - Object.defineProperty(hostElementPrototype, '__textContent', descriptor); - Object.defineProperty(hostElementPrototype, 'textContent', { - get() { - var _a; - // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is - // the empty string - const slotNode = getHostSlotNode(this.childNodes, ''); - // when a slot node is found, the textContent _may_ be found in the next sibling (text) node, depending on how - // nodes were reordered during the vdom render. first try to get the text content from the sibling. - if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) { - return slotNode.nextSibling.textContent; - } - else if (slotNode) { - return slotNode.textContent; - } - else { - // fallback to the original implementation - return this.__textContent; - } - }, - set(value) { - var _a; - // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is - // the empty string - const slotNode = getHostSlotNode(this.childNodes, ''); - // when a slot node is found, the textContent _may_ need to be placed in the next sibling (text) node, - // depending on how nodes were reordered during the vdom render. first try to set the text content on the - // sibling. - if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) { - slotNode.nextSibling.textContent = value; - } - else if (slotNode) { - slotNode.textContent = value; - } - else { - // we couldn't find a slot, but that doesn't mean that there isn't one. if this check ran before the DOM - // loaded, we could have missed it. check for a content reference element on the scoped component and insert - // it there - this.__textContent = value; - const contentRefElm = this['s-cr']; - if (contentRefElm) { - this.insertBefore(contentRefElm, this.firstChild); - } - } - }, - }); - } -}; -const patchChildSlotNodes = (elm, cmpMeta) => { - class FakeNodeList extends Array { - item(n) { - return this[n]; - } - } - if (cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) { - const childNodesFn = elm.__lookupGetter__('childNodes'); - Object.defineProperty(elm, 'children', { - get() { - return this.childNodes.map((n) => n.nodeType === 1); - }, - }); - Object.defineProperty(elm, 'childElementCount', { - get() { - return elm.children.length; - }, - }); - Object.defineProperty(elm, 'childNodes', { - get() { - const childNodes = childNodesFn.call(this); - if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0 && - getHostRef(this).$flags$ & 2 /* HOST_FLAGS.hasRendered */) { - const result = new FakeNodeList(); - for (let i = 0; i < childNodes.length; i++) { - const slot = childNodes[i]['s-nr']; - if (slot) { - result.push(slot); - } - } - return result; - } - return FakeNodeList.from(childNodes); - }, - }); - } -}; -const getSlotName = (node) => node['s-sn'] || (node.nodeType === 1 && node.getAttribute('slot')) || ''; -/** - * Recursively searches a series of child nodes for a slot with the provided name. - * @param childNodes the nodes to search for a slot with a specific name. - * @param slotName the name of the slot to match on. - * @returns a reference to the slot node that matches the provided name, `null` otherwise - */ -const getHostSlotNode = (childNodes, slotName) => { - let i = 0; - let childNode; - for (; i < childNodes.length; i++) { - childNode = childNodes[i]; - if (childNode['s-sr'] && childNode['s-sn'] === slotName) { - return childNode; - } - childNode = getHostSlotNode(childNode.childNodes, slotName); - if (childNode) { - return childNode; - } - } - return null; -}; -const getHostSlotChildNodes = (n, slotName) => { - const childNodes = [n]; - while ((n = n.nextSibling) && n['s-sn'] === slotName) { - childNodes.push(n); - } - return childNodes; -}; -const hmrStart = (elm, cmpMeta, hmrVersionId) => { - // ¯\_(ツ)_/¯ - const hostRef = getHostRef(elm); - // reset state flags to only have been connected - hostRef.$flags$ = 1 /* HOST_FLAGS.hasConnected */; - // TODO - // detatch any event listeners that may have been added - // because we're not passing an exact event name it'll - // remove all of this element's event, which is good - // create a callback for when this component finishes hmr - elm['s-hmr-load'] = () => { - // finished hmr for this element - delete elm['s-hmr-load']; - }; - // re-initialize the component - initializeComponent(elm, hostRef, cmpMeta, hmrVersionId); -}; -const bootstrapLazy = (lazyBundles, options = {}) => { - var _a; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.profile && performance.mark) { - performance.mark('st:app:start'); - } - installDevTools(); - const endBootstrap = createTime('bootstrapLazy'); - const cmpTags = []; - const exclude = options.exclude || []; - const customElements = win.customElements; - const head = doc.head; - const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]'); - const visibilityStyle = /*@__PURE__*/ doc.createElement('style'); - const deferredConnectedCallbacks = []; - const styles = /*@__PURE__*/ doc.querySelectorAll(`[${HYDRATED_STYLE_ID}]`); - let appLoadFallback; - let isBootstrapping = true; - let i = 0; - Object.assign(plt, options); - plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.asyncQueue) { - if (options.syncQueue) { - plt.$flags$ |= 4 /* PLATFORM_FLAGS.queueSync */; - } - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateClientSide) { - // If the app is already hydrated there is not point to disable the - // async queue. This will improve the first input delay - plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateClientSide && _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom) { - for (; i < styles.length; i++) { - registerStyle(styles[i].getAttribute(HYDRATED_STYLE_ID), convertScopedToShadow(styles[i].innerHTML), true); - } - } - lazyBundles.map((lazyBundle) => { - lazyBundle[1].map((compactMeta) => { - const cmpMeta = { - $flags$: compactMeta[0], - $tagName$: compactMeta[1], - $members$: compactMeta[2], - $listeners$: compactMeta[3], - }; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.member) { - cmpMeta.$members$ = compactMeta[2]; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hostListener) { - cmpMeta.$listeners$ = compactMeta[3]; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.reflect) { - cmpMeta.$attrsToReflect$ = []; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.watchCallback) { - cmpMeta.$watchers$ = {}; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) { - cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */; - } - const tagName = _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.transformTagName && options.transformTagName - ? options.transformTagName(cmpMeta.$tagName$) - : cmpMeta.$tagName$; - const HostElement = class extends HTMLElement { - // StencilLazyHost - constructor(self) { - // @ts-ignore - super(self); - self = this; - registerHost(self, cmpMeta); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) { - // this component is using shadow dom - // and this browser supports shadow dom - // add the read-only property "shadowRoot" to the host element - // adding the shadow root build conditionals to minimize runtime - if (supportsShadow) { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDelegatesFocus) { - self.attachShadow({ - mode: 'open', - delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */), - }); - } - else { - self.attachShadow({ mode: 'open' }); - } - } - else if (!_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide && !('shadowRoot' in self)) { - self.shadowRoot = self; - } - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.slotChildNodesFix) { - patchChildSlotNodes(self, cmpMeta); - } - } - connectedCallback() { - if (appLoadFallback) { - clearTimeout(appLoadFallback); - appLoadFallback = null; - } - if (isBootstrapping) { - // connectedCallback will be processed once all components have been registered - deferredConnectedCallbacks.push(this); - } - else { - plt.jmp(() => connectedCallback(this)); - } - } - disconnectedCallback() { - plt.jmp(() => disconnectedCallback(this)); - } - componentOnReady() { - return getHostRef(this).$onReadyPromise$; - } - }; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.cloneNodeFix) { - patchCloneNode(HostElement.prototype); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.appendChildSlotFix) { - patchSlotAppendChild(HostElement.prototype); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hotModuleReplacement) { - HostElement.prototype['s-hmr'] = function (hmrVersionId) { - hmrStart(this, cmpMeta, hmrVersionId); - }; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.scopedSlotTextContentFix) { - patchTextContent(HostElement.prototype, cmpMeta); - } - cmpMeta.$lazyBundleId$ = lazyBundle[0]; - if (!exclude.includes(tagName) && !customElements.get(tagName)) { - cmpTags.push(tagName); - customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */)); - } - }); - }); - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.invisiblePrehydration && (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydratedClass || _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydratedAttribute)) { - visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS; - visibilityStyle.setAttribute('data-styles', ''); - // Apply CSP nonce to the style tag if it exists - const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc); - if (nonce != null) { - visibilityStyle.setAttribute('nonce', nonce); - } - head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild); - } - // Process deferred connectedCallbacks now all components have been registered - isBootstrapping = false; - if (deferredConnectedCallbacks.length) { - deferredConnectedCallbacks.map((host) => host.connectedCallback()); - } - else { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.profile) { - plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30, 'timeout'))); - } - else { - plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30))); - } - } - // Fallback appLoad event - endBootstrap(); -}; -const getConnect = (_ref, tagName) => { - const componentOnReady = () => { - let elm = doc.querySelector(tagName); - if (!elm) { - elm = doc.createElement(tagName); - doc.body.appendChild(elm); - } - return typeof elm.componentOnReady === 'function' ? elm.componentOnReady() : Promise.resolve(elm); - }; - const create = (...args) => { - return componentOnReady().then((el) => el.create(...args)); - }; - return { - create, - componentOnReady, - }; -}; -const getContext = (_elm, context) => { - if (context in Context) { - return Context[context]; - } - else if (context === 'window') { - return win; - } - else if (context === 'document') { - return doc; - } - else if (context === 'isServer' || context === 'isPrerender') { - return _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide ? true : false; - } - else if (context === 'isClient') { - return _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hydrateServerSide ? false : true; - } - else if (context === 'resourcesUrl' || context === 'publicPath') { - return getAssetPath('.'); - } - else if (context === 'queue') { - return { - write: writeTask, - read: readTask, - tick: { - then(cb) { - return nextTick(cb); - }, - }, - }; - } - return undefined; -}; -const Fragment = (_, children) => children; -const addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hostListener && listeners) { - // this is called immediately within the element's constructor - // initialize our event listeners on the host element - // we do this now so that we can listen to events that may - // have fired even before the instance is ready - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hostListenerTargetParent) { - // this component may have event listeners that should be attached to the parent - if (attachParentListeners) { - // this is being ran from within the connectedCallback - // which is important so that we know the host element actually has a parent element - // filter out the listeners to only have the ones that ARE being attached to the parent - listeners = listeners.filter(([flags]) => flags & 32 /* LISTENER_FLAGS.TargetParent */); - } - else { - // this is being ran from within the component constructor - // everything BUT the parent element listeners should be attached at this time - // filter out the listeners that are NOT being attached to the parent - listeners = listeners.filter(([flags]) => !(flags & 32 /* LISTENER_FLAGS.TargetParent */)); - } - } - listeners.map(([flags, name, method]) => { - const target = _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hostListenerTarget ? getHostListenerTarget(elm, flags) : elm; - const handler = hostListenerProxy(hostRef, method); - const opts = hostListenerOpts(flags); - plt.ael(target, name, handler, opts); - (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts)); - }); - } -}; -const hostListenerProxy = (hostRef, methodName) => (ev) => { - try { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.lazyLoad) { - if (hostRef.$flags$ & 256 /* HOST_FLAGS.isListenReady */) { - // instance is ready, let's call it's member method for this event - hostRef.$lazyInstance$[methodName](ev); - } - else { - (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]); - } - } - else { - hostRef.$hostElement$[methodName](ev); - } - } - catch (e) { - consoleError(e); - } -}; -const getHostListenerTarget = (elm, flags) => { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hostListenerTargetDocument && flags & 4 /* LISTENER_FLAGS.TargetDocument */) - return doc; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hostListenerTargetWindow && flags & 8 /* LISTENER_FLAGS.TargetWindow */) - return win; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hostListenerTargetBody && flags & 16 /* LISTENER_FLAGS.TargetBody */) - return doc.body; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hostListenerTargetParent && flags & 32 /* LISTENER_FLAGS.TargetParent */) - return elm.parentElement; - return elm; -}; -// prettier-ignore -const hostListenerOpts = (flags) => supportsListenerOptions - ? ({ - passive: (flags & 1 /* LISTENER_FLAGS.Passive */) !== 0, - capture: (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0, - }) - : (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0; -/** - * Assigns the given value to the nonce property on the runtime platform object. - * During runtime, this value is used to set the nonce attribute on all dynamically created script and style tags. - * @param nonce The value to be assigned to the platform nonce property. - * @returns void - */ -const setNonce = (nonce) => (plt.$nonce$ = nonce); -const setPlatformOptions = (opts) => Object.assign(plt, opts); -const insertVdomAnnotations = (doc, staticComponents) => { - if (doc != null) { - const docData = { - hostIds: 0, - rootLevelIds: 0, - staticComponents: new Set(staticComponents), - }; - const orgLocationNodes = []; - parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes); - orgLocationNodes.forEach((orgLocationNode) => { - if (orgLocationNode != null) { - const nodeRef = orgLocationNode['s-nr']; - let hostId = nodeRef['s-host-id']; - let nodeId = nodeRef['s-node-id']; - let childId = `${hostId}.${nodeId}`; - if (hostId == null) { - hostId = 0; - docData.rootLevelIds++; - nodeId = docData.rootLevelIds; - childId = `${hostId}.${nodeId}`; - if (nodeRef.nodeType === 1 /* NODE_TYPE.ElementNode */) { - nodeRef.setAttribute(HYDRATE_CHILD_ID, childId); - } - else if (nodeRef.nodeType === 3 /* NODE_TYPE.TextNode */) { - if (hostId === 0) { - const textContent = nodeRef.nodeValue.trim(); - if (textContent === '') { - // useless whitespace node at the document root - orgLocationNode.remove(); - return; - } - } - const commentBeforeTextNode = doc.createComment(childId); - commentBeforeTextNode.nodeValue = `${TEXT_NODE_ID}.${childId}`; - nodeRef.parentNode.insertBefore(commentBeforeTextNode, nodeRef); - } - } - let orgLocationNodeId = `${ORG_LOCATION_ID}.${childId}`; - const orgLocationParentNode = orgLocationNode.parentElement; - if (orgLocationParentNode) { - if (orgLocationParentNode['s-en'] === '') { - // ending with a "." means that the parent element - // of this node's original location is a SHADOW dom element - // and this node is apart of the root level light dom - orgLocationNodeId += `.`; - } - else if (orgLocationParentNode['s-en'] === 'c') { - // ending with a ".c" means that the parent element - // of this node's original location is a SCOPED element - // and this node is apart of the root level light dom - orgLocationNodeId += `.c`; - } - } - orgLocationNode.nodeValue = orgLocationNodeId; - } - }); - } -}; -const parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => { - if (node == null) { - return; - } - if (node['s-nr'] != null) { - orgLocationNodes.push(node); - } - if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) { - node.childNodes.forEach((childNode) => { - const hostRef = getHostRef(childNode); - if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) { - const cmpData = { - nodeIds: 0, - }; - insertVNodeAnnotations(doc, childNode, hostRef.$vnode$, docData, cmpData); - } - parseVNodeAnnotations(doc, childNode, docData, orgLocationNodes); - }); - } -}; -const insertVNodeAnnotations = (doc, hostElm, vnode, docData, cmpData) => { - if (vnode != null) { - const hostId = ++docData.hostIds; - hostElm.setAttribute(HYDRATE_ID, hostId); - if (hostElm['s-cr'] != null) { - hostElm['s-cr'].nodeValue = `${CONTENT_REF_ID}.${hostId}`; - } - if (vnode.$children$ != null) { - const depth = 0; - vnode.$children$.forEach((vnodeChild, index) => { - insertChildVNodeAnnotations(doc, vnodeChild, cmpData, hostId, depth, index); - }); - } - if (hostElm && vnode && vnode.$elm$ && !hostElm.hasAttribute('c-id')) { - const parent = hostElm.parentElement; - if (parent && parent.childNodes) { - const parentChildNodes = Array.from(parent.childNodes); - const comment = parentChildNodes.find((node) => node.nodeType === 8 /* NODE_TYPE.CommentNode */ && node['s-sr']); - if (comment) { - const index = parentChildNodes.indexOf(hostElm) - 1; - vnode.$elm$.setAttribute(HYDRATE_CHILD_ID, `${comment['s-host-id']}.${comment['s-node-id']}.0.${index}`); - } - } - } - } -}; -const insertChildVNodeAnnotations = (doc, vnodeChild, cmpData, hostId, depth, index) => { - const childElm = vnodeChild.$elm$; - if (childElm == null) { - return; - } - const nodeId = cmpData.nodeIds++; - const childId = `${hostId}.${nodeId}.${depth}.${index}`; - childElm['s-host-id'] = hostId; - childElm['s-node-id'] = nodeId; - if (childElm.nodeType === 1 /* NODE_TYPE.ElementNode */) { - childElm.setAttribute(HYDRATE_CHILD_ID, childId); - } - else if (childElm.nodeType === 3 /* NODE_TYPE.TextNode */) { - const parentNode = childElm.parentNode; - const nodeName = parentNode.nodeName; - if (nodeName !== 'STYLE' && nodeName !== 'SCRIPT') { - const textNodeId = `${TEXT_NODE_ID}.${childId}`; - const commentBeforeTextNode = doc.createComment(textNodeId); - parentNode.insertBefore(commentBeforeTextNode, childElm); - } - } - else if (childElm.nodeType === 8 /* NODE_TYPE.CommentNode */) { - if (childElm['s-sr']) { - const slotName = childElm['s-sn'] || ''; - const slotNodeId = `${SLOT_NODE_ID}.${childId}.${slotName}`; - childElm.nodeValue = slotNodeId; - } - } - if (vnodeChild.$children$ != null) { - const childDepth = depth + 1; - vnodeChild.$children$.forEach((vnode, index) => { - insertChildVNodeAnnotations(doc, vnode, cmpData, hostId, childDepth, index); - }); - } -}; -const hostRefs = /*@__PURE__*/ new WeakMap(); -const getHostRef = (ref) => hostRefs.get(ref); -const registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef); -const registerHost = (elm, cmpMeta) => { - const hostRef = { - $flags$: 0, - $hostElement$: elm, - $cmpMeta$: cmpMeta, - $instanceValues$: new Map(), - }; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDev) { - hostRef.$renderCount$ = 0; - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.method && _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.lazyLoad) { - hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r)); - } - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.asyncLoading) { - hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r)); - elm['s-p'] = []; - elm['s-rc'] = []; - } - addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false); - return hostRefs.set(elm, hostRef); -}; -const isMemberInElement = (elm, memberName) => memberName in elm; -const consoleError = (e, el) => (customError || console.error)(e, el); -const STENCIL_DEV_MODE = _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isTesting - ? ['STENCIL:'] // E2E testing - : [ - '%cstencil', - 'color: white;background:#4c47ff;font-weight: bold; font-size:10px; padding:2px 6px; border-radius: 5px', - ]; -const consoleDevError = (...m) => console.error(...STENCIL_DEV_MODE, ...m); -const consoleDevWarn = (...m) => console.warn(...STENCIL_DEV_MODE, ...m); -const consoleDevInfo = (...m) => console.info(...STENCIL_DEV_MODE, ...m); -const setErrorHandler = (handler) => (customError = handler); -const cmpModules = /*@__PURE__*/ new Map(); -const loadModule = (cmpMeta, hostRef, hmrVersionId) => { - // loadModuleImport - const exportName = cmpMeta.$tagName$.replace(/-/g, '_'); - const bundleId = cmpMeta.$lazyBundleId$; - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.isDev && typeof bundleId !== 'string') { - consoleDevError(`Trying to lazily load component <${cmpMeta.$tagName$}> with style mode "${hostRef.$modeName$}", but it does not exist.`); - return undefined; - } - const module = !_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hotModuleReplacement ? cmpModules.get(bundleId) : false; - if (module) { - return module[exportName]; - } - /*!__STENCIL_STATIC_IMPORT_SWITCH__*/ - return __webpack_require__("./node_modules/@stencil/core/internal/client lazy recursive ^\\.\\/.*\\.entry\\.js.*$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$")(`./${bundleId}.entry.js${_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hotModuleReplacement && hmrVersionId ? '?s-hmr=' + hmrVersionId : ''}`).then((importedModule) => { - if (!_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.hotModuleReplacement) { - cmpModules.set(bundleId, importedModule); - } - return importedModule[exportName]; - }, consoleError); -}; -const styles = /*@__PURE__*/ new Map(); -const modeResolutionChain = []; -const win = typeof window !== 'undefined' ? window : {}; -const CSS = _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.cssVarShim ? win.CSS : null; -const doc = win.document || { head: {} }; -const H = (win.HTMLElement || class { -}); -const plt = { - $flags$: 0, - $resourcesUrl$: '', - jmp: (h) => h(), - raf: (h) => requestAnimationFrame(h), - ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts), - rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts), - ce: (eventName, opts) => new CustomEvent(eventName, opts), -}; -const setPlatformHelpers = (helpers) => { - Object.assign(plt, helpers); -}; -const supportsShadow = _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDomShim && _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.shadowDom - ? /*@__PURE__*/ (() => (doc.head.attachShadow + '').indexOf('[native') > -1)() - : true; -const supportsListenerOptions = /*@__PURE__*/ (() => { - let supportsListenerOptions = false; - try { - doc.addEventListener('e', null, Object.defineProperty({}, 'passive', { - get() { - supportsListenerOptions = true; - }, - })); - } - catch (e) { } - return supportsListenerOptions; -})(); -const promiseResolve = (v) => Promise.resolve(v); -const supportsConstructableStylesheets = _stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.constructableCSS - ? /*@__PURE__*/ (() => { - try { - new CSSStyleSheet(); - return typeof new CSSStyleSheet().replaceSync === 'function'; - } - catch (e) { } - return false; - })() - : false; -const queueDomReads = []; -const queueDomWrites = []; -const queueDomWritesLow = []; -const queueTask = (queue, write) => (cb) => { - queue.push(cb); - if (!queuePending) { - queuePending = true; - if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) { - nextTick(flush); - } - else { - plt.raf(flush); - } - } -}; -const consume = (queue) => { - for (let i = 0; i < queue.length; i++) { - try { - queue[i](performance.now()); - } - catch (e) { - consoleError(e); - } - } - queue.length = 0; -}; -const consumeTimeout = (queue, timeout) => { - let i = 0; - let ts = 0; - while (i < queue.length && (ts = performance.now()) < timeout) { - try { - queue[i++](ts); - } - catch (e) { - consoleError(e); - } - } - if (i === queue.length) { - queue.length = 0; - } - else if (i !== 0) { - queue.splice(0, i); - } -}; -const flush = () => { - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.asyncQueue) { - queueCongestion++; - } - // always force a bunch of medium callbacks to run, but still have - // a throttle on how many can run in a certain time - // DOM READS!!! - consume(queueDomReads); - // DOM WRITES!!! - if (_stencil_core_internal_app_data__WEBPACK_IMPORTED_MODULE_0__.BUILD.asyncQueue) { - const timeout = (plt.$flags$ & 6 /* PLATFORM_FLAGS.queueMask */) === 2 /* PLATFORM_FLAGS.appLoaded */ - ? performance.now() + 14 * Math.ceil(queueCongestion * (1.0 / 10.0)) - : Infinity; - consumeTimeout(queueDomWrites, timeout); - consumeTimeout(queueDomWritesLow, timeout); - if (queueDomWrites.length > 0) { - queueDomWritesLow.push(...queueDomWrites); - queueDomWrites.length = 0; - } - if ((queuePending = queueDomReads.length + queueDomWrites.length + queueDomWritesLow.length > 0)) { - // still more to do yet, but we've run out of time - // let's let this thing cool off and try again in the next tick - plt.raf(flush); - } - else { - queueCongestion = 0; - } - } - else { - consume(queueDomWrites); - if ((queuePending = queueDomReads.length > 0)) { - // still more to do yet, but we've run out of time - // let's let this thing cool off and try again in the next tick - plt.raf(flush); - } - } -}; -const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb); -const readTask = /*@__PURE__*/ queueTask(queueDomReads, false); -const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true); - - - - -/***/ }), - -/***/ "./node_modules/focus-trap/dist/focus-trap.esm.js": -/*!********************************************************!*\ - !*** ./node_modules/focus-trap/dist/focus-trap.esm.js ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "createFocusTrap": () => (/* binding */ createFocusTrap) -/* harmony export */ }); -/* harmony import */ var tabbable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tabbable */ "./node_modules/tabbable/dist/index.esm.js"); -/*! -* focus-trap 7.4.3 -* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE -*/ - - -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); - } - return keys; -} -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { - _defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - return target; -} -function _defineProperty(obj, key, value) { - key = _toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; -} -function _toPrimitive(input, hint) { - if (typeof input !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (typeof res !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} -function _toPropertyKey(arg) { - var key = _toPrimitive(arg, "string"); - return typeof key === "symbol" ? key : String(key); -} - -var activeFocusTraps = { - activateTrap: function activateTrap(trapStack, trap) { - if (trapStack.length > 0) { - var activeTrap = trapStack[trapStack.length - 1]; - if (activeTrap !== trap) { - activeTrap.pause(); - } - } - var trapIndex = trapStack.indexOf(trap); - if (trapIndex === -1) { - trapStack.push(trap); - } else { - // move this existing trap to the front of the queue - trapStack.splice(trapIndex, 1); - trapStack.push(trap); - } - }, - deactivateTrap: function deactivateTrap(trapStack, trap) { - var trapIndex = trapStack.indexOf(trap); - if (trapIndex !== -1) { - trapStack.splice(trapIndex, 1); - } - if (trapStack.length > 0) { - trapStack[trapStack.length - 1].unpause(); - } - } -}; -var isSelectableInput = function isSelectableInput(node) { - return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function'; -}; -var isEscapeEvent = function isEscapeEvent(e) { - return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27; -}; -var isTabEvent = function isTabEvent(e) { - return e.key === 'Tab' || e.keyCode === 9; -}; - -// checks for TAB by default -var isKeyForward = function isKeyForward(e) { - return isTabEvent(e) && !e.shiftKey; -}; - -// checks for SHIFT+TAB by default -var isKeyBackward = function isKeyBackward(e) { - return isTabEvent(e) && e.shiftKey; -}; -var delay = function delay(fn) { - return setTimeout(fn, 0); -}; - -// Array.find/findIndex() are not supported on IE; this replicates enough -// of Array.findIndex() for our needs -var findIndex = function findIndex(arr, fn) { - var idx = -1; - arr.every(function (value, i) { - if (fn(value)) { - idx = i; - return false; // break - } - - return true; // next - }); - - return idx; -}; - -/** - * Get an option's value when it could be a plain value, or a handler that provides - * the value. - * @param {*} value Option's value to check. - * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function. - * @returns {*} The `value`, or the handler's returned value. - */ -var valueOrHandler = function valueOrHandler(value) { - for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - params[_key - 1] = arguments[_key]; - } - return typeof value === 'function' ? value.apply(void 0, params) : value; -}; -var getActualTarget = function getActualTarget(event) { - // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the - // shadow host. However, event.target.composedPath() will be an array of - // nodes "clicked" from inner-most (the actual element inside the shadow) to - // outer-most (the host HTML document). If we have access to composedPath(), - // then use its first element; otherwise, fall back to event.target (and - // this only works for an _open_ shadow DOM; otherwise, - // composedPath()[0] === event.target always). - return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target; -}; - -// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this -// current instance use the same stack if `userOptions.trapStack` isn't specified -var internalTrapStack = []; -var createFocusTrap = function createFocusTrap(elements, userOptions) { - // SSR: a live trap shouldn't be created in this type of environment so this - // should be safe code to execute if the `document` option isn't specified - var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document; - var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack; - var config = _objectSpread2({ - returnFocusOnDeactivate: true, - escapeDeactivates: true, - delayInitialFocus: true, - isKeyForward: isKeyForward, - isKeyBackward: isKeyBackward - }, userOptions); - var state = { - // containers given to createFocusTrap() - // @type {Array} - containers: [], - // list of objects identifying tabbable nodes in `containers` in the trap - // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap - // is active, but the trap should never get to a state where there isn't at least one group - // with at least one tabbable node in it (that would lead to an error condition that would - // result in an error being thrown) - // @type {Array<{ - // container: HTMLElement, - // tabbableNodes: Array, // empty if none - // focusableNodes: Array, // empty if none - // firstTabbableNode: HTMLElement|null, - // lastTabbableNode: HTMLElement|null, - // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined - // }>} - containerGroups: [], - // same order/length as `containers` list - - // references to objects in `containerGroups`, but only those that actually have - // tabbable nodes in them - // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__ - // the same length - tabbableGroups: [], - nodeFocusedBeforeActivation: null, - mostRecentlyFocusedNode: null, - active: false, - paused: false, - // timer ID for when delayInitialFocus is true and initial focus in this trap - // has been delayed during activation - delayInitialFocusTimer: undefined - }; - var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later - - /** - * Gets a configuration option value. - * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set, - * value will be taken from this object. Otherwise, value will be taken from base configuration. - * @param {string} optionName Name of the option whose value is sought. - * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName` - * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used. - */ - var getOption = function getOption(configOverrideOptions, optionName, configOptionName) { - return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName]; - }; - - /** - * Finds the index of the container that contains the element. - * @param {HTMLElement} element - * @param {Event} [event] - * @returns {number} Index of the container in either `state.containers` or - * `state.containerGroups` (the order/length of these lists are the same); -1 - * if the element isn't found. - */ - var findContainerIndex = function findContainerIndex(element, event) { - var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined; - // NOTE: search `containerGroups` because it's possible a group contains no tabbable - // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`) - // and we still need to find the element in there - return state.containerGroups.findIndex(function (_ref) { - var container = _ref.container, - tabbableNodes = _ref.tabbableNodes; - return container.contains(element) || ( // fall back to explicit tabbable search which will take into consideration any - // web components if the `tabbableOptions.getShadowRoot` option was used for - // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't - // look inside web components even if open) - composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) { - return node === element; - }); - }); - }; - - /** - * Gets the node for the given option, which is expected to be an option that - * can be either a DOM node, a string that is a selector to get a node, `false` - * (if a node is explicitly NOT given), or a function that returns any of these - * values. - * @param {string} optionName - * @returns {undefined | false | HTMLElement | SVGElement} Returns - * `undefined` if the option is not specified; `false` if the option - * resolved to `false` (node explicitly not given); otherwise, the resolved - * DOM node. - * @throws {Error} If the option is set, not `false`, and is not, or does not - * resolve to a node. - */ - var getNodeForOption = function getNodeForOption(optionName) { - var optionValue = config[optionName]; - if (typeof optionValue === 'function') { - for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - params[_key2 - 1] = arguments[_key2]; - } - optionValue = optionValue.apply(void 0, params); - } - if (optionValue === true) { - optionValue = undefined; // use default value - } - - if (!optionValue) { - if (optionValue === undefined || optionValue === false) { - return optionValue; - } - // else, empty string (invalid), null (invalid), 0 (invalid) - - throw new Error("`".concat(optionName, "` was specified but was not a node, or did not return a node")); - } - var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point - - if (typeof optionValue === 'string') { - node = doc.querySelector(optionValue); // resolve to node, or null if fails - if (!node) { - throw new Error("`".concat(optionName, "` as selector refers to no known node")); - } - } - return node; - }; - var getInitialFocusNode = function getInitialFocusNode() { - var node = getNodeForOption('initialFocus'); - - // false explicitly indicates we want no initialFocus at all - if (node === false) { - return false; - } - if (node === undefined || !(0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isFocusable)(node, config.tabbableOptions)) { - // option not specified nor focusable: use fallback options - if (findContainerIndex(doc.activeElement) >= 0) { - node = doc.activeElement; - } else { - var firstTabbableGroup = state.tabbableGroups[0]; - var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; - - // NOTE: `fallbackFocus` option function cannot return `false` (not supported) - node = firstTabbableNode || getNodeForOption('fallbackFocus'); - } - } - if (!node) { - throw new Error('Your focus-trap needs to have at least one focusable element'); - } - return node; - }; - var updateTabbableNodes = function updateTabbableNodes() { - state.containerGroups = state.containers.map(function (container) { - var tabbableNodes = (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.tabbable)(container, config.tabbableOptions); - - // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes - // are a superset of tabbable nodes - var focusableNodes = (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.focusable)(container, config.tabbableOptions); - return { - container: container, - tabbableNodes: tabbableNodes, - focusableNodes: focusableNodes, - firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null, - lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null, - /** - * Finds the __tabbable__ node that follows the given node in the specified direction, - * in this container, if any. - * @param {HTMLElement} node - * @param {boolean} [forward] True if going in forward tab order; false if going - * in reverse. - * @returns {HTMLElement|undefined} The next tabbable node, if any. - */ - nextTabbableNode: function nextTabbableNode(node) { - var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - // NOTE: If tabindex is positive (in order to manipulate the tab order separate - // from the DOM order), this __will not work__ because the list of focusableNodes, - // while it contains tabbable nodes, does not sort its nodes in any order other - // than DOM order, because it can't: Where would you place focusable (but not - // tabbable) nodes in that order? They have no order, because they aren't tabbale... - // Support for positive tabindex is already broken and hard to manage (possibly - // not supportable, TBD), so this isn't going to make things worse than they - // already are, and at least makes things better for the majority of cases where - // tabindex is either 0/unset or negative. - // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375 - var nodeIdx = focusableNodes.findIndex(function (n) { - return n === node; - }); - if (nodeIdx < 0) { - return undefined; - } - if (forward) { - return focusableNodes.slice(nodeIdx + 1).find(function (n) { - return (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isTabbable)(n, config.tabbableOptions); - }); - } - return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) { - return (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isTabbable)(n, config.tabbableOptions); - }); - } - }; - }); - state.tabbableGroups = state.containerGroups.filter(function (group) { - return group.tabbableNodes.length > 0; - }); - - // throw if no groups have tabbable nodes and we don't have a fallback focus node either - if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option - ) { - throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times'); - } - }; - var tryFocus = function tryFocus(node) { - if (node === false) { - return; - } - if (node === doc.activeElement) { - return; - } - if (!node || !node.focus) { - tryFocus(getInitialFocusNode()); - return; - } - node.focus({ - preventScroll: !!config.preventScroll - }); - state.mostRecentlyFocusedNode = node; - if (isSelectableInput(node)) { - node.select(); - } - }; - var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) { - var node = getNodeForOption('setReturnFocus', previousActiveElement); - return node ? node : node === false ? false : previousActiveElement; - }; - - // This needs to be done on mousedown and touchstart instead of click - // so that it precedes the focus event. - var checkPointerDown = function checkPointerDown(e) { - var target = getActualTarget(e); - if (findContainerIndex(target, e) >= 0) { - // allow the click since it ocurred inside the trap - return; - } - if (valueOrHandler(config.clickOutsideDeactivates, e)) { - // immediately deactivate the trap - trap.deactivate({ - // NOTE: by setting `returnFocus: false`, deactivate() will do nothing, - // which will result in the outside click setting focus to the node - // that was clicked (and if not focusable, to "nothing"); by setting - // `returnFocus: true`, we'll attempt to re-focus the node originally-focused - // on activation (or the configured `setReturnFocus` node), whether the - // outside click was on a focusable node or not - returnFocus: config.returnFocusOnDeactivate - }); - return; - } - - // This is needed for mobile devices. - // (If we'll only let `click` events through, - // then on mobile they will be blocked anyways if `touchstart` is blocked.) - if (valueOrHandler(config.allowOutsideClick, e)) { - // allow the click outside the trap to take place - return; - } - - // otherwise, prevent the click - e.preventDefault(); - }; - - // In case focus escapes the trap for some strange reason, pull it back in. - var checkFocusIn = function checkFocusIn(e) { - var target = getActualTarget(e); - var targetContained = findContainerIndex(target, e) >= 0; - - // In Firefox when you Tab out of an iframe the Document is briefly focused. - if (targetContained || target instanceof Document) { - if (targetContained) { - state.mostRecentlyFocusedNode = target; - } - } else { - // escaped! pull it back in to where it just left - e.stopImmediatePropagation(); - tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode()); - } - }; - - // Hijack key nav events on the first and last focusable nodes of the trap, - // in order to prevent focus from escaping. If it escapes for even a - // moment it can end up scrolling the page and causing confusion so we - // kind of need to capture the action at the keydown phase. - var checkKeyNav = function checkKeyNav(event) { - var isBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var target = getActualTarget(event); - updateTabbableNodes(); - var destinationNode = null; - if (state.tabbableGroups.length > 0) { - // make sure the target is actually contained in a group - // NOTE: the target may also be the container itself if it's focusable - // with tabIndex='-1' and was given initial focus - var containerIndex = findContainerIndex(target, event); - var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined; - if (containerIndex < 0) { - // target not found in any group: quite possible focus has escaped the trap, - // so bring it back into... - if (isBackward) { - // ...the last node in the last group - destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode; - } else { - // ...the first node in the first group - destinationNode = state.tabbableGroups[0].firstTabbableNode; - } - } else if (isBackward) { - // REVERSE - - // is the target the first tabbable node in a group? - var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) { - var firstTabbableNode = _ref2.firstTabbableNode; - return target === firstTabbableNode; - }); - if (startOfGroupIndex < 0 && (containerGroup.container === target || (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isFocusable)(target, config.tabbableOptions) && !(0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isTabbable)(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) { - // an exception case where the target is either the container itself, or - // a non-tabbable node that was given focus (i.e. tabindex is negative - // and user clicked on it or node was programmatically given focus) - // and is not followed by any other tabbable node, in which - // case, we should handle shift+tab as if focus were on the container's - // first tabbable node, and go to the last tabbable node of the LAST group - startOfGroupIndex = containerIndex; - } - if (startOfGroupIndex >= 0) { - // YES: then shift+tab should go to the last tabbable node in the - // previous group (and wrap around to the last tabbable node of - // the LAST group if it's the first tabbable node of the FIRST group) - var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1; - var destinationGroup = state.tabbableGroups[destinationGroupIndex]; - destinationNode = destinationGroup.lastTabbableNode; - } else if (!isTabEvent(event)) { - // user must have customized the nav keys so we have to move focus manually _within_ - // the active group: do this based on the order determined by tabbable() - destinationNode = containerGroup.nextTabbableNode(target, false); - } - } else { - // FORWARD - - // is the target the last tabbable node in a group? - var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) { - var lastTabbableNode = _ref3.lastTabbableNode; - return target === lastTabbableNode; - }); - if (lastOfGroupIndex < 0 && (containerGroup.container === target || (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isFocusable)(target, config.tabbableOptions) && !(0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isTabbable)(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) { - // an exception case where the target is the container itself, or - // a non-tabbable node that was given focus (i.e. tabindex is negative - // and user clicked on it or node was programmatically given focus) - // and is not followed by any other tabbable node, in which - // case, we should handle tab as if focus were on the container's - // last tabbable node, and go to the first tabbable node of the FIRST group - lastOfGroupIndex = containerIndex; - } - if (lastOfGroupIndex >= 0) { - // YES: then tab should go to the first tabbable node in the next - // group (and wrap around to the first tabbable node of the FIRST - // group if it's the last tabbable node of the LAST group) - var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1; - var _destinationGroup = state.tabbableGroups[_destinationGroupIndex]; - destinationNode = _destinationGroup.firstTabbableNode; - } else if (!isTabEvent(event)) { - // user must have customized the nav keys so we have to move focus manually _within_ - // the active group: do this based on the order determined by tabbable() - destinationNode = containerGroup.nextTabbableNode(target); - } - } - } else { - // no groups available - // NOTE: the fallbackFocus option does not support returning false to opt-out - destinationNode = getNodeForOption('fallbackFocus'); - } - if (destinationNode) { - if (isTabEvent(event)) { - // since tab natively moves focus, we wouldn't have a destination node unless we - // were on the edge of a container and had to move to the next/previous edge, in - // which case we want to prevent default to keep the browser from moving focus - // to where it normally would - event.preventDefault(); - } - tryFocus(destinationNode); - } - // else, let the browser take care of [shift+]tab and move the focus - }; - - var checkKey = function checkKey(event) { - if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) { - event.preventDefault(); - trap.deactivate(); - return; - } - if (config.isKeyForward(event) || config.isKeyBackward(event)) { - checkKeyNav(event, config.isKeyBackward(event)); - } - }; - var checkClick = function checkClick(e) { - var target = getActualTarget(e); - if (findContainerIndex(target, e) >= 0) { - return; - } - if (valueOrHandler(config.clickOutsideDeactivates, e)) { - return; - } - if (valueOrHandler(config.allowOutsideClick, e)) { - return; - } - e.preventDefault(); - e.stopImmediatePropagation(); - }; - - // - // EVENT LISTENERS - // - - var addListeners = function addListeners() { - if (!state.active) { - return; - } - - // There can be only one listening focus trap at a time - activeFocusTraps.activateTrap(trapStack, trap); - - // Delay ensures that the focused element doesn't capture the event - // that caused the focus trap activation. - state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () { - tryFocus(getInitialFocusNode()); - }) : tryFocus(getInitialFocusNode()); - doc.addEventListener('focusin', checkFocusIn, true); - doc.addEventListener('mousedown', checkPointerDown, { - capture: true, - passive: false - }); - doc.addEventListener('touchstart', checkPointerDown, { - capture: true, - passive: false - }); - doc.addEventListener('click', checkClick, { - capture: true, - passive: false - }); - doc.addEventListener('keydown', checkKey, { - capture: true, - passive: false - }); - return trap; - }; - var removeListeners = function removeListeners() { - if (!state.active) { - return; - } - doc.removeEventListener('focusin', checkFocusIn, true); - doc.removeEventListener('mousedown', checkPointerDown, true); - doc.removeEventListener('touchstart', checkPointerDown, true); - doc.removeEventListener('click', checkClick, true); - doc.removeEventListener('keydown', checkKey, true); - return trap; - }; - - // - // MUTATION OBSERVER - // - - var checkDomRemoval = function checkDomRemoval(mutations) { - var isFocusedNodeRemoved = mutations.some(function (mutation) { - var removedNodes = Array.from(mutation.removedNodes); - return removedNodes.some(function (node) { - return node === state.mostRecentlyFocusedNode; - }); - }); - - // If the currently focused is removed then browsers will move focus to the - // element. If this happens, try to move focus back into the trap. - if (isFocusedNodeRemoved) { - tryFocus(getInitialFocusNode()); - } - }; - - // Use MutationObserver - if supported - to detect if focused node is removed - // from the DOM. - var mutationObserver = typeof window !== 'undefined' && 'MutationObserver' in window ? new MutationObserver(checkDomRemoval) : undefined; - var updateObservedNodes = function updateObservedNodes() { - if (!mutationObserver) { - return; - } - mutationObserver.disconnect(); - if (state.active && !state.paused) { - state.containers.map(function (container) { - mutationObserver.observe(container, { - subtree: true, - childList: true - }); - }); - } - }; - - // - // TRAP DEFINITION - // - - trap = { - get active() { - return state.active; - }, - get paused() { - return state.paused; - }, - activate: function activate(activateOptions) { - if (state.active) { - return this; - } - var onActivate = getOption(activateOptions, 'onActivate'); - var onPostActivate = getOption(activateOptions, 'onPostActivate'); - var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap'); - if (!checkCanFocusTrap) { - updateTabbableNodes(); - } - state.active = true; - state.paused = false; - state.nodeFocusedBeforeActivation = doc.activeElement; - onActivate === null || onActivate === void 0 ? void 0 : onActivate(); - var finishActivation = function finishActivation() { - if (checkCanFocusTrap) { - updateTabbableNodes(); - } - addListeners(); - updateObservedNodes(); - onPostActivate === null || onPostActivate === void 0 ? void 0 : onPostActivate(); - }; - if (checkCanFocusTrap) { - checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation); - return this; - } - finishActivation(); - return this; - }, - deactivate: function deactivate(deactivateOptions) { - if (!state.active) { - return this; - } - var options = _objectSpread2({ - onDeactivate: config.onDeactivate, - onPostDeactivate: config.onPostDeactivate, - checkCanReturnFocus: config.checkCanReturnFocus - }, deactivateOptions); - clearTimeout(state.delayInitialFocusTimer); // noop if undefined - state.delayInitialFocusTimer = undefined; - removeListeners(); - state.active = false; - state.paused = false; - updateObservedNodes(); - activeFocusTraps.deactivateTrap(trapStack, trap); - var onDeactivate = getOption(options, 'onDeactivate'); - var onPostDeactivate = getOption(options, 'onPostDeactivate'); - var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus'); - var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate'); - onDeactivate === null || onDeactivate === void 0 ? void 0 : onDeactivate(); - var finishDeactivation = function finishDeactivation() { - delay(function () { - if (returnFocus) { - tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)); - } - onPostDeactivate === null || onPostDeactivate === void 0 ? void 0 : onPostDeactivate(); - }); - }; - if (returnFocus && checkCanReturnFocus) { - checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation); - return this; - } - finishDeactivation(); - return this; - }, - pause: function pause(pauseOptions) { - if (state.paused || !state.active) { - return this; - } - var onPause = getOption(pauseOptions, 'onPause'); - var onPostPause = getOption(pauseOptions, 'onPostPause'); - state.paused = true; - onPause === null || onPause === void 0 ? void 0 : onPause(); - removeListeners(); - updateObservedNodes(); - onPostPause === null || onPostPause === void 0 ? void 0 : onPostPause(); - return this; - }, - unpause: function unpause(unpauseOptions) { - if (!state.paused || !state.active) { - return this; - } - var onUnpause = getOption(unpauseOptions, 'onUnpause'); - var onPostUnpause = getOption(unpauseOptions, 'onPostUnpause'); - state.paused = false; - onUnpause === null || onUnpause === void 0 ? void 0 : onUnpause(); - updateTabbableNodes(); - addListeners(); - updateObservedNodes(); - onPostUnpause === null || onPostUnpause === void 0 ? void 0 : onPostUnpause(); - return this; - }, - updateContainerElements: function updateContainerElements(containerElements) { - var elementsAsArray = [].concat(containerElements).filter(Boolean); - state.containers = elementsAsArray.map(function (element) { - return typeof element === 'string' ? doc.querySelector(element) : element; - }); - if (state.active) { - updateTabbableNodes(); - } - updateObservedNodes(); - return this; - } - }; - - // initialize container elements - trap.updateContainerElements(elements); - return trap; -}; - - -//# sourceMappingURL=focus-trap.esm.js.map - - -/***/ }), - -/***/ "./node_modules/tabbable/dist/index.esm.js": -/*!*************************************************!*\ - !*** ./node_modules/tabbable/dist/index.esm.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "focusable": () => (/* binding */ focusable), -/* harmony export */ "isFocusable": () => (/* binding */ isFocusable), -/* harmony export */ "isTabbable": () => (/* binding */ isTabbable), -/* harmony export */ "tabbable": () => (/* binding */ tabbable) -/* harmony export */ }); -/*! -* tabbable 6.1.2 -* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE -*/ -// NOTE: separate `:not()` selectors has broader browser support than the newer -// `:not([inert], [inert] *)` (Feb 2023) -// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes -// the entire query to fail, resulting in no nodes found, which will break a lot -// of things... so we have to rely on JS to identify nodes inside an inert container -var candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable="false"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])']; -var candidateSelector = /* #__PURE__ */candidateSelectors.join(','); -var NoElement = typeof Element === 'undefined'; -var matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; -var getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) { - var _element$getRootNode; - return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element); -} : function (element) { - return element === null || element === void 0 ? void 0 : element.ownerDocument; -}; - -/** - * Determines if a node is inert or in an inert ancestor. - * @param {Element} [node] - * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to - * see if any of them are inert. If false, only `node` itself is considered. - * @returns {boolean} True if inert itself or by way of being in an inert ancestor. - * False if `node` is falsy. - */ -var isInert = function isInert(node, lookUp) { - var _node$getAttribute; - if (lookUp === void 0) { - lookUp = true; - } - // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert` - // JS API property; we have to check the attribute, which can either be empty or 'true'; - // if it's `null` (not specified) or 'false', it's an active element - var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert'); - var inert = inertAtt === '' || inertAtt === 'true'; - - // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')` - // if it weren't for `matches()` not being a function on shadow roots; the following - // code works for any kind of node - // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)` - // so it likely would not support `:is([inert] *)` either... - var result = inert || lookUp && node && isInert(node.parentNode); // recursive - - return result; -}; - -/** - * Determines if a node's content is editable. - * @param {Element} [node] - * @returns True if it's content-editable; false if it's not or `node` is falsy. - */ -var isContentEditable = function isContentEditable(node) { - var _node$getAttribute2; - // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have - // to use the attribute directly to check for this, which can either be empty or 'true'; - // if it's `null` (not specified) or 'false', it's a non-editable element - var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable'); - return attValue === '' || attValue === 'true'; -}; - -/** - * @param {Element} el container to check in - * @param {boolean} includeContainer add container to check - * @param {(node: Element) => boolean} filter filter candidates - * @returns {Element[]} - */ -var getCandidates = function getCandidates(el, includeContainer, filter) { - // even if `includeContainer=false`, we still have to check it for inertness because - // if it's inert, all its children are inert - if (isInert(el)) { - return []; - } - var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector)); - if (includeContainer && matches.call(el, candidateSelector)) { - candidates.unshift(el); - } - candidates = candidates.filter(filter); - return candidates; -}; - -/** - * @callback GetShadowRoot - * @param {Element} element to check for shadow root - * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available. - */ - -/** - * @callback ShadowRootFilter - * @param {Element} shadowHostNode the element which contains shadow content - * @returns {boolean} true if a shadow root could potentially contain valid candidates. - */ - -/** - * @typedef {Object} CandidateScope - * @property {Element} scopeParent contains inner candidates - * @property {Element[]} candidates list of candidates found in the scope parent - */ - -/** - * @typedef {Object} IterativeOptions - * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not; - * if a function, implies shadow support is enabled and either returns the shadow root of an element - * or a boolean stating if it has an undisclosed shadow root - * @property {(node: Element) => boolean} filter filter candidates - * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list - * @property {ShadowRootFilter} shadowRootFilter filter shadow roots; - */ - -/** - * @param {Element[]} elements list of element containers to match candidates from - * @param {boolean} includeContainer add container list to check - * @param {IterativeOptions} options - * @returns {Array.} - */ -var getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) { - var candidates = []; - var elementsToCheck = Array.from(elements); - while (elementsToCheck.length) { - var element = elementsToCheck.shift(); - if (isInert(element, false)) { - // no need to look up since we're drilling down - // anything inside this container will also be inert - continue; - } - if (element.tagName === 'SLOT') { - // add shadow dom slot scope (slot itself cannot be focusable) - var assigned = element.assignedElements(); - var content = assigned.length ? assigned : element.children; - var nestedCandidates = getCandidatesIteratively(content, true, options); - if (options.flatten) { - candidates.push.apply(candidates, nestedCandidates); - } else { - candidates.push({ - scopeParent: element, - candidates: nestedCandidates - }); - } - } else { - // check candidate element - var validCandidate = matches.call(element, candidateSelector); - if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) { - candidates.push(element); - } - - // iterate over shadow content if possible - var shadowRoot = element.shadowRoot || - // check for an undisclosed shadow - typeof options.getShadowRoot === 'function' && options.getShadowRoot(element); - - // no inert look up because we're already drilling down and checking for inertness - // on the way down, so all containers to this root node should have already been - // vetted as non-inert - var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element)); - if (shadowRoot && validShadowRoot) { - // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed - // shadow exists, so look at light dom children as fallback BUT create a scope for any - // child candidates found because they're likely slotted elements (elements that are - // children of the web component element (which has the shadow), in the light dom, but - // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below, - // _after_ we return from this recursive call - var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options); - if (options.flatten) { - candidates.push.apply(candidates, _nestedCandidates); - } else { - candidates.push({ - scopeParent: element, - candidates: _nestedCandidates - }); - } - } else { - // there's not shadow so just dig into the element's (light dom) children - // __without__ giving the element special scope treatment - elementsToCheck.unshift.apply(elementsToCheck, element.children); - } - } - } - return candidates; -}; -var getTabindex = function getTabindex(node, isScope) { - if (node.tabIndex < 0) { - // in Chrome,
,