@iamproperty/components 7.6.3--beta1 → 7.6.3--beta3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/assets/css/components/actionbar.component.css +1 -1
  2. package/assets/css/components/actionbar.component.css.map +1 -1
  3. package/assets/css/components/address-lookup.component.css +1 -1
  4. package/assets/css/components/address-lookup.component.css.map +1 -1
  5. package/assets/css/components/applied-filters.css +1 -1
  6. package/assets/css/components/applied-filters.css.map +1 -1
  7. package/assets/css/components/barchart.component.css +1 -1
  8. package/assets/css/components/barchart.component.css.map +1 -1
  9. package/assets/css/components/calendar.component.css +1 -1
  10. package/assets/css/components/calendar.component.css.map +1 -1
  11. package/assets/css/components/card.component.css +1 -1
  12. package/assets/css/components/card.component.css.map +1 -1
  13. package/assets/css/components/carousel.component.css +1 -1
  14. package/assets/css/components/carousel.component.css.map +1 -1
  15. package/assets/css/components/collapsible-side.css +1 -1
  16. package/assets/css/components/collapsible-side.css.map +1 -1
  17. package/assets/css/components/content.component.css +1 -1
  18. package/assets/css/components/content.component.css.map +1 -1
  19. package/assets/css/components/doughnutchart.component.css +1 -1
  20. package/assets/css/components/doughnutchart.component.css.map +1 -1
  21. package/assets/css/components/fileupload.css +1 -1
  22. package/assets/css/components/fileupload.css.map +1 -1
  23. package/assets/css/components/header.css +1 -1
  24. package/assets/css/components/header.css.map +1 -1
  25. package/assets/css/components/modal.component.css +1 -1
  26. package/assets/css/components/modal.component.css.map +1 -1
  27. package/assets/css/components/multi-step-modal.component.css +1 -1
  28. package/assets/css/components/multi-step-modal.component.css.map +1 -1
  29. package/assets/css/components/multiselect.css +1 -1
  30. package/assets/css/components/multiselect.css.map +1 -1
  31. package/assets/css/components/multiselect.preload.css +1 -1
  32. package/assets/css/components/multiselect.preload.css.map +1 -1
  33. package/assets/css/components/nav.component.css +1 -1
  34. package/assets/css/components/nav.component.css.map +1 -1
  35. package/assets/css/components/pagination.css +1 -1
  36. package/assets/css/components/pagination.css.map +1 -1
  37. package/assets/css/components/rank.component.css +1 -1
  38. package/assets/css/components/rank.component.css.map +1 -1
  39. package/assets/css/components/rankings.component.css +1 -1
  40. package/assets/css/components/rankings.component.css.map +1 -1
  41. package/assets/css/components/rankings.global.css +1 -1
  42. package/assets/css/components/rankings.global.css.map +1 -1
  43. package/assets/css/components/split-button.component.css +1 -1
  44. package/assets/css/components/split-button.component.css.map +1 -1
  45. package/assets/css/components/tabs.component.css +1 -1
  46. package/assets/css/components/tabs.component.css.map +1 -1
  47. package/assets/css/components/tag.component.css +1 -0
  48. package/assets/css/components/tag.component.css.map +1 -0
  49. package/assets/css/components/tag.preload.css +1 -0
  50. package/assets/css/components/tag.preload.css.map +1 -0
  51. package/assets/css/components/tooltip.component.css +1 -1
  52. package/assets/css/components/tooltip.component.css.map +1 -1
  53. package/assets/css/components/video-modal.component.css +1 -0
  54. package/assets/css/components/video-modal.component.css.map +1 -0
  55. package/assets/css/core.min.css +1 -1
  56. package/assets/css/core.min.css.map +1 -1
  57. package/assets/css/style.min.css +1 -1
  58. package/assets/css/style.min.css.map +1 -1
  59. package/assets/img/illustrations/minimal-cost.png +0 -0
  60. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  61. package/assets/js/components/actionbar/actionbar.component.min.js +5 -5
  62. package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
  63. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  64. package/assets/js/components/applied-filters/applied-filters.component.min.js +3 -3
  65. package/assets/js/components/barchart/barchart.component.min.js +4 -4
  66. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  67. package/assets/js/components/calendar/calendar.component.min.js +2 -2
  68. package/assets/js/components/card/card.component.min.js +2 -2
  69. package/assets/js/components/carousel/carousel.component.min.js +4 -4
  70. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  71. package/assets/js/components/content/content.component.min.js +2 -2
  72. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  73. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +4 -4
  74. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  75. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  76. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  77. package/assets/js/components/header/header.component.min.js +2 -2
  78. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  79. package/assets/js/components/input/input.component.min.js +1 -1
  80. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  81. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  82. package/assets/js/components/menu/menu.component.min.js +1 -1
  83. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  84. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  85. package/assets/js/components/modal/modal.component.js +11 -39
  86. package/assets/js/components/modal/modal.component.min.js +5 -5
  87. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  88. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  89. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
  90. package/assets/js/components/multiselect/multiselect.component.js +3 -17
  91. package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
  92. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  93. package/assets/js/components/nav/nav.component.min.js +2 -2
  94. package/assets/js/components/notification/notification.component.min.js +1 -1
  95. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  96. package/assets/js/components/password/password.component.min.js +1 -1
  97. package/assets/js/components/popover/popover.component.min.js +1 -1
  98. package/assets/js/components/rank/rank.component.min.js +1 -1
  99. package/assets/js/components/rankings/rankings.component.min.js +5 -5
  100. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  101. package/assets/js/components/search/search.component.min.js +1 -1
  102. package/assets/js/components/slider/slider.component.min.js +1 -1
  103. package/assets/js/components/split-button/split-button.component.min.js +2 -2
  104. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +6 -6
  105. package/assets/js/components/table/table.component.min.js +1 -1
  106. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  107. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  108. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  109. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  110. package/assets/js/components/tabs/tabs.component.min.js +3 -3
  111. package/assets/js/components/tag/tag.component.js +73 -0
  112. package/assets/js/components/tag/tag.component.min.js +18 -0
  113. package/assets/js/components/tag/tag.component.min.js.map +1 -0
  114. package/assets/js/components/tooltip/tooltip.component.min.js +4 -4
  115. package/assets/js/components/video-card/video-card.component.js +1 -1
  116. package/assets/js/components/video-card/video-card.component.min.js +4 -4
  117. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  118. package/assets/js/components/video-modal/video-modal.component.js +115 -0
  119. package/assets/js/components/video-modal/video-modal.component.min.js +19 -0
  120. package/assets/js/components/video-modal/video-modal.component.min.js.map +1 -0
  121. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  122. package/assets/js/modules/dropdown.js +86 -0
  123. package/assets/js/modules/modal.js +34 -0
  124. package/assets/js/modules/videos.js +5 -5
  125. package/assets/js/scripts.bundle.js +2 -2
  126. package/assets/js/scripts.bundle.js.map +1 -1
  127. package/assets/js/scripts.bundle.min.js +2 -2
  128. package/assets/js/scripts.bundle.min.js.map +1 -1
  129. package/assets/sass/_components.scss +1 -0
  130. package/assets/sass/_elements.scss +1 -0
  131. package/assets/sass/_grid.scss +1 -1
  132. package/assets/sass/_utilities.scss +3 -0
  133. package/assets/sass/components/modal.component.scss +7 -5
  134. package/assets/sass/components/multiselect.preload.scss +6 -0
  135. package/assets/sass/components/nav.component.scss +2 -2
  136. package/assets/sass/components/tag.component.scss +78 -0
  137. package/assets/sass/components/tag.preload.scss +45 -0
  138. package/assets/sass/components/tooltip.component.scss +17 -2
  139. package/assets/sass/components/video-modal.component.scss +25 -0
  140. package/assets/sass/elements/admin-panel.scss +17 -29
  141. package/assets/sass/elements/badge-tag.scss +7 -6
  142. package/assets/sass/elements/button__group.css +31 -0
  143. package/assets/sass/elements/buttons--compact.scss +54 -6
  144. package/assets/sass/elements/buttons.scss +2 -1
  145. package/assets/sass/elements/container.scss +1 -0
  146. package/assets/sass/elements/feature.scss +27 -8
  147. package/assets/sass/elements/highlight.css +70 -0
  148. package/assets/sass/elements/hr.css +1 -0
  149. package/assets/sass/elements/links.scss +5 -1
  150. package/assets/sass/elements/modal.scss +0 -12
  151. package/assets/sass/elements/type.css +9 -1
  152. package/assets/sass/foundations/colours.scss +2 -2
  153. package/assets/sass/utilities/columns.scss +62 -0
  154. package/assets/sass/utilities/flex.scss +142 -0
  155. package/assets/sass/utilities/font-awesome-iso-fallbacks.scss +32 -0
  156. package/assets/sass/utilities/ratio.scss +1 -0
  157. package/assets/sass/utilities/text.scss +69 -0
  158. package/assets/ts/components/modal/modal.component.ts +11 -52
  159. package/assets/ts/components/multiselect/multiselect.component.ts +3 -21
  160. package/assets/ts/components/tag/tag.component.ts +107 -0
  161. package/assets/ts/components/video-card/video-card.component.ts +1 -1
  162. package/assets/ts/components/video-modal/video-modal.component.ts +137 -0
  163. package/assets/ts/modules/dropdown.ts +104 -0
  164. package/assets/ts/modules/modal.ts +44 -0
  165. package/assets/ts/modules/videos.ts +5 -5
  166. package/dist/components.es.js +82 -82
  167. package/dist/components.umd.js +209 -179
  168. package/package.json +2 -2
  169. package/src/components/Tag/Tag.vue +22 -0
  170. package/src/components/VideoModal/VideoModal.vue +22 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.component.min.js","sources":["../_global.js","../../modules/dropdown.js","tag.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\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 Cookies from 'js-cookie';\nexport const filterList = (component, search) => {\n Array.from(component.querySelectorAll(`label:not([slot=\"checked\"])`)).forEach((label) => {\n const checkbox = label.querySelector('input');\n const searchValue = checkbox.value;\n const labelText = label.textContent;\n if (searchValue.toLowerCase().includes(search.value.toLowerCase()) ||\n labelText.toLowerCase().includes(search.value.toLowerCase())) {\n label.removeAttribute('slot');\n }\n else {\n label.setAttribute('slot', 'notmatched');\n }\n });\n};\nexport const searchAjax = (component, search, callback) => __awaiter(void 0, void 0, void 0, function* () {\n const searchterm = search.value;\n const ajaxURL = component.getAttribute('data-url');\n const firstInput = component.querySelector('input');\n console.log(firstInput);\n const inputType = firstInput.getAttribute('type');\n const inputName = firstInput.getAttribute('name');\n const searchAjaxURL = `${ajaxURL}?search_query=${encodeURI(searchterm)}`;\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[searchAjaxURL])\n window.controller[searchAjaxURL].abort();\n // Create a new controller so it can be aborted if new fetch made\n window.controller[searchAjaxURL] = new AbortController();\n const { signal } = controller[searchAjaxURL];\n try {\n yield fetch(searchAjaxURL, {\n signal: signal,\n method: 'get',\n credentials: 'same-origin',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN'),\n }),\n })\n .then((response) => response.json())\n .then((response) => {\n let items = '';\n for (let i = 0; i < response['data'].length; i++) {\n if (!component.querySelector(`[value=\"${response['data'][i].value}\"]`))\n items += `<label class=\"tag\"><input type=\"${inputType}\" name=\"${component.hasAttribute('data-name') ? component.getAttribute('data-name') : inputName}\" value=\"${response['data'][i].value}\"/>${response['data'][i].title}</label>`;\n }\n component.insertAdjacentHTML('beforeend', `${items}`);\n callback(component, search);\n return response;\n });\n }\n catch (error) {\n console.log(error);\n }\n});\nexport const setTag = (tag) => {\n const input = tag.querySelector(':checked');\n const inputName = input === null || input === void 0 ? void 0 : input.getAttribute('name');\n tag.setAttribute('slot', 'checked');\n tag.setAttribute('data-content', tag.textContent);\n let tags = [];\n if (localStorage.getItem('tags-' + inputName) != null)\n tags = JSON.parse(localStorage.getItem('tags-' + inputName));\n if (!tags.includes(tag.textContent)) {\n tags.push(tag.textContent);\n localStorage.setItem('tags-' + inputName, JSON.stringify(tags));\n }\n let tagIndex = tags.indexOf(tag.textContent) + 1;\n if (tagIndex > 23)\n tagIndex = 1;\n tag === null || tag === void 0 ? void 0 : tag.classList.add(`wider-colour-${tagIndex + 1}`);\n};\n","import { trackComponentRegistered } from '../_global.js';\nimport { searchAjax, filterList, setTag } from '../../modules/dropdown.js';\ntrackComponentRegistered('iam-tag');\nclass iamTag extends HTMLElement {\n constructor() {\n super();\n 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/tag.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n\n ${loadCSS}\n </style>\n <div class=\"wrapper\">\n <input type=\"text\" name=\"search\" autocomplete=\"off\" />\n <slot name=\"checked\"></slot>\n <div class=\"admin-panel dropdown\" part=\"dropdown\">\n <slot></slot>\n </div>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const search = this.shadowRoot.querySelector('input');\n const input = this.querySelector(':checked');\n const inputName = input === null || input === void 0 ? void 0 : input.getAttribute('name');\n let tag = this.querySelector('label:has(:checked)');\n setTag(tag);\n this.addEventListener('click', () => {\n if (event && event.target instanceof HTMLElement && event.target.closest('label:has(:checked)')) {\n search.focus();\n }\n });\n search.addEventListener('input', () => {\n if (this.hasAttribute('data-url')) {\n if (search.value.length == 3) {\n searchAjax(this, search, filterList);\n }\n }\n else {\n filterList(this, search);\n }\n });\n this.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('input[type=\"radio\"],input[type=\"checkbox\"]')) {\n const checkbox = event.target.closest('input[type=\"radio\"],input[type=\"checkbox\"]');\n tag.checked = false;\n tag.removeAttribute('slot');\n // Set the new tag\n tag = this.querySelector('label:has(:checked)');\n setTag(tag);\n search === null || search === void 0 ? void 0 : search.blur();\n search === null || search === void 0 ? void 0 : search.value = '';\n filterList(this, search);\n // dispatch event\n const changeEvent = new CustomEvent('tag-changed', {\n detail: {\n value: tag === null || tag === void 0 ? void 0 : tag.querySelector(':checked').value,\n title: tag === null || tag === void 0 ? void 0 : tag.textContent\n }\n });\n this === null || this === void 0 ? void 0 : this.dispatchEvent(changeEvent);\n }\n });\n // TODO Add keyboard actions\n }\n}\nexport default iamTag;\n"],"names":["trackComponentRegistered","componentName","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","filterList","component","search","label","searchValue","labelText","searchAjax","callback","searchterm","ajaxURL","firstInput","inputType","inputName","searchAjaxURL","signal","Cookies","response","items","i","error","setTag","tag","input","tags","tagIndex","iamTag","template","event","changeEvent"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  /*!
2
- * iamKey v7.6.3--beta1
2
+ * iamKey v7.6.3--beta3
3
3
  * Copyright 2022-2026 iamproperty
4
- */const a=r=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:r})};a("iam-tooltip");class s extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
4
+ */const a=n=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:n})};a("iam-tooltip");class l extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
5
5
  <style>
6
- *,*::before,*::after{box-sizing:border-box}@layer components{:host{display:inline;position:relative;text-decoration:underline;text-decoration-style:dashed;text-underline-offset:.2em;overflow-anchor:none;cursor:pointer}.tooltip__anchor{anchor-name:--anchor;position:absolute;display:block;inset:0;height:100%;width:100%;min-width:1rem;left:auto;right:0}:host(:empty) .tooltip__anchor{height:1rem;width:1rem}:host(:empty) .tooltip__anchor:after{font-family:"Font Awesome 6 Pro";font-weight:900;content:"\uF059";display:block;margin:0;line-height:1;color:var(--colour-primary);position:absolute;top:50%;left:50%;translate:-50% -50%}.tooltip__content{position:fixed;position-anchor:--anchor;position-area:center end;position-try-fallbacks:bottom span-all,top span-all,start;container-type:anchored;max-width:16.875rem;background:var(--colour-primary);color:var(--colour-white);padding:1.5rem;border:none;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.11);margin:.75rem;overflow:visible}.tooltip__content>strong:first-child{display:block;padding-bottom:1rem;color:inherit}@media screen and (min-width: 36em){.tooltip__content{max-width:20.9375rem}}@media screen and (min-width: 62em){.tooltip__content{max-width:22.5rem}}.tooltip__content::after{content:"";position:absolute;bottom:50%;left:-0.45rem;transform:translate(-50%, 0);border-width:.5rem;border-style:solid;border-color:rgba(0,0,0,0) var(--colour-primary) rgba(0,0,0,0) rgba(0,0,0,0);margin-bottom:-0.5rem}@container anchored(fallback: top span-all){.tooltip__content::after{left:50%;bottom:auto;top:100%;border-color:var(--colour-primary) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);margin-bottom:-1px}}@container anchored(fallback: bottom span-all){.tooltip__content::after{top:auto;bottom:100%;left:50%;border-color:rgba(0,0,0,0) rgba(0,0,0,0) var(--colour-primary) rgba(0,0,0,0);margin-bottom:-1px}}@container anchored(fallback: start){.tooltip__content::after{display:none}}}/*# sourceMappingURL=assets/css/components/tooltip.component.css.map */
6
+ *,*::before,*::after{box-sizing:border-box}@layer components{:host{display:inline;position:relative;text-decoration:underline;text-decoration-style:dashed;text-underline-offset:.2em;overflow-anchor:none;cursor:pointer}.tooltip__anchor{anchor-name:--anchor;position:absolute;display:block;inset:0;height:100%;width:100%;min-width:1rem;left:auto;right:0}:host(:empty) .tooltip__anchor{height:1rem;width:1rem;background-color:var(--colour, var(--colour-info));border-radius:50%}:host(:empty) .tooltip__anchor:after{font-family:"Font Awesome 6 Pro";font-weight:900;content:"?";display:block;margin:0;line-height:1;color:var(--colour-primary);position:absolute;top:50%;left:50%;translate:-50% -50%;font-size:.6em;font-weight:bold}::slotted(i:first-child:last-child){height:1rem;width:1rem;background-color:var(--colour, var(--colour-info));color:var(--colour-primary);font-size:.6em;line-height:1rem !important;text-align:center;border-radius:50%}.tooltip__content{position:fixed;position-anchor:--anchor;position-area:center end;position-try-fallbacks:bottom span-all,top span-all,start;container-type:anchored;max-width:16.875rem;background:var(--colour-primary);color:var(--colour-white);padding:1.5rem;border:none;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.11);margin:.75rem;overflow:visible}.tooltip__content>strong:first-child{display:block;padding-bottom:1rem;color:inherit}@media screen and (min-width: 36em){.tooltip__content{max-width:20.9375rem}}@media screen and (min-width: 62em){.tooltip__content{max-width:22.5rem}}.tooltip__content::after{content:"";position:absolute;bottom:50%;left:-0.45rem;transform:translate(-50%, 0);border-width:.5rem;border-style:solid;border-color:rgba(0,0,0,0) var(--colour-primary) rgba(0,0,0,0) rgba(0,0,0,0);margin-bottom:-0.5rem}@container anchored(fallback: top span-all){.tooltip__content::after{left:50%;bottom:auto;top:100%;border-color:var(--colour-primary) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);margin-bottom:-1px}}@container anchored(fallback: bottom span-all){.tooltip__content::after{top:auto;bottom:100%;left:50%;border-color:rgba(0,0,0,0) rgba(0,0,0,0) var(--colour-primary) rgba(0,0,0,0);margin-bottom:-1px}}@container anchored(fallback: start){.tooltip__content::after{display:none}}}/*# sourceMappingURL=assets/css/components/tooltip.component.css.map */
7
7
 
8
8
  </style>
9
9
  <slot></slot>
10
10
  <div class="tooltip__anchor">
11
11
  </div>
12
12
  <div class="tooltip__content" id="tooltip"></div>
13
- `,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){var t,e,i;const o=(t=this.shadowRoot)===null||t===void 0?void 0:t.querySelector(".tooltip__content");(e=this.shadowRoot)===null||e===void 0||e.querySelector(".tooltip__anchor"),this.hasAttribute("data-heading")&&(o==null||(o.innerHTML+=`<strong>${this.getAttribute("data-heading")}</strong>`)),o==null||(o.innerHTML+=this.getAttribute("title")),this.removeAttribute("title"),o?.setAttribute("popover","auto"),this===null||this===void 0||this.addEventListener("mouseenter",n=>{o.showPopover()}),this===null||this===void 0||this.addEventListener("mouseleave",n=>{o?.classList.contains("show-popover")||o.hidePopover()}),this.classList.contains("show-popover")&&(o?.classList.add("show-popover"),o?.setAttribute("popover","manual"),o.showPopover()),this===null||this===void 0||this.addEventListener("click",n=>{o?.classList.toggle("show-popover"),o?.classList.contains("show-popover")?(o?.setAttribute("popover","manual"),o.showPopover()):(o?.setAttribute("popover","auto"),o.hidePopover())}),(i=this===null||this===void 0?void 0:this.parentNode)===null||i===void 0||i.addEventListener("update",n=>{o?.setAttribute("popover","auto"),o.hidePopover(),setTimeout(()=>{o?.classList.add("show-popover"),o?.setAttribute("popover","manual"),o.showPopover()},100)})}}export{s as default};
13
+ `,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){var t,e,i;const o=(t=this.shadowRoot)===null||t===void 0?void 0:t.querySelector(".tooltip__content");(e=this.shadowRoot)===null||e===void 0||e.querySelector(".tooltip__anchor"),this.hasAttribute("data-heading")&&(o==null||(o.innerHTML+=`<strong>${this.getAttribute("data-heading")}</strong>`)),o==null||(o.innerHTML+=this.getAttribute("title")),this.removeAttribute("title"),o?.setAttribute("popover","auto"),this===null||this===void 0||this.addEventListener("mouseenter",r=>{o.showPopover()}),this===null||this===void 0||this.addEventListener("mouseleave",r=>{o?.classList.contains("show-popover")||o.hidePopover()}),this.classList.contains("show-popover")&&(o?.classList.add("show-popover"),o?.setAttribute("popover","manual"),o.showPopover()),this===null||this===void 0||this.addEventListener("click",r=>{o?.classList.toggle("show-popover"),o?.classList.contains("show-popover")?(o?.setAttribute("popover","manual"),o.showPopover()):(o?.setAttribute("popover","auto"),o.hidePopover())}),(i=this===null||this===void 0?void 0:this.parentNode)===null||i===void 0||i.addEventListener("update",r=>{o?.setAttribute("popover","auto"),o.hidePopover(),setTimeout(()=>{o?.classList.add("show-popover"),o?.setAttribute("popover","manual"),o.showPopover()},100)})}}export{l as default};
14
14
  //# sourceMappingURL=tooltip.component.min.js.map
@@ -70,7 +70,7 @@ class iamVideoCard extends HTMLElement {
70
70
  detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },
71
71
  });
72
72
  cardComponent.dispatchEvent(customEvent);
73
- createYoutTubeVideo(embed, this.getAttribute('[data-youtbue]'));
73
+ createYoutTubeVideo(embed, this.getAttribute('[data-youtube]'));
74
74
  dialog.showModal();
75
75
  });
76
76
  dialog.addEventListener('close', () => {
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * iamKey v7.6.3--beta1
2
+ * iamKey v7.6.3--beta3
3
3
  * Copyright 2022-2026 iamproperty
4
- */const p=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})},h=(o,t,e)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),e.forEach(a=>{o.addEventListener(a,function(d){const r={event:a,element:t,target:d.target};Object.keys(d.detail).forEach(i=>{const n=d.detail[i];r[i]=n}),window.dataLayer.push(r)})}),!0),b=`<div class="card__head" part="head">
4
+ */const p=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})},h=(o,t,a)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),a.forEach(e=>{o.addEventListener(e,function(r){const i={event:e,element:t,target:r.target};Object.keys(r.detail).forEach(d=>{const s=r.detail[d];i[d]=s}),window.dataLayer.push(i)})}),!0),b=`<div class="card__head" part="head">
5
5
  <slot name="head"></slot>
6
6
  </div>
7
7
  <div class="card__badges"><slot name="badges"></slot></div>
@@ -15,7 +15,7 @@
15
15
  </div>
16
16
  <div class="card__footer" part="footer">
17
17
  <slot name="footer"></slot>
18
- </div>`,g=o=>{var t;o.classList.add("card");const e=o.shadowRoot.querySelector(".card__head"),a=o.shadowRoot.querySelector(".card__body");o.hasAttribute("data-image")&&(e.innerHTML+=`<img src="${o.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),o.hasAttribute("data-total")?a?.querySelector(".card__total")?(t=a?.querySelector(".card__total"))===null||t===void 0||(t.innerHTML=o.getAttribute("data-total")):a.insertAdjacentHTML("beforeend",`<div class="card__total">${o.getAttribute("data-total")}</div>`):o.querySelector('[slot="total-icon"]')&&a.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>'),o.querySelector('[slot="badges"]')?o.shadowRoot.querySelector(".card__badges").classList.remove("empty"):o.shadowRoot.querySelector(".card__badges").classList.add("empty")};var u=function(o,t,e,a){function d(r){return r instanceof e?r:new e(function(i){i(r)})}return new(e||(e=Promise))(function(r,i){function n(s){try{c(a.next(s))}catch(l){i(l)}}function m(s){try{c(a.throw(s))}catch(l){i(l)}}function c(s){s.done?r(s.value):d(s.value).then(n,m)}c((a=a.apply(o,t||[])).next())})};const v=()=>u(void 0,void 0,void 0,function*(){return new Promise((o,t)=>{const e=new Image;e.onload=function(){const a=document.createElement("script");a.src="https://www.youtube.com/iframe_api";const d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(a,d),document.body.classList.add("youtubeLoaded"),o(!0)},e.onerror=function(){t(!1)},e.src="https://youtube.com/favicon.ico"})}),f=(o,t)=>u(void 0,void 0,void 0,function*(){typeof window.player>"u"&&(window.player=[]);const e=o.getAttribute("id");if(typeof window.player[e]<"u"&&typeof window.player[e].pauseVideo=="function")return window.player[e].playVideo(),!1;window.player[e]=new YT.Player(e,{height:"100%",width:"100%",videoId:t,playerVars:{modestbranding:1,playsinline:1,rel:0,showinfo:0},events:{onReady:a,onStateChange:r}});function a(i){i.target.playVideo()}let d=!1;function r(i){i.data==YT.PlayerState.PLAYING&&!d&&(document.getElementById(e).classList.add("player-ready"),d=!0)}});var y=function(o,t,e,a){function d(r){return r instanceof e?r:new e(function(i){i(r)})}return new(e||(e=Promise))(function(r,i){function n(s){try{c(a.next(s))}catch(l){i(l)}}function m(s){try{c(a.throw(s))}catch(l){i(l)}}function c(s){s.done?r(s.value):d(s.value).then(n,m)}c((a=a.apply(o,t||[])).next())})};p("iam-video-card");class w extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
18
+ </div>`,g=o=>{var t;o.classList.add("card");const a=o.shadowRoot.querySelector(".card__head"),e=o.shadowRoot.querySelector(".card__body");o.hasAttribute("data-image")&&(a.innerHTML+=`<img src="${o.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),o.hasAttribute("data-total")?e?.querySelector(".card__total")?(t=e?.querySelector(".card__total"))===null||t===void 0||(t.innerHTML=o.getAttribute("data-total")):e.insertAdjacentHTML("beforeend",`<div class="card__total">${o.getAttribute("data-total")}</div>`):o.querySelector('[slot="total-icon"]')&&e.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>'),o.querySelector('[slot="badges"]')?o.shadowRoot.querySelector(".card__badges").classList.remove("empty"):o.shadowRoot.querySelector(".card__badges").classList.add("empty")};var u=function(o,t,a,e){function r(i){return i instanceof a?i:new a(function(d){d(i)})}return new(a||(a=Promise))(function(i,d){function s(n){try{c(e.next(n))}catch(l){d(l)}}function m(n){try{c(e.throw(n))}catch(l){d(l)}}function c(n){n.done?i(n.value):r(n.value).then(s,m)}c((e=e.apply(o,t||[])).next())})};const f=()=>u(void 0,void 0,void 0,function*(){return new Promise((o,t)=>{const a=new Image;a.onload=function(){const e=document.createElement("script");e.src="https://www.youtube.com/iframe_api";const r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(e,r),document.body.classList.add("youtubeLoaded"),o(!0)},a.onerror=function(){t(!1)},a.src="https://youtube.com/favicon.ico"})}),v=(o,t)=>u(void 0,void 0,void 0,function*(){if(typeof window.player>"u"&&(window.player=[]),typeof window.player[t]<"u"&&typeof window.player[t].pauseVideo=="function")return window.player[t].playVideo(),!1;window.player[t]=new YT.Player(t,{height:"100%",width:"100%",videoId:t,playerVars:{modestbranding:1,playsinline:1,rel:0,showinfo:0},events:{onReady:a,onStateChange:r}});function a(i){i.target.playVideo()}let e=!1;function r(i){i.data==YT.PlayerState.PLAYING&&!e&&(document.getElementById(t).classList.add("player-ready"),e=!0)}});var y=function(o,t,a,e){function r(i){return i instanceof a?i:new a(function(d){d(i)})}return new(a||(a=Promise))(function(i,d){function s(n){try{c(e.next(n))}catch(l){d(l)}}function m(n){try{c(e.throw(n))}catch(l){d(l)}}function c(n){n.done?i(n.value):r(n.value).then(s,m)}c((e=e.apply(o,t||[])).next())})};p("iam-video-card");class w extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
19
19
  <style>
20
20
  ${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
21
21
 
@@ -26,5 +26,5 @@
26
26
  <dialog>
27
27
  <div class="embed"></div>
28
28
  </dialog>
29
- `,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){return y(this,void 0,void 0,function*(){const t=this,e=t.shadowRoot.querySelector(".card__head"),d=String.fromCharCode(65+Math.floor(Math.random()*26))+Date.now();let r,i;g(t),t.querySelector("[data-youtube]")&&t.setAttribute("data-youtube",t.querySelector("[data-youtube]").getAttribute("data-youtube")),t.querySelector("[data-vimeo]")&&t.setAttribute("data-vimeo",t.querySelector("[data-vimeo]").getAttribute("data-vimeo")),(t.hasAttribute("data-youtube")||t.hasAttribute("data-vimeo"))&&(e.setAttribute("tabindex","0"),document.getElementById(`${d}-dialog`)||document.body.insertAdjacentHTML("beforeend",`<dialog id="${d}-dialog"><div class="embed" id="${d}"></div></dialog>`),r=document.getElementById(`${d}-dialog`),i=document.getElementById(d)),t.hasAttribute("data-youtube")?(document.body.classList.contains("youtubeLoaded")||(yield v()),e.addEventListener("click",function(){const n=new CustomEvent("play-video",{detail:{"Video Type":"YoutTube",ID:t.getAttribute("data-youtube")}});t.dispatchEvent(n),f(i,this.getAttribute("[data-youtbue]")),r.showModal()}),r.addEventListener("close",()=>{window.player[i.getAttribute("id")]&&typeof window.player[i.getAttribute("id")].pauseVideo=="function"&&window.player[i.getAttribute("id")].pauseVideo();const n=new CustomEvent("close-video",{detail:{"Video Type":"YoutTube",ID:t.getAttribute("data-youtube")}});t.dispatchEvent(n)})):t.hasAttribute("data-vimeo")&&(e.addEventListener("click",function(){const n=t.getAttribute("data-vimeo"),m=new CustomEvent("play-video",{detail:{"Video Type":"Vimeo",ID:n}});t.dispatchEvent(m),i.querySelector("iframe")||(i.innerHTML=`<iframe src="https://player.vimeo.com/video/${n}?autoplay=1" width="100%" height="100%" frameborder="0" allow="autoplay; encrypted-media" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`),r.showModal()}),r.addEventListener("close",()=>{i.innerHTML="";const n=new CustomEvent("close-video",{detail:{"Video Type":"Vimeo",ID:t.getAttribute("data-vimeo")}});t.dispatchEvent(n)})),h(t,"iam-video-card",["play-video","close-video"])})}static get observedAttributes(){return["data-image"]}attributeChangedCallback(t,e,a){switch(t){case"data-image":{if(e!=a){const d=this.shadowRoot.querySelector(".card__head img");d&&d.setAttribute("src",a)}break}}}}export{w as default};
29
+ `,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){return y(this,void 0,void 0,function*(){const t=this,a=t.shadowRoot.querySelector(".card__head"),r=String.fromCharCode(65+Math.floor(Math.random()*26))+Date.now();let i,d;g(t),t.querySelector("[data-youtube]")&&t.setAttribute("data-youtube",t.querySelector("[data-youtube]").getAttribute("data-youtube")),t.querySelector("[data-vimeo]")&&t.setAttribute("data-vimeo",t.querySelector("[data-vimeo]").getAttribute("data-vimeo")),(t.hasAttribute("data-youtube")||t.hasAttribute("data-vimeo"))&&(a.setAttribute("tabindex","0"),document.getElementById(`${r}-dialog`)||document.body.insertAdjacentHTML("beforeend",`<dialog id="${r}-dialog"><div class="embed" id="${r}"></div></dialog>`),i=document.getElementById(`${r}-dialog`),d=document.getElementById(r)),t.hasAttribute("data-youtube")?(document.body.classList.contains("youtubeLoaded")||(yield f()),a.addEventListener("click",function(){const s=new CustomEvent("play-video",{detail:{"Video Type":"YoutTube",ID:t.getAttribute("data-youtube")}});t.dispatchEvent(s),v(d,this.getAttribute("[data-youtube]")),i.showModal()}),i.addEventListener("close",()=>{window.player[d.getAttribute("id")]&&typeof window.player[d.getAttribute("id")].pauseVideo=="function"&&window.player[d.getAttribute("id")].pauseVideo();const s=new CustomEvent("close-video",{detail:{"Video Type":"YoutTube",ID:t.getAttribute("data-youtube")}});t.dispatchEvent(s)})):t.hasAttribute("data-vimeo")&&(a.addEventListener("click",function(){const s=t.getAttribute("data-vimeo"),m=new CustomEvent("play-video",{detail:{"Video Type":"Vimeo",ID:s}});t.dispatchEvent(m),d.querySelector("iframe")||(d.innerHTML=`<iframe src="https://player.vimeo.com/video/${s}?autoplay=1" width="100%" height="100%" frameborder="0" allow="autoplay; encrypted-media" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`),i.showModal()}),i.addEventListener("close",()=>{d.innerHTML="";const s=new CustomEvent("close-video",{detail:{"Video Type":"Vimeo",ID:t.getAttribute("data-vimeo")}});t.dispatchEvent(s)})),h(t,"iam-video-card",["play-video","close-video"])})}static get observedAttributes(){return["data-image"]}attributeChangedCallback(t,a,e){switch(t){case"data-image":{if(a!=e){const r=this.shadowRoot.querySelector(".card__head img");r&&r.setAttribute("src",e)}break}}}}export{w as default};
30
30
  //# sourceMappingURL=video-card.component.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"video-card.component.min.js","sources":["../_global.js","../../modules/card.module.js","../../modules/videos.js","video-card.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","export const cardHTML = `<div class=\"card__head\" part=\"head\">\n <slot name=\"head\"></slot>\n</div>\n<div class=\"card__badges\"><slot name=\"badges\"></slot></div>\n<slot name=\"checkbox\" class=\"activate-prevent-hover\"></slot>\n<div class=\"card__body\" part=\"body\">\n <slot></slot>\n <slot name=\"secondary\" part=\"secondary\"></slot>\n</div>\n<div class=\"card__details\" part=\"details\">\n <slot name=\"details\"></slot>\n</div>\n<div class=\"card__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n</div>`;\nexport const setupCard = (cardComponent) => {\n var _a;\n cardComponent.classList.add('card');\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n if (cardComponent.hasAttribute('data-image')) {\n cardHead.innerHTML += `<img src=\"${cardComponent.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\" part=\"image\" />`;\n }\n // Inset the HTML for the data total or icon fallback\n if (cardComponent.hasAttribute('data-total')) {\n if (!(cardBody === null || cardBody === void 0 ? void 0 : cardBody.querySelector('.card__total')))\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\">${cardComponent.getAttribute('data-total')}</div>`);\n else {\n (_a = cardBody === null || cardBody === void 0 ? void 0 : cardBody.querySelector('.card__total')) === null || _a === void 0 ? void 0 : _a.innerHTML = cardComponent.getAttribute('data-total');\n }\n }\n else if (cardComponent.querySelector('[slot=\"total-icon\"]')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\"><slot name=\"total-icon\"></slot></div>`);\n }\n if (!cardComponent.querySelector('[slot=\"badges\"]')) {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.add('empty');\n }\n else {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.remove('empty');\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};\nconst videoSupport = (body) => __awaiter(void 0, void 0, void 0, function* () {\n if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n setTimeout(() => __awaiter(void 0, void 0, void 0, function* () {\n if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n }), '2000');\n body.addEventListener('click', (event) => __awaiter(void 0, void 0, void 0, function* () {\n let target = event.target.closest('.youtube-link[data-youtube]');\n if (!target) {\n target = event.target.closest('.vimeo-link[data-vimeo]');\n }\n if (target && target.hasAttribute('data-youtube')) {\n event.preventDefault();\n if (!document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n const link_id = 'youtube-' + target.getAttribute('data-youtube');\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n const dialog = document.getElementById(`${link_id}-dialog`);\n const embed = document.getElementById(link_id);\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: target.getAttribute('data-youtube') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n createYoutTubeVideo(embed, target.getAttribute('data-youtube'));\n dialog.showModal();\n dialog.addEventListener('close', () => {\n if (window.player[embed.getAttribute('id')] &&\n typeof window.player[embed.getAttribute('id')].pauseVideo == 'function') {\n window.player[embed.getAttribute('id')].pauseVideo();\n }\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'YoutTube', ID: target.getAttribute('data-youtube') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n });\n }\n else if (target && target.hasAttribute('data-vimeo')) {\n event.preventDefault();\n const link_id = 'vimeo-' + target.getAttribute('data-youtube');\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n const dialog = document.getElementById(`${link_id}-dialog`);\n const embed = document.getElementById(link_id);\n const videoId = target.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: videoId },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${videoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n dialog.showModal();\n dialog.addEventListener('close', () => {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: target.getAttribute('data-vimeo') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n });\n }\n }));\n});\nexport const loadYouTubeScripts = () => __awaiter(void 0, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = function () {\n // This code loads the IFrame Player API code asynchronously.\n const tag = document.createElement('script');\n tag.src = 'https://www.youtube.com/iframe_api';\n const firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n document.body.classList.add('youtubeLoaded');\n resolve(true);\n };\n image.onerror = function () {\n reject(false);\n };\n image.src = 'https://youtube.com/favicon.ico';\n });\n});\nexport const createYoutTubeVideo = (target, video_id) => __awaiter(void 0, void 0, void 0, function* () {\n if (typeof window.player == 'undefined') {\n window.player = [];\n }\n const link_id = target.getAttribute('id');\n if (typeof window.player[link_id] != 'undefined' && typeof window.player[link_id].pauseVideo == 'function') {\n window.player[link_id].playVideo();\n return false;\n }\n // This function creates an <iframe> (and YouTube player) after the API code downloads.\n //function onYouTubeIframeAPIReady() {\n window.player[link_id] = new YT.Player(link_id, {\n height: '100%',\n width: '100%',\n videoId: video_id,\n playerVars: {\n modestbranding: 1,\n playsinline: 1,\n rel: 0,\n showinfo: 0,\n },\n events: {\n onReady: onPlayerReady,\n onStateChange: onPlayerStateChange,\n },\n });\n //}\n //onYouTubeIframeAPIReady();\n // The API will call this function when the video player is ready.\n function onPlayerReady(event) {\n // Play the video straight away\n event.target.playVideo();\n }\n // The API calls this function when the player's state changes.\n // The function indicates that when playing a video (state=1)\n let done = false;\n function onPlayerStateChange(event) {\n if (event.data == YT.PlayerState.PLAYING && !done) {\n const link = document.getElementById(link_id);\n link.classList.add('player-ready');\n done = true;\n }\n }\n});\nexport default videoSupport;\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 { trackComponent, trackComponentRegistered } from '../_global.js';\nimport { cardHTML, setupCard } from '../../modules/card.module.js';\nimport { loadYouTubeScripts, createYoutTubeVideo } from '../../modules/videos.js';\ntrackComponentRegistered('iam-video-card');\nclass iamVideoCard extends HTMLElement {\n constructor() {\n super();\n 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/video-card.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n ${cardHTML}\n <dialog>\n <div class=\"embed\"></div>\n </dialog>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const cardComponent = this;\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const randLetter = String.fromCharCode(65 + Math.floor(Math.random() * 26));\n const link_id = randLetter + Date.now();\n let dialog;\n let embed;\n setupCard(cardComponent);\n // Check if youtube or vimeo video link is present\n if (cardComponent.querySelector('[data-youtube]'))\n cardComponent.setAttribute('data-youtube', cardComponent.querySelector('[data-youtube]').getAttribute('data-youtube'));\n if (cardComponent.querySelector('[data-vimeo]'))\n cardComponent.setAttribute('data-vimeo', cardComponent.querySelector('[data-vimeo]').getAttribute('data-vimeo'));\n // General dialog stuff\n if (cardComponent.hasAttribute('data-youtube') || cardComponent.hasAttribute('data-vimeo')) {\n cardHead.setAttribute('tabindex', '0');\n // Add dialog to page\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n dialog = document.getElementById(`${link_id}-dialog`);\n embed = document.getElementById(link_id);\n }\n // Youtube\n if (cardComponent.hasAttribute('data-youtube')) {\n // Load the scripts only once\n if (!document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n cardHead.addEventListener('click', function () {\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n createYoutTubeVideo(embed, this.getAttribute('[data-youtbue]'));\n dialog.showModal();\n });\n dialog.addEventListener('close', () => {\n if (window.player[embed.getAttribute('id')] &&\n typeof window.player[embed.getAttribute('id')].pauseVideo == 'function') {\n window.player[embed.getAttribute('id')].pauseVideo();\n }\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n else if (cardComponent.hasAttribute('data-vimeo')) {\n // Vimeo\n cardHead.addEventListener('click', function () {\n const videoId = cardComponent.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: videoId },\n });\n cardComponent.dispatchEvent(customEvent);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${videoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n dialog.showModal();\n });\n dialog.addEventListener('close', () => {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: cardComponent.getAttribute('data-vimeo') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n trackComponent(cardComponent, 'iam-video-card', ['play-video', 'close-video']);\n });\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-image': {\n if (oldVal != newVal) {\n const cardHeadImg = this.shadowRoot.querySelector('.card__head img');\n if (cardHeadImg)\n cardHeadImg.setAttribute('src', newVal);\n }\n break;\n }\n }\n }\n}\nexport default iamVideoCard;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","cardHTML","setupCard","cardComponent","_a","cardHead","cardBody","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","loadYouTubeScripts","image","tag","firstScriptTag","createYoutTubeVideo","target","video_id","link_id","onPlayerReady","onPlayerStateChange","done","iamVideoCard","template","dialog","embed","customEvent","videoId","attrName","oldVal","newVal","cardHeadImg"],"mappings":"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"}
1
+ {"version":3,"file":"video-card.component.min.js","sources":["../_global.js","../../modules/card.module.js","../../modules/videos.js","video-card.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","export const cardHTML = `<div class=\"card__head\" part=\"head\">\n <slot name=\"head\"></slot>\n</div>\n<div class=\"card__badges\"><slot name=\"badges\"></slot></div>\n<slot name=\"checkbox\" class=\"activate-prevent-hover\"></slot>\n<div class=\"card__body\" part=\"body\">\n <slot></slot>\n <slot name=\"secondary\" part=\"secondary\"></slot>\n</div>\n<div class=\"card__details\" part=\"details\">\n <slot name=\"details\"></slot>\n</div>\n<div class=\"card__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n</div>`;\nexport const setupCard = (cardComponent) => {\n var _a;\n cardComponent.classList.add('card');\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n if (cardComponent.hasAttribute('data-image')) {\n cardHead.innerHTML += `<img src=\"${cardComponent.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\" part=\"image\" />`;\n }\n // Inset the HTML for the data total or icon fallback\n if (cardComponent.hasAttribute('data-total')) {\n if (!(cardBody === null || cardBody === void 0 ? void 0 : cardBody.querySelector('.card__total')))\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\">${cardComponent.getAttribute('data-total')}</div>`);\n else {\n (_a = cardBody === null || cardBody === void 0 ? void 0 : cardBody.querySelector('.card__total')) === null || _a === void 0 ? void 0 : _a.innerHTML = cardComponent.getAttribute('data-total');\n }\n }\n else if (cardComponent.querySelector('[slot=\"total-icon\"]')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\"><slot name=\"total-icon\"></slot></div>`);\n }\n if (!cardComponent.querySelector('[slot=\"badges\"]')) {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.add('empty');\n }\n else {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.remove('empty');\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};\nconst videoSupport = (body) => __awaiter(void 0, void 0, void 0, function* () {\n if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n setTimeout(() => __awaiter(void 0, void 0, void 0, function* () {\n if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n }), '2000');\n body.addEventListener('click', (event) => __awaiter(void 0, void 0, void 0, function* () {\n let target = event.target.closest('.youtube-link[data-youtube]');\n if (!target) {\n target = event.target.closest('.vimeo-link[data-vimeo]');\n }\n if (target && target.hasAttribute('data-youtube')) {\n event.preventDefault();\n if (!document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n const link_id = 'youtube-' + target.getAttribute('data-youtube');\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n const dialog = document.getElementById(`${link_id}-dialog`);\n const embed = document.getElementById(link_id);\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: target.getAttribute('data-youtube') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n createYoutTubeVideo(embed, target.getAttribute('data-youtube'));\n dialog.showModal();\n dialog.addEventListener('close', () => {\n if (window.player[embed.getAttribute('id')] &&\n typeof window.player[embed.getAttribute('id')].pauseVideo == 'function') {\n window.player[embed.getAttribute('id')].pauseVideo();\n }\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'YoutTube', ID: target.getAttribute('data-youtube') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n });\n }\n else if (target && target.hasAttribute('data-vimeo')) {\n event.preventDefault();\n const link_id = 'vimeo-' + target.getAttribute('data-youtube');\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n const dialog = document.getElementById(`${link_id}-dialog`);\n const embed = document.getElementById(link_id);\n const videoId = target.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: videoId },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${videoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n dialog.showModal();\n dialog.addEventListener('close', () => {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: target.getAttribute('data-vimeo') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n });\n }\n }));\n});\nexport const loadYouTubeScripts = () => __awaiter(void 0, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = function () {\n // This code loads the IFrame Player API code asynchronously.\n const tag = document.createElement('script');\n tag.src = 'https://www.youtube.com/iframe_api';\n const firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n document.body.classList.add('youtubeLoaded');\n resolve(true);\n };\n image.onerror = function () {\n reject(false);\n };\n image.src = 'https://youtube.com/favicon.ico';\n });\n});\nexport const createYoutTubeVideo = (target, video_id) => __awaiter(void 0, void 0, void 0, function* () {\n if (typeof window.player == 'undefined') {\n window.player = [];\n }\n //const link_id = target.getAttribute('id');\n if (typeof window.player[video_id] != 'undefined' && typeof window.player[video_id].pauseVideo == 'function') {\n window.player[video_id].playVideo();\n return false;\n }\n // This function creates an <iframe> (and YouTube player) after the API code downloads.\n //function onYouTubeIframeAPIReady() {\n window.player[video_id] = new YT.Player(video_id, {\n height: '100%',\n width: '100%',\n videoId: video_id,\n playerVars: {\n modestbranding: 1,\n playsinline: 1,\n rel: 0,\n showinfo: 0,\n },\n events: {\n onReady: onPlayerReady,\n onStateChange: onPlayerStateChange,\n },\n });\n //}\n //onYouTubeIframeAPIReady();\n // The API will call this function when the video player is ready.\n function onPlayerReady(event) {\n // Play the video straight away\n event.target.playVideo();\n }\n // The API calls this function when the player's state changes.\n // The function indicates that when playing a video (state=1)\n let done = false;\n function onPlayerStateChange(event) {\n if (event.data == YT.PlayerState.PLAYING && !done) {\n const link = document.getElementById(video_id);\n link.classList.add('player-ready');\n done = true;\n }\n }\n});\nexport default videoSupport;\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 { trackComponent, trackComponentRegistered } from '../_global.js';\nimport { cardHTML, setupCard } from '../../modules/card.module.js';\nimport { loadYouTubeScripts, createYoutTubeVideo } from '../../modules/videos.js';\ntrackComponentRegistered('iam-video-card');\nclass iamVideoCard extends HTMLElement {\n constructor() {\n super();\n 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/video-card.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n ${cardHTML}\n <dialog>\n <div class=\"embed\"></div>\n </dialog>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const cardComponent = this;\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const randLetter = String.fromCharCode(65 + Math.floor(Math.random() * 26));\n const link_id = randLetter + Date.now();\n let dialog;\n let embed;\n setupCard(cardComponent);\n // Check if youtube or vimeo video link is present\n if (cardComponent.querySelector('[data-youtube]'))\n cardComponent.setAttribute('data-youtube', cardComponent.querySelector('[data-youtube]').getAttribute('data-youtube'));\n if (cardComponent.querySelector('[data-vimeo]'))\n cardComponent.setAttribute('data-vimeo', cardComponent.querySelector('[data-vimeo]').getAttribute('data-vimeo'));\n // General dialog stuff\n if (cardComponent.hasAttribute('data-youtube') || cardComponent.hasAttribute('data-vimeo')) {\n cardHead.setAttribute('tabindex', '0');\n // Add dialog to page\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n dialog = document.getElementById(`${link_id}-dialog`);\n embed = document.getElementById(link_id);\n }\n // Youtube\n if (cardComponent.hasAttribute('data-youtube')) {\n // Load the scripts only once\n if (!document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n cardHead.addEventListener('click', function () {\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n createYoutTubeVideo(embed, this.getAttribute('[data-youtube]'));\n dialog.showModal();\n });\n dialog.addEventListener('close', () => {\n if (window.player[embed.getAttribute('id')] &&\n typeof window.player[embed.getAttribute('id')].pauseVideo == 'function') {\n window.player[embed.getAttribute('id')].pauseVideo();\n }\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n else if (cardComponent.hasAttribute('data-vimeo')) {\n // Vimeo\n cardHead.addEventListener('click', function () {\n const videoId = cardComponent.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: videoId },\n });\n cardComponent.dispatchEvent(customEvent);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${videoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n dialog.showModal();\n });\n dialog.addEventListener('close', () => {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: cardComponent.getAttribute('data-vimeo') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n trackComponent(cardComponent, 'iam-video-card', ['play-video', 'close-video']);\n });\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-image': {\n if (oldVal != newVal) {\n const cardHeadImg = this.shadowRoot.querySelector('.card__head img');\n if (cardHeadImg)\n cardHeadImg.setAttribute('src', newVal);\n }\n break;\n }\n }\n }\n}\nexport default iamVideoCard;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","cardHTML","setupCard","cardComponent","_a","cardHead","cardBody","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","loadYouTubeScripts","image","tag","firstScriptTag","createYoutTubeVideo","target","video_id","onPlayerReady","onPlayerStateChange","done","iamVideoCard","template","link_id","dialog","embed","customEvent","videoId","attrName","oldVal","newVal","cardHeadImg"],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { trackComponentRegistered } from '../_global.js';
11
+ import { loadYouTubeScripts, createYoutTubeVideo } from '../../modules/videos.js';
12
+ import { openModal, closeModal, closeButtonHtml } from '../../modules/modal.js';
13
+ trackComponentRegistered('iam-video-modal');
14
+ class iamVideoCard extends HTMLElement {
15
+ constructor() {
16
+ super();
17
+ this.openYoutubeVideo = (id, component) => __awaiter(this, void 0, void 0, function* () {
18
+ const embed = component.querySelector('.embed');
19
+ openModal(id, component);
20
+ const youtubeId = component.getAttribute('data-youtube');
21
+ let loaded;
22
+ if (!document.body.classList.contains('youtubeLoaded')) {
23
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
24
+ loaded = yield loadYouTubeScripts();
25
+ }
26
+ const customEvent = new CustomEvent('play-video', {
27
+ detail: { 'Video Type': 'YoutTube', ID: youtubeId },
28
+ });
29
+ component.dispatchEvent(customEvent);
30
+ const interval = setInterval(() => {
31
+ if (typeof YT != "undefined") {
32
+ clearInterval(interval);
33
+ createYoutTubeVideo(embed, youtubeId);
34
+ }
35
+ }, 200);
36
+ // Limit the number of calls
37
+ setTimeout(function () {
38
+ clearInterval(interval);
39
+ }, 2000);
40
+ });
41
+ this.openVimeoVideo = (id, component) => __awaiter(this, void 0, void 0, function* () {
42
+ const embed = component.querySelector('.embed');
43
+ openModal(id, component);
44
+ const vimeoId = component.getAttribute('data-vimeo');
45
+ const customEvent = new CustomEvent('play-video', {
46
+ detail: { 'Video Type': 'Vimeo', ID: vimeoId },
47
+ });
48
+ component.dispatchEvent(customEvent);
49
+ window.dataLayer.push(customEvent.detail);
50
+ if (!embed.querySelector('iframe'))
51
+ embed.innerHTML = `<iframe src="https://player.vimeo.com/video/${vimeoId}?autoplay=1" width="100%" height="100%" frameborder="0" allow="autoplay; encrypted-media" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;
52
+ });
53
+ this.attachShadow({ mode: 'open' });
54
+ const assetLocation = document.body.hasAttribute('data-assets-location')
55
+ ? document.body.getAttribute('data-assets-location')
56
+ : '/assets';
57
+ const loadCSS = `@import "${assetLocation}/css/components/modal.component.css";`;
58
+ const template = document.createElement('template');
59
+ template.innerHTML = `
60
+ <style>
61
+ ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
62
+
63
+ ${loadCSS}
64
+ </style>
65
+
66
+ <link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous" />
67
+
68
+ <dialog>
69
+ ${closeButtonHtml}
70
+ <slot></slot>
71
+ </dialog>
72
+ `;
73
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
74
+ }
75
+ connectedCallback() {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ var _a;
78
+ const id = this.getAttribute('id');
79
+ const closeButton = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('[data-close]');
80
+ this.innerHTML = `<div class="embed"></div>`;
81
+ const embed = this.querySelector('.embed');
82
+ document.addEventListener('click', (e) => __awaiter(this, void 0, void 0, function* () {
83
+ if (e.target.closest(`[command="show-modal"][commandfor="${id}"]`)) {
84
+ e.preventDefault();
85
+ if (this.hasAttribute('data-youtube')) {
86
+ const youtubeId = this.getAttribute('data-youtube');
87
+ embed === null || embed === void 0 ? void 0 : embed.setAttribute('id', youtubeId);
88
+ this.openYoutubeVideo(id, this);
89
+ }
90
+ else if (this.hasAttribute('data-vimeo')) {
91
+ this.openVimeoVideo(id, this);
92
+ }
93
+ }
94
+ }));
95
+ closeButton === null || closeButton === void 0 ? void 0 : closeButton.addEventListener('click', () => {
96
+ closeModal(id, this);
97
+ if (this.hasAttribute('data-youtube')) {
98
+ const youtubeId = this.getAttribute('data-youtube');
99
+ if (window.player[youtubeId] && typeof window.player[youtubeId].pauseVideo == 'function') {
100
+ window.player[youtubeId].pauseVideo();
101
+ }
102
+ }
103
+ else if (this.hasAttribute('data-vimeo')) {
104
+ embed.innerHTML = ``; // Remove the video since we cant pause it
105
+ const customEvent = new CustomEvent('close-video', {
106
+ detail: { 'Video Type': 'Vimeo', ID: this.getAttribute('data-vimeo') },
107
+ });
108
+ this.dispatchEvent(customEvent);
109
+ window.dataLayer.push(customEvent.detail);
110
+ }
111
+ });
112
+ });
113
+ }
114
+ }
115
+ export default iamVideoCard;
@@ -0,0 +1,19 @@
1
+ /*!
2
+ * iamKey v7.6.3--beta3
3
+ * Copyright 2022-2026 iamproperty
4
+ */const g=r=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:r})};var p=function(r,n,e,t){function a(o){return o instanceof e?o:new e(function(i){i(o)})}return new(e||(e=Promise))(function(o,i){function s(d){try{c(t.next(d))}catch(l){i(l)}}function b(d){try{c(t.throw(d))}catch(l){i(l)}}function c(d){d.done?o(d.value):a(d.value).then(s,b)}c((t=t.apply(r,n||[])).next())})};const u=()=>p(void 0,void 0,void 0,function*(){return new Promise((r,n)=>{const e=new Image;e.onload=function(){const t=document.createElement("script");t.src="https://www.youtube.com/iframe_api";const a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(t,a),document.body.classList.add("youtubeLoaded"),r(!0)},e.onerror=function(){n(!1)},e.src="https://youtube.com/favicon.ico"})}),v=(r,n)=>p(void 0,void 0,void 0,function*(){if(typeof window.player>"u"&&(window.player=[]),typeof window.player[n]<"u"&&typeof window.player[n].pauseVideo=="function")return window.player[n].playVideo(),!1;window.player[n]=new YT.Player(n,{height:"100%",width:"100%",videoId:n,playerVars:{modestbranding:1,playsinline:1,rel:0,showinfo:0},events:{onReady:e,onStateChange:a}});function e(o){o.target.playVideo()}let t=!1;function a(o){o.data==YT.PlayerState.PLAYING&&!t&&(document.getElementById(n).classList.add("player-ready"),t=!0)}}),h=(r,n)=>{var e;const t=(e=n.shadowRoot)===null||e===void 0?void 0:e.querySelector("dialog");t?.showModal(),t?.focus();const a=new CustomEvent("modal-opened",{bubbles:!0,cancelable:!0,detail:{modalId:r}});n.dispatchEvent(a),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:r})},f=(r,n)=>{var e;const t=(e=n.shadowRoot)===null||e===void 0?void 0:e.querySelector("dialog");t?.close();const a=new CustomEvent("modal-closed",{bubbles:!0,cancelable:!0,detail:{modalId:r}});n.dispatchEvent(a),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:r})},w='<button class="btn btn-compact btn-secondary fa-xmark-large" data-close>Close</button>';var m=function(r,n,e,t){function a(o){return o instanceof e?o:new e(function(i){i(o)})}return new(e||(e=Promise))(function(o,i){function s(d){try{c(t.next(d))}catch(l){i(l)}}function b(d){try{c(t.throw(d))}catch(l){i(l)}}function c(d){d.done?o(d.value):a(d.value).then(s,b)}c((t=t.apply(r,n||[])).next())})};g("iam-video-modal");class y extends HTMLElement{constructor(){super(),this.openYoutubeVideo=(e,t)=>m(this,void 0,void 0,function*(){const a=t.querySelector(".embed");h(e,t);const o=t.getAttribute("data-youtube");document.body.classList.contains("youtubeLoaded")||(yield u());const i=new CustomEvent("play-video",{detail:{"Video Type":"YoutTube",ID:o}});t.dispatchEvent(i);const s=setInterval(()=>{typeof YT<"u"&&(clearInterval(s),v(a,o))},200);setTimeout(function(){clearInterval(s)},2e3)}),this.openVimeoVideo=(e,t)=>m(this,void 0,void 0,function*(){const a=t.querySelector(".embed");h(e,t);const o=t.getAttribute("data-vimeo"),i=new CustomEvent("play-video",{detail:{"Video Type":"Vimeo",ID:o}});t.dispatchEvent(i),window.dataLayer.push(i.detail),a.querySelector("iframe")||(a.innerHTML=`<iframe src="https://player.vimeo.com/video/${o}?autoplay=1" width="100%" height="100%" frameborder="0" allow="autoplay; encrypted-media" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`)}),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const n=document.createElement("template");n.innerHTML=`
5
+ <style>
6
+ ${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
7
+
8
+ @layer elements{body:not(.js-enabled) dialog:not([open]):target{display:block}dialog,[popover]{--dialog-padding: 1.5rem;--mh-padding-inline: var(--dialog-padding);color:inherit;width:fit-content;height:fit-content;border:none;overscroll-behavior:contain;background:var(--colour-canvas-2);box-shadow:0px 2px 9px rgba(0,0,0,.11);border-radius:0.625rem;padding:var(--dialog-padding);outline:var(--contrast-outline-width, 0px) solid var(--colour-primary)}dialog>*:last-child,[popover]>*:last-child{margin-bottom:0}dialog>:is(p):last-child,[popover]>:is(p):last-child{padding-bottom:0}dialog::backdrop{background:rgba(0,0,0,.3);backdrop-filter:blur(4px);overscroll-behavior:contain}dialog[open],[popover]:popover-open{display:flex;flex-direction:column}*:not(.dialog__wrapper)>dialog[open],*:not(.dialog__wrapper)>[popover]:popover-open{overflow-y:auto;width:90vw;max-width:20.25rem;max-height:min(90vh,47rem);overscroll-behavior:contain}@media screen and (min-width: 36em){*:not(.dialog__wrapper)>dialog[open],*:not(.dialog__wrapper)>[popover]:popover-open{min-width:20.9375rem;width:fit-content;max-width:42.875rem}}@media screen and (min-width: 62em){*:not(.dialog__wrapper)>dialog[open],*:not(.dialog__wrapper)>[popover]:popover-open{min-width:28.375rem;width:fit-content;max-width:46rem}}details.bg-light{margin-inline:calc(var(--dialog-padding)*-1);padding-inline:var(--dialog-padding)}}@layer elements{*,*::before,*::after{box-sizing:border-box}button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[role=button]{cursor:pointer}button:focus:not(:focus-visible){outline:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 0.125rem;--btn-font-size: 1.125rem;--btn-line-height: 1.25rem;display:inline-block;font-weight:bold;text-align:left;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;color:var(--colour-btn);font-size:var(--btn-font-size);line-height:var(--btn-line-height);padding:var(--btn-padding-block) var(--btn-padding-inline);border-radius:1.5rem;margin-bottom:var(--btn-margin);background:none;transition:border .5s,background .5s,color .5s;height:auto;max-width:fit-content;appearance:none;white-space:nowrap}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}.btn:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}.btn:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}.btn:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}.btn:not(:last-child){margin-right:var(--btn-margin)}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn,.btn:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){outline:0;text-decoration:none;background:var(--colour-btn-bg-hover);color:var(--colour-btn-hover);border-radius:1.5rem}a:is(:active,.active):not([disabled]) .btn,.btn:is(:active,.active):not([disabled]){filter:brightness(85%);transition:background .1s,color .1s;color:var(--colour-btn);border-radius:1.5rem}a:disabled .btn,.btn:disabled,[disabled] .btn,.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.colour-success{--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success:before,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active):before{content:"\uF00C";font-family:"Font Awesome 6 Pro";margin-right:1rem;font-style:inherit;width:1rem;display:inline-block;height:var(--btn-line-height);vertical-align:bottom}.btn.btn-sm{--btn-padding-block: 0.5rem;--btn-padding-inline: 2rem;--btn-margin: 0.5rem;--btn-font-size: 1rem}.btn[class*=fa-]:before{content:var(--fa);font-family:"Font Awesome 6 Pro";line-height:1em}.btn.btn[class*=fa-after]{padding-right:4rem}.btn.btn[class*=fa-after]:before{margin-right:0;margin-right:0.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}.btn:not(.btn-compact):before{margin-right:1rem}.btn i[class*=fa-]{font-family:"Font Awesome 6 Pro";margin-right:1rem;line-height:1em;font-style:inherit}.btn i[class*=fa-]:not(:first-child){margin-left:1rem;margin-right:0}.btn.btn--prompt:after{content:"";height:var(--btn-line-height);width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn--prompt:after,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active):after{margin-left:1.5rem;margin-right:-0.5rem}.btn-filter:after{content:"\uF1DE";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);color:currentColor;font-weight:300;font-family:"Font Awesome 6 Pro"}}@layer elements{.btn-secondary{color:var(--colour-btn-secondary)}.btn-secondary:not(.border-0){background:var(--colour-btn-secondary-bg);border:2px solid var(--colour-btn-secondary-border)}a:is(:hover,:focus,.hover,:active,.active):not([disabled]) .btn-secondary,.btn-secondary:is(:hover,:focus,.hover,:focus-within,:active,.active):not([disabled]){background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover)}}@layer elements{.btn.btn-tertiary{background-color:rgba(0,0,0,0);border:none;color:var(--colour-link);margin:0 var(--btn-margin) var(--btn-margin) 0;padding:0;font-size:1.125rem;font-weight:normal;line-height:1.5rem;min-height:1.5rem;position:relative}.btn.btn-tertiary:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}.btn.btn-tertiary.text-decoration-none:after{width:0%}.btn.btn-tertiary [class*=fa-]{margin-left:0;margin-right:.5rem}.btn.btn-tertiary [class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}.btn.btn-tertiary:is(:hover,:focus,.hover,:focus-within):not([disabled],:disabled,:active,.active):after{width:60% !important}.btn.btn-tertiary:is(:active,.active):not([disabled],:disabled){color:var(--colour-active)}}@layer elements{.btn-action{--btn-border-width: 0.0625rem;--btn-padding-block: 0.3125rem;--btn-padding-inline: 0.3125rem;--btn-margin: 0.5rem}.btn-action:not(.btn-primary){color:var(--colour-heading)}.btn-action:not(.btn-primary):not(.border-0){background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted)}.btn-action{border-radius:.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem}.btn-action.btn[class*=fa-]:before{content:var(--fa);margin-right:0.375rem}a:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn-action,.btn-action:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){background:var(--colour-btn-action-hover-bg)}.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn-action,.btn-action.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){filter:brightness(90%);background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border);color:var(--colour-btn)}a:is(:active,.active):not([disabled]):not(.btn-primary) .btn-action,.btn-action:is(:active,.active):not([disabled]):not(.btn-primary){filter:brightness(85%);transition:all .1s;color:var(--colour-heading)}.btn-action:not(.btn-compact).fa-compact-only:before{display:none !important}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:.5rem}.btn-compact:not(:last-child){margin-right:.5rem}.btn-compact{text-align:center;width:var(--compact-size);min-width:var(--compact-size);max-width:var(--compact-size);height:var(--compact-size) !important;min-height:var(--compact-size) !important;max-height:var(--compact-size) !important;align-content:center;line-height:1 !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem}.btn-compact:before{content:var(--fa);position:absolute;display:block;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - .25rem);font-weight:900}.btn-compact[class*=fa-]:before{line-height:calc(var(--compact-size) - .25rem)}@container style(--theme: dark){.btn-compact[class*=fa-]:before{color:#fff}}.btn-compact.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}.btn-compact.btn-action{--compact-size: 2rem;font-size:1rem}.btn-compact.btn-action:before{font-size:1em;font-weight:400}.btn-compact.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:rgba(0,0,0,0)}.btn-compact.btn-secondary:not([class*=colour-]){--colour: var(--colour-light)}.btn-compact.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse){background-color:var(--colour);color:var(--colour-primary-theme);border-color:var(--colour)}.btn-compact.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse):is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}.btn-compact[data-number]{position:relative}.btn-compact[data-number]:after{content:attr(data-number);position:absolute;top:.5em;z-index:99;background:var(--colour-danger);height:1.5em;width:1.5em;border-radius:50%;text-indent:0;left:50%;font-size:.5em;line-height:1.5em;text-align:center;color:#fff;letter-spacing:-0.1em;font-family:arial,sans-serif}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary:not(:hover,:focus,.hover,:focus-within):not(.btn-collapse),.invert-colours .btn-compact.btn-secondary:not(:hover,:focus,.hover,:focus-within):not(.btn-collapse){background-color:var(--colour-white) !important;border-color:var(--colour-white) !important;color:var(--colour-heading)}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary:is(:hover,:focus,.hover,:focus-within):not([disabled]):not(.btn-collapse),.invert-colours .btn-compact.btn-secondary:is(:hover,:focus,.hover,:focus-within):not([disabled]):not(.btn-collapse){background-color:rgba(0,0,0,0);border-color:var(--colour-white) !important;color:var(--colour-white)}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary[disabled],.invert-colours .btn-compact.btn-secondary[disabled]{background-color:var(--colour-white) !important;border-color:var(--colour-white) !important;color:var(--colour-heading) !important}.btn-compact:is(.fa-left,.fa-chevron-left,.fa-right,.fa-chevron-right,.fa-up,.fa-chevron-up,.fa-down,.fa-chevron-down,.fa-plus,.fa-bars){--iso-display: block;--iso-font-size: 1.5rem;--iso-border-radius: 50%;--iso-text-indent: -500px}@container style(--font-body){.btn-compact{font-size:var(--iso-font-size, 0.6rem) !important;border-radius:var(--iso-border-radius, 0) !important;text-indent:var(--iso-text-indent, 0px);white-space:initial}.btn-compact:before{display:var(--iso-display, none);font-family:monospace !important;content:var(--iso) !important}}@container style(--fa-font-regular){.btn-compact{text-indent:-500px;font-size:1rem !important;border-radius:50% !important}.btn-compact:before{font-family:"Font Awesome 6 Pro" !important;content:var(--fa) !important;display:block}}}@layer elements{.btn[popovertarget]{position:relative;anchor-name:--button2}.btn[popovertarget]>.fa-chevron-down{display:none}.btn[popovertarget]:after{content:"";display:inline-block;margin-left:1em;height:.8em;width:.8em;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;transform:rotate(90deg)}.btn[popovertarget][aria-pressed]:after{transform:rotate(270deg)}.btn:has(select){position:relative;padding:0;max-width:fit-content;min-width:fit-content;width:fit-content}.btn:has(select) select{all:unset !important;padding:var(--btn-padding-block) var(--btn-padding-inline) !important;padding-right:calc(var(--btn-padding-inline) + 2rem) !important;border-radius:1.5rem !important;appearance:none !important;background:none !important;border:none !important;color:currentColor !important;display:block;outline:none;font-weight:inherit !important;font-size:var(--btn-font-size) !important;line-height:var(--btn-line-height) !important;field-sizing:content !important;appearance:base-select !important}.btn:has(select) select option{font-size:1rem;text-align:left;color:var(--colour-primary);padding-inline:var(--menu-item-padding, 0.5rem);padding-block:var(--menu-item-padding, 0.5rem) !important;border-radius:.25rem !important}.btn:has(select) select option:not(:last-child){margin:var(--menu-item-margin, 0 0 0.25rem 0) !important}.btn:has(select) select option:hover{background:var(--colour-light) !important}.btn:has(select) select option:after{content:attr(data-email)}.btn:has(select) select::picker-icon{display:none}.btn:has(select) select::picker(select){appearance:base-select;background:var(--menu-bg, canvas);margin-block:var(--menu-margin, 0.25rem);padding:var(--menu-padding, 0.5rem) !important;border:none !important;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.1);font-size:1rem}.btn:has(select) 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}.btn:has(select) select option::checkmark{display:none}.btn:has(select) select selectedcontent span{display:none}.btn:has(select):after{position:absolute;top:0.625rem;right:1.5rem;content:"";height:1.5rem;width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem;transform:rotate(90deg);pointer-events:none}.btn-action:has(select){padding-block:0;padding-right:2rem;font-size:1em}.btn-action:has(select) select{margin:0rem 0rem !important;padding-right:2rem !important;margin-right:-2rem !important;font-size:1rem !important}.btn-action:has(select):after{top:.2rem;right:.5rem}}@layer elements{.btn__group{display:flex;flex-direction:column;.btn{margin-inline-end:0;width:100%;max-width:100%;text-align:center;white-space:normal}}@container (min-width: 62em){.btn__group{flex-direction:row;column-gap:var(--gap);.btn{max-width:fit-content;white-space:nowrap}}}}:host{overscroll-behavior:contain;display:block;container-type:inline-size}::slotted(dialog){display:contents !important}::slotted(button){margin:0 !important}@layer components{dialog[open]{width:90vw;max-width:20.25rem;max-height:min(90vh,47rem);overscroll-behavior:contain;overflow-y:hidden}@media screen and (min-width: 36em){dialog[open]{--dialog-padding: 2rem;min-width:20.9375rem;width:fit-content;max-width:42.875rem}}@media screen and (min-width: 62em){dialog[open]{min-width:28.375rem;width:fit-content;max-width:46rem}}dialog[open]::before{content:"";top:.75rem;bottom:auto;left:0;right:.5rem;height:calc(var(--dialog-padding) - .75rem);position:absolute;display:block;background:linear-gradient(0deg, transparent 0%, var(--colour-canvas-2) 100%);z-index:2}dialog[open]::after{content:"";top:auto;bottom:.75rem;left:0;right:6px;height:calc(var(--dialog-padding) - .75rem);position:absolute;display:block;background:linear-gradient(180deg, transparent 0%, var(--colour-canvas-2) 100%);z-index:2}dialog[open] .scroll{margin-inline:calc(var(--dialog-padding)*-1);margin-block:calc((var(--dialog-padding) - .75rem)*-1);padding-inline:var(--dialog-padding);padding-block:calc(var(--dialog-padding) - .75rem);height:100%;max-height:100%;overflow:auto;overscroll-behavior:contain;position:relative;z-index:1}dialog[open] .scroll .fa-circle{display:none}dialog[open]>button:first-child{position:absolute;top:.5rem;right:.5rem;z-index:var(--index-floating);margin:0}dialog[open]>button:first-child:not(:hover,:focus,:active){background-color:var(--colour-canvas)}@container (min-width: 36em){dialog[open]>button:first-child{top:calc(var(--dialog-padding) - .75rem);right:calc(var(--dialog-padding) - .75rem)}}dialog[open]:has(.youtube-embed){padding:0 !important}dialog[open].dialog--fullwidth{max-width:69.5rem}dialog[open] .btn-group{display:none}}@media screen and (min-width: 36em){:host(.modal--sm) dialog[open]{min-width:20.9375rem;width:20.9375rem;max-width:20.9375rem}}@media screen and (min-width: 62em){:host(.modal--sm) dialog[open]{min-width:28.375rem;width:28.375rem;max-width:28.375rem}}@media screen and (min-width: 36em){:host(.modal--lg) dialog[open]{min-width:42.875rem;width:42.875rem;max-width:42.875rem}}@media screen and (min-width: 62em){:host(.modal--lg) dialog[open]{min-width:46rem;width:46rem;max-width:46rem}}dialog::backdrop{background:rgba(0,0,0,.3);backdrop-filter:blur(4px);overscroll-behavior:contain}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background-color:rgba(0,0,0,0);border-top:4px solid rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background-color:#c1c1c1;width:6px;border-radius:3px}::slotted(p:last-child){padding-bottom:0 !important}::slotted(p:last-of-type){padding-bottom:0 !important}::slotted(:last-child){margin-bottom:0 !important}:host(:is([data-type=transactional],[data-type=acknowledgement])) dialog[open]{text-align:center}:host(:is([data-type=transactional],[data-type=acknowledgement])) dialog[open] .scroll>.fa-circle{display:var(--fa-display, block);line-height:1;font-size:3rem;height:3rem;width:3rem;margin-top:0;margin-bottom:1.5rem;line-height:1;color:var(--colour-heading);margin-inline:auto}@media screen and (min-width: 62em){:host(:is([data-type=transactional],[data-type=acknowledgement])) dialog[open] .scroll>.fa-circle{font-size:4rem;height:4rem;width:4rem}}:host(:is([data-type=transactional],[data-type=acknowledgement])) dialog[open] .scroll>.fa-circle:has(>i){position:relative}:host(:is([data-type=transactional],[data-type=acknowledgement])) dialog[open] .scroll>.fa-circle>i:before{position:absolute;top:0;left:50%;transform:scale(0.5) translate(-100%, 0)}:host(:is([data-type=transactional],[data-type=acknowledgement])) dialog[open]>button:first-child{display:none}:host(:is([data-type=transactional],[data-type=acknowledgement])) dialog[open] .btn-group{display:flex;justify-content:center;gap:var(--gap);padding-top:2rem}:host(:is([data-type=transactional],[data-type=acknowledgement])) dialog[open] .btn-group button{margin:0}@container (max-width: 36em){:host(:is([data-type=transactional],[data-type=acknowledgement])) dialog[open] .btn-group{display:flex;flex-direction:column-reverse}:host(:is([data-type=transactional],[data-type=acknowledgement])) dialog[open] .btn-group button{display:block;width:100%;max-width:100%;min-width:100%;text-align:center}}:host([data-type=acknowledgement]) dialog[open] .btn-group [data-cancel]{display:none}@layer components{dialog{width:calc(100% - 6rem) !important;max-width:50rem !important;padding:0;aspect-ratio:16/9}dialog[open]::before{display:none}dialog[open]::after{display:none}::slotted(.embed){aspect-ratio:16/9;width:100%}}/*# sourceMappingURL=assets/css/components/video-modal.component.css.map */
9
+
10
+ </style>
11
+
12
+ <link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous" />
13
+
14
+ <dialog>
15
+ ${w}
16
+ <slot></slot>
17
+ </dialog>
18
+ `,this.shadowRoot.appendChild(n.content.cloneNode(!0))}connectedCallback(){return m(this,void 0,void 0,function*(){var n;const e=this.getAttribute("id"),t=(n=this.shadowRoot)===null||n===void 0?void 0:n.querySelector("[data-close]");this.innerHTML='<div class="embed"></div>';const a=this.querySelector(".embed");document.addEventListener("click",o=>m(this,void 0,void 0,function*(){if(o.target.closest(`[command="show-modal"][commandfor="${e}"]`))if(o.preventDefault(),this.hasAttribute("data-youtube")){const i=this.getAttribute("data-youtube");a?.setAttribute("id",i),this.openYoutubeVideo(e,this)}else this.hasAttribute("data-vimeo")&&this.openVimeoVideo(e,this)})),t?.addEventListener("click",()=>{if(f(e,this),this.hasAttribute("data-youtube")){const o=this.getAttribute("data-youtube");window.player[o]&&typeof window.player[o].pauseVideo=="function"&&window.player[o].pauseVideo()}else if(this.hasAttribute("data-vimeo")){a.innerHTML="";const o=new CustomEvent("close-video",{detail:{"Video Type":"Vimeo",ID:this.getAttribute("data-vimeo")}});this.dispatchEvent(o),window.dataLayer.push(o.detail)}})})}}export{y as default};
19
+ //# sourceMappingURL=video-modal.component.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-modal.component.min.js","sources":["../_global.js","../../modules/videos.js","../../modules/modal.js","video-modal.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\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};\nconst videoSupport = (body) => __awaiter(void 0, void 0, void 0, function* () {\n if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n setTimeout(() => __awaiter(void 0, void 0, void 0, function* () {\n if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n }), '2000');\n body.addEventListener('click', (event) => __awaiter(void 0, void 0, void 0, function* () {\n let target = event.target.closest('.youtube-link[data-youtube]');\n if (!target) {\n target = event.target.closest('.vimeo-link[data-vimeo]');\n }\n if (target && target.hasAttribute('data-youtube')) {\n event.preventDefault();\n if (!document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n const link_id = 'youtube-' + target.getAttribute('data-youtube');\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n const dialog = document.getElementById(`${link_id}-dialog`);\n const embed = document.getElementById(link_id);\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: target.getAttribute('data-youtube') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n createYoutTubeVideo(embed, target.getAttribute('data-youtube'));\n dialog.showModal();\n dialog.addEventListener('close', () => {\n if (window.player[embed.getAttribute('id')] &&\n typeof window.player[embed.getAttribute('id')].pauseVideo == 'function') {\n window.player[embed.getAttribute('id')].pauseVideo();\n }\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'YoutTube', ID: target.getAttribute('data-youtube') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n });\n }\n else if (target && target.hasAttribute('data-vimeo')) {\n event.preventDefault();\n const link_id = 'vimeo-' + target.getAttribute('data-youtube');\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n const dialog = document.getElementById(`${link_id}-dialog`);\n const embed = document.getElementById(link_id);\n const videoId = target.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: videoId },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${videoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n dialog.showModal();\n dialog.addEventListener('close', () => {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: target.getAttribute('data-vimeo') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n });\n }\n }));\n});\nexport const loadYouTubeScripts = () => __awaiter(void 0, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = function () {\n // This code loads the IFrame Player API code asynchronously.\n const tag = document.createElement('script');\n tag.src = 'https://www.youtube.com/iframe_api';\n const firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n document.body.classList.add('youtubeLoaded');\n resolve(true);\n };\n image.onerror = function () {\n reject(false);\n };\n image.src = 'https://youtube.com/favicon.ico';\n });\n});\nexport const createYoutTubeVideo = (target, video_id) => __awaiter(void 0, void 0, void 0, function* () {\n if (typeof window.player == 'undefined') {\n window.player = [];\n }\n //const link_id = target.getAttribute('id');\n if (typeof window.player[video_id] != 'undefined' && typeof window.player[video_id].pauseVideo == 'function') {\n window.player[video_id].playVideo();\n return false;\n }\n // This function creates an <iframe> (and YouTube player) after the API code downloads.\n //function onYouTubeIframeAPIReady() {\n window.player[video_id] = new YT.Player(video_id, {\n height: '100%',\n width: '100%',\n videoId: video_id,\n playerVars: {\n modestbranding: 1,\n playsinline: 1,\n rel: 0,\n showinfo: 0,\n },\n events: {\n onReady: onPlayerReady,\n onStateChange: onPlayerStateChange,\n },\n });\n //}\n //onYouTubeIframeAPIReady();\n // The API will call this function when the video player is ready.\n function onPlayerReady(event) {\n // Play the video straight away\n event.target.playVideo();\n }\n // The API calls this function when the player's state changes.\n // The function indicates that when playing a video (state=1)\n let done = false;\n function onPlayerStateChange(event) {\n if (event.data == YT.PlayerState.PLAYING && !done) {\n const link = document.getElementById(video_id);\n link.classList.add('player-ready');\n done = true;\n }\n }\n});\nexport default videoSupport;\n","export const openModal = (id, modal) => {\n var _a;\n const dialog = (_a = modal.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('dialog');\n dialog === null || dialog === void 0 ? void 0 : dialog.showModal();\n dialog === null || dialog === void 0 ? void 0 : dialog.focus();\n const closeEvent = new CustomEvent('modal-opened', {\n bubbles: true,\n cancelable: true,\n detail: { modalId: id },\n });\n modal.dispatchEvent(closeEvent);\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openModal',\n id: id,\n });\n};\nexport const closeModal = (id, modal) => {\n var _a;\n const dialog = (_a = modal.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('dialog');\n dialog === null || dialog === void 0 ? void 0 : dialog.close();\n const closeEvent = new CustomEvent('modal-closed', {\n bubbles: true,\n cancelable: true,\n detail: { modalId: id },\n });\n modal.dispatchEvent(closeEvent);\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'closeModal',\n id: id,\n });\n};\nexport const closeButtonHtml = `<button class=\"btn btn-compact btn-secondary fa-xmark-large\" data-close>Close</button>`;\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 { trackComponentRegistered } from '../_global.js';\nimport { loadYouTubeScripts, createYoutTubeVideo } from '../../modules/videos.js';\nimport { openModal, closeModal, closeButtonHtml } from '../../modules/modal.js';\ntrackComponentRegistered('iam-video-modal');\nclass iamVideoCard extends HTMLElement {\n constructor() {\n super();\n this.openYoutubeVideo = (id, component) => __awaiter(this, void 0, void 0, function* () {\n const embed = component.querySelector('.embed');\n openModal(id, component);\n const youtubeId = component.getAttribute('data-youtube');\n let loaded;\n if (!document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n loaded = yield loadYouTubeScripts();\n }\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: youtubeId },\n });\n component.dispatchEvent(customEvent);\n const interval = setInterval(() => {\n if (typeof YT != \"undefined\") {\n clearInterval(interval);\n createYoutTubeVideo(embed, youtubeId);\n }\n }, 200);\n // Limit the number of calls\n setTimeout(function () {\n clearInterval(interval);\n }, 2000);\n });\n this.openVimeoVideo = (id, component) => __awaiter(this, void 0, void 0, function* () {\n const embed = component.querySelector('.embed');\n openModal(id, component);\n const vimeoId = component.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: vimeoId },\n });\n component.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${vimeoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n });\n 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/modal.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/26fdbf0179.css\" crossorigin=\"anonymous\" />\n\n <dialog>\n ${closeButtonHtml}\n <slot></slot>\n </dialog>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const id = this.getAttribute('id');\n const closeButton = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('[data-close]');\n this.innerHTML = `<div class=\"embed\"></div>`;\n const embed = this.querySelector('.embed');\n document.addEventListener('click', (e) => __awaiter(this, void 0, void 0, function* () {\n if (e.target.closest(`[command=\"show-modal\"][commandfor=\"${id}\"]`)) {\n e.preventDefault();\n if (this.hasAttribute('data-youtube')) {\n const youtubeId = this.getAttribute('data-youtube');\n embed === null || embed === void 0 ? void 0 : embed.setAttribute('id', youtubeId);\n this.openYoutubeVideo(id, this);\n }\n else if (this.hasAttribute('data-vimeo')) {\n this.openVimeoVideo(id, this);\n }\n }\n }));\n closeButton === null || closeButton === void 0 ? void 0 : closeButton.addEventListener('click', () => {\n closeModal(id, this);\n if (this.hasAttribute('data-youtube')) {\n const youtubeId = this.getAttribute('data-youtube');\n if (window.player[youtubeId] && typeof window.player[youtubeId].pauseVideo == 'function') {\n window.player[youtubeId].pauseVideo();\n }\n }\n else if (this.hasAttribute('data-vimeo')) {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: this.getAttribute('data-vimeo') },\n });\n this.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n }\n });\n });\n }\n}\nexport default iamVideoCard;\n"],"names":["trackComponentRegistered","componentName","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","loadYouTubeScripts","image","tag","firstScriptTag","createYoutTubeVideo","target","video_id","onPlayerReady","onPlayerStateChange","event","done","openModal","id","modal","_a","dialog","closeEvent","closeModal","closeButtonHtml","iamVideoCard","component","embed","youtubeId","customEvent","interval","vimeoId","template","closeButton"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.3--beta1
2
+ * iamKey v7.6.3--beta3
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const o=i=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:i})};o("iam-word-count");class n extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
5
5
  <style>