@iamproperty/components 7.8.2--beta3 → 7.8.2--beta5
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/address-lookup.component.css +1 -1
- package/assets/css/components/address-lookup.component.css.map +1 -1
- package/assets/css/components/advanced-select.component.css +1 -1
- package/assets/css/components/advanced-select.component.css.map +1 -1
- package/assets/css/components/banner.preload.css +1 -0
- package/assets/css/components/banner.preload.css.map +1 -0
- 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/card.module.css +1 -1
- package/assets/css/components/card.module.css.map +1 -1
- package/assets/css/components/card.preload.css +1 -0
- package/assets/css/components/card.preload.css.map +1 -0
- package/assets/css/components/carousel.component.css +1 -1
- package/assets/css/components/carousel.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/config.component.css +1 -1
- package/assets/css/components/config.component.css.map +1 -1
- package/assets/css/components/content.component.css +1 -1
- package/assets/css/components/content.component.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/filter-card.component.css +1 -1
- package/assets/css/components/filter-card.component.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/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/notification.global.css +1 -1
- package/assets/css/components/notification.global.css.map +1 -1
- package/assets/css/components/pagination.css +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/record-card.component.css +1 -1
- package/assets/css/components/record-card.component.css.map +1 -1
- package/assets/css/components/search.component.css +1 -1
- package/assets/css/components/search.component.css.map +1 -1
- package/assets/css/components/skeleton.global.css +1 -1
- package/assets/css/components/skeleton.global.css.map +1 -1
- package/assets/css/components/slider.css +1 -1
- package/assets/css/components/slider.css.map +1 -1
- package/assets/css/components/split-button.component.css +1 -1
- package/assets/css/components/split-button.component.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/tabs.component.css +1 -1
- package/assets/css/components/tabs.component.css.map +1 -1
- package/assets/css/components/tag.component.css +1 -1
- package/assets/css/components/tag.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/elements/dropdown.css +1 -1
- package/assets/css/elements/dropdown.css.map +1 -1
- package/assets/css/elements/forms.css +1 -1
- package/assets/css/elements/forms.css.map +1 -1
- package/assets/css/elements/links--global.css +1 -1
- package/assets/css/elements/links--global.css.map +1 -1
- package/assets/css/elements/links.css +1 -1
- package/assets/css/elements/links.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 +4 -4
- 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 +2 -2
- 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.js +114 -125
- package/assets/js/components/card/card.component.min.js +7 -7
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.js +83 -29
- package/assets/js/components/carousel/carousel.component.min.js +16 -11
- package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
- package/assets/js/components/config/config.component.min.js +7 -7
- package/assets/js/components/config/config.component.min.js.map +1 -1
- package/assets/js/components/content/content.component.js +28 -69
- package/assets/js/components/content/content.component.min.js +4 -4
- package/assets/js/components/content/content.component.min.js.map +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 +2 -2
- package/assets/js/components/filter-card/filter-card.component.min.js +5 -5
- 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 +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 +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
- package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
- 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 +5 -5
- 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 +6 -6
- package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
- package/assets/js/components/search/search.component.js +235 -186
- package/assets/js/components/search/search.component.min.js +12 -7
- 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 +2 -2
- package/assets/js/components/split-button/split-button.component.min.js +2 -2
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +5 -5
- 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 +12 -9
- package/assets/js/components/std-nav/std-nav.component.min.js +12 -15
- 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 +5 -5
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js.map +1 -1
- 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 +4 -4
- package/assets/js/components/tag/tag.component.min.js +3 -3
- 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 +9 -9
- 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 +12 -11
- package/assets/js/modules/content.js +40 -8
- package/assets/js/modules/content.test.js +62 -12
- package/assets/js/modules/data-layer.js +7 -6
- package/assets/js/modules/dropdown.js +0 -1
- package/assets/js/modules/form.js +129 -0
- package/assets/js/modules/form.test.js +132 -0
- package/assets/js/modules/nav.js +10 -3
- package/assets/js/modules/search.js +153 -0
- package/assets/js/modules/search.test.js +125 -0
- package/assets/js/modules/tabs.test.js +64 -12
- package/assets/js/modules/test-dom.js +5 -0
- package/assets/js/modules/testimonial.test.js +44 -6
- package/assets/js/modules/videos.test.js +61 -13
- 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/sass/_components.scss +2 -63
- package/assets/sass/_utilities.scss +1 -0
- package/assets/sass/components/banner.preload.scss +26 -0
- package/assets/sass/components/card.component.scss +1 -7
- package/assets/sass/components/card.module.scss +6 -6
- package/assets/sass/components/card.preload.scss +80 -0
- package/assets/sass/components/carousel.component.scss +165 -0
- package/assets/sass/components/carousel.config.scss +90 -249
- package/assets/sass/components/content.component.scss +0 -7
- package/assets/sass/components/modal.component.scss +5 -1
- package/assets/sass/components/nav.component.scss +2 -1
- package/assets/sass/components/nav.global.scss +0 -10
- package/assets/sass/components/notification.global.scss +8 -0
- package/assets/sass/components/search.component.scss +89 -7
- package/assets/sass/components/skeleton.global.scss +4 -0
- package/assets/sass/elements/dialog.scss +43 -0
- package/assets/sass/elements/dropdown.css +2 -0
- package/assets/sass/elements/forms.scss +0 -27
- package/assets/sass/elements/links--global.scss +40 -2
- package/assets/sass/foundations/colours.scss +0 -24
- package/assets/sass/foundations/reboot.scss +4 -0
- package/assets/sass/foundations/root.scss +0 -1
- package/assets/sass/utilities/js-display.css +2 -3
- package/assets/sass/utilities/wordpress.css +7 -0
- package/assets/ts/components/card/card.component.ts +72 -62
- package/assets/ts/components/carousel/carousel.component.ts +84 -19
- package/assets/ts/components/content/content.component.ts +36 -100
- 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 +260 -184
- package/assets/ts/components/std-nav/std-nav.component.ts +20 -17
- package/assets/ts/html.d.ts +6 -0
- package/assets/ts/modules/card.module.ts +19 -11
- package/assets/ts/modules/content.test.ts +84 -12
- package/assets/ts/modules/content.ts +56 -9
- package/assets/ts/modules/data-layer.ts +7 -11
- package/assets/ts/modules/dropdown.ts +0 -2
- package/assets/ts/modules/form.test.ts +183 -0
- package/assets/ts/modules/form.ts +210 -0
- package/assets/ts/modules/nav.ts +12 -3
- package/assets/ts/modules/search.test.ts +142 -0
- package/assets/ts/modules/search.ts +206 -0
- package/assets/ts/modules/tabs.test.ts +79 -12
- package/assets/ts/modules/test-dom.ts +5 -0
- package/assets/ts/modules/testimonial.test.ts +45 -6
- package/assets/ts/modules/videos.test.ts +74 -14
- package/dist/components.es.js +25 -25
- package/dist/components.umd.js +170 -163
- package/package.json +1 -1
- package/assets/js/modules/carousel.js +0 -214
- package/assets/js/modules/carousel.test.js +0 -18
- package/assets/ts/modules/carousel.test.ts +0 -27
- package/assets/ts/modules/carousel.ts +0 -301
|
@@ -443,6 +443,11 @@ export class TestElement extends EventTarget {
|
|
|
443
443
|
return null;
|
|
444
444
|
}
|
|
445
445
|
|
|
446
|
+
contains(element) {
|
|
447
|
+
if (element === this) return true;
|
|
448
|
+
return this.children.some((child) => child.contains(element));
|
|
449
|
+
}
|
|
450
|
+
|
|
446
451
|
matches(selector) {
|
|
447
452
|
return matchesSelector(this, selector);
|
|
448
453
|
}
|
|
@@ -5,13 +5,52 @@ import testimonial from './testimonial.ts';
|
|
|
5
5
|
|
|
6
6
|
installTestDom();
|
|
7
7
|
|
|
8
|
+
const createTestimonial = (imageCount) => {
|
|
9
|
+
const component = createElement('section');
|
|
10
|
+
const images = createElement('div', { class: 'testimonial__images' });
|
|
11
|
+
const previousButton = createElement('button', { class: 'btn-prev' });
|
|
12
|
+
const nextButton = createElement('button', { class: 'btn-next' });
|
|
13
|
+
|
|
14
|
+
for (let index = 0; index < imageCount; index++) {
|
|
15
|
+
append(images, createElement('img', { alt: `Person ${index + 1}` }));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
append(component, images, previousButton, nextButton);
|
|
19
|
+
|
|
20
|
+
return { component, images, nextButton, previousButton };
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const dispatchClickFrom = (component, target) => {
|
|
24
|
+
const event = new Event('click', { bubbles: true, cancelable: true });
|
|
25
|
+
Object.defineProperty(event, 'target', { value: target });
|
|
26
|
+
component.dispatchEvent(event);
|
|
27
|
+
};
|
|
28
|
+
|
|
8
29
|
describe('Testimonial module', () => {
|
|
9
|
-
it('does not
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
30
|
+
it('does not enable carousel behaviour for a single testimonial', () => {
|
|
31
|
+
const { component } = createTestimonial(1);
|
|
32
|
+
|
|
33
|
+
const result = testimonial(component);
|
|
34
|
+
|
|
35
|
+
expect(result === false);
|
|
36
|
+
expect(!component.classList.contains('testimonial--multi'));
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('enables multi-testimonial controls and updates state after scrolling', async () => {
|
|
40
|
+
const { component, images, nextButton, previousButton } = createTestimonial(2);
|
|
41
|
+
images.scrollWidth = 400;
|
|
42
|
+
images.scrollHeight = 100;
|
|
43
|
+
nextButton.setAttribute('data-go', '2');
|
|
44
|
+
|
|
45
|
+
testimonial(component);
|
|
46
|
+
dispatchClickFrom(component, nextButton);
|
|
47
|
+
|
|
48
|
+
await new Promise((resolve) => setTimeout(resolve, 350));
|
|
14
49
|
|
|
15
|
-
expect(testimonial
|
|
50
|
+
expect(component.classList.contains('testimonial--multi'));
|
|
51
|
+
expect(images.scrollLeft === 200);
|
|
52
|
+
expect(component.getAttribute('data-show') === '2');
|
|
53
|
+
expect(previousButton.getAttribute('data-go') === '1');
|
|
54
|
+
expect(nextButton.hasAttribute('disabled'));
|
|
16
55
|
});
|
|
17
56
|
});
|
|
@@ -1,33 +1,93 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
|
|
3
1
|
import { describe, expect, it } from './test.ts';
|
|
4
2
|
import { createElement, installTestDom } from './test-dom.ts';
|
|
5
|
-
import { append } from './test-utils.ts';
|
|
6
|
-
import { createYoutTubeVideo, openVimeoVideo } from './videos.ts';
|
|
3
|
+
import { append, silenceConsole } from './test-utils.ts';
|
|
4
|
+
import { createYoutTubeVideo, loadYouTubeScripts, openVimeoVideo, videoHTML } from './videos.ts';
|
|
5
|
+
|
|
6
|
+
const { document, window } = installTestDom();
|
|
7
|
+
|
|
8
|
+
if (typeof globalThis.CustomEvent === 'undefined') {
|
|
9
|
+
globalThis.CustomEvent = class extends Event {
|
|
10
|
+
detail;
|
|
7
11
|
|
|
8
|
-
|
|
12
|
+
constructor(type, options = {}) {
|
|
13
|
+
super(type, options);
|
|
14
|
+
this.detail = options.detail;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
9
18
|
|
|
10
19
|
describe('Videos module', () => {
|
|
11
|
-
it('
|
|
20
|
+
it('provides the expected base video markup', () => {
|
|
21
|
+
expect(videoHTML.includes('<slot name="video"></slot>'));
|
|
22
|
+
expect(videoHTML.includes('fa-play'));
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('loads the YouTube iframe script once the favicon probe succeeds', async () => {
|
|
26
|
+
append(document.body, createElement('script'));
|
|
27
|
+
|
|
28
|
+
await loadYouTubeScripts();
|
|
29
|
+
|
|
30
|
+
expect(document.body.classList.contains('youtubeLoaded'));
|
|
31
|
+
expect(document.getElementsByTagName('script').length === 2);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('reuses an existing YouTube player instead of creating another one', async () => {
|
|
12
35
|
let played = false;
|
|
13
36
|
window.player = {
|
|
14
|
-
|
|
37
|
+
existing: {
|
|
15
38
|
pauseVideo: () => {},
|
|
16
39
|
playVideo: () => {
|
|
17
40
|
played = true;
|
|
18
41
|
},
|
|
19
42
|
},
|
|
20
43
|
};
|
|
44
|
+
|
|
45
|
+
const result = await createYoutTubeVideo(createElement('div'), 'existing');
|
|
46
|
+
|
|
47
|
+
expect(result === false);
|
|
48
|
+
expect(played);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('creates a YouTube player and marks the embed ready when playback starts', async () => {
|
|
52
|
+
const embed = createElement('div', { id: 'youtube-alpha' });
|
|
53
|
+
append(document.body, embed);
|
|
54
|
+
window.player = undefined;
|
|
55
|
+
globalThis.YT = {
|
|
56
|
+
PlayerState: { PLAYING: 1 },
|
|
57
|
+
Player: class {
|
|
58
|
+
constructor(id, config) {
|
|
59
|
+
this.id = id;
|
|
60
|
+
this.config = config;
|
|
61
|
+
setTimeout(() => {
|
|
62
|
+
config.events.onReady({ target: { playVideo: () => {} } });
|
|
63
|
+
config.events.onStateChange({ data: 1 });
|
|
64
|
+
}, 0);
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
await silenceConsole(() => createYoutTubeVideo(embed, 'youtube-alpha'));
|
|
70
|
+
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
71
|
+
|
|
72
|
+
expect(window.player['youtube-alpha']);
|
|
73
|
+
expect(embed.classList.contains('player-ready'));
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it('opens a Vimeo iframe and dispatches video analytics details', async () => {
|
|
21
77
|
window.dataLayer = [];
|
|
22
|
-
const
|
|
23
|
-
const
|
|
78
|
+
const component = createElement('iam-video', { dataVimeo: '12345' });
|
|
79
|
+
const embed = createElement('div', { class: 'embed' });
|
|
80
|
+
let selectedDetail;
|
|
81
|
+
component.addEventListener('play-video', (event) => {
|
|
82
|
+
selectedDetail = event.detail;
|
|
83
|
+
});
|
|
84
|
+
append(component, embed);
|
|
24
85
|
|
|
25
|
-
const component = createElement('iam-video', { dataVimeo: '98765' });
|
|
26
|
-
append(component, createElement('div', { class: 'embed' }));
|
|
27
86
|
await openVimeoVideo(component);
|
|
28
87
|
|
|
29
|
-
expect(
|
|
30
|
-
expect(
|
|
31
|
-
expect(
|
|
88
|
+
expect(embed.innerHTML.includes('https://player.vimeo.com/video/12345?autoplay=1'));
|
|
89
|
+
expect(selectedDetail['Video Type'] === 'Vimeo');
|
|
90
|
+
expect(selectedDetail.ID === '12345');
|
|
91
|
+
expect(window.dataLayer[0].ID === '12345');
|
|
32
92
|
});
|
|
33
93
|
});
|