@iamproperty/components 7.8.2--beta6 → 7.8.2--beta7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/css/components/actionbar.component.css +1 -1
- package/assets/css/components/actionbar.component.css.map +1 -1
- package/assets/css/components/address-lookup.component.css +1 -1
- package/assets/css/components/address-lookup.component.css.map +1 -1
- package/assets/css/components/advanced-select.component.css +1 -1
- package/assets/css/components/advanced-select.component.css.map +1 -1
- package/assets/css/components/banner.component.css +1 -1
- package/assets/css/components/banner.component.css.map +1 -1
- package/assets/css/components/barchart.component.css +1 -1
- package/assets/css/components/barchart.component.css.map +1 -1
- package/assets/css/components/branch-selector.css +1 -0
- package/assets/css/components/branch-selector.css.map +1 -0
- package/assets/css/components/calendar.component.css +1 -1
- package/assets/css/components/calendar.component.css.map +1 -1
- package/assets/css/components/card.component.css +1 -1
- package/assets/css/components/card.component.css.map +1 -1
- package/assets/css/components/card.module.css +1 -1
- package/assets/css/components/card.module.css.map +1 -1
- package/assets/css/components/card.preload.css +1 -1
- package/assets/css/components/card.preload.css.map +1 -1
- package/assets/css/components/carousel.component.css +1 -1
- package/assets/css/components/carousel.component.css.map +1 -1
- package/assets/css/components/charts.config.css +1 -1
- package/assets/css/components/charts.config.css.map +1 -1
- package/assets/css/components/collapsible-side.css +1 -1
- package/assets/css/components/collapsible-side.css.map +1 -1
- package/assets/css/components/config.component.css +1 -1
- package/assets/css/components/config.component.css.map +1 -1
- package/assets/css/components/doughnutchart.component.css +1 -1
- package/assets/css/components/doughnutchart.component.css.map +1 -1
- package/assets/css/components/fileupload.css +1 -1
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/filter-card.component.css +1 -1
- package/assets/css/components/filter-card.component.css.map +1 -1
- package/assets/css/components/inline-edit.css +1 -1
- package/assets/css/components/inline-edit.css.map +1 -1
- package/assets/css/components/menu.component.css +1 -1
- package/assets/css/components/menu.component.css.map +1 -1
- package/assets/css/components/modal.component.css +1 -1
- package/assets/css/components/modal.component.css.map +1 -1
- package/assets/css/components/multi-step-modal.component.css +1 -1
- package/assets/css/components/multi-step-modal.component.css.map +1 -1
- package/assets/css/components/multiselect.css +1 -1
- package/assets/css/components/multiselect.css.map +1 -1
- package/assets/css/components/nav-standalone.component.css +1 -0
- package/assets/css/components/nav-standalone.component.css.map +1 -0
- package/assets/css/components/nav.component.css +1 -1
- package/assets/css/components/nav.component.css.map +1 -1
- package/assets/css/components/nav.global.css +1 -1
- package/assets/css/components/nav.global.css.map +1 -1
- package/assets/css/components/nav.preload.css +1 -1
- package/assets/css/components/nav.preload.css.map +1 -1
- package/assets/css/components/notification.css +1 -1
- package/assets/css/components/notification.css.map +1 -1
- package/assets/css/components/pagination.css +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/record-card.component.css +1 -1
- package/assets/css/components/record-card.component.css.map +1 -1
- package/assets/css/components/search.component.css +1 -1
- package/assets/css/components/search.component.css.map +1 -1
- package/assets/css/components/slider.css +1 -1
- package/assets/css/components/slider.css.map +1 -1
- package/assets/css/components/split-button.component.css +1 -1
- package/assets/css/components/split-button.component.css.map +1 -1
- package/assets/css/components/tabs.component.css +1 -1
- package/assets/css/components/tabs.component.css.map +1 -1
- package/assets/css/components/tag.component.css +1 -1
- package/assets/css/components/tag.component.css.map +1 -1
- package/assets/css/components/video-card.component.css +1 -1
- package/assets/css/components/video-card.component.css.map +1 -1
- package/assets/css/components/video-modal.component.css +1 -1
- package/assets/css/components/video-modal.component.css.map +1 -1
- package/assets/css/components/video.component.css +1 -1
- package/assets/css/components/video.component.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/elements/buttons--action.css +1 -1
- package/assets/css/elements/buttons--action.css.map +1 -1
- package/assets/css/elements/buttons--compact.css +1 -1
- package/assets/css/elements/buttons--compact.css.map +1 -1
- package/assets/css/elements/buttons--global.css +1 -1
- package/assets/css/elements/buttons--global.css.map +1 -1
- package/assets/css/elements/buttons--secondary.css +1 -1
- package/assets/css/elements/buttons--secondary.css.map +1 -1
- package/assets/css/elements/buttons--tertiary.css +1 -1
- package/assets/css/elements/buttons--tertiary.css.map +1 -1
- package/assets/css/elements/buttons.css +1 -1
- package/assets/css/elements/buttons.css.map +1 -1
- package/assets/css/elements/dropdown.css +1 -1
- package/assets/css/elements/dropdown.css.map +1 -1
- package/assets/css/elements/forms.css +1 -1
- package/assets/css/elements/forms.css.map +1 -1
- package/assets/css/elements/links--global.css +1 -1
- package/assets/css/elements/links--global.css.map +1 -1
- package/assets/css/elements/links.css +1 -1
- package/assets/css/elements/links.css.map +1 -1
- package/assets/css/elements/popover.css +1 -1
- package/assets/css/elements/popover.css.map +1 -1
- package/assets/css/elements/select.css +1 -1
- package/assets/css/elements/select.css.map +1 -1
- package/assets/css/elements/tooltips.css +1 -1
- package/assets/css/elements/tooltips.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.min.js +3 -3
- package/assets/js/components/address-lookup/address-lookup.component.js +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/advanced-select/advanced-select.component.min.js +4 -4
- package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/banner/banner.component.min.js +2 -2
- package/assets/js/components/barchart/barchart.component.min.js +2 -2
- package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
- package/assets/js/components/bone/bone.component.min.js +1 -1
- package/assets/js/components/branch-selector/branch-selector.component.js +69 -0
- package/assets/js/components/branch-selector/branch-selector.component.min.js +22 -0
- package/assets/js/components/branch-selector/branch-selector.component.min.js.map +1 -0
- package/assets/js/components/button/button.component.min.js +1 -1
- package/assets/js/components/calendar/calendar.component.min.js +2 -2
- package/assets/js/components/card/card.component.min.js +3 -3
- package/assets/js/components/carousel/carousel.component.min.js +3 -3
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
- package/assets/js/components/config/config.component.min.js +3 -3
- package/assets/js/components/config/config.component.min.js.map +1 -1
- package/assets/js/components/content/content.component.min.js +1 -1
- package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +4 -4
- package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
- package/assets/js/components/filter-card/filter-card.component.min.js +5 -5
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/form/form.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.min.js +2 -2
- package/assets/js/components/input/input.component.min.js +1 -1
- package/assets/js/components/input-range/input-range.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +1 -1
- package/assets/js/components/menu/menu.component.min.js +2 -2
- package/assets/js/components/milestone/milestone.component.min.js +1 -1
- package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
- package/assets/js/components/modal/modal.component.js +2 -0
- package/assets/js/components/modal/modal.component.min.js +4 -4
- package/assets/js/components/modal/modal.component.min.js.map +1 -1
- package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
- package/assets/js/components/multiselect/multiselect.component.js +14 -18
- package/assets/js/components/multiselect/multiselect.component.min.js +14 -14
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.js +30 -255
- package/assets/js/components/nav/nav.component.min.js +46 -30
- package/assets/js/components/nav/nav.component.min.js.map +1 -1
- package/assets/js/components/nav-standalone/nav-standalone.component.js +51 -0
- package/assets/js/components/nav-standalone/nav-standalone.component.min.js +80 -0
- package/assets/js/components/nav-standalone/nav-standalone.component.min.js.map +1 -0
- package/assets/js/components/notification/notification.component.min.js +2 -2
- package/assets/js/components/pagination/pagination.component.min.js +2 -2
- package/assets/js/components/password/password.component.min.js +1 -1
- package/assets/js/components/popover/popover.component.min.js +1 -1
- package/assets/js/components/rank/rank.component.min.js +1 -1
- package/assets/js/components/rankings/rankings.component.min.js +1 -1
- package/assets/js/components/rating/rating.component.min.js +1 -1
- package/assets/js/components/record-card/record-card.component.min.js +6 -6
- package/assets/js/components/search/search.component.min.js +2 -2
- package/assets/js/components/skeleton/skeleton.component.min.js +1 -1
- package/assets/js/components/slider/slider.component.min.js +2 -2
- package/assets/js/components/split-button/split-button.component.min.js +4 -4
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +5 -5
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
- package/assets/js/components/std-nav/std-nav.component.js +32 -58
- package/assets/js/components/std-nav/std-nav.component.min.js +9 -54
- package/assets/js/components/std-nav/std-nav.component.min.js.map +1 -1
- package/assets/js/components/table/table.component.min.js +2 -2
- package/assets/js/components/table-ajax/table-ajax.component.min.js +2 -2
- package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +2 -2
- package/assets/js/components/table-submit/table-submit.component.min.js +2 -2
- package/assets/js/components/tabs/tabs.component.min.js +2 -2
- package/assets/js/components/tag/tag.component.min.js +4 -4
- package/assets/js/components/tag/tag.component.min.js.map +1 -1
- package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
- package/assets/js/components/video/video.component.min.js +2 -2
- package/assets/js/components/video-card/video-card.component.min.js +6 -6
- package/assets/js/components/video-modal/video-modal.component.min.js +5 -5
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/advanced-select.js +13 -5
- package/assets/js/modules/nav.js +183 -64
- package/assets/js/modules/nav.test.js +4 -1
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/sass/components/branch-selector.scss +112 -0
- package/assets/sass/components/card.module.scss +11 -1
- package/assets/sass/components/card.preload.scss +0 -15
- package/assets/sass/components/charts.config.scss +3 -3
- package/assets/sass/components/menu.component.scss +2 -1
- package/assets/sass/components/multiselect.scss +0 -1
- package/assets/sass/components/nav-standalone.component.scss +50 -0
- package/assets/sass/components/nav.component.scss +142 -116
- package/assets/sass/components/nav.global.scss +26 -198
- package/assets/sass/components/nav.preload.scss +1 -7
- package/assets/sass/elements/buttons--action.css +1 -1
- package/assets/sass/elements/buttons--compact.css +8 -4
- package/assets/sass/elements/buttons--global.css +3 -6
- package/assets/sass/elements/buttons--secondary.css +1 -1
- package/assets/sass/elements/buttons--tertiary.css +1 -1
- package/assets/sass/elements/dropdown.css +16 -2
- package/assets/sass/elements/links--global.scss +29 -3
- package/assets/sass/elements/popover.scss +1 -0
- package/assets/sass/elements/select.scss +1 -1
- package/assets/sass/elements/tooltips.scss +54 -0
- package/assets/sass/foundations/root.scss +4 -0
- package/assets/sass/templates/form.scss +26 -3
- package/assets/ts/components/address-lookup/address-lookup.component.ts +2 -1
- package/assets/ts/components/branch-selector/branch-selector.component.ts +93 -0
- package/assets/ts/components/modal/modal.component.ts +3 -0
- package/assets/ts/components/multiselect/multiselect.component.ts +20 -23
- package/assets/ts/components/nav/nav.component.ts +30 -285
- package/assets/ts/components/nav-standalone/nav-standalone.component.ts +69 -0
- package/assets/ts/components/std-nav/std-nav.component.ts +38 -81
- package/assets/ts/modules/advanced-select.ts +12 -11
- package/assets/ts/modules/nav.test.ts +4 -1
- package/assets/ts/modules/nav.ts +221 -78
- package/dist/components.es.js +1130 -1095
- package/dist/components.umd.js +290 -242
- package/package.json +2 -2
- package/src/components/BranchSelector/BranchSelector.vue +20 -0
- package/src/components/{STDNavStandalone/STDNavStandalone.vue → NavStandalone/NavStandalone.vue} +3 -3
- package/src/index.js +1 -0
- package/assets/css/components/nav.docs.css +0 -1
- package/assets/css/components/nav.docs.css.map +0 -1
- package/assets/css/components/std-nav-standalone.component.css +0 -1
- package/assets/css/components/std-nav-standalone.component.css.map +0 -1
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.js +0 -70
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +0 -20
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js.map +0 -1
- package/assets/sass/components/nav.docs.scss +0 -54
- package/assets/sass/components/std-nav-standalone.component.scss +0 -229
- package/assets/ts/components/std-nav-standalone/std-nav-standalone.component.ts +0 -94
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"std-nav.component.min.js","sources":["../../../../node_modules/js-cookie/dist/js.cookie.mjs","../../modules/nav.js","../nav/nav.component.js","std-nav.component.js"],"sourcesContent":["/*! js-cookie v3.0.7 | MIT */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (key === '__proto__') continue\n target[key] = source[key];\n }\n }\n return target\n}\n\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n\nfunction init(converter, defaultAttributes) {\n function set(name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get(name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n if (!(found in jar)) jar[found] = converter.read(value, found);\n if (name === found) {\n break\n }\n } catch {\n // Do nothing...\n }\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n\nexport { api as default };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst navbar = (element) => {\n Array.from(element.querySelectorAll('details')).forEach((detail) => {\n detail.addEventListener('mouseenter', function () {\n if (window.matchMedia('(min-width: 62em)').matches)\n detail.setAttribute('open', 'true');\n }, false);\n detail.addEventListener('mouseleave', function () {\n if (window.matchMedia('(min-width: 62em)').matches)\n detail.removeAttribute('open');\n }, false);\n });\n if ('IntersectionObserver' in window) {\n const observer = new IntersectionObserver(([e]) => e.target.classList.toggle('is-stuck', e.intersectionRatio < 1), {\n threshold: [1],\n });\n observer.observe(element);\n }\n};\nexport const populateNav = (data) => {\n let html = ``;\n data.forEach((feature) => {\n if (feature.attributes.sections.length)\n html += `<details name=\"megamenu\"><summary>${feature.attributes.title}</summary><div data-title=\"${feature.attributes.title}\">${populateSections(feature.attributes.sections)}</div></details>`;\n else if (feature.attributes.links)\n html += `<details name=\"megamenu\"><summary>${feature.attributes.title}</summary><div data-title=\"${feature.attributes.title}\">${populateLinks(feature.attributes.links)}</div></details>`;\n else\n html += `<a href=\"/\">${feature.attributes.title}</a>`;\n });\n return html;\n};\nexport const populateSections = (data) => {\n let html = ``;\n data.forEach((section) => {\n html += `<span class=\"section section--${section.layout}\">\n ${section.title ? `<span class=\"lead section-title\" data-product=\"${section.id}\" data-title>${section.title}:</span>` : ''}\n ${section.description ? `<span class=\"lead section-desc\" data-product=\"${section.id}\"><i class=\"fa-solid fa-sparkles colour-warning\"></i> ${section.description}</span>` : ''}\n ${populateLinks(section.links)}\n </span>`;\n });\n return html;\n};\nexport const populateLinks = (data) => {\n let html = ``;\n data.forEach((link) => {\n html += `<a href=\"${link.destinations.unlinked}\" target=\"_blank\" data-product=\"${link.productKey}\" data-feature=\"${link.featureKey}\" data-enabled=\"${link.destinations.linkedEnabled}\" data-disabled=\"${link.destinations.linkedDisabled}\">${link.title}</a>`;\n });\n return html;\n};\nexport const loadNavData = (Cookies) => __awaiter(void 0, void 0, void 0, function* () {\n const ajaxURL = 'https://dev.hub.iamproperty.group/data/ecosystem-switcher.json';\n //const ajaxURL = '/nav.json';\n // Setup controller vars if not already set\n if (!window.controller)\n window.controller = [];\n // Abort if controller already present for this url\n if (window.controller[ajaxURL])\n window.controller[ajaxURL].abort();\n // Create a new controller so it can be aborted if new fetch made\n window.controller[ajaxURL] = new AbortController();\n const { signal } = window.controller[ajaxURL];\n try {\n const response = yield fetch(ajaxURL, {\n signal,\n method: 'GET',\n headers: {\n Accept: 'application/json',\n },\n });\n const json = yield response.json();\n const data = json.data ? json.data : json;\n return data;\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError') {\n return true;\n }\n console.log(error);\n return 'There has been a problem. Please try again in a few moments.';\n }\n});\nexport const loadUserData = (Cookies) => __awaiter(void 0, void 0, void 0, function* () {\n const ajaxURL = '/user.json';\n // Setup controller vars if not already set\n if (!window.controller)\n window.controller = [];\n // Abort if controller already present for this url\n if (window.controller[ajaxURL])\n window.controller[ajaxURL].abort();\n // Create a new controller so it can be aborted if new fetch made\n window.controller[ajaxURL] = new AbortController();\n const { signal } = window.controller[ajaxURL];\n try {\n const response = yield fetch(ajaxURL, {\n signal,\n method: 'GET',\n headers: {\n Accept: 'application/json',\n },\n });\n const json = yield response.json();\n const data = json.data ? json.data : json;\n return data;\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError') {\n return true;\n }\n console.log(error);\n return 'There has been a problem. Please try again in a few moments.';\n }\n});\nexport const setEnabledLinks = (component, data) => {\n const selector = `[data-product][data-feature]`;\n const elements = component\n ? [\n ...component.querySelectorAll(selector),\n ...(component.shadowRoot ? component.shadowRoot.querySelectorAll(selector) : []),\n ]\n : document.querySelectorAll(`iam-nav ${selector}`);\n elements.forEach((element) => {\n const isEnabled = data.attributes.products[element.getAttribute('data-product')].features[element.getAttribute('data-feature')];\n element.setAttribute('data-is-enabled', isEnabled);\n if (isEnabled && element.getAttribute('data-enabled')) {\n element.setAttribute('href', element.getAttribute('data-enabled'));\n element.removeAttribute('target');\n }\n });\n};\nexport default navbar;\n","// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'nav',\n});\nclass iamNav extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/nav.component.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/nav.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style class=\"styles\">\n\n ${loadCSS}\n </style>\n <style class=\"doc-styles\">\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"container\">\n <slot name=\"logo\"></slot>\n <div class=\"buttons-holder\"></div>\n <button class=\"btn-menu\" part=\"btn-menu\">Menu<i class=\"fa-regular fa-bars\"></i><i class=\"fa-regular fa-xmark-large\"></i></button>\n\n <div class=\"menu__outer\">\n <div class=\"menu closed\">\n\n <div class=\"menu__primary\">\n <slot></slot>\n <slot name=\"dual\"></slot>\n </div>\n <div class=\"dialog__wrapper d-none\" id=\"search-wrapper\"></div>\n <slot name=\"actions\"></slot>\n <div class=\"menu__secondary bg-light\">\n <div class=\"container\">\n <slot name=\"secondary\"></slot>\n </div>\n </div>\n </div>\n <slot name=\"menus\"></slot>\n </div>\n </div>\n <div class=\"backdrop\" part=\"backdrop\"></div>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('navGlobal'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"navGlobal\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n // Load external CSS if needed\n if (this.hasAttribute('data-css'))\n this.shadowRoot\n .querySelector('.doc-styles')\n .insertAdjacentHTML('beforeend', `@import \"${this.getAttribute('data-css')}\";`);\n const menuButton = this.shadowRoot.querySelector('.btn-menu');\n const menu = this.shadowRoot.querySelector('.menu');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const iamNav = this;\n const backdrop = this.shadowRoot.querySelector('.backdrop');\n const buttonsHolder = this.shadowRoot.querySelector('.buttons-holder');\n // Check the content\n const createNavMenu = (component) => {\n buttonsHolder.innerHTML = '';\n component.querySelectorAll(':scope > *').forEach(function (element) {\n const tagname = element.tagName;\n switch (tagname) {\n case 'BUTTON':\n if (!element.hasAttribute('slot')) {\n element.setAttribute('slot', 'actions');\n menu.classList.add('has-actions');\n }\n break;\n }\n // Create menu button\n if (element.classList.contains('nav--menu') &&\n element.hasAttribute('data-title') &&\n element.hasAttribute('data-icon')) {\n const title = element.getAttribute('data-title');\n const iconClass = element.getAttribute('data-icon');\n // Create the menu button that sits seperately to the menu\n const button = document.createElement('button');\n button.setAttribute('slot', title);\n button.classList.add('btn-menu');\n button.setAttribute('part', 'btn-menu');\n button.innerHTML = `<span class=\"btn btn-primary\"><span>${title}</span><i class=\"${iconClass}\"></i><i class=\"fa-regular fa-xmark-large\"></i></span>`;\n buttonsHolder.insertAdjacentElement('beforeend', button);\n const mdButton = button.querySelector('.btn-primary');\n // Make sure the menu is added to the right part of the component\n element.setAttribute('slot', 'menus');\n // If open we need to make sure the main mobile menu is closed, the new button has the right state and the backdrop is shown\n if (element.classList.contains('open')) {\n button.setAttribute('aria-expanded', true);\n mdButton.classList.toggle('active');\n component.classList.add('open');\n backdrop.classList.add('show');\n }\n else {\n element.classList.add('closed'); // closed class is added to prevent the elements being tabbed into, this causes visual issues\n }\n // Click event\n button.addEventListener('click', function (e) {\n e.preventDefault();\n button.toggleAttribute('aria-expanded');\n console.log(element);\n element.classList.toggle('open');\n mdButton.classList.toggle('active');\n // Close desktop menus\n const openMenu = component.querySelector(':scope > details[open]');\n if (openMenu)\n openMenu.removeAttribute('open');\n // Close the main menu and fix states on the button, iamNav component and backdrop\n if (element.classList.contains('open')) {\n menu.classList.remove('open');\n menuButton.removeAttribute('aria-expanded');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000); // Delay until its close so the animation is broken\n component.classList.add('open');\n backdrop.classList.add('show');\n element.classList.remove('closed');\n }\n else {\n component.classList.remove('open');\n backdrop.classList.remove('show');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n }\n // Close any open menus\n component.querySelectorAll('.nav--menu.open').forEach(function (openmenu) {\n if (openmenu != element) {\n openmenu.classList.remove('open');\n }\n });\n component.shadowRoot\n .querySelectorAll('.buttons-holder .btn-menu[aria-expanded]')\n .forEach(function (selectedButton) {\n if (selectedButton != button) {\n selectedButton.removeAttribute('aria-expanded');\n const innerBtn = selectedButton.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n }\n });\n }, false);\n }\n });\n component.querySelectorAll('details').forEach(function (element) {\n element.classList.add('details--revert');\n });\n };\n createNavMenu(this);\n this.addEventListener('rebuilt', () => {\n console.log('rebuilt nav');\n createNavMenu(this);\n });\n // Has secondary link\n if (this.querySelector('[slot=\"secondary\"]')) {\n menu.classList.add('has-secondary');\n }\n // Open and close the menu\n menuButton.addEventListener('click', function (e) {\n e.preventDefault();\n //menuButton.toggleAttribute('aria-expanded');\n menu.classList.toggle('open');\n // Close any other menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n if (menu.classList.contains('open')) {\n iamNav.classList.add('open');\n menu.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n }\n }, false);\n // Allow outside JS to close the menu\n this.addEventListener('request-close', () => {\n menuButton.removeAttribute('aria-expanded');\n menu.classList.remove('open');\n iamNav.classList.remove('open');\n });\n // Close the menu on the click of the backdrop on desktop\n backdrop.addEventListener('click', () => {\n const openMenu = this.querySelector('details[open] summary');\n if (openMenu)\n openMenu.click();\n iamNav.classList.toggle('open');\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n backdrop.classList.remove('show');\n });\n // On desktop close other menu's (details) when one is clicked\n this.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('summary')) {\n if (window.innerWidth > 992 && !event.target.closest('.nav--menu')) {\n const summary = event.target.closest('summary');\n const details = summary.closest('details');\n const wrapper = details.parentNode;\n if (details.hasAttribute('open'))\n details.removeAttribute('open');\n else\n details.setAttribute('open', 'true');\n // Close any bespoke menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n // Close any other dropdowns on the same level\n Array.from(wrapper.querySelectorAll(':scope > details')).forEach((detailsArrayElement) => {\n if (detailsArrayElement != details)\n detailsArrayElement.removeAttribute('open');\n });\n if (this.querySelectorAll(':scope > details[open]').length) {\n backdrop.classList.add('show');\n iamNav.classList.add('open');\n if (this.querySelectorAll(':scope > details[open][slot=\"secondary\"]').length)\n iamNav.classList.add('open-secondary');\n }\n else {\n backdrop.classList.remove('show');\n iamNav.classList.remove('open');\n iamNav.classList.remove('open-secondary');\n }\n event.preventDefault();\n }\n }\n });\n // Mega menu title\n this.querySelectorAll('details').forEach((detailsElement) => {\n const summary = detailsElement.querySelector('summary');\n const containerDiv = detailsElement.querySelector(':Scope > div');\n containerDiv.setAttribute('data-title', summary.textContent);\n });\n // Search\n if (this.querySelector('[slot=\"search\"]')) {\n menu.classList.add('has-search');\n const searchWrapper = this.shadowRoot.querySelector('#search-wrapper');\n searchWrapper.classList.remove('d-none');\n searchWrapper.insertAdjacentHTML('afterbegin', `<button class=\"btn btn-secondary btn-compact fa-search me-0 mb-0\" id=\"search-button\" aria-controls=\"search-dialog\">Open Search field</button>\n <dialog id=\"search-dialog\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col mb-0 ms-auto col-md-7\">\n <slot name=\"search\"></slot>\n </div>\n <div class=\"col d-none d-md-block mw-fit-content ms-3\">\n <button class=\"btn btn-compact btn-secondary fa-xmark-large m-0 mb-0\" type=\"button\" id=\"search-close\">Close search field</button>\n </div>\n </div>\n </div>\n </dialog>`);\n const searchButton = this.shadowRoot.querySelector('#search-button');\n const searchClose = this.shadowRoot.querySelector('#search-close');\n const searchDialog = this.shadowRoot.querySelector('#search-dialog');\n if (this.hasAttribute('data-search-open')) {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n }\n searchButton.addEventListener('click', () => {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n });\n searchClose.addEventListener('click', () => {\n searchDialog.removeAttribute('open');\n this.classList.remove('search-open');\n searchButton.removeAttribute('aria-expanded');\n });\n }\n if (this.classList.contains('nav--sticky')) {\n let oldScrollY = window.scrollY;\n window.onscroll = function (e) {\n if (oldScrollY < window.scrollY) {\n document.body.setAttribute('data-direction', 'down');\n }\n else {\n document.body.setAttribute('data-direction', 'up');\n }\n if (window.scrollY > 100) {\n document.body.classList.add('past100');\n }\n else {\n document.body.classList.remove('past100');\n }\n oldScrollY = window.scrollY;\n };\n }\n }\n}\nexport default iamNav;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport Cookies from '../../../../node_modules/js-cookie/dist/js.cookie.mjs';\nimport { populateNav, loadNavData, loadUserData, setEnabledLinks } from '../../modules/nav';\nimport iamNav from '../nav/nav.component';\nclass iamSTDNav extends HTMLElement {\n constructor() {\n super();\n this.defaultToNav = () => {\n const defaultContent = this.innerHTML;\n this.innerHTML = `<iam-nav ${(this.hasAttribute('class') ? `class=\"${this.getAttribute('class')}\"` : '')}>\n ${defaultContent}\n </iam-nav>`;\n };\n this.transformToNav = (data) => {\n var _a;\n const navElement = (_a = this.querySelector('iam-nav')) !== null && _a !== void 0 ? _a : this;\n // Remove current links\n navElement.querySelectorAll(`:scope > *`).forEach((element) => {\n if (!element.hasAttribute('slot'))\n element.remove();\n });\n const defaultContent = navElement.innerHTML;\n navElement.innerHTML = `${defaultContent}${populateNav(data)}`;\n const customEvent = new CustomEvent('rebuilt');\n navElement.dispatchEvent(customEvent);\n };\n this.defaultToSecondary = () => {\n // Set links and details to secondary slot\n Array.from(this.querySelectorAll(':scope > a, :scope > details')).forEach((element) => {\n element.setAttribute('slot', 'secondary');\n });\n const defaultContent = this.innerHTML;\n this.outerHTML = `${defaultContent}`;\n };\n this.transformToSecondary = (data) => {\n this.innerHTML = populateNav(data);\n // Set links and details to secondary slot\n Array.from(this.querySelectorAll(':scope > a, :scope > details')).forEach((element) => {\n element.setAttribute('slot', 'secondary');\n });\n const defaultContent = this.innerHTML;\n this.outerHTML = `${defaultContent}`;\n };\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n const component = this;\n this.wrapper = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.wrapper');\n if (!window.customElements.get(`iam-nav`))\n window.customElements.define(`iam-nav`, iamNav);\n if (this.hasAttribute('data-hub')) {\n this.defaultToNav();\n (_b = this.querySelector('.nav--menu.js-show')) === null || _b === void 0 ? void 0 : _b.classList.remove('js-show');\n }\n else {\n //this.defaultToSecondary(); TODO: change this to show default content but still be able to update\n }\n const data = yield loadNavData(Cookies).then((data) => {\n if (typeof data == 'string') {\n return data;\n }\n //console.log(data);\n if (this.hasAttribute('data-hub')) {\n const filteredData = data.filter(section => section.attributes.title != \"Learning and support\");\n this.transformToNav(filteredData);\n }\n else {\n this.transformToSecondary(data);\n }\n return true;\n });\n const userData = yield loadUserData(Cookies).then((data) => {\n setEnabledLinks(component, data);\n Array.from(document.querySelectorAll('[data-variable]')).forEach((element) => {\n if (data.attributes[element.getAttribute('data-variable')])\n element.innerHTML = data.attributes[element.getAttribute('data-variable')];\n });\n Array.from(document.querySelectorAll('[data-save-variable]')).forEach((element) => {\n //console.log(element);\n if (data.attributes[element.getAttribute('data-save-variable')])\n element.setAttribute('data-variable-value', data.attributes[element.getAttribute('data-save-variable')]);\n });\n return true;\n });\n });\n }\n}\nexport default iamSTDNav;\n"],"names":["assign","target","source","key","defaultConverter","value","init","converter","defaultAttributes","set","name","attributes","stringifiedAttributes","attributeName","get","cookies","jar","i","parts","found","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","step","e","rejected","result","populateNav","data","html","feature","populateSections","populateLinks","section","link","loadNavData","Cookies","ajaxURL","signal","json","error","loadUserData","setEnabledLinks","component","selector","element","isEnabled","iamNav","shadowRoot","template","menuButton","menu","backdrop","buttonsHolder","createNavMenu","title","iconClass","button","mdButton","openMenu","openmenu","selectedButton","event","details","wrapper","detailsArrayElement","detailsElement","summary","searchWrapper","searchButton","searchClose","searchDialog","oldScrollY","iamSTDNav","defaultContent","_a","navElement","customEvent","_b","filteredData"],"mappings":";;;IAAA,6BACA,SAASA,EAAQC,EAAQ,CACvB,QAAS,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CACzC,IAAIC,EAAS,UAAU,CAAC,EACxB,QAASC,KAAOD,EACVC,IAAQ,cACZF,EAAOE,CAAG,EAAID,EAAOC,CAAG,EAE5B,CACA,OAAOF,CACT,CAEA,IAAIG,EAAmB,CACrB,KAAM,SAAUC,EAAO,CACrB,OAAIA,EAAM,CAAC,IAAM,MACfA,EAAQA,EAAM,MAAM,EAAG,EAAE,GAEpBA,EAAM,QAAQ,mBAAoB,kBAAkB,CAC7D,EACA,MAAO,SAAUA,EAAO,CACtB,OAAO,mBAAmBA,CAAK,EAAE,QAC/B,2CACA,kBACN,CACE,CACF,EAEA,SAASC,EAAKC,EAAWC,EAAmB,CAC1C,SAASC,EAAIC,EAAML,EAAOM,EAAY,CACpC,GAAI,SAAO,SAAa,KAIxB,CAAAA,EAAaX,EAAO,GAAIQ,EAAmBG,CAAU,EAEjD,OAAOA,EAAW,SAAY,WAChCA,EAAW,QAAU,IAAI,KAAK,KAAK,MAAQA,EAAW,QAAU,KAAK,GAEnEA,EAAW,UACbA,EAAW,QAAUA,EAAW,QAAQ,YAAW,GAGrDD,EAAO,mBAAmBA,CAAI,EAC3B,QAAQ,uBAAwB,kBAAkB,EAClD,QAAQ,QAAS,MAAM,EAE1B,IAAIE,EAAwB,GAC5B,QAASC,KAAiBF,EACnBA,EAAWE,CAAa,IAI7BD,GAAyB,KAAOC,EAE5BF,EAAWE,CAAa,IAAM,KAWlCD,GAAyB,IAAMD,EAAWE,CAAa,EAAE,MAAM,GAAG,EAAE,CAAC,IAGvE,OAAQ,SAAS,OACfH,EAAO,IAAMH,EAAU,MAAMF,EAAOK,CAAI,EAAIE,EAChD,CAEA,SAASE,EAAIJ,EAAM,CACjB,GAAI,SAAO,SAAa,KAAgB,UAAU,QAAU,CAACA,GAQ7D,SAFIK,EAAU,SAAS,OAAS,SAAS,OAAO,MAAM,IAAI,EAAI,CAAA,EAC1DC,EAAM,CAAA,EACDC,EAAI,EAAGA,EAAIF,EAAQ,OAAQE,IAAK,CACvC,IAAIC,EAAQH,EAAQE,CAAC,EAAE,MAAM,GAAG,EAC5BZ,EAAQa,EAAM,MAAM,CAAC,EAAE,KAAK,GAAG,EAEnC,GAAI,CACF,IAAIC,EAAQ,mBAAmBD,EAAM,CAAC,CAAC,EAEvC,GADMC,KAASH,IAAMA,EAAIG,CAAK,EAAIZ,EAAU,KAAKF,EAAOc,CAAK,GACzDT,IAASS,EACX,KAEJ,MAAQ,CAER,CACF,CAEA,OAAOT,EAAOM,EAAIN,CAAI,EAAIM,EAC5B,CAEA,OAAO,OAAO,OACZ,CACE,IAAAP,EACA,IAAAK,EACA,OAAQ,SAAUJ,EAAMC,EAAY,CAClCF,EACEC,EACA,GACAV,EAAO,CAAA,EAAIW,EAAY,CACrB,QAAS,EACrB,CAAW,CACX,CACM,EACA,eAAgB,SAAUA,EAAY,CACpC,OAAOL,EAAK,KAAK,UAAWN,EAAO,CAAA,EAAI,KAAK,WAAYW,CAAU,CAAC,CACrE,EACA,cAAe,SAAUJ,EAAW,CAClC,OAAOD,EAAKN,EAAO,GAAI,KAAK,UAAWO,CAAS,EAAG,KAAK,UAAU,CACpE,CACN,EACI,CACE,WAAY,CAAE,MAAO,OAAO,OAAOC,CAAiB,CAAC,EACrD,UAAW,CAAE,MAAO,OAAO,OAAOD,CAAS,CAAC,CAClD,CACA,CACA,CAEUD,EAAKF,EAAkB,CAAE,KAAM,GAAG,CAAE,EC9H9C,IAAIgB,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMpB,EAAO,CAAE,OAAOA,aAAiBkB,EAAIlB,EAAQ,IAAIkB,EAAE,SAAUG,EAAS,CAAEA,EAAQrB,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKkB,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUvB,EAAO,CAAE,GAAI,CAAEwB,EAAKL,EAAU,KAAKnB,CAAK,CAAC,CAAG,OAASyB,EAAG,CAAEH,EAAOG,CAAC,CAAG,CAAE,CAC1F,SAASC,EAAS1B,EAAO,CAAE,GAAI,CAAEwB,EAAKL,EAAU,MAASnB,CAAK,CAAC,CAAG,OAASyB,EAAG,CAAEH,EAAOG,CAAC,CAAG,CAAE,CAC7F,SAASD,EAAKG,EAAQ,CAAEA,EAAO,KAAON,EAAQM,EAAO,KAAK,EAAIP,EAAMO,EAAO,KAAK,EAAE,KAAKJ,EAAWG,CAAQ,CAAG,CAC7GF,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAA,CAAE,GAAG,MAAM,CACxE,CAAC,CACL,EAmBO,MAAMW,EAAeC,GAAS,CACjC,IAAIC,EAAO,GACX,OAAAD,EAAK,QAASE,GAAY,CAClBA,EAAQ,WAAW,SAAS,OAC5BD,GAAQ,qCAAqCC,EAAQ,WAAW,KAAK,8BAA8BA,EAAQ,WAAW,KAAK,KAAKC,EAAiBD,EAAQ,WAAW,QAAQ,CAAC,mBACxKA,EAAQ,WAAW,MACxBD,GAAQ,qCAAqCC,EAAQ,WAAW,KAAK,8BAA8BA,EAAQ,WAAW,KAAK,KAAKE,EAAcF,EAAQ,WAAW,KAAK,CAAC,mBAEvKD,GAAQ,eAAeC,EAAQ,WAAW,KAAK,MACvD,CAAC,EACMD,CACX,EACaE,EAAoBH,GAAS,CACtC,IAAIC,EAAO,GACX,OAAAD,EAAK,QAASK,GAAY,CACtBJ,GAAQ,iCAAiCI,EAAQ,MAAM;AAAA,QACvDA,EAAQ,MAAQ,kDAAkDA,EAAQ,EAAE,gBAAgBA,EAAQ,KAAK,WAAa,EAAE;AAAA,QACxHA,EAAQ,YAAc,iDAAiDA,EAAQ,EAAE,yDAAyDA,EAAQ,WAAW,UAAY,EAAE;AAAA,QAC3KD,EAAcC,EAAQ,KAAK,CAAC;AAAA,YAEhC,CAAC,EACMJ,CACX,EACaG,EAAiBJ,GAAS,CACnC,IAAIC,EAAO,GACX,OAAAD,EAAK,QAASM,GAAS,CACnBL,GAAQ,YAAYK,EAAK,aAAa,QAAQ,mCAAmCA,EAAK,UAAU,mBAAmBA,EAAK,UAAU,mBAAmBA,EAAK,aAAa,aAAa,oBAAoBA,EAAK,aAAa,cAAc,KAAKA,EAAK,KAAK,MAC3P,CAAC,EACML,CACX,EACaM,EAAeC,GAAYtB,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CACnF,MAAMuB,EAAU,iEAGX,OAAO,aACR,OAAO,WAAa,CAAA,GAEpB,OAAO,WAAWA,CAAO,GACzB,OAAO,WAAWA,CAAO,EAAE,MAAK,EAEpC,OAAO,WAAWA,CAAO,EAAI,IAAI,gBACjC,KAAM,CAAE,OAAAC,CAAM,EAAK,OAAO,WAAWD,CAAO,EAC5C,GAAI,CAQA,MAAME,EAAO,MAPI,MAAM,MAAMF,EAAS,CAClC,OAAAC,EACA,OAAQ,MACR,QAAS,CACL,OAAQ,kBACxB,CACA,CAAS,GAC2B,KAAI,EAEhC,OADaC,EAAK,KAAOA,EAAK,KAAOA,CAEzC,OACOC,EAAO,CACV,OAAmDA,GAAM,OAAU,aACxD,IAEX,QAAQ,IAAIA,CAAK,EACV,+DACX,CACJ,CAAC,EACYC,EAAgBL,GAAYtB,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CACpF,MAAMuB,EAAU,aAEX,OAAO,aACR,OAAO,WAAa,CAAA,GAEpB,OAAO,WAAWA,CAAO,GACzB,OAAO,WAAWA,CAAO,EAAE,MAAK,EAEpC,OAAO,WAAWA,CAAO,EAAI,IAAI,gBACjC,KAAM,CAAE,OAAAC,CAAM,EAAK,OAAO,WAAWD,CAAO,EAC5C,GAAI,CAQA,MAAME,EAAO,MAPI,MAAM,MAAMF,EAAS,CAClC,OAAAC,EACA,OAAQ,MACR,QAAS,CACL,OAAQ,kBACxB,CACA,CAAS,GAC2B,KAAI,EAEhC,OADaC,EAAK,KAAOA,EAAK,KAAOA,CAEzC,OACOC,EAAO,CACV,OAAmDA,GAAM,OAAU,aACxD,IAEX,QAAQ,IAAIA,CAAK,EACV,+DACX,CACJ,CAAC,EACYE,EAAkB,CAACC,EAAWf,IAAS,CAChD,MAAMgB,EAAW,gCACAD,EACX,CACE,GAAGA,EAAU,iBAAiBC,CAAQ,EACtC,GAAID,EAAU,WAAaA,EAAU,WAAW,iBAAiBC,CAAQ,EAAI,EACzF,EACU,SAAS,iBAAiB,WAAWA,CAAQ,EAAE,GAC5C,QAASC,GAAY,CAC1B,MAAMC,EAAYlB,EAAK,WAAW,SAASiB,EAAQ,aAAa,cAAc,CAAC,EAAE,SAASA,EAAQ,aAAa,cAAc,CAAC,EAC9HA,EAAQ,aAAa,kBAAmBC,CAAS,EAC7CA,GAAaD,EAAQ,aAAa,cAAc,IAChDA,EAAQ,aAAa,OAAQA,EAAQ,aAAa,cAAc,CAAC,EACjEA,EAAQ,gBAAgB,QAAQ,EAExC,CAAC,CACL,ECvIA,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAO,0BACP,QAAS,KACb,CAAC,EACD,MAAME,UAAe,WAAY,CAC7B,aAAc,CACV,MAAK,EACL,MAAMC,EAAa,KAAK,aAAa,CAAE,KAAM,MAAM,CAAE,EAC/B,SAAS,KAAK,aAAa,sBAAsB,GACjE,SAAS,KAAK,aAAa,sBAAsB,EAIvD,MAAMC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAiCrBD,EAAW,YAAYC,EAAS,QAAQ,UAAU,EAAI,CAAC,EAElD,SAAS,eAAe,WAAW,GACpC,SAAS,KAAK,mBAAmB,YAAa;AAAA,SAA+C,CACrG,CACA,mBAAoB,CAEZ,KAAK,aAAa,UAAU,GAC5B,KAAK,WACA,cAAc,aAAa,EAC3B,mBAAmB,YAAa,YAAY,KAAK,aAAa,UAAU,CAAC,IAAI,EACtF,MAAMC,EAAa,KAAK,WAAW,cAAc,WAAW,EACtDC,EAAO,KAAK,WAAW,cAAc,OAAO,EAE5CJ,EAAS,KACTK,EAAW,KAAK,WAAW,cAAc,WAAW,EACpDC,EAAgB,KAAK,WAAW,cAAc,iBAAiB,EAE/DC,EAAiBX,GAAc,CACjCU,EAAc,UAAY,GAC1BV,EAAU,iBAAiB,YAAY,EAAE,QAAQ,SAAUE,EAAS,CAWhE,GAVgBA,EAAQ,UAEf,WACIA,EAAQ,aAAa,MAAM,IAC5BA,EAAQ,aAAa,OAAQ,SAAS,EACtCM,EAAK,UAAU,IAAI,aAAa,IAKxCN,EAAQ,UAAU,SAAS,WAAW,GACtCA,EAAQ,aAAa,YAAY,GACjCA,EAAQ,aAAa,WAAW,EAAG,CACnC,MAAMU,EAAQV,EAAQ,aAAa,YAAY,EACzCW,EAAYX,EAAQ,aAAa,WAAW,EAE5CY,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,aAAa,OAAQF,CAAK,EACjCE,EAAO,UAAU,IAAI,UAAU,EAC/BA,EAAO,aAAa,OAAQ,UAAU,EACtCA,EAAO,UAAY,uCAAuCF,CAAK,oBAAoBC,CAAS,yDAC5FH,EAAc,sBAAsB,YAAaI,CAAM,EACvD,MAAMC,EAAWD,EAAO,cAAc,cAAc,EAEpDZ,EAAQ,aAAa,OAAQ,OAAO,EAEhCA,EAAQ,UAAU,SAAS,MAAM,GACjCY,EAAO,aAAa,gBAAiB,EAAI,EACzCC,EAAS,UAAU,OAAO,QAAQ,EAClCf,EAAU,UAAU,IAAI,MAAM,EAC9BS,EAAS,UAAU,IAAI,MAAM,GAG7BP,EAAQ,UAAU,IAAI,QAAQ,EAGlCY,EAAO,iBAAiB,QAAS,SAAUjC,EAAG,CAC1CA,EAAE,eAAc,EAChBiC,EAAO,gBAAgB,eAAe,EACtC,QAAQ,IAAIZ,CAAO,EACnBA,EAAQ,UAAU,OAAO,MAAM,EAC/Ba,EAAS,UAAU,OAAO,QAAQ,EAElC,MAAMC,EAAWhB,EAAU,cAAc,wBAAwB,EAC7DgB,GACAA,EAAS,gBAAgB,MAAM,EAE/Bd,EAAQ,UAAU,SAAS,MAAM,GACjCM,EAAK,UAAU,OAAO,MAAM,EAC5BD,EAAW,gBAAgB,eAAe,EAC1C,WAAW,UAAY,CACnBC,EAAK,UAAU,IAAI,QAAQ,CAC/B,EAAG,GAAI,EACPR,EAAU,UAAU,IAAI,MAAM,EAC9BS,EAAS,UAAU,IAAI,MAAM,EAC7BP,EAAQ,UAAU,OAAO,QAAQ,IAGjCF,EAAU,UAAU,OAAO,MAAM,EACjCS,EAAS,UAAU,OAAO,MAAM,EAChC,WAAW,UAAY,CACnBP,EAAQ,UAAU,IAAI,QAAQ,CAClC,EAAG,GAAI,GAGXF,EAAU,iBAAiB,iBAAiB,EAAE,QAAQ,SAAUiB,EAAU,CAClEA,GAAYf,GACZe,EAAS,UAAU,OAAO,MAAM,CAExC,CAAC,EACDjB,EAAU,WACL,iBAAiB,0CAA0C,EAC3D,QAAQ,SAAUkB,EAAgB,CAC/BA,GAAkBJ,IAClBI,EAAe,gBAAgB,eAAe,EAC7BA,EAAe,cAAc,cAAc,EACnD,UAAU,OAAO,QAAQ,EAE1C,CAAC,CACL,EAAG,EAAK,CACZ,CACJ,CAAC,EACDlB,EAAU,iBAAiB,SAAS,EAAE,QAAQ,SAAUE,EAAS,CAC7DA,EAAQ,UAAU,IAAI,iBAAiB,CAC3C,CAAC,CACL,EA8GA,GA7GAS,EAAc,IAAI,EAClB,KAAK,iBAAiB,UAAW,IAAM,CACnC,QAAQ,IAAI,aAAa,EACzBA,EAAc,IAAI,CACtB,CAAC,EAEG,KAAK,cAAc,oBAAoB,GACvCH,EAAK,UAAU,IAAI,eAAe,EAGtCD,EAAW,iBAAiB,QAAS,SAAU1B,EAAG,CAC9CA,EAAE,eAAc,EAEhB2B,EAAK,UAAU,OAAO,MAAM,EAE5BJ,EAAO,iBAAiB,iBAAiB,EAAE,QAAQ,SAAUF,EAAS,CAClEA,EAAQ,UAAU,OAAO,MAAM,EAC/B,WAAW,UAAY,CACnBA,EAAQ,UAAU,IAAI,QAAQ,CAClC,EAAG,GAAI,CACX,CAAC,EACDE,EAAO,WAAW,iBAAiB,0CAA0C,EAAE,QAAQ,SAAUF,EAAS,CACtGA,EAAQ,gBAAgB,eAAe,EACtBA,EAAQ,cAAc,cAAc,EAC5C,UAAU,OAAO,QAAQ,CACtC,CAAC,EACGM,EAAK,UAAU,SAAS,MAAM,GAC9BJ,EAAO,UAAU,IAAI,MAAM,EAC3BI,EAAK,UAAU,OAAO,QAAQ,IAG9BJ,EAAO,UAAU,OAAO,MAAM,EAC9B,WAAW,UAAY,CACnBI,EAAK,UAAU,IAAI,QAAQ,CAC/B,EAAG,GAAI,EAEf,EAAG,EAAK,EAER,KAAK,iBAAiB,gBAAiB,IAAM,CACzCD,EAAW,gBAAgB,eAAe,EAC1CC,EAAK,UAAU,OAAO,MAAM,EAC5BJ,EAAO,UAAU,OAAO,MAAM,CAClC,CAAC,EAEDK,EAAS,iBAAiB,QAAS,IAAM,CACrC,MAAMO,EAAW,KAAK,cAAc,uBAAuB,EACvDA,GACAA,EAAS,MAAK,EAClBZ,EAAO,UAAU,OAAO,MAAM,EAC9BA,EAAO,iBAAiB,iBAAiB,EAAE,QAAQ,SAAUF,EAAS,CAClEA,EAAQ,UAAU,OAAO,MAAM,CACnC,CAAC,EACDE,EAAO,WAAW,iBAAiB,0CAA0C,EAAE,QAAQ,SAAUF,EAAS,CACtGA,EAAQ,gBAAgB,eAAe,EACtBA,EAAQ,cAAc,cAAc,EAC5C,UAAU,OAAO,QAAQ,CACtC,CAAC,EACDO,EAAS,UAAU,OAAO,MAAM,CACpC,CAAC,EAED,KAAK,iBAAiB,QAAUU,GAAU,CACtC,GAAIA,GAASA,EAAM,kBAAkB,aAAeA,EAAM,OAAO,QAAQ,SAAS,GAC1E,OAAO,WAAa,KAAO,CAACA,EAAM,OAAO,QAAQ,YAAY,EAAG,CAEhE,MAAMC,EADUD,EAAM,OAAO,QAAQ,SAAS,EACtB,QAAQ,SAAS,EACnCE,EAAUD,EAAQ,WACpBA,EAAQ,aAAa,MAAM,EAC3BA,EAAQ,gBAAgB,MAAM,EAE9BA,EAAQ,aAAa,OAAQ,MAAM,EAEvChB,EAAO,iBAAiB,iBAAiB,EAAE,QAAQ,SAAUF,EAAS,CAClEA,EAAQ,UAAU,OAAO,MAAM,EAC/B,WAAW,UAAY,CACnBM,EAAK,UAAU,IAAI,QAAQ,CAC/B,EAAG,GAAI,CACX,CAAC,EACDJ,EAAO,WAAW,iBAAiB,0CAA0C,EAAE,QAAQ,SAAUF,EAAS,CACtGA,EAAQ,gBAAgB,eAAe,EACtBA,EAAQ,cAAc,cAAc,EAC5C,UAAU,OAAO,QAAQ,CACtC,CAAC,EAED,MAAM,KAAKmB,EAAQ,iBAAiB,kBAAkB,CAAC,EAAE,QAASC,GAAwB,CAClFA,GAAuBF,GACvBE,EAAoB,gBAAgB,MAAM,CAClD,CAAC,EACG,KAAK,iBAAiB,wBAAwB,EAAE,QAChDb,EAAS,UAAU,IAAI,MAAM,EAC7BL,EAAO,UAAU,IAAI,MAAM,EACvB,KAAK,iBAAiB,0CAA0C,EAAE,QAClEA,EAAO,UAAU,IAAI,gBAAgB,IAGzCK,EAAS,UAAU,OAAO,MAAM,EAChCL,EAAO,UAAU,OAAO,MAAM,EAC9BA,EAAO,UAAU,OAAO,gBAAgB,GAE5Ce,EAAM,eAAc,CACxB,CAER,CAAC,EAED,KAAK,iBAAiB,SAAS,EAAE,QAASI,GAAmB,CACzD,MAAMC,EAAUD,EAAe,cAAc,SAAS,EACjCA,EAAe,cAAc,cAAc,EACnD,aAAa,aAAcC,EAAQ,WAAW,CAC/D,CAAC,EAEG,KAAK,cAAc,iBAAiB,EAAG,CACvChB,EAAK,UAAU,IAAI,YAAY,EAC/B,MAAMiB,EAAgB,KAAK,WAAW,cAAc,iBAAiB,EACrEA,EAAc,UAAU,OAAO,QAAQ,EACvCA,EAAc,mBAAmB,aAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAY3C,EACJ,MAAMC,EAAe,KAAK,WAAW,cAAc,gBAAgB,EAC7DC,EAAc,KAAK,WAAW,cAAc,eAAe,EAC3DC,EAAe,KAAK,WAAW,cAAc,gBAAgB,EAC/D,KAAK,aAAa,kBAAkB,IACpCA,EAAa,aAAa,OAAQ,MAAM,EACxC,KAAK,UAAU,IAAI,aAAa,EAChCF,EAAa,aAAa,gBAAiB,EAAI,GAEnDA,EAAa,iBAAiB,QAAS,IAAM,CACzCE,EAAa,aAAa,OAAQ,MAAM,EACxC,KAAK,UAAU,IAAI,aAAa,EAChCF,EAAa,aAAa,gBAAiB,EAAI,CACnD,CAAC,EACDC,EAAY,iBAAiB,QAAS,IAAM,CACxCC,EAAa,gBAAgB,MAAM,EACnC,KAAK,UAAU,OAAO,aAAa,EACnCF,EAAa,gBAAgB,eAAe,CAChD,CAAC,CACL,CACA,GAAI,KAAK,UAAU,SAAS,aAAa,EAAG,CACxC,IAAIG,EAAa,OAAO,QACxB,OAAO,SAAW,SAAUhD,EAAG,CACvBgD,EAAa,OAAO,QACpB,SAAS,KAAK,aAAa,iBAAkB,MAAM,EAGnD,SAAS,KAAK,aAAa,iBAAkB,IAAI,EAEjD,OAAO,QAAU,IACjB,SAAS,KAAK,UAAU,IAAI,SAAS,EAGrC,SAAS,KAAK,UAAU,OAAO,SAAS,EAE5CA,EAAa,OAAO,OACxB,CACJ,CACJ,CACJ,CChUA,IAAI1D,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMpB,EAAO,CAAE,OAAOA,aAAiBkB,EAAIlB,EAAQ,IAAIkB,EAAE,SAAUG,EAAS,CAAEA,EAAQrB,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKkB,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUvB,EAAO,CAAE,GAAI,CAAEwB,EAAKL,EAAU,KAAKnB,CAAK,CAAC,CAAG,OAASyB,EAAG,CAAEH,EAAOG,CAAC,CAAG,CAAE,CAC1F,SAASC,EAAS1B,EAAO,CAAE,GAAI,CAAEwB,EAAKL,EAAU,MAASnB,CAAK,CAAC,CAAG,OAASyB,EAAG,CAAEH,EAAOG,CAAC,CAAG,CAAE,CAC7F,SAASD,EAAKG,EAAQ,CAAEA,EAAO,KAAON,EAAQM,EAAO,KAAK,EAAIP,EAAMO,EAAO,KAAK,EAAE,KAAKJ,EAAWG,CAAQ,CAAG,CAC7GF,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAA,CAAE,GAAG,MAAM,CACxE,CAAC,CACL,EAIA,MAAMyD,UAAkB,WAAY,CAChC,aAAc,CACV,MAAK,EACL,KAAK,aAAe,IAAM,CACtB,MAAMC,EAAiB,KAAK,UAC5B,KAAK,UAAY,YAAa,KAAK,aAAa,OAAO,EAAI,UAAU,KAAK,aAAa,OAAO,CAAC,IAAM,EAAE;AAAA,MAC7GA,CAAc;AAAA,eAEZ,EACA,KAAK,eAAkB9C,GAAS,CAC5B,IAAI+C,EACJ,MAAMC,GAAcD,EAAK,KAAK,cAAc,SAAS,KAAO,MAAQA,IAAO,OAASA,EAAK,KAEzFC,EAAW,iBAAiB,YAAY,EAAE,QAAS/B,GAAY,CACtDA,EAAQ,aAAa,MAAM,GAC5BA,EAAQ,OAAM,CACtB,CAAC,EACD,MAAM6B,EAAiBE,EAAW,UAClCA,EAAW,UAAY,GAAGF,CAAc,GAAG/C,EAAYC,CAAI,CAAC,GAC5D,MAAMiD,EAAc,IAAI,YAAY,SAAS,EAC7CD,EAAW,cAAcC,CAAW,CACxC,EACA,KAAK,mBAAqB,IAAM,CAE5B,MAAM,KAAK,KAAK,iBAAiB,8BAA8B,CAAC,EAAE,QAAShC,GAAY,CACnFA,EAAQ,aAAa,OAAQ,WAAW,CAC5C,CAAC,EACD,MAAM6B,EAAiB,KAAK,UAC5B,KAAK,UAAY,GAAGA,CAAc,EACtC,EACA,KAAK,qBAAwB9C,GAAS,CAClC,KAAK,UAAYD,EAAYC,CAAI,EAEjC,MAAM,KAAK,KAAK,iBAAiB,8BAA8B,CAAC,EAAE,QAASiB,GAAY,CACnFA,EAAQ,aAAa,OAAQ,WAAW,CAC5C,CAAC,EACD,MAAM6B,EAAiB,KAAK,UAC5B,KAAK,UAAY,GAAGA,CAAc,EACtC,CACJ,CACA,mBAAoB,CAChB,OAAO5D,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,IAAI6D,EAAIG,EACR,MAAMnC,EAAY,KAClB,KAAK,SAAWgC,EAAK,KAAK,cAAgB,MAAQA,IAAO,OAAS,OAASA,EAAG,cAAc,UAAU,EACjG,OAAO,eAAe,IAAI,SAAS,GACpC,OAAO,eAAe,OAAO,UAAW5B,CAAM,EAC9C,KAAK,aAAa,UAAU,IAC5B,KAAK,aAAY,GAChB+B,EAAK,KAAK,cAAc,oBAAoB,KAAO,MAAQA,IAAO,QAAkBA,EAAG,UAAU,OAAO,SAAS,GAKzG,MAAM3C,EAAmB,EAAE,KAAMP,GAAS,CACnD,GAAI,OAAOA,GAAQ,SACf,OAAOA,EAGX,GAAI,KAAK,aAAa,UAAU,EAAG,CAC/B,MAAMmD,EAAenD,EAAK,OAAOK,GAAWA,EAAQ,WAAW,OAAS,sBAAsB,EAC9F,KAAK,eAAe8C,CAAY,CACpC,MAEI,KAAK,qBAAqBnD,CAAI,EAElC,MAAO,EACX,CAAC,EACgB,MAAMa,EAAoB,EAAE,KAAMb,IAC/Cc,EAAgBC,EAAWf,CAAI,EAC/B,MAAM,KAAK,SAAS,iBAAiB,iBAAiB,CAAC,EAAE,QAASiB,GAAY,CACtEjB,EAAK,WAAWiB,EAAQ,aAAa,eAAe,CAAC,IACrDA,EAAQ,UAAYjB,EAAK,WAAWiB,EAAQ,aAAa,eAAe,CAAC,EACjF,CAAC,EACD,MAAM,KAAK,SAAS,iBAAiB,sBAAsB,CAAC,EAAE,QAASA,GAAY,CAE3EjB,EAAK,WAAWiB,EAAQ,aAAa,oBAAoB,CAAC,GAC1DA,EAAQ,aAAa,sBAAuBjB,EAAK,WAAWiB,EAAQ,aAAa,oBAAoB,CAAC,CAAC,CAC/G,CAAC,EACM,GACV,CACL,CAAC,CACL,CACJ","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"std-nav.component.min.js","sources":["../../modules/nav.js","std-nav.component.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nexport const navTemplate = /* HTML */ `<div class=\"container\">\n <slot name=\"logo\"></slot>\n\n <div class=\"buttons-holder\">\n <button class=\"btn-menu\" part=\"btn-menu-account\" id=\"btn-menu-account\">\n <span class=\"btn btn-primary\">\n <span id=\"account-btn-title\"></span>\n <i class=\"fa-user fa-solid\"></i>\n <i class=\"fa-regular fa-xmark-large\"></i>\n </span>\n </button>\n <button class=\"btn-menu\" part=\"btn-menu\" id=\"btn-menu\">\n Menu\n <i class=\"fa-regular fa-bars\"></i>\n <i class=\"fa-regular fa-xmark-large\"></i>\n </button>\n </div>\n\n <div class=\"menu__outer\" part=\"menu__outer\">\n <div class=\"menu closed\" part=\"menu\">\n\n <div class=\"menu__primary\">\n <slot></slot>\n <slot name=\"dual\"></slot>\n </div>\n <div class=\"dialog__wrapper d-none\" id=\"search-wrapper\"></div>\n\n <slot name=\"actions\"></slot>\n\n <div class=\"menu__secondary bg-light\">\n <div class=\"container\">\n\n <slot name=\"secondary\"></slot>\n </div>\n </div>\n </div>\n <div class=\"nav--menu\" part=\"nav--menu\">\n <slot name=\"account\"></slot>\n </div>\n </div>\n</div>\n<div class=\"backdrop\" part=\"backdrop\"></div>`;\n// #region Standadised Nav\nexport const populateNav = (data, slot = '') => {\n let html = ``;\n data.forEach((feature) => {\n if (feature.attributes.sections.length)\n html += `<details name=\"megamenu\" ${slot != '' ? `slot=\"${slot}\"` : ''}><summary>${feature.attributes.title}</summary><div data-title=\"${feature.attributes.title}\">${populateSections(feature.attributes.sections)}</div></details>`;\n else if (feature.attributes.links)\n html += `<details name=\"megamenu\" ${slot != '' ? `slot=\"${slot}\"` : ''}><summary>${feature.attributes.title}</summary><div data-title=\"${feature.attributes.title}\">${populateLinks(feature.attributes.links)}</div></details>`;\n else\n html += `<a href=\"/\" ${slot != '' ? `slot=\"${slot}\"` : ''}>${feature.attributes.title}</a>`;\n });\n return html;\n};\nexport const populateSections = (data) => {\n let html = ``;\n data.forEach((section) => {\n html += `<span class=\"section section--${section.layout}\">\n ${section.title ? `<span class=\"lead section-title\" data-product=\"${section.id}\" data-title>${section.title}:</span>` : ''}\n ${section.description ? `<span class=\"lead section-desc text-body\" data-product=\"${section.id}\"><i class=\"fa-solid fa-rocket colour-warning\"></i> ${section.description}</span>` : ''}\n ${populateLinks(section.links)}\n </span>`;\n });\n return html;\n};\nexport const populateLinks = (data) => {\n let html = ``;\n data.forEach((link) => {\n html += `<a href=\"${link.destinations.unlinked}\" title=\"Learn more about this features product\" target=\"_blank\" data-product=\"${link.productKey}\" data-feature=\"${link.featureKey}\" data-enabled=\"${link.destinations.linkedEnabled}\" data-disabled=\"${link.destinations.linkedDisabled}\">${link.title}</a>`;\n });\n return html;\n};\nexport const loadNavData = (mode) => __awaiter(void 0, void 0, void 0, function* () {\n const ajaxURL = mode != 'dev' ? 'https://hub.iamproperty.group/data/ecosystem-switcher.json' : 'https://dev.hub.iamproperty.group/data/ecosystem-switcher.json';\n try {\n const response = yield fetch(ajaxURL, {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n },\n });\n const json = yield response.json();\n const data = json.data ? json.data : json;\n return data;\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError') {\n return true;\n }\n console.log(error);\n return 'There has been a problem. Please try again in a few moments.';\n }\n});\nexport const loadUserData = (mode, subject, product) => __awaiter(void 0, void 0, void 0, function* () {\n const ajaxURL = mode != 'dev' ? 'https://api.sso.iamproperty.group/navigation/access-context' : 'https://api.dev.sso.iamproperty.group/navigation/access-context';\n try {\n const response = yield fetch(ajaxURL, {\n method: 'post',\n headers: {\n Accept: 'application/vnd.api+json',\n 'Content-Type': 'application/vnd.api+json'\n },\n body: JSON.stringify({\n \"data\": {\n \"type\": \"navigation-access-context-request\",\n \"attributes\": {\n \"subject\": subject,\n \"requestingProduct\": product,\n \"navigationSchemaVersion\": \"2026-04-16\"\n }\n }\n })\n });\n const json = yield response.json();\n const data = json.data ? json.data : json;\n return data;\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError') {\n return true;\n }\n console.log(error);\n return 'There has been a problem. Please try again in a few moments.';\n }\n});\nexport const setEnabledLinks = (component, data) => {\n const elements = component.querySelectorAll('[data-product][data-feature]');\n elements.forEach((element) => {\n if (data.attributes.features[element.getAttribute('data-product')]) {\n const isEnabled = data.attributes.features[element.getAttribute('data-product')].includes(element.getAttribute('data-feature'));\n element.setAttribute('data-is-enabled', isEnabled);\n if (isEnabled && element.getAttribute('data-enabled')) {\n element.setAttribute('href', element.getAttribute('data-enabled'));\n element.removeAttribute('target');\n element.removeAttribute('title');\n }\n }\n });\n};\n// #endregion\nexport const branchSelector = (component) => {\n const branchSelector = component.querySelector(\"iam-branch-selector\");\n const mql = window.matchMedia(\"(width > 62em)\");\n if (mql.matches)\n branchSelector === null || branchSelector === void 0 ? void 0 : branchSelector.setAttribute('slot', 'secondary');\n mql.addEventListener(\"change\", (e) => {\n if (e.matches && component.classList.contains('has-secondary'))\n branchSelector === null || branchSelector === void 0 ? void 0 : branchSelector.setAttribute('slot', 'secondary');\n else\n branchSelector === null || branchSelector === void 0 ? void 0 : branchSelector.setAttribute('slot', 'account');\n });\n};\nexport const menuEvents = (component, menu, menuButton, accountMenu, accountMenuButton) => {\n menuButton.addEventListener('click', (e) => {\n var _a;\n e.preventDefault();\n menu.classList.toggle('open');\n accountMenu.classList.remove('open');\n if (menu.classList.contains('open')) {\n component.classList.add('open');\n }\n else {\n component.classList.remove('open');\n }\n accountMenuButton === null || accountMenuButton === void 0 ? void 0 : accountMenuButton.querySelector('.btn-primary').classList.remove('active');\n accountMenuButton === null || accountMenuButton === void 0 ? void 0 : accountMenuButton.removeAttribute('aria-expanded');\n (_a = component.querySelector(':scope > details[open]')) === null || _a === void 0 ? void 0 : _a.removeAttribute('open');\n }, false);\n};\nexport const megaMenuTitles = (component) => {\n // Mega menu title\n component.querySelectorAll('details').forEach((detailsElement) => {\n const summary = detailsElement.querySelector('summary');\n const containerDiv = detailsElement.querySelector(':Scope > div');\n if (containerDiv)\n containerDiv.setAttribute('data-title', summary.textContent);\n });\n};\nexport const megaMenusEvents = (component, menu, menuButton, accountMenu, accountMenuButton, backdrop) => {\n component.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('summary')) {\n const summary = event.target.closest('summary');\n const details = summary.closest('details');\n if (window.innerWidth > 992 && !event.target.closest('.nav--menu')) {\n if (details === null || details === void 0 ? void 0 : details.hasAttribute('open')) { // Is open before the user clicks on the details summary\n backdrop.classList.remove('show');\n component.classList.remove('open');\n component.classList.remove('open-secondary');\n }\n else {\n backdrop.classList.add('show');\n component.classList.add('open');\n if ((details === null || details === void 0 ? void 0 : details.hasAttribute('slot')) && (details === null || details === void 0 ? void 0 : details.getAttribute('slot')) == \"secondary\")\n component.classList.add('open-secondary');\n // Open the first details element if one isn't open\n if (!details.querySelector('details[open]') && details.querySelector('details'))\n details.querySelector('details').setAttribute('open', true);\n }\n // Close all other siblings of details\n details === null || details === void 0 ? void 0 : details.parentNode.querySelectorAll(':scope > details').forEach(element => {\n if (element != details)\n element.removeAttribute('open');\n });\n menu.classList.remove('open');\n accountMenu.classList.remove('open');\n accountMenuButton === null || accountMenuButton === void 0 ? void 0 : accountMenuButton.querySelector('.btn-primary').classList.remove('active');\n menuButton === null || menuButton === void 0 ? void 0 : menuButton.removeAttribute('aria-expanded');\n accountMenuButton === null || accountMenuButton === void 0 ? void 0 : accountMenuButton.removeAttribute('aria-expanded');\n }\n }\n });\n};\nexport const accountMenuEvents = (component, menu, menuButton, accountMenu, accountMenuButton, backdrop) => {\n accountMenuButton.addEventListener('click', () => {\n var _a;\n // Close the main menu\n menu.classList.remove('open');\n accountMenu.classList.toggle('open');\n if (accountMenu.classList.contains('open')) {\n component.classList.add('open');\n accountMenuButton === null || accountMenuButton === void 0 ? void 0 : accountMenuButton.querySelector('.btn-primary').classList.add('active');\n accountMenuButton === null || accountMenuButton === void 0 ? void 0 : accountMenuButton.setAttribute('aria-expanded', true);\n }\n else {\n component.classList.remove('open');\n accountMenuButton === null || accountMenuButton === void 0 ? void 0 : accountMenuButton.querySelector('.btn-primary').classList.remove('active');\n accountMenuButton === null || accountMenuButton === void 0 ? void 0 : accountMenuButton.removeAttribute('aria-expanded');\n }\n (_a = component.querySelector(':scope > details[open]')) === null || _a === void 0 ? void 0 : _a.removeAttribute('open');\n menuButton === null || menuButton === void 0 ? void 0 : menuButton.removeAttribute('aria-expanded');\n });\n};\nexport const backdropEvents = (component, menu, menuButton, accountMenu, accountMenuButton, backdrop) => {\n // Close the menu on the click of the backdrop on desktop\n backdrop.addEventListener('click', () => {\n const openMenu = component.querySelector(':scope > details[open]');\n if (openMenu)\n openMenu.removeAttribute('open');\n component.classList.remove('open');\n menu.classList.remove('open');\n menuButton === null || menuButton === void 0 ? void 0 : menuButton.removeAttribute('aria-expanded');\n accountMenu.classList.remove('open');\n accountMenuButton === null || accountMenuButton === void 0 ? void 0 : accountMenuButton.querySelector('.btn-primary').classList.remove('active');\n accountMenuButton === null || accountMenuButton === void 0 ? void 0 : accountMenuButton.removeAttribute('aria-expanded');\n backdrop.classList.remove('show');\n });\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { populateNav, loadNavData, loadUserData, setEnabledLinks } from '../../modules/nav';\nclass iamSTDNav extends HTMLElement {\n constructor() {\n super();\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const nav = this.closest('iam-nav');\n const mode = this.hasAttribute('data-mode') ? this.getAttribute('data-mode') : 'dev';\n // if not an sso use load default from component\n if (!this.hasAttribute('data-sso-subject') || this.getAttribute('data-sso-subject') == 'false' || this.getAttribute('data-sso-subject') == false || this.getAttribute('data-sso-subject') == null) {\n if (this.hasAttribute('slot') && this.getAttribute('slot') == \"secondary\") {\n this.outerHTML = `<a href=\"https://my.iamproperty.com\" slot=\"secondary\">iamproperty</a>\n<a href=\"https://crm.iamproperty.com/MyDay\" slot=\"secondary\">CRM</a>\n<a href=\"https://my.iamproperty.com/ic/dashboard\" slot=\"secondary\">movebutler</a>\n<a href=\"https://my.iamproperty.com/auction\" slot=\"secondary\">iamsold</a>`;\n (_a = document.querySelector(`a[href*='${window.location.hostname}'][slot=\"secondary\"]`)) === null || _a === void 0 ? void 0 : _a.classList.add('selected');\n }\n return;\n }\n const data = yield loadNavData(mode).then((data) => {\n if (typeof data == 'string') {\n return data;\n }\n if (!this.hasAttribute('slot')) { // This is the nav on the hub page\n const filteredData = data.filter(section => section.attributes.title != \"Learning and support\"); // Not needed for the hub page\n this.closest('iam-nav').querySelectorAll(`:scope > *:not([slot]):not(iam-std-nav)`).forEach((element) => {\n element.remove(); // Remove the default links\n });\n this.outerHTML = populateNav(filteredData);\n }\n else {\n this.closest('iam-nav').querySelectorAll(`:scope > *[slot=\"secondary\"]:not(iam-std-nav):not(iam-branch-selector)`).forEach((element) => {\n element.remove(); // Remove the default links\n });\n this.outerHTML = populateNav(data, 'secondary');\n }\n return true;\n });\n if (!this.hasAttribute('data-sso-subject') && !this.hasAttribute('data-product'))\n return;\n const subject = this.getAttribute('data-sso-subject');\n const product = this.getAttribute('data-product');\n const userData = yield loadUserData(mode, subject, product).then((data) => {\n if (!data.attributes)\n return false;\n setEnabledLinks(nav, data);\n Array.from(document.querySelectorAll('[data-variable]')).forEach((element) => {\n if (data.attributes[element.getAttribute('data-variable')])\n element.innerHTML = data.attributes[element.getAttribute('data-variable')];\n });\n Array.from(document.querySelectorAll('[data-save-variable]')).forEach((element) => {\n if (data.attributes[element.getAttribute('data-save-variable')])\n element.setAttribute('data-variable-value', data.attributes[element.getAttribute('data-save-variable')]);\n });\n return true;\n });\n });\n }\n}\nexport default iamSTDNav;\n"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","populateNav","data","slot","html","feature","populateSections","populateLinks","section","link","loadNavData","mode","ajaxURL","json","error","loadUserData","subject","product","setEnabledLinks","component","element","isEnabled","iamSTDNav","_a","nav","filteredData"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta7
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const P=function(t){return typeof t!="string"?!1:!isNaN(t)&&!isNaN(parseFloat(t))},B=(t,e)=>String(t).padStart(e,"0"),V=t=>t.charAt(0).toUpperCase()+t.slice(1),p=(t,e,a)=>e.split(/[\.\[\]\'\"]/).filter(i=>i).reduce((i,r)=>i?i[r]:a,t),T=(t=1)=>Math.floor(Math.random()*Date.now()*(t+1));var W=function(t,e,a,i){function r(l){return l instanceof a?l:new a(function(b){b(l)})}return new(a||(a=Promise))(function(l,b){function s(m){try{n(i.next(m))}catch(d){b(d)}}function o(m){try{n(i.throw(m))}catch(d){b(d)}}function n(m){m.done?l(m.value):r(m.value).then(s,o)}n((i=i.apply(t,e||[])).next())})};const F=(t,e)=>{switch(t){case"datetime":return new Date(e).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(e).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(e).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return e=V(e)}},U=function(t){const e=new Object;return Array.from(t.querySelectorAll("[data-filter]")).forEach(i=>{if(!(i.type=="radio"&&!i.checked)&&!(i.type=="checkbox"&&!i.checked)&&i&&i.value){const r=i.getAttribute("data-filter");let l=i.value;i.hasAttribute("data-date-from")&&(l+="-date-from"),i.hasAttribute("data-date-to")&&(l+="-date-to"),e[r]||(e[r]=[]),e[r].push(l)}}),e},J=t=>{let e=document.createElement("form");const a=t.querySelector("table");t.hasAttribute("data-filterby")?e=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?e=t.closest("form"):a.parentNode.insertBefore(e,a.nextSibling),e.hasAttribute("data-ajax")&&t.setAttribute("data-ajax",e.getAttribute("data-ajax")),e.hasAttribute("data-schema")&&t.setAttribute("data-schema",e.getAttribute("data-schema"))},w=(t,e,a,i,r)=>{a.querySelector("[name=show]")||a.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),a.querySelector("[name=page]")||a.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),i.addEventListener("update-show",l=>{if(a.querySelector("[name=show]").value!=l.detail.show){a.querySelector("[name=show]").value=l.detail.show;const b=new CustomEvent("update-show",{detail:{show:l.detail.show}});t.dispatchEvent(b),H(t,i),r()}}),i.addEventListener("update-page",l=>{if(a.querySelector("[name=page]").value!=l.detail.page){a.querySelector("[name=page]").value=l.detail.page;const b=new CustomEvent("update-page",{detail:{page:l.detail.page}});if(t.dispatchEvent(b),H(t,i),r(),!t.hasAttribute("data-no-scroll")){const o=e.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:o,behavior:"smooth"})}}})},X=(t,e)=>{let a=document.createElement("form");return t.hasAttribute("data-filterby")?a=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?a=t.closest("form"):t.querySelector("form")?a=t.querySelector("form"):e.parentNode.insertBefore(a,e.nextSibling),t.hasAttribute("data-ajax")&&a.setAttribute("data-ajax",t.getAttribute("data-ajax")),a},M=(t,e,a,i)=>{const r=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",15),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),G(t,i),C(e),K(t,e),t.classList.contains("mh-sm")&&r.classList.add("mh-sm"),t.classList.contains("mh-md")&&r.classList.add("mh-md"),t.classList.contains("mh-lg")&&r.classList.add("mh-lg"),t.classList.contains("table--cta")&&(Q(t,e),Z(t,e)),Y(t)},Y=t=>{Array.from(t.querySelectorAll("tr[data-highlight]")).forEach(e=>{e.insertAdjacentHTML("afterend",`<tr role="presentation" class="tr--highlight">
|
|
5
5
|
<td colspan="100%"><i class="fa-solid fa-star"></i> ${e.getAttribute("data-highlight")}</td>
|
|
6
6
|
</tr>`)})},G=(t,e)=>{t.hasAttribute("data-total")&&e.setAttribute("data-total",t.getAttribute("data-total")),t.hasAttribute("data-page")&&e.setAttribute("data-page",t.getAttribute("data-page")),t.hasAttribute("data-show")&&e.setAttribute("data-show",t.getAttribute("data-show")),t.hasAttribute("data-increment")&&e.setAttribute("data-increment",t.getAttribute("data-show")),t.hasAttribute("data-page-jump")&&e.setAttribute("data-page-jump","true"),t.hasAttribute("data-per-page")&&e.setAttribute("data-per-page","true"),t.hasAttribute("data-item-count")&&e.setAttribute("data-item-count","true"),t.hasAttribute("data-loading")&&e.setAttribute("data-loading","true"),t.classList.contains("table--fullwidth")&&e.setAttribute("data-minimal","true")},H=(t,e)=>{t.setAttribute("data-total",e.getAttribute("data-total")),t.setAttribute("data-page",e.getAttribute("data-page")),t.setAttribute("data-show",e.getAttribute("data-show")),t.setAttribute("data-increment",e.getAttribute("data-show"))},q=t=>{t.getAttribute("data-total");const e=t.getAttribute("data-page"),a=t.getAttribute("data-show");t.getAttribute("data-increment");const i=t.querySelector("table"),r=e*a,l=r-a;Array.from(i.querySelectorAll("tbody tr")).forEach((b,s)=>{s>=l&&s<r?b.classList.add("show"):b.classList.remove("show")})},C=t=>{const e=Array.from(t.querySelectorAll("thead th"));Array.from(t.querySelectorAll("tbody tr")).forEach(i=>{const r=Array.from(i.querySelectorAll("th, td")),l=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","successful","failed"];r.forEach((b,s)=>{const o=e[s];if(typeof o<"u"){const n=document.createElement("div");n.innerHTML=o.innerHTML;const m=n.textContent||n.innerText||"";b.setAttribute("data-label",m),o.hasAttribute("data-td-class")&&b.setAttribute("class",o.getAttribute("data-td-class")),o.hasAttribute("data-format")&&(b.setAttribute("data-format",o.getAttribute("data-format")),b.innerHTML=F(o.getAttribute("data-format"),b.textContent.trim())),l.includes(b.textContent.trim().toLowerCase())&&b.setAttribute("data-content",b.textContent.trim().toLowerCase())}})})},K=(t,e)=>{if(t.classList.contains("table--fullwidth")&&!t.hasAttribute("data-expandable")||e.querySelectorAll("thead tr th").length<4&&!t.hasAttribute("data-expandable"))return!1;Array.from(e.querySelectorAll("thead tr")).forEach(a=>{e.querySelectorAll("thead tr th.expand-button-heading").length||a.insertAdjacentHTML("afterbegin",`<th class="${t.hasAttribute("data-expandable")?"th--fixed ":""}expand-button-heading"></th>`)}),Array.from(e.querySelectorAll("tbody tr")).forEach((a,i)=>{Array.from(a.querySelectorAll("p")).forEach((l,b)=>{const s=window.getComputedStyle(l,null).getPropertyValue("line-height");console.log(parseInt(s));const o=Math.ceil(l.offsetHeight/parseInt(s));l.setAttribute("data-lines",o),o>=3&&l.classList.add("three-lines")}),a.querySelector("p")&&a.setAttribute("data-view","default");const r=a.getAttribute("data-view")==="full"?"aria-expanded":"";a.querySelectorAll("td.td--expand").length||a.insertAdjacentHTML("afterbegin",`<td class="${t.hasAttribute("data-expandable")?"td--fixed ":""}td--expand"><button class="btn btn-compact btn-secondary btn-sm fa-chevron-down" data-expand-button ${r} data-index="${i}">Expand</button></td>`)}),e.addEventListener("click",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("[data-expand-button]")){const i=a.target.closest("[data-expand-button]"),r=i.closest("tr");i.toggleAttribute("aria-expanded"),i.classList.contains("fa-chevron-down")?(i.classList.remove("fa-chevron-down"),i.classList.add("fa-chevron-up")):(i.classList.remove("fa-chevron-up"),i.classList.add("fa-chevron-down")),r.getAttribute("data-view")=="full"?r.setAttribute("data-view","default"):r.setAttribute("data-view","full"),i.blur(),t.dispatchEvent(new CustomEvent("row-expanded",{detail:{row:i.getAttribute("data-index")}}))}})},Q=(t,e)=>{let a=0;Array.from(e.querySelectorAll("tbody tr")).forEach(i=>{const r=window.getComputedStyle(document.querySelector("html")),l=i.querySelector(":scope > *:last-child > *:first-child");if(l){l.classList.add("text-nowrap");let b=l.offsetWidth/parseFloat(r.fontSize);b+=1.8,a=a>b?a:b}}),t.style.setProperty("--cta-width",`${a}rem`)},Z=(t,e)=>{function a(){Array.from(e.querySelectorAll("tr")).forEach(i=>{const r=i.offsetHeight;i.style.setProperty("--row-height",`${r}px`)})}new ResizeObserver(a).observe(e)},$=(t,e)=>{if(t.querySelector("iam-actionbar[data-selectall]")||document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`)){const a=t.querySelector("iam-actionbar[data-selectall]")?t.querySelector("iam-actionbar[data-selectall]"):document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`);tt(t,e,a)}t.querySelectorAll(".dialog__wrapper .btn-compact").forEach((a,i)=>{const l=a.closest(".dialog__wrapper").querySelector("dialog");if(l){const m=`menu${T(i)}`;l.setAttribute("id",m),l.setAttribute("popover","auto"),a.setAttribute("popovertarget",m),l.outerHTML=l.outerHTML.replace(/<dialog/g,"<iam-menu").replace(/<\/dialog>/g,"</iam-menu>")}a.classList.add("btn-sm"),a.classList.add("m-0");const b=a.closest("tr"),s=a.closest("td"),n=Array.prototype.slice.call(b.children).indexOf(s);s.classList.add("td--fixed"),e.querySelector(`thead tr th:nth-child(${n+1})`).classList.add("th--fixed")})},tt=(t,e,a)=>{Array.from(e.querySelectorAll("thead tr")).forEach(i=>{i.querySelector(".expand-button-heading")?i.querySelector(".expand-button-heading").insertAdjacentHTML("afterend",'<th class="th--fixed"></th>'):i.insertAdjacentHTML("afterbegin",'<th class="th--fixed"></th>')}),Array.from(e.querySelectorAll("tbody tr")).forEach((i,r)=>{if(i.setAttribute("data-index",r+1),!i.querySelector(".selectrow")){const l=`row${T(r)}`;i.querySelector(".td--expand")?i.querySelector(".td--expand").insertAdjacentHTML("afterend",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${l}" ${i.hasAttribute("data-selected")?'checked="true"':""}/><label for="${l}"><span class="visually-hidden">Select row</span></label></td>`):i.insertAdjacentHTML("afterbegin",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${l}" ${i.hasAttribute("data-selected")?'checked="true"':""}/><label for="${l}"><span class="visually-hidden">Select row</span></label></td>`)}}),e.addEventListener("change",i=>{if(i&&i.target instanceof HTMLElement&&i.target.closest(".selectrow input")){const r=i.target.closest(".selectrow input"),l=i.target.closest("tr"),b=e.querySelectorAll('.selectrow input[type="checkbox"]').length,s=e.querySelectorAll('.selectrow input[type="checkbox"]:checked').length;a.setAttribute("data-selected",b==s?"all":s);const o=new CustomEvent("row-selected",{detail:{rowIndex:l.getAttribute("data-index"),checked:!!r.checked}});t.dispatchEvent(o)}}),a.addEventListener("selected",i=>{if(i.detail.selected=="0"){Array.from(e.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(l=>{l.checked=!1});const r=new CustomEvent("all-rows-unselected");t.dispatchEvent(r)}else if(i.detail.selected=="all"){Array.from(e.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(l=>{l.checked=!0});const r=new CustomEvent("all-rows-selected");t.dispatchEvent(r)}})},at=(t,e,a,i,r)=>{et(t,e),it(t,e),a.addEventListener("change",l=>{l&&l.target instanceof HTMLElement&&l.target.closest("[data-sort]")&<(e,a,r)})},et=(t,e)=>{e.addEventListener("click",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("[data-sort]")){const i=a.target.closest("[data-sort]");i.setAttribute("data-sort","true"),Array.from(e.querySelectorAll("th[data-sort]")).forEach(s=>{s!=i&&(s.setAttribute("data-sort",""),s.removeAttribute("data-order-by"),i.setAttribute("title","Click to sort ascending"))}),i.hasAttribute("data-order-by")&&i.getAttribute("data-order-by")=="asc"?(i.setAttribute("data-order-by","desc"),i.setAttribute("title","Click to sort ascending")):(i.setAttribute("data-order-by","asc"),i.setAttribute("title","Click to sort descending"));const r=new CustomEvent("sort-by-heading",{detail:{heading:i.textContent,sortBy:i.getAttribute("data-order-by"),ref:i.getAttribute("data-ref")}});t.dispatchEvent(r);const l=i.textContent.trim(),b=i.getAttribute("data-order-by");t.hasAttribute("data-submit")||z(e,l,b)}})},it=(t,e)=>{var a;const i=t.querySelector("iam-actionbar");if(!i)return!1;const r=(a=i.shadowRoot)===null||a===void 0?void 0:a.querySelector("input#search");if(!r)return!1;const l=r.getAttribute("id"),b=r.parentNode,s={};e.querySelectorAll("tbody td:not(.td--fixed)").forEach(o=>{o.querySelector(".td__content")?s[o.querySelector(".td__content").textContent]=o.querySelector(".td__content").textContent:s[o.textContent]=o.textContent}),r.setAttribute("list",`${l}_list`),r.setAttribute("autocomplete","off"),b.querySelector("datalist")||(b.innerHTML+=`<datalist id="${l}_list"></datalist>`),b.querySelector("datalist").innerHTML=`${Object.keys(s).map(o=>`<option value="${o}"></option>`).join("")}`},lt=(t,e,a)=>{if(e.getAttribute("data-ajax"))return!1;const i=t.querySelector("tbody");let r=e.querySelector('input[type="radio"][data-sort]:checked');if(e.querySelector("select[data-sort]")){const o=e.querySelector("select[data-sort]");r=e.querySelector(`select[data-sort] option:nth-child(${o.selectedIndex+1})`)}const l=r.getAttribute("data-sort"),b=r.getAttribute("data-order"),s=r.getAttribute("data-format");if(!l)return i.innerHTML=a.innerHTML,C(t),!1;z(t,l,b,s)},z=(t,e,a,i="")=>{const r=t.querySelector("tbody");let l=[];["asc","desc","descending"].includes(a)||(l=a.split(","));let b=[];Array.from(r.querySelectorAll("tr")).forEach(o=>{let n=o.querySelector('td[data-label="'+e+'"], th[data-label="'+e+'"]').textContent.trim();o.querySelector('[data-label="'+e+'"] .td__content')&&(n=o.querySelector('[data-label="'+e+'"] .td__content').textContent.trim()),l.length&&l.includes(n)&&(n=l.indexOf(n)),P(n)&&(n=B(n,10)),i&&i=="date"&&(n=new Date(n));const m={index:n,row:o};b.push(m)}),b.sort((o,n)=>o.index>n.index?1:-1),(a=="descending"||a=="desc")&&(b=b.reverse());let s="";b.forEach(o=>{s+=o.row.outerHTML}),r.innerHTML=s},ot=(t,e,a,i)=>{a.setAttribute("method","get");const r=t.querySelector("iam-actionbar");r&&r.addEventListener("change",l=>{a.submit()})},rt=(t,e,a,i)=>{g(t,e,a,i);const r=t.querySelector("iam-actionbar");a.addEventListener("submit",l=>{Array.from(a.querySelectorAll("[data-duplicate]")).forEach(b=>{const s=b.tagName=="IAM-INPUT"?b.querySelector("input"):b,o=b.getAttribute("data-duplicate");document.querySelector(`[id="${o}"], [name="${o}"]`)&&(document.querySelector(`[id="${o}"], [name="${o}"]`).checked=s.checked)}),g(t,e,a,i),l.preventDefault()}),a.addEventListener("change",l=>{l.target.closest("iam-modal")||g(t,e,a,i)}),Array.from(a.querySelectorAll('[type="hidden"]')).forEach(l=>{l.addEventListener("change",b=>{g(t,e,a,i)})}),r&&(r.addEventListener("change",l=>{g(t,e,a,i)}),r.addEventListener("search-submit",l=>{a.querySelector("input[data-search]")?a.querySelector("input[data-search]").value=l.detail.search:a.insertAdjacentHTML("beforeend",`<input type="hidden" name="search" data-search="${t.querySelector("iam-actionbar[data-search]").getAttribute("data-search")}" value="${l.detail.search}"/>`);const b=new CustomEvent("search-submit",{detail:l.details});t.dispatchEvent(b),g(t,e,a,i)}))},g=function(t,e,a,i){return W(this,void 0,void 0,function*(){t.querySelector("iam-actionbar")&&!t.querySelector("iam-actionbar").closest("form")&&(a.querySelector(".duplicate-actionbar")||a.insertAdjacentHTML("beforeend",'<div class="duplicate-actionbar" style="visibility: hidden; pointer-events: none; position: absolute;"></div>'),a.querySelector(".duplicate-actionbar").innerHTML=t.querySelector("iam-actionbar").innerHTML),a.querySelector("input[name=show]")||a.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),a.querySelector("input[name=page]")||a.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),a.querySelector("input[name=page]").value=t.getAttribute("data-page"),a.querySelector("input[name=show]").value=t.getAttribute("data-show");const r=new FormData(a);r.set("page_number",r.get("page"));const l=new URLSearchParams(r).toString(),b=e.querySelectorAll("thead tr th:not(.expand-button-heading)"),s=e.querySelector("tbody"),o=a.getAttribute("data-ajax");t.classList.add("table--loading");const n=U(a);Array.from(a.querySelectorAll("[data-filter-count]")).forEach(c=>{c.innerHTML="",c.parentNode.classList.remove("hover")});let m=0;Object.values(n).forEach(c=>{typeof c=="object"&&Object.values(c).length?m+=Object.values(c).length:m++}),m&&Array.from(a.querySelectorAll("[data-filter-count]")).forEach(c=>{c.innerHTML+=`(${m})`,c.parentNode.classList.add("hover")}),window.controller||(window.controller=[]),window.controller[o]&&window.controller[o].abort(),window.controller[o]=new AbortController;const{signal:d}=controller[o];i.setAttribute("data-loading","true"),a.classList.add("processing");try{yield fetch(o+"?"+l,{signal:d,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest"})}).then(c=>c.json()).then(c=>{const v=t.hasAttribute("data-schema")?t.getAttribute("data-schema"):"data",D=t.hasAttribute("data-schema-total")?t.getAttribute("data-schema-total"):"meta.total",N=t.hasAttribute("data-schema-page")?t.getAttribute("data-schema-page"):"meta.current_page",_=p(c,D,15),nt=p(c,N,1),L=p(c,v),I=t.hasAttribute("data-empty-msg")?t.getAttribute("data-empty-msg"):"No results found";L?(s.innerHTML="",L.forEach(f=>{const y=document.createElement("tr");b.forEach(u=>{let h="";const A=document.createElement("td");if(A.setAttribute("data-label",u.innerText),u.getAttribute("data-output")&&(h=u.getAttribute("data-output").replace(new RegExp(/{(.*?)}/,"gm"),function(j){return p(f,j.replace("{","").replace("}",""))})),u.hasAttribute("data-output-array")){const k=u.getAttribute("data-output"),j=p(f,k.replace("{","").replace("}",""));h="",j.forEach(E=>{const R=u.getAttribute("data-output-array");let x="";if(u.hasAttribute("data-output-array-property")&&u.hasAttribute("data-output-array-transform")){const S=p(E,u.getAttribute("data-output-array-property")),O=JSON.parse(u.getAttribute("data-output-array-transform"))[S];x=R.replace(`{${u.getAttribute("data-output-array-property")}}`,O)}x=x.replace(new RegExp(/{(.*?)}/,"gm"),function(S){return p(E,S.replace("{","").replace("}",""))}),h+=x})}u.hasAttribute("data-transform")&&(h=JSON.parse(u.getAttribute("data-transform"))[h],!h&&u.hasAttribute("data-default")&&(h=u.getAttribute("data-default"))),A.innerHTML=h,y.appendChild(A)}),s.appendChild(y)}),t.setAttribute("data-total",parseInt(_)),Array.from(a.querySelectorAll("[data-ajax-query]")).forEach(f=>{const y=p(c,f.getAttribute("data-ajax-query"),"");f.hasAttribute("data-total")?f.setAttribute("data-total",y):f.innerHTML=y}),parseInt(_)==0&&(s.innerHTML=`<tr><td colspan="100%"><span>${I}</span></td></tr>`),t.classList.remove("table--loading"),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Ajax table loaded",url:o,formData:l}),M(t,e,a,i),$(t,e,a,i)):s.innerHTML='<tr><td colspan="100%"><span>Error loading table</span></td></tr>',i.removeAttribute("data-loading"),a.classList.remove("processing")})}catch(c){console.log(c)}})};class st extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
|
|
7
7
|
<style>
|
|
8
|
-
*,*::before,*::after{box-sizing:border-box}:host{inset:auto;top:anchor(bottom) !important;left:anchor(left) !important;position:fixed;position-try-fallbacks:flip-block,flip-inline;width:max-content !important;min-width:max-content !important;max-width:max-content !important;height:min-content;max-height:var(--menu-max-height, min(100vh - 6rem));overflow:auto;border:none !important}:host(.menu--fill){width:anchor-size(width) !important;min-width:anchor-size(width) !important;max-width:anchor-size(width) !important}:host(:popover-open),:host([popover-open]){display:block}:host(:not([popover])){position:static;display:block}:host(.menu--sm){width:10rem;min-width:10rem !important;max-width:10rem !important}:host(.menu--md){width:15rem;min-width:15rem !important;max-width:15rem !important}:host(.menu--lg){width:20rem;min-width:20rem !important;max-width:20rem !important}:host(.menu--height-sm){max-height:12.5rem}:host(.menu--height-lg){max-height:25rem}::slotted(*:is(button,a,label,span,iam-button)){background:unset !important;
|
|
8
|
+
*,*::before,*::after{box-sizing:border-box}:host{inset:auto;top:anchor(bottom) !important;left:anchor(left) !important;position:fixed;position-try-fallbacks:flip-block,flip-inline;width:max-content !important;min-width:max-content !important;max-width:max-content !important;height:min-content;max-height:var(--menu-max-height, min(100vh - 6rem));overflow:auto;border:none !important}:host(.menu--fill){width:anchor-size(width) !important;min-width:anchor-size(width) !important;max-width:anchor-size(width) !important}:host(:popover-open),:host([popover-open]){display:block}:host(:not([popover])){position:static;display:block}:host(.menu--sm){width:10rem;min-width:10rem !important;max-width:10rem !important}:host(.menu--md){width:15rem;min-width:15rem !important;max-width:15rem !important}:host(.menu--lg){width:20rem;min-width:20rem !important;max-width:20rem !important}:host(.menu--height-sm){max-height:12.5rem}:host(.menu--height-lg){max-height:25rem}::slotted(*:is(button,a,label,span,iam-button)){background:unset !important;outline:unset !important;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;display:block !important;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding-block:var(--menu-item-padding, 0.5rem) !important;width:var(--menu-item-width, 100%) !important;max-width:var(--menu-item-width, 100%) !important;text-align:var(--menu-item-text-align, left) !important}::slotted(*:is(button,a,label,iam-button)){padding-inline:var(--menu-item-padding, 0.5rem);cursor:var(--menu-item-cursor, pointer) !important}::slotted(*:is(span):first-child){padding-top:0 !important;font-weight:700 !important}::slotted(*:is(button,a,label,span,iam-button):last-child){margin-bottom:0 !important}::slotted(*:is(label)){--radio-size: 1.25rem;--radio-inner-size: 0.75rem;--radio-inner-top: 0.75rem;--radio-inner-left: 0.75rem;--checkbox-tick-size: 0.75rem;--checkbox-inner-size: 0.625rem;--checkbox-inner-top: 0.375rem;--checkbox-inner-left: 0.5rem;padding-left:2.25rem}::slotted(*:is(button,a,label):is(.selected)){background:#e9f8fc !important;border-left:4px solid var(--colour-info) !important;border-radius:.25rem !important;padding-left:calc(var(--menu-item-padding, 0.5rem) - 4px) !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(.selected):not(:hover,.hover)){color:#000 !important}}::slotted(*:is(button,a,label,iam-button):is(:hover,.hover,:focus,.focus)){background:var(--colour-light) !important;border-radius:.25rem !important}::slotted(*:is(button,a,label,iam-button):is(:active,.active)){background:#e0e0e0 !important;border-radius:.25rem !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(:active,.active)){color:#000 !important}}::slotted(hr){height:1px !important;background-color:var(--menu-hr-border-color, var(--border-color, grey)) !important;width:100%;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding:0 !important}::slotted(iam-menu:not([popover])){border:none !important;outline:none !important;border-radius:0 !important;box-shadow:none !important;padding:0;margin:0;width:auto}::slotted(iam-menu[popover]){top:anchor(top) !important;left:calc(anchor(right) + 1rem) !important}/*# sourceMappingURL=assets/css/components/menu.component.css.map */
|
|
9
9
|
|
|
10
10
|
</style>
|
|
11
11
|
<div class="menu--inner" part="inner">
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta7
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const R=t=>t.charAt(0).toUpperCase()+t.slice(1),p=(t,i,a)=>i.split(/[\.\[\]\'\"]/).filter(e=>e).reduce((e,b)=>e?e[b]:a,t),q=(t=1)=>Math.floor(Math.random()*Date.now()*(t+1));var I=function(t,i,a,e){function b(l){return l instanceof a?l:new a(function(s){s(l)})}return new(a||(a=Promise))(function(l,s){function r(m){try{n(e.next(m))}catch(d){s(d)}}function o(m){try{n(e.throw(m))}catch(d){s(d)}}function n(m){m.done?l(m.value):b(m.value).then(r,o)}n((e=e.apply(t,i||[])).next())})};const P=(t,i)=>{switch(t){case"datetime":return new Date(i).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(i).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(i).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return i=R(i)}},O=function(t){const i=new Object;return Array.from(t.querySelectorAll("[data-filter]")).forEach(e=>{if(!(e.type=="radio"&&!e.checked)&&!(e.type=="checkbox"&&!e.checked)&&e&&e.value){const b=e.getAttribute("data-filter");let l=e.value;e.hasAttribute("data-date-from")&&(l+="-date-from"),e.hasAttribute("data-date-to")&&(l+="-date-to"),i[b]||(i[b]=[]),i[b].push(l)}}),i},N=(t,i,a,e,b)=>{a.querySelector("[name=show]")||a.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),a.querySelector("[name=page]")||a.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),e.addEventListener("update-show",l=>{if(a.querySelector("[name=show]").value!=l.detail.show){a.querySelector("[name=show]").value=l.detail.show;const s=new CustomEvent("update-show",{detail:{show:l.detail.show}});t.dispatchEvent(s),T(t,e),b()}}),e.addEventListener("update-page",l=>{if(a.querySelector("[name=page]").value!=l.detail.page){a.querySelector("[name=page]").value=l.detail.page;const s=new CustomEvent("update-page",{detail:{page:l.detail.page}});if(t.dispatchEvent(s),T(t,e),b(),!t.hasAttribute("data-no-scroll")){const o=i.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:o,behavior:"smooth"})}}})},B=(t,i)=>{let a=document.createElement("form");return t.hasAttribute("data-filterby")?a=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?a=t.closest("form"):t.querySelector("form")?a=t.querySelector("form"):i.parentNode.insertBefore(a,i.nextSibling),t.hasAttribute("data-ajax")&&a.setAttribute("data-ajax",t.getAttribute("data-ajax")),a},E=(t,i,a,e)=>{const b=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",15),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),W(t,e),F(i),V(t,i),t.classList.contains("mh-sm")&&b.classList.add("mh-sm"),t.classList.contains("mh-md")&&b.classList.add("mh-md"),t.classList.contains("mh-lg")&&b.classList.add("mh-lg"),t.classList.contains("table--cta")&&(J(t,i),X(t,i)),U(t)},U=t=>{Array.from(t.querySelectorAll("tr[data-highlight]")).forEach(i=>{i.insertAdjacentHTML("afterend",`<tr role="presentation" class="tr--highlight">
|
|
5
5
|
<td colspan="100%"><i class="fa-solid fa-star"></i> ${i.getAttribute("data-highlight")}</td>
|
|
6
6
|
</tr>`)})},W=(t,i)=>{t.hasAttribute("data-total")&&i.setAttribute("data-total",t.getAttribute("data-total")),t.hasAttribute("data-page")&&i.setAttribute("data-page",t.getAttribute("data-page")),t.hasAttribute("data-show")&&i.setAttribute("data-show",t.getAttribute("data-show")),t.hasAttribute("data-increment")&&i.setAttribute("data-increment",t.getAttribute("data-show")),t.hasAttribute("data-page-jump")&&i.setAttribute("data-page-jump","true"),t.hasAttribute("data-per-page")&&i.setAttribute("data-per-page","true"),t.hasAttribute("data-item-count")&&i.setAttribute("data-item-count","true"),t.hasAttribute("data-loading")&&i.setAttribute("data-loading","true"),t.classList.contains("table--fullwidth")&&i.setAttribute("data-minimal","true")},T=(t,i)=>{t.setAttribute("data-total",i.getAttribute("data-total")),t.setAttribute("data-page",i.getAttribute("data-page")),t.setAttribute("data-show",i.getAttribute("data-show")),t.setAttribute("data-increment",i.getAttribute("data-show"))},F=t=>{const i=Array.from(t.querySelectorAll("thead th"));Array.from(t.querySelectorAll("tbody tr")).forEach(e=>{const b=Array.from(e.querySelectorAll("th, td")),l=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","successful","failed"];b.forEach((s,r)=>{const o=i[r];if(typeof o<"u"){const n=document.createElement("div");n.innerHTML=o.innerHTML;const m=n.textContent||n.innerText||"";s.setAttribute("data-label",m),o.hasAttribute("data-td-class")&&s.setAttribute("class",o.getAttribute("data-td-class")),o.hasAttribute("data-format")&&(s.setAttribute("data-format",o.getAttribute("data-format")),s.innerHTML=P(o.getAttribute("data-format"),s.textContent.trim())),l.includes(s.textContent.trim().toLowerCase())&&s.setAttribute("data-content",s.textContent.trim().toLowerCase())}})})},V=(t,i)=>{if(t.classList.contains("table--fullwidth")&&!t.hasAttribute("data-expandable")||i.querySelectorAll("thead tr th").length<4&&!t.hasAttribute("data-expandable"))return!1;Array.from(i.querySelectorAll("thead tr")).forEach(a=>{i.querySelectorAll("thead tr th.expand-button-heading").length||a.insertAdjacentHTML("afterbegin",`<th class="${t.hasAttribute("data-expandable")?"th--fixed ":""}expand-button-heading"></th>`)}),Array.from(i.querySelectorAll("tbody tr")).forEach((a,e)=>{Array.from(a.querySelectorAll("p")).forEach((l,s)=>{const r=window.getComputedStyle(l,null).getPropertyValue("line-height");console.log(parseInt(r));const o=Math.ceil(l.offsetHeight/parseInt(r));l.setAttribute("data-lines",o),o>=3&&l.classList.add("three-lines")}),a.querySelector("p")&&a.setAttribute("data-view","default");const b=a.getAttribute("data-view")==="full"?"aria-expanded":"";a.querySelectorAll("td.td--expand").length||a.insertAdjacentHTML("afterbegin",`<td class="${t.hasAttribute("data-expandable")?"td--fixed ":""}td--expand"><button class="btn btn-compact btn-secondary btn-sm fa-chevron-down" data-expand-button ${b} data-index="${e}">Expand</button></td>`)}),i.addEventListener("click",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("[data-expand-button]")){const e=a.target.closest("[data-expand-button]"),b=e.closest("tr");e.toggleAttribute("aria-expanded"),e.classList.contains("fa-chevron-down")?(e.classList.remove("fa-chevron-down"),e.classList.add("fa-chevron-up")):(e.classList.remove("fa-chevron-up"),e.classList.add("fa-chevron-down")),b.getAttribute("data-view")=="full"?b.setAttribute("data-view","default"):b.setAttribute("data-view","full"),e.blur(),t.dispatchEvent(new CustomEvent("row-expanded",{detail:{row:e.getAttribute("data-index")}}))}})},J=(t,i)=>{let a=0;Array.from(i.querySelectorAll("tbody tr")).forEach(e=>{const b=window.getComputedStyle(document.querySelector("html")),l=e.querySelector(":scope > *:last-child > *:first-child");if(l){l.classList.add("text-nowrap");let s=l.offsetWidth/parseFloat(b.fontSize);s+=1.8,a=a>s?a:s}}),t.style.setProperty("--cta-width",`${a}rem`)},X=(t,i)=>{function a(){Array.from(i.querySelectorAll("tr")).forEach(e=>{const b=e.offsetHeight;e.style.setProperty("--row-height",`${b}px`)})}new ResizeObserver(a).observe(i)},M=(t,i)=>{if(t.querySelector("iam-actionbar[data-selectall]")||document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`)){const a=t.querySelector("iam-actionbar[data-selectall]")?t.querySelector("iam-actionbar[data-selectall]"):document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`);Y(t,i,a)}t.querySelectorAll(".dialog__wrapper .btn-compact").forEach((a,e)=>{const l=a.closest(".dialog__wrapper").querySelector("dialog");if(l){const m=`menu${q(e)}`;l.setAttribute("id",m),l.setAttribute("popover","auto"),a.setAttribute("popovertarget",m),l.outerHTML=l.outerHTML.replace(/<dialog/g,"<iam-menu").replace(/<\/dialog>/g,"</iam-menu>")}a.classList.add("btn-sm"),a.classList.add("m-0");const s=a.closest("tr"),r=a.closest("td"),n=Array.prototype.slice.call(s.children).indexOf(r);r.classList.add("td--fixed"),i.querySelector(`thead tr th:nth-child(${n+1})`).classList.add("th--fixed")})},Y=(t,i,a)=>{Array.from(i.querySelectorAll("thead tr")).forEach(e=>{e.querySelector(".expand-button-heading")?e.querySelector(".expand-button-heading").insertAdjacentHTML("afterend",'<th class="th--fixed"></th>'):e.insertAdjacentHTML("afterbegin",'<th class="th--fixed"></th>')}),Array.from(i.querySelectorAll("tbody tr")).forEach((e,b)=>{if(e.setAttribute("data-index",b+1),!e.querySelector(".selectrow")){const l=`row${q(b)}`;e.querySelector(".td--expand")?e.querySelector(".td--expand").insertAdjacentHTML("afterend",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${l}" ${e.hasAttribute("data-selected")?'checked="true"':""}/><label for="${l}"><span class="visually-hidden">Select row</span></label></td>`):e.insertAdjacentHTML("afterbegin",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${l}" ${e.hasAttribute("data-selected")?'checked="true"':""}/><label for="${l}"><span class="visually-hidden">Select row</span></label></td>`)}}),i.addEventListener("change",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest(".selectrow input")){const b=e.target.closest(".selectrow input"),l=e.target.closest("tr"),s=i.querySelectorAll('.selectrow input[type="checkbox"]').length,r=i.querySelectorAll('.selectrow input[type="checkbox"]:checked').length;a.setAttribute("data-selected",s==r?"all":r);const o=new CustomEvent("row-selected",{detail:{rowIndex:l.getAttribute("data-index"),checked:!!b.checked}});t.dispatchEvent(o)}}),a.addEventListener("selected",e=>{if(e.detail.selected=="0"){Array.from(i.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(l=>{l.checked=!1});const b=new CustomEvent("all-rows-unselected");t.dispatchEvent(b)}else if(e.detail.selected=="all"){Array.from(i.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(l=>{l.checked=!0});const b=new CustomEvent("all-rows-selected");t.dispatchEvent(b)}})},G=(t,i,a,e)=>{g(t,i,a,e);const b=t.querySelector("iam-actionbar");a.addEventListener("submit",l=>{Array.from(a.querySelectorAll("[data-duplicate]")).forEach(s=>{const r=s.tagName=="IAM-INPUT"?s.querySelector("input"):s,o=s.getAttribute("data-duplicate");document.querySelector(`[id="${o}"], [name="${o}"]`)&&(document.querySelector(`[id="${o}"], [name="${o}"]`).checked=r.checked)}),g(t,i,a,e),l.preventDefault()}),a.addEventListener("change",l=>{l.target.closest("iam-modal")||g(t,i,a,e)}),Array.from(a.querySelectorAll('[type="hidden"]')).forEach(l=>{l.addEventListener("change",s=>{g(t,i,a,e)})}),b&&(b.addEventListener("change",l=>{g(t,i,a,e)}),b.addEventListener("search-submit",l=>{a.querySelector("input[data-search]")?a.querySelector("input[data-search]").value=l.detail.search:a.insertAdjacentHTML("beforeend",`<input type="hidden" name="search" data-search="${t.querySelector("iam-actionbar[data-search]").getAttribute("data-search")}" value="${l.detail.search}"/>`);const s=new CustomEvent("search-submit",{detail:l.details});t.dispatchEvent(s),g(t,i,a,e)}))},g=function(t,i,a,e){return I(this,void 0,void 0,function*(){t.querySelector("iam-actionbar")&&!t.querySelector("iam-actionbar").closest("form")&&(a.querySelector(".duplicate-actionbar")||a.insertAdjacentHTML("beforeend",'<div class="duplicate-actionbar" style="visibility: hidden; pointer-events: none; position: absolute;"></div>'),a.querySelector(".duplicate-actionbar").innerHTML=t.querySelector("iam-actionbar").innerHTML),a.querySelector("input[name=show]")||a.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),a.querySelector("input[name=page]")||a.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),a.querySelector("input[name=page]").value=t.getAttribute("data-page"),a.querySelector("input[name=show]").value=t.getAttribute("data-show");const b=new FormData(a);b.set("page_number",b.get("page"));const l=new URLSearchParams(b).toString(),s=i.querySelectorAll("thead tr th:not(.expand-button-heading)"),r=i.querySelector("tbody"),o=a.getAttribute("data-ajax");t.classList.add("table--loading");const n=O(a);Array.from(a.querySelectorAll("[data-filter-count]")).forEach(c=>{c.innerHTML="",c.parentNode.classList.remove("hover")});let m=0;Object.values(n).forEach(c=>{typeof c=="object"&&Object.values(c).length?m+=Object.values(c).length:m++}),m&&Array.from(a.querySelectorAll("[data-filter-count]")).forEach(c=>{c.innerHTML+=`(${m})`,c.parentNode.classList.add("hover")}),window.controller||(window.controller=[]),window.controller[o]&&window.controller[o].abort(),window.controller[o]=new AbortController;const{signal:d}=controller[o];e.setAttribute("data-loading","true"),a.classList.add("processing");try{yield fetch(o+"?"+l,{signal:d,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest"})}).then(c=>c.json()).then(c=>{const w=t.hasAttribute("data-schema")?t.getAttribute("data-schema"):"data",$=t.hasAttribute("data-schema-total")?t.getAttribute("data-schema-total"):"meta.total",H=t.hasAttribute("data-schema-page")?t.getAttribute("data-schema-page"):"meta.current_page",S=p(c,$,15),Z=p(c,H,1),_=p(c,w),C=t.hasAttribute("data-empty-msg")?t.getAttribute("data-empty-msg"):"No results found";_?(r.innerHTML="",_.forEach(f=>{const x=document.createElement("tr");s.forEach(u=>{let h="";const v=document.createElement("td");if(v.setAttribute("data-label",u.innerText),u.getAttribute("data-output")&&(h=u.getAttribute("data-output").replace(new RegExp(/{(.*?)}/,"gm"),function(k){return p(f,k.replace("{","").replace("}",""))})),u.hasAttribute("data-output-array")){const A=u.getAttribute("data-output"),k=p(f,A.replace("{","").replace("}",""));h="",k.forEach(L=>{const z=u.getAttribute("data-output-array");let y="";if(u.hasAttribute("data-output-array-property")&&u.hasAttribute("data-output-array-transform")){const j=p(L,u.getAttribute("data-output-array-property")),D=JSON.parse(u.getAttribute("data-output-array-transform"))[j];y=z.replace(`{${u.getAttribute("data-output-array-property")}}`,D)}y=y.replace(new RegExp(/{(.*?)}/,"gm"),function(j){return p(L,j.replace("{","").replace("}",""))}),h+=y})}u.hasAttribute("data-transform")&&(h=JSON.parse(u.getAttribute("data-transform"))[h],!h&&u.hasAttribute("data-default")&&(h=u.getAttribute("data-default"))),v.innerHTML=h,x.appendChild(v)}),r.appendChild(x)}),t.setAttribute("data-total",parseInt(S)),Array.from(a.querySelectorAll("[data-ajax-query]")).forEach(f=>{const x=p(c,f.getAttribute("data-ajax-query"),"");f.hasAttribute("data-total")?f.setAttribute("data-total",x):f.innerHTML=x}),parseInt(S)==0&&(r.innerHTML=`<tr><td colspan="100%"><span>${C}</span></td></tr>`),t.classList.remove("table--loading"),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Ajax table loaded",url:o,formData:l}),E(t,i,a,e),M(t,i,a,e)):r.innerHTML='<tr><td colspan="100%"><span>Error loading table</span></td></tr>',e.removeAttribute("data-loading"),a.classList.remove("processing")})}catch(c){console.log(c)}})};class K extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
|
|
7
7
|
<style>
|
|
8
|
-
*,*::before,*::after{box-sizing:border-box}:host{inset:auto;top:anchor(bottom) !important;left:anchor(left) !important;position:fixed;position-try-fallbacks:flip-block,flip-inline;width:max-content !important;min-width:max-content !important;max-width:max-content !important;height:min-content;max-height:var(--menu-max-height, min(100vh - 6rem));overflow:auto;border:none !important}:host(.menu--fill){width:anchor-size(width) !important;min-width:anchor-size(width) !important;max-width:anchor-size(width) !important}:host(:popover-open),:host([popover-open]){display:block}:host(:not([popover])){position:static;display:block}:host(.menu--sm){width:10rem;min-width:10rem !important;max-width:10rem !important}:host(.menu--md){width:15rem;min-width:15rem !important;max-width:15rem !important}:host(.menu--lg){width:20rem;min-width:20rem !important;max-width:20rem !important}:host(.menu--height-sm){max-height:12.5rem}:host(.menu--height-lg){max-height:25rem}::slotted(*:is(button,a,label,span,iam-button)){background:unset !important;
|
|
8
|
+
*,*::before,*::after{box-sizing:border-box}:host{inset:auto;top:anchor(bottom) !important;left:anchor(left) !important;position:fixed;position-try-fallbacks:flip-block,flip-inline;width:max-content !important;min-width:max-content !important;max-width:max-content !important;height:min-content;max-height:var(--menu-max-height, min(100vh - 6rem));overflow:auto;border:none !important}:host(.menu--fill){width:anchor-size(width) !important;min-width:anchor-size(width) !important;max-width:anchor-size(width) !important}:host(:popover-open),:host([popover-open]){display:block}:host(:not([popover])){position:static;display:block}:host(.menu--sm){width:10rem;min-width:10rem !important;max-width:10rem !important}:host(.menu--md){width:15rem;min-width:15rem !important;max-width:15rem !important}:host(.menu--lg){width:20rem;min-width:20rem !important;max-width:20rem !important}:host(.menu--height-sm){max-height:12.5rem}:host(.menu--height-lg){max-height:25rem}::slotted(*:is(button,a,label,span,iam-button)){background:unset !important;outline:unset !important;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;display:block !important;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding-block:var(--menu-item-padding, 0.5rem) !important;width:var(--menu-item-width, 100%) !important;max-width:var(--menu-item-width, 100%) !important;text-align:var(--menu-item-text-align, left) !important}::slotted(*:is(button,a,label,iam-button)){padding-inline:var(--menu-item-padding, 0.5rem);cursor:var(--menu-item-cursor, pointer) !important}::slotted(*:is(span):first-child){padding-top:0 !important;font-weight:700 !important}::slotted(*:is(button,a,label,span,iam-button):last-child){margin-bottom:0 !important}::slotted(*:is(label)){--radio-size: 1.25rem;--radio-inner-size: 0.75rem;--radio-inner-top: 0.75rem;--radio-inner-left: 0.75rem;--checkbox-tick-size: 0.75rem;--checkbox-inner-size: 0.625rem;--checkbox-inner-top: 0.375rem;--checkbox-inner-left: 0.5rem;padding-left:2.25rem}::slotted(*:is(button,a,label):is(.selected)){background:#e9f8fc !important;border-left:4px solid var(--colour-info) !important;border-radius:.25rem !important;padding-left:calc(var(--menu-item-padding, 0.5rem) - 4px) !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(.selected):not(:hover,.hover)){color:#000 !important}}::slotted(*:is(button,a,label,iam-button):is(:hover,.hover,:focus,.focus)){background:var(--colour-light) !important;border-radius:.25rem !important}::slotted(*:is(button,a,label,iam-button):is(:active,.active)){background:#e0e0e0 !important;border-radius:.25rem !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(:active,.active)){color:#000 !important}}::slotted(hr){height:1px !important;background-color:var(--menu-hr-border-color, var(--border-color, grey)) !important;width:100%;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding:0 !important}::slotted(iam-menu:not([popover])){border:none !important;outline:none !important;border-radius:0 !important;box-shadow:none !important;padding:0;margin:0;width:auto}::slotted(iam-menu[popover]){top:anchor(top) !important;left:calc(anchor(right) + 1rem) !important}/*# sourceMappingURL=assets/css/components/menu.component.css.map */
|
|
9
9
|
|
|
10
10
|
</style>
|
|
11
11
|
<div class="menu--inner" part="inner">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta7
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const h=t=>t.charAt(0).toUpperCase()+t.slice(1),u=(t,a)=>{switch(t){case"datetime":return new Date(a).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(a).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(a).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return a=h(a)}},p=(t,a,e,i,r)=>{e.querySelector("[name=show]")||e.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),e.querySelector("[name=page]")||e.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),i.addEventListener("update-show",l=>{if(e.querySelector("[name=show]").value!=l.detail.show){e.querySelector("[name=show]").value=l.detail.show;const o=new CustomEvent("update-show",{detail:{show:l.detail.show}});t.dispatchEvent(o),c(t,i),r()}}),i.addEventListener("update-page",l=>{if(e.querySelector("[name=page]").value!=l.detail.page){e.querySelector("[name=page]").value=l.detail.page;const o=new CustomEvent("update-page",{detail:{page:l.detail.page}});if(t.dispatchEvent(o),c(t,i),r(),!t.hasAttribute("data-no-scroll")){const b=a.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:b,behavior:"smooth"})}}})},g=(t,a)=>{let e=document.createElement("form");return t.hasAttribute("data-filterby")?e=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?e=t.closest("form"):t.querySelector("form")?e=t.querySelector("form"):a.parentNode.insertBefore(e,a.nextSibling),t.hasAttribute("data-ajax")&&e.setAttribute("data-ajax",t.getAttribute("data-ajax")),e},f=(t,a,e,i)=>{const r=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",15),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),x(t,i),y(a),k(t,a),t.classList.contains("mh-sm")&&r.classList.add("mh-sm"),t.classList.contains("mh-md")&&r.classList.add("mh-md"),t.classList.contains("mh-lg")&&r.classList.add("mh-lg"),t.classList.contains("table--cta")&&(A(t,a),j(t,a)),w(t)},w=t=>{Array.from(t.querySelectorAll("tr[data-highlight]")).forEach(a=>{a.insertAdjacentHTML("afterend",`<tr role="presentation" class="tr--highlight">
|
|
5
5
|
<td colspan="100%"><i class="fa-solid fa-star"></i> ${a.getAttribute("data-highlight")}</td>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta7
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const v=function(t){return typeof t!="string"?!1:!isNaN(t)&&!isNaN(parseFloat(t))},k=(t,a)=>String(t).padStart(a,"0"),A=t=>t.charAt(0).toUpperCase()+t.slice(1),u=(t=1)=>Math.floor(Math.random()*Date.now()*(t+1)),j=(t,a)=>{switch(t){case"datetime":return new Date(a).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(a).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(a).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return a=A(a)}},_=(t,a)=>{let i=document.createElement("form");return t.hasAttribute("data-filterby")?i=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?i=t.closest("form"):t.querySelector("form")?i=t.querySelector("form"):a.parentNode.insertBefore(i,a.nextSibling),t.hasAttribute("data-ajax")&&i.setAttribute("data-ajax",t.getAttribute("data-ajax")),i},h=(t,a,i,e)=>{const m=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",15),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),q(t,e),f(a),L(t,a),t.classList.contains("mh-sm")&&m.classList.add("mh-sm"),t.classList.contains("mh-md")&&m.classList.add("mh-md"),t.classList.contains("mh-lg")&&m.classList.add("mh-lg"),t.classList.contains("table--cta")&&(E(t,a),T(t,a)),S(t)},S=t=>{Array.from(t.querySelectorAll("tr[data-highlight]")).forEach(a=>{a.insertAdjacentHTML("afterend",`<tr role="presentation" class="tr--highlight">
|
|
5
5
|
<td colspan="100%"><i class="fa-solid fa-star"></i> ${a.getAttribute("data-highlight")}</td>
|
|
6
6
|
</tr>`)})},q=(t,a)=>{t.hasAttribute("data-total")&&a.setAttribute("data-total",t.getAttribute("data-total")),t.hasAttribute("data-page")&&a.setAttribute("data-page",t.getAttribute("data-page")),t.hasAttribute("data-show")&&a.setAttribute("data-show",t.getAttribute("data-show")),t.hasAttribute("data-increment")&&a.setAttribute("data-increment",t.getAttribute("data-show")),t.hasAttribute("data-page-jump")&&a.setAttribute("data-page-jump","true"),t.hasAttribute("data-per-page")&&a.setAttribute("data-per-page","true"),t.hasAttribute("data-item-count")&&a.setAttribute("data-item-count","true"),t.hasAttribute("data-loading")&&a.setAttribute("data-loading","true"),t.classList.contains("table--fullwidth")&&a.setAttribute("data-minimal","true")},p=(t,a)=>{t.setAttribute("data-total",a.getAttribute("data-total")),t.setAttribute("data-page",a.getAttribute("data-page")),t.setAttribute("data-show",a.getAttribute("data-show")),t.setAttribute("data-increment",a.getAttribute("data-show"))},f=t=>{const a=Array.from(t.querySelectorAll("thead th"));Array.from(t.querySelectorAll("tbody tr")).forEach(e=>{const m=Array.from(e.querySelectorAll("th, td")),b=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","successful","failed"];m.forEach((s,o)=>{const l=a[o];if(typeof l<"u"){const r=document.createElement("div");r.innerHTML=l.innerHTML;const n=r.textContent||r.innerText||"";s.setAttribute("data-label",n),l.hasAttribute("data-td-class")&&s.setAttribute("class",l.getAttribute("data-td-class")),l.hasAttribute("data-format")&&(s.setAttribute("data-format",l.getAttribute("data-format")),s.innerHTML=j(l.getAttribute("data-format"),s.textContent.trim())),b.includes(s.textContent.trim().toLowerCase())&&s.setAttribute("data-content",s.textContent.trim().toLowerCase())}})})},L=(t,a)=>{if(t.classList.contains("table--fullwidth")&&!t.hasAttribute("data-expandable")||a.querySelectorAll("thead tr th").length<4&&!t.hasAttribute("data-expandable"))return!1;Array.from(a.querySelectorAll("thead tr")).forEach(i=>{a.querySelectorAll("thead tr th.expand-button-heading").length||i.insertAdjacentHTML("afterbegin",`<th class="${t.hasAttribute("data-expandable")?"th--fixed ":""}expand-button-heading"></th>`)}),Array.from(a.querySelectorAll("tbody tr")).forEach((i,e)=>{Array.from(i.querySelectorAll("p")).forEach((b,s)=>{const o=window.getComputedStyle(b,null).getPropertyValue("line-height");console.log(parseInt(o));const l=Math.ceil(b.offsetHeight/parseInt(o));b.setAttribute("data-lines",l),l>=3&&b.classList.add("three-lines")}),i.querySelector("p")&&i.setAttribute("data-view","default");const m=i.getAttribute("data-view")==="full"?"aria-expanded":"";i.querySelectorAll("td.td--expand").length||i.insertAdjacentHTML("afterbegin",`<td class="${t.hasAttribute("data-expandable")?"td--fixed ":""}td--expand"><button class="btn btn-compact btn-secondary btn-sm fa-chevron-down" data-expand-button ${m} data-index="${e}">Expand</button></td>`)}),a.addEventListener("click",i=>{if(i&&i.target instanceof HTMLElement&&i.target.closest("[data-expand-button]")){const e=i.target.closest("[data-expand-button]"),m=e.closest("tr");e.toggleAttribute("aria-expanded"),e.classList.contains("fa-chevron-down")?(e.classList.remove("fa-chevron-down"),e.classList.add("fa-chevron-up")):(e.classList.remove("fa-chevron-up"),e.classList.add("fa-chevron-down")),m.getAttribute("data-view")=="full"?m.setAttribute("data-view","default"):m.setAttribute("data-view","full"),e.blur(),t.dispatchEvent(new CustomEvent("row-expanded",{detail:{row:e.getAttribute("data-index")}}))}})},E=(t,a)=>{let i=0;Array.from(a.querySelectorAll("tbody tr")).forEach(e=>{const m=window.getComputedStyle(document.querySelector("html")),b=e.querySelector(":scope > *:last-child > *:first-child");if(b){b.classList.add("text-nowrap");let s=b.offsetWidth/parseFloat(m.fontSize);s+=1.8,i=i>s?i:s}}),t.style.setProperty("--cta-width",`${i}rem`)},T=(t,a)=>{function i(){Array.from(a.querySelectorAll("tr")).forEach(e=>{const m=e.offsetHeight;e.style.setProperty("--row-height",`${m}px`)})}new ResizeObserver(i).observe(a)},g=(t,a)=>{if(t.querySelector("iam-actionbar[data-selectall]")||document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`)){const i=t.querySelector("iam-actionbar[data-selectall]")?t.querySelector("iam-actionbar[data-selectall]"):document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`);C(t,a,i)}t.querySelectorAll(".dialog__wrapper .btn-compact").forEach((i,e)=>{const b=i.closest(".dialog__wrapper").querySelector("dialog");if(b){const n=`menu${u(e)}`;b.setAttribute("id",n),b.setAttribute("popover","auto"),i.setAttribute("popovertarget",n),b.outerHTML=b.outerHTML.replace(/<dialog/g,"<iam-menu").replace(/<\/dialog>/g,"</iam-menu>")}i.classList.add("btn-sm"),i.classList.add("m-0");const s=i.closest("tr"),o=i.closest("td"),r=Array.prototype.slice.call(s.children).indexOf(o);o.classList.add("td--fixed"),a.querySelector(`thead tr th:nth-child(${r+1})`).classList.add("th--fixed")})},C=(t,a,i)=>{Array.from(a.querySelectorAll("thead tr")).forEach(e=>{e.querySelector(".expand-button-heading")?e.querySelector(".expand-button-heading").insertAdjacentHTML("afterend",'<th class="th--fixed"></th>'):e.insertAdjacentHTML("afterbegin",'<th class="th--fixed"></th>')}),Array.from(a.querySelectorAll("tbody tr")).forEach((e,m)=>{if(e.setAttribute("data-index",m+1),!e.querySelector(".selectrow")){const b=`row${u(m)}`;e.querySelector(".td--expand")?e.querySelector(".td--expand").insertAdjacentHTML("afterend",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${b}" ${e.hasAttribute("data-selected")?'checked="true"':""}/><label for="${b}"><span class="visually-hidden">Select row</span></label></td>`):e.insertAdjacentHTML("afterbegin",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${b}" ${e.hasAttribute("data-selected")?'checked="true"':""}/><label for="${b}"><span class="visually-hidden">Select row</span></label></td>`)}}),a.addEventListener("change",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest(".selectrow input")){const m=e.target.closest(".selectrow input"),b=e.target.closest("tr"),s=a.querySelectorAll('.selectrow input[type="checkbox"]').length,o=a.querySelectorAll('.selectrow input[type="checkbox"]:checked').length;i.setAttribute("data-selected",s==o?"all":o);const l=new CustomEvent("row-selected",{detail:{rowIndex:b.getAttribute("data-index"),checked:!!m.checked}});t.dispatchEvent(l)}}),i.addEventListener("selected",e=>{if(e.detail.selected=="0"){Array.from(a.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(b=>{b.checked=!1});const m=new CustomEvent("all-rows-unselected");t.dispatchEvent(m)}else if(e.detail.selected=="all"){Array.from(a.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(b=>{b.checked=!0});const m=new CustomEvent("all-rows-selected");t.dispatchEvent(m)}})},x=(t,a,i,e,m)=>{M(t,a),$(t,a),i.addEventListener("change",b=>{b&&b.target instanceof HTMLElement&&b.target.closest("[data-sort]")&&H(a,i,m)})},M=(t,a)=>{a.addEventListener("click",i=>{if(i&&i.target instanceof HTMLElement&&i.target.closest("[data-sort]")){const e=i.target.closest("[data-sort]");e.setAttribute("data-sort","true"),Array.from(a.querySelectorAll("th[data-sort]")).forEach(o=>{o!=e&&(o.setAttribute("data-sort",""),o.removeAttribute("data-order-by"),e.setAttribute("title","Click to sort ascending"))}),e.hasAttribute("data-order-by")&&e.getAttribute("data-order-by")=="asc"?(e.setAttribute("data-order-by","desc"),e.setAttribute("title","Click to sort ascending")):(e.setAttribute("data-order-by","asc"),e.setAttribute("title","Click to sort descending"));const m=new CustomEvent("sort-by-heading",{detail:{heading:e.textContent,sortBy:e.getAttribute("data-order-by"),ref:e.getAttribute("data-ref")}});t.dispatchEvent(m);const b=e.textContent.trim(),s=e.getAttribute("data-order-by");t.hasAttribute("data-submit")||y(a,b,s)}})},$=(t,a)=>{var i;const e=t.querySelector("iam-actionbar");if(!e)return!1;const m=(i=e.shadowRoot)===null||i===void 0?void 0:i.querySelector("input#search");if(!m)return!1;const b=m.getAttribute("id"),s=m.parentNode,o={};a.querySelectorAll("tbody td:not(.td--fixed)").forEach(l=>{l.querySelector(".td__content")?o[l.querySelector(".td__content").textContent]=l.querySelector(".td__content").textContent:o[l.textContent]=l.textContent}),m.setAttribute("list",`${b}_list`),m.setAttribute("autocomplete","off"),s.querySelector("datalist")||(s.innerHTML+=`<datalist id="${b}_list"></datalist>`),s.querySelector("datalist").innerHTML=`${Object.keys(o).map(l=>`<option value="${l}"></option>`).join("")}`},H=(t,a,i)=>{if(a.getAttribute("data-ajax"))return!1;const e=t.querySelector("tbody");let m=a.querySelector('input[type="radio"][data-sort]:checked');if(a.querySelector("select[data-sort]")){const l=a.querySelector("select[data-sort]");m=a.querySelector(`select[data-sort] option:nth-child(${l.selectedIndex+1})`)}const b=m.getAttribute("data-sort"),s=m.getAttribute("data-order"),o=m.getAttribute("data-format");if(!b)return e.innerHTML=i.innerHTML,f(t),!1;y(t,b,s,o)},y=(t,a,i,e="")=>{const m=t.querySelector("tbody");let b=[];["asc","desc","descending"].includes(i)||(b=i.split(","));let s=[];Array.from(m.querySelectorAll("tr")).forEach(l=>{let r=l.querySelector('td[data-label="'+a+'"], th[data-label="'+a+'"]').textContent.trim();l.querySelector('[data-label="'+a+'"] .td__content')&&(r=l.querySelector('[data-label="'+a+'"] .td__content').textContent.trim()),b.length&&b.includes(r)&&(r=b.indexOf(r)),v(r)&&(r=k(r,10)),e&&e=="date"&&(r=new Date(r));const n={index:r,row:l};s.push(n)}),s.sort((l,r)=>l.index>r.index?1:-1),(i=="descending"||i=="desc")&&(s=s.reverse());let o="";s.forEach(l=>{o+=l.row.outerHTML}),m.innerHTML=o};class z extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const a=document.createElement("template");a.innerHTML=`
|
|
7
7
|
<style>
|
|
8
|
-
*,*::before,*::after{box-sizing:border-box}:host{inset:auto;top:anchor(bottom) !important;left:anchor(left) !important;position:fixed;position-try-fallbacks:flip-block,flip-inline;width:max-content !important;min-width:max-content !important;max-width:max-content !important;height:min-content;max-height:var(--menu-max-height, min(100vh - 6rem));overflow:auto;border:none !important}:host(.menu--fill){width:anchor-size(width) !important;min-width:anchor-size(width) !important;max-width:anchor-size(width) !important}:host(:popover-open),:host([popover-open]){display:block}:host(:not([popover])){position:static;display:block}:host(.menu--sm){width:10rem;min-width:10rem !important;max-width:10rem !important}:host(.menu--md){width:15rem;min-width:15rem !important;max-width:15rem !important}:host(.menu--lg){width:20rem;min-width:20rem !important;max-width:20rem !important}:host(.menu--height-sm){max-height:12.5rem}:host(.menu--height-lg){max-height:25rem}::slotted(*:is(button,a,label,span,iam-button)){background:unset !important;
|
|
8
|
+
*,*::before,*::after{box-sizing:border-box}:host{inset:auto;top:anchor(bottom) !important;left:anchor(left) !important;position:fixed;position-try-fallbacks:flip-block,flip-inline;width:max-content !important;min-width:max-content !important;max-width:max-content !important;height:min-content;max-height:var(--menu-max-height, min(100vh - 6rem));overflow:auto;border:none !important}:host(.menu--fill){width:anchor-size(width) !important;min-width:anchor-size(width) !important;max-width:anchor-size(width) !important}:host(:popover-open),:host([popover-open]){display:block}:host(:not([popover])){position:static;display:block}:host(.menu--sm){width:10rem;min-width:10rem !important;max-width:10rem !important}:host(.menu--md){width:15rem;min-width:15rem !important;max-width:15rem !important}:host(.menu--lg){width:20rem;min-width:20rem !important;max-width:20rem !important}:host(.menu--height-sm){max-height:12.5rem}:host(.menu--height-lg){max-height:25rem}::slotted(*:is(button,a,label,span,iam-button)){background:unset !important;outline:unset !important;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;display:block !important;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding-block:var(--menu-item-padding, 0.5rem) !important;width:var(--menu-item-width, 100%) !important;max-width:var(--menu-item-width, 100%) !important;text-align:var(--menu-item-text-align, left) !important}::slotted(*:is(button,a,label,iam-button)){padding-inline:var(--menu-item-padding, 0.5rem);cursor:var(--menu-item-cursor, pointer) !important}::slotted(*:is(span):first-child){padding-top:0 !important;font-weight:700 !important}::slotted(*:is(button,a,label,span,iam-button):last-child){margin-bottom:0 !important}::slotted(*:is(label)){--radio-size: 1.25rem;--radio-inner-size: 0.75rem;--radio-inner-top: 0.75rem;--radio-inner-left: 0.75rem;--checkbox-tick-size: 0.75rem;--checkbox-inner-size: 0.625rem;--checkbox-inner-top: 0.375rem;--checkbox-inner-left: 0.5rem;padding-left:2.25rem}::slotted(*:is(button,a,label):is(.selected)){background:#e9f8fc !important;border-left:4px solid var(--colour-info) !important;border-radius:.25rem !important;padding-left:calc(var(--menu-item-padding, 0.5rem) - 4px) !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(.selected):not(:hover,.hover)){color:#000 !important}}::slotted(*:is(button,a,label,iam-button):is(:hover,.hover,:focus,.focus)){background:var(--colour-light) !important;border-radius:.25rem !important}::slotted(*:is(button,a,label,iam-button):is(:active,.active)){background:#e0e0e0 !important;border-radius:.25rem !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(:active,.active)){color:#000 !important}}::slotted(hr){height:1px !important;background-color:var(--menu-hr-border-color, var(--border-color, grey)) !important;width:100%;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding:0 !important}::slotted(iam-menu:not([popover])){border:none !important;outline:none !important;border-radius:0 !important;box-shadow:none !important;padding:0;margin:0;width:auto}::slotted(iam-menu[popover]){top:anchor(top) !important;left:calc(anchor(right) + 1rem) !important}/*# sourceMappingURL=assets/css/components/menu.component.css.map */
|
|
9
9
|
|
|
10
10
|
</style>
|
|
11
11
|
<div class="menu--inner" part="inner">
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta7
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const f=t=>t.charAt(0).toUpperCase()+t.slice(1),h=(t=1)=>Math.floor(Math.random()*Date.now()*(t+1)),g=(t,a)=>{switch(t){case"datetime":return new Date(a).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(a).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(a).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return a=f(a)}},x=(t,a,e,i,b)=>{e.querySelector("[name=show]")||e.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),e.querySelector("[name=page]")||e.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),i.addEventListener("update-show",m=>{if(e.querySelector("[name=show]").value!=m.detail.show){e.querySelector("[name=show]").value=m.detail.show;const s=new CustomEvent("update-show",{detail:{show:m.detail.show}});t.dispatchEvent(s),u(t,i),b()}}),i.addEventListener("update-page",m=>{if(e.querySelector("[name=page]").value!=m.detail.page){e.querySelector("[name=page]").value=m.detail.page;const s=new CustomEvent("update-page",{detail:{page:m.detail.page}});if(t.dispatchEvent(s),u(t,i),b(),!t.hasAttribute("data-no-scroll")){const l=a.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:l,behavior:"smooth"})}}})},y=(t,a)=>{let e=document.createElement("form");return t.hasAttribute("data-filterby")?e=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?e=t.closest("form"):t.querySelector("form")?e=t.querySelector("form"):a.parentNode.insertBefore(e,a.nextSibling),t.hasAttribute("data-ajax")&&e.setAttribute("data-ajax",t.getAttribute("data-ajax")),e},w=(t,a,e,i)=>{const b=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",15),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),k(t,i),A(a),j(t,a),t.classList.contains("mh-sm")&&b.classList.add("mh-sm"),t.classList.contains("mh-md")&&b.classList.add("mh-md"),t.classList.contains("mh-lg")&&b.classList.add("mh-lg"),t.classList.contains("table--cta")&&(_(t,a),S(t,a)),v(t)},v=t=>{Array.from(t.querySelectorAll("tr[data-highlight]")).forEach(a=>{a.insertAdjacentHTML("afterend",`<tr role="presentation" class="tr--highlight">
|
|
5
5
|
<td colspan="100%"><i class="fa-solid fa-star"></i> ${a.getAttribute("data-highlight")}</td>
|
|
6
6
|
</tr>`)})},k=(t,a)=>{t.hasAttribute("data-total")&&a.setAttribute("data-total",t.getAttribute("data-total")),t.hasAttribute("data-page")&&a.setAttribute("data-page",t.getAttribute("data-page")),t.hasAttribute("data-show")&&a.setAttribute("data-show",t.getAttribute("data-show")),t.hasAttribute("data-increment")&&a.setAttribute("data-increment",t.getAttribute("data-show")),t.hasAttribute("data-page-jump")&&a.setAttribute("data-page-jump","true"),t.hasAttribute("data-per-page")&&a.setAttribute("data-per-page","true"),t.hasAttribute("data-item-count")&&a.setAttribute("data-item-count","true"),t.hasAttribute("data-loading")&&a.setAttribute("data-loading","true"),t.classList.contains("table--fullwidth")&&a.setAttribute("data-minimal","true")},u=(t,a)=>{t.setAttribute("data-total",a.getAttribute("data-total")),t.setAttribute("data-page",a.getAttribute("data-page")),t.setAttribute("data-show",a.getAttribute("data-show")),t.setAttribute("data-increment",a.getAttribute("data-show"))},A=t=>{const a=Array.from(t.querySelectorAll("thead th"));Array.from(t.querySelectorAll("tbody tr")).forEach(i=>{const b=Array.from(i.querySelectorAll("th, td")),m=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","successful","failed"];b.forEach((s,o)=>{const l=a[o];if(typeof l<"u"){const n=document.createElement("div");n.innerHTML=l.innerHTML;const r=n.textContent||n.innerText||"";s.setAttribute("data-label",r),l.hasAttribute("data-td-class")&&s.setAttribute("class",l.getAttribute("data-td-class")),l.hasAttribute("data-format")&&(s.setAttribute("data-format",l.getAttribute("data-format")),s.innerHTML=g(l.getAttribute("data-format"),s.textContent.trim())),m.includes(s.textContent.trim().toLowerCase())&&s.setAttribute("data-content",s.textContent.trim().toLowerCase())}})})},j=(t,a)=>{if(t.classList.contains("table--fullwidth")&&!t.hasAttribute("data-expandable")||a.querySelectorAll("thead tr th").length<4&&!t.hasAttribute("data-expandable"))return!1;Array.from(a.querySelectorAll("thead tr")).forEach(e=>{a.querySelectorAll("thead tr th.expand-button-heading").length||e.insertAdjacentHTML("afterbegin",`<th class="${t.hasAttribute("data-expandable")?"th--fixed ":""}expand-button-heading"></th>`)}),Array.from(a.querySelectorAll("tbody tr")).forEach((e,i)=>{Array.from(e.querySelectorAll("p")).forEach((m,s)=>{const o=window.getComputedStyle(m,null).getPropertyValue("line-height");console.log(parseInt(o));const l=Math.ceil(m.offsetHeight/parseInt(o));m.setAttribute("data-lines",l),l>=3&&m.classList.add("three-lines")}),e.querySelector("p")&&e.setAttribute("data-view","default");const b=e.getAttribute("data-view")==="full"?"aria-expanded":"";e.querySelectorAll("td.td--expand").length||e.insertAdjacentHTML("afterbegin",`<td class="${t.hasAttribute("data-expandable")?"td--fixed ":""}td--expand"><button class="btn btn-compact btn-secondary btn-sm fa-chevron-down" data-expand-button ${b} data-index="${i}">Expand</button></td>`)}),a.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-expand-button]")){const i=e.target.closest("[data-expand-button]"),b=i.closest("tr");i.toggleAttribute("aria-expanded"),i.classList.contains("fa-chevron-down")?(i.classList.remove("fa-chevron-down"),i.classList.add("fa-chevron-up")):(i.classList.remove("fa-chevron-up"),i.classList.add("fa-chevron-down")),b.getAttribute("data-view")=="full"?b.setAttribute("data-view","default"):b.setAttribute("data-view","full"),i.blur(),t.dispatchEvent(new CustomEvent("row-expanded",{detail:{row:i.getAttribute("data-index")}}))}})},_=(t,a)=>{let e=0;Array.from(a.querySelectorAll("tbody tr")).forEach(i=>{const b=window.getComputedStyle(document.querySelector("html")),m=i.querySelector(":scope > *:last-child > *:first-child");if(m){m.classList.add("text-nowrap");let s=m.offsetWidth/parseFloat(b.fontSize);s+=1.8,e=e>s?e:s}}),t.style.setProperty("--cta-width",`${e}rem`)},S=(t,a)=>{function e(){Array.from(a.querySelectorAll("tr")).forEach(i=>{const b=i.offsetHeight;i.style.setProperty("--row-height",`${b}px`)})}new ResizeObserver(e).observe(a)},q=(t,a)=>{if(t.querySelector("iam-actionbar[data-selectall]")||document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`)){const e=t.querySelector("iam-actionbar[data-selectall]")?t.querySelector("iam-actionbar[data-selectall]"):document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`);L(t,a,e)}t.querySelectorAll(".dialog__wrapper .btn-compact").forEach((e,i)=>{const m=e.closest(".dialog__wrapper").querySelector("dialog");if(m){const r=`menu${h(i)}`;m.setAttribute("id",r),m.setAttribute("popover","auto"),e.setAttribute("popovertarget",r),m.outerHTML=m.outerHTML.replace(/<dialog/g,"<iam-menu").replace(/<\/dialog>/g,"</iam-menu>")}e.classList.add("btn-sm"),e.classList.add("m-0");const s=e.closest("tr"),o=e.closest("td"),n=Array.prototype.slice.call(s.children).indexOf(o);o.classList.add("td--fixed"),a.querySelector(`thead tr th:nth-child(${n+1})`).classList.add("th--fixed")})},L=(t,a,e)=>{Array.from(a.querySelectorAll("thead tr")).forEach(i=>{i.querySelector(".expand-button-heading")?i.querySelector(".expand-button-heading").insertAdjacentHTML("afterend",'<th class="th--fixed"></th>'):i.insertAdjacentHTML("afterbegin",'<th class="th--fixed"></th>')}),Array.from(a.querySelectorAll("tbody tr")).forEach((i,b)=>{if(i.setAttribute("data-index",b+1),!i.querySelector(".selectrow")){const m=`row${h(b)}`;i.querySelector(".td--expand")?i.querySelector(".td--expand").insertAdjacentHTML("afterend",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${m}" ${i.hasAttribute("data-selected")?'checked="true"':""}/><label for="${m}"><span class="visually-hidden">Select row</span></label></td>`):i.insertAdjacentHTML("afterbegin",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${m}" ${i.hasAttribute("data-selected")?'checked="true"':""}/><label for="${m}"><span class="visually-hidden">Select row</span></label></td>`)}}),a.addEventListener("change",i=>{if(i&&i.target instanceof HTMLElement&&i.target.closest(".selectrow input")){const b=i.target.closest(".selectrow input"),m=i.target.closest("tr"),s=a.querySelectorAll('.selectrow input[type="checkbox"]').length,o=a.querySelectorAll('.selectrow input[type="checkbox"]:checked').length;e.setAttribute("data-selected",s==o?"all":o);const l=new CustomEvent("row-selected",{detail:{rowIndex:m.getAttribute("data-index"),checked:!!b.checked}});t.dispatchEvent(l)}}),e.addEventListener("selected",i=>{if(i.detail.selected=="0"){Array.from(a.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(m=>{m.checked=!1});const b=new CustomEvent("all-rows-unselected");t.dispatchEvent(b)}else if(i.detail.selected=="all"){Array.from(a.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(m=>{m.checked=!0});const b=new CustomEvent("all-rows-selected");t.dispatchEvent(b)}})},E=(t,a,e,i)=>{e.setAttribute("method","get");const b=t.querySelector("iam-actionbar");b&&b.addEventListener("change",m=>{e.submit()})};class T extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const a=document.createElement("template");a.innerHTML=`
|
|
7
7
|
<style>
|
|
8
|
-
*,*::before,*::after{box-sizing:border-box}:host{inset:auto;top:anchor(bottom) !important;left:anchor(left) !important;position:fixed;position-try-fallbacks:flip-block,flip-inline;width:max-content !important;min-width:max-content !important;max-width:max-content !important;height:min-content;max-height:var(--menu-max-height, min(100vh - 6rem));overflow:auto;border:none !important}:host(.menu--fill){width:anchor-size(width) !important;min-width:anchor-size(width) !important;max-width:anchor-size(width) !important}:host(:popover-open),:host([popover-open]){display:block}:host(:not([popover])){position:static;display:block}:host(.menu--sm){width:10rem;min-width:10rem !important;max-width:10rem !important}:host(.menu--md){width:15rem;min-width:15rem !important;max-width:15rem !important}:host(.menu--lg){width:20rem;min-width:20rem !important;max-width:20rem !important}:host(.menu--height-sm){max-height:12.5rem}:host(.menu--height-lg){max-height:25rem}::slotted(*:is(button,a,label,span,iam-button)){background:unset !important;
|
|
8
|
+
*,*::before,*::after{box-sizing:border-box}:host{inset:auto;top:anchor(bottom) !important;left:anchor(left) !important;position:fixed;position-try-fallbacks:flip-block,flip-inline;width:max-content !important;min-width:max-content !important;max-width:max-content !important;height:min-content;max-height:var(--menu-max-height, min(100vh - 6rem));overflow:auto;border:none !important}:host(.menu--fill){width:anchor-size(width) !important;min-width:anchor-size(width) !important;max-width:anchor-size(width) !important}:host(:popover-open),:host([popover-open]){display:block}:host(:not([popover])){position:static;display:block}:host(.menu--sm){width:10rem;min-width:10rem !important;max-width:10rem !important}:host(.menu--md){width:15rem;min-width:15rem !important;max-width:15rem !important}:host(.menu--lg){width:20rem;min-width:20rem !important;max-width:20rem !important}:host(.menu--height-sm){max-height:12.5rem}:host(.menu--height-lg){max-height:25rem}::slotted(*:is(button,a,label,span,iam-button)){background:unset !important;outline:unset !important;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;display:block !important;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding-block:var(--menu-item-padding, 0.5rem) !important;width:var(--menu-item-width, 100%) !important;max-width:var(--menu-item-width, 100%) !important;text-align:var(--menu-item-text-align, left) !important}::slotted(*:is(button,a,label,iam-button)){padding-inline:var(--menu-item-padding, 0.5rem);cursor:var(--menu-item-cursor, pointer) !important}::slotted(*:is(span):first-child){padding-top:0 !important;font-weight:700 !important}::slotted(*:is(button,a,label,span,iam-button):last-child){margin-bottom:0 !important}::slotted(*:is(label)){--radio-size: 1.25rem;--radio-inner-size: 0.75rem;--radio-inner-top: 0.75rem;--radio-inner-left: 0.75rem;--checkbox-tick-size: 0.75rem;--checkbox-inner-size: 0.625rem;--checkbox-inner-top: 0.375rem;--checkbox-inner-left: 0.5rem;padding-left:2.25rem}::slotted(*:is(button,a,label):is(.selected)){background:#e9f8fc !important;border-left:4px solid var(--colour-info) !important;border-radius:.25rem !important;padding-left:calc(var(--menu-item-padding, 0.5rem) - 4px) !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(.selected):not(:hover,.hover)){color:#000 !important}}::slotted(*:is(button,a,label,iam-button):is(:hover,.hover,:focus,.focus)){background:var(--colour-light) !important;border-radius:.25rem !important}::slotted(*:is(button,a,label,iam-button):is(:active,.active)){background:#e0e0e0 !important;border-radius:.25rem !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(:active,.active)){color:#000 !important}}::slotted(hr){height:1px !important;background-color:var(--menu-hr-border-color, var(--border-color, grey)) !important;width:100%;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding:0 !important}::slotted(iam-menu:not([popover])){border:none !important;outline:none !important;border-radius:0 !important;box-shadow:none !important;padding:0;margin:0;width:auto}::slotted(iam-menu[popover]){top:anchor(top) !important;left:calc(anchor(right) + 1rem) !important}/*# sourceMappingURL=assets/css/components/menu.component.css.map */
|
|
9
9
|
|
|
10
10
|
</style>
|
|
11
11
|
<div class="menu--inner" part="inner">
|