@universityofmaryland/web-elements-library 1.6.17 → 1.7.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/README.md +1 -1
- package/dist/atomic/animations/brand/card-stack.js +2 -3
- package/dist/atomic/animations/brand/card-stack.js.map +1 -1
- package/dist/atomic/animations/brand/chevron-flow.d.ts +1 -7
- package/dist/atomic/animations/brand/chevron-flow.d.ts.map +1 -1
- package/dist/atomic/animations/brand/chevron-flow.js +82 -159
- package/dist/atomic/animations/brand/chevron-flow.js.map +1 -1
- package/dist/atomic/animations/brand/chevron-scroll.d.ts +1 -4
- package/dist/atomic/animations/brand/chevron-scroll.d.ts.map +1 -1
- package/dist/atomic/animations/brand/chevron-scroll.js +89 -143
- package/dist/atomic/animations/brand/chevron-scroll.js.map +1 -1
- package/dist/atomic/assets/image/caption.d.ts +9 -0
- package/dist/atomic/assets/image/caption.d.ts.map +1 -0
- package/dist/atomic/assets/image/caption.js +166 -0
- package/dist/atomic/assets/image/caption.js.map +1 -0
- package/dist/atomic/assets/image/gif.d.ts.map +1 -1
- package/dist/atomic/assets/image/gif.js +6 -1
- package/dist/atomic/assets/image/gif.js.map +1 -1
- package/dist/atomic/assets/image/index.d.ts +1 -0
- package/dist/atomic/assets/image/index.d.ts.map +1 -1
- package/dist/atomic/assets/image/index.js +2 -0
- package/dist/atomic/assets/image/index.js.map +1 -1
- package/dist/atomic/assets/video/toggle.d.ts.map +1 -1
- package/dist/atomic/assets/video/toggle.js +9 -2
- package/dist/atomic/assets/video/toggle.js.map +1 -1
- package/dist/atomic/buttons/fullscreen.d.ts +1 -0
- package/dist/atomic/buttons/fullscreen.d.ts.map +1 -1
- package/dist/atomic/buttons/fullscreen.js +35 -3
- package/dist/atomic/buttons/fullscreen.js.map +1 -1
- package/dist/atomic/layout/overlay/modal.d.ts +1 -10
- package/dist/atomic/layout/overlay/modal.d.ts.map +1 -1
- package/dist/atomic/layout/overlay/modal.js +28 -44
- package/dist/atomic/layout/overlay/modal.js.map +1 -1
- package/dist/atomic/layout/person/columns.js +2 -3
- package/dist/atomic/layout/person/columns.js.map +1 -1
- package/dist/atomic/text-lockup/date.d.ts +1 -4
- package/dist/atomic/text-lockup/date.d.ts.map +1 -1
- package/dist/atomic/text-lockup/date.js +42 -75
- package/dist/atomic/text-lockup/date.js.map +1 -1
- package/dist/composite/accordion/item.d.ts +3 -16
- package/dist/composite/accordion/item.d.ts.map +1 -1
- package/dist/composite/accordion/item.js +152 -245
- package/dist/composite/accordion/item.js.map +1 -1
- package/dist/composite/card/block.js +2 -3
- package/dist/composite/card/block.js.map +1 -1
- package/dist/composite/card/event-time.js +2 -3
- package/dist/composite/card/event-time.js.map +1 -1
- package/dist/composite/card/list.js +2 -3
- package/dist/composite/card/list.js.map +1 -1
- package/dist/composite/card/overlay/color.js +3 -3
- package/dist/composite/card/overlay/icon.js +3 -3
- package/dist/composite/card/overlay/image.d.ts.map +1 -1
- package/dist/composite/card/overlay/image.js +9 -12
- package/dist/composite/card/overlay/image.js.map +1 -1
- package/dist/composite/card/video/block.js +4 -3
- package/dist/composite/card/video/block.js.map +1 -1
- package/dist/composite/carousel/cards/index.d.ts +1 -8
- package/dist/composite/carousel/cards/index.d.ts.map +1 -1
- package/dist/composite/carousel/cards/index.js +163 -282
- package/dist/composite/carousel/cards/index.js.map +1 -1
- package/dist/composite/carousel/default/index.d.ts +9 -15
- package/dist/composite/carousel/default/index.d.ts.map +1 -1
- package/dist/composite/carousel/default/index.js +78 -129
- package/dist/composite/carousel/default/index.js.map +1 -1
- package/dist/composite/carousel/elements/equal-width-items.d.ts +37 -0
- package/dist/composite/carousel/elements/equal-width-items.d.ts.map +1 -0
- package/dist/composite/carousel/elements/{blocks.js → equal-width-items.js} +157 -227
- package/dist/composite/carousel/elements/equal-width-items.js.map +1 -0
- package/dist/composite/carousel/elements/full-screen.d.ts +3 -2
- package/dist/composite/carousel/elements/full-screen.d.ts.map +1 -1
- package/dist/composite/carousel/elements/full-screen.js +34 -41
- package/dist/composite/carousel/elements/full-screen.js.map +1 -1
- package/dist/composite/carousel/elements/image.d.ts +15 -2
- package/dist/composite/carousel/elements/image.d.ts.map +1 -1
- package/dist/composite/carousel/elements/image.js +176 -151
- package/dist/composite/carousel/elements/image.js.map +1 -1
- package/dist/composite/carousel/elements/index.d.ts +4 -1
- package/dist/composite/carousel/elements/index.d.ts.map +1 -1
- package/dist/composite/carousel/elements/indicator-wrapper.d.ts +13 -0
- package/dist/composite/carousel/elements/indicator-wrapper.d.ts.map +1 -0
- package/dist/composite/carousel/elements/indicator-wrapper.js +67 -0
- package/dist/composite/carousel/elements/indicator-wrapper.js.map +1 -0
- package/dist/composite/carousel/elements/nav-button.d.ts +82 -0
- package/dist/composite/carousel/elements/nav-button.d.ts.map +1 -0
- package/dist/composite/carousel/elements/nav-button.js +164 -0
- package/dist/composite/carousel/elements/nav-button.js.map +1 -0
- package/dist/composite/carousel/elements/overlay.d.ts +3 -2
- package/dist/composite/carousel/elements/overlay.d.ts.map +1 -1
- package/dist/composite/carousel/elements/overlay.js +85 -55
- package/dist/composite/carousel/elements/overlay.js.map +1 -1
- package/dist/composite/carousel/image/multiple.d.ts +2 -7
- package/dist/composite/carousel/image/multiple.d.ts.map +1 -1
- package/dist/composite/carousel/image/multiple.js +85 -150
- package/dist/composite/carousel/image/multiple.js.map +1 -1
- package/dist/composite/carousel/image/standard.d.ts +2 -7
- package/dist/composite/carousel/image/standard.d.ts.map +1 -1
- package/dist/composite/carousel/image/standard.js +148 -262
- package/dist/composite/carousel/image/standard.js.map +1 -1
- package/dist/composite/carousel/thumbnail/index.d.ts +1 -8
- package/dist/composite/carousel/thumbnail/index.d.ts.map +1 -1
- package/dist/composite/carousel/thumbnail/index.js +72 -113
- package/dist/composite/carousel/thumbnail/index.js.map +1 -1
- package/dist/composite/carousel/wide/container.d.ts +21 -20
- package/dist/composite/carousel/wide/container.d.ts.map +1 -1
- package/dist/composite/carousel/wide/container.js +37 -12
- package/dist/composite/carousel/wide/container.js.map +1 -1
- package/dist/composite/carousel/wide/controls.d.ts +5 -10
- package/dist/composite/carousel/wide/controls.d.ts.map +1 -1
- package/dist/composite/carousel/wide/controls.js +24 -94
- package/dist/composite/carousel/wide/controls.js.map +1 -1
- package/dist/composite/carousel/wide/frames.d.ts +18 -10
- package/dist/composite/carousel/wide/frames.d.ts.map +1 -1
- package/dist/composite/carousel/wide/frames.js +60 -78
- package/dist/composite/carousel/wide/frames.js.map +1 -1
- package/dist/composite/carousel/wide/index.d.ts.map +1 -1
- package/dist/composite/carousel/wide/index.js +11 -19
- package/dist/composite/carousel/wide/index.js.map +1 -1
- package/dist/composite/hero/custom/expand.js +3 -4
- package/dist/composite/hero/custom/expand.js.map +1 -1
- package/dist/composite/hero/custom/grid.js +2 -3
- package/dist/composite/hero/custom/grid.js.map +1 -1
- package/dist/composite/hero/custom/video-arrow.js +4 -3
- package/dist/composite/hero/custom/video-arrow.js.map +1 -1
- package/dist/composite/hero/logo.js +3 -3
- package/dist/composite/hero/minimal.js +3 -3
- package/dist/composite/hero/overlay.js +5 -4
- package/dist/composite/hero/overlay.js.map +1 -1
- package/dist/composite/hero/stacked.js +3 -3
- package/dist/composite/hero/standard.js +4 -3
- package/dist/composite/hero/standard.js.map +1 -1
- package/dist/composite/layout/box/logo.d.ts +1 -4
- package/dist/composite/layout/box/logo.d.ts.map +1 -1
- package/dist/composite/layout/box/logo.js +55 -103
- package/dist/composite/layout/box/logo.js.map +1 -1
- package/dist/composite/layout/image/expand.d.ts +1 -4
- package/dist/composite/layout/image/expand.d.ts.map +1 -1
- package/dist/composite/layout/image/expand.js +136 -243
- package/dist/composite/layout/image/expand.js.map +1 -1
- package/dist/composite/layout/scroll-top/index.d.ts +1 -7
- package/dist/composite/layout/scroll-top/index.d.ts.map +1 -1
- package/dist/composite/layout/scroll-top/index.js +65 -77
- package/dist/composite/layout/scroll-top/index.js.map +1 -1
- package/dist/composite/layout/sticky-columns/index.d.ts +2 -2
- package/dist/composite/layout/sticky-columns/index.d.ts.map +1 -1
- package/dist/composite/layout/sticky-columns/index.js +42 -70
- package/dist/composite/layout/sticky-columns/index.js.map +1 -1
- package/dist/composite/media/elements/gif.js +3 -3
- package/dist/composite/media/inline/caption.d.ts +4 -2
- package/dist/composite/media/inline/caption.d.ts.map +1 -1
- package/dist/composite/media/inline/caption.js +56 -67
- package/dist/composite/media/inline/caption.js.map +1 -1
- package/dist/composite/media/inline/index.d.ts +9 -8
- package/dist/composite/media/inline/index.d.ts.map +1 -1
- package/dist/composite/media/inline/standard.d.ts +1 -4
- package/dist/composite/media/inline/standard.d.ts.map +1 -1
- package/dist/composite/media/inline/standard.js +16 -24
- package/dist/composite/media/inline/standard.js.map +1 -1
- package/dist/composite/media/inline/wrapped.d.ts +4 -2
- package/dist/composite/media/inline/wrapped.d.ts.map +1 -1
- package/dist/composite/media/inline/wrapped.js +80 -83
- package/dist/composite/media/inline/wrapped.js.map +1 -1
- package/dist/composite/navigation/utility/alert.js +3 -4
- package/dist/composite/navigation/utility/alert.js.map +1 -1
- package/dist/composite/pathway/_common.js +4 -3
- package/dist/composite/pathway/_common.js.map +1 -1
- package/dist/composite/pathway/hero.js +3 -3
- package/dist/composite/person/bio/full.js +3 -3
- package/dist/composite/person/bio/small.js +2 -3
- package/dist/composite/person/bio/small.js.map +1 -1
- package/dist/composite/person/block.js +2 -3
- package/dist/composite/person/block.js.map +1 -1
- package/dist/composite/person/hero.js +3 -3
- package/dist/composite/person/list.js +2 -3
- package/dist/composite/person/list.js.map +1 -1
- package/dist/composite/person/tabular.js +2 -3
- package/dist/composite/person/tabular.js.map +1 -1
- package/dist/composite/slider/events.d.ts +6 -12
- package/dist/composite/slider/events.d.ts.map +1 -1
- package/dist/composite/slider/events.js +304 -428
- package/dist/composite/slider/events.js.map +1 -1
- package/dist/layout/image.d.ts +5 -10
- package/dist/layout/image.d.ts.map +1 -1
- package/dist/layout/image.js +27 -88
- package/dist/layout/image.js.map +1 -1
- package/dist/layout/index.d.ts +1 -1
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout.js +2 -2
- package/package.json +6 -6
- package/dist/composite/carousel/elements/blocks.d.ts +0 -42
- package/dist/composite/carousel/elements/blocks.d.ts.map +0 -1
- package/dist/composite/carousel/elements/blocks.js.map +0 -1
- package/dist/composite/carousel/wide/_elementModel.d.ts +0 -18
- package/dist/composite/carousel/wide/_elementModel.d.ts.map +0 -1
- package/dist/composite/carousel/wide/_elementModel.js +0 -29
- package/dist/composite/carousel/wide/_elementModel.js.map +0 -1
|
@@ -1,70 +1,14 @@
|
|
|
1
1
|
import * as token from "@universityofmaryland/web-token-library";
|
|
2
|
-
import
|
|
2
|
+
import { ElementBuilder } from "@universityofmaryland/web-builder-library";
|
|
3
3
|
import { debounce } from "@universityofmaryland/web-utilities-library/performance";
|
|
4
4
|
import { setupSwipeDetection } from "@universityofmaryland/web-utilities-library/events";
|
|
5
5
|
import { parsePixelValue } from "@universityofmaryland/web-utilities-library/styles";
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import { CreateButton, ButtonVisibility } from "./nav-button.js";
|
|
7
|
+
import { createCaption } from "../../../atomic/assets/image/caption.js";
|
|
8
|
+
import { fullscreen } from "../../../atomic/buttons/fullscreen.js";
|
|
9
9
|
const ANIMATION_DURATION = 750;
|
|
10
10
|
const HINT_MULTIPLER_MOBILE_SIZING = 0.2;
|
|
11
11
|
const HINT_MULTIPLER_SIZING = 0.6;
|
|
12
|
-
const IS_SINGLE_BLOCK = `[${ATTRIBUTE_SINGLE_BLOCK}]`;
|
|
13
|
-
const ELEMENT_NAME = "umd-element-animation-carousel-block";
|
|
14
|
-
const ELEMENT_ANIMATION_CAROUSEL_DECLARATION = "animation-carousel-block-declaration";
|
|
15
|
-
const ELEMENT_ANIMATION_CAROUSEL_CONTAINER = "animation-carousel-block-container";
|
|
16
|
-
const ELEMENT_ANIMATION_CAROUSEL_WRAPPER = "animation-carousel-block-wrapper";
|
|
17
|
-
const ELEMENT_ANIMATION_CAROUSEL_BUTTON = `animation-carousel-block-button`;
|
|
18
|
-
const ELEMENT_ANIMATION_CAROUSEL_NEXT = `animation-carousel-block-button-next`;
|
|
19
|
-
const ELEMENT_ANIMATION_CAROUSEL_PREVIOUS = `animation-carousel-block-button-previous`;
|
|
20
|
-
const OVERWRITE_SINGLE_BLOCK_CONTAINER = `.${ELEMENT_ANIMATION_CAROUSEL_CONTAINER}${IS_SINGLE_BLOCK}`;
|
|
21
|
-
const ButtonStyles = `
|
|
22
|
-
.${ELEMENT_ANIMATION_CAROUSEL_BUTTON} {
|
|
23
|
-
background-color: ${token.color.red};
|
|
24
|
-
padding: 10px ${token.spacing.xs};
|
|
25
|
-
position: absolute;
|
|
26
|
-
z-index: 9999;
|
|
27
|
-
display: flex;
|
|
28
|
-
justify-content: center;
|
|
29
|
-
align-items: center;
|
|
30
|
-
cursor: pointer;
|
|
31
|
-
display: none;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.${ELEMENT_ANIMATION_CAROUSEL_BUTTON}:disabled {
|
|
35
|
-
opacity: 0.5;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.${ELEMENT_ANIMATION_CAROUSEL_BUTTON} svg {
|
|
39
|
-
width: 20px;
|
|
40
|
-
height: 20px;
|
|
41
|
-
fill: ${token.color.white};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.${ELEMENT_ANIMATION_CAROUSEL_PREVIOUS} svg {
|
|
45
|
-
transform: rotate(180deg);
|
|
46
|
-
}
|
|
47
|
-
`;
|
|
48
|
-
const ContainerStyles = `
|
|
49
|
-
.${ELEMENT_ANIMATION_CAROUSEL_CONTAINER} {
|
|
50
|
-
position: relative;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.${ELEMENT_ANIMATION_CAROUSEL_WRAPPER} {
|
|
54
|
-
overflow: hidden;
|
|
55
|
-
padding-right: 0;
|
|
56
|
-
width: 100%;
|
|
57
|
-
}
|
|
58
|
-
`;
|
|
59
|
-
const STYLES_CAROUSEL_CARDS_ELEMENT = `
|
|
60
|
-
.${ELEMENT_ANIMATION_CAROUSEL_DECLARATION} {
|
|
61
|
-
container: ${ELEMENT_NAME} / inline-size;
|
|
62
|
-
width: 100%;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
${ContainerStyles}
|
|
66
|
-
${ButtonStyles}
|
|
67
|
-
`;
|
|
68
12
|
const EventScrollCarousel = (props) => {
|
|
69
13
|
const {
|
|
70
14
|
GetElements,
|
|
@@ -81,27 +25,30 @@ const EventScrollCarousel = (props) => {
|
|
|
81
25
|
const isShowMobileHint = GetViewOptions.shouldShowMobileHint();
|
|
82
26
|
const isShowHint = GetViewOptions.shouldShowHint();
|
|
83
27
|
const count = GetViewOptions.showCount();
|
|
84
|
-
|
|
85
|
-
|
|
28
|
+
const firstSlot = slotContent[0];
|
|
29
|
+
if (!firstSlot) return;
|
|
30
|
+
const elementSize = firstSlot.offsetWidth;
|
|
86
31
|
const carouselSize = GetSizes.carouselWidthBasedOnBlock({ count });
|
|
87
32
|
const { fullScreenCallback } = displayLogic;
|
|
88
33
|
if (!elementSize) return;
|
|
89
34
|
const elementSizeWithSpace = elementSize;
|
|
90
35
|
const temporaryCarouselSize = carouselSize + elementSizeWithSpace;
|
|
91
36
|
const cloneReferenceEvents = ({
|
|
92
|
-
|
|
37
|
+
original,
|
|
93
38
|
clone
|
|
94
39
|
}) => {
|
|
95
|
-
const
|
|
40
|
+
const fullScreenClassName = fullscreen.className;
|
|
41
|
+
const originalFullScreen = original.querySelector(`.${fullScreenClassName}`);
|
|
96
42
|
const cloneFullScreen = clone.querySelector(`.${fullScreenClassName}`);
|
|
97
|
-
if (
|
|
98
|
-
const indexAttr =
|
|
43
|
+
if (originalFullScreen && cloneFullScreen) {
|
|
44
|
+
const indexAttr = originalFullScreen.getAttribute("data-index");
|
|
99
45
|
const index = indexAttr ? parseInt(indexAttr) : 0;
|
|
100
46
|
cloneFullScreen.addEventListener(
|
|
101
47
|
"click",
|
|
102
48
|
() => fullScreenCallback(index)
|
|
103
49
|
);
|
|
104
50
|
}
|
|
51
|
+
createCaption.bindToggle(clone);
|
|
105
52
|
};
|
|
106
53
|
const animateRight = () => {
|
|
107
54
|
const firstElement = slotContent[0];
|
|
@@ -109,7 +56,7 @@ const EventScrollCarousel = (props) => {
|
|
|
109
56
|
const upcomingElement = slotContent[count];
|
|
110
57
|
const hintElement = slotContent[count + 1];
|
|
111
58
|
upcomingElement.style.display = "block";
|
|
112
|
-
cloneReferenceEvents({
|
|
59
|
+
cloneReferenceEvents({ original: firstElement, clone: clonedElement });
|
|
113
60
|
if (hintElement && (isShowMobileHint || isShowHint)) {
|
|
114
61
|
hintElement.style.display = "block";
|
|
115
62
|
}
|
|
@@ -131,7 +78,7 @@ const EventScrollCarousel = (props) => {
|
|
|
131
78
|
const removedElement = slotContent[count - 1];
|
|
132
79
|
const hintElementSibiling = slotContent[count];
|
|
133
80
|
const clonedElement = lastElement.cloneNode(true);
|
|
134
|
-
cloneReferenceEvents({
|
|
81
|
+
cloneReferenceEvents({ original: lastElement, clone: clonedElement });
|
|
135
82
|
carouselSlider.style.width = `${temporaryCarouselSize}px`;
|
|
136
83
|
carouselSlider.prepend(clonedElement);
|
|
137
84
|
clonedElement.style.display = "block";
|
|
@@ -152,13 +99,17 @@ const EventScrollCarousel = (props) => {
|
|
|
152
99
|
}, ANIMATION_DURATION);
|
|
153
100
|
});
|
|
154
101
|
};
|
|
155
|
-
|
|
102
|
+
if (isDirectionRight) {
|
|
103
|
+
animateRight();
|
|
104
|
+
} else {
|
|
105
|
+
animateLeft();
|
|
106
|
+
}
|
|
156
107
|
};
|
|
157
108
|
const EventSwipe = (props) => {
|
|
158
109
|
const { GetElements } = props;
|
|
159
110
|
const container = GetElements.container();
|
|
160
|
-
const swipes = (
|
|
161
|
-
if (!
|
|
111
|
+
const swipes = (isRightSwipe) => {
|
|
112
|
+
if (!isRightSwipe) {
|
|
162
113
|
EventScrollCarousel(props);
|
|
163
114
|
} else {
|
|
164
115
|
EventScrollCarousel({ ...props, isDirectionRight: false });
|
|
@@ -166,106 +117,46 @@ const EventSwipe = (props) => {
|
|
|
166
117
|
};
|
|
167
118
|
setupSwipeDetection({ container, callback: swipes });
|
|
168
119
|
};
|
|
169
|
-
const ButtonVisibility = (props) => {
|
|
170
|
-
const { GetElements, GetViewOptions } = props;
|
|
171
|
-
const prevousButton = GetElements.container().querySelector(
|
|
172
|
-
`.${ELEMENT_ANIMATION_CAROUSEL_PREVIOUS}`
|
|
173
|
-
);
|
|
174
|
-
const nextButton = GetElements.container().querySelector(
|
|
175
|
-
`.${ELEMENT_ANIMATION_CAROUSEL_NEXT}`
|
|
176
|
-
);
|
|
177
|
-
const buttons = [nextButton, prevousButton];
|
|
178
|
-
const shouldShowLeftButton = GetViewOptions.shouldShowLeftButton();
|
|
179
|
-
const shouldShowRightButton = GetViewOptions.shouldShowRightButton();
|
|
180
|
-
const showCount = GetViewOptions.showCount();
|
|
181
|
-
const cardsTotal = GetElements.blocks().length;
|
|
182
|
-
const shouldHideLeftButton = showCount > 1 && !shouldShowLeftButton;
|
|
183
|
-
const shouldHideRightButton = showCount > 1 && !shouldShowRightButton;
|
|
184
|
-
if (cardsTotal === showCount) {
|
|
185
|
-
buttons.forEach((button) => button.style.display = "none");
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
if (shouldHideLeftButton) {
|
|
189
|
-
prevousButton.style.display = "none";
|
|
190
|
-
} else {
|
|
191
|
-
prevousButton.style.display = "block";
|
|
192
|
-
}
|
|
193
|
-
if (shouldHideRightButton) {
|
|
194
|
-
nextButton.style.display = "none";
|
|
195
|
-
} else {
|
|
196
|
-
nextButton.style.display = "block";
|
|
197
|
-
}
|
|
198
|
-
};
|
|
199
|
-
const ButtonDisplay = (props) => {
|
|
200
|
-
const { GetElements } = props;
|
|
201
|
-
const prevousButton = GetElements.container().querySelector(
|
|
202
|
-
`.${ELEMENT_ANIMATION_CAROUSEL_PREVIOUS}`
|
|
203
|
-
);
|
|
204
|
-
const nextButton = GetElements.container().querySelector(
|
|
205
|
-
`.${ELEMENT_ANIMATION_CAROUSEL_NEXT}`
|
|
206
|
-
);
|
|
207
|
-
prevousButton.setAttribute("aria-label", "Previous");
|
|
208
|
-
nextButton.setAttribute("aria-label", "Next");
|
|
209
|
-
ButtonVisibility(props);
|
|
210
|
-
};
|
|
211
|
-
const CreateButton = ({
|
|
212
|
-
EventMoveForward,
|
|
213
|
-
EventMoveBackward,
|
|
214
|
-
isRight = true
|
|
215
|
-
}) => {
|
|
216
|
-
const button = document.createElement("button");
|
|
217
|
-
button.setAttribute("type", "button");
|
|
218
|
-
button.setAttribute("aria-label", "Next");
|
|
219
|
-
button.classList.add(ELEMENT_ANIMATION_CAROUSEL_BUTTON);
|
|
220
|
-
button.innerHTML = arrow_right;
|
|
221
|
-
if (isRight) {
|
|
222
|
-
button.classList.add(ELEMENT_ANIMATION_CAROUSEL_NEXT);
|
|
223
|
-
}
|
|
224
|
-
if (!isRight) {
|
|
225
|
-
button.setAttribute("aria-label", "Previous");
|
|
226
|
-
button.classList.add(ELEMENT_ANIMATION_CAROUSEL_PREVIOUS);
|
|
227
|
-
}
|
|
228
|
-
button.addEventListener("click", () => {
|
|
229
|
-
if (isRight) EventMoveForward();
|
|
230
|
-
if (!isRight) EventMoveBackward();
|
|
231
|
-
button.disabled = true;
|
|
232
|
-
setTimeout(() => {
|
|
233
|
-
button.disabled = false;
|
|
234
|
-
}, ANIMATION_DURATION);
|
|
235
|
-
});
|
|
236
|
-
return button;
|
|
237
|
-
};
|
|
238
120
|
const CreateCarouselCardsElement = (props) => (() => {
|
|
239
|
-
const {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
121
|
+
const {
|
|
122
|
+
slide,
|
|
123
|
+
shadowRef,
|
|
124
|
+
blocks,
|
|
125
|
+
mobileBreakpoint = token.media.breakpointValues.medium.max,
|
|
126
|
+
tabletBreakpoint = token.media.breakpointValues.tablet.min,
|
|
127
|
+
desktopBreakpoint = token.media.breakpointValues.desktop.min,
|
|
128
|
+
mobileCount = 1,
|
|
129
|
+
tabletCount = 2,
|
|
130
|
+
desktopCount = 3,
|
|
131
|
+
maxCount = 4,
|
|
132
|
+
blockGap = parsePixelValue(token.spacing.lg),
|
|
133
|
+
hasLeftButton = true,
|
|
134
|
+
hasRightButton = true,
|
|
135
|
+
showMobileHint = true,
|
|
136
|
+
showHint = true,
|
|
137
|
+
fullScreenCallback,
|
|
138
|
+
button
|
|
139
|
+
} = props;
|
|
243
140
|
const displayLogic = {
|
|
244
|
-
mobileBreakpoint
|
|
245
|
-
tabletBreakpoint
|
|
246
|
-
desktopBreakpoint
|
|
247
|
-
mobileCount
|
|
248
|
-
tabletCount
|
|
249
|
-
desktopCount
|
|
250
|
-
maxCount
|
|
251
|
-
blockGap
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
showMobileHint
|
|
255
|
-
showHint
|
|
256
|
-
fullScreenCallback
|
|
141
|
+
mobileBreakpoint,
|
|
142
|
+
tabletBreakpoint,
|
|
143
|
+
desktopBreakpoint,
|
|
144
|
+
mobileCount,
|
|
145
|
+
tabletCount,
|
|
146
|
+
desktopCount,
|
|
147
|
+
maxCount,
|
|
148
|
+
blockGap,
|
|
149
|
+
hasLeftButton,
|
|
150
|
+
hasRightButton,
|
|
151
|
+
showMobileHint,
|
|
152
|
+
showHint,
|
|
153
|
+
fullScreenCallback
|
|
257
154
|
};
|
|
258
155
|
let blockWidth = 0;
|
|
259
156
|
let hasInteractionOccured = false;
|
|
260
|
-
|
|
261
|
-
Object.keys(overwriteDisplayLogic).forEach((key) => {
|
|
262
|
-
const refKey = key;
|
|
263
|
-
const refValue = overwriteDisplayLogic[refKey];
|
|
264
|
-
displayLogic[refKey] = refValue;
|
|
265
|
-
});
|
|
266
|
-
}
|
|
157
|
+
let containerElement = null;
|
|
267
158
|
const GetElements = {
|
|
268
|
-
container: () =>
|
|
159
|
+
container: () => containerElement,
|
|
269
160
|
slide: () => slide,
|
|
270
161
|
blocks: () => blocks
|
|
271
162
|
};
|
|
@@ -288,17 +179,21 @@ const CreateCarouselCardsElement = (props) => (() => {
|
|
|
288
179
|
const isDesktop = GetViewOptions.isDesktopView();
|
|
289
180
|
const isHighDef = GetViewOptions.isHighView();
|
|
290
181
|
let count = 1;
|
|
291
|
-
if (isMobile)
|
|
292
|
-
|
|
293
|
-
if (
|
|
294
|
-
|
|
182
|
+
if (isMobile) {
|
|
183
|
+
count = displayLogic.mobileCount;
|
|
184
|
+
} else if (isTablet) {
|
|
185
|
+
count = displayLogic.tabletCount;
|
|
186
|
+
} else if (isDesktop) {
|
|
187
|
+
count = displayLogic.desktopCount;
|
|
188
|
+
} else if (isHighDef) {
|
|
189
|
+
count = displayLogic.maxCount;
|
|
190
|
+
}
|
|
295
191
|
return count;
|
|
296
192
|
},
|
|
297
193
|
shouldShowMobileHint: () => {
|
|
298
194
|
const isMobileView = GetViewOptions.isMobileView();
|
|
299
|
-
const
|
|
300
|
-
|
|
301
|
-
return isShowMobileHint && isMobileView || isShowHint && isMobileView;
|
|
195
|
+
const showHintOnMobile = displayLogic.showMobileHint || displayLogic.showHint;
|
|
196
|
+
return showHintOnMobile && isMobileView;
|
|
302
197
|
},
|
|
303
198
|
shouldShowHint: () => {
|
|
304
199
|
return displayLogic.showHint && !GetViewOptions.isMobileView();
|
|
@@ -312,12 +207,12 @@ const CreateCarouselCardsElement = (props) => (() => {
|
|
|
312
207
|
};
|
|
313
208
|
const GetSizes = {
|
|
314
209
|
mobileHintWidth: ({ count }) => {
|
|
315
|
-
|
|
316
|
-
return
|
|
210
|
+
if (!containerElement) return 0;
|
|
211
|
+
return containerElement.offsetWidth / count * HINT_MULTIPLER_MOBILE_SIZING;
|
|
317
212
|
},
|
|
318
213
|
hintWidth: ({ count }) => {
|
|
319
|
-
|
|
320
|
-
return
|
|
214
|
+
if (!containerElement) return 0;
|
|
215
|
+
return containerElement.offsetWidth / count * HINT_MULTIPLER_SIZING;
|
|
321
216
|
},
|
|
322
217
|
carouselWidthBasedOnBlock: ({ count }) => {
|
|
323
218
|
const elementSize = blockWidth;
|
|
@@ -330,7 +225,8 @@ const CreateCarouselCardsElement = (props) => (() => {
|
|
|
330
225
|
return elementSize * count;
|
|
331
226
|
},
|
|
332
227
|
containerWidth: () => {
|
|
333
|
-
return
|
|
228
|
+
if (!containerElement) return 0;
|
|
229
|
+
return containerElement.offsetWidth;
|
|
334
230
|
}
|
|
335
231
|
};
|
|
336
232
|
const SetLayout = {
|
|
@@ -354,19 +250,36 @@ const CreateCarouselCardsElement = (props) => (() => {
|
|
|
354
250
|
block.style.display = "block";
|
|
355
251
|
}
|
|
356
252
|
});
|
|
357
|
-
if (isShowMobileHint)
|
|
358
|
-
|
|
253
|
+
if (isShowMobileHint) {
|
|
254
|
+
containerBlocks[1].style.display = "block";
|
|
255
|
+
}
|
|
256
|
+
if (isHint) {
|
|
257
|
+
containerBlocks[count].style.display = "block";
|
|
258
|
+
}
|
|
359
259
|
}
|
|
360
260
|
};
|
|
261
|
+
const buttonRefs = {
|
|
262
|
+
next: null,
|
|
263
|
+
prev: null
|
|
264
|
+
};
|
|
265
|
+
const GetButtons = {
|
|
266
|
+
next: () => buttonRefs.next,
|
|
267
|
+
prev: () => buttonRefs.prev
|
|
268
|
+
};
|
|
361
269
|
const Event = {
|
|
362
270
|
helpers: {
|
|
363
271
|
displayLogic,
|
|
364
272
|
GetElements,
|
|
273
|
+
GetButtons,
|
|
365
274
|
GetViewOptions,
|
|
366
275
|
GetSizes,
|
|
367
276
|
SetLayout
|
|
368
277
|
},
|
|
369
278
|
resize: () => {
|
|
279
|
+
if (!containerElement) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
const container = containerElement;
|
|
370
283
|
const count = GetViewOptions.showCount();
|
|
371
284
|
const cacluateBlockWidth = ({ count: count2 }) => {
|
|
372
285
|
const isShowMobileHint = GetViewOptions.shouldShowMobileHint();
|
|
@@ -386,12 +299,7 @@ const CreateCarouselCardsElement = (props) => (() => {
|
|
|
386
299
|
SetLayout.blockWidth();
|
|
387
300
|
SetLayout.blockDisplay({ count });
|
|
388
301
|
SetLayout.carouselWidth({ count });
|
|
389
|
-
|
|
390
|
-
if (count === 1) {
|
|
391
|
-
container.setAttribute(ATTRIBUTE_SINGLE_BLOCK, "");
|
|
392
|
-
} else {
|
|
393
|
-
container.removeAttribute(ATTRIBUTE_SINGLE_BLOCK);
|
|
394
|
-
}
|
|
302
|
+
ButtonVisibility({ ...Event.helpers });
|
|
395
303
|
},
|
|
396
304
|
load: () => {
|
|
397
305
|
slide.style.display = "flex";
|
|
@@ -415,52 +323,74 @@ const CreateCarouselCardsElement = (props) => (() => {
|
|
|
415
323
|
ButtonVisibility({ ...Event.helpers });
|
|
416
324
|
}
|
|
417
325
|
};
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
);
|
|
424
|
-
container.appendChild(
|
|
425
|
-
CreateButton({
|
|
426
|
-
EventMoveForward: Event.forward,
|
|
427
|
-
EventMoveBackward: Event.backward,
|
|
428
|
-
isRight: false
|
|
429
|
-
})
|
|
430
|
-
);
|
|
431
|
-
wrapper.classList.add(ELEMENT_ANIMATION_CAROUSEL_WRAPPER);
|
|
432
|
-
if (shadowRef) {
|
|
433
|
-
wrapper.appendChild(shadowRef);
|
|
434
|
-
} else {
|
|
435
|
-
blocks.forEach((block) => slide.appendChild(block));
|
|
436
|
-
wrapper.appendChild(slide);
|
|
437
|
-
}
|
|
438
|
-
container.classList.add(ELEMENT_ANIMATION_CAROUSEL_CONTAINER);
|
|
439
|
-
container.appendChild(wrapper);
|
|
440
|
-
declaration.classList.add(ELEMENT_ANIMATION_CAROUSEL_DECLARATION);
|
|
441
|
-
declaration.appendChild(container);
|
|
442
|
-
window.addEventListener("resize", debounce(Event.resize, 30));
|
|
443
|
-
return {
|
|
444
|
-
element: declaration,
|
|
445
|
-
events: {
|
|
446
|
-
resize: Event.resize,
|
|
447
|
-
load: Event.load
|
|
448
|
-
}
|
|
326
|
+
const { verticalCenter, outsetOffset, backgroundColor } = button || {};
|
|
327
|
+
const buttonConfig = {
|
|
328
|
+
isVerticalCenter: verticalCenter !== false || Boolean(outsetOffset),
|
|
329
|
+
outsetOffset,
|
|
330
|
+
backgroundColor
|
|
449
331
|
};
|
|
332
|
+
const nextButtonModel = CreateButton({
|
|
333
|
+
EventMoveForward: Event.forward,
|
|
334
|
+
EventMoveBackward: Event.backward,
|
|
335
|
+
...buttonConfig
|
|
336
|
+
});
|
|
337
|
+
const prevButtonModel = CreateButton({
|
|
338
|
+
EventMoveForward: Event.forward,
|
|
339
|
+
EventMoveBackward: Event.backward,
|
|
340
|
+
isRight: false,
|
|
341
|
+
...buttonConfig
|
|
342
|
+
});
|
|
343
|
+
buttonRefs.next = nextButtonModel.element;
|
|
344
|
+
buttonRefs.prev = prevButtonModel.element;
|
|
345
|
+
const wrapperModel = new ElementBuilder().withClassName("animation-carousel-block-wrapper").withStyles({
|
|
346
|
+
element: {
|
|
347
|
+
overflow: "hidden",
|
|
348
|
+
width: "100%"
|
|
349
|
+
}
|
|
350
|
+
}).withModifier((element) => {
|
|
351
|
+
if (shadowRef) {
|
|
352
|
+
element.appendChild(shadowRef);
|
|
353
|
+
} else {
|
|
354
|
+
blocks.forEach((block) => slide.appendChild(block));
|
|
355
|
+
element.appendChild(slide);
|
|
356
|
+
}
|
|
357
|
+
}).build();
|
|
358
|
+
const buttonWrapperModel = new ElementBuilder().withClassName("animation-carousel-block-buttons").withStyles({
|
|
359
|
+
element: {
|
|
360
|
+
display: "flex",
|
|
361
|
+
justifyContent: "center",
|
|
362
|
+
gap: token.spacing.min,
|
|
363
|
+
[`@media (max-width: ${tabletBreakpoint}px)`]: {
|
|
364
|
+
marginTop: token.spacing.md,
|
|
365
|
+
marginBottom: token.spacing.md
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}).withChildren(prevButtonModel, nextButtonModel).build();
|
|
369
|
+
const containerModel = new ElementBuilder().withClassName("animation-carousel-block-container").withStyles({
|
|
370
|
+
element: {
|
|
371
|
+
position: "relative",
|
|
372
|
+
[`@media (max-width: ${tabletBreakpoint}px)`]: {
|
|
373
|
+
display: "flex",
|
|
374
|
+
flexWrap: "wrap",
|
|
375
|
+
justifyContent: "center"
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}).ref((element) => {
|
|
379
|
+
containerElement = element;
|
|
380
|
+
}).withChildren(wrapperModel, buttonWrapperModel).build();
|
|
381
|
+
const declarationModel = new ElementBuilder().withClassName("animation-carousel-block-declaration").withStyles({
|
|
382
|
+
element: {
|
|
383
|
+
containerType: "inline-size",
|
|
384
|
+
width: "100%"
|
|
385
|
+
}
|
|
386
|
+
}).withChild(containerModel).withEvents({ resize: Event.resize, load: Event.load }).build();
|
|
387
|
+
window.addEventListener("resize", debounce(Event.resize, 30));
|
|
388
|
+
return declarationModel;
|
|
450
389
|
})();
|
|
451
390
|
const createCompositeCarouselBlocks = {
|
|
452
|
-
CreateElement: CreateCarouselCardsElement
|
|
453
|
-
Styles: STYLES_CAROUSEL_CARDS_ELEMENT,
|
|
454
|
-
Elements: {
|
|
455
|
-
declaration: ELEMENT_ANIMATION_CAROUSEL_DECLARATION,
|
|
456
|
-
container: ELEMENT_ANIMATION_CAROUSEL_CONTAINER,
|
|
457
|
-
containerSingleBlock: OVERWRITE_SINGLE_BLOCK_CONTAINER,
|
|
458
|
-
button: ELEMENT_ANIMATION_CAROUSEL_BUTTON,
|
|
459
|
-
nextButton: ELEMENT_ANIMATION_CAROUSEL_NEXT,
|
|
460
|
-
previousButton: ELEMENT_ANIMATION_CAROUSEL_PREVIOUS
|
|
461
|
-
}
|
|
391
|
+
CreateElement: CreateCarouselCardsElement
|
|
462
392
|
};
|
|
463
393
|
export {
|
|
464
394
|
createCompositeCarouselBlocks
|
|
465
395
|
};
|
|
466
|
-
//# sourceMappingURL=
|
|
396
|
+
//# sourceMappingURL=equal-width-items.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equal-width-items.js","sources":["../../../../source/composite/carousel/elements/equal-width-items.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { setupSwipeDetection } from '@universityofmaryland/web-utilities-library/events';\nimport { parsePixelValue } from '@universityofmaryland/web-utilities-library/styles';\nimport { CreateButton, ButtonVisibility } from './nav-button';\nimport { createCaption } from '../../../atomic/assets/image/caption';\nimport { fullscreen } from '../../../atomic/buttons/fullscreen';\n\nexport type TypeButtonConfig = {\n backgroundColor?: string;\n verticalCenter?: boolean;\n outsetOffset?: string;\n};\n\ntype TypeDisplayLogic = {\n mobileCount: number;\n mobileBreakpoint: number;\n tabletCount: number;\n tabletBreakpoint: number;\n desktopCount: number;\n desktopBreakpoint: number;\n maxCount: number;\n blockGap: number;\n hasRightButton: boolean;\n hasLeftButton: boolean;\n showMobileHint: boolean;\n showHint: boolean;\n fullScreenCallback?: (index: number) => void;\n};\n\ntype TypeAnimationCarouselBlockProps = {\n slide: HTMLElement;\n shadowRef?: HTMLElement;\n blocks: HTMLElement[];\n mobileBreakpoint?: number;\n tabletBreakpoint?: number;\n desktopBreakpoint?: number;\n mobileCount?: number;\n tabletCount?: number;\n desktopCount?: number;\n maxCount?: number;\n blockGap?: number;\n hasLeftButton?: boolean;\n hasRightButton?: boolean;\n showMobileHint?: boolean;\n showHint?: boolean;\n fullScreenCallback?: (index: number) => void;\n button?: TypeButtonConfig;\n};\n\ntype TypeHelpers = {\n displayLogic: Record<string, any>;\n GetElements: {\n container: () => HTMLDivElement;\n slide: () => HTMLElement;\n blocks: () => HTMLElement[];\n };\n GetButtons: {\n prev: () => HTMLButtonElement;\n next: () => HTMLButtonElement;\n };\n GetViewOptions: {\n isTabletView: () => boolean;\n showCount: () => number;\n shouldShowMobileHint: () => boolean;\n shouldShowHint: () => boolean;\n shouldShowLeftButton: () => boolean;\n shouldShowRightButton: () => boolean;\n };\n GetSizes: {\n carouselWidthBasedOnBlock: ({ count }: { count: number }) => number;\n };\n SetLayout: {\n blockWidth: ({ count }: { count: number }) => void;\n carouselWidth: ({ count }: { count: number }) => void;\n };\n};\n\ntype TypeEventScroll = TypeHelpers & {\n isDirectionRight?: boolean;\n};\n\ntype CarouselBlockModel = {\n element: HTMLElement;\n styles: string;\n events: {\n resize: () => void;\n load: () => void;\n };\n};\n\nconst ANIMATION_DURATION = 750;\nconst HINT_MULTIPLER_MOBILE_SIZING = 0.2;\nconst HINT_MULTIPLER_SIZING = 0.6;\n\nconst EventScrollCarousel = (props: TypeEventScroll) => {\n const {\n GetElements,\n GetViewOptions,\n GetSizes,\n SetLayout,\n isDirectionRight = true,\n displayLogic,\n } = props;\n const carouselSlider = GetElements.slide();\n const slotContent = Array.from(\n carouselSlider.querySelectorAll(':scope > *'),\n ) as HTMLDivElement[];\n\n const isShowMobileHint = GetViewOptions.shouldShowMobileHint();\n const isShowHint = GetViewOptions.shouldShowHint();\n const count = GetViewOptions.showCount();\n\n const firstSlot = slotContent[0];\n if (!firstSlot) return;\n\n const elementSize = firstSlot.offsetWidth;\n\n const carouselSize = GetSizes.carouselWidthBasedOnBlock({ count });\n const { fullScreenCallback } = displayLogic;\n\n if (!elementSize) return;\n\n const elementSizeWithSpace = elementSize;\n const temporaryCarouselSize = carouselSize + elementSizeWithSpace;\n\n const cloneReferenceEvents = ({\n original,\n clone,\n }: {\n original: HTMLElement;\n clone: HTMLElement;\n }) => {\n const fullScreenClassName = fullscreen.className;\n const originalFullScreen = original.querySelector(`.${fullScreenClassName}`);\n const cloneFullScreen = clone.querySelector(`.${fullScreenClassName}`);\n\n if (originalFullScreen && cloneFullScreen) {\n const indexAttr = originalFullScreen.getAttribute('data-index');\n const index = indexAttr ? parseInt(indexAttr) : 0;\n cloneFullScreen.addEventListener('click', () =>\n fullScreenCallback(index),\n );\n }\n\n // cloneNode(true) drops the caption toggle's click listener; restore it.\n createCaption.bindToggle(clone);\n };\n\n const animateRight = () => {\n const firstElement = slotContent[0];\n const clonedElement = firstElement.cloneNode(true) as HTMLDivElement;\n const upcomingElement = slotContent[count];\n const hintElement = slotContent[count + 1];\n\n upcomingElement.style.display = 'block';\n cloneReferenceEvents({ original: firstElement, clone: clonedElement });\n\n if (hintElement && (isShowMobileHint || isShowHint)) {\n hintElement.style.display = 'block';\n }\n\n carouselSlider.appendChild(clonedElement);\n clonedElement.style.display = 'none';\n\n carouselSlider.style.width = `${temporaryCarouselSize}px`;\n void carouselSlider.offsetHeight;\n\n requestAnimationFrame(() => {\n carouselSlider.style.transition = `transform ${ANIMATION_DURATION}ms ease-in-out`;\n carouselSlider.style.transform = `translateX(-${elementSizeWithSpace}px)`;\n\n setTimeout(() => {\n carouselSlider.removeChild(firstElement);\n SetLayout.carouselWidth({ count });\n }, ANIMATION_DURATION);\n });\n };\n\n const animateLeft = () => {\n const lastElement = slotContent[slotContent.length - 1];\n const removedElement = slotContent[count - 1];\n const hintElementSibiling = slotContent[count];\n const clonedElement = lastElement.cloneNode(true) as HTMLDivElement;\n\n cloneReferenceEvents({ original: lastElement, clone: clonedElement });\n\n carouselSlider.style.width = `${temporaryCarouselSize}px`;\n carouselSlider.prepend(clonedElement);\n clonedElement.style.display = 'block';\n carouselSlider.style.transform = `translateX(-${elementSizeWithSpace}px)`;\n\n void carouselSlider.offsetHeight;\n\n requestAnimationFrame(() => {\n carouselSlider.style.transition = `transform ${ANIMATION_DURATION}ms ease-in-out`;\n carouselSlider.style.transform = `translateX(0)`;\n\n setTimeout(() => {\n carouselSlider.removeChild(lastElement);\n\n if (!isShowMobileHint && !isShowHint) {\n removedElement.style.display = 'none';\n }\n\n if (isShowMobileHint || isShowHint) {\n hintElementSibiling.style.display = 'none';\n }\n\n SetLayout.carouselWidth({ count });\n }, ANIMATION_DURATION);\n });\n };\n\n if (isDirectionRight) {\n animateRight();\n } else {\n animateLeft();\n }\n};\n\nconst EventSwipe = (props: TypeHelpers) => {\n const { GetElements } = props;\n const container = GetElements.container();\n\n const swipes = (isRightSwipe: boolean) => {\n if (!isRightSwipe) {\n EventScrollCarousel(props);\n } else {\n EventScrollCarousel({ ...props, isDirectionRight: false });\n }\n };\n\n setupSwipeDetection({ container, callback: swipes });\n};\n\n\nconst CreateCarouselCardsElement = (props: TypeAnimationCarouselBlockProps) =>\n (() => {\n const {\n slide,\n shadowRef,\n blocks,\n mobileBreakpoint = token.media.breakpointValues.medium.max,\n tabletBreakpoint = token.media.breakpointValues.tablet.min,\n desktopBreakpoint = token.media.breakpointValues.desktop.min,\n mobileCount = 1,\n tabletCount = 2,\n desktopCount = 3,\n maxCount = 4,\n blockGap = parsePixelValue(token.spacing.lg),\n hasLeftButton = true,\n hasRightButton = true,\n showMobileHint = true,\n showHint = true,\n fullScreenCallback,\n button,\n } = props;\n\n const displayLogic: TypeDisplayLogic = {\n mobileBreakpoint,\n tabletBreakpoint,\n desktopBreakpoint,\n mobileCount,\n tabletCount,\n desktopCount,\n maxCount,\n blockGap,\n hasLeftButton,\n hasRightButton,\n showMobileHint,\n showHint,\n fullScreenCallback,\n };\n let blockWidth = 0;\n let hasInteractionOccured = false;\n let containerElement: HTMLDivElement | null = null;\n\n const GetElements = {\n container: () => containerElement as HTMLDivElement,\n slide: () => slide,\n blocks: () => blocks,\n };\n\n const GetViewOptions = {\n isMobileView: () => {\n return GetSizes.containerWidth() <= displayLogic.mobileBreakpoint;\n },\n isTabletView: () => {\n return (\n GetSizes.containerWidth() > displayLogic.mobileBreakpoint &&\n GetSizes.containerWidth() <= displayLogic.tabletBreakpoint\n );\n },\n isDesktopView: () => {\n return (\n GetSizes.containerWidth() > displayLogic.tabletBreakpoint &&\n GetSizes.containerWidth() <= displayLogic.desktopBreakpoint\n );\n },\n isHighView: () => {\n return GetSizes.containerWidth() > displayLogic.desktopBreakpoint;\n },\n showCount: () => {\n const isMobile = GetViewOptions.isMobileView();\n const isTablet = GetViewOptions.isTabletView();\n const isDesktop = GetViewOptions.isDesktopView();\n const isHighDef = GetViewOptions.isHighView();\n let count = 1;\n\n if (isMobile) { count = displayLogic.mobileCount; }\n else if (isTablet) { count = displayLogic.tabletCount; }\n else if (isDesktop) { count = displayLogic.desktopCount; }\n else if (isHighDef) { count = displayLogic.maxCount; }\n\n return count;\n },\n shouldShowMobileHint: () => {\n const isMobileView = GetViewOptions.isMobileView();\n const showHintOnMobile = displayLogic.showMobileHint || displayLogic.showHint;\n\n return showHintOnMobile && isMobileView;\n },\n shouldShowHint: () => {\n return displayLogic.showHint && !GetViewOptions.isMobileView();\n },\n shouldShowLeftButton: () => {\n return displayLogic.hasLeftButton || hasInteractionOccured;\n },\n shouldShowRightButton: () => {\n return displayLogic.hasRightButton || hasInteractionOccured;\n },\n };\n\n const GetSizes = {\n mobileHintWidth: ({ count }: { count: number }) => {\n if (!containerElement) return 0;\n return (containerElement.offsetWidth / count) * HINT_MULTIPLER_MOBILE_SIZING;\n },\n hintWidth: ({ count }: { count: number }) => {\n if (!containerElement) return 0;\n return (containerElement.offsetWidth / count) * HINT_MULTIPLER_SIZING;\n },\n carouselWidthBasedOnBlock: ({ count }: { count: number }) => {\n const elementSize = blockWidth;\n const isShowMobileHint = GetViewOptions.shouldShowMobileHint();\n const isShowHint = GetViewOptions.shouldShowHint();\n\n if (!elementSize) return window.innerWidth;\n\n if (isShowMobileHint || isShowHint) {\n return elementSize * (count + 1);\n }\n\n return elementSize * count;\n },\n containerWidth: () => {\n if (!containerElement) return 0;\n return containerElement.offsetWidth;\n },\n };\n\n const SetLayout = {\n blockWidth: () =>\n blocks.forEach((block) => (block.style.width = `${blockWidth}px`)),\n carouselWidth: ({ count }: { count: number }) => {\n const elementSize = GetSizes.carouselWidthBasedOnBlock({ count });\n\n slide.style.width = `${elementSize}px`;\n slide.style.transition = 'none';\n slide.style.transform = 'translateX(0)';\n },\n blockDisplay: ({ count }: { count: number }) => {\n const containerBlocks = Array.from(\n slide.querySelectorAll(':scope > *'),\n ) as HTMLElement[];\n const isHint = GetViewOptions.shouldShowHint();\n const isShowMobileHint = GetViewOptions.shouldShowMobileHint();\n\n containerBlocks.forEach((block, index) => {\n if (index >= count) {\n block.style.display = 'none';\n } else {\n block.style.display = 'block';\n }\n });\n\n if (isShowMobileHint) {\n containerBlocks[1].style.display = 'block';\n }\n if (isHint) {\n containerBlocks[count].style.display = 'block';\n }\n },\n };\n\n const buttonRefs: { next: HTMLButtonElement | null; prev: HTMLButtonElement | null } = {\n next: null,\n prev: null,\n };\n\n const GetButtons = {\n next: () => buttonRefs.next as HTMLButtonElement,\n prev: () => buttonRefs.prev as HTMLButtonElement,\n };\n\n const Event = {\n helpers: {\n displayLogic,\n GetElements,\n GetButtons,\n GetViewOptions,\n GetSizes,\n SetLayout,\n },\n resize: () => {\n if (!containerElement) { return; }\n const container = containerElement;\n const count = GetViewOptions.showCount();\n const cacluateBlockWidth = ({ count }: { count: number }) => {\n const isShowMobileHint = GetViewOptions.shouldShowMobileHint();\n const isShowHint = GetViewOptions.shouldShowHint();\n const containerWidth = container.offsetWidth;\n\n if (isShowMobileHint || isShowHint) {\n let hintElementSize = GetSizes.hintWidth({ count });\n\n if (isShowMobileHint) {\n hintElementSize = GetSizes.mobileHintWidth({ count });\n }\n\n blockWidth = (containerWidth - hintElementSize) / count;\n } else {\n blockWidth = containerWidth / count;\n }\n };\n\n cacluateBlockWidth({ count });\n SetLayout.blockWidth();\n SetLayout.blockDisplay({ count });\n SetLayout.carouselWidth({ count });\n ButtonVisibility({ ...Event.helpers });\n },\n load: () => {\n slide.style.display = 'flex';\n slide.style.gap = `${displayLogic.blockGap}px`;\n\n Event.resize();\n EventSwipe({ ...Event.helpers });\n },\n forward: () => {\n hasInteractionOccured = true;\n EventScrollCarousel({\n ...Event.helpers,\n });\n ButtonVisibility({ ...Event.helpers });\n },\n backward: () => {\n hasInteractionOccured = true;\n EventScrollCarousel({\n ...Event.helpers,\n isDirectionRight: false,\n });\n ButtonVisibility({ ...Event.helpers });\n },\n };\n\n const { verticalCenter, outsetOffset, backgroundColor } = button || {};\n const buttonConfig = {\n isVerticalCenter: verticalCenter !== false || Boolean(outsetOffset),\n outsetOffset,\n backgroundColor,\n };\n\n const nextButtonModel = CreateButton({\n EventMoveForward: Event.forward,\n EventMoveBackward: Event.backward,\n ...buttonConfig,\n });\n\n const prevButtonModel = CreateButton({\n EventMoveForward: Event.forward,\n EventMoveBackward: Event.backward,\n isRight: false,\n ...buttonConfig,\n });\n\n buttonRefs.next = nextButtonModel.element as HTMLButtonElement;\n buttonRefs.prev = prevButtonModel.element as HTMLButtonElement;\n\n const wrapperModel = new ElementBuilder()\n .withClassName('animation-carousel-block-wrapper')\n .withStyles({\n element: {\n overflow: 'hidden',\n width: '100%',\n },\n })\n .withModifier((element) => {\n if (shadowRef) {\n element.appendChild(shadowRef);\n } else {\n blocks.forEach((block) => slide.appendChild(block));\n element.appendChild(slide);\n }\n })\n .build();\n\n const buttonWrapperModel = new ElementBuilder()\n .withClassName('animation-carousel-block-buttons')\n .withStyles({\n element: {\n display: 'flex',\n justifyContent: 'center',\n gap: token.spacing.min,\n [`@media (max-width: ${tabletBreakpoint}px)`]: {\n marginTop: token.spacing.md,\n marginBottom: token.spacing.md,\n },\n },\n })\n .withChildren(prevButtonModel, nextButtonModel)\n .build();\n\n const containerModel = new ElementBuilder()\n .withClassName('animation-carousel-block-container')\n .withStyles({\n element: {\n position: 'relative',\n [`@media (max-width: ${tabletBreakpoint}px)`]: {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'center',\n },\n },\n })\n .ref((element) => {\n containerElement = element as HTMLDivElement;\n })\n .withChildren(wrapperModel, buttonWrapperModel)\n .build();\n\n const declarationModel = new ElementBuilder()\n .withClassName('animation-carousel-block-declaration')\n .withStyles({\n element: {\n containerType: 'inline-size',\n width: '100%',\n },\n })\n .withChild(containerModel)\n .withEvents({ resize: Event.resize, load: Event.load })\n .build();\n\n window.addEventListener('resize', debounce(Event.resize, 30));\n\n return declarationModel as CarouselBlockModel;\n })();\n\nexport const createCompositeCarouselBlocks = {\n CreateElement: CreateCarouselCardsElement,\n};\n"],"names":["count"],"mappings":";;;;;;;;AA4FA,MAAM,qBAAqB;AAC3B,MAAM,+BAA+B;AACrC,MAAM,wBAAwB;AAE9B,MAAM,sBAAsB,CAAC,UAA2B;AACtD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,IACnB;AAAA,EAAA,IACE;AACJ,QAAM,iBAAiB,YAAY,MAAA;AACnC,QAAM,cAAc,MAAM;AAAA,IACxB,eAAe,iBAAiB,YAAY;AAAA,EAAA;AAG9C,QAAM,mBAAmB,eAAe,qBAAA;AACxC,QAAM,aAAa,eAAe,eAAA;AAClC,QAAM,QAAQ,eAAe,UAAA;AAE7B,QAAM,YAAY,YAAY,CAAC;AAC/B,MAAI,CAAC,UAAW;AAEhB,QAAM,cAAc,UAAU;AAE9B,QAAM,eAAe,SAAS,0BAA0B,EAAE,OAAO;AACjE,QAAM,EAAE,uBAAuB;AAE/B,MAAI,CAAC,YAAa;AAElB,QAAM,uBAAuB;AAC7B,QAAM,wBAAwB,eAAe;AAE7C,QAAM,uBAAuB,CAAC;AAAA,IAC5B;AAAA,IACA;AAAA,EAAA,MAII;AACJ,UAAM,sBAAsB,WAAW;AACvC,UAAM,qBAAqB,SAAS,cAAc,IAAI,mBAAmB,EAAE;AAC3E,UAAM,kBAAkB,MAAM,cAAc,IAAI,mBAAmB,EAAE;AAErE,QAAI,sBAAsB,iBAAiB;AACzC,YAAM,YAAY,mBAAmB,aAAa,YAAY;AAC9D,YAAM,QAAQ,YAAY,SAAS,SAAS,IAAI;AAChD,sBAAgB;AAAA,QAAiB;AAAA,QAAS,MACxC,mBAAmB,KAAK;AAAA,MAAA;AAAA,IAE5B;AAGA,kBAAc,WAAW,KAAK;AAAA,EAChC;AAEA,QAAM,eAAe,MAAM;AACzB,UAAM,eAAe,YAAY,CAAC;AAClC,UAAM,gBAAgB,aAAa,UAAU,IAAI;AACjD,UAAM,kBAAkB,YAAY,KAAK;AACzC,UAAM,cAAc,YAAY,QAAQ,CAAC;AAEzC,oBAAgB,MAAM,UAAU;AAChC,yBAAqB,EAAE,UAAU,cAAc,OAAO,eAAe;AAErE,QAAI,gBAAgB,oBAAoB,aAAa;AACnD,kBAAY,MAAM,UAAU;AAAA,IAC9B;AAEA,mBAAe,YAAY,aAAa;AACxC,kBAAc,MAAM,UAAU;AAE9B,mBAAe,MAAM,QAAQ,GAAG,qBAAqB;AACrD,SAAK,eAAe;AAEpB,0BAAsB,MAAM;AAC1B,qBAAe,MAAM,aAAa,aAAa,kBAAkB;AACjE,qBAAe,MAAM,YAAY,eAAe,oBAAoB;AAEpE,iBAAW,MAAM;AACf,uBAAe,YAAY,YAAY;AACvC,kBAAU,cAAc,EAAE,OAAO;AAAA,MACnC,GAAG,kBAAkB;AAAA,IACvB,CAAC;AAAA,EACH;AAEA,QAAM,cAAc,MAAM;AACxB,UAAM,cAAc,YAAY,YAAY,SAAS,CAAC;AACtD,UAAM,iBAAiB,YAAY,QAAQ,CAAC;AAC5C,UAAM,sBAAsB,YAAY,KAAK;AAC7C,UAAM,gBAAgB,YAAY,UAAU,IAAI;AAEhD,yBAAqB,EAAE,UAAU,aAAa,OAAO,eAAe;AAEpE,mBAAe,MAAM,QAAQ,GAAG,qBAAqB;AACrD,mBAAe,QAAQ,aAAa;AACpC,kBAAc,MAAM,UAAU;AAC9B,mBAAe,MAAM,YAAY,eAAe,oBAAoB;AAEpE,SAAK,eAAe;AAEpB,0BAAsB,MAAM;AAC1B,qBAAe,MAAM,aAAa,aAAa,kBAAkB;AACjE,qBAAe,MAAM,YAAY;AAEjC,iBAAW,MAAM;AACf,uBAAe,YAAY,WAAW;AAEtC,YAAI,CAAC,oBAAoB,CAAC,YAAY;AACpC,yBAAe,MAAM,UAAU;AAAA,QACjC;AAEA,YAAI,oBAAoB,YAAY;AAClC,8BAAoB,MAAM,UAAU;AAAA,QACtC;AAEA,kBAAU,cAAc,EAAE,OAAO;AAAA,MACnC,GAAG,kBAAkB;AAAA,IACvB,CAAC;AAAA,EACH;AAEA,MAAI,kBAAkB;AACpB,iBAAA;AAAA,EACF,OAAO;AACL,gBAAA;AAAA,EACF;AACF;AAEA,MAAM,aAAa,CAAC,UAAuB;AACzC,QAAM,EAAE,gBAAgB;AACxB,QAAM,YAAY,YAAY,UAAA;AAE9B,QAAM,SAAS,CAAC,iBAA0B;AACxC,QAAI,CAAC,cAAc;AACjB,0BAAoB,KAAK;AAAA,IAC3B,OAAO;AACL,0BAAoB,EAAE,GAAG,OAAO,kBAAkB,OAAO;AAAA,IAC3D;AAAA,EACF;AAEA,sBAAoB,EAAE,WAAW,UAAU,OAAA,CAAQ;AACrD;AAGA,MAAM,6BAA6B,CAAC,WACjC,MAAM;AACL,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,mBAAmB,MAAM,MAAM,iBAAiB,OAAO;AAAA,IACvD,mBAAmB,MAAM,MAAM,iBAAiB,OAAO;AAAA,IACvD,oBAAoB,MAAM,MAAM,iBAAiB,QAAQ;AAAA,IACzD,cAAc;AAAA,IACd,cAAc;AAAA,IACd,eAAe;AAAA,IACf,WAAW;AAAA,IACX,WAAW,gBAAgB,MAAM,QAAQ,EAAE;AAAA,IAC3C,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EAAA,IACE;AAEJ,QAAM,eAAiC;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,MAAI,aAAa;AACjB,MAAI,wBAAwB;AAC5B,MAAI,mBAA0C;AAE9C,QAAM,cAAc;AAAA,IAClB,WAAW,MAAM;AAAA,IACjB,OAAO,MAAM;AAAA,IACb,QAAQ,MAAM;AAAA,EAAA;AAGhB,QAAM,iBAAiB;AAAA,IACrB,cAAc,MAAM;AAClB,aAAO,SAAS,oBAAoB,aAAa;AAAA,IACnD;AAAA,IACA,cAAc,MAAM;AAClB,aACE,SAAS,mBAAmB,aAAa,oBACzC,SAAS,oBAAoB,aAAa;AAAA,IAE9C;AAAA,IACA,eAAe,MAAM;AACnB,aACE,SAAS,mBAAmB,aAAa,oBACzC,SAAS,oBAAoB,aAAa;AAAA,IAE9C;AAAA,IACA,YAAY,MAAM;AAChB,aAAO,SAAS,mBAAmB,aAAa;AAAA,IAClD;AAAA,IACA,WAAW,MAAM;AACf,YAAM,WAAW,eAAe,aAAA;AAChC,YAAM,WAAW,eAAe,aAAA;AAChC,YAAM,YAAY,eAAe,cAAA;AACjC,YAAM,YAAY,eAAe,WAAA;AACjC,UAAI,QAAQ;AAEZ,UAAI,UAAU;AAAE,gBAAQ,aAAa;AAAA,MAAa,WACzC,UAAU;AAAE,gBAAQ,aAAa;AAAA,MAAa,WAC9C,WAAW;AAAE,gBAAQ,aAAa;AAAA,MAAc,WAChD,WAAW;AAAE,gBAAQ,aAAa;AAAA,MAAU;AAErD,aAAO;AAAA,IACT;AAAA,IACA,sBAAsB,MAAM;AAC1B,YAAM,eAAe,eAAe,aAAA;AACpC,YAAM,mBAAmB,aAAa,kBAAkB,aAAa;AAErE,aAAO,oBAAoB;AAAA,IAC7B;AAAA,IACA,gBAAgB,MAAM;AACpB,aAAO,aAAa,YAAY,CAAC,eAAe,aAAA;AAAA,IAClD;AAAA,IACA,sBAAsB,MAAM;AAC1B,aAAO,aAAa,iBAAiB;AAAA,IACvC;AAAA,IACA,uBAAuB,MAAM;AAC3B,aAAO,aAAa,kBAAkB;AAAA,IACxC;AAAA,EAAA;AAGF,QAAM,WAAW;AAAA,IACf,iBAAiB,CAAC,EAAE,YAA+B;AACjD,UAAI,CAAC,iBAAkB,QAAO;AAC9B,aAAQ,iBAAiB,cAAc,QAAS;AAAA,IAClD;AAAA,IACA,WAAW,CAAC,EAAE,YAA+B;AAC3C,UAAI,CAAC,iBAAkB,QAAO;AAC9B,aAAQ,iBAAiB,cAAc,QAAS;AAAA,IAClD;AAAA,IACA,2BAA2B,CAAC,EAAE,YAA+B;AAC3D,YAAM,cAAc;AACpB,YAAM,mBAAmB,eAAe,qBAAA;AACxC,YAAM,aAAa,eAAe,eAAA;AAElC,UAAI,CAAC,YAAa,QAAO,OAAO;AAEhC,UAAI,oBAAoB,YAAY;AAClC,eAAO,eAAe,QAAQ;AAAA,MAChC;AAEA,aAAO,cAAc;AAAA,IACvB;AAAA,IACA,gBAAgB,MAAM;AACpB,UAAI,CAAC,iBAAkB,QAAO;AAC9B,aAAO,iBAAiB;AAAA,IAC1B;AAAA,EAAA;AAGF,QAAM,YAAY;AAAA,IAChB,YAAY,MACV,OAAO,QAAQ,CAAC,UAAW,MAAM,MAAM,QAAQ,GAAG,UAAU,IAAK;AAAA,IACnE,eAAe,CAAC,EAAE,YAA+B;AAC/C,YAAM,cAAc,SAAS,0BAA0B,EAAE,OAAO;AAEhE,YAAM,MAAM,QAAQ,GAAG,WAAW;AAClC,YAAM,MAAM,aAAa;AACzB,YAAM,MAAM,YAAY;AAAA,IAC1B;AAAA,IACA,cAAc,CAAC,EAAE,YAA+B;AAC9C,YAAM,kBAAkB,MAAM;AAAA,QAC5B,MAAM,iBAAiB,YAAY;AAAA,MAAA;AAErC,YAAM,SAAS,eAAe,eAAA;AAC9B,YAAM,mBAAmB,eAAe,qBAAA;AAExC,sBAAgB,QAAQ,CAAC,OAAO,UAAU;AACxC,YAAI,SAAS,OAAO;AAClB,gBAAM,MAAM,UAAU;AAAA,QACxB,OAAO;AACL,gBAAM,MAAM,UAAU;AAAA,QACxB;AAAA,MACF,CAAC;AAED,UAAI,kBAAkB;AACpB,wBAAgB,CAAC,EAAE,MAAM,UAAU;AAAA,MACrC;AACA,UAAI,QAAQ;AACV,wBAAgB,KAAK,EAAE,MAAM,UAAU;AAAA,MACzC;AAAA,IACF;AAAA,EAAA;AAGF,QAAM,aAAiF;AAAA,IACrF,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAGR,QAAM,aAAa;AAAA,IACjB,MAAM,MAAM,WAAW;AAAA,IACvB,MAAM,MAAM,WAAW;AAAA,EAAA;AAGzB,QAAM,QAAQ;AAAA,IACZ,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,QAAQ,MAAM;AACZ,UAAI,CAAC,kBAAkB;AAAE;AAAA,MAAQ;AACjC,YAAM,YAAY;AAClB,YAAM,QAAQ,eAAe,UAAA;AAC7B,YAAM,qBAAqB,CAAC,EAAE,OAAAA,aAA+B;AAC3D,cAAM,mBAAmB,eAAe,qBAAA;AACxC,cAAM,aAAa,eAAe,eAAA;AAClC,cAAM,iBAAiB,UAAU;AAEjC,YAAI,oBAAoB,YAAY;AAClC,cAAI,kBAAkB,SAAS,UAAU,EAAE,OAAAA,QAAO;AAElD,cAAI,kBAAkB;AACpB,8BAAkB,SAAS,gBAAgB,EAAE,OAAAA,QAAO;AAAA,UACtD;AAEA,wBAAc,iBAAiB,mBAAmBA;AAAAA,QACpD,OAAO;AACL,uBAAa,iBAAiBA;AAAAA,QAChC;AAAA,MACF;AAEA,yBAAmB,EAAE,OAAO;AAC5B,gBAAU,WAAA;AACV,gBAAU,aAAa,EAAE,OAAO;AAChC,gBAAU,cAAc,EAAE,OAAO;AACjC,uBAAiB,EAAE,GAAG,MAAM,SAAS;AAAA,IACvC;AAAA,IACA,MAAM,MAAM;AACV,YAAM,MAAM,UAAU;AACtB,YAAM,MAAM,MAAM,GAAG,aAAa,QAAQ;AAE1C,YAAM,OAAA;AACN,iBAAW,EAAE,GAAG,MAAM,SAAS;AAAA,IACjC;AAAA,IACA,SAAS,MAAM;AACb,8BAAwB;AACxB,0BAAoB;AAAA,QAClB,GAAG,MAAM;AAAA,MAAA,CACV;AACD,uBAAiB,EAAE,GAAG,MAAM,SAAS;AAAA,IACvC;AAAA,IACA,UAAU,MAAM;AACd,8BAAwB;AACxB,0BAAoB;AAAA,QAClB,GAAG,MAAM;AAAA,QACT,kBAAkB;AAAA,MAAA,CACnB;AACD,uBAAiB,EAAE,GAAG,MAAM,SAAS;AAAA,IACvC;AAAA,EAAA;AAGF,QAAM,EAAE,gBAAgB,cAAc,gBAAA,IAAoB,UAAU,CAAA;AACpE,QAAM,eAAe;AAAA,IACnB,kBAAkB,mBAAmB,SAAS,QAAQ,YAAY;AAAA,IAClE;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,kBAAkB,aAAa;AAAA,IACnC,kBAAkB,MAAM;AAAA,IACxB,mBAAmB,MAAM;AAAA,IACzB,GAAG;AAAA,EAAA,CACJ;AAED,QAAM,kBAAkB,aAAa;AAAA,IACnC,kBAAkB,MAAM;AAAA,IACxB,mBAAmB,MAAM;AAAA,IACzB,SAAS;AAAA,IACT,GAAG;AAAA,EAAA,CACJ;AAED,aAAW,OAAO,gBAAgB;AAClC,aAAW,OAAO,gBAAgB;AAElC,QAAM,eAAe,IAAI,eAAA,EACtB,cAAc,kCAAkC,EAChD,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,IAAA;AAAA,EACT,CACD,EACA,aAAa,CAAC,YAAY;AACzB,QAAI,WAAW;AACb,cAAQ,YAAY,SAAS;AAAA,IAC/B,OAAO;AACL,aAAO,QAAQ,CAAC,UAAU,MAAM,YAAY,KAAK,CAAC;AAClD,cAAQ,YAAY,KAAK;AAAA,IAC3B;AAAA,EACF,CAAC,EACA,MAAA;AAEH,QAAM,qBAAqB,IAAI,eAAA,EAC5B,cAAc,kCAAkC,EAChD,WAAW;AAAA,IACV,SAAS;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,KAAK,MAAM,QAAQ;AAAA,MACnB,CAAC,sBAAsB,gBAAgB,KAAK,GAAG;AAAA,QAC7C,WAAW,MAAM,QAAQ;AAAA,QACzB,cAAc,MAAM,QAAQ;AAAA,MAAA;AAAA,IAC9B;AAAA,EACF,CACD,EACA,aAAa,iBAAiB,eAAe,EAC7C,MAAA;AAEH,QAAM,iBAAiB,IAAI,eAAA,EACxB,cAAc,oCAAoC,EAClD,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,CAAC,sBAAsB,gBAAgB,KAAK,GAAG;AAAA,QAC7C,SAAS;AAAA,QACT,UAAU;AAAA,QACV,gBAAgB;AAAA,MAAA;AAAA,IAClB;AAAA,EACF,CACD,EACA,IAAI,CAAC,YAAY;AAChB,uBAAmB;AAAA,EACrB,CAAC,EACA,aAAa,cAAc,kBAAkB,EAC7C,MAAA;AAEH,QAAM,mBAAmB,IAAI,eAAA,EAC1B,cAAc,sCAAsC,EACpD,WAAW;AAAA,IACV,SAAS;AAAA,MACP,eAAe;AAAA,MACf,OAAO;AAAA,IAAA;AAAA,EACT,CACD,EACA,UAAU,cAAc,EACxB,WAAW,EAAE,QAAQ,MAAM,QAAQ,MAAM,MAAM,KAAA,CAAM,EACrD,MAAA;AAEH,SAAO,iBAAiB,UAAU,SAAS,MAAM,QAAQ,EAAE,CAAC;AAE5D,SAAO;AACT,GAAA;AAEK,MAAM,gCAAgC;AAAA,EAC3C,eAAe;AACjB;"}
|
|
@@ -2,13 +2,14 @@ type TypeFixedFullScreenProps = {
|
|
|
2
2
|
content: HTMLElement;
|
|
3
3
|
callback: () => void;
|
|
4
4
|
};
|
|
5
|
-
|
|
6
|
-
element:
|
|
5
|
+
type FullScreenModel = {
|
|
6
|
+
element: HTMLElement;
|
|
7
7
|
styles: string;
|
|
8
8
|
events: {
|
|
9
9
|
show: () => void;
|
|
10
10
|
hide: () => void;
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
+
export declare const createCompositeCarouselFullScreen: ({ content }: TypeFixedFullScreenProps) => FullScreenModel;
|
|
13
14
|
export {};
|
|
14
15
|
//# sourceMappingURL=full-screen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"full-screen.d.ts","sourceRoot":"","sources":["../../../../source/composite/carousel/elements/full-screen.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"full-screen.d.ts","sourceRoot":"","sources":["../../../../source/composite/carousel/elements/full-screen.ts"],"names":[],"mappings":"AAMA,KAAK,wBAAwB,GAAG;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,IAAI,CAAC;QACjB,IAAI,EAAE,MAAM,IAAI,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAAI,aAAa,wBAAwB,KA0ChF,eACN,CAAC"}
|