@breadstone/mosaik-elements-foundation 0.0.135 → 0.0.137

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.
Files changed (127) hide show
  1. package/Controls/Behaviors/Slottable.d.ts +6 -0
  2. package/Controls/Behaviors/Slottable.d.ts.map +1 -1
  3. package/Controls/Behaviors/Slottable.js +6 -0
  4. package/Controls/Behaviors/Slottable.js.map +1 -1
  5. package/Controls/Components/Buttons/Abstracts/ButtonBaseElement.d.ts +0 -4
  6. package/Controls/Components/Buttons/Abstracts/ButtonBaseElement.d.ts.map +1 -1
  7. package/Controls/Components/Buttons/Abstracts/ButtonBaseElement.js +0 -6
  8. package/Controls/Components/Buttons/Abstracts/ButtonBaseElement.js.map +1 -1
  9. package/Controls/Components/Forms/FormElement.d.ts.map +1 -1
  10. package/Controls/Components/Forms/FormElement.js +1 -2
  11. package/Controls/Components/Forms/FormElement.js.map +1 -1
  12. package/Controls/Components/Grouping/Banner/BannerElement.d.ts +3 -2
  13. package/Controls/Components/Grouping/Banner/BannerElement.d.ts.map +1 -1
  14. package/Controls/Components/Grouping/Banner/BannerElement.js +3 -4
  15. package/Controls/Components/Grouping/Banner/BannerElement.js.map +1 -1
  16. package/Controls/Components/Grouping/Banner/BannerElementTemplate.d.ts.map +1 -1
  17. package/Controls/Components/Grouping/Banner/BannerElementTemplate.js +4 -0
  18. package/Controls/Components/Grouping/Banner/BannerElementTemplate.js.map +1 -1
  19. package/Controls/Components/Grouping/Banner/IBannerElementProps.d.ts +2 -1
  20. package/Controls/Components/Grouping/Banner/IBannerElementProps.d.ts.map +1 -1
  21. package/Controls/Components/Grouping/Banner/Themes/BannerElement.Cosmopolitan.d.ts.map +1 -1
  22. package/Controls/Components/Grouping/Banner/Themes/BannerElement.Cosmopolitan.js +0 -1
  23. package/Controls/Components/Grouping/Banner/Themes/BannerElement.Cosmopolitan.js.map +1 -1
  24. package/Controls/Components/Grouping/Banner/Themes/BannerElement.Joy.d.ts.map +1 -1
  25. package/Controls/Components/Grouping/Banner/Themes/BannerElement.Joy.js +1 -2
  26. package/Controls/Components/Grouping/Banner/Themes/BannerElement.Joy.js.map +1 -1
  27. package/Controls/Components/Grouping/Banner/Themes/BannerElement.Retro.d.ts.map +1 -1
  28. package/Controls/Components/Grouping/Banner/Themes/BannerElement.Retro.js +0 -1
  29. package/Controls/Components/Grouping/Banner/Themes/BannerElement.Retro.js.map +1 -1
  30. package/Controls/Components/Grouping/BannerGroup/BannerGroupDismissBehavior.d.ts +7 -0
  31. package/Controls/Components/Grouping/BannerGroup/BannerGroupDismissBehavior.d.ts.map +1 -0
  32. package/Controls/Components/Grouping/BannerGroup/BannerGroupDismissBehavior.js +6 -0
  33. package/Controls/Components/Grouping/BannerGroup/BannerGroupDismissBehavior.js.map +1 -0
  34. package/Controls/Components/Grouping/BannerGroup/BannerGroupElement.d.ts +228 -0
  35. package/Controls/Components/Grouping/BannerGroup/BannerGroupElement.d.ts.map +1 -0
  36. package/Controls/Components/Grouping/BannerGroup/BannerGroupElement.js +560 -0
  37. package/Controls/Components/Grouping/BannerGroup/BannerGroupElement.js.map +1 -0
  38. package/Controls/Components/Grouping/BannerGroup/BannerGroupElementTemplate.d.ts +9 -0
  39. package/Controls/Components/Grouping/BannerGroup/BannerGroupElementTemplate.d.ts.map +1 -0
  40. package/Controls/Components/Grouping/BannerGroup/BannerGroupElementTemplate.js +43 -0
  41. package/Controls/Components/Grouping/BannerGroup/BannerGroupElementTemplate.js.map +1 -0
  42. package/Controls/Components/Grouping/BannerGroup/BannerGroupStacking.d.ts +6 -0
  43. package/Controls/Components/Grouping/BannerGroup/BannerGroupStacking.d.ts.map +1 -0
  44. package/Controls/Components/Grouping/BannerGroup/BannerGroupStacking.js +5 -0
  45. package/Controls/Components/Grouping/BannerGroup/BannerGroupStacking.js.map +1 -0
  46. package/Controls/Components/Grouping/BannerGroup/IBannerGroupElementProps.d.ts +36 -0
  47. package/Controls/Components/Grouping/BannerGroup/IBannerGroupElementProps.d.ts.map +1 -0
  48. package/Controls/Components/Grouping/BannerGroup/IBannerGroupElementProps.js +3 -0
  49. package/Controls/Components/Grouping/BannerGroup/IBannerGroupElementProps.js.map +1 -0
  50. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Cosmopolitan.d.ts +6 -0
  51. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Cosmopolitan.d.ts.map +1 -0
  52. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Cosmopolitan.js +188 -0
  53. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Cosmopolitan.js.map +1 -0
  54. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Joy.d.ts +6 -0
  55. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Joy.d.ts.map +1 -0
  56. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Joy.js +188 -0
  57. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Joy.js.map +1 -0
  58. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Retro.d.ts +6 -0
  59. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Retro.d.ts.map +1 -0
  60. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Retro.js +188 -0
  61. package/Controls/Components/Grouping/BannerGroup/Themes/BannerGroupElement.Retro.js.map +1 -0
  62. package/Controls/Components/Inputs/Abstracts/InputBase.d.ts +0 -4
  63. package/Controls/Components/Inputs/Abstracts/InputBase.d.ts.map +1 -1
  64. package/Controls/Components/Inputs/Abstracts/InputBase.js +0 -6
  65. package/Controls/Components/Inputs/Abstracts/InputBase.js.map +1 -1
  66. package/Controls/Components/Inputs/FileUpload/FilePickerElement.d.ts +24 -2
  67. package/Controls/Components/Inputs/FileUpload/FilePickerElement.d.ts.map +1 -1
  68. package/Controls/Components/Inputs/FileUpload/FilePickerElement.js +24 -2
  69. package/Controls/Components/Inputs/FileUpload/FilePickerElement.js.map +1 -1
  70. package/Controls/Components/Inputs/FileUpload/FileUploadElement.d.ts +26 -4
  71. package/Controls/Components/Inputs/FileUpload/FileUploadElement.d.ts.map +1 -1
  72. package/Controls/Components/Inputs/FileUpload/FileUploadElement.js +29 -5
  73. package/Controls/Components/Inputs/FileUpload/FileUploadElement.js.map +1 -1
  74. package/Controls/Components/Inputs/FileUpload/FileUploadElementTemplate.js +2 -2
  75. package/Controls/Components/Inputs/FileUpload/FileUploadElementTemplate.js.map +1 -1
  76. package/Controls/Components/Inputs/FileUpload/FileUploadItemElement.d.ts +23 -1
  77. package/Controls/Components/Inputs/FileUpload/FileUploadItemElement.d.ts.map +1 -1
  78. package/Controls/Components/Inputs/FileUpload/FileUploadItemElement.js +23 -1
  79. package/Controls/Components/Inputs/FileUpload/FileUploadItemElement.js.map +1 -1
  80. package/Controls/Components/Inputs/PinBox/PinBoxElement.d.ts.map +1 -1
  81. package/Controls/Components/Inputs/PinBox/PinBoxElement.js +11 -6
  82. package/Controls/Components/Inputs/PinBox/PinBoxElement.js.map +1 -1
  83. package/Controls/Components/Inputs/SearchBox/SearchBoxElement.d.ts.map +1 -1
  84. package/Controls/Components/Inputs/SearchBox/SearchBoxElement.js +16 -1
  85. package/Controls/Components/Inputs/SearchBox/SearchBoxElement.js.map +1 -1
  86. package/Controls/Components/Layouts/Absolute/AbsoluteElement.d.ts.map +1 -1
  87. package/Controls/Components/Layouts/Absolute/AbsoluteItemElement.d.ts.map +1 -1
  88. package/Controls/Components/Layouts/Split/SplitElement.d.ts.map +1 -1
  89. package/Controls/Components/Layouts/Split/SplitElement.js +6 -1
  90. package/Controls/Components/Layouts/Split/SplitElement.js.map +1 -1
  91. package/Controls/Components/Layouts/Split/Themes/SplitElement.Cosmopolitan.js +1 -1
  92. package/Controls/Components/Layouts/Split/Themes/SplitElement.Joy.js +1 -1
  93. package/Controls/Components/Layouts/Split/Themes/SplitElement.Retro.js +1 -1
  94. package/Controls/Components/Primitives/DropZone/DropZoneElement.d.ts +53 -7
  95. package/Controls/Components/Primitives/DropZone/DropZoneElement.d.ts.map +1 -1
  96. package/Controls/Components/Primitives/DropZone/DropZoneElement.js +135 -28
  97. package/Controls/Components/Primitives/DropZone/DropZoneElement.js.map +1 -1
  98. package/Controls/Components/Primitives/DropZone/Events/IDropZoneDataEventDetail.d.ts +1 -1
  99. package/Controls/Components/Primitives/DropZone/Events/IDropZoneDataEventDetail.d.ts.map +1 -1
  100. package/Controls/Components/Primitives/DropZone/IDropZoneElementProps.d.ts.map +1 -1
  101. package/Controls/Components/Primitives/DropZone/Themes/DropZoneElement.Cosmopolitan.d.ts.map +1 -1
  102. package/Controls/Components/Primitives/DropZone/Themes/DropZoneElement.Cosmopolitan.js +124 -3
  103. package/Controls/Components/Primitives/DropZone/Themes/DropZoneElement.Cosmopolitan.js.map +1 -1
  104. package/Controls/Components/Primitives/DropZone/Themes/DropZoneElement.Joy.d.ts.map +1 -1
  105. package/Controls/Components/Primitives/DropZone/Themes/DropZoneElement.Joy.js +160 -9
  106. package/Controls/Components/Primitives/DropZone/Themes/DropZoneElement.Joy.js.map +1 -1
  107. package/Controls/Components/Primitives/DropZone/Themes/DropZoneElement.Retro.d.ts.map +1 -1
  108. package/Controls/Components/Primitives/DropZone/Themes/DropZoneElement.Retro.js +124 -3
  109. package/Controls/Components/Primitives/DropZone/Themes/DropZoneElement.Retro.js.map +1 -1
  110. package/Controls/Types/BannerGroupDismissBehavior.d.ts +7 -0
  111. package/Controls/Types/BannerGroupDismissBehavior.d.ts.map +1 -0
  112. package/Controls/Types/BannerGroupDismissBehavior.js +6 -0
  113. package/Controls/Types/BannerGroupDismissBehavior.js.map +1 -0
  114. package/Controls/Types/BannerGroupStacking.d.ts +6 -0
  115. package/Controls/Types/BannerGroupStacking.d.ts.map +1 -0
  116. package/Controls/Types/BannerGroupStacking.js +5 -0
  117. package/Controls/Types/BannerGroupStacking.js.map +1 -0
  118. package/Controls/Types/DropZoneState.d.ts +20 -0
  119. package/Controls/Types/DropZoneState.d.ts.map +1 -0
  120. package/Controls/Types/DropZoneState.js +16 -0
  121. package/Controls/Types/DropZoneState.js.map +1 -0
  122. package/Index.d.ts +3 -0
  123. package/Index.d.ts.map +1 -1
  124. package/Index.js +3 -0
  125. package/Index.js.map +1 -1
  126. package/custom-elements.json +892 -66
  127. package/package.json +3 -3
@@ -0,0 +1,560 @@
1
+ // #region Imports
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ import { Themeable } from '../../../Behaviors/Themeable';
12
+ import { Appearanceable } from '../../../Behaviors/Appearanceable';
13
+ import { Disableable } from '../../../Behaviors/Disableable';
14
+ import { Orientable } from '../../../Behaviors/Orientable';
15
+ import { Slottable } from '../../../Behaviors/Slottable';
16
+ import { Variantable } from '../../../Behaviors/Variantable';
17
+ import { Attribute } from '../../../Decorators/AttributeDecorator';
18
+ import { Component } from '../../../Decorators/ComponentDecorator';
19
+ import { Watch } from '../../../Decorators/WatchDecorator';
20
+ import { CustomElement } from '../../Abstracts/CustomElement';
21
+ import { BannerElement } from '../Banner/BannerElement';
22
+ import { bannerGroupElementTemplate } from './BannerGroupElementTemplate';
23
+ import { bannerGroupElementJoyStyle } from './Themes/BannerGroupElement.Joy';
24
+ import { bannerGroupElementRetroStyle } from './Themes/BannerGroupElement.Retro';
25
+ import { bannerGroupElementCosmopolitanStyle } from './Themes/BannerGroupElement.Cosmopolitan';
26
+ import { Emit } from '../../../../Events/Decorators/EmitDecorator';
27
+ import { HTMLElementEventEmitter } from '@breadstone/mosaik-elements';
28
+ import { KeyboardController } from '../../../Controllers/KeyboardController';
29
+ import { Key } from '../../../Types/Key';
30
+ import { Orientation } from '../../../Types/Orientation';
31
+ import { BannerGroupDismissBehavior } from '../../../Types/BannerGroupDismissBehavior';
32
+ import { BannerGroupStacking } from '../../../Types/BannerGroupStacking';
33
+ import { RendererServiceLocator } from '../../../../Dom/Renderer';
34
+ /**
35
+ * BannerGroup - A container component for managing and presenting multiple `Banner` instances.
36
+ *
37
+ * @description
38
+ * The `BannerGroup` component arranges several `<mosaik-banner>` elements either as a stack or a simple paged
39
+ * (carousel‑like) sequence. When `maxLength` equals `1`, only a single banner is shown and keyboard navigation
40
+ * allows users to move between items. When `maxLength` is greater than `1`, banners are presented in a stacked
41
+ * layout. Looping navigation can be enabled via the `loop` property. (Persistence, dismissal strategies and depth
42
+ * stacking enhancements can be incorporated in future iterations.)
43
+ *
44
+ * @name BannerGroup
45
+ * @element mosaik-banner-group
46
+ * @category Notifications
47
+ *
48
+ * @fires change - Fired when the active index changes.
49
+ *
50
+ * @slot - The default slot for banner items.
51
+ * @slot prev - Slot for a custom previous control.
52
+ * @slot next - Slot for a custom next control.
53
+ *
54
+ * @csspart root - The root wrapper part.
55
+ * @csspart viewport - The viewport that contains the banners.
56
+ * @csspart control-prev - The previous control wrapper.
57
+ * @csspart control-next - The next control wrapper.
58
+ *
59
+ * @cssprop {unknown} --banner-group-gap - Gap between stacked banners.
60
+ * @cssprop {unknown} --banner-group-transition-duration - Transition duration for paging.
61
+ *
62
+ * @dependency {BannerElement} - The Banner element.
63
+ *
64
+ * @example
65
+ * ```html
66
+ * <mosaik-banner-group max-visible="1" loop>
67
+ * <mosaik-banner header="Update 1"></mosaik-banner>
68
+ * <mosaik-banner header="Update 2"></mosaik-banner>
69
+ * <mosaik-banner header="Update 3"></mosaik-banner>
70
+ * </mosaik-banner-group>
71
+ * ```
72
+ *
73
+ * @public
74
+ */
75
+ let BannerGroupElement = class BannerGroupElement extends Themeable(Orientable(Disableable(Appearanceable(Variantable(Slottable(CustomElement)))))) {
76
+ // #region Fields
77
+ _change;
78
+ _keyboardController;
79
+ _eventSubscriptions;
80
+ _index;
81
+ _loop;
82
+ _maxLength;
83
+ _dismissBehavior;
84
+ _stacking;
85
+ _reverse;
86
+ _previousIndex;
87
+ // #endregion
88
+ // #region Ctor
89
+ /**
90
+ * @public
91
+ */
92
+ constructor() {
93
+ super();
94
+ this._change = new HTMLElementEventEmitter(this, 'change');
95
+ this._keyboardController = new KeyboardController(this, { capture: true });
96
+ this._eventSubscriptions = [];
97
+ this._index = 0;
98
+ this._loop = false;
99
+ this._maxLength = 5;
100
+ this._dismissBehavior = BannerGroupDismissBehavior.Remove;
101
+ this._stacking = BannerGroupStacking.Vertical;
102
+ this._reverse = false;
103
+ this._previousIndex = 0;
104
+ }
105
+ // #endregion
106
+ // #region Properties
107
+ /**
108
+ * Returns the `{@link is}` property.
109
+ * The `{@link is}` property represents the natural name of this element.
110
+ *
111
+ * @public
112
+ * @static
113
+ * @readonly
114
+ */
115
+ static get is() { return 'mosaik-banner-group'; }
116
+ /**
117
+ * Gets or sets the `index` property representing the current active (start) index.
118
+ *
119
+ * @public
120
+ * @attr
121
+ */
122
+ get index() { return this._index; }
123
+ set index(value) {
124
+ const banners = this.getSlotAssignmentsOf('', BannerElement);
125
+ const clamped = banners.length === 0 ? 0 : Math.max(0, Math.min(value, banners.length - 1));
126
+ if (clamped !== this._index) {
127
+ const prev = this._index;
128
+ this._previousIndex = prev;
129
+ this._index = clamped;
130
+ this.requestUpdate('index');
131
+ this.emitChange(prev);
132
+ }
133
+ }
134
+ /**
135
+ * Gets or sets the `loop` property enabling circular navigation.
136
+ *
137
+ * @public
138
+ * @attr
139
+ */
140
+ get loop() { return this._loop; }
141
+ set loop(value) {
142
+ if (this._loop !== value) {
143
+ this._loop = value;
144
+ this.requestUpdate('loop');
145
+ }
146
+ }
147
+ /**
148
+ * Gets or sets the `maxLength` property (1 = pager/carousel mode).
149
+ *
150
+ * @public
151
+ * @attr
152
+ */
153
+ get maxLength() { return this._maxLength; }
154
+ set maxLength(value) {
155
+ if (this._maxLength !== value) {
156
+ this._maxLength = value;
157
+ this.requestUpdate('maxLength');
158
+ }
159
+ }
160
+ /**
161
+ * Gets or sets the `dismissBehavior` property defining how dismissed banners are handled.
162
+ * (Future extension point.)
163
+ *
164
+ * @public
165
+ * @attr
166
+ */
167
+ get dismissBehavior() { return this._dismissBehavior; }
168
+ set dismissBehavior(value) {
169
+ if (this._dismissBehavior !== value) {
170
+ this._dismissBehavior = value;
171
+ this.requestUpdate('dismissBehavior');
172
+ }
173
+ }
174
+ /**
175
+ * Gets or sets the `stacking` property controlling vertical or depth stacking.
176
+ *
177
+ * @public
178
+ * @attr
179
+ */
180
+ get stacking() { return this._stacking; }
181
+ set stacking(value) {
182
+ if (this._stacking !== value) {
183
+ this._stacking = value;
184
+ this.requestUpdate('stacking');
185
+ }
186
+ }
187
+ /**
188
+ * Gets or sets the `reverse` property displaying newest banners first when true.
189
+ *
190
+ * @public
191
+ * @attr
192
+ */
193
+ get reverse() { return this._reverse; }
194
+ set reverse(value) {
195
+ if (this._reverse !== value) {
196
+ this._reverse = value;
197
+ this.requestUpdate('reverse');
198
+ }
199
+ }
200
+ /**
201
+ * Returns the total number of banners.
202
+ *
203
+ * @public
204
+ * @readonly
205
+ */
206
+ get length() {
207
+ return this.getSlotAssignmentsOf('', BannerElement).length;
208
+ }
209
+ /**
210
+ * Returns whether previous navigation is possible.
211
+ *
212
+ * @public
213
+ * @readonly
214
+ */
215
+ get canPrev() {
216
+ return this.length > 1 && (this.loop || this.index > 0);
217
+ }
218
+ /**
219
+ * Returns whether next navigation is possible.
220
+ *
221
+ * @public
222
+ * @readonly
223
+ */
224
+ get canNext() {
225
+ return this.length > 1 && (this.loop || this.index < this.length - 1);
226
+ }
227
+ /**
228
+ * Fired when the active index changes.
229
+ *
230
+ * @public
231
+ */
232
+ get change() {
233
+ return this._change;
234
+ }
235
+ // #endregion
236
+ // #region Methods
237
+ /**
238
+ * @protected
239
+ * @override
240
+ */
241
+ onSlotChanges() {
242
+ this.clearSubscriptions();
243
+ this.getSlotAssignmentsOf('', BannerElement).forEach((b) => b.classList.add('banner-group-item'));
244
+ this.index = this._index; // clamp to valid range
245
+ this.updateLayout();
246
+ }
247
+ /**
248
+ * @public
249
+ * @override
250
+ */
251
+ connectedCallback() {
252
+ super.connectedCallback();
253
+ this._keyboardController
254
+ .add(Key.LeftArrow, () => this.previous(), () => !this.disabled && this.canPrev && this.orientation === Orientation.Horizontal, { preventDefault: true })
255
+ .add(Key.RightArrow, () => this.next(), () => !this.disabled && this.canNext && this.orientation === Orientation.Horizontal, { preventDefault: true })
256
+ .add(Key.UpArrow, () => this.previous(), () => !this.disabled && this.canPrev && this.orientation === Orientation.Vertical, { preventDefault: true })
257
+ .add(Key.DownArrow, () => this.next(), () => !this.disabled && this.canNext && this.orientation === Orientation.Vertical, { preventDefault: true })
258
+ .add(Key.Home, () => this.first(), () => !this.disabled && this.length > 0, { preventDefault: true })
259
+ .add(Key.End, () => this.last(), () => !this.disabled && this.length > 0, { preventDefault: true });
260
+ }
261
+ /**
262
+ * Navigates to the previous banner.
263
+ *
264
+ * @public
265
+ */
266
+ previous() {
267
+ this.navigate(-1);
268
+ }
269
+ /**
270
+ * Navigates to the next banner.
271
+ *
272
+ * @public
273
+ */
274
+ next() {
275
+ this.navigate(1);
276
+ }
277
+ /**
278
+ * Navigates to the first banner.
279
+ *
280
+ * @public
281
+ */
282
+ first() {
283
+ this.index = 0;
284
+ }
285
+ /**
286
+ * Navigates to the last banner.
287
+ *
288
+ * @public
289
+ */
290
+ last() {
291
+ this.index = Math.max(0, this.length - 1);
292
+ }
293
+ /**
294
+ * Navigates to a specific index.
295
+ *
296
+ * @public
297
+ */
298
+ goTo(i) {
299
+ this.index = i;
300
+ }
301
+ onIndexPropertyChanged() {
302
+ this.updateLayout();
303
+ }
304
+ onMaxLengthPropertyChanged() {
305
+ this.updateLayout();
306
+ }
307
+ onReversePropertyChanged() {
308
+ this.updateLayout();
309
+ }
310
+ onStackingPropertyChanged() {
311
+ this.updateLayout();
312
+ }
313
+ onOrientationPropertyChanged() {
314
+ this.updateLayout();
315
+ }
316
+ // @Watch('appearance')
317
+ // protected onAppearancePropertyChanged(_prev?: Appearance, next?: Appearance): void {
318
+ // this.getSlotAssignmentsOf('', BannerElement)
319
+ // .filter((x) => x.appearance !== 'default')
320
+ // .forEach((b) => b.appearance = next ?? this.appearance);
321
+ // }
322
+ // @Watch('variant')
323
+ // protected onVariantPropertyChanged(_prev?: Variant, next?: Variant): void {
324
+ // this.getSlotAssignmentsOf('', BannerElement)
325
+ // .filter((x) => x.variant !== 'default')
326
+ // .forEach((b) => b.variant = next ?? this.variant);
327
+ // }
328
+ onDirPropertyChanged() {
329
+ this.getSlotAssignmentsOf('', BannerElement)
330
+ .forEach((b) => b.dir = this.dir);
331
+ }
332
+ onDisabledPropertyChanged(_prev, next) {
333
+ if (next !== undefined) {
334
+ this.getSlotAssignmentsOf('', BannerElement)
335
+ .forEach((b) => b.disabled = next);
336
+ }
337
+ }
338
+ navigate(delta) {
339
+ if (this.disabled || this.length === 0) {
340
+ return;
341
+ }
342
+ let next = this.index + delta;
343
+ if (this.loop && this.length > 0) {
344
+ next = (next + this.length) % this.length;
345
+ }
346
+ this.index = next;
347
+ }
348
+ emitChange(previousIndex) {
349
+ this._change.emit({
350
+ index: this._index,
351
+ previousIndex,
352
+ length: this.length
353
+ });
354
+ }
355
+ clearSubscriptions() {
356
+ this._eventSubscriptions.forEach((x) => x.dispose());
357
+ this._eventSubscriptions = [];
358
+ }
359
+ /**
360
+ * Updates banner visibility, ordering and (optional) depth stacking transforms.
361
+ *
362
+ * @private
363
+ */
364
+ updateLayout() {
365
+ const banners = this.getSlotAssignmentsOf('', BannerElement);
366
+ if (banners.length === 0) {
367
+ return;
368
+ }
369
+ const maxLength = Math.max(1, this.maxLength);
370
+ const isPager = maxLength === 1;
371
+ const start = this.index;
372
+ const endExclusive = isPager ? start + 1 : Math.min(banners.length, start + maxLength);
373
+ const ordered = this._reverse ? [...banners].reverse() : banners;
374
+ // For depth stacking we need the number of visible banners to compute layering order via CSS vars
375
+ if (!isPager && this._stacking === BannerGroupStacking.Depth) {
376
+ RendererServiceLocator.current.setStyle(this, '--banner-group-visible-count', Math.min(maxLength, banners.length));
377
+ }
378
+ else {
379
+ RendererServiceLocator.current.setStyle(this, '--banner-group-visible-count', '');
380
+ }
381
+ ordered.forEach((banner) => {
382
+ const dataIndex = banners.indexOf(banner);
383
+ // Expose the absolute item index as CSS variable (independent of visibility)
384
+ RendererServiceLocator.current.setStyle(banner, '--banner-group-item-index', dataIndex);
385
+ if (isPager) {
386
+ const isActive = dataIndex === start;
387
+ const wasActive = dataIndex === this._previousIndex;
388
+ // Clear any previous depth offsets in pager mode
389
+ RendererServiceLocator.current.setStyle(banner, '--banner-group-item-depth-offset', '');
390
+ // Ensure banner participates in animation lifecycle
391
+ banner.removeAttribute('hidden');
392
+ banner.removeAttribute('inert');
393
+ banner.toggleAttribute('data-active', isActive);
394
+ if (isActive) {
395
+ banner.setAttribute('aria-hidden', 'false');
396
+ banner.removeAttribute('data-leaving');
397
+ }
398
+ else if (wasActive) {
399
+ // Leaving state: keep visible for transition, then hide after transition end
400
+ banner.setAttribute('data-leaving', 'true');
401
+ banner.setAttribute('aria-hidden', 'true');
402
+ this.attachLeavingTransitionHandler(banner);
403
+ }
404
+ else {
405
+ // Inactive & not part of current transition: hide immediately
406
+ banner.setAttribute('aria-hidden', 'true');
407
+ banner.setAttribute('hidden', '');
408
+ banner.removeAttribute('data-leaving');
409
+ banner.removeAttribute('data-active');
410
+ }
411
+ return; // skip non‑pager logic
412
+ }
413
+ // Non‑pager (stack / depth) logic
414
+ const visible = dataIndex >= start && dataIndex < endExclusive;
415
+ banner.toggleAttribute('hidden', !visible);
416
+ if (!visible) {
417
+ banner.setAttribute('aria-hidden', 'true');
418
+ banner.setAttribute('inert', '');
419
+ banner.removeAttribute('data-active');
420
+ RendererServiceLocator.current.setStyle(banner, '--banner-group-item-depth-offset', '');
421
+ }
422
+ else {
423
+ banner.setAttribute('aria-hidden', 'false');
424
+ banner.removeAttribute('inert');
425
+ const offset = dataIndex - start;
426
+ if (this._stacking === BannerGroupStacking.Depth) {
427
+ RendererServiceLocator.current.setStyle(banner, '--banner-group-item-depth-offset', offset);
428
+ }
429
+ else {
430
+ RendererServiceLocator.current.setStyle(banner, '--banner-group-item-depth-offset', 0);
431
+ }
432
+ if (offset === 0) {
433
+ banner.setAttribute('data-active', 'true');
434
+ }
435
+ else {
436
+ banner.removeAttribute('data-active');
437
+ }
438
+ }
439
+ });
440
+ }
441
+ /**
442
+ * Attaches a one‑time transition end handler to a leaving banner (pager mode) to finalize its hidden state.
443
+ * @private
444
+ */
445
+ attachLeavingTransitionHandler(banner) {
446
+ const handler = (ev) => {
447
+ if (ev.target !== banner) {
448
+ return;
449
+ }
450
+ banner.setAttribute('hidden', '');
451
+ banner.removeAttribute('data-leaving');
452
+ banner.removeEventListener('transitionend', handler);
453
+ banner.removeEventListener('animationend', handler);
454
+ };
455
+ // Re-attach (idempotent) by removing prior handlers first
456
+ banner.removeEventListener('transitionend', handler);
457
+ banner.removeEventListener('animationend', handler);
458
+ banner.addEventListener('transitionend', handler, { once: true });
459
+ banner.addEventListener('animationend', handler, { once: true });
460
+ }
461
+ };
462
+ __decorate([
463
+ Attribute({ type: Number }),
464
+ __metadata("design:type", Number),
465
+ __metadata("design:paramtypes", [Number])
466
+ ], BannerGroupElement.prototype, "index", null);
467
+ __decorate([
468
+ Attribute({
469
+ type: Boolean,
470
+ useDefault: true
471
+ }),
472
+ __metadata("design:type", Boolean),
473
+ __metadata("design:paramtypes", [Boolean])
474
+ ], BannerGroupElement.prototype, "loop", null);
475
+ __decorate([
476
+ Attribute({ type: Number }),
477
+ __metadata("design:type", Number),
478
+ __metadata("design:paramtypes", [Number])
479
+ ], BannerGroupElement.prototype, "maxLength", null);
480
+ __decorate([
481
+ Attribute({ type: String }),
482
+ __metadata("design:type", String),
483
+ __metadata("design:paramtypes", [String])
484
+ ], BannerGroupElement.prototype, "dismissBehavior", null);
485
+ __decorate([
486
+ Attribute({ type: String }),
487
+ __metadata("design:type", String),
488
+ __metadata("design:paramtypes", [String])
489
+ ], BannerGroupElement.prototype, "stacking", null);
490
+ __decorate([
491
+ Attribute({
492
+ type: Boolean,
493
+ useDefault: true
494
+ }),
495
+ __metadata("design:type", Boolean),
496
+ __metadata("design:paramtypes", [Boolean])
497
+ ], BannerGroupElement.prototype, "reverse", null);
498
+ __decorate([
499
+ Emit({ eventName: 'change' }),
500
+ __metadata("design:type", Object),
501
+ __metadata("design:paramtypes", [])
502
+ ], BannerGroupElement.prototype, "change", null);
503
+ __decorate([
504
+ Watch('index'),
505
+ __metadata("design:type", Function),
506
+ __metadata("design:paramtypes", []),
507
+ __metadata("design:returntype", void 0)
508
+ ], BannerGroupElement.prototype, "onIndexPropertyChanged", null);
509
+ __decorate([
510
+ Watch('maxLength'),
511
+ __metadata("design:type", Function),
512
+ __metadata("design:paramtypes", []),
513
+ __metadata("design:returntype", void 0)
514
+ ], BannerGroupElement.prototype, "onMaxLengthPropertyChanged", null);
515
+ __decorate([
516
+ Watch('reverse'),
517
+ __metadata("design:type", Function),
518
+ __metadata("design:paramtypes", []),
519
+ __metadata("design:returntype", void 0)
520
+ ], BannerGroupElement.prototype, "onReversePropertyChanged", null);
521
+ __decorate([
522
+ Watch('stacking'),
523
+ __metadata("design:type", Function),
524
+ __metadata("design:paramtypes", []),
525
+ __metadata("design:returntype", void 0)
526
+ ], BannerGroupElement.prototype, "onStackingPropertyChanged", null);
527
+ __decorate([
528
+ Watch('orientation'),
529
+ __metadata("design:type", Function),
530
+ __metadata("design:paramtypes", []),
531
+ __metadata("design:returntype", void 0)
532
+ ], BannerGroupElement.prototype, "onOrientationPropertyChanged", null);
533
+ __decorate([
534
+ Watch('dir'),
535
+ __metadata("design:type", Function),
536
+ __metadata("design:paramtypes", []),
537
+ __metadata("design:returntype", void 0)
538
+ ], BannerGroupElement.prototype, "onDirPropertyChanged", null);
539
+ __decorate([
540
+ Watch('disabled'),
541
+ __metadata("design:type", Function),
542
+ __metadata("design:paramtypes", [Boolean, Boolean]),
543
+ __metadata("design:returntype", void 0)
544
+ ], BannerGroupElement.prototype, "onDisabledPropertyChanged", null);
545
+ BannerGroupElement = __decorate([
546
+ Component({
547
+ selector: 'mosaik-banner-group',
548
+ template: bannerGroupElementTemplate,
549
+ themes: {
550
+ joy: bannerGroupElementJoyStyle,
551
+ retro: bannerGroupElementRetroStyle,
552
+ cosmopolitan: bannerGroupElementCosmopolitanStyle
553
+ },
554
+ host: { role: 'region' },
555
+ imports: [BannerElement]
556
+ }),
557
+ __metadata("design:paramtypes", [])
558
+ ], BannerGroupElement);
559
+ export { BannerGroupElement };
560
+ //# sourceMappingURL=BannerGroupElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerGroupElement.js","sourceRoot":"","sources":["../../../../../src/Controls/Components/Grouping/BannerGroup/BannerGroupElement.ts"],"names":[],"mappings":"AAAA,kBAAkB;;;;;;;;;;AAElB,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAmB,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EAAE,IAAI,EAAE,MAAM,6CAA6C,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAA0E,MAAM,6BAA6B,CAAC;AAC9I,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAWlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAaI,IAAM,kBAAkB,GAAxB,MAAM,kBACT,SAAQ,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAGjG,iBAAiB;IAEA,OAAO,CAA+C;IACtD,mBAAmB,CAAqB;IACjD,mBAAmB,CAAoC;IACvD,MAAM,CAAS;IACf,KAAK,CAAU;IACf,UAAU,CAAS;IACnB,gBAAgB,CAA6B;IAC7C,SAAS,CAAsB;IAC/B,QAAQ,CAAU;IAClB,cAAc,CAAS;IAE/B,aAAa;IAEb,eAAe;IACf;;OAEG;IACH;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAuB,CAAgC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1F,IAAI,CAAC,mBAAmB,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,0BAA0B,CAAC,MAAM,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,aAAa;IAEb,qBAAqB;IACrB;;;;;;;OAOG;IACI,MAAM,KAAK,EAAE,KAAa,OAAO,qBAAqB,CAAC,CAAC,CAAC;IAEhE;;;;;OAKG;IACH,IACW,KAAK,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,IAAW,KAAK,CAAC,KAAa;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAI,OAAO,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,IAIW,IAAI,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,IAAW,IAAI,CAAC,KAAc;QAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,IACW,SAAS,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,IAAW,SAAS,CAAC,KAAa;QAC9B,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,IACW,eAAe,KAAiC,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1F,IAAW,eAAe,CAAC,KAAiC;QACxD,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,IACW,QAAQ,KAA0B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACrE,IAAW,QAAQ,CAAC,KAA0B;QAC1C,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,IAIW,OAAO,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,IAAW,OAAO,CAAC,KAAc;QAC7B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACH,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACH,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACH,IACW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,aAAa;IAEb,kBAAkB;IAClB;;;OAGG;IACa,aAAa;QACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,uBAAuB;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACa,iBAAiB;QAC7B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,mBAAmB;aACnB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;aACxJ,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;aACrJ,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;aACpJ,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;aAClJ,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;aACpG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACX,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,IAAI;QACP,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,KAAK;QACR,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,IAAI;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,CAAS;QACjB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAGS,sBAAsB;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAGS,0BAA0B;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAGS,wBAAwB;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAGS,yBAAyB;QAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAGS,4BAA4B;QAClC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,uBAAuB;IACvB,uFAAuF;IACvF,mDAAmD;IACnD,qDAAqD;IACrD,mEAAmE;IACnE,IAAI;IAEJ,oBAAoB;IACpB,8EAA8E;IAC9E,mDAAmD;IACnD,kDAAkD;IAClD,6DAA6D;IAC7D,IAAI;IAGM,oBAAoB;QAC1B,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC;aACvC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAGS,yBAAyB,CAAC,KAAe,EAAE,IAAc;QAC/D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC;iBACvC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC1B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAE9B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAEO,UAAU,CAAC,aAAqB;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,aAAa;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAEO,kBAAkB;QACtB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACK,YAAY;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,SAAS,KAAK,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;QAEvF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAEjE,kGAAkG;QAClG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC3D,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,8BAA8B,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACvH,CAAC;aAAM,CAAC;YACJ,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,8BAA8B,EAAE,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1C,6EAA6E;YAC7E,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,2BAA2B,EAAE,SAAS,CAAC,CAAC;YAExF,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,QAAQ,GAAG,SAAS,KAAK,KAAK,CAAC;gBACrC,MAAM,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC,cAAc,CAAC;gBAEpD,iDAAiD;gBACjD,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,kCAAkC,EAAE,EAAE,CAAC,CAAC;gBAExF,oDAAoD;gBACpD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACjC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBAEhD,IAAI,QAAQ,EAAE,CAAC;oBACX,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;oBAC5C,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBAC3C,CAAC;qBAAM,IAAI,SAAS,EAAE,CAAC;oBACnB,6EAA6E;oBAC7E,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;oBAC5C,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;oBAC3C,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACJ,8DAA8D;oBAC9D,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;oBAC3C,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAClC,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;oBACvC,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBAC1C,CAAC;gBACD,OAAO,CAAC,uBAAuB;YACnC,CAAC;YAED,kCAAkC;YAClC,MAAM,OAAO,GAAG,SAAS,IAAI,KAAK,IAAI,SAAS,GAAG,YAAY,CAAC;YAC/D,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAC3C,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACjC,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBACtC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,kCAAkC,EAAE,EAAE,CAAC,CAAC;YAC5F,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBAC5C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;gBACjC,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,CAAC,KAAK,EAAE,CAAC;oBAC/C,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,kCAAkC,EAAE,MAAM,CAAC,CAAC;gBAChG,CAAC;qBAAM,CAAC;oBACJ,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAC,CAAC;gBAC3F,CAAC;gBACD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;oBAAC,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAAC,CAAC;qBAAM,CAAC;oBAAC,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBAAC,CAAC;YACrH,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACK,8BAA8B,CAAC,MAAqB;QACxD,MAAM,OAAO,GAAG,CAAC,EAAS,EAAQ,EAAE;YAChC,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACrC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YACvC,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAwB,CAAC,CAAC;YACtE,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAwB,CAAC,CAAC;QACzE,CAAC,CAAC;QACF,0DAA0D;QAC1D,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAwB,CAAC,CAAC;QACtE,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAwB,CAAC,CAAC;QACrE,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,OAAwB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACnF,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAwB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;CAGJ,CAAA;AArYG;IAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;;+CACsB;AAmBlD;IAAC,SAAS,CAAC;QACP,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,IAAI;KACnB,CAAC;;;8CAC+C;AAcjD;IAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;;mDAC8B;AAe1D;IAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;;yDAC8D;AAc1F;IAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;;kDACyC;AAcrE;IAAC,SAAS,CAAC;QACP,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,IAAI;KACnB,CAAC;;;iDACqD;AA2CvD;IAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;;;gDAG7B;AA4ES;IADT,KAAK,CAAC,OAAO,CAAC;;;;gEAGd;AAGS;IADT,KAAK,CAAC,WAAW,CAAC;;;;oEAGlB;AAGS;IADT,KAAK,CAAC,SAAS,CAAC;;;;kEAGhB;AAGS;IADT,KAAK,CAAC,UAAU,CAAC;;;;mEAGjB;AAGS;IADT,KAAK,CAAC,aAAa,CAAC;;;;sEAGpB;AAiBS;IADT,KAAK,CAAC,KAAK,CAAC;;;;8DAIZ;AAGS;IADT,KAAK,CAAC,UAAU,CAAC;;;;mEAMjB;AA5TQ,kBAAkB;IAZ9B,SAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,0BAA0B;QACpC,MAAM,EAAE;YACJ,GAAG,EAAE,0BAA0B;YAC/B,KAAK,EAAE,4BAA4B;YACnC,YAAY,EAAE,mCAAmC;SACpD;QACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,OAAO,EAAE,CAAC,aAAa,CAAC;KAC3B,CAAC;;GAEW,kBAAkB,CA6b9B"}
@@ -0,0 +1,9 @@
1
+ import { type TemplateResult } from '../../../../Dom/Html';
2
+ import type { BannerGroupElement } from './BannerGroupElement';
3
+ /**
4
+ * The template of the {@link BannerGroupElement}.
5
+ *
6
+ * @public
7
+ */
8
+ export declare function bannerGroupElementTemplate<T extends BannerGroupElement>(e: T): TemplateResult;
9
+ //# sourceMappingURL=BannerGroupElementTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerGroupElementTemplate.d.ts","sourceRoot":"","sources":["../../../../../src/Controls/Components/Grouping/BannerGroup/BannerGroupElementTemplate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI/D;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,kBAAkB,EAAE,CAAC,EAAE,CAAC,GAAG,cAAc,CAiC7F"}
@@ -0,0 +1,43 @@
1
+ // #region Imports
2
+ import { html } from '../../../../Dom/Html';
3
+ import { when } from '../../../Directives/Directives';
4
+ // #endregion
5
+ /**
6
+ * The template of the {@link BannerGroupElement}.
7
+ *
8
+ * @public
9
+ */
10
+ export function bannerGroupElementTemplate(e) {
11
+ // Using public API instead of private collection access
12
+ const length = e.length;
13
+ const isPager = e.maxLength === 1;
14
+ return html `
15
+ <div part="root"
16
+ role="region"
17
+ aria-roledescription="${isPager ? 'carousel' : 'stack'}"
18
+ tabindex="0">
19
+ <div part="viewport" class="viewport">
20
+ <slot></slot>
21
+ </div>
22
+ ${when(isPager && length > 1, () => html `
23
+ <div part="control-prev" class="controls prev">
24
+ <slot name="prev">
25
+ <button type="button"
26
+ ?disabled="${e.disabled || !e.canPrev}"
27
+ aria-label="Previous banner"
28
+ @click="${() => e.previous()}">◀</button>
29
+ </slot>
30
+ </div>
31
+ <div part="control-next" class="controls next">
32
+ <slot name="next">
33
+ <button type="button"
34
+ ?disabled="${e.disabled || !e.canNext}"
35
+ aria-label="Next banner"
36
+ @click="${() => e.next()}">▶</button>
37
+ </slot>
38
+ </div>
39
+ `)}
40
+ </div>
41
+ `;
42
+ }
43
+ //# sourceMappingURL=BannerGroupElementTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerGroupElementTemplate.js","sourceRoot":"","sources":["../../../../../src/Controls/Components/Grouping/BannerGroup/BannerGroupElementTemplate.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,EAAE,IAAI,EAAuB,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAGtD,aAAa;AAEb;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAA+B,CAAI;IACzE,wDAAwD;IACxD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC;IAElC,OAAO,IAAI,CAAA;;;iCAGkB,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;;;;;cAKjD,IAAI,CAAC,OAAO,IAAI,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAA;;;;yCAIX,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO;;sCAE3B,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;;;;;;yCAMf,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO;;sCAE3B,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;;;aAGvC,CAAC;;KAET,CAAC;AACN,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const BannerGroupStacking: {
2
+ readonly Vertical: "vertical";
3
+ readonly Depth: "depth";
4
+ };
5
+ export type BannerGroupStacking = typeof BannerGroupStacking[keyof typeof BannerGroupStacking];
6
+ //# sourceMappingURL=BannerGroupStacking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerGroupStacking.d.ts","sourceRoot":"","sources":["../../../../../src/Controls/Components/Grouping/BannerGroup/BannerGroupStacking.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const BannerGroupStacking = {
2
+ Vertical: 'vertical',
3
+ Depth: 'depth'
4
+ };
5
+ //# sourceMappingURL=BannerGroupStacking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerGroupStacking.js","sourceRoot":"","sources":["../../../../../src/Controls/Components/Grouping/BannerGroup/BannerGroupStacking.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;CACR,CAAC"}