@iamproperty/components 4.1.1-beta-7 → 5.1.0-beta
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/collapsible-side.css +1 -1
- package/assets/css/components/collapsible-side.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/header.css +1 -1
- package/assets/css/components/header.css.map +1 -1
- 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 → nav.global.css.map} +1 -1
- package/assets/css/components/notification.global.css +1 -0
- package/assets/css/components/notification.global.css.map +1 -0
- package/assets/css/components/slider.css +1 -0
- package/assets/css/components/slider.css.map +1 -0
- package/assets/css/components/stepper.css +1 -1
- package/assets/css/components/stepper.css.map +1 -1
- package/assets/css/components/table.css +1 -1
- package/assets/css/components/table.css.map +1 -1
- package/assets/css/components/table.global.css +1 -1
- package/assets/css/components/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/favicons/manifest.json +1 -1
- package/assets/fonts/qanelas-semibold-webfont.woff +0 -0
- package/assets/fonts/qanelas-semibold-webfont.woff2 +0 -0
- 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/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 +6 -0
- package/assets/js/components/actionbar/actionbar.component.min.js +6 -5
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.js +1 -1
- 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/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/card/card.component.js +4 -0
- package/assets/js/components/card/card.component.min.js +4 -3
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/collapsible-side/collapsible-side.component.js +2 -0
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -4
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
- package/assets/js/components/fileupload/fileupload.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 +2 -2
- package/assets/js/components/nav/nav.component.js +22 -15
- package/assets/js/components/nav/nav.component.min.js +6 -5
- 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 +1 -1
- 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 +5 -5
- 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.min.js +5 -5
- package/assets/js/dynamic.min.js.map +1 -1
- package/assets/js/modules/carousel.js +5 -5
- package/assets/js/modules/dialogs.js +4 -4
- package/assets/js/modules/helpers.js +1 -1
- package/assets/js/modules/inputs.js +44 -3
- package/assets/js/modules/table.js +3 -1
- package/assets/js/modules/tabs.js +29 -31
- package/assets/js/scripts.bundle.js +22 -21
- 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 -90
- package/assets/sass/_elements.scss +15 -15
- package/assets/sass/_fonts.scss +9 -1
- 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 +21 -0
- package/assets/sass/components/collapsible-side.scss +18 -16
- package/assets/sass/components/component.native.scss +37 -0
- package/assets/sass/components/component.reset.scss +1 -3
- package/assets/sass/components/header.scss +6 -1
- package/assets/sass/components/{nav-global.scss → nav.global.scss} +6 -5
- package/assets/sass/components/nav.scss +4 -4
- package/assets/sass/components/notification.global.scss +41 -0
- package/assets/sass/components/slider.scss +121 -0
- package/assets/sass/components/stepper.scss +1 -1
- package/assets/sass/components/table.global.scss +618 -65
- package/assets/sass/components/table.scss +1 -1
- package/assets/sass/components/tabs.scss +2 -5
- package/assets/sass/core.scss +1 -3
- package/assets/sass/{components → elements}/admin-panel.scss +5 -1
- package/assets/sass/{foundations → elements}/buttons.scss +1 -1
- package/assets/sass/{components → elements}/container.scss +17 -0
- package/assets/sass/{components → elements}/dialog.scss +2 -7
- package/assets/sass/{components → elements}/forms.scss +142 -14
- package/assets/sass/elements/table.element.scss +102 -0
- package/assets/sass/{foundations → elements}/type.scss +7 -5
- package/assets/sass/error.scss +1 -1
- package/assets/sass/foundations/reboot.scss +48 -0
- package/assets/sass/foundations/root.scss +6 -0
- package/assets/sass/main.scss +0 -2
- 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 +8 -0
- package/assets/ts/components/address-lookup/address-lookup.component.ts +1 -1
- package/assets/ts/components/card/card.component.ts +5 -0
- package/assets/ts/components/collapsible-side/collapsible-side.component.ts +3 -1
- package/assets/ts/components/nav/nav.component.ts +26 -15
- package/assets/ts/components/notification/notification.component.ts +4 -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/modules/carousel.ts +5 -5
- package/assets/ts/modules/dialogs.ts +5 -5
- package/assets/ts/modules/helpers.ts +1 -1
- package/assets/ts/modules/inputs.ts +61 -4
- package/assets/ts/modules/table.ts +5 -3
- package/assets/ts/modules/tabs.ts +38 -41
- package/assets/ts/tests/slider.spec.ts +33 -0
- package/dist/components.es.js +974 -1415
- package/dist/components.umd.js +294 -133
- 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/Header/Header.vue +9 -3
- package/src/components/Nav/Nav.vue +1 -1
- package/src/components/Slider/README.md +11 -0
- package/src/components/Slider/Slider.vue +25 -0
- package/src/components/Stepper/Step.vue +1 -1
- 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/admin-panel.css +0 -1
- package/assets/css/components/admin-panel.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/container.css +0 -1
- package/assets/css/components/container.css.map +0 -1
- package/assets/css/components/dialog.css +0 -1
- package/assets/css/components/dialog.css.map +0 -1
- package/assets/css/components/forms.css +0 -1
- package/assets/css/components/forms.css.map +0 -1
- package/assets/css/components/lists.css +0 -1
- package/assets/css/components/lists.css.map +0 -1
- package/assets/css/components/nav-global.css +0 -1
- package/assets/css/components/table.extras.css +0 -1
- package/assets/css/components/table.extras.css.map +0 -1
- package/assets/css/components/tooltips.css +0 -1
- package/assets/css/components/tooltips.css.map +0 -1
- package/assets/sass/_forms.scss +0 -10
- package/assets/sass/components/table.extras.scss +0 -650
- package/assets/sass/foundations/circles.scss +0 -75
- /package/assets/sass/{foundations → elements}/brand.scss +0 -0
- /package/assets/sass/{foundations → elements}/icons.scss +0 -0
- /package/assets/sass/{foundations → elements}/links.scss +0 -0
- /package/assets/sass/{components → elements}/lists.scss +0 -0
- /package/assets/sass/{foundations → elements}/media.scss +0 -0
- /package/assets/sass/{components → elements}/tooltips.scss +0 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export const createTabsLinks = function(tabsElement: Element) {
|
|
3
3
|
|
|
4
4
|
const details = tabsElement.querySelectorAll(':scope > details');
|
|
5
|
+
const detailsORLinks = tabsElement.querySelectorAll(':scope > details, :scope > a');
|
|
5
6
|
let summaries = tabsElement.querySelectorAll(':scope > details > summary');
|
|
6
7
|
let tabLinks = tabsElement.querySelector(':scope > .tabs__links');
|
|
7
8
|
|
|
@@ -20,33 +21,41 @@ export const createTabsLinks = function(tabsElement: Element) {
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
// Create the tab buttons from the summary titles
|
|
23
|
-
|
|
24
|
+
let tabindex = 0;
|
|
25
|
+
detailsORLinks.forEach((element, index) => {
|
|
26
|
+
|
|
27
|
+
let button = document.createElement('button');
|
|
24
28
|
|
|
25
|
-
|
|
26
|
-
let isDisabled = summary.classList.contains('disabled')
|
|
29
|
+
if(element.matches('details')){
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
let button = document.createElement('button');
|
|
31
|
+
let summary = element.querySelector(':scope > summary');
|
|
32
|
+
let isDisabled = summary.classList.contains('disabled')
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
summary.classList.add('visually-hidden');
|
|
35
|
+
|
|
36
|
+
if (element.hasAttribute('id'))
|
|
37
|
+
button.setAttribute('data-id',`${element.getAttribute('id')}`);
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
if (element.hasAttribute('open')) {
|
|
40
|
+
button.setAttribute('aria-pressed',true);
|
|
41
|
+
}
|
|
42
|
+
button.innerHTML = `${summary.innerText}`;
|
|
43
|
+
button.classList.add('link');
|
|
44
|
+
button.setAttribute('data-index',tabindex);
|
|
45
|
+
element.setAttribute('tabindex','-1');
|
|
46
|
+
|
|
47
|
+
if (isDisabled) {
|
|
48
|
+
button.classList.add('disabled')
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
tabindex++;
|
|
39
52
|
}
|
|
40
|
-
|
|
41
|
-
button.innerHTML = `${summary.innerText}`;
|
|
42
|
-
button.classList.add('link');
|
|
43
|
-
button.setAttribute('data-index',index);
|
|
44
|
-
button.setAttribute('tabindex','-1');
|
|
53
|
+
else if(element.matches('a')){
|
|
45
54
|
|
|
46
|
-
|
|
47
|
-
button.classList.add('disabled')
|
|
55
|
+
button = element;
|
|
48
56
|
}
|
|
49
57
|
|
|
58
|
+
button.classList.add('link');
|
|
50
59
|
tabLinks.appendChild(button);
|
|
51
60
|
});
|
|
52
61
|
|
|
@@ -56,10 +65,10 @@ export const setTabsEventHandlers = function(tabsElement: Element){
|
|
|
56
65
|
|
|
57
66
|
let details = tabsElement.querySelectorAll(':scope > details');
|
|
58
67
|
let summaries = tabsElement.querySelectorAll(':scope > details > summary');
|
|
59
|
-
let buttons = tabsElement.querySelectorAll(':scope .tabs__links >
|
|
68
|
+
let buttons = tabsElement.querySelectorAll(':scope .tabs__links > button');
|
|
60
69
|
|
|
61
70
|
if(tabsElement.shadowRoot)
|
|
62
|
-
buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links >
|
|
71
|
+
buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');
|
|
63
72
|
|
|
64
73
|
// Set the on click for the tab buttons, these will open the details box it matches too
|
|
65
74
|
buttons.forEach((button) => {
|
|
@@ -83,9 +92,6 @@ export const setTabsEventHandlers = function(tabsElement: Element){
|
|
|
83
92
|
else
|
|
84
93
|
detail.removeAttribute('open')
|
|
85
94
|
});
|
|
86
|
-
|
|
87
|
-
if(button.hasAttribute('href'))
|
|
88
|
-
history.pushState(undefined, undefined, button.getAttribute('href'));
|
|
89
95
|
|
|
90
96
|
// Data layer Open Event
|
|
91
97
|
window.dataLayer = window.dataLayer || [];
|
|
@@ -99,18 +105,8 @@ export const setTabsEventHandlers = function(tabsElement: Element){
|
|
|
99
105
|
|
|
100
106
|
// Make sure we dont loose existing summary functionality
|
|
101
107
|
summaries.forEach((summary, index) => {
|
|
102
|
-
|
|
103
|
-
// Maintain the focus on the summary element but visually highlight the tab button
|
|
104
|
-
summary.addEventListener("focus", (e) => {
|
|
105
|
-
buttons.forEach((button) => {
|
|
106
|
-
|
|
107
|
-
button.classList.remove('focus');
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
buttons[index].classList.add('focus');
|
|
111
|
-
});
|
|
112
|
-
|
|
113
108
|
summary.addEventListener("click", (e) => {
|
|
109
|
+
|
|
114
110
|
e.preventDefault();
|
|
115
111
|
buttons[index].click();
|
|
116
112
|
});
|
|
@@ -120,15 +116,16 @@ export const setTabsEventHandlers = function(tabsElement: Element){
|
|
|
120
116
|
|
|
121
117
|
export const openFirstTab = function(tabsElement: Element){
|
|
122
118
|
|
|
119
|
+
if(!tabsElement.querySelector(':scope > details'))
|
|
120
|
+
return false;
|
|
121
|
+
|
|
123
122
|
let details = tabsElement.querySelectorAll(':scope > details');
|
|
124
|
-
let buttons = tabsElement.querySelectorAll('
|
|
123
|
+
let buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');
|
|
125
124
|
|
|
126
|
-
if(tabsElement.shadowRoot)
|
|
127
|
-
buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button, .tabs__links > a');
|
|
128
125
|
|
|
129
|
-
if(location.hash && tabsElement.querySelector(`.tabs__links [
|
|
130
|
-
|
|
131
|
-
tabsElement.querySelector(`[
|
|
126
|
+
if(location.hash && tabsElement.shadowRoot.querySelector(`.tabs__links [data-id="${location.hash.replace('#','')}"]`)){
|
|
127
|
+
|
|
128
|
+
tabsElement.shadowRoot.querySelector(`[data-id="${location.hash.replace('#','')}"]`).setAttribute('aria-pressed',true);
|
|
132
129
|
tabsElement.querySelector(`details[id="${location.hash.replace('#','')}"]`).setAttribute('open',true);
|
|
133
130
|
}
|
|
134
131
|
else if(!tabsElement.querySelector(`details[open]`)) {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import '@testing-library/jest-dom'
|
|
3
|
+
import * as tableModule from "../modules/table";
|
|
4
|
+
import puppeteer from 'puppeteer';
|
|
5
|
+
import "expect-puppeteer";
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
import iamSlider from "../components/slider/slider.component";
|
|
9
|
+
|
|
10
|
+
describe('The slider component', () => {
|
|
11
|
+
|
|
12
|
+
if (!window.customElements.get(`iam-slider`))
|
|
13
|
+
window.customElements.define(`iam-slider`, iamSlider);
|
|
14
|
+
|
|
15
|
+
test('should always show the minimum and maximum values that it can be set', () => {
|
|
16
|
+
|
|
17
|
+
document.body.innerHTML = `<label>Input field label <iam-slider><input type="number" name="percent" min="0" max="100" value="15" step="1" /></iam-slider></label>`;
|
|
18
|
+
let component = document.querySelector('iam-slider');
|
|
19
|
+
|
|
20
|
+
expect(component.shadowRoot.innerHTML).toContain('<div class="col min pe-2">0</div>')
|
|
21
|
+
expect(component.shadowRoot.innerHTML).toContain('<div class="col max ps-2">100</div>')
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
test('should always have a secondary way of inputing the value i.e. a number input field', () => {
|
|
25
|
+
|
|
26
|
+
document.body.innerHTML = `<label>Input field label <iam-slider><input type="number" name="percent" min="0" max="100" value="15" step="1" /></iam-slider></label>`;
|
|
27
|
+
let component = document.querySelector('iam-slider');
|
|
28
|
+
|
|
29
|
+
expect(component.querySelectorAll('input[type="number"]').length).toEqual(1)
|
|
30
|
+
expect(component.shadowRoot.querySelectorAll('input[type="range"]').length).toEqual(1)
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
});
|