@iamproperty/components 7.8.2--beta4 → 7.8.2--beta6
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/calendar.component.css +1 -1
- package/assets/css/components/calendar.component.css.map +1 -1
- package/assets/css/components/card.component.css +1 -1
- package/assets/css/components/card.component.css.map +1 -1
- package/assets/css/components/carousel.config.css +1 -1
- package/assets/css/components/carousel.config.css.map +1 -1
- package/assets/css/components/modal.component.css +1 -1
- package/assets/css/components/modal.component.css.map +1 -1
- package/assets/css/components/multi-step-modal.component.css +1 -1
- package/assets/css/components/multi-step-modal.component.css.map +1 -1
- package/assets/css/components/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/notification.global.css +1 -1
- package/assets/css/components/notification.global.css.map +1 -1
- package/assets/css/components/std-nav-standalone.component.css +1 -1
- package/assets/css/components/std-nav-standalone.component.css.map +1 -1
- package/assets/css/components/video-card.component.css +1 -1
- package/assets/css/components/video-card.component.css.map +1 -1
- package/assets/css/components/video-modal.component.css +1 -1
- package/assets/css/components/video-modal.component.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/elements/dialog.css +1 -1
- package/assets/css/elements/dialog.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.min.js +3 -3
- package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/banner/banner.component.min.js +1 -1
- package/assets/js/components/barchart/barchart.component.min.js +1 -1
- package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
- package/assets/js/components/bone/bone.component.min.js +1 -1
- package/assets/js/components/button/button.component.min.js +1 -1
- package/assets/js/components/calendar/calendar.component.min.js +2 -2
- package/assets/js/components/card/card.component.min.js +6 -6
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.min.js +1 -1
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
- package/assets/js/components/config/config.component.min.js +2 -2
- package/assets/js/components/config/config.component.min.js.map +1 -1
- package/assets/js/components/content/content.component.min.js +1 -1
- package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
- package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
- package/assets/js/components/filter-card/filter-card.component.min.js +2 -2
- package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/form/form.component.js +42 -151
- package/assets/js/components/form/form.component.min.js +3 -3
- package/assets/js/components/form/form.component.min.js.map +1 -1
- package/assets/js/components/header/header.component.min.js +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.min.js +2 -2
- package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
- package/assets/js/components/input/input.component.min.js +1 -1
- package/assets/js/components/input-range/input-range.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +1 -1
- package/assets/js/components/menu/menu.component.min.js +1 -1
- package/assets/js/components/milestone/milestone.component.min.js +1 -1
- package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
- package/assets/js/components/modal/modal.component.js +16 -11
- package/assets/js/components/modal/modal.component.min.js +7 -7
- package/assets/js/components/modal/modal.component.min.js.map +1 -1
- package/assets/js/components/multi-step/multi-step.component.min.js +2 -2
- package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -1
- package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.js +88 -79
- package/assets/js/components/nav/nav.component.min.js +8 -8
- package/assets/js/components/nav/nav.component.min.js.map +1 -1
- package/assets/js/components/notification/notification.component.min.js +2 -2
- package/assets/js/components/pagination/pagination.component.min.js +1 -1
- package/assets/js/components/password/password.component.min.js +1 -1
- package/assets/js/components/popover/popover.component.min.js +1 -1
- package/assets/js/components/rank/rank.component.min.js +1 -1
- package/assets/js/components/rankings/rankings.component.min.js +1 -1
- package/assets/js/components/rating/rating.component.min.js +1 -1
- package/assets/js/components/record-card/record-card.component.min.js +2 -2
- package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
- package/assets/js/components/search/search.component.js +2 -1
- package/assets/js/components/search/search.component.min.js +3 -3
- package/assets/js/components/search/search.component.min.js.map +1 -1
- package/assets/js/components/skeleton/skeleton.component.min.js +1 -1
- package/assets/js/components/slider/slider.component.min.js +1 -1
- package/assets/js/components/split-button/split-button.component.min.js +1 -1
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +3 -3
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
- package/assets/js/components/std-nav/std-nav.component.js +2 -0
- package/assets/js/components/std-nav/std-nav.component.min.js +12 -12
- package/assets/js/components/std-nav/std-nav.component.min.js.map +1 -1
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +2 -2
- package/assets/js/components/table/table.component.min.js +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
- package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
- package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
- package/assets/js/components/tabs/tabs.component.min.js +1 -1
- package/assets/js/components/tag/tag.component.min.js +2 -2
- package/assets/js/components/tag/tag.component.min.js.map +1 -1
- package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
- package/assets/js/components/video/video.component.min.js +1 -1
- package/assets/js/components/video-card/video-card.component.min.js +6 -6
- package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
- package/assets/js/components/video-modal/video-modal.component.min.js +5 -5
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/card.module.js +1 -1
- package/assets/js/modules/form.js +129 -0
- package/assets/js/modules/form.test.js +132 -0
- package/assets/js/modules/test-dom.js +5 -0
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/sass/_utilities.scss +1 -0
- package/assets/sass/components/carousel.config.scss +5 -0
- package/assets/sass/components/modal.component.scss +5 -1
- package/assets/sass/components/nav.global.scss +0 -10
- package/assets/sass/components/notification.global.scss +8 -0
- package/assets/sass/elements/dialog.scss +43 -0
- package/assets/sass/foundations/colours.scss +15 -24
- package/assets/sass/foundations/reboot.scss +4 -0
- package/assets/sass/utilities/wordpress.css +7 -0
- package/assets/ts/components/form/form.component.ts +54 -213
- package/assets/ts/components/modal/modal.component.ts +27 -19
- package/assets/ts/components/nav/nav.component.ts +107 -95
- package/assets/ts/components/search/search.component.ts +5 -1
- package/assets/ts/components/std-nav/std-nav.component.ts +3 -1
- package/assets/ts/modules/card.module.ts +1 -1
- package/assets/ts/modules/form.test.ts +183 -0
- package/assets/ts/modules/form.ts +210 -0
- package/assets/ts/modules/test-dom.ts +5 -0
- package/dist/components.es.js +2662 -1246
- package/dist/components.umd.js +372 -372
- package/package.json +5 -5
|
@@ -29,7 +29,7 @@ class iamNav extends HTMLElement {
|
|
|
29
29
|
|
|
30
30
|
<div class="menu__outer">
|
|
31
31
|
<div class="menu closed">
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
<div class="menu__primary">
|
|
34
34
|
<slot></slot>
|
|
35
35
|
<slot name="dual"></slot>
|
|
@@ -43,7 +43,7 @@ class iamNav extends HTMLElement {
|
|
|
43
43
|
</div>
|
|
44
44
|
</div>
|
|
45
45
|
<slot name="menus"></slot>
|
|
46
|
-
</div>
|
|
46
|
+
</div>
|
|
47
47
|
</div>
|
|
48
48
|
<div class="backdrop" part="backdrop"></div>
|
|
49
49
|
`;
|
|
@@ -65,90 +65,99 @@ class iamNav extends HTMLElement {
|
|
|
65
65
|
const backdrop = this.shadowRoot.querySelector('.backdrop');
|
|
66
66
|
const buttonsHolder = this.shadowRoot.querySelector('.buttons-holder');
|
|
67
67
|
// Check the content
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (element.classList.contains('nav--menu') &&
|
|
80
|
-
element.hasAttribute('data-title') &&
|
|
81
|
-
element.hasAttribute('data-icon')) {
|
|
82
|
-
const title = element.getAttribute('data-title');
|
|
83
|
-
const iconClass = element.getAttribute('data-icon');
|
|
84
|
-
// Create the menu button that sits seperately to the menu
|
|
85
|
-
const button = document.createElement('button');
|
|
86
|
-
button.setAttribute('slot', title);
|
|
87
|
-
button.classList.add('btn-menu');
|
|
88
|
-
button.setAttribute('part', 'btn-menu');
|
|
89
|
-
button.innerHTML = `<span class="btn btn-primary"><span>${title}</span><i class="${iconClass}"></i><i class="fa-regular fa-xmark-large"></i></span>`;
|
|
90
|
-
buttonsHolder.insertAdjacentElement('beforeend', button);
|
|
91
|
-
const mdButton = button.querySelector('.btn-primary');
|
|
92
|
-
// Make sure the menu is added to the right part of the component
|
|
93
|
-
element.setAttribute('slot', 'menus');
|
|
94
|
-
// If open we need to make sure the main mobile menu is closed, the new button has the right state and the backdrop is shown
|
|
95
|
-
if (element.classList.contains('open')) {
|
|
96
|
-
button.setAttribute('aria-expanded', true);
|
|
97
|
-
mdButton.classList.toggle('active');
|
|
98
|
-
iamNav.classList.add('open');
|
|
99
|
-
backdrop.classList.add('show');
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
element.classList.add('closed'); // closed class is added to prevent the elements being tabbed into, this causes visual issues
|
|
68
|
+
const createNavMenu = (component) => {
|
|
69
|
+
buttonsHolder.innerHTML = '';
|
|
70
|
+
component.querySelectorAll(':scope > *').forEach(function (element) {
|
|
71
|
+
const tagname = element.tagName;
|
|
72
|
+
switch (tagname) {
|
|
73
|
+
case 'BUTTON':
|
|
74
|
+
if (!element.hasAttribute('slot')) {
|
|
75
|
+
element.setAttribute('slot', 'actions');
|
|
76
|
+
menu.classList.add('has-actions');
|
|
77
|
+
}
|
|
78
|
+
break;
|
|
103
79
|
}
|
|
104
|
-
//
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
element.
|
|
109
|
-
|
|
110
|
-
//
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
80
|
+
// Create menu button
|
|
81
|
+
if (element.classList.contains('nav--menu') &&
|
|
82
|
+
element.hasAttribute('data-title') &&
|
|
83
|
+
element.hasAttribute('data-icon')) {
|
|
84
|
+
const title = element.getAttribute('data-title');
|
|
85
|
+
const iconClass = element.getAttribute('data-icon');
|
|
86
|
+
// Create the menu button that sits seperately to the menu
|
|
87
|
+
const button = document.createElement('button');
|
|
88
|
+
button.setAttribute('slot', title);
|
|
89
|
+
button.classList.add('btn-menu');
|
|
90
|
+
button.setAttribute('part', 'btn-menu');
|
|
91
|
+
button.innerHTML = `<span class="btn btn-primary"><span>${title}</span><i class="${iconClass}"></i><i class="fa-regular fa-xmark-large"></i></span>`;
|
|
92
|
+
buttonsHolder.insertAdjacentElement('beforeend', button);
|
|
93
|
+
const mdButton = button.querySelector('.btn-primary');
|
|
94
|
+
// Make sure the menu is added to the right part of the component
|
|
95
|
+
element.setAttribute('slot', 'menus');
|
|
96
|
+
// If open we need to make sure the main mobile menu is closed, the new button has the right state and the backdrop is shown
|
|
115
97
|
if (element.classList.contains('open')) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
menu.classList.add('closed');
|
|
120
|
-
}, 1000); // Delay until its close so the animation is broken
|
|
121
|
-
iamNav.classList.add('open');
|
|
98
|
+
button.setAttribute('aria-expanded', true);
|
|
99
|
+
mdButton.classList.toggle('active');
|
|
100
|
+
component.classList.add('open');
|
|
122
101
|
backdrop.classList.add('show');
|
|
123
|
-
element.classList.remove('closed');
|
|
124
102
|
}
|
|
125
103
|
else {
|
|
126
|
-
|
|
127
|
-
backdrop.classList.remove('show');
|
|
128
|
-
setTimeout(function () {
|
|
129
|
-
element.classList.add('closed');
|
|
130
|
-
}, 1000);
|
|
104
|
+
element.classList.add('closed'); // closed class is added to prevent the elements being tabbed into, this causes visual issues
|
|
131
105
|
}
|
|
132
|
-
//
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
106
|
+
// Click event
|
|
107
|
+
button.addEventListener('click', function (e) {
|
|
108
|
+
e.preventDefault();
|
|
109
|
+
button.toggleAttribute('aria-expanded');
|
|
110
|
+
console.log(element);
|
|
111
|
+
element.classList.toggle('open');
|
|
112
|
+
mdButton.classList.toggle('active');
|
|
113
|
+
// Close desktop menus
|
|
114
|
+
const openMenu = component.querySelector(':scope > details[open]');
|
|
115
|
+
if (openMenu)
|
|
116
|
+
openMenu.removeAttribute('open');
|
|
117
|
+
// Close the main menu and fix states on the button, iamNav component and backdrop
|
|
118
|
+
if (element.classList.contains('open')) {
|
|
119
|
+
menu.classList.remove('open');
|
|
120
|
+
menuButton.removeAttribute('aria-expanded');
|
|
121
|
+
setTimeout(function () {
|
|
122
|
+
menu.classList.add('closed');
|
|
123
|
+
}, 1000); // Delay until its close so the animation is broken
|
|
124
|
+
component.classList.add('open');
|
|
125
|
+
backdrop.classList.add('show');
|
|
126
|
+
element.classList.remove('closed');
|
|
136
127
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
const innerBtn = selectedButton.querySelector('.btn-primary');
|
|
144
|
-
innerBtn.classList.remove('active');
|
|
128
|
+
else {
|
|
129
|
+
component.classList.remove('open');
|
|
130
|
+
backdrop.classList.remove('show');
|
|
131
|
+
setTimeout(function () {
|
|
132
|
+
element.classList.add('closed');
|
|
133
|
+
}, 1000);
|
|
145
134
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
135
|
+
// Close any open menus
|
|
136
|
+
component.querySelectorAll('.nav--menu.open').forEach(function (openmenu) {
|
|
137
|
+
if (openmenu != element) {
|
|
138
|
+
openmenu.classList.remove('open');
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
component.shadowRoot
|
|
142
|
+
.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]')
|
|
143
|
+
.forEach(function (selectedButton) {
|
|
144
|
+
if (selectedButton != button) {
|
|
145
|
+
selectedButton.removeAttribute('aria-expanded');
|
|
146
|
+
const innerBtn = selectedButton.querySelector('.btn-primary');
|
|
147
|
+
innerBtn.classList.remove('active');
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}, false);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
component.querySelectorAll('details').forEach(function (element) {
|
|
154
|
+
element.classList.add('details--revert');
|
|
155
|
+
});
|
|
156
|
+
};
|
|
157
|
+
createNavMenu(this);
|
|
158
|
+
this.addEventListener('rebuilt', () => {
|
|
159
|
+
console.log('rebuilt nav');
|
|
160
|
+
createNavMenu(this);
|
|
152
161
|
});
|
|
153
162
|
// Has secondary link
|
|
154
163
|
if (this.querySelector('[slot="secondary"]')) {
|
|
@@ -157,7 +166,7 @@ class iamNav extends HTMLElement {
|
|
|
157
166
|
// Open and close the menu
|
|
158
167
|
menuButton.addEventListener('click', function (e) {
|
|
159
168
|
e.preventDefault();
|
|
160
|
-
menuButton.toggleAttribute('aria-expanded');
|
|
169
|
+
//menuButton.toggleAttribute('aria-expanded');
|
|
161
170
|
menu.classList.toggle('open');
|
|
162
171
|
// Close any other menus
|
|
163
172
|
iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {
|