@iamproperty/components 5.6.1-beta17 → 5.6.1-beta18
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/carousel.css +1 -1
- package/assets/css/components/carousel.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/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/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/card/card.component.min.js +1 -1
- package/assets/js/components/carousel/carousel.component.js +14 -1
- package/assets/js/components/carousel/carousel.component.min.js +5 -5
- 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/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 +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +1 -1
- package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
- package/assets/js/components/nav/nav.component.min.js +1 -1
- package/assets/js/components/notification/notification.component.min.js +1 -1
- package/assets/js/components/pagination/pagination.component.min.js +1 -1
- package/assets/js/components/search/search.component.min.js +1 -1
- package/assets/js/components/slider/slider.component.min.js +1 -1
- package/assets/js/components/table/table.component.min.js +1 -1
- package/assets/js/components/tabs/tabs.component.min.js +1 -1
- package/assets/js/dynamic.min.js +5 -5
- package/assets/js/dynamic.min.js.map +1 -1
- package/assets/js/modules/dialogs.js +6 -0
- package/assets/js/scripts.bundle.js +10 -10
- 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/carousel.scss +32 -7
- package/assets/ts/components/carousel/carousel.component.ts +17 -1
- package/assets/ts/modules/dialogs.ts +8 -0
- package/dist/components.es.js +179 -173
- package/dist/components.umd.js +34 -34
- package/package.json +1 -1
- package/src/components/Carousel/Carousel.vue +5 -1
|
@@ -130,18 +130,40 @@
|
|
|
130
130
|
|
|
131
131
|
// #region carousel controls/pips
|
|
132
132
|
.carousel .carousel__controls {
|
|
133
|
-
|
|
134
|
-
text-align: center;
|
|
135
|
-
width: 10rem;
|
|
136
|
-
max-height: 1rem;
|
|
137
133
|
overflow: hidden;
|
|
138
134
|
margin-inline: auto;
|
|
139
135
|
|
|
136
|
+
&:not(.thumbnails){
|
|
137
|
+
max-height: 1rem;
|
|
138
|
+
width: 10rem;
|
|
139
|
+
text-align: center;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
&.thumbnails {
|
|
143
|
+
margin-block-start: 2rem;
|
|
144
|
+
}
|
|
145
|
+
|
|
140
146
|
@include media-breakpoint-up(sm) {
|
|
141
147
|
width: 100%;
|
|
142
148
|
}
|
|
143
149
|
|
|
144
150
|
button {
|
|
151
|
+
padding: 0;
|
|
152
|
+
margin: 0 0.2rem 0.2rem;
|
|
153
|
+
border: 3px solid var(--colour-canvas);
|
|
154
|
+
border-radius: 4px;
|
|
155
|
+
|
|
156
|
+
&.has-thumbnail {
|
|
157
|
+
height: 4.625rem;
|
|
158
|
+
|
|
159
|
+
img {
|
|
160
|
+
height: 100%;
|
|
161
|
+
width: auto;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
button:not(.has-thumbnail) {
|
|
145
167
|
width: 1rem;
|
|
146
168
|
height: 1rem;
|
|
147
169
|
min-height: 1rem;
|
|
@@ -149,10 +171,9 @@
|
|
|
149
171
|
text-indent: -50rem;
|
|
150
172
|
overflow: hidden;
|
|
151
173
|
background: var(--colour-primary-theme);
|
|
152
|
-
padding: 0;
|
|
153
174
|
margin: 0 0.5rem 0.5rem 0.5rem;
|
|
154
175
|
border: none;
|
|
155
|
-
|
|
176
|
+
|
|
156
177
|
&:before {
|
|
157
178
|
display: none;
|
|
158
179
|
}
|
|
@@ -164,8 +185,12 @@
|
|
|
164
185
|
}
|
|
165
186
|
|
|
166
187
|
.carousel__controls > button[aria-current] {
|
|
188
|
+
--colour-active-thumbnail: var(--colour-info);
|
|
189
|
+
border-color: var(--colour-active-thumbnail);
|
|
167
190
|
|
|
168
|
-
|
|
191
|
+
&:not(.has-thumbnail) {
|
|
192
|
+
background: var(--colour-success);
|
|
193
|
+
}
|
|
169
194
|
}
|
|
170
195
|
|
|
171
196
|
// #endregion
|
|
@@ -49,6 +49,8 @@ class iamCarousel extends HTMLElement {
|
|
|
49
49
|
|
|
50
50
|
const carouselElement = this.shadowRoot.querySelector('.carousel');
|
|
51
51
|
const row = this.querySelector('.row');
|
|
52
|
+
const thumbnailImages = JSON.parse(this.dataset.thumbnails);
|
|
53
|
+
|
|
52
54
|
const carouselControls = this.shadowRoot.querySelector('.carousel__controls');
|
|
53
55
|
|
|
54
56
|
let itemCount = this.querySelectorAll(':scope > .row > .col').length
|
|
@@ -61,10 +63,24 @@ class iamCarousel extends HTMLElement {
|
|
|
61
63
|
if(this.classList.contains('hide-controls'))
|
|
62
64
|
carouselElement.classList.add('hide-controls');
|
|
63
65
|
|
|
66
|
+
if (thumbnailImages?.length) {
|
|
67
|
+
carouselControls.classList.add('thumbnails');
|
|
68
|
+
}
|
|
69
|
+
|
|
64
70
|
// populate the pips
|
|
65
71
|
let pips = "";
|
|
66
72
|
for (let i = 1; i <= itemCount; i++) {
|
|
67
|
-
|
|
73
|
+
let pipContent = null;
|
|
74
|
+
let pipClass = '';
|
|
75
|
+
|
|
76
|
+
if (thumbnailImages.length) {
|
|
77
|
+
pipClass = 'has-thumbnail';
|
|
78
|
+
pipContent = `<img src="${thumbnailImages[i - 1].src}" alt="Slide ${i}" height="148"/>`;
|
|
79
|
+
} else {
|
|
80
|
+
pipContent = `Slide ${i}`;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
pips += `<button class="control-${i} ${pipClass}" data-slide="${i}" ${i == 1 ? "aria-current":""}>${pipContent}</button>`;
|
|
68
84
|
}
|
|
69
85
|
carouselControls.innerHTML = pips;
|
|
70
86
|
|
|
@@ -72,6 +72,14 @@ const extendDialogs = (body) => {
|
|
|
72
72
|
btnElement.classList.remove('active');
|
|
73
73
|
});
|
|
74
74
|
|
|
75
|
+
let closeEvent = new CustomEvent('dialog-closed', {
|
|
76
|
+
bubbles: true,
|
|
77
|
+
cancelable: true,
|
|
78
|
+
detail: { modalId: dialog.id }
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
event.target.dispatchEvent(closeEvent);
|
|
82
|
+
|
|
75
83
|
window.dataLayer = window.dataLayer || [];
|
|
76
84
|
window.dataLayer.push({
|
|
77
85
|
"event": "closeModal",
|