@progress/kendo-angular-navigation 2.1.1-dev.202211170812 → 11.0.0-develop.79

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 (111) hide show
  1. package/NOTICE.txt +3 -3
  2. package/actionsheet/actionsheet.component.d.ts +1 -1
  3. package/actionsheet/item.component.d.ts +1 -1
  4. package/actionsheet/list.component.d.ts +1 -1
  5. package/actionsheet/models/actionsheet-item.interface.d.ts +1 -1
  6. package/actionsheet/models/group.d.ts +1 -1
  7. package/actionsheet/models/index.d.ts +1 -1
  8. package/actionsheet/models/item-click.event.d.ts +1 -1
  9. package/actionsheet/templates/content-template.directive.d.ts +1 -1
  10. package/actionsheet/templates/footer-template.directive.d.ts +1 -1
  11. package/actionsheet/templates/header-template.directive.d.ts +1 -1
  12. package/actionsheet/templates/item-template.directive.d.ts +1 -1
  13. package/actionsheet.module.d.ts +1 -1
  14. package/appbar/appbar-section.component.d.ts +1 -1
  15. package/appbar/appbar-spacer.component.d.ts +1 -1
  16. package/appbar/appbar.component.d.ts +1 -1
  17. package/appbar/models/position-mode.d.ts +1 -1
  18. package/appbar/models/position.d.ts +1 -1
  19. package/appbar/models/theme-color.d.ts +1 -1
  20. package/appbar.module.d.ts +1 -1
  21. package/bottomnavigation/bottomnavigation-item.component.d.ts +1 -1
  22. package/bottomnavigation/bottomnavigation.component.d.ts +1 -1
  23. package/bottomnavigation/constants.d.ts +2 -2
  24. package/bottomnavigation/events/select-event.d.ts +1 -1
  25. package/bottomnavigation/templates/item-template.directive.d.ts +1 -1
  26. package/bottomnavigation/types/bottomnavigation-fill.d.ts +1 -1
  27. package/bottomnavigation/types/bottomnavigation-item-flow.d.ts +1 -1
  28. package/bottomnavigation/types/bottomnavigation-item.d.ts +1 -1
  29. package/bottomnavigation/types/bottomnavigation-position-mode.d.ts +1 -1
  30. package/bottomnavigation/types/bottomnavigation-theme-color.d.ts +1 -1
  31. package/bottomnavigation.module.d.ts +1 -1
  32. package/breadcrumb/breadcrumb-item.component.d.ts +1 -1
  33. package/breadcrumb/breadcrumb.component.d.ts +1 -1
  34. package/breadcrumb/list.component.d.ts +1 -1
  35. package/breadcrumb/models/breadcrumb-item.interface.d.ts +1 -1
  36. package/breadcrumb/models/collapse-mode.d.ts +1 -1
  37. package/breadcrumb/models/constants.d.ts +2 -2
  38. package/breadcrumb/template-directives/item-template.directive.d.ts +1 -1
  39. package/breadcrumb/template-directives/separator.directive.d.ts +1 -1
  40. package/breadcrumb/util.d.ts +1 -1
  41. package/breadcrumb.module.d.ts +1 -1
  42. package/common/direction.d.ts +1 -1
  43. package/common/dom-queries.d.ts +1 -1
  44. package/common/preventable-event.d.ts +1 -1
  45. package/common/util.d.ts +1 -1
  46. package/{esm2015/actionsheet/actionsheet.component.js → esm2020/actionsheet/actionsheet.component.mjs} +12 -15
  47. package/{esm2015/actionsheet/item.component.js → esm2020/actionsheet/item.component.mjs} +6 -6
  48. package/{esm2015/actionsheet/list.component.js → esm2020/actionsheet/list.component.mjs} +5 -5
  49. package/{esm2015/actionsheet/models/actionsheet-item.interface.js → esm2020/actionsheet/models/actionsheet-item.interface.mjs} +1 -1
  50. package/{esm2015/actionsheet/models/group.js → esm2020/actionsheet/models/group.mjs} +1 -1
  51. package/{esm2015/actionsheet/models/index.js → esm2020/actionsheet/models/index.mjs} +1 -1
  52. package/{esm2015/actionsheet/models/item-click.event.js → esm2020/actionsheet/models/item-click.event.mjs} +1 -1
  53. package/{esm2015/actionsheet/templates/content-template.directive.js → esm2020/actionsheet/templates/content-template.directive.mjs} +5 -5
  54. package/{esm2015/actionsheet/templates/footer-template.directive.js → esm2020/actionsheet/templates/footer-template.directive.mjs} +5 -5
  55. package/{esm2015/actionsheet/templates/header-template.directive.js → esm2020/actionsheet/templates/header-template.directive.mjs} +5 -5
  56. package/{esm2015/actionsheet/templates/item-template.directive.js → esm2020/actionsheet/templates/item-template.directive.mjs} +5 -5
  57. package/{esm2015/actionsheet.module.js → esm2020/actionsheet.module.mjs} +5 -5
  58. package/{esm2015/appbar/appbar-section.component.js → esm2020/appbar/appbar-section.component.mjs} +4 -4
  59. package/{esm2015/appbar/appbar-spacer.component.js → esm2020/appbar/appbar-spacer.component.mjs} +5 -5
  60. package/{esm2015/appbar/appbar.component.js → esm2020/appbar/appbar.component.mjs} +4 -4
  61. package/{esm2015/appbar/models/position.js → esm2020/appbar/models/position-mode.mjs} +1 -1
  62. package/{esm2015/appbar/models/position-mode.js → esm2020/appbar/models/position.mjs} +1 -1
  63. package/esm2020/appbar/models/theme-color.mjs +5 -0
  64. package/{esm2015/appbar.module.js → esm2020/appbar.module.mjs} +5 -5
  65. package/{esm2015/bottomnavigation/bottomnavigation-item.component.js → esm2020/bottomnavigation/bottomnavigation-item.component.mjs} +5 -4
  66. package/{esm2015/bottomnavigation/bottomnavigation.component.js → esm2020/bottomnavigation/bottomnavigation.component.mjs} +6 -6
  67. package/{esm2015/bottomnavigation/constants.js → esm2020/bottomnavigation/constants.mjs} +1 -1
  68. package/{esm2015/bottomnavigation/events/select-event.js → esm2020/bottomnavigation/events/select-event.mjs} +1 -1
  69. package/{esm2015/bottomnavigation/templates/item-template.directive.js → esm2020/bottomnavigation/templates/item-template.directive.mjs} +5 -5
  70. package/esm2020/bottomnavigation/types/bottomnavigation-fill.mjs +5 -0
  71. package/esm2020/bottomnavigation/types/bottomnavigation-item-flow.mjs +5 -0
  72. package/esm2020/bottomnavigation/types/bottomnavigation-item.mjs +5 -0
  73. package/esm2020/bottomnavigation/types/bottomnavigation-position-mode.mjs +5 -0
  74. package/{esm2015/bottomnavigation/types/bottomnavigation-theme-color.js → esm2020/bottomnavigation/types/bottomnavigation-theme-color.mjs} +1 -1
  75. package/{esm2015/bottomnavigation.module.js → esm2020/bottomnavigation.module.mjs} +5 -5
  76. package/{esm2015/breadcrumb/breadcrumb-item.component.js → esm2020/breadcrumb/breadcrumb-item.component.mjs} +5 -5
  77. package/{esm2015/breadcrumb/breadcrumb.component.js → esm2020/breadcrumb/breadcrumb.component.mjs} +6 -6
  78. package/{esm2015/breadcrumb/list.component.js → esm2020/breadcrumb/list.component.mjs} +5 -5
  79. package/esm2020/breadcrumb/models/breadcrumb-item.interface.mjs +5 -0
  80. package/esm2020/breadcrumb/models/collapse-mode.mjs +5 -0
  81. package/{esm2015/breadcrumb/models/constants.js → esm2020/breadcrumb/models/constants.mjs} +1 -1
  82. package/{esm2015/breadcrumb/template-directives/item-template.directive.js → esm2020/breadcrumb/template-directives/item-template.directive.mjs} +5 -5
  83. package/{esm2015/breadcrumb/template-directives/separator.directive.js → esm2020/breadcrumb/template-directives/separator.directive.mjs} +6 -5
  84. package/{esm2015/breadcrumb/util.js → esm2020/breadcrumb/util.mjs} +1 -1
  85. package/{esm2015/breadcrumb.module.js → esm2020/breadcrumb.module.mjs} +5 -5
  86. package/esm2020/common/direction.mjs +5 -0
  87. package/{esm2015/common/dom-queries.js → esm2020/common/dom-queries.mjs} +1 -1
  88. package/{esm2015/common/preventable-event.js → esm2020/common/preventable-event.mjs} +1 -1
  89. package/{esm2015/common/util.js → esm2020/common/util.mjs} +1 -1
  90. package/{esm2015/main.js → esm2020/index.mjs} +1 -1
  91. package/{esm2015/navigation.module.js → esm2020/navigation.module.mjs} +5 -5
  92. package/{esm2015/package-metadata.js → esm2020/package-metadata.mjs} +3 -3
  93. package/{esm2015/kendo-angular-navigation.js → esm2020/progress-kendo-angular-navigation.mjs} +2 -2
  94. package/fesm2015/progress-kendo-angular-navigation.mjs +2325 -0
  95. package/{fesm2015/kendo-angular-navigation.js → fesm2020/progress-kendo-angular-navigation.mjs} +104 -107
  96. package/{main.d.ts → index.d.ts} +1 -1
  97. package/navigation.module.d.ts +1 -1
  98. package/package-metadata.d.ts +1 -1
  99. package/package.json +27 -53
  100. package/{kendo-angular-navigation.d.ts → progress-kendo-angular-navigation.d.ts} +2 -2
  101. package/schematics/ngAdd/index.js +1 -5
  102. package/bundles/kendo-angular-navigation.umd.js +0 -5
  103. package/esm2015/appbar/models/theme-color.js +0 -5
  104. package/esm2015/bottomnavigation/types/bottomnavigation-fill.js +0 -5
  105. package/esm2015/bottomnavigation/types/bottomnavigation-item-flow.js +0 -5
  106. package/esm2015/bottomnavigation/types/bottomnavigation-item.js +0 -5
  107. package/esm2015/bottomnavigation/types/bottomnavigation-position-mode.js +0 -5
  108. package/esm2015/breadcrumb/models/breadcrumb-item.interface.js +0 -5
  109. package/esm2015/breadcrumb/models/collapse-mode.js +0 -5
  110. package/esm2015/common/direction.js +0 -5
  111. package/schematics/ngAdd/index.js.map +0 -1
@@ -0,0 +1,2325 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2022 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import * as i0 from '@angular/core';
6
+ import { Component, HostBinding, Input, NgModule, Directive, Optional, EventEmitter, Output, ViewChildren, isDevMode, ElementRef, ViewChild, ContentChild } from '@angular/core';
7
+ import * as i1 from '@progress/kendo-angular-l10n';
8
+ import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
9
+ import { validatePackage } from '@progress/kendo-licensing';
10
+ import * as i3 from '@progress/kendo-angular-common';
11
+ import { closestInScope as closestInScope$1, isDocumentAvailable, Keys, ResizeSensorModule } from '@progress/kendo-angular-common';
12
+ import * as i1$1 from '@angular/common';
13
+ import { CommonModule } from '@angular/common';
14
+ import { fromEvent, merge, ReplaySubject, Subject, Subscription } from 'rxjs';
15
+ import { filter, map, startWith, share } from 'rxjs/operators';
16
+
17
+ /**
18
+ * @hidden
19
+ */
20
+ const packageMetadata = {
21
+ name: '@progress/kendo-angular-navigation',
22
+ productName: 'Kendo UI for Angular',
23
+ productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
24
+ publishDate: 1672320716,
25
+ version: '',
26
+ licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
27
+ };
28
+
29
+ /**
30
+ * Represents the [Kendo UI AppBar component for Angular]({% slug overview_appbar %}).
31
+ * Used to display information, actions, branding titles and additional navigation on the current screen.
32
+ */
33
+ class AppBarComponent {
34
+ constructor(localizationService) {
35
+ this.localizationService = localizationService;
36
+ this.hostClass = true;
37
+ /**
38
+ * Specifies the position of the AppBar
39
+ * ([see example]({% slug positioning_appbar %}#toc-position)).
40
+ *
41
+ * * The possible values are:
42
+ * * `top` (Default)—Positions the AppBar at the top of the content.
43
+ * Setting the `position` property to `top` requires adding the Appbar component before the page content.
44
+ * The position property applies CSS `top: 0` style in [`fixed mode`]({% slug api_navigation_appbarcomponent %}#toc-positionMode) and also adds a `box-shadow` to the bottom of the AppBar.
45
+ *
46
+ * * `bottom`—Positions the AppBar at the bottom of the content.
47
+ * Setting the `position` property to `bottom` requires adding the Appbar component after the page content.
48
+ * The position property applies CSS `bottom: 0` style in [`fixed mode`]({% slug api_navigation_appbarcomponent %}#toc-positionMode) and also adds a `box-shadow ` to the top of the AppBar.
49
+ *
50
+ */
51
+ this.position = 'top';
52
+ /**
53
+ * Specifies the positionMode of the AppBar
54
+ * ([see example]({% slug positioning_appbar %}#toc-positionmode)).
55
+ *
56
+ * * The possible values are:
57
+ * * `static` (Default)—Does not position the AppBar in any special way. It is positioned according to the normal flow of the page.
58
+ * * `sticky`—Positions the AppBar based on the user's scroll position. A sticky element toggles between static and fixed CSS [`position`](https://developer.mozilla.org/en-US/docs/Web/CSS/position) property, depending on the scroll position.
59
+ * * `fixed`—Positions the AppBar relative to the viewport. It always stays in the same place even if the page is scrolled.
60
+ */
61
+ this.positionMode = 'static';
62
+ /**
63
+ * Specifies the theme color of the AppBar.
64
+ * The theme color will be applied as background color of the component.
65
+ *
66
+ *
67
+ * * The possible values are:
68
+ * * `light` (Default)—Applies coloring based on light theme color.
69
+ * * `dark`—Applies coloring based on dark theme color.
70
+ * * `inherit`— Applies inherited coloring value.
71
+ *
72
+ */
73
+ this.themeColor = 'light';
74
+ this.rtl = false;
75
+ validatePackage(packageMetadata);
76
+ this.dynamicRTLSubscription = this.localizationService.changes.subscribe(({ rtl }) => {
77
+ this.rtl = rtl;
78
+ this.direction = this.rtl ? 'rtl' : 'ltr';
79
+ });
80
+ }
81
+ get topClass() {
82
+ return this.position === 'top';
83
+ }
84
+ get bottomClass() {
85
+ return this.position === 'bottom';
86
+ }
87
+ get stickyClass() {
88
+ return this.positionMode === 'sticky';
89
+ }
90
+ get fixedClass() {
91
+ return this.positionMode === 'fixed';
92
+ }
93
+ get staticClass() {
94
+ return this.positionMode === 'static';
95
+ }
96
+ get lightClass() {
97
+ return this.themeColor === 'light';
98
+ }
99
+ get darkClass() {
100
+ return this.themeColor === 'dark';
101
+ }
102
+ get inheritClass() {
103
+ return this.themeColor === 'inherit';
104
+ }
105
+ ngOnDestroy() {
106
+ if (this.dynamicRTLSubscription) {
107
+ this.dynamicRTLSubscription.unsubscribe();
108
+ }
109
+ }
110
+ }
111
+ AppBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AppBarComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
112
+ AppBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AppBarComponent, selector: "kendo-appbar", inputs: { position: "position", positionMode: "positionMode", themeColor: "themeColor" }, host: { properties: { "class.k-appbar": "this.hostClass", "class.k-appbar-top": "this.topClass", "class.k-appbar-bottom": "this.bottomClass", "class.k-appbar-sticky": "this.stickyClass", "class.k-appbar-fixed": "this.fixedClass", "class.k-appbar-static": "this.staticClass", "class.k-appbar-light": "this.lightClass", "class.k-appbar-dark": "this.darkClass", "class.k-appbar-inherit": "this.inheritClass", "attr.dir": "this.direction" } }, providers: [
113
+ LocalizationService,
114
+ {
115
+ provide: L10N_PREFIX,
116
+ useValue: 'kendo.appbar.component'
117
+ }
118
+ ], exportAs: ["kendoAppBar"], ngImport: i0, template: `
119
+ <ng-content></ng-content>
120
+ `, isInline: true });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AppBarComponent, decorators: [{
122
+ type: Component,
123
+ args: [{
124
+ exportAs: 'kendoAppBar',
125
+ selector: 'kendo-appbar',
126
+ template: `
127
+ <ng-content></ng-content>
128
+ `,
129
+ providers: [
130
+ LocalizationService,
131
+ {
132
+ provide: L10N_PREFIX,
133
+ useValue: 'kendo.appbar.component'
134
+ }
135
+ ]
136
+ }]
137
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; }, propDecorators: { hostClass: [{
138
+ type: HostBinding,
139
+ args: ['class.k-appbar']
140
+ }], topClass: [{
141
+ type: HostBinding,
142
+ args: ['class.k-appbar-top']
143
+ }], bottomClass: [{
144
+ type: HostBinding,
145
+ args: ['class.k-appbar-bottom']
146
+ }], stickyClass: [{
147
+ type: HostBinding,
148
+ args: ['class.k-appbar-sticky']
149
+ }], fixedClass: [{
150
+ type: HostBinding,
151
+ args: ['class.k-appbar-fixed']
152
+ }], staticClass: [{
153
+ type: HostBinding,
154
+ args: ['class.k-appbar-static']
155
+ }], lightClass: [{
156
+ type: HostBinding,
157
+ args: ['class.k-appbar-light']
158
+ }], darkClass: [{
159
+ type: HostBinding,
160
+ args: ['class.k-appbar-dark']
161
+ }], inheritClass: [{
162
+ type: HostBinding,
163
+ args: ['class.k-appbar-inherit']
164
+ }], direction: [{
165
+ type: HostBinding,
166
+ args: ['attr.dir']
167
+ }], position: [{
168
+ type: Input
169
+ }], positionMode: [{
170
+ type: Input
171
+ }], themeColor: [{
172
+ type: Input
173
+ }] } });
174
+
175
+ /**
176
+ * Represents the [Kendo UI AppBarSection component for Angular]({% slug contentarrangement_appbar %}#toc-sections).
177
+ *
178
+ * @example
179
+ *
180
+ * ```ts-no-run
181
+ * * _@Component({
182
+ * selector: 'my-app',
183
+ * template: `
184
+ * <kendo-appbar>
185
+ * <kendo-appbar-section>
186
+ * <h2>Page Title</h2>
187
+ * </kendo-appbar-section>
188
+ * </kendo-appbar>
189
+ * `
190
+ * })
191
+ * class AppComponent {}
192
+ */
193
+ class AppBarSectionComponent {
194
+ constructor() {
195
+ this.hostClass = true;
196
+ }
197
+ }
198
+ AppBarSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AppBarSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
199
+ AppBarSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AppBarSectionComponent, selector: "kendo-appbar-section", host: { properties: { "class.k-appbar-section": "this.hostClass" } }, ngImport: i0, template: `
200
+ <ng-content></ng-content>
201
+ `, isInline: true });
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AppBarSectionComponent, decorators: [{
203
+ type: Component,
204
+ args: [{
205
+ selector: 'kendo-appbar-section',
206
+ template: `
207
+ <ng-content></ng-content>
208
+ `
209
+ }]
210
+ }], propDecorators: { hostClass: [{
211
+ type: HostBinding,
212
+ args: ['class.k-appbar-section']
213
+ }] } });
214
+
215
+ /**
216
+ * @hidden
217
+ */
218
+ const isPresent = (value) => value !== null && value !== undefined;
219
+ /**
220
+ * @hidden
221
+ */
222
+ const outerWidth = (element) => {
223
+ let width = element.offsetWidth;
224
+ const style = getComputedStyle(element);
225
+ width += (parseFloat(style.marginLeft) || 0) + (parseFloat(style.marginRight) || 0);
226
+ return width;
227
+ };
228
+ /**
229
+ * @hidden
230
+ */
231
+ const getFirstAndLastFocusable = (parent) => {
232
+ const all = getAllFocusableChildren(parent);
233
+ const firstFocusable = all.length > 0 ? all[0] : parent;
234
+ const lastFocusable = all.length > 0 ? all[all.length - 1] : parent;
235
+ return [firstFocusable, lastFocusable];
236
+ };
237
+ /**
238
+ * @hidden
239
+ */
240
+ const getAllFocusableChildren = (parent) => {
241
+ return parent.querySelectorAll(focusableSelector);
242
+ };
243
+ /**
244
+ * @hidden
245
+ */
246
+ const focusableSelector = [
247
+ 'a[href]',
248
+ 'area[href]',
249
+ 'input:not([disabled])',
250
+ 'select:not([disabled])',
251
+ 'textarea:not([disabled])',
252
+ 'button:not([disabled])',
253
+ 'iframe',
254
+ 'object',
255
+ 'embed',
256
+ '*[tabindex]',
257
+ '*[contenteditable]'
258
+ ].join(',');
259
+ /**
260
+ * @hidden
261
+ */
262
+ let idx = 0;
263
+ /**
264
+ * @hidden
265
+ */
266
+ const hexColorRegex = /^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
267
+ /**
268
+ * @hidden
269
+ */
270
+ const getId = (prefix) => {
271
+ return `${prefix}${++idx}`;
272
+ };
273
+ /**
274
+ * @hidden
275
+ */
276
+ const ACTIONSHEET_ITEM_INDEX_ATTRIBUTE = 'kendo-actionsheet-item-index';
277
+ /**
278
+ * @hidden
279
+ */
280
+ const getActionSheetItemIndex = (target, targetAttr, scope) => {
281
+ const item = closestItem$1(target, targetAttr, scope);
282
+ if (item) {
283
+ return itemIndex$1(item, targetAttr);
284
+ }
285
+ };
286
+ const itemIndex$1 = (item, indexAttr) => +item.getAttribute(indexAttr);
287
+ const hasItemIndex$1 = (item, indexAttr) => isPresent(item.getAttribute(indexAttr));
288
+ const closestItem$1 = (target, targetAttr, scope) => closestInScope$1(target, el => hasItemIndex$1(el, targetAttr), scope);
289
+
290
+ /**
291
+ * Represents the [Kendo UI AppBarSpacer component for Angular]({% slug contentarrangement_appbar %}#toc-spacings).
292
+ * Used to give additional white space between the AppBar sections and provides a way for customizing its width.
293
+ *
294
+ * @example
295
+ *
296
+ * ```ts-no-run
297
+ * * _@Component({
298
+ * selector: 'my-app',
299
+ * template: `
300
+ * <kendo-appbar>
301
+ * <kendo-appbar-section>
302
+ * <button kendoButton fillMode="flat">
303
+ * <kendo-icon name="menu"></kendo-icon>
304
+ * </button>
305
+ * </kendo-appbar-section>
306
+ *
307
+ * <kendo-appbar-spacer></kendo-appbar-spacer>
308
+ *
309
+ * <kendo-appbar-section>
310
+ * <h2>Page Title</h2>
311
+ * </kendo-appbar-section>
312
+ * </kendo-appbar>
313
+ * `
314
+ * })
315
+ * class AppComponent {}
316
+ * ```
317
+ */
318
+ class AppBarSpacerComponent {
319
+ constructor(renderer, element) {
320
+ this.renderer = renderer;
321
+ this.element = element;
322
+ this.hostClass = true;
323
+ }
324
+ get sizedClass() {
325
+ return isPresent(this.width);
326
+ }
327
+ ngAfterViewInit() {
328
+ if (isPresent(this.width)) {
329
+ const element = this.element.nativeElement;
330
+ this.renderer.setStyle(element, 'flexBasis', this.width);
331
+ }
332
+ }
333
+ }
334
+ AppBarSpacerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AppBarSpacerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
335
+ AppBarSpacerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AppBarSpacerComponent, selector: "kendo-appbar-spacer", inputs: { width: "width" }, host: { properties: { "class.k-appbar-spacer": "this.hostClass", "class.k-appbar-spacer-sized": "this.sizedClass" } }, ngImport: i0, template: ``, isInline: true });
336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AppBarSpacerComponent, decorators: [{
337
+ type: Component,
338
+ args: [{
339
+ selector: 'kendo-appbar-spacer',
340
+ template: ``
341
+ }]
342
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { hostClass: [{
343
+ type: HostBinding,
344
+ args: ['class.k-appbar-spacer']
345
+ }], sizedClass: [{
346
+ type: HostBinding,
347
+ args: ['class.k-appbar-spacer-sized']
348
+ }], width: [{
349
+ type: Input
350
+ }] } });
351
+
352
+ const exportedModules$2 = [
353
+ AppBarComponent,
354
+ AppBarSectionComponent,
355
+ AppBarSpacerComponent
356
+ ];
357
+ const declarations$3 = [
358
+ ...exportedModules$2
359
+ ];
360
+ /**
361
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
362
+ * definition for the AppBar component.
363
+ *
364
+ * * @example
365
+ *
366
+ * ```ts-no-run
367
+ * // Import the AppBar module
368
+ * import { AppBarModule } from '@progress/kendo-angular-navigation';
369
+ *
370
+ * // The browser platform with a compiler
371
+ * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
372
+ * import { BrowserModule } from '@angular/platform-browser';
373
+ *
374
+ * import { NgModule } from '@angular/core';
375
+ *
376
+ * // Import the app component
377
+ * import { AppComponent } from './app.component';
378
+ *
379
+ * // Define the app module
380
+ * _@NgModule({
381
+ * declarations: [AppComponent], // declare app component
382
+ * imports: [BrowserModule, AppBarModule], // import AppBar module
383
+ * bootstrap: [AppComponent]
384
+ * })
385
+ * export class AppModule {}
386
+ *
387
+ * // Compile and launch the module
388
+ * platformBrowserDynamic().bootstrapModule(AppModule);
389
+ *
390
+ * ```
391
+ */
392
+ class AppBarModule {
393
+ }
394
+ AppBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AppBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
395
+ AppBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AppBarModule, declarations: [AppBarComponent,
396
+ AppBarSectionComponent,
397
+ AppBarSpacerComponent], imports: [CommonModule], exports: [AppBarComponent,
398
+ AppBarSectionComponent,
399
+ AppBarSpacerComponent] });
400
+ AppBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AppBarModule, imports: [[CommonModule]] });
401
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AppBarModule, decorators: [{
402
+ type: NgModule,
403
+ args: [{
404
+ declarations: [declarations$3],
405
+ exports: [exportedModules$2],
406
+ imports: [CommonModule]
407
+ }]
408
+ }] });
409
+
410
+ /**
411
+ * Represents a template that defines the content of a Breadcrumb item.
412
+ * To define the template, nest an `<ng-template>` tag with the `kendoBreadCrumbItemTemplate` directive inside the `<kendo-breadcrumb>` tag.
413
+ *
414
+ * For more information and example refer to the [Templates]({% slug templates_breadcrumb %}) article.
415
+ */
416
+ class BreadCrumbItemTemplateDirective {
417
+ constructor(templateRef) {
418
+ this.templateRef = templateRef;
419
+ }
420
+ }
421
+ BreadCrumbItemTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbItemTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
422
+ BreadCrumbItemTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: BreadCrumbItemTemplateDirective, selector: "[kendoBreadCrumbItemTemplate]", ngImport: i0 });
423
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbItemTemplateDirective, decorators: [{
424
+ type: Directive,
425
+ args: [{
426
+ selector: '[kendoBreadCrumbItemTemplate]'
427
+ }]
428
+ }], ctorParameters: function () {
429
+ return [{ type: i0.TemplateRef, decorators: [{
430
+ type: Optional
431
+ }] }];
432
+ } });
433
+
434
+ /**
435
+ * @hidden
436
+ */
437
+ const BREADCRUMB_ITEM_INDEX = 'data-kendo-breadcrumb-index';
438
+
439
+ /**
440
+ * @hidden
441
+ */
442
+ class BreadCrumbItemComponent {
443
+ constructor(el) {
444
+ this.el = el;
445
+ this.index = -1;
446
+ this.hostClasses = true;
447
+ this.disabled = false;
448
+ }
449
+ get isRootItem() {
450
+ return this.item.context.isFirst;
451
+ }
452
+ get isDisabled() {
453
+ return this.disabled || null;
454
+ }
455
+ get isLastItem() {
456
+ return this.item.context.isLast;
457
+ }
458
+ ngOnInit() {
459
+ this.disabled = this.item.data && (this.item.data.disabled || this.item.context.isLast);
460
+ }
461
+ ngAfterViewInit() {
462
+ if (isDocumentAvailable()) {
463
+ this.width = outerWidth(this.el.nativeElement);
464
+ }
465
+ }
466
+ onImageLoad() {
467
+ if (isDocumentAvailable()) {
468
+ this.width = outerWidth(this.el.nativeElement);
469
+ }
470
+ }
471
+ }
472
+ BreadCrumbItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
473
+ BreadCrumbItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BreadCrumbItemComponent, selector: "[kendoBreadCrumbItem]", inputs: { item: "item", collapseMode: "collapseMode", index: "index", itemTemplate: "itemTemplate" }, host: { properties: { "class.k-flex-none": "this.hostClasses", "class.k-breadcrumb-item": "this.hostClasses", "class.k-breadcrumb-root-item": "this.isRootItem", "attr.aria-disabled": "this.isDisabled", "class.k-breadcrumb-last-item": "this.isLastItem" } }, ngImport: i0, template: `
474
+ <ng-template #separator>
475
+ <ng-content select="[kendoBreadCrumbSeparator]"></ng-content>
476
+ </ng-template>
477
+
478
+ <ng-container *ngIf="collapseMode === 'wrap'">
479
+ <ng-container *ngTemplateOutlet="separator"></ng-container>
480
+ </ng-container>
481
+
482
+ <ng-container *ngIf="!item.context.collapsed">
483
+ <span
484
+ *ngIf="!itemTemplate"
485
+ [ngClass]="{
486
+ 'k-breadcrumb-root-link': item.context.isFirst,
487
+ 'k-breadcrumb-link': index !== 0,
488
+ 'k-breadcrumb-icontext-link': !!item.data.icon && !!item.data.text,
489
+ 'k-breadcrumb-icon-link': !!item.data.icon && !item.data.text,
490
+ 'k-disabled': disabled
491
+ }"
492
+ [title]="item.data.title || ''"
493
+ [tabindex]="disabled ? -1 : 0"
494
+ [attr.aria-current]="item.context.isLast ? true : null"
495
+ role="link"
496
+ class="k-cursor-pointer k-flex-none"
497
+ >
498
+ <img *ngIf="item.data.imageUrl" (load)="onImageLoad()" [src]="item.data.imageUrl" class="k-image" role="presentation" />
499
+ <span *ngIf="item.data.icon && !item.data.iconClass" class="k-icon k-i-{{ item.data.icon }}"></span>
500
+ <span *ngIf="item.data.iconClass" class="{{ item.data.iconClass }}"></span>
501
+ {{ item.data.text }}
502
+ </span>
503
+ <ng-template
504
+ *ngIf="itemTemplate"
505
+ [ngTemplateOutlet]="itemTemplate"
506
+ [ngTemplateOutletContext]="{
507
+ $implicit: item.data,
508
+ index: index
509
+ }"
510
+ ></ng-template>
511
+ </ng-container>
512
+
513
+ <ng-container *ngIf="collapseMode !== 'wrap'">
514
+ <ng-container *ngTemplateOutlet="separator"></ng-container>
515
+ </ng-container>
516
+ `, isInline: true, directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbItemComponent, decorators: [{
518
+ type: Component,
519
+ args: [{
520
+ // eslint-disable-next-line @angular-eslint/component-selector
521
+ selector: '[kendoBreadCrumbItem]',
522
+ template: `
523
+ <ng-template #separator>
524
+ <ng-content select="[kendoBreadCrumbSeparator]"></ng-content>
525
+ </ng-template>
526
+
527
+ <ng-container *ngIf="collapseMode === 'wrap'">
528
+ <ng-container *ngTemplateOutlet="separator"></ng-container>
529
+ </ng-container>
530
+
531
+ <ng-container *ngIf="!item.context.collapsed">
532
+ <span
533
+ *ngIf="!itemTemplate"
534
+ [ngClass]="{
535
+ 'k-breadcrumb-root-link': item.context.isFirst,
536
+ 'k-breadcrumb-link': index !== 0,
537
+ 'k-breadcrumb-icontext-link': !!item.data.icon && !!item.data.text,
538
+ 'k-breadcrumb-icon-link': !!item.data.icon && !item.data.text,
539
+ 'k-disabled': disabled
540
+ }"
541
+ [title]="item.data.title || ''"
542
+ [tabindex]="disabled ? -1 : 0"
543
+ [attr.aria-current]="item.context.isLast ? true : null"
544
+ role="link"
545
+ class="k-cursor-pointer k-flex-none"
546
+ >
547
+ <img *ngIf="item.data.imageUrl" (load)="onImageLoad()" [src]="item.data.imageUrl" class="k-image" role="presentation" />
548
+ <span *ngIf="item.data.icon && !item.data.iconClass" class="k-icon k-i-{{ item.data.icon }}"></span>
549
+ <span *ngIf="item.data.iconClass" class="{{ item.data.iconClass }}"></span>
550
+ {{ item.data.text }}
551
+ </span>
552
+ <ng-template
553
+ *ngIf="itemTemplate"
554
+ [ngTemplateOutlet]="itemTemplate"
555
+ [ngTemplateOutletContext]="{
556
+ $implicit: item.data,
557
+ index: index
558
+ }"
559
+ ></ng-template>
560
+ </ng-container>
561
+
562
+ <ng-container *ngIf="collapseMode !== 'wrap'">
563
+ <ng-container *ngTemplateOutlet="separator"></ng-container>
564
+ </ng-container>
565
+ `
566
+ }]
567
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { item: [{
568
+ type: Input
569
+ }], collapseMode: [{
570
+ type: Input
571
+ }], index: [{
572
+ type: Input
573
+ }], itemTemplate: [{
574
+ type: Input
575
+ }], hostClasses: [{
576
+ type: HostBinding,
577
+ args: ['class.k-flex-none']
578
+ }, {
579
+ type: HostBinding,
580
+ args: ['class.k-breadcrumb-item']
581
+ }], isRootItem: [{
582
+ type: HostBinding,
583
+ args: ['class.k-breadcrumb-root-item']
584
+ }], isDisabled: [{
585
+ type: HostBinding,
586
+ args: ['attr.aria-disabled']
587
+ }], isLastItem: [{
588
+ type: HostBinding,
589
+ args: ['class.k-breadcrumb-last-item']
590
+ }] } });
591
+
592
+ const closestInScope = (target, targetAttr, predicate, scope) => {
593
+ while (target && target !== scope && !predicate(target, targetAttr)) {
594
+ target = target.parentNode;
595
+ }
596
+ if (target !== scope) {
597
+ return target;
598
+ }
599
+ };
600
+ const hasItemIndex = (item, indexAttr) => isPresent(item.getAttribute(indexAttr));
601
+ /**
602
+ * @hidden
603
+ */
604
+ const itemIndex = (item, indexAttr) => +item.getAttribute(indexAttr);
605
+ /**
606
+ * @hidden
607
+ */
608
+ const closestItem = (target, targetAttr, scope) => closestInScope(target, targetAttr, hasItemIndex, scope);
609
+
610
+ const DEFAULT_ICON = 'chevron-right';
611
+ const DEFAULT_RTL_ICON = 'chevron-left';
612
+ /**
613
+ * @hidden
614
+ */
615
+ class BreadCrumbSeparatorDirective {
616
+ constructor(el, localization) {
617
+ this.el = el;
618
+ this.localization = localization;
619
+ this.defaultClasses = true;
620
+ this.ariaHidden = true;
621
+ this.direction = 'ltr';
622
+ this.direction = this.localization.rtl ? 'rtl' : 'ltr';
623
+ }
624
+ set icon(icon) {
625
+ const element = this.el.nativeElement;
626
+ element.classList.remove(`k-i-${this._icon}`);
627
+ if (isPresent(icon)) {
628
+ this._icon = icon;
629
+ this.hasDefaultIcon = false;
630
+ }
631
+ else {
632
+ this._icon = this.direction === 'ltr' ? DEFAULT_ICON : DEFAULT_RTL_ICON;
633
+ this.hasDefaultIcon = true;
634
+ }
635
+ element.classList.add(`k-i-${this._icon}`);
636
+ }
637
+ get icon() {
638
+ return this._icon;
639
+ }
640
+ ngOnInit() {
641
+ this.localizationChangesSubscription = this.localization.changes.subscribe(({ rtl }) => {
642
+ this.direction = rtl ? 'rtl' : 'ltr';
643
+ if (this.hasDefaultIcon) {
644
+ this.icon = undefined;
645
+ }
646
+ });
647
+ }
648
+ ngOnDestroy() {
649
+ this.localizationChangesSubscription.unsubscribe();
650
+ }
651
+ }
652
+ BreadCrumbSeparatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbSeparatorDirective, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
653
+ BreadCrumbSeparatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: BreadCrumbSeparatorDirective, selector: "[kendoBreadCrumbSeparator]", inputs: { icon: "icon" }, host: { properties: { "class.k-breadcrumb-delimiter-icon": "this.defaultClasses", "class.k-icon": "this.defaultClasses", "attr.aria-hidden": "this.ariaHidden" } }, ngImport: i0 });
654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbSeparatorDirective, decorators: [{
655
+ type: Directive,
656
+ args: [{
657
+ selector: '[kendoBreadCrumbSeparator]'
658
+ }]
659
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }]; }, propDecorators: { icon: [{
660
+ type: Input
661
+ }], defaultClasses: [{
662
+ type: HostBinding,
663
+ args: ['class.k-breadcrumb-delimiter-icon']
664
+ }, {
665
+ type: HostBinding,
666
+ args: ['class.k-icon']
667
+ }], ariaHidden: [{
668
+ type: HostBinding,
669
+ args: ['attr.aria-hidden']
670
+ }] } });
671
+
672
+ /**
673
+ * @hidden
674
+ */
675
+ class BreadCrumbListComponent {
676
+ constructor(el, zone) {
677
+ this.el = el;
678
+ this.zone = zone;
679
+ this.items = [];
680
+ this.collapseMode = 'auto';
681
+ this.itemClick = new EventEmitter();
682
+ const element = this.el.nativeElement;
683
+ this.isRootItemContainer = element.classList.contains('k-breadcrumb-root-item-container');
684
+ this.zone.runOutsideAngular(() => {
685
+ const click$ = fromEvent(element, 'click');
686
+ const enterKey$ = fromEvent(element, 'keydown').pipe(filter((ev /* KeyboardEvent causes lint error */) => ev.keyCode === Keys.Enter));
687
+ this.domEventsSubscription = merge(click$, enterKey$)
688
+ .pipe(map((ev) => ev.target), filter(e => !e.classList.contains('k-breadcrumb-delimiter-icon')), // do not trigger handler when a separator is clicked
689
+ map(e => this.getItemIndex(e)), filter(isPresent), map(i => parseInt(i, 10)), map(i => this.items[i]), filter(item => !item.data.disabled && !item.context.isLast), map(item => item.data))
690
+ .subscribe(el => {
691
+ this.zone.run(() => this.itemClick.emit(el));
692
+ });
693
+ });
694
+ }
695
+ ngOnDestroy() {
696
+ this.domEventsSubscription.unsubscribe();
697
+ }
698
+ getItemIndex(target) {
699
+ const item = closestItem(target, BREADCRUMB_ITEM_INDEX, this.el.nativeElement);
700
+ if (item) {
701
+ return itemIndex(item, BREADCRUMB_ITEM_INDEX);
702
+ }
703
+ }
704
+ }
705
+ BreadCrumbListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbListComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
706
+ BreadCrumbListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BreadCrumbListComponent, selector: "[kendoBreadCrumbList]", inputs: { items: "items", itemTemplate: "itemTemplate", collapseMode: "collapseMode", separatorIcon: "separatorIcon" }, outputs: { itemClick: "itemClick" }, viewQueries: [{ propertyName: "renderedItems", predicate: BreadCrumbItemComponent, descendants: true }], ngImport: i0, template: "\n <ng-container *ngFor=\"let item of items; let i = index; let isFirst = first; let isLast = last\">\n <li\n #renderedItem\n kendoBreadCrumbItem\n *ngIf=\"!(collapseMode === 'wrap' && isFirst) || isRootItemContainer\"\n [attr.data-kendo-breadcrumb-index]=\"i\"\n [item]=\"item\"\n [index]=\"i\"\n [collapseMode]=\"collapseMode\"\n [itemTemplate]=\"itemTemplate\"\n >\n <span kendoBreadCrumbSeparator [icon]=\"separatorIcon\" *ngIf=\"collapseMode === 'wrap' && !isFirst\"></span>\n <span\n kendoBreadCrumbSeparator\n [icon]=\"separatorIcon\"\n *ngIf=\"collapseMode !== 'wrap' && !isLast && !(item?.context.collapsed && items[i + 1]?.context.collapsed)\"\n ></span>\n </li>\n </ng-container>\n ", isInline: true, components: [{ type: BreadCrumbItemComponent, selector: "[kendoBreadCrumbItem]", inputs: ["item", "collapseMode", "index", "itemTemplate"] }], directives: [{ type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: BreadCrumbSeparatorDirective, selector: "[kendoBreadCrumbSeparator]", inputs: ["icon"] }] });
707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbListComponent, decorators: [{
708
+ type: Component,
709
+ args: [{
710
+ // eslint-disable-next-line @angular-eslint/component-selector
711
+ selector: '[kendoBreadCrumbList]',
712
+ template: `
713
+ <ng-container *ngFor="let item of items; let i = index; let isFirst = first; let isLast = last">
714
+ <li
715
+ #renderedItem
716
+ kendoBreadCrumbItem
717
+ *ngIf="!(collapseMode === 'wrap' && isFirst) || isRootItemContainer"
718
+ [attr.${BREADCRUMB_ITEM_INDEX}]="i"
719
+ [item]="item"
720
+ [index]="i"
721
+ [collapseMode]="collapseMode"
722
+ [itemTemplate]="itemTemplate"
723
+ >
724
+ <span kendoBreadCrumbSeparator [icon]="separatorIcon" *ngIf="collapseMode === 'wrap' && !isFirst"></span>
725
+ <span
726
+ kendoBreadCrumbSeparator
727
+ [icon]="separatorIcon"
728
+ *ngIf="collapseMode !== 'wrap' && !isLast && !(item?.context.collapsed && items[i + 1]?.context.collapsed)"
729
+ ></span>
730
+ </li>
731
+ </ng-container>
732
+ `
733
+ }]
734
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { items: [{
735
+ type: Input
736
+ }], itemTemplate: [{
737
+ type: Input
738
+ }], collapseMode: [{
739
+ type: Input
740
+ }], separatorIcon: [{
741
+ type: Input
742
+ }], itemClick: [{
743
+ type: Output
744
+ }], renderedItems: [{
745
+ type: ViewChildren,
746
+ args: [BreadCrumbItemComponent]
747
+ }] } });
748
+
749
+ const getCollapsed = (itemComponent) => itemComponent.item.context.collapsed;
750
+ /**
751
+ * @hidden
752
+ */
753
+ const collapsed = (itemComponent) => getCollapsed(itemComponent) === true;
754
+ /**
755
+ * @hidden
756
+ */
757
+ const expanded = (itemComponent) => getCollapsed(itemComponent) === false;
758
+ const toggleFirst = (collapsed) => (itemComponents) => (itemComponents.find(ic => getCollapsed(ic) === collapsed).item.context.collapsed = !collapsed);
759
+ /**
760
+ * @hidden
761
+ */
762
+ const collapseFirst = toggleFirst(false);
763
+ /**
764
+ * @hidden
765
+ */
766
+ const expandFirst = toggleFirst(true);
767
+
768
+ /**
769
+ * Represents the [Kendo UI Breadcrumb component for Angular]({% slug overview_breadcrumb %}).
770
+ *
771
+ * @example
772
+ * ```ts-no-run
773
+ * _@Component({
774
+ * selector: 'my-app',
775
+ * template: `
776
+ * <kendo-breadcrumb
777
+ * [items]="items"
778
+ * (itemClick)="onItemClick($event)">
779
+ * </kendo-breadcrumb>
780
+ * `
781
+ * })
782
+ * class AppComponent {
783
+ * public items: BreadCrumbItem[] = [
784
+ * { text: 'Home', title: 'Home', icon: 'home' },
785
+ * { text: 'Kids', title: 'Kids' },
786
+ * { text: '8y-16y', title: '8y-16y', disabled: true },
787
+ * { text: 'New collection', title: 'New collection' },
788
+ * { text: 'Jeans', title: 'Jeans' }
789
+ * ];
790
+ *
791
+ * public onItemClick(item: BreadCrumbItem): void {
792
+ * console.log(item);
793
+ * }
794
+ * }
795
+ * ```
796
+ */
797
+ class BreadCrumbComponent {
798
+ constructor(el, cdr, zone, localization) {
799
+ this.el = el;
800
+ this.cdr = cdr;
801
+ this.zone = zone;
802
+ this.localization = localization;
803
+ /**
804
+ * Fires when a Breadcrumb item is clicked. The event will not be fired by disabled items and the last item.
805
+ */
806
+ this.itemClick = new EventEmitter();
807
+ this.hostClasses = true;
808
+ this._items = [];
809
+ this._collapseMode = 'auto';
810
+ this.updateItems = new ReplaySubject();
811
+ this.afterViewInit = new Subject();
812
+ this.subscriptions = new Subscription();
813
+ this.direction = 'ltr';
814
+ validatePackage(packageMetadata);
815
+ const updateItems$ = this.updateItems.asObservable().pipe(startWith([]));
816
+ this.direction = localization.rtl ? 'rtl' : 'ltr';
817
+ this.itemsData$ = updateItems$.pipe(map(items => items.filter(Boolean)), map(items => items.map((item, index, collection) => ({
818
+ context: {
819
+ collapsed: false,
820
+ isLast: index === collection.length - 1,
821
+ isFirst: index === 0
822
+ },
823
+ data: item
824
+ }))), share());
825
+ this.firstItem$ = updateItems$.pipe(map(items => {
826
+ if (items.length > 0) {
827
+ return [
828
+ {
829
+ context: {
830
+ collapsed: false,
831
+ isLast: items.length === 1,
832
+ isFirst: true
833
+ },
834
+ data: items[0]
835
+ }
836
+ ];
837
+ }
838
+ return [];
839
+ }), share());
840
+ }
841
+ /**
842
+ * The collection of items that will be rendered in the Breadcrumb.
843
+ */
844
+ set items(items) {
845
+ this._items = items || [];
846
+ this.updateItems.next(this._items);
847
+ }
848
+ get items() {
849
+ return this._items;
850
+ }
851
+ /**
852
+ * Specifies the collapse mode of the Breadcrumb ([see example]({% slug collapse_modes_breadcrumb %})).
853
+ *
854
+ * The possible values are:
855
+ * - `auto` (default)&mdash;items are automatically collapsed based on the width of the Breadcrumb.
856
+ * - `wrap`&mdash;items are wrapped on multiple rows.
857
+ * - `none`&mdash;all items are expanded on the same row.
858
+ *
859
+ * For more information and example refer to the [Collapse Modes]({% slug collapse_modes_breadcrumb %}) article.
860
+ */
861
+ set collapseMode(mode) {
862
+ if (isDevMode() && ['auto', 'wrap', 'none'].indexOf(mode) < 0) {
863
+ throw new Error('Invalid collapse mode. Allowed values are "auto", "wrap" or "none". \nFor more details see https://www.telerik.com/kendo-angular-ui/components/navigation/api/BreadCrumbCollapseMode/');
864
+ }
865
+ this._collapseMode = mode || 'auto';
866
+ this.updateItems.next(this.items);
867
+ }
868
+ get collapseMode() {
869
+ return this._collapseMode;
870
+ }
871
+ get wrapMode() {
872
+ return this.collapseMode === 'wrap';
873
+ }
874
+ get getDir() {
875
+ return this.direction;
876
+ }
877
+ ngOnInit() {
878
+ this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
879
+ }
880
+ ngAfterViewInit() {
881
+ this.attachResizeHandler();
882
+ this.afterViewInit.next();
883
+ }
884
+ ngOnDestroy() {
885
+ this.subscriptions.unsubscribe();
886
+ }
887
+ handleResize() {
888
+ const autoCollapseCandidates = [
889
+ ...this.listComponent.renderedItems.toArray().filter(ri => !ri.item.context.isFirst && !ri.item.context.isLast)
890
+ ];
891
+ const componentWidth = outerWidth(this.el.nativeElement);
892
+ const itemsContainerWidth = Math.floor(this.itemsContainers
893
+ .toArray()
894
+ .map(el => outerWidth(el.nativeElement))
895
+ .reduce((acc, curr) => acc + curr, 0));
896
+ const nextExpandWidth = ([...autoCollapseCandidates].reverse().find(collapsed) || { width: 0 }).width;
897
+ // // shrink
898
+ if (componentWidth <= itemsContainerWidth && autoCollapseCandidates.find(expanded)) {
899
+ collapseFirst(autoCollapseCandidates);
900
+ // needed by resize sensor
901
+ this.cdr.detectChanges();
902
+ return this.handleResize();
903
+ }
904
+ // expand
905
+ if (componentWidth > itemsContainerWidth + nextExpandWidth && autoCollapseCandidates.find(collapsed)) {
906
+ expandFirst([...autoCollapseCandidates].reverse());
907
+ // needed by resize sensor
908
+ this.cdr.detectChanges();
909
+ return this.handleResize();
910
+ }
911
+ }
912
+ shouldResize() {
913
+ return isDocumentAvailable() && this.collapseMode === 'auto';
914
+ }
915
+ attachResizeHandler() {
916
+ // resize when:
917
+ // the component is initialized
918
+ // the container is resized
919
+ // items are added/removed
920
+ this.subscriptions.add(merge(this.resizeSensor.resize, this.itemsData$, this.afterViewInit.asObservable())
921
+ .pipe(filter(() => this.shouldResize()))
922
+ .subscribe(() => {
923
+ this.zone.runOutsideAngular(() => setTimeout(() => {
924
+ this.zone.run(() => {
925
+ if (this.listComponent) {
926
+ this.handleResize();
927
+ this.resizeSensor.acceptSize();
928
+ }
929
+ });
930
+ }));
931
+ }));
932
+ }
933
+ }
934
+ BreadCrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
935
+ BreadCrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BreadCrumbComponent, selector: "kendo-breadcrumb", inputs: { items: "items", separatorIcon: "separatorIcon", collapseMode: "collapseMode" }, outputs: { itemClick: "itemClick" }, host: { properties: { "class.k-widget": "this.hostClasses", "class.k-breadcrumb": "this.hostClasses", "class.k-breadcrumb-wrap": "this.wrapMode", "attr.dir": "this.getDir" } }, providers: [
936
+ LocalizationService,
937
+ {
938
+ provide: L10N_PREFIX,
939
+ useValue: 'kendo.breadcrumb'
940
+ }
941
+ ], queries: [{ propertyName: "itemTemplate", first: true, predicate: BreadCrumbItemTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "resizeSensor", first: true, predicate: ["resizeSensor"], descendants: true, static: true }, { propertyName: "listComponent", first: true, predicate: BreadCrumbListComponent, descendants: true, static: true }, { propertyName: "itemsContainers", predicate: ["itemsContainer"], descendants: true, read: ElementRef }], exportAs: ["kendoBreadCrumb"], ngImport: i0, template: `
942
+ <ol
943
+ #itemsContainer
944
+ kendoBreadCrumbList
945
+ class="k-breadcrumb-root-item-container"
946
+ *ngIf="collapseMode === 'wrap'"
947
+ [items]="firstItem$ | async"
948
+ [itemTemplate]="itemTemplate?.templateRef"
949
+ [collapseMode]="collapseMode"
950
+ [separatorIcon]="separatorIcon"
951
+ (itemClick)="itemClick.emit($event)"
952
+ ></ol>
953
+ <ol
954
+ #itemsContainer
955
+ kendoBreadCrumbList
956
+ class="k-breadcrumb-container"
957
+ [items]="itemsData$ | async"
958
+ [itemTemplate]="itemTemplate?.templateRef"
959
+ [collapseMode]="collapseMode"
960
+ [separatorIcon]="separatorIcon"
961
+ (itemClick)="itemClick.emit($event)"
962
+ [ngClass]="{ 'k-flex-wrap': collapseMode === 'wrap', 'k-flex-none': collapseMode === 'none' }"
963
+ ></ol>
964
+ <kendo-resize-sensor [rateLimit]="1000" #resizeSensor></kendo-resize-sensor>
965
+ `, isInline: true, components: [{ type: BreadCrumbListComponent, selector: "[kendoBreadCrumbList]", inputs: ["items", "itemTemplate", "collapseMode", "separatorIcon"], outputs: ["itemClick"] }, { type: i3.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i1$1.AsyncPipe } });
966
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbComponent, decorators: [{
967
+ type: Component,
968
+ args: [{
969
+ exportAs: 'kendoBreadCrumb',
970
+ selector: 'kendo-breadcrumb',
971
+ providers: [
972
+ LocalizationService,
973
+ {
974
+ provide: L10N_PREFIX,
975
+ useValue: 'kendo.breadcrumb'
976
+ }
977
+ ],
978
+ template: `
979
+ <ol
980
+ #itemsContainer
981
+ kendoBreadCrumbList
982
+ class="k-breadcrumb-root-item-container"
983
+ *ngIf="collapseMode === 'wrap'"
984
+ [items]="firstItem$ | async"
985
+ [itemTemplate]="itemTemplate?.templateRef"
986
+ [collapseMode]="collapseMode"
987
+ [separatorIcon]="separatorIcon"
988
+ (itemClick)="itemClick.emit($event)"
989
+ ></ol>
990
+ <ol
991
+ #itemsContainer
992
+ kendoBreadCrumbList
993
+ class="k-breadcrumb-container"
994
+ [items]="itemsData$ | async"
995
+ [itemTemplate]="itemTemplate?.templateRef"
996
+ [collapseMode]="collapseMode"
997
+ [separatorIcon]="separatorIcon"
998
+ (itemClick)="itemClick.emit($event)"
999
+ [ngClass]="{ 'k-flex-wrap': collapseMode === 'wrap', 'k-flex-none': collapseMode === 'none' }"
1000
+ ></ol>
1001
+ <kendo-resize-sensor [rateLimit]="1000" #resizeSensor></kendo-resize-sensor>
1002
+ `
1003
+ }]
1004
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.LocalizationService }]; }, propDecorators: { items: [{
1005
+ type: Input
1006
+ }], separatorIcon: [{
1007
+ type: Input
1008
+ }], collapseMode: [{
1009
+ type: Input
1010
+ }], itemClick: [{
1011
+ type: Output
1012
+ }], resizeSensor: [{
1013
+ type: ViewChild,
1014
+ args: ['resizeSensor', { static: true }]
1015
+ }], itemsContainers: [{
1016
+ type: ViewChildren,
1017
+ args: ['itemsContainer', { read: ElementRef }]
1018
+ }], listComponent: [{
1019
+ type: ViewChild,
1020
+ args: [BreadCrumbListComponent, { static: true }]
1021
+ }], itemTemplate: [{
1022
+ type: ContentChild,
1023
+ args: [BreadCrumbItemTemplateDirective, { static: false }]
1024
+ }], hostClasses: [{
1025
+ type: HostBinding,
1026
+ args: ['class.k-widget']
1027
+ }, {
1028
+ type: HostBinding,
1029
+ args: ['class.k-breadcrumb']
1030
+ }], wrapMode: [{
1031
+ type: HostBinding,
1032
+ args: ['class.k-breadcrumb-wrap']
1033
+ }], getDir: [{
1034
+ type: HostBinding,
1035
+ args: ['attr.dir']
1036
+ }] } });
1037
+
1038
+ const templateDirectives$2 = [
1039
+ BreadCrumbItemTemplateDirective
1040
+ ];
1041
+ const exportedModules$1 = [
1042
+ BreadCrumbComponent,
1043
+ BreadCrumbItemComponent,
1044
+ BreadCrumbListComponent,
1045
+ ...templateDirectives$2
1046
+ ];
1047
+ const declarations$2 = [
1048
+ ...exportedModules$1,
1049
+ BreadCrumbSeparatorDirective
1050
+ ];
1051
+ /**
1052
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
1053
+ * definition for the BreadCrumb component.
1054
+ * @example
1055
+ *
1056
+ * ```ts-no-run
1057
+ * // Import the BreadCrumb module
1058
+ * import { BreadCrumbModule } from '@progress/kendo-angular-navigation';
1059
+ *
1060
+ * // The browser platform with a compiler
1061
+ * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
1062
+ * import { BrowserModule } from '@angular/platform-browser';
1063
+ *
1064
+ * import { NgModule } from '@angular/core';
1065
+ *
1066
+ * // Import the app component
1067
+ * import { AppComponent } from './app.component';
1068
+ *
1069
+ * // Define the app module
1070
+ * _@NgModule({
1071
+ * declarations: [AppComponent], // declare app component
1072
+ * imports: [BrowserModule, BreadCrumbModule], // import BreadCrumb module
1073
+ * bootstrap: [AppComponent]
1074
+ * })
1075
+ * export class AppModule {}
1076
+ *
1077
+ * // Compile and launch the module
1078
+ * platformBrowserDynamic().bootstrapModule(AppModule);
1079
+ *
1080
+ * ```
1081
+ */
1082
+ class BreadCrumbModule {
1083
+ }
1084
+ BreadCrumbModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1085
+ BreadCrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbModule, declarations: [BreadCrumbComponent,
1086
+ BreadCrumbItemComponent,
1087
+ BreadCrumbListComponent, BreadCrumbItemTemplateDirective, BreadCrumbSeparatorDirective], imports: [CommonModule, ResizeSensorModule], exports: [BreadCrumbComponent,
1088
+ BreadCrumbItemComponent,
1089
+ BreadCrumbListComponent, BreadCrumbItemTemplateDirective] });
1090
+ BreadCrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbModule, imports: [[CommonModule, ResizeSensorModule]] });
1091
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BreadCrumbModule, decorators: [{
1092
+ type: NgModule,
1093
+ args: [{
1094
+ declarations: [declarations$2],
1095
+ exports: [exportedModules$1],
1096
+ imports: [CommonModule, ResizeSensorModule]
1097
+ }]
1098
+ }] });
1099
+
1100
+ /**
1101
+ * @hidden
1102
+ */
1103
+ class BottomNavigationItemComponent {
1104
+ get disabledClass() {
1105
+ return this.item.disabled;
1106
+ }
1107
+ get horizontalItemClass() {
1108
+ return this.orientation === 'horizontal';
1109
+ }
1110
+ get verticalItemClass() {
1111
+ return this.orientation === 'vertical';
1112
+ }
1113
+ get label() {
1114
+ return this.item.text ? this.item.text : null;
1115
+ }
1116
+ get tabindex() {
1117
+ return this.item.tabIndex ? this.item.tabIndex : 0;
1118
+ }
1119
+ get selectedClass() {
1120
+ return this.selectedIdx ? this.selectedIdx === this.index : this.item.selected;
1121
+ }
1122
+ get itemIcon() {
1123
+ return this.item.icon || this.item.iconClass ? true : false;
1124
+ }
1125
+ get iconClasses() {
1126
+ const kendoIcon = this.item.icon ? `k-icon k-i-${this.item.icon}` : '';
1127
+ const customIcon = this.item.iconClass ? this.item.iconClass : '';
1128
+ return `${kendoIcon} ${customIcon}`;
1129
+ }
1130
+ }
1131
+ BottomNavigationItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BottomNavigationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1132
+ BottomNavigationItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BottomNavigationItemComponent, selector: "[kendoBottomNavigationItem]", inputs: { itemTemplate: "itemTemplate", item: "item", index: "index", disabledComponent: "disabledComponent", selectedIdx: "selectedIdx", orientation: "orientation" }, host: { properties: { "attr.aria-disabled": "this.disabledClass", "class.k-disabled": "this.disabledClass", "class.k-hstack": "this.horizontalItemClass", "class.k-vstack": "this.verticalItemClass", "attr.aria-label": "this.label", "attr.tabindex": "this.tabindex", "attr.aria-selected": "this.selectedClass", "class.k-selected": "this.selectedClass" } }, ngImport: i0, template: `
1133
+ <ng-container *ngIf="!itemTemplate">
1134
+ <span *ngIf="itemIcon" class="k-bottom-nav-item-icon" [ngClass]="iconClasses"></span>
1135
+ <span *ngIf="item.text" class="k-bottom-nav-item-text">{{item.text}}</span>
1136
+ </ng-container>
1137
+ <ng-template *ngIf="itemTemplate"
1138
+ [ngTemplateOutlet]="itemTemplate?.templateRef"
1139
+ [ngTemplateOutletContext]="{ $implicit: item }">
1140
+ </ng-template>
1141
+ `, isInline: true, directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
1142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BottomNavigationItemComponent, decorators: [{
1143
+ type: Component,
1144
+ args: [{
1145
+ // eslint-disable-next-line @angular-eslint/component-selector
1146
+ selector: '[kendoBottomNavigationItem]',
1147
+ template: `
1148
+ <ng-container *ngIf="!itemTemplate">
1149
+ <span *ngIf="itemIcon" class="k-bottom-nav-item-icon" [ngClass]="iconClasses"></span>
1150
+ <span *ngIf="item.text" class="k-bottom-nav-item-text">{{item.text}}</span>
1151
+ </ng-container>
1152
+ <ng-template *ngIf="itemTemplate"
1153
+ [ngTemplateOutlet]="itemTemplate?.templateRef"
1154
+ [ngTemplateOutletContext]="{ $implicit: item }">
1155
+ </ng-template>
1156
+ `
1157
+ }]
1158
+ }], propDecorators: { itemTemplate: [{
1159
+ type: Input
1160
+ }], item: [{
1161
+ type: Input
1162
+ }], index: [{
1163
+ type: Input
1164
+ }], disabledComponent: [{
1165
+ type: Input
1166
+ }], selectedIdx: [{
1167
+ type: Input
1168
+ }], orientation: [{
1169
+ type: Input
1170
+ }], disabledClass: [{
1171
+ type: HostBinding,
1172
+ args: ['attr.aria-disabled']
1173
+ }, {
1174
+ type: HostBinding,
1175
+ args: ['class.k-disabled']
1176
+ }], horizontalItemClass: [{
1177
+ type: HostBinding,
1178
+ args: ['class.k-hstack']
1179
+ }], verticalItemClass: [{
1180
+ type: HostBinding,
1181
+ args: ['class.k-vstack']
1182
+ }], label: [{
1183
+ type: HostBinding,
1184
+ args: ['attr.aria-label']
1185
+ }], tabindex: [{
1186
+ type: HostBinding,
1187
+ args: ['attr.tabindex']
1188
+ }], selectedClass: [{
1189
+ type: HostBinding,
1190
+ args: ['attr.aria-selected']
1191
+ }, {
1192
+ type: HostBinding,
1193
+ args: ['class.k-selected']
1194
+ }] } });
1195
+
1196
+ /**
1197
+ * Represents a template that defines the item content of the BottomNavigation.
1198
+ * To define the template, nest an `<ng-template>` tag
1199
+ * with the `kendoBottomNavigationItemTemplate` directive inside the `<kendo-bottomnavigation>` tag ([see example]({% slug templates_bottomnavigation %})).
1200
+ */
1201
+ class BottomNavigationItemTemplateDirective {
1202
+ constructor(templateRef) {
1203
+ this.templateRef = templateRef;
1204
+ }
1205
+ }
1206
+ BottomNavigationItemTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BottomNavigationItemTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1207
+ BottomNavigationItemTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: BottomNavigationItemTemplateDirective, selector: "[kendoBottomNavigationItemTemplate]", ngImport: i0 });
1208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BottomNavigationItemTemplateDirective, decorators: [{
1209
+ type: Directive,
1210
+ args: [{
1211
+ selector: '[kendoBottomNavigationItemTemplate]'
1212
+ }]
1213
+ }], ctorParameters: function () {
1214
+ return [{ type: i0.TemplateRef, decorators: [{
1215
+ type: Optional
1216
+ }] }];
1217
+ } });
1218
+
1219
+ /**
1220
+ * @hidden
1221
+ */
1222
+ class PreventableEvent {
1223
+ /**
1224
+ * @hidden
1225
+ */
1226
+ constructor(args) {
1227
+ this.prevented = false;
1228
+ Object.assign(this, args);
1229
+ }
1230
+ /**
1231
+ * Prevents the default action for a specified event.
1232
+ * In this way, the source component suppresses
1233
+ * the built-in behavior that follows the event.
1234
+ */
1235
+ preventDefault() {
1236
+ this.prevented = true;
1237
+ }
1238
+ /**
1239
+ * Returns `true` if the event was prevented
1240
+ * by any of its subscribers.
1241
+ *
1242
+ * @returns `true` if the default action was prevented.
1243
+ * Otherwise, returns `false`.
1244
+ */
1245
+ isDefaultPrevented() {
1246
+ return this.prevented;
1247
+ }
1248
+ }
1249
+
1250
+ /**
1251
+ * Arguments for the `select` event of the BottomNavigation.
1252
+ */
1253
+ class BottomNavigationSelectEvent extends PreventableEvent {
1254
+ }
1255
+
1256
+ /**
1257
+ * @hidden
1258
+ */
1259
+ const BOTTOMNAVIGATION_ITEM_INDEX = 'data-kendo-bottomnavigation-index';
1260
+ /**
1261
+ * @hidden
1262
+ */
1263
+ const colors = ['primary', 'secondary', 'tertiary', 'info', 'success', 'warning', 'error', 'dark', 'light', 'inverse'];
1264
+
1265
+ /**
1266
+ * Represents the [Kendo UI BottomNavigation component for Angular]({% slug overview_bottomnavigation %}).
1267
+ *
1268
+ * @example
1269
+ * ```ts-no-run
1270
+ * _@Component({
1271
+ * selector: 'my-app',
1272
+ * template: `
1273
+ * <kendo-bottomnavigation [items]="items"></kendo-bottomnavigation>
1274
+ * `
1275
+ * })
1276
+ * class AppComponent {
1277
+ * public items: Array<any> = [
1278
+ * { text: 'Inbox', icon: 'envelop', selected: true },
1279
+ * { text: 'Calendar', icon: 'calendar'},
1280
+ * { text: 'Profile', icon: 'user'}
1281
+ * ]
1282
+ * }
1283
+ * ```
1284
+ */
1285
+ class BottomNavigationComponent {
1286
+ constructor(localization, hostElement, ngZone, changeDetector, renderer) {
1287
+ this.localization = localization;
1288
+ this.hostElement = hostElement;
1289
+ this.ngZone = ngZone;
1290
+ this.changeDetector = changeDetector;
1291
+ this.renderer = renderer;
1292
+ /**
1293
+ * Sets a top border to the BottomNavigation ([see example]({% slug appearance_bottomnavigation %})).
1294
+ *
1295
+ * @default false
1296
+ */
1297
+ this.border = false;
1298
+ /**
1299
+ * Disables the whole BottomNavigation.
1300
+ *
1301
+ * @default false
1302
+ */
1303
+ this.disabled = false;
1304
+ /**
1305
+ * Fires each time an item is selected. This event is preventable.
1306
+ */
1307
+ this.select = new EventEmitter();
1308
+ /**
1309
+ * @hidden
1310
+ */
1311
+ this.hostClass = true;
1312
+ /**
1313
+ * @hidden
1314
+ */
1315
+ this.role = 'navigation';
1316
+ this._fill = 'flat';
1317
+ this._itemFlow = 'vertical';
1318
+ this._positionMode = 'fixed';
1319
+ this._themeColor = 'primary';
1320
+ this._nativeHostElement = this.hostElement.nativeElement;
1321
+ this.subscriptions = new Subscription();
1322
+ this.rtl = false;
1323
+ validatePackage(packageMetadata);
1324
+ this.dynamicRTLSubscription = this.localization.changes.subscribe(({ rtl }) => {
1325
+ this.rtl = rtl;
1326
+ this.direction = this.rtl ? 'rtl' : 'ltr';
1327
+ });
1328
+ }
1329
+ /**
1330
+ * The fill style of the BottomNavigation ([see example]({% slug appearance_bottomnavigation %})).
1331
+ *
1332
+ * * The possible values are:
1333
+ * * (Default) `flat`
1334
+ * * `solid`
1335
+ */
1336
+ set fill(fill) {
1337
+ this.renderer.removeClass(this._nativeHostElement, `k-bottom-nav-${this.fill}`);
1338
+ this._fill = fill === 'solid' ? 'solid' : 'flat';
1339
+ this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-${this._fill}`);
1340
+ }
1341
+ get fill() {
1342
+ return this._fill;
1343
+ }
1344
+ /**
1345
+ * Specifies how the icon and text label are positioned in the BottomNavigation items ([see example]({% slug items_bottomnavigation %}#toc-itemflow)).
1346
+ *
1347
+ * The possible values are:
1348
+ * * (Default) `vertical` - Renders the text below the icon.
1349
+ * * `horizontal` - Renders the icon and the text on the same line.
1350
+ */
1351
+ set itemFlow(itemFlow) {
1352
+ this.renderer.removeClass(this._nativeHostElement, `k-bottom-nav-item-flow-${this.itemFlow}`);
1353
+ this._itemFlow = itemFlow === 'horizontal' ? 'horizontal' : 'vertical';
1354
+ this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-item-flow-${this._itemFlow}`);
1355
+ }
1356
+ get itemFlow() {
1357
+ return this._itemFlow;
1358
+ }
1359
+ /**
1360
+ * Specifies the position and behavior of the BottomNavigation when the page is scrollable ([see example]({% slug positioning_bottomnavigation %})).
1361
+ *
1362
+ * The possible values are:
1363
+ * * (Default) `fixed` - The BottomNavigation always stays at the bottom of the viewport, regardless of the page scroll position.
1364
+ * * `sticky` - Positions the BottomNavigation at the end of the scrollable container.
1365
+ */
1366
+ set positionMode(positionMode) {
1367
+ this.renderer.removeClass(this._nativeHostElement, `k-pos-${this.positionMode}`);
1368
+ this._positionMode = positionMode === 'sticky' ? 'sticky' : 'fixed';
1369
+ this.renderer.addClass(this._nativeHostElement, `k-pos-${this._positionMode}`);
1370
+ }
1371
+ get positionMode() {
1372
+ return this._positionMode;
1373
+ }
1374
+ /**
1375
+ * Specifies the theme color of the BottomNavigation ([see example]({% slug appearance_bottomnavigation %})).
1376
+ *
1377
+ * * The possible values are:
1378
+ * * (Default) `primary` - Applies coloring based on the primary theme color.
1379
+ * * `secondary` - Applies coloring based on the secondary theme color.
1380
+ * * `tertiary` - Applies coloring based on the tertiary theme color.
1381
+ * * `info` - Applies coloring based on the info theme color.
1382
+ * * `success` - Applies coloring based on the success theme color.
1383
+ * * `warning` - Applies coloring based on the warning theme color.
1384
+ * * `error` - Applies coloring based on the error theme color.
1385
+ * * `dark` - Applies coloring based on the dark theme color.
1386
+ * * `light` - Applies coloring based on the light theme color.
1387
+ * * `inverse` - Applies coloring based on the inverted theme color.
1388
+ */
1389
+ set themeColor(themeColor) {
1390
+ const newColor = colors.find(color => color === themeColor);
1391
+ if (newColor) {
1392
+ this.renderer.removeClass(this._nativeHostElement, `k-bottom-nav-${this._themeColor}`);
1393
+ this._themeColor = themeColor;
1394
+ this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-${this._themeColor}`);
1395
+ }
1396
+ }
1397
+ get themeColor() {
1398
+ return this._themeColor;
1399
+ }
1400
+ /**
1401
+ * @hidden
1402
+ */
1403
+ get borderClass() {
1404
+ return this.border;
1405
+ }
1406
+ /**
1407
+ * @hidden
1408
+ */
1409
+ get disabledClass() {
1410
+ return this.disabled;
1411
+ }
1412
+ /**
1413
+ * @hidden
1414
+ */
1415
+ ngOnInit() {
1416
+ this.initDomEvents();
1417
+ }
1418
+ /**
1419
+ * @hidden
1420
+ */
1421
+ ngAfterViewInit() {
1422
+ this.applyClasses();
1423
+ }
1424
+ /**
1425
+ * @hidden
1426
+ */
1427
+ ngOnDestroy() {
1428
+ if (this.dynamicRTLSubscription) {
1429
+ this.dynamicRTLSubscription.unsubscribe();
1430
+ }
1431
+ this.subscriptions.unsubscribe();
1432
+ }
1433
+ /**
1434
+ * @hidden
1435
+ */
1436
+ selectItem(idx, args) {
1437
+ const eventArgs = new BottomNavigationSelectEvent(Object.assign({}, args));
1438
+ this.select.emit(eventArgs);
1439
+ if (!eventArgs.isDefaultPrevented()) {
1440
+ this.selectedIdx = idx;
1441
+ }
1442
+ }
1443
+ applyClasses() {
1444
+ this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-${this.fill}`);
1445
+ this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-item-flow-${this.itemFlow}`);
1446
+ this.renderer.addClass(this._nativeHostElement, `k-pos-${this.positionMode}`);
1447
+ this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-${this.themeColor}`);
1448
+ }
1449
+ initDomEvents() {
1450
+ if (!this.hostElement) {
1451
+ return;
1452
+ }
1453
+ this.ngZone.runOutsideAngular(() => {
1454
+ this.subscriptions.add(this.renderer.listen(this._nativeHostElement, 'click', this.clickHandler.bind(this)));
1455
+ this.subscriptions.add(this.renderer.listen(this._nativeHostElement, 'keydown', this.keyDownHandler.bind(this)));
1456
+ });
1457
+ }
1458
+ clickHandler(e) {
1459
+ const itemIdx = this.getBottomNavigationItemIndex(e.target);
1460
+ const item = this.items[itemIdx];
1461
+ if (!item) {
1462
+ return;
1463
+ }
1464
+ if (item.disabled) {
1465
+ e.preventDefault();
1466
+ return;
1467
+ }
1468
+ const args = {
1469
+ index: itemIdx,
1470
+ item: item,
1471
+ originalEvent: e,
1472
+ sender: this
1473
+ };
1474
+ this.ngZone.run(() => {
1475
+ this.selectItem(itemIdx, args);
1476
+ this.changeDetector.markForCheck();
1477
+ });
1478
+ }
1479
+ keyDownHandler(e) {
1480
+ const isEnterOrSpace = e.keyCode === Keys.Enter || e.keyCode === Keys.Space;
1481
+ if (!isEnterOrSpace) {
1482
+ return;
1483
+ }
1484
+ this.clickHandler(e);
1485
+ }
1486
+ getBottomNavigationItemIndex(target) {
1487
+ const item = closestItem(target, BOTTOMNAVIGATION_ITEM_INDEX, this._nativeHostElement);
1488
+ if (item) {
1489
+ return itemIndex(item, BOTTOMNAVIGATION_ITEM_INDEX);
1490
+ }
1491
+ }
1492
+ }
1493
+ BottomNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BottomNavigationComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
1494
+ BottomNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BottomNavigationComponent, selector: "kendo-bottomnavigation", inputs: { items: "items", border: "border", disabled: "disabled", fill: "fill", itemFlow: "itemFlow", positionMode: "positionMode", themeColor: "themeColor" }, outputs: { select: "select" }, host: { properties: { "class.k-hstack": "this.hostClass", "class.k-justify-content-stretch": "this.hostClass", "class.k-bottom-nav": "this.hostClass", "class.k-bottom-nav-border": "this.borderClass", "class.k-disabled": "this.disabledClass", "attr.role": "this.role", "attr.dir": "this.direction" } }, providers: [
1495
+ LocalizationService,
1496
+ {
1497
+ provide: L10N_PREFIX,
1498
+ useValue: 'kendo.bottomnavigation'
1499
+ }
1500
+ ], queries: [{ propertyName: "itemTemplate", first: true, predicate: BottomNavigationItemTemplateDirective, descendants: true }], exportAs: ["kendoBottomNavigation"], ngImport: i0, template: "\n <ng-container *ngIf=\"items\">\n <span kendoBottomNavigationItem\n *ngFor=\"let item of items; let idx=index\"\n role=\"link\"\n class=\"k-bottom-nav-item\"\n [disabledComponent]=\"disabled\"\n [item]=\"item\"\n [index]=\"idx\"\n [selectedIdx]=\"selectedIdx\"\n [itemTemplate]=\"itemTemplate\"\n [attr.data-kendo-bottomnavigation-index]=\"idx\"\n [ngClass]=\"item.cssClass\"\n [ngStyle]=\"item.cssStyle\"\n [orientation]=\"itemFlow\">\n </span>\n </ng-container>\n ", isInline: true, components: [{ type: BottomNavigationItemComponent, selector: "[kendoBottomNavigationItem]", inputs: ["itemTemplate", "item", "index", "disabledComponent", "selectedIdx", "orientation"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
1501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BottomNavigationComponent, decorators: [{
1502
+ type: Component,
1503
+ args: [{
1504
+ exportAs: 'kendoBottomNavigation',
1505
+ selector: 'kendo-bottomnavigation',
1506
+ providers: [
1507
+ LocalizationService,
1508
+ {
1509
+ provide: L10N_PREFIX,
1510
+ useValue: 'kendo.bottomnavigation'
1511
+ }
1512
+ ],
1513
+ template: `
1514
+ <ng-container *ngIf="items">
1515
+ <span kendoBottomNavigationItem
1516
+ *ngFor="let item of items; let idx=index"
1517
+ role="link"
1518
+ class="k-bottom-nav-item"
1519
+ [disabledComponent]="disabled"
1520
+ [item]="item"
1521
+ [index]="idx"
1522
+ [selectedIdx]="selectedIdx"
1523
+ [itemTemplate]="itemTemplate"
1524
+ [attr.${BOTTOMNAVIGATION_ITEM_INDEX}]="idx"
1525
+ [ngClass]="item.cssClass"
1526
+ [ngStyle]="item.cssStyle"
1527
+ [orientation]="itemFlow">
1528
+ </span>
1529
+ </ng-container>
1530
+ `
1531
+ }]
1532
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { items: [{
1533
+ type: Input
1534
+ }], border: [{
1535
+ type: Input
1536
+ }], disabled: [{
1537
+ type: Input
1538
+ }], fill: [{
1539
+ type: Input
1540
+ }], itemFlow: [{
1541
+ type: Input
1542
+ }], positionMode: [{
1543
+ type: Input
1544
+ }], themeColor: [{
1545
+ type: Input
1546
+ }], select: [{
1547
+ type: Output
1548
+ }], hostClass: [{
1549
+ type: HostBinding,
1550
+ args: ['class.k-hstack']
1551
+ }, {
1552
+ type: HostBinding,
1553
+ args: ['class.k-justify-content-stretch']
1554
+ }, {
1555
+ type: HostBinding,
1556
+ args: ['class.k-bottom-nav']
1557
+ }], borderClass: [{
1558
+ type: HostBinding,
1559
+ args: ['class.k-bottom-nav-border']
1560
+ }], disabledClass: [{
1561
+ type: HostBinding,
1562
+ args: ['class.k-disabled']
1563
+ }], role: [{
1564
+ type: HostBinding,
1565
+ args: ['attr.role']
1566
+ }], direction: [{
1567
+ type: HostBinding,
1568
+ args: ['attr.dir']
1569
+ }], itemTemplate: [{
1570
+ type: ContentChild,
1571
+ args: [BottomNavigationItemTemplateDirective, { static: false }]
1572
+ }] } });
1573
+
1574
+ const templateDirectives$1 = [BottomNavigationItemTemplateDirective];
1575
+ const exportedComponents = [BottomNavigationComponent, ...templateDirectives$1];
1576
+ const declarations$1 = [BottomNavigationItemComponent, ...exportedComponents];
1577
+ /**
1578
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
1579
+ * definition for the BottomNavigation component.
1580
+ * @example
1581
+ *
1582
+ * ```ts-no-run
1583
+ * // Import the BottomNavigation module
1584
+ * import { BottomNavigationModule } from '@progress/kendo-angular-navigation';
1585
+ *
1586
+ * // The browser platform with a compiler
1587
+ * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
1588
+ * import { BrowserModule } from '@angular/platform-browser';
1589
+ *
1590
+ * import { NgModule } from '@angular/core';
1591
+ *
1592
+ * // Import the app component
1593
+ * import { AppComponent } from './app.component';
1594
+ *
1595
+ * // Define the app module
1596
+ * _@NgModule({
1597
+ * declarations: [AppComponent], // declare app component
1598
+ * imports: [BrowserModule, BottomNavigationModule], // import BottomNavigation module
1599
+ * bootstrap: [AppComponent]
1600
+ * })
1601
+ * export class AppModule {}
1602
+ *
1603
+ * // Compile and launch the module
1604
+ * platformBrowserDynamic().bootstrapModule(AppModule);
1605
+ *
1606
+ * ```
1607
+ */
1608
+ class BottomNavigationModule {
1609
+ }
1610
+ BottomNavigationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BottomNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1611
+ BottomNavigationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BottomNavigationModule, declarations: [BottomNavigationItemComponent, BottomNavigationComponent, BottomNavigationItemTemplateDirective], imports: [CommonModule], exports: [BottomNavigationComponent, BottomNavigationItemTemplateDirective] });
1612
+ BottomNavigationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BottomNavigationModule, imports: [[CommonModule]] });
1613
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BottomNavigationModule, decorators: [{
1614
+ type: NgModule,
1615
+ args: [{
1616
+ declarations: [declarations$1],
1617
+ exports: [exportedComponents],
1618
+ imports: [CommonModule]
1619
+ }]
1620
+ }] });
1621
+
1622
+ /**
1623
+ * Arguments for the `itemClick` event of the ActionSheet.
1624
+ */
1625
+ class ActionSheetItemClickEvent {
1626
+ }
1627
+
1628
+ /**
1629
+ * Represents a template that defines the header content of the ActionSheet. Utilizing the template overrides both the `title` and `subtitle` of the ActionSheet.
1630
+ * To define the template, nest an `<ng-template>` tag
1631
+ * with the `kendoActionSheetHeaderTemplate` directive inside the `<kendo-actionsheet>` tag.
1632
+ */
1633
+ class ActionSheetHeaderTemplateDirective {
1634
+ constructor(templateRef) {
1635
+ this.templateRef = templateRef;
1636
+ }
1637
+ }
1638
+ ActionSheetHeaderTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetHeaderTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1639
+ ActionSheetHeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ActionSheetHeaderTemplateDirective, selector: "[kendoActionSheetHeaderTemplate]", ngImport: i0 });
1640
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetHeaderTemplateDirective, decorators: [{
1641
+ type: Directive,
1642
+ args: [{
1643
+ selector: '[kendoActionSheetHeaderTemplate]'
1644
+ }]
1645
+ }], ctorParameters: function () {
1646
+ return [{ type: i0.TemplateRef, decorators: [{
1647
+ type: Optional
1648
+ }] }];
1649
+ } });
1650
+
1651
+ /**
1652
+ * Represents a template that defines the item content of the ActionSheet.
1653
+ * To define the template, nest an `<ng-template>` tag
1654
+ * with the `kendoActionSheetItemTemplate` directive inside the `<kendo-actionsheet>` tag.
1655
+ */
1656
+ class ActionSheetItemTemplateDirective {
1657
+ constructor(templateRef) {
1658
+ this.templateRef = templateRef;
1659
+ }
1660
+ }
1661
+ ActionSheetItemTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetItemTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1662
+ ActionSheetItemTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ActionSheetItemTemplateDirective, selector: "[kendoActionSheetItemTemplate]", ngImport: i0 });
1663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetItemTemplateDirective, decorators: [{
1664
+ type: Directive,
1665
+ args: [{
1666
+ selector: '[kendoActionSheetItemTemplate]'
1667
+ }]
1668
+ }], ctorParameters: function () {
1669
+ return [{ type: i0.TemplateRef, decorators: [{
1670
+ type: Optional
1671
+ }] }];
1672
+ } });
1673
+
1674
+ /**
1675
+ * Represents a template that defines the items list content of the ActionSheet.
1676
+ * To define the template, nest an `<ng-template>` tag
1677
+ * with the `kendoActionSheetContentTemplate` directive inside the `<kendo-actionsheet>` tag.
1678
+ */
1679
+ class ActionSheetContentTemplateDirective {
1680
+ constructor(templateRef) {
1681
+ this.templateRef = templateRef;
1682
+ }
1683
+ }
1684
+ ActionSheetContentTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetContentTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1685
+ ActionSheetContentTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ActionSheetContentTemplateDirective, selector: "[kendoActionSheetContentTemplate]", ngImport: i0 });
1686
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetContentTemplateDirective, decorators: [{
1687
+ type: Directive,
1688
+ args: [{
1689
+ selector: '[kendoActionSheetContentTemplate]'
1690
+ }]
1691
+ }], ctorParameters: function () {
1692
+ return [{ type: i0.TemplateRef, decorators: [{
1693
+ type: Optional
1694
+ }] }];
1695
+ } });
1696
+
1697
+ /**
1698
+ * Represents a template that defines the footer of the ActionSheet.
1699
+ * To define the template, nest an `<ng-template>` tag
1700
+ * with the `kendoActionSheetFooterTemplate` directive inside the `<kendo-actionsheet>` tag.
1701
+ */
1702
+ class ActionSheetFooterTemplateDirective {
1703
+ constructor(templateRef) {
1704
+ this.templateRef = templateRef;
1705
+ }
1706
+ }
1707
+ ActionSheetFooterTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetFooterTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1708
+ ActionSheetFooterTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ActionSheetFooterTemplateDirective, selector: "[kendoActionSheetFooterTemplate]", ngImport: i0 });
1709
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetFooterTemplateDirective, decorators: [{
1710
+ type: Directive,
1711
+ args: [{
1712
+ selector: '[kendoActionSheetFooterTemplate]'
1713
+ }]
1714
+ }], ctorParameters: function () {
1715
+ return [{ type: i0.TemplateRef, decorators: [{
1716
+ type: Optional
1717
+ }] }];
1718
+ } });
1719
+
1720
+ /**
1721
+ * @hidden
1722
+ */
1723
+ class ActionSheetItemComponent {
1724
+ constructor() {
1725
+ this.pointerClass = true;
1726
+ }
1727
+ manageIconClasses(item) {
1728
+ const classes = ['k-actionsheet-item-icon'];
1729
+ if (item.icon) {
1730
+ classes.push(`k-icon k-i-${item.icon}`);
1731
+ }
1732
+ if (item.iconClass) {
1733
+ classes.push(`${item.iconClass}`);
1734
+ }
1735
+ const isHexColor = isPresent(item.iconColor) && hexColorRegex.test(item.iconColor);
1736
+ const isThemeColor = isPresent(item.iconColor) && item.iconColor !== '' && !isHexColor;
1737
+ if (isThemeColor) {
1738
+ classes.push(`k-text-${item.iconColor}`);
1739
+ }
1740
+ return classes.join(' ');
1741
+ }
1742
+ manageIconStyles(item) {
1743
+ const isHexColor = isPresent(item.iconColor) && hexColorRegex.test(item.iconColor);
1744
+ const isSizeSet = isPresent(item.iconSize) && item.iconSize !== '';
1745
+ const styles = {};
1746
+ if (isHexColor) {
1747
+ styles.color = item.iconColor;
1748
+ }
1749
+ if (isSizeSet) {
1750
+ styles.fontSize = item.iconSize;
1751
+ }
1752
+ return styles;
1753
+ }
1754
+ }
1755
+ ActionSheetItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1756
+ ActionSheetItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ActionSheetItemComponent, selector: "[kendoActionSheetItem]", inputs: { itemTemplate: "itemTemplate", item: "item" }, host: { properties: { "class.k-cursor-pointer": "this.pointerClass" } }, ngImport: i0, template: `
1757
+ <ng-template *ngIf="itemTemplate; else defaultTemplate"
1758
+ [ngTemplateOutlet]="itemTemplate"
1759
+ [ngTemplateOutletContext]="{
1760
+ $implicit: item
1761
+ }">
1762
+ </ng-template>
1763
+ <ng-template #defaultTemplate>
1764
+ <span class="k-actionsheet-action">
1765
+ <span *ngIf="item.icon || item.iconClass" class="k-icon-wrap">
1766
+ <span
1767
+ [class]="manageIconClasses(item)"
1768
+ [style]="manageIconStyles(item)">
1769
+ </span>
1770
+ </span>
1771
+ <span *ngIf="item.title || item.description" class="k-actionsheet-item-text">
1772
+ <span *ngIf="item.title" class="k-actionsheet-item-title">{{item.title}}</span>
1773
+ <span *ngIf="item.description" class="k-actionsheet-item-description">{{item.description}}</span>
1774
+ </span>
1775
+ </span>
1776
+ </ng-template>
1777
+ `, isInline: true, directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
1778
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetItemComponent, decorators: [{
1779
+ type: Component,
1780
+ args: [{
1781
+ // eslint-disable-next-line @angular-eslint/component-selector
1782
+ selector: '[kendoActionSheetItem]',
1783
+ template: `
1784
+ <ng-template *ngIf="itemTemplate; else defaultTemplate"
1785
+ [ngTemplateOutlet]="itemTemplate"
1786
+ [ngTemplateOutletContext]="{
1787
+ $implicit: item
1788
+ }">
1789
+ </ng-template>
1790
+ <ng-template #defaultTemplate>
1791
+ <span class="k-actionsheet-action">
1792
+ <span *ngIf="item.icon || item.iconClass" class="k-icon-wrap">
1793
+ <span
1794
+ [class]="manageIconClasses(item)"
1795
+ [style]="manageIconStyles(item)">
1796
+ </span>
1797
+ </span>
1798
+ <span *ngIf="item.title || item.description" class="k-actionsheet-item-text">
1799
+ <span *ngIf="item.title" class="k-actionsheet-item-title">{{item.title}}</span>
1800
+ <span *ngIf="item.description" class="k-actionsheet-item-description">{{item.description}}</span>
1801
+ </span>
1802
+ </span>
1803
+ </ng-template>
1804
+ `
1805
+ }]
1806
+ }], propDecorators: { itemTemplate: [{
1807
+ type: Input
1808
+ }], item: [{
1809
+ type: Input
1810
+ }], pointerClass: [{
1811
+ type: HostBinding,
1812
+ args: ['class.k-cursor-pointer']
1813
+ }] } });
1814
+
1815
+ /**
1816
+ * @hidden
1817
+ */
1818
+ class ActionSheetListComponent {
1819
+ constructor(renderer, ngZone, element) {
1820
+ this.renderer = renderer;
1821
+ this.ngZone = ngZone;
1822
+ this.element = element;
1823
+ this.groupItems = [];
1824
+ this.allItems = [];
1825
+ this.itemClick = new EventEmitter();
1826
+ this.subscriptions = new Subscription();
1827
+ }
1828
+ ngAfterViewInit() {
1829
+ this.initDomEvents();
1830
+ }
1831
+ ngOnDestroy() {
1832
+ this.subscriptions.unsubscribe();
1833
+ }
1834
+ initDomEvents() {
1835
+ if (!this.element) {
1836
+ return;
1837
+ }
1838
+ this.ngZone.runOutsideAngular(() => {
1839
+ const nativeElement = this.element.nativeElement;
1840
+ this.subscriptions.add(this.renderer.listen(nativeElement, 'click', this.clickHandler.bind(this)));
1841
+ });
1842
+ }
1843
+ clickHandler(e) {
1844
+ const itemIndex = getActionSheetItemIndex(e.target, ACTIONSHEET_ITEM_INDEX_ATTRIBUTE, this.element.nativeElement);
1845
+ const item = this.allItems[itemIndex];
1846
+ if (!item) {
1847
+ return;
1848
+ }
1849
+ if (item.disabled) {
1850
+ e.preventDefault();
1851
+ return;
1852
+ }
1853
+ this.ngZone.run(() => {
1854
+ this.itemClick.emit({ item, originalEvent: e });
1855
+ });
1856
+ }
1857
+ setAttrIndex(item) {
1858
+ return this.allItems.indexOf(item);
1859
+ }
1860
+ }
1861
+ ActionSheetListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetListComponent, deps: [{ token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1862
+ ActionSheetListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ActionSheetListComponent, selector: "[kendoActionSheetList]", inputs: { groupItems: "groupItems", allItems: "allItems", itemTemplate: "itemTemplate" }, outputs: { itemClick: "itemClick" }, ngImport: i0, template: "\n <span *ngFor=\"let item of groupItems\" kendoActionSheetItem\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-disabled]=\"item.disabled\"\n [class.k-actionsheet-item]=\"true\"\n [attr.kendo-actionsheet-item-index]=\"setAttrIndex(item)\"\n [class.k-disabled]=\"item.disabled\"\n [ngClass]=\"item.cssClass\"\n [ngStyle]=\"item.cssStyle\"\n [itemTemplate]=\"itemTemplate\"\n [item]=\"item\">\n </span>\n ", isInline: true, components: [{ type: ActionSheetItemComponent, selector: "[kendoActionSheetItem]", inputs: ["itemTemplate", "item"] }], directives: [{ type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
1863
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetListComponent, decorators: [{
1864
+ type: Component,
1865
+ args: [{
1866
+ // eslint-disable-next-line @angular-eslint/component-selector
1867
+ selector: '[kendoActionSheetList]',
1868
+ template: `
1869
+ <span *ngFor="let item of groupItems" kendoActionSheetItem
1870
+ tabindex="0"
1871
+ role="button"
1872
+ [attr.aria-disabled]="item.disabled"
1873
+ [class.k-actionsheet-item]="true"
1874
+ [attr.${ACTIONSHEET_ITEM_INDEX_ATTRIBUTE}]="setAttrIndex(item)"
1875
+ [class.k-disabled]="item.disabled"
1876
+ [ngClass]="item.cssClass"
1877
+ [ngStyle]="item.cssStyle"
1878
+ [itemTemplate]="itemTemplate"
1879
+ [item]="item">
1880
+ </span>
1881
+ `
1882
+ }]
1883
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ElementRef }]; }, propDecorators: { groupItems: [{
1884
+ type: Input
1885
+ }], allItems: [{
1886
+ type: Input
1887
+ }], itemTemplate: [{
1888
+ type: Input
1889
+ }], itemClick: [{
1890
+ type: Output
1891
+ }] } });
1892
+
1893
+ /**
1894
+ * Represents the [Kendo UI ActionSheet component for Angular]({% slug overview_actionsheet %}).
1895
+ * Used to display a set of choices related to a task the user initiates.
1896
+ */
1897
+ class ActionSheetComponent {
1898
+ constructor(element, ngZone, renderer, localizationService) {
1899
+ this.element = element;
1900
+ this.ngZone = ngZone;
1901
+ this.renderer = renderer;
1902
+ this.localizationService = localizationService;
1903
+ /**
1904
+ * @hidden
1905
+ */
1906
+ this.hostClass = true;
1907
+ /**
1908
+ * Fires when an ActionSheet item is clicked.
1909
+ */
1910
+ this.itemClick = new EventEmitter();
1911
+ /**
1912
+ * Fires when the modal overlay is clicked.
1913
+ */
1914
+ this.overlayClick = new EventEmitter();
1915
+ /**
1916
+ * @hidden
1917
+ */
1918
+ this.titleId = null;
1919
+ this.rtl = false;
1920
+ this.domSubs = new Subscription();
1921
+ validatePackage(packageMetadata);
1922
+ this.dynamicRTLSubscription = this.localizationService.changes.subscribe(({ rtl }) => {
1923
+ this.rtl = rtl;
1924
+ this.direction = this.rtl ? 'rtl' : 'ltr';
1925
+ });
1926
+ this.titleId = getId('k-actionsheet-title');
1927
+ }
1928
+ ngAfterViewInit() {
1929
+ this.handleInitialFocus();
1930
+ this.initDomEvents();
1931
+ }
1932
+ ngOnDestroy() {
1933
+ this.domSubs.unsubscribe();
1934
+ if (this.dynamicRTLSubscription) {
1935
+ this.dynamicRTLSubscription.unsubscribe();
1936
+ }
1937
+ }
1938
+ /**
1939
+ * @hidden
1940
+ */
1941
+ get topGroupItems() {
1942
+ var _a;
1943
+ return (_a = this.items) === null || _a === void 0 ? void 0 : _a.filter(item => !item.group || item.group === 'top');
1944
+ }
1945
+ /**
1946
+ * @hidden
1947
+ */
1948
+ get bottomGroupItems() {
1949
+ var _a;
1950
+ return (_a = this.items) === null || _a === void 0 ? void 0 : _a.filter(item => item.group === 'bottom');
1951
+ }
1952
+ /**
1953
+ * @hidden
1954
+ */
1955
+ onItemClick(ev) {
1956
+ this.itemClick.emit(ev);
1957
+ }
1958
+ /**
1959
+ * @hidden
1960
+ */
1961
+ onOverlayClick() {
1962
+ this.overlayClick.emit();
1963
+ }
1964
+ /**
1965
+ * @hidden
1966
+ */
1967
+ get shouldRenderSeparator() {
1968
+ var _a, _b;
1969
+ return ((_a = this.topGroupItems) === null || _a === void 0 ? void 0 : _a.length) > 0 && ((_b = this.bottomGroupItems) === null || _b === void 0 ? void 0 : _b.length) > 0;
1970
+ }
1971
+ initDomEvents() {
1972
+ if (!this.element) {
1973
+ return;
1974
+ }
1975
+ this.ngZone.runOutsideAngular(() => {
1976
+ this.domSubs.add(this.renderer.listen(this.element.nativeElement, 'keydown', (ev) => {
1977
+ this.onKeyDown(ev);
1978
+ }));
1979
+ });
1980
+ }
1981
+ onKeyDown(event) {
1982
+ const target = event.target;
1983
+ if (event.keyCode === Keys.Tab) {
1984
+ this.ngZone.run(() => {
1985
+ this.keepFocusWithinComponent(target, event);
1986
+ });
1987
+ }
1988
+ if (event.keyCode === Keys.Escape) {
1989
+ this.ngZone.run(() => {
1990
+ this.overlayClick.emit();
1991
+ });
1992
+ }
1993
+ if (event.keyCode === Keys.Enter) {
1994
+ this.ngZone.run(() => {
1995
+ this.triggerItemClick(target, event);
1996
+ });
1997
+ }
1998
+ }
1999
+ handleInitialFocus() {
2000
+ const [firstFocusable] = getFirstAndLastFocusable(this.element.nativeElement);
2001
+ if (firstFocusable) {
2002
+ firstFocusable.focus();
2003
+ }
2004
+ }
2005
+ keepFocusWithinComponent(target, event) {
2006
+ const wrapper = this.element.nativeElement;
2007
+ const [firstFocusable, lastFocusable] = getFirstAndLastFocusable(wrapper);
2008
+ const tabAfterLastFocusable = !event.shiftKey && target === lastFocusable;
2009
+ const shiftTabAfterFirstFocusable = event.shiftKey && target === firstFocusable;
2010
+ if (tabAfterLastFocusable) {
2011
+ event.preventDefault();
2012
+ firstFocusable.focus();
2013
+ }
2014
+ if (shiftTabAfterFirstFocusable) {
2015
+ event.preventDefault();
2016
+ lastFocusable.focus();
2017
+ }
2018
+ }
2019
+ triggerItemClick(target, event) {
2020
+ const itemIndex = getActionSheetItemIndex(target, ACTIONSHEET_ITEM_INDEX_ATTRIBUTE, this.element.nativeElement);
2021
+ const item = this.items[itemIndex];
2022
+ if (!item || item.disabled) {
2023
+ return;
2024
+ }
2025
+ this.itemClick.emit({ item, originalEvent: event });
2026
+ }
2027
+ }
2028
+ ActionSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
2029
+ ActionSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: { title: "title", subtitle: "subtitle", items: "items" }, outputs: { itemClick: "itemClick", overlayClick: "overlayClick" }, host: { properties: { "class.k-actionsheet-container": "this.hostClass", "attr.dir": "this.direction" } }, providers: [
2030
+ LocalizationService,
2031
+ {
2032
+ provide: L10N_PREFIX,
2033
+ useValue: 'kendo.actionsheet.component'
2034
+ }
2035
+ ], queries: [{ propertyName: "headerTemplate", first: true, predicate: ActionSheetHeaderTemplateDirective, descendants: true }, { propertyName: "contentTemplate", first: true, predicate: ActionSheetContentTemplateDirective, descendants: true }, { propertyName: "itemTemplate", first: true, predicate: ActionSheetItemTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: ActionSheetFooterTemplateDirective, descendants: true }], exportAs: ["kendoActionSheet"], ngImport: i0, template: `
2036
+ <div class="k-overlay" (click)="onOverlayClick()"></div>
2037
+ <div class="k-animation-container">
2038
+ <div class="k-child-animation-container" [style]="'bottom: 0px; width: 100%;'">
2039
+ <div class="k-actionsheet k-actionsheet-bottom"
2040
+ [style]="'--kendo-actionsheet-height: auto; --kendo-actionsheet-max-height: none;'"
2041
+ role="dialog"
2042
+ aria-modal="true"
2043
+ [attr.aria-labelledby]="titleId">
2044
+
2045
+ <div *ngIf="title || headerTemplate" class="k-actionsheet-titlebar">
2046
+ <div class="k-actionsheet-titlebar-group k-hbox">
2047
+ <div class="k-actionsheet-title" [id]="titleId">
2048
+ <ng-template *ngIf="headerTemplate; else defaultTemplate"
2049
+ [ngTemplateOutlet]="headerTemplate?.templateRef">
2050
+ </ng-template>
2051
+ <ng-template #defaultTemplate>
2052
+ <div *ngIf="title" class="k-text-center">{{title}}</div>
2053
+ <div *ngIf="subtitle" class="k-actionsheet-subtitle k-text-center">{{subtitle}}</div>
2054
+ </ng-template>
2055
+ </div>
2056
+ </div>
2057
+ </div>
2058
+
2059
+ <div *ngIf="items || contentTemplate" class="k-actionsheet-content">
2060
+ <ng-template *ngIf="contentTemplate; else defaultContentTemplate"
2061
+ [ngTemplateOutlet]="contentTemplate?.templateRef">
2062
+ </ng-template>
2063
+ <ng-template #defaultContentTemplate>
2064
+ <div *ngIf="topGroupItems" kendoActionSheetList
2065
+ class="k-list-ul"
2066
+ role="group"
2067
+ [groupItems]="topGroupItems"
2068
+ [allItems]="items"
2069
+ [itemTemplate]="itemTemplate?.templateRef"
2070
+ (itemClick)="onItemClick($event)">
2071
+ </div>
2072
+
2073
+ <hr *ngIf="shouldRenderSeparator" class="k-hr"/>
2074
+
2075
+ <div *ngIf="bottomGroupItems" kendoActionSheetList
2076
+ class="k-list-ul"
2077
+ role="group"
2078
+ [groupItems]="bottomGroupItems"
2079
+ [allItems]="items"
2080
+ [itemTemplate]="itemTemplate?.templateRef"
2081
+ (itemClick)="onItemClick($event)">
2082
+ </div>
2083
+ </ng-template>
2084
+ </div>
2085
+ <div *ngIf="footerTemplate" class="k-actionsheet-footer">
2086
+ <ng-template
2087
+ [ngTemplateOutlet]="footerTemplate?.templateRef">
2088
+ </ng-template>
2089
+ </div>
2090
+ </div>
2091
+ </div>
2092
+ </div>
2093
+ `, isInline: true, components: [{ type: ActionSheetListComponent, selector: "[kendoActionSheetList]", inputs: ["groupItems", "allItems", "itemTemplate"], outputs: ["itemClick"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
2094
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetComponent, decorators: [{
2095
+ type: Component,
2096
+ args: [{
2097
+ exportAs: 'kendoActionSheet',
2098
+ selector: 'kendo-actionsheet',
2099
+ template: `
2100
+ <div class="k-overlay" (click)="onOverlayClick()"></div>
2101
+ <div class="k-animation-container">
2102
+ <div class="k-child-animation-container" [style]="'bottom: 0px; width: 100%;'">
2103
+ <div class="k-actionsheet k-actionsheet-bottom"
2104
+ [style]="'--kendo-actionsheet-height: auto; --kendo-actionsheet-max-height: none;'"
2105
+ role="dialog"
2106
+ aria-modal="true"
2107
+ [attr.aria-labelledby]="titleId">
2108
+
2109
+ <div *ngIf="title || headerTemplate" class="k-actionsheet-titlebar">
2110
+ <div class="k-actionsheet-titlebar-group k-hbox">
2111
+ <div class="k-actionsheet-title" [id]="titleId">
2112
+ <ng-template *ngIf="headerTemplate; else defaultTemplate"
2113
+ [ngTemplateOutlet]="headerTemplate?.templateRef">
2114
+ </ng-template>
2115
+ <ng-template #defaultTemplate>
2116
+ <div *ngIf="title" class="k-text-center">{{title}}</div>
2117
+ <div *ngIf="subtitle" class="k-actionsheet-subtitle k-text-center">{{subtitle}}</div>
2118
+ </ng-template>
2119
+ </div>
2120
+ </div>
2121
+ </div>
2122
+
2123
+ <div *ngIf="items || contentTemplate" class="k-actionsheet-content">
2124
+ <ng-template *ngIf="contentTemplate; else defaultContentTemplate"
2125
+ [ngTemplateOutlet]="contentTemplate?.templateRef">
2126
+ </ng-template>
2127
+ <ng-template #defaultContentTemplate>
2128
+ <div *ngIf="topGroupItems" kendoActionSheetList
2129
+ class="k-list-ul"
2130
+ role="group"
2131
+ [groupItems]="topGroupItems"
2132
+ [allItems]="items"
2133
+ [itemTemplate]="itemTemplate?.templateRef"
2134
+ (itemClick)="onItemClick($event)">
2135
+ </div>
2136
+
2137
+ <hr *ngIf="shouldRenderSeparator" class="k-hr"/>
2138
+
2139
+ <div *ngIf="bottomGroupItems" kendoActionSheetList
2140
+ class="k-list-ul"
2141
+ role="group"
2142
+ [groupItems]="bottomGroupItems"
2143
+ [allItems]="items"
2144
+ [itemTemplate]="itemTemplate?.templateRef"
2145
+ (itemClick)="onItemClick($event)">
2146
+ </div>
2147
+ </ng-template>
2148
+ </div>
2149
+ <div *ngIf="footerTemplate" class="k-actionsheet-footer">
2150
+ <ng-template
2151
+ [ngTemplateOutlet]="footerTemplate?.templateRef">
2152
+ </ng-template>
2153
+ </div>
2154
+ </div>
2155
+ </div>
2156
+ </div>
2157
+ `,
2158
+ providers: [
2159
+ LocalizationService,
2160
+ {
2161
+ provide: L10N_PREFIX,
2162
+ useValue: 'kendo.actionsheet.component'
2163
+ }
2164
+ ]
2165
+ }]
2166
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LocalizationService }]; }, propDecorators: { hostClass: [{
2167
+ type: HostBinding,
2168
+ args: ['class.k-actionsheet-container']
2169
+ }], direction: [{
2170
+ type: HostBinding,
2171
+ args: ['attr.dir']
2172
+ }], title: [{
2173
+ type: Input
2174
+ }], subtitle: [{
2175
+ type: Input
2176
+ }], items: [{
2177
+ type: Input
2178
+ }], itemClick: [{
2179
+ type: Output
2180
+ }], overlayClick: [{
2181
+ type: Output
2182
+ }], headerTemplate: [{
2183
+ type: ContentChild,
2184
+ args: [ActionSheetHeaderTemplateDirective]
2185
+ }], contentTemplate: [{
2186
+ type: ContentChild,
2187
+ args: [ActionSheetContentTemplateDirective]
2188
+ }], itemTemplate: [{
2189
+ type: ContentChild,
2190
+ args: [ActionSheetItemTemplateDirective]
2191
+ }], footerTemplate: [{
2192
+ type: ContentChild,
2193
+ args: [ActionSheetFooterTemplateDirective]
2194
+ }] } });
2195
+
2196
+ const templateDirectives = [
2197
+ ActionSheetHeaderTemplateDirective,
2198
+ ActionSheetItemTemplateDirective,
2199
+ ActionSheetContentTemplateDirective,
2200
+ ActionSheetFooterTemplateDirective
2201
+ ];
2202
+ const exportedModules = [
2203
+ ActionSheetComponent,
2204
+ ...templateDirectives
2205
+ ];
2206
+ const declarations = [
2207
+ ActionSheetItemComponent,
2208
+ ActionSheetListComponent,
2209
+ ...exportedModules
2210
+ ];
2211
+ /**
2212
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
2213
+ * definition for the ActionSheet component.
2214
+ *
2215
+ * * @example
2216
+ *
2217
+ * ```ts-no-run
2218
+ * // Import the ActionSheet module
2219
+ * import { ActionSheetModule } from '@progress/kendo-angular-navigation';
2220
+ *
2221
+ * // The browser platform with a compiler
2222
+ * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
2223
+ * import { BrowserModule } from '@angular/platform-browser';
2224
+ *
2225
+ * import { NgModule } from '@angular/core';
2226
+ *
2227
+ * // Import the app component
2228
+ * import { AppComponent } from './app.component';
2229
+ *
2230
+ * // Define the app module
2231
+ * _@NgModule({
2232
+ * declarations: [AppComponent], // declare app component
2233
+ * imports: [BrowserModule, ActionSheetModule], // import ActionSheet module
2234
+ * bootstrap: [AppComponent]
2235
+ * })
2236
+ * export class AppModule {}
2237
+ *
2238
+ * // Compile and launch the module
2239
+ * platformBrowserDynamic().bootstrapModule(AppModule);
2240
+ *
2241
+ * ```
2242
+ */
2243
+ class ActionSheetModule {
2244
+ }
2245
+ ActionSheetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2246
+ ActionSheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetModule, declarations: [ActionSheetItemComponent,
2247
+ ActionSheetListComponent, ActionSheetComponent, ActionSheetHeaderTemplateDirective,
2248
+ ActionSheetItemTemplateDirective,
2249
+ ActionSheetContentTemplateDirective,
2250
+ ActionSheetFooterTemplateDirective], imports: [CommonModule], exports: [ActionSheetComponent, ActionSheetHeaderTemplateDirective,
2251
+ ActionSheetItemTemplateDirective,
2252
+ ActionSheetContentTemplateDirective,
2253
+ ActionSheetFooterTemplateDirective] });
2254
+ ActionSheetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetModule, imports: [[CommonModule]] });
2255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActionSheetModule, decorators: [{
2256
+ type: NgModule,
2257
+ args: [{
2258
+ declarations: [declarations],
2259
+ exports: [exportedModules],
2260
+ imports: [CommonModule]
2261
+ }]
2262
+ }] });
2263
+
2264
+ /**
2265
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
2266
+ * definition for the Navigation components.
2267
+ *
2268
+ * @example
2269
+ *
2270
+ * ```ts-no-run
2271
+ * // Import the Navigation module
2272
+ * import { NavigationModule } from '@progress/kendo-angular-navigation';
2273
+ *
2274
+ * // The browser platform with a compiler
2275
+ * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
2276
+ *
2277
+ * import { NgModule } from '@angular/core';
2278
+ *
2279
+ * // Import the app component
2280
+ * import { AppComponent } from './app.component';
2281
+ *
2282
+ * // Define the app module
2283
+ * _@NgModule({
2284
+ * declarations: [AppComponent], // declare app component
2285
+ * imports: [BrowserModule, NavigationModule], // import Navigation module
2286
+ * bootstrap: [AppComponent]
2287
+ * })
2288
+ * export class AppModule {}
2289
+ *
2290
+ * // Compile and launch the module
2291
+ * platformBrowserDynamic().bootstrapModule(AppModule);
2292
+ *
2293
+ * ```
2294
+ */
2295
+ class NavigationModule {
2296
+ }
2297
+ NavigationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2298
+ NavigationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavigationModule, exports: [AppBarModule,
2299
+ BreadCrumbModule,
2300
+ BottomNavigationModule,
2301
+ ActionSheetModule] });
2302
+ NavigationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavigationModule, imports: [AppBarModule,
2303
+ BreadCrumbModule,
2304
+ BottomNavigationModule,
2305
+ ActionSheetModule] });
2306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavigationModule, decorators: [{
2307
+ type: NgModule,
2308
+ args: [{
2309
+ exports: [
2310
+ AppBarModule,
2311
+ BreadCrumbModule,
2312
+ BottomNavigationModule,
2313
+ ActionSheetModule
2314
+ ]
2315
+ }]
2316
+ }] });
2317
+
2318
+ // AppBar exports
2319
+
2320
+ /**
2321
+ * Generated bundle index. Do not edit.
2322
+ */
2323
+
2324
+ export { ActionSheetComponent, ActionSheetContentTemplateDirective, ActionSheetFooterTemplateDirective, ActionSheetHeaderTemplateDirective, ActionSheetItemClickEvent, ActionSheetItemTemplateDirective, ActionSheetModule, AppBarComponent, AppBarModule, AppBarSectionComponent, AppBarSpacerComponent, BottomNavigationComponent, BottomNavigationItemTemplateDirective, BottomNavigationModule, BottomNavigationSelectEvent, BreadCrumbComponent, BreadCrumbItemComponent, BreadCrumbItemTemplateDirective, BreadCrumbListComponent, BreadCrumbModule, NavigationModule };
2325
+