@iamproperty/components 7.3.0 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/css/components/actionbar.component.css +1 -1
- package/assets/css/components/actionbar.component.css.map +1 -1
- package/assets/css/components/actionbar.global.css +1 -1
- package/assets/css/components/actionbar.global.css.map +1 -1
- package/assets/css/components/barchart.component.css +1 -1
- package/assets/css/components/barchart.component.css.map +1 -1
- package/assets/css/components/calendar.component.css +1 -0
- package/assets/css/components/calendar.component.css.map +1 -0
- package/assets/css/components/calendar.config.css +1 -0
- package/assets/css/components/calendar.config.css.map +1 -0
- package/assets/css/components/card.component.css +1 -1
- package/assets/css/components/card.component.css.map +1 -1
- package/assets/css/components/carousel.component.css +1 -1
- package/assets/css/components/carousel.component.css.map +1 -1
- package/assets/css/components/collapsible-side.css +1 -1
- package/assets/css/components/collapsible-side.css.map +1 -1
- package/assets/css/components/content.component.css +1 -0
- package/assets/css/components/content.component.css.map +1 -0
- package/assets/css/components/doughnutchart.component.css +1 -1
- package/assets/css/components/doughnutchart.component.css.map +1 -1
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/inline-edit.css +1 -1
- package/assets/css/components/inline-edit.css.map +1 -1
- package/assets/css/components/marketing.component.css +1 -0
- package/assets/css/components/marketing.component.css.map +1 -0
- package/assets/css/components/menu.component.css.map +1 -1
- package/assets/css/components/milestone.css +1 -0
- package/assets/css/components/milestone.css.map +1 -0
- package/assets/css/components/multiselect.css +1 -1
- package/assets/css/components/multiselect.css.map +1 -1
- package/assets/css/components/nav.component.css +1 -1
- package/assets/css/components/nav.component.css.map +1 -1
- package/assets/css/components/nav.global.css +1 -1
- package/assets/css/components/nav.global.css.map +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/rank.component.css +1 -1
- package/assets/css/components/rank.component.css.map +1 -1
- package/assets/css/components/rankings.component.css +1 -1
- package/assets/css/components/rankings.component.css.map +1 -1
- package/assets/css/components/rankings.global.css +1 -1
- package/assets/css/components/rankings.global.css.map +1 -1
- package/assets/css/components/slider.css.map +1 -1
- package/assets/css/components/split-button.component.css +1 -0
- package/assets/css/components/split-button.component.css.map +1 -0
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/mobile-core.min.css +1 -1
- package/assets/css/mobile-core.min.css.map +1 -1
- package/assets/css/mobile.min.css +1 -1
- package/assets/css/mobile.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.js +51 -31
- package/assets/js/components/actionbar/actionbar.component.min.js +17 -17
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
- package/assets/js/components/advanced-select/advanced-select.component.js +63 -0
- package/assets/js/components/advanced-select/advanced-select.component.min.js +23 -0
- package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -0
- package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/barchart/barchart.component.min.js +2 -2
- package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
- package/assets/js/components/calendar/calendar.component.js +1083 -0
- package/assets/js/components/calendar/calendar.component.min.js +170 -0
- package/assets/js/components/calendar/calendar.component.min.js.map +1 -0
- package/assets/js/components/card/card.component.js +20 -8
- package/assets/js/components/card/card.component.min.js +10 -10
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.min.js +2 -2
- package/assets/js/components/collapsible-side/collapsible-side.component.js +47 -12
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +6 -5
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
- package/assets/js/components/content/content.component.js +66 -0
- package/assets/js/components/content/content.component.min.js +15 -0
- package/assets/js/components/content/content.component.min.js.map +1 -0
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
- package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
- package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.min.js +5 -5
- package/assets/js/components/marketing/marketing.component.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +2 -2
- package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
- package/assets/js/components/menu/menu.component.js +10 -2
- package/assets/js/components/menu/menu.component.min.js +2 -2
- package/assets/js/components/menu/menu.component.min.js.map +1 -1
- package/assets/js/components/milestone/milestone.component.js +38 -0
- package/assets/js/components/milestone/milestone.component.min.js +15 -0
- package/assets/js/components/milestone/milestone.component.min.js.map +1 -0
- package/assets/js/components/milestone-group/milestone-group.component.js +35 -0
- package/assets/js/components/milestone-group/milestone-group.component.min.js +13 -0
- package/assets/js/components/milestone-group/milestone-group.component.min.js.map +1 -0
- package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
- package/assets/js/components/multiselect/multiselect.component.js +54 -2
- package/assets/js/components/multiselect/multiselect.component.min.js +5 -5
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.js +19 -0
- package/assets/js/components/nav/nav.component.min.js +6 -6
- package/assets/js/components/nav/nav.component.min.js.map +1 -1
- package/assets/js/components/notification/notification.component.js +17 -11
- package/assets/js/components/notification/notification.component.min.js +4 -4
- package/assets/js/components/notification/notification.component.min.js.map +1 -1
- package/assets/js/components/pagination/pagination.component.min.js +1 -1
- package/assets/js/components/rank/rank.component.js +346 -210
- package/assets/js/components/rank/rank.component.min.js +346 -211
- package/assets/js/components/rank/rank.component.min.js.map +1 -1
- package/assets/js/components/rankings/rankings.component.js +17 -8
- package/assets/js/components/rankings/rankings.component.min.js +14 -8
- package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
- package/assets/js/components/record-card/record-card.component.min.js +1 -1
- package/assets/js/components/search/search.component.js +5 -3
- package/assets/js/components/search/search.component.min.js +6 -6
- package/assets/js/components/search/search.component.min.js.map +1 -1
- package/assets/js/components/slider/slider.component.min.js +1 -1
- package/assets/js/components/split-button/split-button.component.js +60 -0
- package/assets/js/components/split-button/split-button.component.min.js +34 -0
- package/assets/js/components/split-button/split-button.component.min.js.map +1 -0
- package/assets/js/components/table/table.component.js +12 -0
- package/assets/js/components/table/table.component.min.js +3 -3
- package/assets/js/components/table/table.component.min.js.map +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.js +12 -0
- package/assets/js/components/table-ajax/table-ajax.component.min.js +3 -3
- package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
- package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
- package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
- package/assets/js/components/table-no-submit/table-no-submit.component.js +12 -0
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +3 -3
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
- package/assets/js/components/table-submit/table-submit.component.js +12 -0
- package/assets/js/components/table-submit/table-submit.component.min.js +3 -3
- package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
- package/assets/js/components/tabs/tabs.component.min.js +1 -1
- package/assets/js/components/video-card/video-card.component.min.js +1 -1
- package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
- package/assets/js/components.js +58 -0
- package/assets/js/modules/advanced-select.js +106 -0
- package/assets/js/modules/dialogs.js +53 -51
- package/assets/js/modules/dynamicEvents.js +7 -0
- package/assets/js/modules/milestone-group.js +30 -0
- package/assets/js/modules/milestone.js +89 -0
- package/assets/js/modules/table.js +11 -1
- package/assets/js/modules/videos.js +1 -1
- package/assets/js/scripts.bundle.js +3 -3
- 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/scripts.js +4 -0
- package/assets/sass/_components.scss +11 -0
- package/assets/sass/_functions/utility-mixins.scss +41 -0
- package/assets/sass/_functions/variables.scss +11 -5
- package/assets/sass/components/actionbar.component.scss +1 -1
- package/assets/sass/components/actionbar.global.scss +4 -4
- package/assets/sass/components/calendar.component.scss +1380 -0
- package/assets/sass/components/calendar.config.scss +476 -0
- package/assets/sass/components/card.component.scss +4 -34
- package/assets/sass/components/carousel.component.scss +5 -0
- package/assets/sass/components/collapsible-side.scss +91 -95
- package/assets/sass/components/content.component.scss +18 -0
- package/assets/sass/components/inline-edit.scss +2 -0
- package/assets/sass/components/{marketing.scss → marketing.component.scss} +2 -6
- package/assets/sass/components/menu.component.scss +3 -8
- package/assets/sass/components/milestone.scss +207 -0
- package/assets/sass/components/multiselect.scss +3 -0
- package/assets/sass/components/nav.component.scss +1 -0
- package/assets/sass/components/nav.global.scss +30 -0
- package/assets/sass/components/rank.component.scss +197 -24
- package/assets/sass/components/rankings.component.scss +38 -28
- package/assets/sass/components/rankings.global.scss +64 -2
- package/assets/sass/components/split-button.component.scss +77 -0
- package/assets/sass/elements/badge-tag.scss +5 -1
- package/assets/sass/elements/buttons--compact.scss +4 -0
- package/assets/sass/elements/details.scss +0 -1
- package/assets/sass/elements/forms.scss +130 -8
- package/assets/sass/elements/links.scss +132 -4
- package/assets/sass/elements/lists.scss +61 -0
- package/assets/sass/elements/popover.scss +64 -10
- package/assets/sass/elements/toggle-button.scss +7 -8
- package/assets/sass/elements/type.scss +7 -10
- package/assets/sass/templates/form.scss +0 -2
- package/assets/ts/components/actionbar/actionbar.component.ts +49 -23
- package/assets/ts/components/advanced-select/advanced-select.component.ts +74 -0
- package/assets/ts/components/calendar/calendar.component.ts +1460 -0
- package/assets/ts/components/card/card.component.ts +22 -14
- package/assets/ts/components/collapsible-side/collapsible-side.component.ts +53 -12
- package/assets/ts/components/content/content.component.ts +78 -0
- package/assets/ts/components/marketing/marketing.component.ts +1 -1
- package/assets/ts/components/menu/menu.component.ts +16 -8
- package/assets/ts/components/milestone/milestone.component.ts +45 -0
- package/assets/ts/components/milestone-group/milestone-group.component.ts +41 -0
- package/assets/ts/components/multiselect/multiselect.component.ts +69 -3
- package/assets/ts/components/nav/nav.component.ts +25 -0
- package/assets/ts/components/notification/notification.component.ts +34 -11
- package/assets/ts/components/rank/rank.component.ts +345 -209
- package/assets/ts/components/rankings/rankings.component.ts +27 -8
- package/assets/ts/components/search/search.component.ts +6 -4
- package/assets/ts/components/split-button/split-button.component.ts +69 -0
- package/assets/ts/components/table/table.component.ts +14 -0
- package/assets/ts/components/table-ajax/table-ajax.component.ts +14 -0
- package/assets/ts/components/table-no-submit/table-no-submit.component.ts +14 -0
- package/assets/ts/components/table-submit/table-submit.component.ts +14 -0
- package/assets/ts/components/video-card/video-card.component.ts +2 -3
- package/assets/ts/components.ts +63 -0
- package/assets/ts/modules/advanced-select.ts +125 -0
- package/assets/ts/modules/dialogs.ts +64 -61
- package/assets/ts/modules/dynamicEvents.ts +12 -1
- package/assets/ts/modules/milestone-group.ts +42 -0
- package/assets/ts/modules/milestone.ts +122 -0
- package/assets/ts/modules/table.ts +15 -1
- package/assets/ts/modules/videos.ts +19 -37
- package/assets/ts/scripts.ts +5 -3
- package/dist/components.es.js +41 -1923
- package/dist/components.umd.js +126 -105
- package/package.json +1 -1
- package/src/components/AdvancedSelect/AdvancedSelect.vue +23 -0
- package/src/components/Calendar/Calendar.vue +26 -0
- package/src/components/Card/Card.vue +1 -1
- package/src/components/CollapsibleSideMenu/CollapsibleSideMenu.vue +7 -13
- package/src/components/Content/Content.vue +23 -0
- package/src/components/Milestones/Milestone.vue +27 -0
- package/src/components/Milestones/MilestoneGroup.vue +27 -0
- package/src/components/SplitButton/README.md +19 -0
- package/src/components/SplitButton/SplitButton.vue +26 -0
- package/src/index.js +44 -41
- package/assets/css/components/marketing.css +0 -1
- package/assets/css/components/marketing.css.map +0 -1
- package/assets/css/components/nav.old.css +0 -1
- package/assets/css/components/nav.old.css.map +0 -1
- package/assets/sass/components/nav.old.scss +0 -891
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { uniqueID } from '../../modules/helpers';
|
|
2
2
|
|
|
3
3
|
// Data layer Web component created
|
|
4
4
|
declare global {
|
|
@@ -58,23 +58,23 @@ class iamActionbar extends HTMLElement {
|
|
|
58
58
|
<div class="safe-area">
|
|
59
59
|
<slot></slot>
|
|
60
60
|
<div class="body">
|
|
61
|
-
<div class="
|
|
62
|
-
<button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0">More actions</button>
|
|
63
|
-
<
|
|
61
|
+
<div class="menu__wrapper menu__wrapper --right dialog-overflow d-none show">
|
|
62
|
+
<button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0" popovertarget="overflow" style="anchor-name: --anchor-overflow;">More actions</button>
|
|
63
|
+
<iam-menu class="dialog--list" part="overflow" id="overflow" style="position-anchor: --anchor-overflow;" popover>
|
|
64
64
|
<slot name="overflow"></slot>
|
|
65
65
|
<slot name="menu"></slot>
|
|
66
|
-
</
|
|
66
|
+
</iam-menu>
|
|
67
67
|
</div>
|
|
68
68
|
|
|
69
69
|
|
|
70
|
-
<div class="
|
|
71
|
-
<button class="btn btn-secondary btn-compact btn-sm mb-0 me-0 fa-regular fa-table-columns" title="Select colums">Filter</button>
|
|
72
|
-
<
|
|
70
|
+
<div class="menu__wrapper menu__wrapper --right filter-columns">
|
|
71
|
+
<button class="btn btn-secondary btn-compact btn-sm mb-0 me-0 fa-regular fa-table-columns" title="Select colums" popovertarget="filter" style="anchor-name: --anchor-filter;">Filter</button>
|
|
72
|
+
<iam-menu class="dialog--list" id="filter" style="position-anchor: --anchor-filter;" popover>
|
|
73
73
|
<div class="pb-0 mb-0 checklists">
|
|
74
74
|
|
|
75
75
|
</div>
|
|
76
76
|
<div class="text-right checklist-btns"><button id="cancelColumns" class="btn btn-action">Cancel</button><button id="saveColumns" class="btn btn-action btn-secondary">Save</button></div>
|
|
77
|
-
</
|
|
77
|
+
</iam-menu>
|
|
78
78
|
</div>
|
|
79
79
|
|
|
80
80
|
<button class="btn btn-secondary btn-compact btn-sm fa-search" data-search="" part="search-btn">Search</button>
|
|
@@ -85,11 +85,11 @@ class iamActionbar extends HTMLElement {
|
|
|
85
85
|
<div class="safe-area">
|
|
86
86
|
<slot name="selected"></slot>
|
|
87
87
|
<div class="body">
|
|
88
|
-
<div class="
|
|
89
|
-
<button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0">More actions</button>
|
|
90
|
-
<
|
|
88
|
+
<div class="menu__wrapper menu__wrapper --right dialog-overflow d-none show">
|
|
89
|
+
<button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0" popovertarget="selected-overflow" style="anchor-name: --anchor-selected-overflow;">More actions</button>
|
|
90
|
+
<iam-menu class="dialog--list" part="selected-overflow" id="selected-overflow" style="position-anchor: --anchor-selected-overflow;" popover>
|
|
91
91
|
<slot name="selected-overflow"></slot>
|
|
92
|
-
</
|
|
92
|
+
</iam-menu>
|
|
93
93
|
</div>
|
|
94
94
|
</div>
|
|
95
95
|
</div>
|
|
@@ -121,6 +121,37 @@ class iamActionbar extends HTMLElement {
|
|
|
121
121
|
const actionbarWrapper = this.shadowRoot?.querySelector('.actionbar__wrapper');
|
|
122
122
|
const checklistHolder = this.shadowRoot?.querySelector('.checklists');
|
|
123
123
|
|
|
124
|
+
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
125
|
+
? document.body.getAttribute('data-assets-location')
|
|
126
|
+
: '/assets';
|
|
127
|
+
|
|
128
|
+
if (!window.customElements.get(`iam-menu`)) {
|
|
129
|
+
import(/* @vite-ignore */ `${assetLocation}/js/components/menu/menu.component.js`)
|
|
130
|
+
.then((module) => {
|
|
131
|
+
window.customElements.define(`iam-menu`, module.default);
|
|
132
|
+
})
|
|
133
|
+
.catch((err) => {
|
|
134
|
+
console.log(err.message);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const dialog = this.querySelector('.dialog__wrapper dialog');
|
|
139
|
+
|
|
140
|
+
// Transform dialog into a menu custom element
|
|
141
|
+
if (dialog) {
|
|
142
|
+
const btn = dialog.parentElement.querySelector('.btn');
|
|
143
|
+
const id = `menu${uniqueID(1)}`;
|
|
144
|
+
|
|
145
|
+
dialog.setAttribute('id', id);
|
|
146
|
+
dialog.setAttribute('popover', 'auto');
|
|
147
|
+
btn.setAttribute('popovertarget', id);
|
|
148
|
+
|
|
149
|
+
dialog.outerHTML = dialog.outerHTML.replace(/<dialog/g, '<iam-menu').replace(/<\/dialog>/g, '</iam-menu>');
|
|
150
|
+
|
|
151
|
+
dialog.parentElement?.classList.add('menu__wrapper');
|
|
152
|
+
dialog.parentElement?.classList.remove('dialog__wrapper');
|
|
153
|
+
}
|
|
154
|
+
|
|
124
155
|
// #region select all
|
|
125
156
|
if (this.hasAttribute('data-selectall')) {
|
|
126
157
|
actionbarWrapper?.insertAdjacentHTML(
|
|
@@ -248,11 +279,6 @@ class iamActionbar extends HTMLElement {
|
|
|
248
279
|
});
|
|
249
280
|
// #endregion
|
|
250
281
|
|
|
251
|
-
// Make sure dialogs created in the shadow dom work
|
|
252
|
-
Array.from(this.shadowRoot.querySelectorAll('.body')).forEach((element) => {
|
|
253
|
-
extendDialogs(element);
|
|
254
|
-
});
|
|
255
|
-
|
|
256
282
|
// #region Reponsive safe area
|
|
257
283
|
const hideButtons = (): void => {
|
|
258
284
|
const wrapperWidth = actionbarWrapper.scrollWidth;
|
|
@@ -294,7 +320,7 @@ class iamActionbar extends HTMLElement {
|
|
|
294
320
|
if (wrapperWidth < 576) {
|
|
295
321
|
Array.from(
|
|
296
322
|
this.querySelectorAll(
|
|
297
|
-
':scope > .btn:not(.js-updated), :scope > .
|
|
323
|
+
':scope > .btn:not(.js-updated), :scope > .menu__wrapper > .btn[class*="fa-"]:first-child:not(.js-updated)'
|
|
298
324
|
)
|
|
299
325
|
).forEach((element: HTMLElement) => {
|
|
300
326
|
element.className = element.className.replace(' btn-compact', ' _btn-compact');
|
|
@@ -303,7 +329,7 @@ class iamActionbar extends HTMLElement {
|
|
|
303
329
|
});
|
|
304
330
|
} else {
|
|
305
331
|
Array.from(
|
|
306
|
-
this.querySelectorAll(':scope > .btn.js-updated, :scope > .
|
|
332
|
+
this.querySelectorAll(':scope > .btn.js-updated, :scope > .menu__wrapper > .btn.js-updated:first-child')
|
|
307
333
|
).forEach((element: HTMLElement) => {
|
|
308
334
|
element.classList.remove('btn-compact');
|
|
309
335
|
element.classList.remove('js-updated');
|
|
@@ -342,7 +368,7 @@ class iamActionbar extends HTMLElement {
|
|
|
342
368
|
|
|
343
369
|
// Foreach element this isn't an action button or dialog wrapper add to the width, these will not be moved into the overflow slot
|
|
344
370
|
for (let i = 0; i < elements.length; i++) {
|
|
345
|
-
if (!elements[i].classList.contains('btn-action') && !elements[i].classList.contains('
|
|
371
|
+
if (!elements[i].classList.contains('btn-action') && !elements[i].classList.contains('menu__wrapper ')) {
|
|
346
372
|
tempWidth += elements[i].offsetWidth;
|
|
347
373
|
tempWidth += elementMargin;
|
|
348
374
|
}
|
|
@@ -350,7 +376,7 @@ class iamActionbar extends HTMLElement {
|
|
|
350
376
|
|
|
351
377
|
// Foreach dialog wrapper decide if safe in safe area or move into the overflow slot, dialog wrappers have priority over the action buttons
|
|
352
378
|
for (let i = 0; i < elements.length; i++) {
|
|
353
|
-
if (elements[i].classList.contains('
|
|
379
|
+
if (elements[i].classList.contains('menu__wrapper ')) {
|
|
354
380
|
elements[i].classList.add('show');
|
|
355
381
|
tempWidth += elements[i].offsetWidth;
|
|
356
382
|
tempWidth += elementMargin / 2;
|
|
@@ -384,7 +410,7 @@ class iamActionbar extends HTMLElement {
|
|
|
384
410
|
|
|
385
411
|
// Decide which elements go into the overflow slot
|
|
386
412
|
for (let i = 0; i < elements.length; i++) {
|
|
387
|
-
if (elements[i].classList.contains('btn-action') || elements[i].classList.contains('
|
|
413
|
+
if (elements[i].classList.contains('btn-action') || elements[i].classList.contains('menu__wrapper ')) {
|
|
388
414
|
if (!elements[i].classList.contains('show')) {
|
|
389
415
|
// Move to the slot by changing the attribute
|
|
390
416
|
elements[i].setAttribute('slot', overflowSlot);
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import advancedSelect from '../../modules/advanced-select';
|
|
2
|
+
import { safeID, resolvePath, isTraversable } from '../../modules/helpers';
|
|
3
|
+
|
|
4
|
+
// Data layer Web component created
|
|
5
|
+
window.dataLayer = window.dataLayer || [];
|
|
6
|
+
window.dataLayer.push({
|
|
7
|
+
event: 'customElementRegistered',
|
|
8
|
+
element: 'Advanced select',
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
class iamAdvancedSelect extends HTMLElement {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.attachShadow({ mode: 'open' });
|
|
15
|
+
|
|
16
|
+
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
17
|
+
? document.body.getAttribute('data-assets-location')
|
|
18
|
+
: '/assets';
|
|
19
|
+
const coreCSS = document.body.hasAttribute('data-core-css')
|
|
20
|
+
? document.body.getAttribute('data-core-css')
|
|
21
|
+
: `${assetLocation}/css/core.min.css`;
|
|
22
|
+
|
|
23
|
+
const template = document.createElement('template');
|
|
24
|
+
template.innerHTML = `
|
|
25
|
+
<style>
|
|
26
|
+
@import "${coreCSS}";
|
|
27
|
+
input {
|
|
28
|
+
background: red;
|
|
29
|
+
}
|
|
30
|
+
input:not(.is-invalid):not(:invalid) {
|
|
31
|
+
background: none!important;
|
|
32
|
+
}
|
|
33
|
+
.optional-text {
|
|
34
|
+
display: none;
|
|
35
|
+
}
|
|
36
|
+
.js-hide {
|
|
37
|
+
display: none !important;
|
|
38
|
+
}
|
|
39
|
+
</style>
|
|
40
|
+
<link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous" />
|
|
41
|
+
<slot></slot>
|
|
42
|
+
`;
|
|
43
|
+
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
connectedCallback(): void {
|
|
47
|
+
// Clone original input field, re-name and use for display purposes
|
|
48
|
+
const inputField = this.querySelector('input');
|
|
49
|
+
const displayInputField = inputField.cloneNode();
|
|
50
|
+
displayInputField.setAttribute('name', `${inputField.getAttribute('name')}Alt`);
|
|
51
|
+
inputField.removeAttribute('data-change-events');
|
|
52
|
+
displayInputField.removeAttribute('id');
|
|
53
|
+
let datalist = this.querySelector('datalist');
|
|
54
|
+
|
|
55
|
+
inputField.after(displayInputField);
|
|
56
|
+
|
|
57
|
+
// Hide original input field
|
|
58
|
+
inputField.setAttribute('type', 'hidden');
|
|
59
|
+
|
|
60
|
+
// if data list does not exist then create one and append
|
|
61
|
+
if (!datalist) {
|
|
62
|
+
datalist = document.createElement('datalist');
|
|
63
|
+
const listID = safeID('list');
|
|
64
|
+
datalist.setAttribute('id', listID);
|
|
65
|
+
searchWrapper.appendChild(datalist);
|
|
66
|
+
|
|
67
|
+
displayInputField.setAttribute('list', listID);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
advancedSelect(this, displayInputField, datalist);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export default iamAdvancedSelect;
|