@iamproperty/components 5.0.0 → 5.1.0-beta10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/css/components/accordion.css +1 -1
- package/assets/css/components/accordion.css.map +1 -1
- package/assets/css/components/accordion.global.css +1 -0
- package/assets/css/components/accordion.global.css.map +1 -0
- package/assets/css/components/actionbar.css +1 -1
- package/assets/css/components/actionbar.css.map +1 -1
- package/assets/css/components/actionbar.global.css +1 -0
- package/assets/css/components/actionbar.global.css.map +1 -0
- package/assets/css/components/card.css +1 -1
- package/assets/css/components/card.css.map +1 -1
- package/assets/css/components/card.global.css +1 -0
- package/assets/css/components/card.global.css.map +1 -0
- package/assets/css/components/carousel.css +1 -1
- package/assets/css/components/carousel.css.map +1 -1
- package/assets/css/components/component.native.css +1 -0
- package/assets/css/components/component.native.css.map +1 -0
- package/assets/css/components/component.reset.css +1 -1
- package/assets/css/components/component.reset.css.map +1 -1
- package/assets/css/components/fileupload.css +1 -1
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/header.css +1 -1
- package/assets/css/components/header.css.map +1 -1
- package/assets/css/components/marketing.css +1 -0
- package/assets/css/components/marketing.css.map +1 -0
- package/assets/css/components/nav.css +1 -1
- package/assets/css/components/nav.css.map +1 -1
- package/assets/css/components/nav.global.css +1 -0
- package/assets/css/components/nav.global.css.map +1 -0
- package/assets/css/components/notification.global.css +1 -0
- package/assets/css/components/notification.global.css.map +1 -0
- package/assets/css/components/pagination.css +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/slider.css +1 -0
- package/assets/css/components/slider.css.map +1 -0
- package/assets/css/components/table.css +1 -1
- package/assets/css/components/table.css.map +1 -1
- package/assets/css/components/{table.extras.css → table.global.css} +1 -1
- package/assets/css/components/{table.extras.css.map → table.global.css.map} +1 -1
- package/assets/css/components/tabs.css +1 -1
- package/assets/css/components/tabs.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/img/illustrations/add-new-property.png +0 -0
- package/assets/img/illustrations/auctioneer.png +0 -0
- package/assets/img/illustrations/branch.png +0 -0
- package/assets/img/illustrations/company-level.png +0 -0
- package/assets/img/illustrations/contractors.png +0 -0
- package/assets/img/illustrations/find-existing-property.png +0 -0
- package/assets/img/illustrations/green/add-new-property.png +0 -0
- package/assets/img/illustrations/green/auctioneer.png +0 -0
- package/assets/img/illustrations/green/branch.png +0 -0
- package/assets/img/illustrations/green/buyer.png +0 -0
- package/assets/img/illustrations/green/company-level.png +0 -0
- package/assets/img/illustrations/green/contractors.png +0 -0
- package/assets/img/illustrations/green/estate-agents.png +0 -0
- package/assets/img/illustrations/green/find-existing-property.png +0 -0
- package/assets/img/illustrations/green/landlords.png +0 -0
- package/assets/img/illustrations/green/seller.png +0 -0
- package/assets/img/illustrations/green/whats-new-2.png +0 -0
- package/assets/img/illustrations/green/whats-new.png +0 -0
- package/assets/img/illustrations/information-works.png +0 -0
- package/assets/img/illustrations/landlords.png +0 -0
- package/assets/img/illustrations/whats-new-2.png +0 -0
- package/assets/img/illustrations/whats-new.png +0 -0
- package/assets/img/signin-bg.png +0 -0
- package/assets/js/components/accordion/accordion.component.js +4 -0
- package/assets/js/components/accordion/accordion.component.min.js +6 -5
- package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
- package/assets/js/components/actionbar/actionbar.component.js +4 -0
- package/assets/js/components/actionbar/actionbar.component.min.js +5 -4
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.js +18 -4
- package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/card/card.component.js +6 -1
- package/assets/js/components/card/card.component.min.js +6 -4
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.js +61 -0
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
- package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/header/header.component.js +6 -12
- package/assets/js/components/header/header.component.min.js +8 -14
- package/assets/js/components/header/header.component.min.js.map +1 -1
- package/assets/js/components/marketing/marketing.component.js +37 -0
- package/assets/js/components/nav/nav.component.js +8 -36
- package/assets/js/components/nav/nav.component.min.js +10 -12
- package/assets/js/components/nav/nav.component.min.js.map +1 -1
- package/assets/js/components/notification/notification.component.js +4 -0
- package/assets/js/components/notification/notification.component.min.js +4 -3
- package/assets/js/components/notification/notification.component.min.js.map +1 -1
- package/assets/js/components/pagination/pagination.component.min.js +2 -2
- package/assets/js/components/search/search.component.js +148 -0
- package/assets/js/components/search/search.component.min.js +14 -0
- package/assets/js/components/search/search.component.min.js.map +1 -0
- package/assets/js/components/slider/slider.component.js +143 -0
- package/assets/js/components/table/table.component.js +1 -1
- package/assets/js/components/table/table.component.min.js +6 -6
- package/assets/js/components/table/table.component.min.js.map +1 -1
- package/assets/js/components/tabs/tabs.component.js +2 -0
- package/assets/js/components/tabs/tabs.component.min.js +5 -3
- package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
- package/assets/js/dynamic.js +1 -1
- package/assets/js/dynamic.min.js +5 -5
- package/assets/js/dynamic.min.js.map +1 -1
- package/assets/js/modules/carousel.js +15 -23
- package/assets/js/modules/dynamicEvents.js +28 -13
- package/assets/js/modules/helpers.js +4 -1
- package/assets/js/modules/inputs.js +44 -3
- package/assets/js/modules/table.js +8 -6
- package/assets/js/modules/tabs.js +29 -31
- package/assets/js/scripts.bundle.js +31 -35
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +2 -2
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/js/tests/slider.spec.js +20 -0
- package/assets/sass/_components.scss +0 -6
- package/assets/sass/_corefiles.scss +9 -88
- package/assets/sass/_elements.scss +1 -2
- package/assets/sass/_functions/mixins.scss +16 -0
- package/assets/sass/_functions/utilities.scss +0 -17
- package/assets/sass/_functions/variables.scss +1 -0
- package/assets/sass/components/accordion.global.scss +135 -0
- package/assets/sass/components/accordion.scss +6 -192
- package/assets/sass/components/{actionbar-global.scss → actionbar.global.scss} +3 -1
- package/assets/sass/components/actionbar.scss +2 -2
- package/assets/sass/components/{card-global.scss → card.global.scss} +2 -23
- package/assets/sass/components/card.scss +44 -3
- package/assets/sass/components/carousel.scss +86 -159
- package/assets/sass/components/component.native.scss +120 -0
- package/assets/sass/components/component.reset.scss +1 -3
- package/assets/sass/components/fileupload.scss +1 -1
- package/assets/sass/components/header.scss +55 -52
- package/assets/sass/components/marketing.scss +64 -0
- package/assets/sass/components/{nav-global.scss → nav.global.scss} +2 -1
- package/assets/sass/components/nav.scss +7 -1
- package/assets/sass/components/notification.global.scss +41 -0
- package/assets/sass/components/pagination.scss +4 -0
- package/assets/sass/components/slider.scss +121 -0
- package/assets/sass/components/{table.extras.scss → table.global.scss} +5 -1
- package/assets/sass/components/table.scss +1 -1
- package/assets/sass/components/tabs.scss +2 -5
- package/assets/sass/core.scss +1 -2
- package/assets/sass/elements/admin-panel.scss +9 -7
- package/assets/sass/elements/badge.scss +29 -0
- package/assets/sass/elements/container.scss +17 -0
- package/assets/sass/elements/dialog.scss +4 -4
- package/assets/sass/elements/forms.scss +142 -14
- package/assets/sass/elements/links.scss +2 -1
- package/assets/sass/elements/table.element.scss +1 -2
- package/assets/sass/error.scss +1 -1
- package/assets/sass/foundations/reboot.scss +59 -12
- package/assets/sass/foundations/root.scss +11 -3
- package/assets/sass/helpers/max-height.scss +78 -4
- package/assets/sass/main.scss +0 -1
- package/assets/sass/templates/auth.scss +112 -0
- package/assets/sass/templates/form.scss +1 -0
- package/assets/ts/components/accordion/accordion.component.ts +5 -0
- package/assets/ts/components/actionbar/actionbar.component.ts +5 -0
- package/assets/ts/components/address-lookup/address-lookup.component.ts +24 -5
- package/assets/ts/components/card/card.component.ts +7 -1
- package/assets/ts/components/carousel/README.md +39 -0
- package/assets/ts/components/carousel/carousel.component.ts +75 -0
- package/assets/ts/components/header/header.component.ts +6 -12
- package/assets/ts/components/marketing/marketing.component.ts +49 -0
- package/assets/ts/components/nav/README.md +2 -13
- package/assets/ts/components/nav/nav.component.ts +9 -47
- package/assets/ts/components/notification/notification.component.ts +4 -0
- package/assets/ts/components/search/search.component.ts +177 -0
- package/assets/ts/components/slider/README.md +26 -0
- package/assets/ts/components/slider/slider.component.ts +189 -0
- package/assets/ts/components/table/table.component.ts +1 -1
- package/assets/ts/components/tabs/tabs.component.ts +2 -0
- package/assets/ts/dynamic.ts +1 -1
- package/assets/ts/modules/carousel.ts +21 -33
- package/assets/ts/modules/dynamicEvents.ts +44 -24
- package/assets/ts/modules/helpers.ts +8 -2
- package/assets/ts/modules/inputs.ts +61 -4
- package/assets/ts/modules/table.ts +11 -14
- package/assets/ts/modules/tabs.ts +38 -41
- package/assets/ts/tests/slider.spec.ts +33 -0
- package/dist/components.es.js +893 -1542
- package/dist/components.umd.js +328 -161
- package/dist/style.css +1 -1
- package/package.json +5 -4
- package/src/components/Accordion/Accordion.vue +12 -5
- package/src/components/Actionbar/Actionbar.vue +12 -5
- package/src/components/Card/Card.vue +1 -1
- package/src/components/Carousel/Carousel.vue +18 -103
- package/src/components/Header/Header.vue +10 -6
- package/src/components/Marketing/Marketing.vue +39 -0
- package/src/components/Marketing/README.md +20 -0
- package/src/components/Nav/Nav.vue +1 -1
- package/src/components/Nav/README.md +1 -12
- package/src/components/Search/Search.vue +25 -0
- package/src/components/Slider/README.md +11 -0
- package/src/components/Slider/Slider.vue +25 -0
- package/src/components/Tabs/Tabs.vue +14 -5
- package/assets/css/components/actionbar-global.css +0 -1
- package/assets/css/components/actionbar-global.css.map +0 -1
- package/assets/css/components/card-global.css +0 -1
- package/assets/css/components/card-global.css.map +0 -1
- package/assets/css/components/nav-global.css +0 -1
- package/assets/css/components/nav-global.css.map +0 -1
- package/src/components/Carousel/Carousel.spec.js +0 -45
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v5.
|
|
2
|
+
* iamKey v5.1.0-beta10
|
|
3
3
|
* Copyright 2022-2023 iamproperty
|
|
4
4
|
*/window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Card"});class h extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.querySelector('[class*="fa-"]')&&this.classList.add("card--has-icon");let e=this.classList.toString();const a=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",r=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${a}/css/core.min.css`,t=document.createElement("template");t.innerHTML=`
|
|
5
5
|
<style>
|
|
6
6
|
@import "${r}";
|
|
7
|
-
.card{--card-icon-right: 1rem;box-shadow:var(--card-box-shadow);border-radius:var(--card-border-radius);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);min-height:100%;width:100%;text-align:left;display:block;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:
|
|
7
|
+
.card{--card-icon-right: 1rem;box-shadow:var(--card-box-shadow);border-radius:var(--card-border-radius);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);min-height:100%;width:100%;text-align:left;display:block;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:2px solid var(--colour-canvas-2);outline-offset:-2px}.card.border-0{box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__body{position:relative;padding:var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);z-index:-1}.card:before,.card:after{content:"";position:absolute;right:var(--card-icon-right);bottom:var(--card-bottom-padding);height:1.5rem;width:1.5rem;background:var(--colour-warning);border-radius:50%}.card:after{background:var(--colour-primary-theme);mask-image:var(--icon-arrow);mask-size:50%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:50%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;z-index:2}.card:is(:hover,:focus,.hover){--card-icon-right: 0.5rem;outline:2px solid var(--colour, var(--colour-primary));outline-offset:-2px}.card:not([class*=colour-]):is(:hover,:focus,.hover):before{background:var(--colour-primary-theme)}.card:not([class*=colour-]):is(:hover,:focus,.hover):after{background:#fff}.card:is(:active,.active){--card-icon-right: 0.5rem;outline:none}.card:is(:active,.active):before{background:var(--colour-warning)}.card:is(:active,.active):after{background:var(--colour-primary)}.card:is(:active){background:#fcfcfc}.card span{display:block;font-weight:bold;padding-top:1.5rem;font-size:1rem}.card:has(.card__illustration) .card__body{align-items:center;display:flex}.card:has(.card__illustration) .card__body .card__illustration{height:4rem;width:4rem;margin-right:1.5rem;margin-top:-1.25rem;margin-bottom:-1.25rem;position:relative}.card:has(.card__illustration) .card__body .card__illustration img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}::slotted(i){font-size:1.5rem !important;margin:-3px var(--card-icon-right) 0 0 !important;font-weight:400 !important;vertical-align:middle !important}::slotted(span:not(.badge)){display:block !important;font-weight:normal !important;padding-top:1.5rem !important;font-size:1rem !important}.card__badges{position:absolute;top:0;right:.25rem;padding:.25rem;z-index:9;text-align:right;width:1}.card__head .card__badges{top:auto;bottom:0;text-align:left;left:.25rem;right:auto}.card[class*=colour-],.card--filter{border-left:0.75rem solid var(--colour, var(--colour-primary))}.card--filter{--top-padding: 1.5rem;--right-padding: 1rem;--bottom-padding: 1.5rem;--left-padding: 1rem}.card--filter:has(.card__total) .card__body{align-items:center;display:flex}.card--filter:before,.card--filter:after{display:none}.card--filter:is(:hover,:focus,.hover){outline:none}.card--filter:is(:hover,:focus,.hover) .card__body{background:#eee}.card--filter:is(:checked,.checked,:active,.active){outline:2px solid var(--colour, var(--colour-primary));outline-offset:-2px}.card--filter:is(:checked,.checked,:active,.active) .card__body{background:none}.card--filter.card--has-icon{--bottom-padding: 1rem;border:none}.card--filter .icon{font-size:1.125rem !important;height:1.125rem !important;margin:0 0 .5rem 0 !important;font-weight:400 !important;display:block !important}.card--filter .card__total{font-size:3rem;line-height:3rem;padding-right:1rem}@media screen and (prefers-color-scheme: dark){.card--filter .card__body{background:none !important}.card--filter:is(:hover,:focus,.hover,:active,.active):not(:checked,.checked){outline:2px solid var(--colour, var(--colour-primary)) !important;outline-offset:-2px}}.card--filter ::slotted(i){display:block !important;font-size:1.125rem !important;margin:0 0 .5rem 0 !important}.card:has(.card__head) .card__head{padding-bottom:0;padding-top:27%;position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card:has(.card__head) .card__head>img{position:absolute;top:0;left:0;width:102%;height:102%;object-fit:cover}.card.card--lg-image:has(.card__head) .card__head{padding-top:55%}.card:has(.card__footer):after{display:none}.card:has(.card__footer) .card__footer{position:relative;background:#fff;padding:var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);z-index:-1;display:block}:host([data-selected]) .card:before,:host([data-selected]) .card:after{display:none !important}:host(.card--flag){position:relative}:host(.card--flag):after{content:"\uF024";font-family:"Font Awesome 6 Pro";position:absolute;top:1rem;right:1rem;font-size:1rem;line-height:1;height:1rem;width:1rem;display:inline-block;font-weight:normal;color:var(--colour, var(--colour-primary))}/*# sourceMappingURL=assets/css/components/card.css.map */
|
|
8
8
|
|
|
9
9
|
${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
|
|
10
10
|
</style>
|
|
11
11
|
<div class="card ${e}" tabindex="0" role="button">
|
|
12
|
-
${this.hasAttribute("data-image")?`<div class="card__head"><img src="${this.getAttribute("data-image")}" alt="" loading="lazy"
|
|
12
|
+
${this.hasAttribute("data-image")?`<div class="card__head"><img src="${this.getAttribute("data-image")}" alt="" loading="lazy" /><div class="card__badges"><slot name="badges"></slot></div></div>`:""}
|
|
13
13
|
<div class="card__body">
|
|
14
|
+
${this.hasAttribute("data-image")?"":'<div class="card__badges"><slot name="badges"></slot></div>'}
|
|
14
15
|
${this.classList.contains("card--filter")&&this.hasAttribute("data-total")?`<div class="card__total">${this.getAttribute("data-total")}</div>`:""}
|
|
15
16
|
${this.hasAttribute("data-illustration")?`<div class="card__illustration"><img src="${this.getAttribute("data-illustration")}" alt="" loading="lazy" /></div>`:""}
|
|
16
17
|
<slot></slot>
|
|
@@ -19,5 +20,6 @@
|
|
|
19
20
|
<slot name="checkbox"></slot>
|
|
20
21
|
${this.hasAttribute("data-cta")?`<div class="card__footer"><span class="link">${this.getAttribute("data-cta")}</span></div>`:""}
|
|
21
22
|
</div>
|
|
22
|
-
`,this.shadowRoot.appendChild(t.content.cloneNode(!0))
|
|
23
|
+
`,this.shadowRoot.appendChild(t.content.cloneNode(!0)),document.getElementById("cardGlobal")||document.head.insertAdjacentHTML("beforeend",`<style id="cardGlobal">@supports not selector(:has(*)){iam-card{margin-bottom:2rem;display:block}}iam-card>div:has([type=checkbox]){display:contents}iam-card>div:has([type=checkbox])>input:is([type=radio],[type=checkbox])+label{position:absolute !important;top:.5rem;right:.5rem;width:2rem;padding-left:2rem;margin:0.25rem 0.5rem !important;height:2.5rem;overflow:hidden}[data-select-container]:has([type=checkbox]:checked) iam-card>div:has([type=checkbox])>input:is([type=radio],[type=checkbox]){width:100%;height:100%;max-height:100%;max-width:100%;cursor:pointer;pointer-events:all;inset:0;border-radius:0;z-index:10}/*# sourceMappingURL=assets/css/components/card.global.css.map */
|
|
24
|
+
</style>`)}connectedCallback(){this.classList.add("loaded");const e=this.parentNode.closest("a, button, label"),a=this.shadowRoot.querySelector(".card");e.setAttribute("tabindex","-1"),e.matches("label[for]")&&(document.getElementById(e.getAttribute("for")).checked?a.classList.add("checked"):a.classList.remove("checked")),this.addEventListener("click",r=>{let t=new Event("click");a.dispatchEvent(t)}),a.addEventListener("click",r=>{if(e.matches("label[for]")){r.stopPropagation(),r.preventDefault();const t=document.getElementById(e.getAttribute("for")),i=t.getAttribute("name"),o=t.getAttribute("id");Array.from(document.querySelectorAll(`[name="${i}"][type="radio"]:not([id="${o}"])`)).forEach((d,n)=>{document.querySelector(`[for="${d.getAttribute("id")}"] iam-card`).dispatchEvent(new Event("inactive"))}),e.click(),t.checked?a.classList.add("checked"):a.classList.remove("checked")}}),this.addEventListener("inactive",r=>{a.classList.remove("checked")}),a.addEventListener("keydown",r=>{switch(r.keyCode){case 32:case 13:if(e.matches("label[for]")){r.stopPropagation(),r.preventDefault();const t=document.getElementById(e.getAttribute("for")),i=t.getAttribute("name"),o=t.getAttribute("id");Array.from(document.querySelectorAll(`[name="${i}"]:not([id="${o}"])`)).forEach((d,n)=>{document.querySelector(`[for="${d.getAttribute("id")}"] iam-card`).dispatchEvent(new Event("inactive"))}),e.click(),t.checked?a.classList.add("checked"):a.classList.remove("checked")}else e.click();break}})}static get observedAttributes(){return["data-total","class"]}attributeChangedCallback(e,a,r){switch(e){case"data-total":{this.shadowRoot.querySelector(".card__total")&&(this.shadowRoot.querySelector(".card__total").innerHTML=r);break}case"class":{let t=this.classList.toString();this.querySelector('[class*="fa-"]')&&(t+=" card--has-icon"),this.shadowRoot.querySelector(".card").setAttribute("class",`card ${t}`);break}}}}export{h as default};
|
|
23
25
|
//# sourceMappingURL=card.component.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.component.min.js","sources":["card.component.js"],"sourcesContent":["// @ts-nocheck\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"Card\"\n});\nclass iamCard extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n if (this.querySelector('[class*=\"fa-\"]'))\n this.classList.add('card--has-icon');\n let classList = this.classList.toString();\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/card.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <div class=\"card ${classList}\" tabindex=\"0\" role=\"button\">\n ${this.hasAttribute('data-image') ? `<div class=\"card__head\"><img src=\"${this.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\"
|
|
1
|
+
{"version":3,"file":"card.component.min.js","sources":["card.component.js"],"sourcesContent":["// @ts-nocheck\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"Card\"\n});\nclass iamCard extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n if (this.querySelector('[class*=\"fa-\"]'))\n this.classList.add('card--has-icon');\n let classList = this.classList.toString();\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/card.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/card.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <div class=\"card ${classList}\" tabindex=\"0\" role=\"button\">\n ${this.hasAttribute('data-image') ? `<div class=\"card__head\"><img src=\"${this.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\" /><div class=\"card__badges\"><slot name=\"badges\"></slot></div></div>` : ''}\n <div class=\"card__body\">\n ${!this.hasAttribute('data-image') ? `<div class=\"card__badges\"><slot name=\"badges\"></slot></div>` : ''}\n ${this.classList.contains('card--filter') && this.hasAttribute('data-total') ? `<div class=\"card__total\">${this.getAttribute('data-total')}</div>` : ''}\n ${this.hasAttribute('data-illustration') ? `<div class=\"card__illustration\"><img src=\"${this.getAttribute('data-illustration')}\" alt=\"\" loading=\"lazy\" /></div>` : ''}\n <slot></slot>\n </div>\n \n <slot name=\"checkbox\"></slot>\n ${this.hasAttribute('data-cta') ? `<div class=\"card__footer\"><span class=\"link\">${this.getAttribute('data-cta')}</span></div>` : ''}\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('cardGlobal'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"cardGlobal\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n this.classList.add('loaded');\n // Mimic clicking the parent node so the focus and target events can be on the card\n const parentNode = this.parentNode.closest('a, button, label');\n const card = this.shadowRoot.querySelector('.card');\n parentNode.setAttribute('tabindex', '-1');\n if (parentNode.matches('label[for]')) {\n let isChecked = document.getElementById(parentNode.getAttribute('for')).checked;\n if (isChecked)\n card.classList.add('checked');\n else\n card.classList.remove('checked');\n }\n // Click event down\n this.addEventListener('click', (event) => {\n let clickEvent = new Event('click');\n card.dispatchEvent(clickEvent);\n });\n card.addEventListener('click', (event) => {\n if (parentNode.matches('label[for]')) {\n event.stopPropagation();\n event.preventDefault();\n const input = document.getElementById(parentNode.getAttribute('for'));\n const inputName = input.getAttribute('name');\n const inputID = input.getAttribute('id');\n // Mimic radio button functionality\n const inputs = Array.from(document.querySelectorAll(`[name=\"${inputName}\"][type=\"radio\"]:not([id=\"${inputID}\"])`));\n inputs.forEach((input, index) => {\n const otherCard = document.querySelector(`[for=\"${input.getAttribute('id')}\"] iam-card`);\n otherCard.dispatchEvent(new Event('inactive'));\n });\n parentNode.click();\n let isChecked = input.checked;\n if (isChecked)\n card.classList.add('checked');\n else\n card.classList.remove('checked');\n }\n });\n this.addEventListener('inactive', (event) => {\n card.classList.remove('checked');\n });\n card.addEventListener('keydown', (event) => {\n switch (event.keyCode) {\n case 32:\n case 13:\n if (parentNode.matches('label[for]')) {\n event.stopPropagation();\n event.preventDefault();\n const input = document.getElementById(parentNode.getAttribute('for'));\n const inputName = input.getAttribute('name');\n const inputID = input.getAttribute('id');\n const inputs = Array.from(document.querySelectorAll(`[name=\"${inputName}\"]:not([id=\"${inputID}\"])`));\n inputs.forEach((input, index) => {\n const otherCard = document.querySelector(`[for=\"${input.getAttribute('id')}\"] iam-card`);\n otherCard.dispatchEvent(new Event('inactive'));\n });\n parentNode.click();\n let isChecked = input.checked;\n if (isChecked)\n card.classList.add('checked');\n else\n card.classList.remove('checked');\n }\n else {\n parentNode.click();\n }\n break;\n default:\n break;\n }\n });\n }\n static get observedAttributes() {\n return [\"data-total\", \"class\"];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case \"data-total\": {\n if (this.shadowRoot.querySelector('.card__total'))\n this.shadowRoot.querySelector('.card__total').innerHTML = newVal;\n break;\n }\n case \"class\": {\n let classList = this.classList.toString();\n if (this.querySelector('[class*=\"fa-\"]'))\n classList += ' card--has-icon';\n this.shadowRoot.querySelector('.card').setAttribute('class', `card ${classList}`);\n break;\n }\n }\n }\n}\nexport default iamCard;\n"],"names":["iamCard","classList","assetLocation","coreCSS","template","parentNode","card","event","clickEvent","input","inputName","inputID","index","attrName","oldVal","newVal"],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import carousel from "../../modules/carousel.js";
|
|
3
|
+
// Data layer Web component created
|
|
4
|
+
window.dataLayer = window.dataLayer || [];
|
|
5
|
+
window.dataLayer.push({
|
|
6
|
+
"event": "customElementRegistered",
|
|
7
|
+
"element": "carousel"
|
|
8
|
+
});
|
|
9
|
+
class iamCarousel extends HTMLElement {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this.attachShadow({ mode: 'open' });
|
|
13
|
+
const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
|
|
14
|
+
const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
|
|
15
|
+
const loadCSS = `@import "${assetLocation}/css/components/carousel.css";`;
|
|
16
|
+
const template = document.createElement('template');
|
|
17
|
+
template.innerHTML = `
|
|
18
|
+
<style>
|
|
19
|
+
@import "${coreCSS}";
|
|
20
|
+
${loadCSS}
|
|
21
|
+
${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
|
|
22
|
+
</style>
|
|
23
|
+
<div class="carousel" :id="'carousel'+id">
|
|
24
|
+
<div class="carousel__wrapper">
|
|
25
|
+
<div class="carousel__inner">
|
|
26
|
+
|
|
27
|
+
<slot></slot>
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<div class="carousel__controls">
|
|
31
|
+
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<button class="btn btn-prev" data-go="0" disabled>Prev</button>
|
|
35
|
+
<button class="btn btn-next" data-go="2">Next</button>
|
|
36
|
+
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
`;
|
|
40
|
+
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
41
|
+
}
|
|
42
|
+
connectedCallback() {
|
|
43
|
+
const carouselElement = this.shadowRoot.querySelector('.carousel');
|
|
44
|
+
const row = this.querySelector('.row');
|
|
45
|
+
const carouselControls = this.shadowRoot.querySelector('.carousel__controls');
|
|
46
|
+
let itemCount = this.querySelectorAll(':scope > .row > .col').length;
|
|
47
|
+
carouselElement.setAttribute('data-row-class', row.className);
|
|
48
|
+
if (this.classList.contains('hide-btns'))
|
|
49
|
+
carouselElement.classList.add('hide-btns');
|
|
50
|
+
if (this.classList.contains('hide-controls'))
|
|
51
|
+
carouselElement.classList.add('hide-controls');
|
|
52
|
+
// populate the pips
|
|
53
|
+
let pips = "";
|
|
54
|
+
for (let i = 1; i <= itemCount; i++) {
|
|
55
|
+
pips += `<button class="control-${i}" data-slide="${i}" ${i == 1 ? "aria-current" : ""}>Slide ${i}</button>`;
|
|
56
|
+
}
|
|
57
|
+
carouselControls.innerHTML = pips;
|
|
58
|
+
carousel(carouselElement, row);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export default iamCarousel;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v5.
|
|
2
|
+
* iamKey v5.1.0-beta10
|
|
3
3
|
* Copyright 2022-2023 iamproperty
|
|
4
4
|
*/window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"collapsible side menu"});class s extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",t=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,n=document.createElement("template");n.innerHTML=`
|
|
5
5
|
<style class="styles">
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v5.
|
|
2
|
+
* iamKey v5.1.0-beta10
|
|
3
3
|
* Copyright 2022-2023 iamproperty
|
|
4
4
|
*/function h(c,o){const r=o.querySelector(".files"),l=o.querySelector(".drop-area"),t=c.querySelector("input"),u=c.hasAttribute("data-maxsize")?c.getAttribute("data-maxsize"):0,a=t.cloneNode();l.append(a),o.addEventListener("click",e=>{e&&e.target instanceof HTMLElement&&e.target.closest(".btn-primary")&&(e.target.closest(".btn-primary"),(t.hasAttribute("multiple")?a:t).click())}),o.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest(".files button")){const i=new DataTransfer,{files:d}=t,p=e.target.closest(".files button");for(let n=0;n<d.length;n++){const s=d[n];s.name!=p.getAttribute("data-file")&&i.items.add(s)}t.files=i.files;const m=new Event("change");t.dispatchEvent(m)}}),a.addEventListener("change",e=>{if(t.hasAttribute("multiple")){const d=[...t.files,...a.files];let p=[];const m=new DataTransfer;for(let n=0;n<d.length;n++){const s=d[n],f=s.size/1e3;!p.includes(s.name)&&(u==0||f<u)&&m.items.add(s),p.push(s.name)}t.files=m.files}else t.files=a.files;const i=new Event("change");t.dispatchEvent(i)}),a.addEventListener("dragenter",e=>{a.classList.add("focus")}),a.addEventListener("dragleave",e=>{a.classList.remove("focus")}),a.addEventListener("drop",e=>{a.classList.remove("focus")}),t.addEventListener("change",e=>{r.innerHTML="";for(const i of t.files)r.innerHTML+=`<span class="file">${i.name} <button data-file="${i.name}">Remove</button></span>`})}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"fileupload"});class b extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const o=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",r=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${o}/css/core.min.css`,l=document.createElement("template");l.innerHTML=`
|
|
5
5
|
<style>
|
|
6
6
|
@import "${r}";
|
|
7
|
-
.file-upload{max-width:25rem !important;padding-bottom:1rem}.file-upload .drop-area>input{display:none}.file-upload .file-upload__title{margin-top:0;margin-bottom:0;font-family:var(--font-heading);font-style:normal;font-weight:var(--heading-weight);line-height:2rem;color:var(--colour-heading);clear:both;display:block;padding-bottom:2rem;font-size:1.5rem;line-height:2rem;padding-bottom:2rem;max-width:var(--content-max-width)}.file-upload .helper-text{max-width:16.875rem}.files span{display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);border:2px solid var(--colour-primary-theme);appearance:none;border-radius:0.5rem;margin-bottom:1rem;color:var(--colour-primary);border-color:#d8d8d8;background:#d8d8d8;max-width:25rem !important;position:relative}@media screen and (prefers-color-scheme: dark){.files span{background:var(--colour-canvas-2);border-color:var(--colour-canvas-2);color:var(--colour-
|
|
7
|
+
.file-upload{max-width:25rem !important;padding-bottom:1rem}.file-upload .drop-area>input{display:none}.file-upload .file-upload__title{margin-top:0;margin-bottom:0;font-family:var(--font-heading);font-style:normal;font-weight:var(--heading-weight);line-height:2rem;color:var(--colour-heading);clear:both;display:block;padding-bottom:2rem;font-size:1.5rem;line-height:2rem;padding-bottom:2rem;max-width:var(--content-max-width)}.file-upload .helper-text{max-width:16.875rem}.files span{display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);border:2px solid var(--colour-primary-theme);appearance:none;border-radius:0.5rem;margin-bottom:1rem;color:var(--colour-primary);border-color:#d8d8d8;background:#d8d8d8;max-width:25rem !important;position:relative}@media screen and (prefers-color-scheme: dark){.files span{background:var(--colour-canvas-2);border-color:var(--colour-canvas-2);color:var(--colour-body)}}@media(forced-colors: active){.files span{padding-right:5rem}.files span button{padding:0;width:3.7rem !important;text-indent:0% !important}.files span button:after{display:none !important}}.files span button{position:absolute;top:calc(50% - 0.5625rem);right:0.875rem;z-index:var(--index-floating);text-indent:300%;overflow:hidden;border:none;height:1.125rem;width:1.125rem;background:rgba(0,0,0,0)}.files span button:after{content:"";top:0;left:0;position:absolute;display:block;height:1.125rem;width:1.125rem;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-close);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-close);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%}:host(.fileupload--drag-drop) .file-upload{max-width:50rem !important}:host(.fileupload--drag-drop) .file-upload .helper-text{max-width:50rem !important}:host(.fileupload--drag-drop) .file-upload .drop-area>input{display:block;min-height:12.5rem;border:2px dashed var(--colour-primary-theme);color:rgba(0,0,0,0);position:relative;padding:1.5rem 2rem 1.5rem 2rem;user-select:none;max-width:100%;min-width:100%}:host(.fileupload--drag-drop) .file-upload .drop-area>input.focus{border:2px solid var(--colour-info)}:host(.fileupload--drag-drop) .file-upload .drop-area{position:relative}:host(.fileupload--drag-drop) .file-upload .drop-area::before{content:"Drag and drop files here or click to upload";position:absolute;inset:1.5rem 2rem 1.5rem 2rem;z-index:1;pointer-events:none}:host(.fileupload--drag-drop) .file-upload ::file-selector-button{position:absolute;inset:0;opacity:0}/*# sourceMappingURL=assets/css/components/fileupload.css.map */
|
|
8
8
|
|
|
9
9
|
${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
|
|
10
10
|
</style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v5.
|
|
2
|
+
* iamKey v5.1.0-beta10
|
|
3
3
|
* Copyright 2022-2023 iamproperty
|
|
4
4
|
*/function r(s,t){n(s,t)}function n(s,t){var e;t.addEventListener("keyup",a=>{clearTimeout(e),e=setTimeout(function(){o(s,t.value)},500)}),t.addEventListener("change",a=>{clearTimeout(e),o(s,t.value)})}const o=function(s,t){Array.from(s.querySelectorAll(":scope > li")).forEach((e,a)=>{let i=e.textContent.toLowerCase();e.classList.add("d-none"),i.includes(t.toLowerCase())&&e.classList.remove("d-none")}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Filtered list",value:t})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"filterlist"});class l extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const t=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",e=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${t}/css/core.min.css`,a=document.createElement("template");a.innerHTML=`
|
|
5
5
|
<style>
|
|
@@ -20,28 +20,22 @@ class iamHeader extends HTMLElement {
|
|
|
20
20
|
${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
|
|
21
21
|
</style>
|
|
22
22
|
<div class="header-banner">
|
|
23
|
-
<div class="container" part="container">
|
|
24
|
-
<slot name="breadcrumb"></slot>
|
|
25
|
-
<div class="header-banner__inner">
|
|
26
|
-
<slot></slot>
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
23
|
<picture>
|
|
30
|
-
<!-- Actual image only loaded on desktops -->
|
|
31
|
-
<source srcset="" media="(min-width: 62em)">
|
|
32
|
-
<!-- Placeholder image -->
|
|
33
24
|
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" lazy="" />
|
|
34
25
|
</picture>
|
|
26
|
+
<div class="container">
|
|
27
|
+
<slot></slot>
|
|
28
|
+
</div>
|
|
35
29
|
</div>
|
|
36
30
|
`;
|
|
37
31
|
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
38
32
|
}
|
|
39
33
|
connectedCallback() {
|
|
40
|
-
this.classList.add('
|
|
34
|
+
this.classList.add('bg-primary');
|
|
41
35
|
const picture = this.shadowRoot.querySelector('picture');
|
|
42
|
-
const source = this.shadowRoot.querySelector('picture
|
|
36
|
+
const source = this.shadowRoot.querySelector('picture img');
|
|
43
37
|
if (this.hasAttribute('image'))
|
|
44
|
-
source.setAttribute('
|
|
38
|
+
source.setAttribute('src', this.getAttribute('image'));
|
|
45
39
|
else
|
|
46
40
|
picture.remove();
|
|
47
41
|
}
|
|
@@ -1,26 +1,20 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v5.
|
|
2
|
+
* iamKey v5.1.0-beta10
|
|
3
3
|
* Copyright 2022-2023 iamproperty
|
|
4
|
-
*/window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"header"});class
|
|
4
|
+
*/window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"header"});class o extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const t=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",e=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${t}/css/core.min.css`,a=document.createElement("template");a.innerHTML=`
|
|
5
5
|
<style>
|
|
6
|
-
@import "${
|
|
7
|
-
|
|
6
|
+
@import "${e}";
|
|
7
|
+
:host{padding-top:0 !important;margin-bottom:2rem;background-color:rgba(0,0,0,0) !important}.header-banner{padding-top:2.75rem;max-width:120rem;min-height:25rem;margin-inline:auto;display:block;position:relative;height:auto}@media screen and (min-width: 62em){.header-banner{padding-top:5.25rem}}.header-banner>picture{display:block;position:absolute;top:0;left:0;height:100%;width:100%;pointer-events:none;overflow:hidden;min-height:25rem;max-height:25rem}.header-banner>picture:after{content:"";display:block;position:absolute;z-index:-1;inset:0;background:linear-gradient(300deg, rgb(30, 190, 230) 0%, rgb(0, 49, 60) 100%);opacity:.85}.header-banner>picture img{display:block;position:absolute;z-index:-2;inset:0;object-fit:cover;object-position:50% 50%;width:100%;height:100%}::slotted(.breadcrumb){margin-top:1.5rem !important;margin-bottom:-0.5rem !important}@media screen and (min-width: 62em){::slotted(.breadcrumb){position:absolute !important;top:0 !important;left:5.25rem !important}}::slotted(*:last-child){padding-bottom:0 !important;margin-bottom:0 !important}/*# sourceMappingURL=assets/css/components/header.css.map */
|
|
8
8
|
|
|
9
9
|
${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
|
|
10
10
|
</style>
|
|
11
11
|
<div class="header-banner">
|
|
12
|
-
<div class="container" part="container">
|
|
13
|
-
<slot name="breadcrumb"></slot>
|
|
14
|
-
<div class="header-banner__inner">
|
|
15
|
-
<slot></slot>
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
18
12
|
<picture>
|
|
19
|
-
<!-- Actual image only loaded on desktops -->
|
|
20
|
-
<source srcset="" media="(min-width: 62em)">
|
|
21
|
-
<!-- Placeholder image -->
|
|
22
13
|
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" lazy="" />
|
|
23
14
|
</picture>
|
|
15
|
+
<div class="container">
|
|
16
|
+
<slot></slot>
|
|
17
|
+
</div>
|
|
24
18
|
</div>
|
|
25
|
-
`,this.shadowRoot.appendChild(
|
|
19
|
+
`,this.shadowRoot.appendChild(a.content.cloneNode(!0))}connectedCallback(){this.classList.add("bg-primary");const t=this.shadowRoot.querySelector("picture"),e=this.shadowRoot.querySelector("picture img");this.hasAttribute("image")?e.setAttribute("src",this.getAttribute("image")):t.remove()}}export{o as default};
|
|
26
20
|
//# sourceMappingURL=header.component.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.component.min.js","sources":["header.component.js"],"sourcesContent":["// @ts-nocheck\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"header\"\n});\nclass iamHeader extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/header.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <div class=\"header-banner\">\n <
|
|
1
|
+
{"version":3,"file":"header.component.min.js","sources":["header.component.js"],"sourcesContent":["// @ts-nocheck\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"header\"\n});\nclass iamHeader extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/header.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <div class=\"header-banner\">\n <picture>\n <img src=\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" alt=\"\" lazy=\"\" />\n </picture>\n <div class=\"container\">\n <slot></slot>\n </div>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n this.classList.add('bg-primary');\n const picture = this.shadowRoot.querySelector('picture');\n const source = this.shadowRoot.querySelector('picture img');\n if (this.hasAttribute('image'))\n source.setAttribute('src', this.getAttribute('image'));\n else\n picture.remove();\n }\n}\nexport default iamHeader;\n"],"names":["iamHeader","assetLocation","coreCSS","template","picture","source"],"mappings":";;;IAEA,OAAO,UAAY,OAAO,WAAa,GACvC,OAAO,UAAU,KAAK,CAClB,MAAS,0BACT,QAAW,QACf,CAAC,EACD,MAAMA,UAAkB,WAAY,CAChC,aAAc,CACV,QACA,KAAK,aAAa,CAAE,KAAM,MAAQ,CAAA,EAClC,MAAMC,EAAgB,SAAS,KAAK,aAAa,sBAAsB,EAAI,SAAS,KAAK,aAAa,sBAAsB,EAAI,UAC1HC,EAAU,SAAS,KAAK,aAAa,eAAe,EAAI,SAAS,KAAK,aAAa,eAAe,EAAI,GAAGD,qBAEzGE,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA,eAEdD;AAAA;AAAA;AAAA,MAET,KAAK,aAAa,KAAK,EAAI,YAAY,KAAK,aAAa,KAAK,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAWpE,KAAK,WAAW,YAAYC,EAAS,QAAQ,UAAU,EAAI,CAAC,CAC/D,CACD,mBAAoB,CAChB,KAAK,UAAU,IAAI,YAAY,EAC/B,MAAMC,EAAU,KAAK,WAAW,cAAc,SAAS,EACjDC,EAAS,KAAK,WAAW,cAAc,aAAa,EACtD,KAAK,aAAa,OAAO,EACzBA,EAAO,aAAa,MAAO,KAAK,aAAa,OAAO,CAAC,EAErDD,EAAQ,OAAM,CACrB,CACL"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
// Data layer Web component created
|
|
3
|
+
window.dataLayer = window.dataLayer || [];
|
|
4
|
+
window.dataLayer.push({
|
|
5
|
+
"event": "customElementRegistered",
|
|
6
|
+
"element": "Marketing"
|
|
7
|
+
});
|
|
8
|
+
class iamMarketing extends HTMLElement {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.attachShadow({ mode: 'open' });
|
|
12
|
+
const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
|
|
13
|
+
const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
|
|
14
|
+
const loadCSS = `@import "${assetLocation}/css/components/marketing.css";`;
|
|
15
|
+
const template = document.createElement('template');
|
|
16
|
+
template.innerHTML = `
|
|
17
|
+
<style>
|
|
18
|
+
@import "${coreCSS}";
|
|
19
|
+
${loadCSS}
|
|
20
|
+
|
|
21
|
+
</style>
|
|
22
|
+
<link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous" />
|
|
23
|
+
<div class="marketing">
|
|
24
|
+
|
|
25
|
+
<slot></slot>
|
|
26
|
+
</div>
|
|
27
|
+
`;
|
|
28
|
+
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
29
|
+
}
|
|
30
|
+
connectedCallback() {
|
|
31
|
+
this.classList.add('invert-colours');
|
|
32
|
+
if (this.hasAttribute('data-img')) {
|
|
33
|
+
this.shadowRoot.querySelector('.marketing').insertAdjacentHTML('afterbegin', `<figure><img src="${this.getAttribute('data-img')}" alt="" /></figure>`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export default iamMarketing;
|
|
@@ -12,6 +12,7 @@ class iamNav extends HTMLElement {
|
|
|
12
12
|
const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
|
|
13
13
|
const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
|
|
14
14
|
const loadCSS = `@import "${assetLocation}/css/components/nav.css";`;
|
|
15
|
+
const loadExtraCSS = `@import "${assetLocation}/css/components/nav.global.css";`;
|
|
15
16
|
const template = document.createElement('template');
|
|
16
17
|
template.innerHTML = `
|
|
17
18
|
<style class="styles">
|
|
@@ -42,10 +43,12 @@ class iamNav extends HTMLElement {
|
|
|
42
43
|
<slot name="menus"></slot>
|
|
43
44
|
</div>
|
|
44
45
|
</div>
|
|
45
|
-
<div class="lists"></div>
|
|
46
46
|
<div class="backdrop" part="backdrop"></div>
|
|
47
47
|
`;
|
|
48
48
|
shadowRoot.appendChild(template.content.cloneNode(true));
|
|
49
|
+
// insert extra CSS
|
|
50
|
+
if (!document.getElementById('navGlobal'))
|
|
51
|
+
document.head.insertAdjacentHTML('beforeend', `<style id="navGlobal">${loadExtraCSS}</style>`);
|
|
49
52
|
}
|
|
50
53
|
connectedCallback() {
|
|
51
54
|
// Load external CSS if needed
|
|
@@ -225,30 +228,26 @@ class iamNav extends HTMLElement {
|
|
|
225
228
|
containerDiv.setAttribute('data-title', summary.textContent);
|
|
226
229
|
});
|
|
227
230
|
// Search
|
|
228
|
-
if (this.
|
|
231
|
+
if (this.querySelector('[slot="search"]')) {
|
|
229
232
|
menu.classList.add('has-search');
|
|
230
233
|
let searchWrapper = this.shadowRoot.querySelector('#search-wrapper');
|
|
231
234
|
searchWrapper.classList.remove('d-none');
|
|
232
235
|
searchWrapper.insertAdjacentHTML('afterbegin', `<button class="btn btn-secondary btn-compact fa-search me-0 mb-0" id="search-button" aria-controls="search-dialog">Open Search field</button>
|
|
233
236
|
<dialog id="search-dialog">
|
|
234
237
|
<div class="container">
|
|
235
|
-
<
|
|
238
|
+
<div class="row">
|
|
236
239
|
<div class="col mb-0 ms-auto col-md-7">
|
|
237
|
-
<
|
|
238
|
-
<button class="suffix me-0 mb-0"><i class="fa-regular fa-search"></i></button>
|
|
239
|
-
<input type="search" class="" id="search" name="search" required="" autocomplete="off" data-list="${this.hasAttribute('data-list') ? this.getAttribute('data-list') : ''}" />
|
|
240
|
+
<slot name="search"></slot>
|
|
240
241
|
</div>
|
|
241
242
|
<div class="col d-none d-md-block mw-fit-content ms-3">
|
|
242
243
|
<button class="btn btn-compact btn-secondary fa-xmark-large m-0 mb-0" type="button" id="search-close">Close search field</button>
|
|
243
244
|
</div>
|
|
244
|
-
</
|
|
245
|
+
</div>
|
|
245
246
|
</div>
|
|
246
247
|
</dialog>`);
|
|
247
248
|
let searchButton = this.shadowRoot.querySelector('#search-button');
|
|
248
249
|
let searchClose = this.shadowRoot.querySelector('#search-close');
|
|
249
250
|
let searchDialog = this.shadowRoot.querySelector('#search-dialog');
|
|
250
|
-
let searchInput = this.shadowRoot.querySelector('#search');
|
|
251
|
-
let searchForm = this.shadowRoot.querySelector('#search-form');
|
|
252
251
|
if (this.hasAttribute('data-search-open')) {
|
|
253
252
|
searchDialog.setAttribute('open', 'open');
|
|
254
253
|
this.classList.add('search-open');
|
|
@@ -264,33 +263,6 @@ class iamNav extends HTMLElement {
|
|
|
264
263
|
this.classList.remove('search-open');
|
|
265
264
|
searchButton.removeAttribute('aria-expanded');
|
|
266
265
|
});
|
|
267
|
-
// Search events
|
|
268
|
-
searchInput.addEventListener('keydown', (event) => {
|
|
269
|
-
const keyupEvent = new CustomEvent("search-keydown", { detail: { search: searchInput.value } });
|
|
270
|
-
this.dispatchEvent(keyupEvent);
|
|
271
|
-
});
|
|
272
|
-
searchInput.addEventListener('keyup', (event) => {
|
|
273
|
-
if (searchInput.value.length >= 3 && searchInput.hasAttribute('data-list'))
|
|
274
|
-
searchInput.setAttribute("list", searchInput.getAttribute('data-list'));
|
|
275
|
-
else
|
|
276
|
-
searchInput.removeAttribute("list");
|
|
277
|
-
const keyupEvent = new CustomEvent("search-keyup", { detail: { search: searchInput.value } });
|
|
278
|
-
this.dispatchEvent(keyupEvent);
|
|
279
|
-
});
|
|
280
|
-
searchInput.addEventListener('change', (event) => {
|
|
281
|
-
const changeEvent = new CustomEvent("search-change", { detail: { search: searchInput.value } });
|
|
282
|
-
this.dispatchEvent(changeEvent);
|
|
283
|
-
});
|
|
284
|
-
searchForm.addEventListener('submit', (event) => {
|
|
285
|
-
if (this.hasAttribute('data-prevent-search'))
|
|
286
|
-
event.preventDefault();
|
|
287
|
-
const submitEvent = new CustomEvent("search-submit", { detail: { search: searchInput.value } });
|
|
288
|
-
this.dispatchEvent(submitEvent);
|
|
289
|
-
});
|
|
290
|
-
// Make sure any child lists are available to the search input
|
|
291
|
-
this.querySelectorAll('datalist').forEach((list) => {
|
|
292
|
-
iamNav.shadowRoot.querySelector('.lists').insertAdjacentElement('beforeend', list);
|
|
293
|
-
});
|
|
294
266
|
}
|
|
295
267
|
}
|
|
296
268
|
}
|