@progress/kendo-angular-common 17.0.0-develop.4 → 17.0.0-develop.40

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 (88) hide show
  1. package/adornments/prefix.directive.d.ts +1 -1
  2. package/adornments/separator-orientation.d.ts +1 -1
  3. package/adornments/separator.component.d.ts +1 -1
  4. package/adornments/suffix.directive.d.ts +1 -1
  5. package/adornments.d.ts +0 -1
  6. package/draggable/draggable.directive.d.ts +1 -1
  7. package/draggable.d.ts +0 -1
  8. package/{esm2020 → esm2022}/adornments/prefix.directive.mjs +8 -7
  9. package/{esm2020 → esm2022}/adornments/separator.component.mjs +13 -15
  10. package/{esm2020 → esm2022}/adornments/suffix.directive.mjs +8 -7
  11. package/{esm2020 → esm2022}/adornments.mjs +0 -1
  12. package/{esm2020 → esm2022}/draggable/draggable.directive.mjs +10 -7
  13. package/{esm2020 → esm2022}/draggable.mjs +0 -1
  14. package/{esm2020 → esm2022}/events/events-outside-angular.directive.mjs +9 -4
  15. package/{esm2020 → esm2022}/events.mjs +0 -1
  16. package/{esm2020 → esm2022}/preventable-event.mjs +1 -3
  17. package/{esm2020 → esm2022}/resize-sensor/compat.service.mjs +6 -0
  18. package/{esm2020 → esm2022}/resize-sensor/observer.service.mjs +6 -3
  19. package/{esm2020 → esm2022}/resize-sensor/resize-batch.service.mjs +7 -5
  20. package/{esm2020 → esm2022}/resize-sensor/resize-sensor.component.mjs +15 -13
  21. package/{esm2020 → esm2022}/resize-sensor/resize.service.mjs +7 -3
  22. package/{esm2020 → esm2022}/resize-sensor.mjs +0 -1
  23. package/{esm2020 → esm2022}/template-context/template-context.directive.mjs +8 -6
  24. package/{esm2020 → esm2022}/toggle-button-tab-stop/toggle-button-tab-stop.directive.mjs +44 -28
  25. package/{esm2020 → esm2022}/toggle-button-tab-stop/toggle-button-tab-stop.mjs +1 -0
  26. package/{esm2020 → esm2022}/toggle-button-tab-stop.mjs +0 -1
  27. package/{esm2020 → esm2022}/utils/scrollbar-width.service.mjs +4 -4
  28. package/{esm2020 → esm2022}/watermark/index.mjs +0 -1
  29. package/{esm2020 → esm2022}/watermark/watermark.component.mjs +11 -12
  30. package/events/events-outside-angular.directive.d.ts +1 -1
  31. package/events.d.ts +0 -1
  32. package/{fesm2020 → fesm2022}/progress-kendo-angular-common.mjs +228 -290
  33. package/package.json +10 -16
  34. package/resize-sensor/resize-sensor.component.d.ts +1 -1
  35. package/resize-sensor.d.ts +0 -1
  36. package/template-context/template-context.directive.d.ts +1 -1
  37. package/toggle-button-tab-stop/toggle-button-tab-stop.directive.d.ts +1 -1
  38. package/toggle-button-tab-stop.d.ts +0 -1
  39. package/watermark/index.d.ts +0 -1
  40. package/adornments/adornments.module.d.ts +0 -17
  41. package/draggable/draggable.module.d.ts +0 -15
  42. package/esm2020/adornments/adornments.module.mjs +0 -26
  43. package/esm2020/draggable/draggable.module.mjs +0 -23
  44. package/esm2020/events/events.module.mjs +0 -23
  45. package/esm2020/resize-sensor/resize-sensor.module.mjs +0 -25
  46. package/esm2020/toggle-button-tab-stop/toggle-button-tab-stop.module.mjs +0 -23
  47. package/esm2020/watermark/watermark.module.mjs +0 -23
  48. package/events/events.module.d.ts +0 -15
  49. package/fesm2015/progress-kendo-angular-common.mjs +0 -1628
  50. package/resize-sensor/resize-sensor.module.d.ts +0 -15
  51. package/toggle-button-tab-stop/toggle-button-tab-stop.module.d.ts +0 -15
  52. package/watermark/watermark.module.d.ts +0 -15
  53. /package/{esm2020 → esm2022}/adornments/separator-orientation.mjs +0 -0
  54. /package/{esm2020 → esm2022}/directives.mjs +0 -0
  55. /package/{esm2020 → esm2022}/dom-queries/closest-by-selector.mjs +0 -0
  56. /package/{esm2020 → esm2022}/dom-queries/closest-in-scope.mjs +0 -0
  57. /package/{esm2020 → esm2022}/dom-queries/closest.mjs +0 -0
  58. /package/{esm2020 → esm2022}/dom-queries/contains.mjs +0 -0
  59. /package/{esm2020 → esm2022}/dom-queries/find-element.mjs +0 -0
  60. /package/{esm2020 → esm2022}/dom-queries/find-focusable-child.mjs +0 -0
  61. /package/{esm2020 → esm2022}/dom-queries/find-focusable.mjs +0 -0
  62. /package/{esm2020 → esm2022}/dom-queries/has-classes.mjs +0 -0
  63. /package/{esm2020 → esm2022}/dom-queries/is-focusable-with-tab-key.mjs +0 -0
  64. /package/{esm2020 → esm2022}/dom-queries/is-focusable.mjs +0 -0
  65. /package/{esm2020 → esm2022}/dom-queries/is-visible.mjs +0 -0
  66. /package/{esm2020 → esm2022}/dom-queries/matches-classes.mjs +0 -0
  67. /package/{esm2020 → esm2022}/dom-queries/matches-node-name.mjs +0 -0
  68. /package/{esm2020 → esm2022}/dom-queries/rtl-scroll-position.mjs +0 -0
  69. /package/{esm2020 → esm2022}/dom-queries.mjs +0 -0
  70. /package/{esm2020 → esm2022}/enums/keys.mjs +0 -0
  71. /package/{esm2020 → esm2022}/enums.mjs +0 -0
  72. /package/{esm2020 → esm2022}/index.mjs +0 -0
  73. /package/{esm2020 → esm2022}/progress-kendo-angular-common.mjs +0 -0
  74. /package/{esm2020 → esm2022}/template-context/index.mjs +0 -0
  75. /package/{esm2020 → esm2022}/tokens.mjs +0 -0
  76. /package/{esm2020 → esm2022}/utils/any-changed.mjs +0 -0
  77. /package/{esm2020 → esm2022}/utils/detect-browser.mjs +0 -0
  78. /package/{esm2020 → esm2022}/utils/focusable-selectors.mjs +0 -0
  79. /package/{esm2020 → esm2022}/utils/forms-utils.mjs +0 -0
  80. /package/{esm2020 → esm2022}/utils/guid.mjs +0 -0
  81. /package/{esm2020 → esm2022}/utils/has-observers.mjs +0 -0
  82. /package/{esm2020 → esm2022}/utils/html-attributes.mjs +0 -0
  83. /package/{esm2020 → esm2022}/utils/is-changed.mjs +0 -0
  84. /package/{esm2020 → esm2022}/utils/is-document-available.mjs +0 -0
  85. /package/{esm2020 → esm2022}/utils/ng-class-parser.mjs +0 -0
  86. /package/{esm2020 → esm2022}/utils.mjs +0 -0
  87. /package/{esm2020 → esm2022}/watermark/utils.mjs +0 -0
  88. /package/{esm2020 → esm2022}/watermark/validation.mjs +0 -0
@@ -1,1628 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2024 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 { EventEmitter, Directive, Input, Output, NgModule, Injectable, Component, HostBinding, ViewChild, Optional, isDevMode } from '@angular/core';
7
- import { detectDesktopBrowser, detectMobileOS } from '@progress/kendo-common';
8
- import { take, auditTime } from 'rxjs/operators';
9
- import { Draggable } from '@progress/kendo-draggable';
10
- import { merge, fromEvent, from, Subscription } from 'rxjs';
11
- import { NgIf, NgStyle } from '@angular/common';
12
-
13
- /**
14
- * @hidden
15
- */
16
- const isDocumentAvailable = () => typeof document !== 'undefined';
17
-
18
- /**
19
- * @hidden
20
- */
21
- const isChanged = (propertyName, changes, skipFirstChange = true) => (typeof changes[propertyName] !== 'undefined' &&
22
- (!changes[propertyName].isFirstChange() || !skipFirstChange) &&
23
- changes[propertyName].previousValue !== changes[propertyName].currentValue);
24
-
25
- /**
26
- * @hidden
27
- */
28
- const anyChanged = (propertyNames, changes, skipFirstChange = true) => propertyNames.some(name => isChanged(name, changes, skipFirstChange));
29
-
30
- /**
31
- * @hidden
32
- */
33
- const hasObservers = (emitter) => emitter && emitter.observers.length > 0;
34
-
35
- /**
36
- * @hidden
37
- */
38
- const guid = () => {
39
- let id = "";
40
- for (let i = 0; i < 32; i++) {
41
- const random = Math.random() * 16 | 0; // eslint-disable-line no-bitwise
42
- if (i === 8 || i === 12 || i === 16 || i === 20) {
43
- id += "-";
44
- }
45
- // eslint-disable-next-line no-bitwise
46
- id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);
47
- }
48
- return id;
49
- };
50
-
51
- /**
52
- * @hidden
53
- *
54
- * Returns true if the used browser is Safari.
55
- */
56
- const isSafari = (userAgent) => {
57
- return detectDesktopBrowser(userAgent).safari ||
58
- (detectMobileOS(userAgent) && detectMobileOS(userAgent).browser === 'mobilesafari');
59
- };
60
- /**
61
- * @hidden
62
- *
63
- * Returns true if the used browser is Firefox.
64
- */
65
- const isFirefox = (userAgent) => {
66
- const desktopBrowser = detectDesktopBrowser(userAgent);
67
- const mobileOS = detectMobileOS(userAgent);
68
- return (desktopBrowser && desktopBrowser.mozilla) || (mobileOS && mobileOS.browser === 'firefox');
69
- };
70
-
71
- /* eslint-disable @typescript-eslint/no-explicit-any */
72
- /**
73
- * @hidden
74
- */
75
- const isPresent = (value) => value !== null && value !== undefined;
76
- /**
77
- * @hidden
78
- */
79
- const isObjectPresent = (value) => {
80
- return isObject(value) && Object.keys(value).length > 0;
81
- };
82
- /**
83
- * @hidden
84
- */
85
- const isString = (value) => value instanceof String || typeof value === 'string';
86
- /**
87
- * @hidden
88
- */
89
- const isObject = (value) => isPresent(value) && !Array.isArray(value) && typeof value === 'object';
90
- /**
91
- * @hidden
92
- */
93
- const splitStringToArray = (value) => value.trim().replace(/\s+/g, " ").split(' ');
94
- /**
95
- * Receives CSS class declarations either as an object, string or array and returns an array of the class names.
96
- *
97
- * @hidden
98
- */
99
- const parseCSSClassNames = (value) => {
100
- if (Array.isArray(value)) {
101
- return parseArrayClassNames(value);
102
- }
103
- if (isObject(value)) {
104
- return parseObjectClassNames(value);
105
- }
106
- if (isString(value)) {
107
- return parseStringClassNames(value);
108
- }
109
- };
110
- const parseObjectClassNames = (value) => {
111
- const classes = [];
112
- Object.keys(value).forEach((className) => {
113
- const currentClassName = splitStringToArray(className);
114
- if (value[className] && currentClassName.length) {
115
- classes.push(...currentClassName);
116
- }
117
- });
118
- return classes;
119
- };
120
- const parseStringClassNames = (value) => {
121
- const classes = [];
122
- const classesArray = splitStringToArray(value);
123
- classesArray.forEach((className) => {
124
- classes.push(className);
125
- });
126
- return classes;
127
- };
128
- const parseArrayClassNames = (value) => {
129
- const classes = [];
130
- value.forEach((className) => {
131
- const current = splitStringToArray(className);
132
- if (current[0]) {
133
- classes.push(...current);
134
- }
135
- });
136
- return classes;
137
- };
138
-
139
- /**
140
- * @hidden
141
- */
142
- const setHTMLAttributes = (attributes, renderer, element, zone) => {
143
- zone ? zone.onStable.pipe(take(1)).subscribe(() => {
144
- applyAttributes(attributes, renderer, element);
145
- }) : applyAttributes(attributes, renderer, element);
146
- };
147
- /**
148
- * @hidden
149
- */
150
- const removeHTMLAttributes = (attributes, renderer, element) => {
151
- for (const attribute in attributes) {
152
- if (attribute) {
153
- renderer.removeAttribute(element, attribute);
154
- }
155
- }
156
- };
157
- /**
158
- * @hidden
159
- */
160
- const parseAttributes = (target, source) => {
161
- const targetObj = target;
162
- Object.keys(source).forEach(key => {
163
- delete targetObj[key];
164
- });
165
- return targetObj;
166
- };
167
- /**
168
- * @hidden
169
- */
170
- const applyAttributes = (attributes, renderer, element) => {
171
- for (const attribute in attributes) {
172
- if (attribute && isPresent(attributes[attribute])) {
173
- renderer.setAttribute(element, attribute, attributes[attribute]);
174
- }
175
- }
176
- };
177
-
178
- /**
179
- * @hidden
180
- */
181
- const isControlRequired = (control) => {
182
- var _a;
183
- if (!(control === null || control === void 0 ? void 0 : control.validator)) {
184
- return false;
185
- }
186
- return (_a = control.validator(control)) === null || _a === void 0 ? void 0 : _a.hasOwnProperty('required');
187
- };
188
-
189
- class DraggableDirective {
190
- constructor(element, ngZone) {
191
- this.element = element;
192
- this.ngZone = ngZone;
193
- this.enableDrag = true;
194
- this.kendoPress = new EventEmitter();
195
- this.kendoDrag = new EventEmitter();
196
- this.kendoRelease = new EventEmitter();
197
- }
198
- ngOnInit() {
199
- this.toggleDraggable();
200
- }
201
- ngOnChanges(changes) {
202
- if (isChanged('enableDrag', changes)) {
203
- this.toggleDraggable();
204
- }
205
- }
206
- ngOnDestroy() {
207
- this.destroyDraggable();
208
- }
209
- toggleDraggable() {
210
- if (isDocumentAvailable()) {
211
- this.destroyDraggable();
212
- if (this.enableDrag) {
213
- this.draggable = new Draggable({
214
- drag: (e) => this.kendoDrag.next(e),
215
- press: (e) => this.kendoPress.next(e),
216
- release: (e) => this.kendoRelease.next(e)
217
- });
218
- this.ngZone.runOutsideAngular(() => { var _a; return (_a = this.draggable) === null || _a === void 0 ? void 0 : _a.bindTo(this.element.nativeElement); });
219
- }
220
- }
221
- }
222
- destroyDraggable() {
223
- if (this.draggable) {
224
- this.draggable.destroy();
225
- this.draggable = undefined;
226
- }
227
- }
228
- }
229
- DraggableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DraggableDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
230
- DraggableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DraggableDirective, isStandalone: true, selector: "[kendoDraggable]", inputs: { enableDrag: "enableDrag" }, outputs: { kendoPress: "kendoPress", kendoDrag: "kendoDrag", kendoRelease: "kendoRelease" }, usesOnChanges: true, ngImport: i0 });
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DraggableDirective, decorators: [{
232
- type: Directive,
233
- args: [{
234
- selector: '[kendoDraggable]',
235
- standalone: true
236
- }]
237
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { enableDrag: [{
238
- type: Input
239
- }], kendoPress: [{
240
- type: Output
241
- }], kendoDrag: [{
242
- type: Output
243
- }], kendoRelease: [{
244
- type: Output
245
- }] } });
246
-
247
- /**
248
- * @hidden
249
- * IMPORTANT: NgModule export kept for backwards compatibility
250
- */
251
- class DraggableModule {
252
- }
253
- DraggableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DraggableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
254
- DraggableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: DraggableModule, imports: [DraggableDirective], exports: [DraggableDirective] });
255
- DraggableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DraggableModule });
256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DraggableModule, decorators: [{
257
- type: NgModule,
258
- args: [{
259
- exports: [DraggableDirective],
260
- imports: [DraggableDirective]
261
- }]
262
- }] });
263
-
264
- const closestInScope = (node, predicate, scope) => {
265
- while (node && node !== scope && !predicate(node)) {
266
- node = node.parentNode;
267
- }
268
- if (node !== scope) {
269
- return node;
270
- }
271
- return undefined;
272
- };
273
-
274
- const closest = (node, predicate) => {
275
- while (node && !predicate(node)) {
276
- node = node.parentNode;
277
- }
278
- return node;
279
- };
280
-
281
- const contains = (parent, node, matchSelf = false) => {
282
- const outside = !closest(node, (child) => child === parent);
283
- if (outside) {
284
- return false;
285
- }
286
- const el = closest(node, (child) => child === node);
287
- return el && (matchSelf || el !== parent);
288
- };
289
-
290
- const findElement = (node, predicate, matchSelf = true) => {
291
- if (!node) {
292
- return;
293
- }
294
- if (matchSelf && predicate(node)) {
295
- return node;
296
- }
297
- node = node.firstChild;
298
- while (node) {
299
- if (node.nodeType === 1) {
300
- const element = findElement(node, predicate);
301
- if (element) {
302
- return element;
303
- }
304
- }
305
- node = node.nextSibling;
306
- }
307
- };
308
-
309
- const focusableRegex = /^(?:a|input|select|option|textarea|button|object)$/i;
310
- const isFocusable = (element) => {
311
- if (!element.tagName) {
312
- return false;
313
- }
314
- const tagName = element.tagName.toLowerCase();
315
- const hasTabIndex = Boolean(element.getAttribute('tabIndex'));
316
- const focusable = !element.disabled && focusableRegex.test(tagName);
317
- return focusable || hasTabIndex;
318
- };
319
-
320
- const isVisible = (element) => {
321
- const rect = element.getBoundingClientRect();
322
- const hasSize = rect.width > 0 && rect.height > 0;
323
- const hasPosition = rect.x !== 0 && rect.y !== 0;
324
- // Elements can have zero size due to styling, but they will still count as visible.
325
- // For example, the selection checkbox has no size, but is made visible through styling.
326
- return (hasSize || hasPosition) && window.getComputedStyle(element).visibility !== 'hidden';
327
- };
328
-
329
- const isFocusableWithTabKey = (element, checkVisibility = true) => {
330
- if (!isFocusable(element)) {
331
- return false;
332
- }
333
- const tabIndex = element.getAttribute('tabIndex');
334
- const visible = !checkVisibility || isVisible(element);
335
- return visible && tabIndex !== '-1';
336
- };
337
-
338
- const findFocusableChild = (element, checkVisibility = true) => {
339
- return findElement(element, (node) => isFocusableWithTabKey(node, checkVisibility), false);
340
- };
341
-
342
- const findFocusable = (element, checkVisibility = true) => {
343
- return findElement(element, (node) => isFocusableWithTabKey(node, checkVisibility));
344
- };
345
-
346
- const toClassList = (classNames) => String(classNames).trim().split(' ');
347
- const hasClasses = (element, classNames) => {
348
- const namesList = toClassList(classNames);
349
- return Boolean(toClassList(element.className).find((className) => namesList.indexOf(className) >= 0));
350
- };
351
-
352
- const matchesClasses = (classNames) => (element) => hasClasses(element, classNames);
353
-
354
- const NODE_NAME_PREDICATES = {};
355
- const matchesNodeName = (nodeName) => {
356
- if (!NODE_NAME_PREDICATES[nodeName]) {
357
- NODE_NAME_PREDICATES[nodeName] = (element) => String(element.nodeName).toLowerCase() === nodeName.toLowerCase();
358
- }
359
- return NODE_NAME_PREDICATES[nodeName];
360
- };
361
-
362
- /**
363
- * Normalizes a scroll position value in RTL mode.
364
- */
365
- function rtlScrollPosition(position, element, initial) {
366
- let result = position;
367
- if (initial < 0) {
368
- result = -position;
369
- }
370
- else if (initial > 0) {
371
- result = element.scrollWidth - element.offsetWidth - position;
372
- }
373
- return result;
374
- }
375
-
376
- function closestBySelector(element, selector) {
377
- if (element.closest) {
378
- return element.closest(selector);
379
- }
380
- const matches = Element.prototype.matches ?
381
- (el, sel) => el.matches(sel)
382
- : (el, sel) => el.msMatchesSelector(sel);
383
- let node = element;
384
- while (node && !isDocumentNode(node)) {
385
- if (matches(node, selector)) {
386
- return node;
387
- }
388
- node = node.parentNode;
389
- }
390
- }
391
- const isDocumentNode = (container) => container.nodeType === 9;
392
-
393
- /**
394
- * @hidden
395
- */
396
- class EventsOutsideAngularDirective {
397
- constructor(element, ngZone, renderer) {
398
- this.element = element;
399
- this.ngZone = ngZone;
400
- this.renderer = renderer;
401
- this.events = {};
402
- }
403
- ngOnInit() {
404
- if (!this.element || !this.element.nativeElement) {
405
- return;
406
- }
407
- const events = this.events;
408
- this.subscriptions = [];
409
- this.ngZone.runOutsideAngular(() => {
410
- var _a;
411
- for (const name in events) {
412
- if (Object.hasOwnProperty.call(events, name)) {
413
- (_a = this.subscriptions) === null || _a === void 0 ? void 0 : _a.push(this.renderer.listen(this.element.nativeElement, name, this.scope ? events[name].bind(this.scope) : events[name]));
414
- }
415
- }
416
- });
417
- }
418
- ngOnDestroy() {
419
- if (this.subscriptions) {
420
- for (let idx = 0; idx < this.subscriptions.length; idx++) {
421
- this.subscriptions[idx]();
422
- }
423
- this.subscriptions = null;
424
- }
425
- }
426
- }
427
- EventsOutsideAngularDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsOutsideAngularDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
428
- EventsOutsideAngularDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: EventsOutsideAngularDirective, isStandalone: true, selector: "[kendoEventsOutsideAngular]", inputs: { events: ["kendoEventsOutsideAngular", "events"], scope: "scope" }, ngImport: i0 });
429
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsOutsideAngularDirective, decorators: [{
430
- type: Directive,
431
- args: [{
432
- selector: '[kendoEventsOutsideAngular]',
433
- standalone: true
434
- }]
435
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { events: [{
436
- type: Input,
437
- args: ['kendoEventsOutsideAngular']
438
- }], scope: [{
439
- type: Input
440
- }] } });
441
-
442
- /**
443
- * @hidden
444
- * IMPORTANT: NgModule export kept for backwards compatibility
445
- */
446
- class EventsModule {
447
- }
448
- EventsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
449
- EventsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: EventsModule, imports: [EventsOutsideAngularDirective], exports: [EventsOutsideAngularDirective] });
450
- EventsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsModule });
451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsModule, decorators: [{
452
- type: NgModule,
453
- args: [{
454
- imports: [EventsOutsideAngularDirective],
455
- exports: [EventsOutsideAngularDirective]
456
- }]
457
- }] });
458
-
459
- class ResizeService {
460
- constructor(resizeBatchService) {
461
- this.resizeBatchService = resizeBatchService;
462
- this.resize = new EventEmitter();
463
- this.acceptedSize = false;
464
- this.state = 0 /* ServiceState.Initial */;
465
- }
466
- acceptSize(size = this.measure()) {
467
- this.lastWidth = size.width;
468
- this.lastHeight = size.height;
469
- this.acceptedSize = true;
470
- }
471
- checkChanges() {
472
- if (!isDocumentAvailable()) {
473
- return;
474
- }
475
- if (this.state === 0 /* ServiceState.Initial */) {
476
- this.state = 1 /* ServiceState.Initializing */;
477
- // batch initial measure
478
- this.resizeBatchService.schedule(this, this.init);
479
- }
480
- }
481
- destroy() {
482
- this.resizeBatchService.cancel(this);
483
- }
484
- checkSize() {
485
- if (!this.parentElement) {
486
- return false;
487
- }
488
- const { width, height } = this.measure();
489
- const sameSize = width === this.lastWidth && height === this.lastHeight;
490
- if (sameSize) {
491
- return false;
492
- }
493
- this.lastWidth = width;
494
- this.lastHeight = height;
495
- this.acceptedSize = false;
496
- this.resize.emit();
497
- return true;
498
- }
499
- initSize() {
500
- const size = this.measure();
501
- this.lastWidth = size.width;
502
- this.lastHeight = size.height;
503
- }
504
- measure() {
505
- let width = 0;
506
- let height = 0;
507
- if (this.parentElement) {
508
- height = this.parentElement.offsetHeight;
509
- width = this.parentElement.offsetWidth;
510
- }
511
- return { height, width };
512
- }
513
- }
514
-
515
- // eslint-disable import/no-deprecated
516
- // TODO:NG13 CSP
517
- const div = (style) => {
518
- const el = document.createElement('div');
519
- el.style.cssText = style;
520
- return el;
521
- };
522
- const computedProp = (elem, prop) => getComputedStyle(elem, null).getPropertyValue(prop);
523
- const WRAP_STYLE = 'position: absolute; display: block; left: 0; top: 0; right: 0; bottom: 0; z-index: -1;' +
524
- 'overflow: hidden; visibility: hidden;';
525
- const EXPAND_CHILD_STYLE = 'position: absolute; left: 0; top: 0; transition: 0s;';
526
- const SHRINK_CHILD_STYLE = EXPAND_CHILD_STYLE + 'width: 200%; height: 200%;';
527
- class ResizeCompatService extends ResizeService {
528
- constructor(resizeBatchService, element, ngZone) {
529
- super(resizeBatchService);
530
- this.element = element;
531
- this.ngZone = ngZone;
532
- }
533
- checkChanges() {
534
- if (this.state === 2 /* ServiceState.Initialized */) {
535
- if (!this.resizeBatchService.isScheduled(this)) {
536
- this.resizeBatchService.schedule(this, this.checkSize);
537
- }
538
- return;
539
- }
540
- super.checkChanges();
541
- }
542
- destroy() {
543
- var _a;
544
- super.destroy();
545
- if (this.subscription) {
546
- this.subscription.unsubscribe();
547
- }
548
- if (this.expand) {
549
- const element = (_a = this.element) === null || _a === void 0 ? void 0 : _a.nativeElement;
550
- element.removeChild(this.expand);
551
- element.removeChild(this.shrink);
552
- this.expand.removeChild(this.expandChild);
553
- this.expand = this.expandChild = this.shrink = this.element = null;
554
- }
555
- }
556
- checkSize() {
557
- if (super.checkSize()) {
558
- this.reset();
559
- return true;
560
- }
561
- return false;
562
- }
563
- init() {
564
- var _a;
565
- const parentElement = this.parentElement = (_a = this.element) === null || _a === void 0 ? void 0 : _a.nativeElement.parentElement;
566
- if (computedProp(parentElement, 'position') === 'static') {
567
- parentElement.style.position = 'relative';
568
- }
569
- this.state = 2 /* ServiceState.Initialized */;
570
- this.render();
571
- this.reset();
572
- this.initSize();
573
- this.subscribe();
574
- }
575
- render() {
576
- var _a;
577
- const element = (_a = this.element) === null || _a === void 0 ? void 0 : _a.nativeElement;
578
- element.style.cssText = WRAP_STYLE;
579
- element.setAttribute('dir', 'ltr');
580
- this.expand = div(WRAP_STYLE);
581
- this.expandChild = div(EXPAND_CHILD_STYLE);
582
- this.expand.appendChild(this.expandChild);
583
- element.appendChild(this.expand);
584
- this.shrink = div(WRAP_STYLE);
585
- const shrinkChild = div(SHRINK_CHILD_STYLE);
586
- this.shrink.appendChild(shrinkChild);
587
- element.appendChild(this.shrink);
588
- }
589
- reset() {
590
- const expandChild = this.expandChild;
591
- expandChild.style.width = 100000 + 'px';
592
- expandChild.style.height = 100000 + 'px';
593
- const expand = this.expand;
594
- expand.scrollLeft = 100000;
595
- expand.scrollTop = 100000;
596
- const shrink = this.shrink;
597
- shrink.scrollLeft = 100000;
598
- shrink.scrollTop = 100000;
599
- }
600
- subscribe() {
601
- this.ngZone.runOutsideAngular(() => {
602
- this.subscription = merge(fromEvent(this.shrink, 'scroll'), fromEvent(this.expand, 'scroll'))
603
- .subscribe(() => {
604
- this.checkSize();
605
- });
606
- });
607
- }
608
- }
609
-
610
- const HAS_OBSERVER = typeof ResizeObserver !== 'undefined';
611
- /**
612
- * @hidden
613
- */
614
- class ResizeObserverService extends ResizeService {
615
- constructor(resizeBatchService, element, ngZone) {
616
- super(resizeBatchService);
617
- this.element = element;
618
- this.ngZone = ngZone;
619
- }
620
- static supported() {
621
- return HAS_OBSERVER;
622
- }
623
- destroy() {
624
- super.destroy();
625
- if (this.resizeObserver) {
626
- this.resizeObserver.disconnect();
627
- this.resizeObserver = null;
628
- }
629
- this.parentElement = null;
630
- }
631
- init() {
632
- this.parentElement = this.element.nativeElement.parentElement;
633
- this.initSize();
634
- this.state = 2 /* ServiceState.Initialized */;
635
- this.ngZone.runOutsideAngular(() => {
636
- this.resizeObserver = new ResizeObserver(() => {
637
- this.checkSize();
638
- });
639
- this.resizeObserver.observe(this.parentElement);
640
- });
641
- }
642
- }
643
-
644
- /**
645
- * @hidden
646
- */
647
- class ResizeBatchService {
648
- constructor(ngZone) {
649
- this.ngZone = ngZone;
650
- this.scheduled = [];
651
- this.resolvedPromise = Promise.resolve(null);
652
- this.flush = this.flush.bind(this);
653
- }
654
- schedule(instance, method) {
655
- this.scheduled.push({ instance, method });
656
- if (!this.subscription) {
657
- this.ngZone.runOutsideAngular(() => {
658
- this.subscription = from(this.resolvedPromise)
659
- .subscribe(this.flush);
660
- });
661
- }
662
- }
663
- isScheduled(instance) {
664
- return Boolean(this.scheduled.find(item => item.instance === instance));
665
- }
666
- cancel(instance) {
667
- const scheduled = this.scheduled;
668
- const count = scheduled.length;
669
- for (let idx = 0; idx < count; idx++) {
670
- if (scheduled[idx].instance === instance) {
671
- scheduled.splice(idx, 1);
672
- if (!scheduled.length) {
673
- this.unsubscribe();
674
- }
675
- return;
676
- }
677
- }
678
- }
679
- ngOnDestroy() {
680
- this.unsubscribe();
681
- }
682
- unsubscribe() {
683
- if (this.subscription) {
684
- this.subscription.unsubscribe();
685
- this.subscription = null;
686
- }
687
- }
688
- flush() {
689
- this.scheduled.forEach(item => {
690
- item.method.call(item.instance);
691
- });
692
- this.scheduled = [];
693
- this.unsubscribe();
694
- }
695
- }
696
- ResizeBatchService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResizeBatchService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
697
- ResizeBatchService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResizeBatchService, providedIn: 'root' });
698
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResizeBatchService, decorators: [{
699
- type: Injectable,
700
- args: [{
701
- providedIn: 'root'
702
- }]
703
- }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
704
-
705
- /**
706
- * Emit up to 10 resize events per second by default.
707
- * Chosen as a compromise between responsiveness and performance.
708
- */
709
- const DEFAULT_RATE_LIMIT = 10;
710
- /**
711
- * Resize Sensor Component
712
- *
713
- * Triggers a "resize" event whenever the parent DOM element size changes.
714
- */
715
- class ResizeSensorComponent {
716
- constructor(resizeBatchService, element, ngZone) {
717
- /**
718
- * The maximum number of resize events to emit per second.
719
- *
720
- * Defaults to 10.
721
- */
722
- this.rateLimit = DEFAULT_RATE_LIMIT;
723
- /**
724
- * Fires when the parent DOM element has been resized.
725
- */
726
- this.resize = new EventEmitter();
727
- const serviceType = ResizeObserverService.supported() ? ResizeObserverService : ResizeCompatService;
728
- this.resizeService = new serviceType(resizeBatchService, element, ngZone);
729
- const throttleTime = 1000 / (this.rateLimit || DEFAULT_RATE_LIMIT);
730
- this.subscription = this.resizeService.resize
731
- .pipe(auditTime(throttleTime))
732
- .subscribe(() => {
733
- if (!this.resizeService.acceptedSize) {
734
- this.resize.emit();
735
- }
736
- });
737
- }
738
- ngAfterViewChecked() {
739
- this.resizeService.checkChanges();
740
- }
741
- ngOnDestroy() {
742
- this.subscription.unsubscribe();
743
- this.resizeService.destroy();
744
- }
745
- acceptSize(size) {
746
- this.resizeService.acceptSize(size);
747
- }
748
- }
749
- ResizeSensorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResizeSensorComponent, deps: [{ token: ResizeBatchService }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
750
- ResizeSensorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ResizeSensorComponent, isStandalone: true, selector: "kendo-resize-sensor", inputs: { rateLimit: "rateLimit" }, outputs: { resize: "resize" }, ngImport: i0, template: '', isInline: true });
751
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResizeSensorComponent, decorators: [{
752
- type: Component,
753
- args: [{
754
- selector: 'kendo-resize-sensor',
755
- template: '',
756
- standalone: true
757
- }]
758
- }], ctorParameters: function () { return [{ type: ResizeBatchService }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { rateLimit: [{
759
- type: Input
760
- }], resize: [{
761
- type: Output
762
- }] } });
763
-
764
- /**
765
- * @hidden
766
- * IMPORTANT: NgModule export kept for backwards compatibility
767
- */
768
- class ResizeSensorModule {
769
- }
770
- ResizeSensorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResizeSensorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
771
- ResizeSensorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ResizeSensorModule, imports: [ResizeSensorComponent], exports: [ResizeSensorComponent] });
772
- ResizeSensorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResizeSensorModule, providers: [ResizeBatchService], imports: [ResizeSensorComponent] });
773
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ResizeSensorModule, decorators: [{
774
- type: NgModule,
775
- args: [{
776
- imports: [ResizeSensorComponent],
777
- exports: [ResizeSensorComponent],
778
- providers: [ResizeBatchService]
779
- }]
780
- }] });
781
-
782
- class KendoInput {
783
- }
784
-
785
- /**
786
- * Enum with key codes.
787
- */
788
- var Keys;
789
- (function (Keys) {
790
- Keys[Keys["Alt"] = 18] = "Alt";
791
- Keys[Keys["ArrowDown"] = 40] = "ArrowDown";
792
- Keys[Keys["ArrowLeft"] = 37] = "ArrowLeft";
793
- Keys[Keys["ArrowRight"] = 39] = "ArrowRight";
794
- Keys[Keys["ArrowUp"] = 38] = "ArrowUp";
795
- Keys[Keys["Backspace"] = 8] = "Backspace";
796
- Keys[Keys["Control"] = 17] = "Control";
797
- Keys[Keys["Delete"] = 46] = "Delete";
798
- Keys[Keys["Digit0"] = 48] = "Digit0";
799
- Keys[Keys["Digit1"] = 49] = "Digit1";
800
- Keys[Keys["Digit2"] = 50] = "Digit2";
801
- Keys[Keys["Digit3"] = 51] = "Digit3";
802
- Keys[Keys["Digit4"] = 52] = "Digit4";
803
- Keys[Keys["Digit5"] = 53] = "Digit5";
804
- Keys[Keys["Digit6"] = 54] = "Digit6";
805
- Keys[Keys["Digit7"] = 55] = "Digit7";
806
- Keys[Keys["Digit8"] = 56] = "Digit8";
807
- Keys[Keys["Digit9"] = 57] = "Digit9";
808
- Keys[Keys["End"] = 35] = "End";
809
- Keys[Keys["Enter"] = 13] = "Enter";
810
- Keys[Keys["Escape"] = 27] = "Escape";
811
- Keys[Keys["F1"] = 112] = "F1";
812
- Keys[Keys["F2"] = 113] = "F2";
813
- Keys[Keys["F10"] = 121] = "F10";
814
- Keys[Keys["Home"] = 36] = "Home";
815
- Keys[Keys["Insert"] = 45] = "Insert";
816
- Keys[Keys["KeyA"] = 65] = "KeyA";
817
- Keys[Keys["KeyB"] = 66] = "KeyB";
818
- Keys[Keys["KeyC"] = 67] = "KeyC";
819
- Keys[Keys["KeyD"] = 68] = "KeyD";
820
- Keys[Keys["KeyE"] = 69] = "KeyE";
821
- Keys[Keys["KeyF"] = 70] = "KeyF";
822
- Keys[Keys["KeyG"] = 71] = "KeyG";
823
- Keys[Keys["KeyH"] = 72] = "KeyH";
824
- Keys[Keys["KeyI"] = 73] = "KeyI";
825
- Keys[Keys["KeyJ"] = 74] = "KeyJ";
826
- Keys[Keys["KeyK"] = 75] = "KeyK";
827
- Keys[Keys["KeyL"] = 76] = "KeyL";
828
- Keys[Keys["KeyM"] = 77] = "KeyM";
829
- Keys[Keys["KeyN"] = 78] = "KeyN";
830
- Keys[Keys["KeyO"] = 79] = "KeyO";
831
- Keys[Keys["KeyP"] = 80] = "KeyP";
832
- Keys[Keys["KeyQ"] = 81] = "KeyQ";
833
- Keys[Keys["KeyR"] = 82] = "KeyR";
834
- Keys[Keys["KeyS"] = 83] = "KeyS";
835
- Keys[Keys["KeyT"] = 84] = "KeyT";
836
- Keys[Keys["KeyU"] = 85] = "KeyU";
837
- Keys[Keys["KeyV"] = 86] = "KeyV";
838
- Keys[Keys["KeyW"] = 87] = "KeyW";
839
- Keys[Keys["KeyX"] = 88] = "KeyX";
840
- Keys[Keys["KeyY"] = 89] = "KeyY";
841
- Keys[Keys["KeyZ"] = 90] = "KeyZ";
842
- Keys[Keys["NumpadDecimal"] = 110] = "NumpadDecimal";
843
- Keys[Keys["PageDown"] = 34] = "PageDown";
844
- Keys[Keys["PageUp"] = 33] = "PageUp";
845
- Keys[Keys["Shift"] = 16] = "Shift";
846
- Keys[Keys["Space"] = 32] = "Space";
847
- Keys[Keys["Tab"] = 9] = "Tab";
848
- })(Keys || (Keys = {}));
849
-
850
- /**
851
- * @hidden
852
- */
853
- const focusableSelector = [
854
- 'a[href]:not([tabindex^="-"]):not([disabled])',
855
- 'area[href]:not([tabindex^="-"]):not([disabled])',
856
- 'input:not([tabindex^="-"]):not([disabled])',
857
- 'select:not([tabindex^="-"]):not([disabled])',
858
- 'textarea:not([tabindex^="-"]):not([disabled])',
859
- 'button:not([tabindex^="-"]):not([disabled])',
860
- 'iframe:not([tabindex^="-"]):not([disabled])',
861
- 'object:not([tabindex^="-"]):not([disabled])',
862
- 'embed:not([tabindex^="-"]):not([disabled])',
863
- '*[tabindex]:not([tabindex^="-"]):not([disabled])',
864
- '*[contenteditable]:not([tabindex^="-"]):not([disabled]):not([contenteditable="false"])'
865
- ].join(',');
866
-
867
- /**
868
- * @hidden
869
- */
870
- const watermarkStyles = `
871
- position: absolute;
872
- width: 100%;
873
- height: 100%;
874
- top: 0;
875
- left: 0;
876
- right: 0;
877
- bottom: 0;
878
- opacity: 0.2;
879
- zIndex: 101;
880
- pointerEvents: none;
881
- backgroundImage: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABVxSURBVHgB7Z3tVRtJE4WL9zgANgLLGRCCnAGOADmCxRGgDFAGYiOADKQMIAGO9J8ji42g37mjqlUjBgOanpn+uM85sjC2sKzbVd1dVV0tQgghhBBCCCGEEEIIKRPn3Gn1GAlJmmN1pP558J6OX9540ejh4WGlX09OTk7+EZIclXYXlY43+vVflY7PH3wd9c+AY/Wvvcb9/b0bjUYOz/hBQpICmh1oOPrEa6l/4rTR337AhIMgTSqtzg+0m8gnof7p0mD8EzmGhkFwJiR6np6e7luLL9Q/RTDTBzF+7wfWg2CxWOCHjYVET6XTdLPZrFuLL9Q/NeCkoVUQ4/d+6Ijev1yof1rAUVMvQgjJHebrSRu+CEmWo/O8hISgCjStKpgiGoDWed4AUP/hwGf++Pi4hQYyFHgDzBP3T7A8b0uo/zD4+sMBy1CwWKR/YjF+fS/Uv2di0t/eEAdBT0QnvlD/PolR/xoOgu4JUd7bFdS/e6I1foODoFuqz3M2mUziFF+of5dEb/xGwyAYCwmCVuPNYv5MqX94Yl75NWKD4PLyEm92KqQoqH9Y8Bnis0zC+A14LbxxVqiVCfUPh678plxNFYQe5pjRgAgpDAv4IOAHJyCEkDJoiPaeCyG5UA1oRIYWHNivSSbV0wLq/zbQXz+bS8kV/AeZJ35NCcYPqH8zvv4VS8kVFou8phTjB9T/NcVt+zgI9rjQDRwTgPrvKcn5v4CDYIfT/vtFiS/UHxRr/AYHwQ4t9DiVwihZ/+KN36ATKJsS9U+utr9r/EGQdQSUNFKa/geZkImQ/2rHlznnQDG7oX9b9Xwl5AUl6G9oLcSSxl8Q/p4P13YJIaQMisvzEkJ2lJjnJyQY3lnoJGfNUvP8oUhZf7c70s2eCG1wL7uhRJ0iQnCveiDIhzf7t/f9IvP8IUhJfx/b9rErUkvgRVPIE1fv6xrvbzweu7OzM3d7e4v3OhfSilT092HMJzCxF4u43eWctfFvt1uHu9nxXvF1CWmtroldfx9W+HVErINAjX+M65ngAPxnOAJ1AiMhrUjBCdD4Oya2QYBlPwx8vV47WwFg+a+XZbrz83NzANz/ByBmJ0Dj74lYBgECfrbnt6U/DB/vC7388L2rqyu8vzshwYjRCdD4e8YfBLidVgYA0X7M9jB8PGazmbu5ualnfiz9dSAsufwPTwz6+5jjp/H3CD5ofPB9343u9v3u6+U+0jyY7eEA8Hx3d4c/QjvvMyGdMZT+TeA9wBHR+DPHUn3T6bRe7uMxn89tn18v/TH7O17gQEheYM9vEX7M9hbsg/FbHED3/IPPSISQgNhyE0au+7x7PPtOQFcB3PMTMjTYf4cyRN3zL2DgMHgs/7XU99acgDIWEgUh9W/4uWMh8QKBvCh8qxSR7fmxt0eEv8kJ6MzP8/2REFL/g59bp/o0xsMAb6xAnBB5Yr+6D3X9KOpBxP/ACWA0jFnoEw+h9D/4mYd5/pGQeAlRLFK95tJy+35578PDQ+0E9LAPi3wixAUsFmKRT6I0DIIPzdJuf6R3i+UeZnsz/nqjPx47/fMpZ/54OVb/g5/BZi4pY4Pgo8s2d3CkF0Z/cXFRL/+Xy2W9BdBUH4/5JsBn9W94PZu5pI77QzMOjepiNp/j71hO//fv31sr7qmtfT73i3xWjnvAZHhH/4nquXrLwB2bueSJ27Vmvodhq4df4BmzvQb3IPxWl/zgRl/DwZA4GrhdYFUHfbHE1y0enXsJ2FLfCnggvjqBejDoTI8o38ocgJAscNq8BY4fv/Uf+J46gjkdQcbA+19fXzs7zQfR8TWcgH+kFw/u+fMDKz/o3OQETk9PLcWLPSBbeeWELd91eb+CcTc5gXr6r9J8PNKbF/7S3z+6DYcvDasBOv6M0GUduNDfv+cEYPhjIVmA+I3Vc4gaOQzfHAECvb4joAPICCzlrIJP93h/dAIYDBQ/L8wBNC37rXUblv5CB5AfGvi5h6F7Ed9GJ2CZP0b780O1vreVnnhOAFsBOoCMscg/HMBbTsCO+grJFkvvHmYCSnYA/5MMcbsiH6TykNgfr9fry58/f0oltFxcXMj379+l+h42gBcnJyfr6iXfq1nhJ56FZIeuAq+fn59Xv379Oq0CgVJNBEIydAAavLv98ePHeSX4bfX1OQSv9noQ/a7y9A8HTuAcTqB63FSPZyE5Mq3GwOW3b99kNpu9+5e/fv2Kp3+FpAW8vB3cwbLOOvZYfl9LfGdW9KOn+mZCskZXhCuL9vtLfjvshd97hWArpn8TxGn5rhZzOL/gB19DYBzzxcEeTQEtGfArB7c7xbmyVu4YExoTuNcYEL6eCkkTxHYOmna4wzQfvq8z/+o949e940hIkjTp5/ZXjm/1+VQfr856UP/EcLtqr9s/OQENDl5+wPhH3nHQZK6mJjucNvNo2w+A+icC0jaY4a2LT5MT+Mye3+l58JSupiY7XIA2XtQ/IZw2f7D9v+X6D53AZ/f8LqGrqckOF7CNF/VPAF3Or6xvv53r951Amx5+DYOAXWEjxXXQxov6R4zTSzusht8OfABE+r3U39y1iPbbIODVX3ED4/Tagk8kENQ/QiyaC1Fg7PX6frm0Mk6/wUOQ8l799+j9I0cDwcF1ov4R4Xbde2vjxi92ogsPzPrY92szD7buJiQn3K6+v17q2yxvlV1u3+TRAn4jIYTkAfbymOWx1AcwfHMEXp5/JISQ9PEDd867ohvGbvt+cwRe6+5ee7ltNpuVf7yYdA8+68fHxy0+exkY6t8RGnSxJX19yAd7fWvhjEs7NOCHb2D9/+AGqO3HQGSeuD/8PD/GggwM9e8IBPCwr7ciHnzA6NrqtW5+4QRkIByLRXrDRXhXH/XvCKRccEuPX8mHD9jr7Vc7AV32D9rJh4Oge2I0foP6d8QHnADO9kdxYw8HQXfEbPwG9e+It5yAlvdG1beNgyA8KRi/Qf07oskJIEYQw8x/SMMgGAs5CmR0UjF+g/oHwh00YzAn0OZgT1/YINBU5VTIUeCzw2eYivEb1L8l7o1mDm7X220a48x/iNtVLE4dC5OOxu2794wlMaj/kbgAzRwIIQmS4p6PEBKIp6enexo/IYWCPdNms1nnbPxat7BwvH/+P7Dt08/kUjKH+hcOxGeeeI8f86lYSuZQ/8JhsciehoBv9rMi9VdcwZcucBCkVeEXmuL1dy0vbciBkgdBycZvFKs/8/x7ShwENP49xelP8V9T0iBgncdritGfxv82/iDIORJ+EAGfCKnJXn8a//to7fgy51y45sCX1P812erPZR8hBVMZ/Ax9+2j8hBSIHumcpXikkxBCBsXtz8QnUyXndvfz8Sx8AFLUnwTEveyKE32KyAK+7IYThqT0V88/o+cPBz7TVPLEJdb2d00y+pv4elHHTEgwUigWYaq3O6LXn56/e2IeBDT+7olWf4rfHzEOAurfH9HpT/H7J6ZBQP37Jxr9Kf5w+IMAt9PKQOB6NurfP4Prjyg/jX9Y8JnDAHE/vQwE/m0MQOrfP4PqX/3jp15Dj4kQQspCK5SK7OZDCCGEEBIfbneH4kgCoT9vLCQJguqPaD8CDdXzlZDogaEuFotgKSLL9uBnYmAJiZqg+vupPlzbJSR6YKSh8sSODVyTI5j+LO9NlxDFIqzzSJfW+jPPnz4Ng+DDGRvqnz5t9GeePxNsEHx2+U798+BY/e3FzPNnwLE6Uv88oI6EEEIIIYQQQgghhBBCCCGEEEIIIYQQQkiRoHyQxz/T51gdqX8evKfjlzdeNHp4eFjp15OTk5N/hCQHjoFWOt7o139VOj5/8HXUPwOO1f+/02ApXEhJmmnTzIP6p49r28wlRFMJMgwhmnlQ/3RB854g/RwaBgF7wkVOyGYe1D9N0L4vWDMXGwTaFHIsJGpgpF5TyIm0hPqnR6XTdLPZrF2oZi7aVIDePxFgqCH1ov6EEEIIITHRtl7jixBCkuToPH8ocGMQrihmiqh/8Jnjau6hrwen/sPQOs8fAgxA5on7xxcfBigDQf2HIUSdR6g3wmKRnolGfKH+QxCT/vaGOAh6Ijrxhfr3SYz613AQdE+04gv174Ng5b1dwUHQHTEbv0H9u6X6PGeTySTu69oaBsFYSCui9/we1L87tBpzFv1naoPg8vISA2AqpBX4DPFZxm78BvUn9awF8R07yrRGPf80pdmU+hNCyJHoYa4ZHSghhWEBXwT84ASEEFIGDdmec8mJ6j+EyNAiu/9YACC+fjaXkinU/21SSPW2BuIzT/waX/yKpWQK9W+mCOMHLBZ5TfbLPg/q/5pijN/gINhTnPhC/X1cwAauScFBUKbxG9R/h9P7F0rTv6bkQVCy8Rt0Aju00OtUSqTEQZBSbX/X0AmQF4Mg5wi4cRAJn0jhlKY/aUBrx5c558ANzYUvafx7StAfqxv0UKyer4QQUg5+zAfXdgkhpAxKqvMghHgUm+cPhdufhU/Oa+qRTp6Jb0HK+oOi8/whcC+74SSTIrJlH7vitCMl/RHcqx4I8uHN/u19v9w8f1swi6aWJ+aeLxyp6F+9r2u8v/F47M7Oztzt7S3e61xIe1IqFmGFX3hi19/tLuesjX+73brFYlG/V3xdQlq7F1JwAjT+7ohVfzX+Ma5ngwPwn+EI1AmMhLQnZidA4++e2PTHsh8Gvl6vna0AsPzXy1Ld+fm5OQDu/0MRoxOg8fdHLPoj4Gd7flv6w/DxvtDLD9+7urrC+7sTEhZ/EOB2WhkYE57G3w8x6I9oP2Z7GD4es9nM3dzc1DM/lv46FpZc/ncEBgEMD7XVMjB4DxiINP7+GEp/t7/voF7uI0WJ2R4OAM93d3f4I7TzPhNCSD5Yqm86ndbLfTzm87nt8+ulP2Z/x+vQCMkL7Pktwo/Z3oJ9MH6LA+ief/AVKSEkILbdgJHr3v4ez74T0FUA9/wxgP1XF0Lozx0LiZqQ+uuefwEDh8Fj+a+lvrfmBJSxkOGBEF4UNliKyFJ9usdjgCdSQupve37s7RHhb3ICOvPzfH8swDhD54kb8vwjIVESSn+/ug91/SjqQcT/wAlgNhiz0CcyQhaLsMgnPULoX73m0nL7fnnvw8ND7QT0sA+LfGKlYRB82ks7NnNIlmP1d/sjvVtsJTDbm/HXG/3x2OmfTznzR44NgmOX7Y7NHJLms/q7gyO9MPqLi4t6+b9cLustgKb6eMw3FdwfmjFggKg3X71l4I7NHJLmHf3PVPs5/o7l9H///r214p7a2udzv8hn5RgDShsN3Czg1SE4lom6xKO4heB2rdnvYdi6QljgGbO9BvfgOLa65Ac3+hpOBinjtHkDhMdv/Qe+p45gTkeQL7bUtwIeaK5OoJ4MdKZHlG9lDkBIPsDzQ/QmJ3B6emopHqwB2corQzDDX19fOzvNh7GAr+EE/CO9eHDPnxH+0t8/ugnBpWE1QOHzwpbvurxfwbibnEA9/VdpPh7pzQjs3yyfK2rkMHxzBAj0+I6ADiAvdFsHLvT37zkBGP5YSB6YA2ha9lvrJiz9hQ4gO7CVswo+jfH80QlgMqD2GaKC35unF88JYCtAB5AnGvi9h6F7GZ9GJ2CZP0b7M8XSO4eZADqAvLHIPxzAW07AjvpKYfxPCkBngevn5+fVr1+/TqtAoFQDQUieuF2RD1J5SOyP1+v15c+fP6Vy9HJxcSHfv3+X6nsIAF2cnJysq5d8r1YAP/EshVGEA6iYVkZ/+e3bN5nNZu/+5a9fv+LpXyHJocG72x8/fpxXDv+2+vocDr+K9cDp31UrvYcDJ3AOJ1A9bqrHs5D80BlhZdF+f8lvhz3we68QZMX0T3pglWcHd6Cjdeyx/L6W+M6s6EdP9c2ElIHbneJaWStnFIRoTOBe94D4eiokSZyW72oxl/MLfvA1jB6642CPpoCXDPhljO79RwffG6kj2OrzqT5e1Xo3vZ7EC2K7B0073GGaD9/XmX/1nvFT/4Rx2syjbT+AIW+gIZ/D7ao9b//kBDQ4ePkB46f+qeICtPFy2g8gpavJSwZpW8zw1sWnyQl8Zs9P/RPFBWzj5RK6mrxkTCfb/1uu/9AJfHbPT/0Tw3XQxqthELArcETocn5lffvtXL/vBNr08KP+CQFxvLbQEwmEDQJe/RQXTi/tsBp+O/AFEOn3Un9z1yLaT/0TQgNBwb20Zg/o/SPBsjkwShh7vb5fLq2M22/wEqS8V/+9sRBChsXtuvfWxo1f7EQnHpj1se/XZh5s3U1ITrhdfX+91LdZ3io73b7JqwX8RkIIyQPs5THLY6kPYPjmCLw8/0hI3iAd8/j4uN1sNisZGLwH/3gpCYcfuHPeFd0wdtv3myPwWnf32suR+veMn+fHBy8DA0fEPHF4NOhmS/r6kA/2+tbCHZd2aMAP38D6/8ENUNtP/XvERXhXn2OxSCcggId9vRXx4LNF12avdfsLJyADQf17IkbjNzgIwoOUK27p8Sv58Nl6vf1qJ6DL/kE7+VD/jonZ+A0OgvB8wAngbH8UN/ZQ/45IwfgNDoLwvOUEtLw3qr6N1D8wiOimYvxGwyAYC2lFkxNAjCCGmf8Q6h8QRHeR7knF+A0bBJqqmgr5NO6gGYc5gTYHe/qC+gfC7bv3jCUx3K5ibepYmPJp3BvNXNyut+M0xpn/EOpPyBG4AM1cCCEJkmLMhxASiKenp3saf4Fg2Vc9FsjpSuZo3hr/115r1lMAe+bNZrPO2fip/wH+nq9iKZkD8ZknLhfq79EQ8MneK7JYpGyov5JShV9oOAjKvnSjeP1LNn6j5EHgWl7akgPF6k/j31PiIGCef09x+jPP+5qSBgGd/2uKcgIHEdCJkBp/EOSaCaHxv00J+tdoDnRJ8V+jtePLHGshaPzvk7P+pGC47SOkYCqDn6FvH42fkAJxuyPdaN01FlIGbnc/37TkFE8o3L4nAmvHCyQ5/S3gw24oYXAvuyKxbLgwktK/xNr+rsFqKpU8sa78Zlz5hSMZ/Znq6Y4UikVMf72oYyYkGNHrT+PvnpgHAVd+3ROt/jT+/ohxEFD//ohOf4rfPzENAurfP1E5AVzPRPH7xx8EuJ1WBoDGPxyH+ruhjlTjbnR9AxMhvYLPHA4YGkjPIMpP4x+WIfUnhYMZx2voMRFCSFlohVqR3XwIIaQc3O5OtrGQJFC9RkKKRCsyRxICi/YuFgvs986ERA3Eh1ahUkT4GQg0Vc9XQqInqP6ODRyTA046VJ7Y1x/XdgmJnmD6M8+bLiGKRVjemy6t9WeeN30aBsGHI/bUP33a6M88bybYIPjs9o3658Gx+tuLmefNgGN1pP55QB0JIYQQQgghhBBCCJGy+T9ftRg+rVNPfAAAAABJRU5ErkJggg==\');
882
- `;
883
- /**
884
- * @hidden
885
- */
886
- const bannerStyles = {
887
- display: 'flex',
888
- justifyContent: 'center',
889
- alignItems: 'center',
890
- position: 'fixed',
891
- top: '16px',
892
- right: '16px',
893
- padding: '12px',
894
- borderRadius: '4px',
895
- boxShadow: '0px 4px 5px 0px rgba(0, 0, 0, 0.04), 0px 2px 4px 0px rgba(0, 0, 0, 0.03)',
896
- fontSize: '14px',
897
- fontWeight: 400,
898
- lineHeight: '20px',
899
- backgroundColor: '#FFC000',
900
- color: '#1E1E1E',
901
- zIndex: 20000
902
- };
903
- /**
904
- * @hidden
905
- */
906
- const buttonStyles = {
907
- display: 'inline-flex',
908
- position: 'relative',
909
- border: 'none',
910
- borderRadius: '4px',
911
- padding: '5px',
912
- backgroundColor: 'transparent',
913
- transition: 'color 0.2s ease-in-out',
914
- outline: 'none',
915
- cursor: 'pointer'
916
- };
917
- /**
918
- * @hidden
919
- */
920
- const licenseKeyUrl = 'https://www.telerik.com/kendo-angular-ui/components/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-banner';
921
-
922
- let bannerPresentOnPage = false;
923
- /**
924
- * @hidden
925
- */
926
- class WatermarkOverlayComponent {
927
- constructor() {
928
- this.watermarkStyle = watermarkStyles;
929
- this.isOpen = true;
930
- this.bannerMounted = false;
931
- this.bannerStyles = bannerStyles;
932
- this.buttonStyles = buttonStyles;
933
- this.licenseKeyUrl = licenseKeyUrl;
934
- }
935
- ngOnInit() {
936
- if (!bannerPresentOnPage) {
937
- this.bannerMounted = true;
938
- bannerPresentOnPage = true;
939
- }
940
- }
941
- ngAfterViewInit() {
942
- if (this.isBannerRendered) {
943
- document.body.appendChild(this.banner.nativeElement);
944
- }
945
- }
946
- ngOnDestroy() {
947
- if (this.isBannerRendered) {
948
- document.body.removeChild(this.banner.nativeElement);
949
- }
950
- }
951
- closeBanner() {
952
- this.isOpen = false;
953
- }
954
- get isBannerRendered() {
955
- return isDocumentAvailable() && this.banner && this.banner.nativeElement;
956
- }
957
- }
958
- WatermarkOverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WatermarkOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
959
- WatermarkOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WatermarkOverlayComponent, isStandalone: true, selector: "div[kendoWatermarkOverlay]", host: { properties: { "style": "this.watermarkStyle" } }, viewQueries: [{ propertyName: "banner", first: true, predicate: ["banner"], descendants: true }], ngImport: i0, template: `
960
- <div #banner *ngIf="isOpen && bannerMounted" [ngStyle]="bannerStyles">
961
- <span [ngStyle]="{ display: 'flex', alignSelf: 'center', marginRight: '8px' }">
962
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
963
- <path fill-rule="evenodd" clip-rule="evenodd" d="M8 1L0 15H16L8 1ZM7 6V11H9V6H7ZM7 14V12H9V14H7Z" fill="#1E1E1E"/>
964
- </svg>
965
- </span>
966
-
967
- <span>No valid license found for Kendo UI for Angular. Learn how to activate your license.</span>
968
-
969
- <div [ngStyle]="{ display: 'flex', alignItems: 'center', marginLeft: '24px' }">
970
- <a [href]="licenseKeyUrl" [ngStyle]="{marginRight: '8px', display: 'flex'}">
971
- <button title='Learn More' [ngStyle]="buttonStyles">
972
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
973
- <path d="M15 8C15 11.8656 11.8656 15 8 15C4.13437 15 1 11.8656 1 8C1 4.13437 4.13437 1 8 1C11.8656 1 15 4.13437 15 8ZM14 8C14 4.6875 11.3125 2 8 2C4.6875 2 2 4.6875 2 8C2 11.3125 4.6875 14 8 14C11.3125 14 14 11.3125 14 8ZM11 6C11 7.4125 10.2687 8.05937 9.73125 8.53125C9.25937 8.94688 9 9.17813 9 10H7C7 8.275 7.84688 7.525 8.40938 7.03125C8.84062 6.65312 9 6.50938 9 6C9 5.45 8.55 5 8 5C7.45 5 7 5.45 7 6H5C5 4.34375 6.34375 3 8 3C9.65625 3 11 4.34375 11 6ZM9 13V11H7V13H9Z" fill="#1E1E1E"/>
974
- </svg>
975
- </button>
976
- </a>
977
-
978
- <button title='Close' [ngStyle]="buttonStyles" (click)="closeBanner()">
979
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
980
- <path d="M13 4.41562L9.41563 8L13 11.5844L11.5844 13L8 9.41563L4.41562 13L3 11.5844L6.58437 8L3 4.41562L4.41562 3L8 6.58437L11.5844 3L13 4.41562Z" fill="#1E1E1E"/>
981
- </svg>
982
- </button>
983
- </div>
984
- </div>
985
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
986
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WatermarkOverlayComponent, decorators: [{
987
- type: Component,
988
- args: [{
989
- selector: 'div[kendoWatermarkOverlay]',
990
- template: `
991
- <div #banner *ngIf="isOpen && bannerMounted" [ngStyle]="bannerStyles">
992
- <span [ngStyle]="{ display: 'flex', alignSelf: 'center', marginRight: '8px' }">
993
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
994
- <path fill-rule="evenodd" clip-rule="evenodd" d="M8 1L0 15H16L8 1ZM7 6V11H9V6H7ZM7 14V12H9V14H7Z" fill="#1E1E1E"/>
995
- </svg>
996
- </span>
997
-
998
- <span>No valid license found for Kendo UI for Angular. Learn how to activate your license.</span>
999
-
1000
- <div [ngStyle]="{ display: 'flex', alignItems: 'center', marginLeft: '24px' }">
1001
- <a [href]="licenseKeyUrl" [ngStyle]="{marginRight: '8px', display: 'flex'}">
1002
- <button title='Learn More' [ngStyle]="buttonStyles">
1003
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
1004
- <path d="M15 8C15 11.8656 11.8656 15 8 15C4.13437 15 1 11.8656 1 8C1 4.13437 4.13437 1 8 1C11.8656 1 15 4.13437 15 8ZM14 8C14 4.6875 11.3125 2 8 2C4.6875 2 2 4.6875 2 8C2 11.3125 4.6875 14 8 14C11.3125 14 14 11.3125 14 8ZM11 6C11 7.4125 10.2687 8.05937 9.73125 8.53125C9.25937 8.94688 9 9.17813 9 10H7C7 8.275 7.84688 7.525 8.40938 7.03125C8.84062 6.65312 9 6.50938 9 6C9 5.45 8.55 5 8 5C7.45 5 7 5.45 7 6H5C5 4.34375 6.34375 3 8 3C9.65625 3 11 4.34375 11 6ZM9 13V11H7V13H9Z" fill="#1E1E1E"/>
1005
- </svg>
1006
- </button>
1007
- </a>
1008
-
1009
- <button title='Close' [ngStyle]="buttonStyles" (click)="closeBanner()">
1010
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
1011
- <path d="M13 4.41562L9.41563 8L13 11.5844L11.5844 13L8 9.41563L4.41562 13L3 11.5844L6.58437 8L3 4.41562L4.41562 3L8 6.58437L11.5844 3L13 4.41562Z" fill="#1E1E1E"/>
1012
- </svg>
1013
- </button>
1014
- </div>
1015
- </div>
1016
- `,
1017
- standalone: true,
1018
- imports: [NgIf, NgStyle]
1019
- }]
1020
- }], propDecorators: { watermarkStyle: [{
1021
- type: HostBinding,
1022
- args: ['style']
1023
- }], banner: [{
1024
- type: ViewChild,
1025
- args: ['banner']
1026
- }] } });
1027
-
1028
- /**
1029
- * @hidden
1030
- * IMPORTANT: NgModule export kept for backwards compatibility
1031
- */
1032
- class WatermarkModule {
1033
- }
1034
- WatermarkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WatermarkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1035
- WatermarkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: WatermarkModule, imports: [WatermarkOverlayComponent], exports: [WatermarkOverlayComponent] });
1036
- WatermarkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WatermarkModule, imports: [WatermarkOverlayComponent] });
1037
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WatermarkModule, decorators: [{
1038
- type: NgModule,
1039
- args: [{
1040
- exports: [WatermarkOverlayComponent],
1041
- imports: [WatermarkOverlayComponent]
1042
- }]
1043
- }] });
1044
-
1045
- const allowed = ['telerik.com', 'progress.com', 'stackblitz.io', 'csb.app'];
1046
- /**
1047
- * @hidden
1048
- */
1049
- function shouldShowValidationUI(isPackageValid) {
1050
- const skip = allowed.some((hostname) => { var _a; return (_a = globalThis.document) === null || _a === void 0 ? void 0 : _a.location.hostname.endsWith(hostname); });
1051
- return !skip && !isPackageValid;
1052
- }
1053
-
1054
- /**
1055
- * Specifies the adornments in the prefix container of the [Inputs](slug:adornments_textbox#toc-prefix-adornments) and [DropDowns](slug:adornments_multiselect#toc-prefix-adornments).
1056
- * ```ts-no-run
1057
- * _@Component({
1058
- * selector: 'my-app',
1059
- * template: `
1060
- * <kendo-textbox>
1061
- * <ng-template kendoPrefixTemplate>
1062
- * <button kendoButton look="clear" icon="image"></button>
1063
- * </ng-template>
1064
- * </kendo-textbox>
1065
- *
1066
- * <kendo-multiselect [data]="data" [(ngModel)]="value">
1067
- * <ng-template kendoPrefixTemplate>
1068
- * <button kendoButton look="clear" icon="image"></button>
1069
- * </ng-template>
1070
- * </kendo-multiselect>
1071
- * `
1072
- * })
1073
- * class AppComponent {}
1074
- * ```
1075
- */
1076
- class PrefixTemplateDirective {
1077
- constructor(templateRef) {
1078
- this.templateRef = templateRef;
1079
- this._showSeparator = false;
1080
- }
1081
- /**
1082
- * Sets the `showSeparator` attribute of the `prefixTemplate`.
1083
- *
1084
- * @default false
1085
- */
1086
- set showSeparator(value) {
1087
- this._showSeparator = value;
1088
- }
1089
- get showSeparator() {
1090
- return this._showSeparator;
1091
- }
1092
- }
1093
- PrefixTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrefixTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1094
- PrefixTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: PrefixTemplateDirective, isStandalone: true, selector: "[kendoPrefixTemplate]", inputs: { showSeparator: "showSeparator" }, ngImport: i0 });
1095
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrefixTemplateDirective, decorators: [{
1096
- type: Directive,
1097
- args: [{
1098
- selector: '[kendoPrefixTemplate]',
1099
- standalone: true
1100
- }]
1101
- }], ctorParameters: function () {
1102
- return [{ type: i0.TemplateRef, decorators: [{
1103
- type: Optional
1104
- }] }];
1105
- }, propDecorators: { showSeparator: [{
1106
- type: Input
1107
- }] } });
1108
-
1109
- /**
1110
- * Specifies the adornments in the suffix container of the [Inputs](slug:adornments_textbox#toc-suffix-adornments) and [DropDowns](slug:adornments_multiselect#toc-suffix-adornments).
1111
- * ```ts-no-run
1112
- * _@Component({
1113
- * selector: 'my-app',
1114
- * template: `
1115
- * <kendo-textbox>
1116
- * <ng-template kendoSuffixTemplate>
1117
- * <button kendoButton look="clear" icon="image"></button>
1118
- * </ng-template>
1119
- * </kendo-textbox>
1120
- * `
1121
- * <kendo-multiselect [data]="data" [(ngModel)]="value">
1122
- * <ng-template kendoSuffixTemplate>
1123
- * <button kendoButton look="clear" icon="image"></button>
1124
- * </ng-template>
1125
- * </kendo-multiselect>
1126
- * })
1127
- * class AppComponent {}
1128
- * ```
1129
- */
1130
- class SuffixTemplateDirective {
1131
- constructor(templateRef) {
1132
- this.templateRef = templateRef;
1133
- this._showSeparator = false;
1134
- }
1135
- /**
1136
- * Sets the `showSeparator` attribute of the `suffixTemplate`.
1137
- *
1138
- * @default false
1139
- */
1140
- set showSeparator(value) {
1141
- this._showSeparator = value;
1142
- }
1143
- get showSeparator() {
1144
- return this._showSeparator;
1145
- }
1146
- }
1147
- SuffixTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuffixTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
1148
- SuffixTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SuffixTemplateDirective, isStandalone: true, selector: "[kendoSuffixTemplate]", inputs: { showSeparator: "showSeparator" }, ngImport: i0 });
1149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuffixTemplateDirective, decorators: [{
1150
- type: Directive,
1151
- args: [{
1152
- selector: '[kendoSuffixTemplate]',
1153
- standalone: true
1154
- }]
1155
- }], ctorParameters: function () {
1156
- return [{ type: i0.TemplateRef, decorators: [{
1157
- type: Optional
1158
- }] }];
1159
- }, propDecorators: { showSeparator: [{
1160
- type: Input
1161
- }] } });
1162
-
1163
- /**
1164
- * Specifies a separator in the content of the [Inputs]({% slug adornments_textbox %}#toc-separator) and [DropDowns]({% slug adornments_multiselect %}#toc-separator).
1165
- * @example
1166
- * ```ts-no-run
1167
- * _@Component({
1168
- * selector: 'my-app',
1169
- * template: `
1170
- * <kendo-textbox>
1171
- * <ng-template kendoSuffixTemplate>
1172
- * <button kendoButton look="clear" icon="image"></button>
1173
- * <kendo-separator></kendo-separator>
1174
- * <button kendoButton look="clear" icon="image"></button>
1175
- * </ng-template>
1176
- * </kendo-textbox>
1177
- * `
1178
- * })
1179
- * class AppComponent {}
1180
- * ```
1181
- */
1182
- class SeparatorComponent {
1183
- constructor() {
1184
- /**
1185
- * Specifies the orientation of the separator. Applicable for the adornments of the [`TextAreaComponent`](slug:api_inputs_textareacomponent).
1186
- *
1187
- * @default 'vertical'
1188
- */
1189
- this.orientation = 'vertical';
1190
- /**
1191
- * @hidden
1192
- */
1193
- this.hostClass = true;
1194
- }
1195
- /**
1196
- * @hidden
1197
- */
1198
- get vertical() {
1199
- return this.orientation === 'vertical';
1200
- }
1201
- /**
1202
- * @hidden
1203
- */
1204
- get horizontal() {
1205
- return this.orientation === 'horizontal';
1206
- }
1207
- }
1208
- SeparatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1209
- SeparatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SeparatorComponent, isStandalone: true, selector: "kendo-separator", inputs: { orientation: "orientation" }, host: { properties: { "class.k-input-separator-vertical": "this.vertical", "class.k-input-separator-horizontal": "this.horizontal", "class.k-input-separator": "this.hostClass" } }, ngImport: i0, template: ``, isInline: true });
1210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SeparatorComponent, decorators: [{
1211
- type: Component,
1212
- args: [{
1213
- selector: 'kendo-separator',
1214
- template: ``,
1215
- standalone: true
1216
- }]
1217
- }], propDecorators: { orientation: [{
1218
- type: Input
1219
- }], vertical: [{
1220
- type: HostBinding,
1221
- args: ['class.k-input-separator-vertical']
1222
- }], horizontal: [{
1223
- type: HostBinding,
1224
- args: ['class.k-input-separator-horizontal']
1225
- }], hostClass: [{
1226
- type: HostBinding,
1227
- args: ['class.k-input-separator']
1228
- }] } });
1229
-
1230
- /**
1231
- * @hidden
1232
- */
1233
- class TemplateContextDirective {
1234
- constructor(viewContainerRef) {
1235
- this.viewContainerRef = viewContainerRef;
1236
- }
1237
- set templateContext(context) {
1238
- if (this.insertedViewRef) {
1239
- this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.insertedViewRef));
1240
- this.insertedViewRef = undefined;
1241
- }
1242
- if (context.templateRef) {
1243
- this.insertedViewRef = this.viewContainerRef.createEmbeddedView(context.templateRef, context);
1244
- }
1245
- }
1246
- }
1247
- TemplateContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TemplateContextDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
1248
- TemplateContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TemplateContextDirective, isStandalone: true, selector: "[templateContext]", inputs: { templateContext: "templateContext" }, ngImport: i0 });
1249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TemplateContextDirective, decorators: [{
1250
- type: Directive,
1251
- args: [{
1252
- // eslint-disable-next-line @angular-eslint/directive-selector
1253
- selector: '[templateContext]',
1254
- standalone: true
1255
- }]
1256
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { templateContext: [{
1257
- type: Input
1258
- }] } });
1259
-
1260
- /**
1261
- * @hidden
1262
- */
1263
- class MultiTabStop {
1264
- }
1265
-
1266
- const tags = ['kendo-splitbutton', 'kendo-combobox', 'kendo-multicolumncombobox', 'kendo-datepicker', 'kendo-timepicker', 'kendo-datetimepicker'];
1267
- /**
1268
- * Includes the button that toggles the Popup in the tab sequence when applied
1269
- * to a SplitButton, ComboBox, MultiComboBox, DatePicker, TimePicker, and DateTimePicker component.
1270
- * ```ts-no-run
1271
- * _@Component({
1272
- * selector: 'my-app',
1273
- * template: `
1274
- * <kendo-combobox [data]="data"
1275
- * kendoToggleButtonTabStop>
1276
- * </kendo-combobox>
1277
- *
1278
- * <kendo-datepicker [(ngModel)]="value"
1279
- * kendoToggleButtonTabStop>
1280
- * </kendo-datepicker>
1281
- * `
1282
- * })
1283
- * class AppComponent {}
1284
- * ```
1285
- */
1286
- class ToggleButtonTabStopDirective {
1287
- /**
1288
- * @hidden
1289
- */
1290
- constructor(hostEl, renderer, zone, hostComponent) {
1291
- this.hostEl = hostEl;
1292
- this.renderer = renderer;
1293
- this.zone = zone;
1294
- this.hostComponent = hostComponent;
1295
- /**
1296
- * Defines the value of the `aria-label` attribute of the toggle button when active.
1297
- *
1298
- * @default "toggle popup"
1299
- */
1300
- this.toggleButtonAriaLabel = 'toggle popup';
1301
- this.sub = new Subscription();
1302
- this.onFocus = () => {
1303
- this.renderer.setStyle(this.button, 'box-shadow', 'inset 0 0 0 1px rgba(0, 0, 0, 0.08)');
1304
- };
1305
- this.onBlur = () => {
1306
- this.renderer.removeStyle(this.button, 'box-shadow');
1307
- };
1308
- this.onClick = (e) => {
1309
- const splitButtonToggleEnter = e instanceof KeyboardEvent && e.keyCode === Keys.Enter;
1310
- const isClick = e instanceof PointerEvent;
1311
- (splitButtonToggleEnter || isClick) && (this.focusButton = true);
1312
- };
1313
- this.onKeyDown = (e) => {
1314
- if (e.keyCode === Keys.ArrowDown && e.altKey) {
1315
- e.stopImmediatePropagation();
1316
- this.focusButton = true;
1317
- this.button.click();
1318
- }
1319
- };
1320
- if (isDevMode() && tags.indexOf(hostEl.nativeElement.tagName.toLowerCase()) === -1) {
1321
- console.warn(`The kendoToggleButtonTabStop directive can be applied to the following components only: ${tags}`);
1322
- }
1323
- }
1324
- ngOnInit() {
1325
- this.active = true;
1326
- }
1327
- ngAfterViewInit() {
1328
- var _a, _b;
1329
- if (!isDocumentAvailable()) {
1330
- return;
1331
- }
1332
- this.isSplitButton = this.hostEl.nativeElement.classList.contains('k-split-button');
1333
- if (this.active) {
1334
- this.activateButton();
1335
- }
1336
- if (((_a = this.hostComponent) === null || _a === void 0 ? void 0 : _a.escape) instanceof EventEmitter) {
1337
- this.sub = (_b = this.hostComponent) === null || _b === void 0 ? void 0 : _b.escape.subscribe(() => {
1338
- this.returnFocusToToggleButton();
1339
- });
1340
- // Returns the focus to the toggle button when component is opened through it, and the Popup is closed
1341
- // while the active element is within the component or popup.
1342
- this.sub.add(this.hostComponent.close.subscribe((e) => {
1343
- if (!e.isDefaultPrevented() && this.focusButton) {
1344
- this.zone.onStable.pipe(take(1)).subscribe(() => {
1345
- this.zone.runOutsideAngular(() => {
1346
- setTimeout(() => this.focusButton = false);
1347
- });
1348
- });
1349
- const mainFocusableElement = this.hostEl.nativeElement.querySelector('.k-split-button > .k-button:first-child, .k-input-inner');
1350
- const optionsListContainer = document.getElementById(`${mainFocusableElement.getAttribute('aria-controls')}`);
1351
- const inList = !!optionsListContainer && optionsListContainer.contains(document.activeElement);
1352
- const inWrapper = this.hostEl.nativeElement.contains(document.activeElement);
1353
- const focusInComponent = inList || inWrapper;
1354
- if (focusInComponent) {
1355
- this.returnFocusToToggleButton();
1356
- }
1357
- }
1358
- }));
1359
- }
1360
- const close = this.hostComponent.close;
1361
- }
1362
- ngOnChanges(changes) {
1363
- if (!isDocumentAvailable()) {
1364
- return;
1365
- }
1366
- if (changes['active']) {
1367
- changes['active'].currentValue ? this.activateButton() : this.deactivateButton();
1368
- }
1369
- if (changes['toggleButtonAriaLabel']) {
1370
- this.button && this.renderer.setAttribute(this.button, 'aria-label', changes['toggleButtonAriaLabel'].currentValue);
1371
- }
1372
- }
1373
- ngOnDestroy() {
1374
- this.removeListeners();
1375
- this.sub.unsubscribe();
1376
- }
1377
- activateButton() {
1378
- var _a;
1379
- const el = this.hostEl.nativeElement;
1380
- const tabindex = (_a = el.querySelector('button:not([tabindex^="-"]), input:not([tabindex^="-"]')) === null || _a === void 0 ? void 0 : _a.getAttribute('tabindex');
1381
- this.button = el.querySelector('.k-input-button, .k-split-button-arrow');
1382
- this.button && this.renderer.setAttribute(this.button, 'tabindex', tabindex);
1383
- this.button && this.renderer.setAttribute(this.button, 'aria-label', this.toggleButtonAriaLabel);
1384
- this.button && this.renderer.removeAttribute(this.button, 'aria-hidden');
1385
- if (!this.observer) {
1386
- this.initializeObserver(el);
1387
- }
1388
- this.removeListeners();
1389
- this.addListeners();
1390
- }
1391
- deactivateButton() {
1392
- this.button && this.renderer.setAttribute(this.button, 'tabindex', '-1');
1393
- this.button && this.renderer.setAttribute(this.button, 'aria-hidden', 'true');
1394
- this.button && this.renderer.removeAttribute(this.button, 'aria-label');
1395
- this.removeListeners();
1396
- this.observer && this.observer.disconnect();
1397
- this.observer = null;
1398
- }
1399
- addListeners() {
1400
- if (this.button) {
1401
- this.zone.runOutsideAngular(() => this.button.addEventListener('focus', this.onFocus));
1402
- this.zone.runOutsideAngular(() => this.button.addEventListener('blur', this.onBlur));
1403
- this.zone.runOutsideAngular(() => this.button.addEventListener('click', this.onClick));
1404
- this.isSplitButton && this.zone.runOutsideAngular(() => this.button.addEventListener('keyup', this.onClick));
1405
- this.zone.runOutsideAngular(() => this.button.addEventListener('keydown', this.onKeyDown, true));
1406
- }
1407
- }
1408
- removeListeners() {
1409
- if (this.button) {
1410
- this.zone.runOutsideAngular(() => this.button.removeEventListener('focus', this.onFocus));
1411
- this.zone.runOutsideAngular(() => this.button.removeEventListener('blur', this.onBlur));
1412
- this.zone.runOutsideAngular(() => this.button.removeEventListener('click', this.onClick));
1413
- this.isSplitButton && this.zone.runOutsideAngular(() => this.button.removeEventListener('keyup', this.onClick));
1414
- this.zone.runOutsideAngular(() => this.button.removeEventListener('keydown', this.onKeyDown));
1415
- }
1416
- }
1417
- focusToggleButton() {
1418
- this.focusButton && this.zone.runOutsideAngular(() => this.button.focus());
1419
- this.focusButton = false;
1420
- }
1421
- returnFocusToToggleButton() {
1422
- if (this.isSplitButton) {
1423
- this.zone.onStable.pipe(take(1)).subscribe(() => {
1424
- this.focusToggleButton();
1425
- });
1426
- }
1427
- else {
1428
- this.focusToggleButton();
1429
- }
1430
- }
1431
- // Keeps the `aria-controls` and `aria-expanded` attributes of the main focusable element of the component
1432
- // and the toggle button element in sync.
1433
- initializeObserver(element) {
1434
- const mainFocusableElement = element.querySelector('.k-split-button > .k-button:first-child, .k-input-inner');
1435
- const initialExpanded = mainFocusableElement.getAttribute('aria-expanded');
1436
- const initialControls = mainFocusableElement.getAttribute('aria-controls');
1437
- this.button && this.renderer.setAttribute(this.button, 'aria-expanded', initialExpanded);
1438
- this.button && initialControls && this.renderer.setAttribute(this.button, 'aria-controls', initialControls);
1439
- this.zone.runOutsideAngular(() => {
1440
- const mutationConfig = { attributes: true };
1441
- const callback = (mutationList) => {
1442
- for (const mutation of mutationList) {
1443
- if (mutation.attributeName === 'aria-expanded') {
1444
- this.renderer.setAttribute(this.button, 'aria-expanded', mainFocusableElement.getAttribute('aria-expanded'));
1445
- }
1446
- else if (mutation.attributeName === 'aria-controls') {
1447
- const controlsRef = mainFocusableElement.getAttribute('aria-controls');
1448
- !this.isSplitButton && controlsRef ? this.renderer.setAttribute(this.button, 'aria-controls', controlsRef) : this.renderer.removeAttribute(this.button, 'aria-controls');
1449
- }
1450
- }
1451
- };
1452
- this.observer = new MutationObserver(callback);
1453
- this.observer.observe(mainFocusableElement, mutationConfig);
1454
- });
1455
- }
1456
- }
1457
- ToggleButtonTabStopDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToggleButtonTabStopDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: MultiTabStop }], target: i0.ɵɵFactoryTarget.Directive });
1458
- ToggleButtonTabStopDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ToggleButtonTabStopDirective, isStandalone: true, selector: "[kendoToggleButtonTabStop]", inputs: { active: ["kendoToggleButtonTabStop", "active"], toggleButtonAriaLabel: "toggleButtonAriaLabel" }, usesOnChanges: true, ngImport: i0 });
1459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToggleButtonTabStopDirective, decorators: [{
1460
- type: Directive,
1461
- args: [{
1462
- selector: '[kendoToggleButtonTabStop]',
1463
- standalone: true
1464
- }]
1465
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: MultiTabStop }]; }, propDecorators: { active: [{
1466
- type: Input,
1467
- args: ['kendoToggleButtonTabStop']
1468
- }], toggleButtonAriaLabel: [{
1469
- type: Input
1470
- }] } });
1471
-
1472
- /**
1473
- * @hidden
1474
- */
1475
- const KENDO_ADORNMENTS = [
1476
- PrefixTemplateDirective,
1477
- SuffixTemplateDirective,
1478
- SeparatorComponent
1479
- ];
1480
- /**
1481
- * @hidden
1482
- */
1483
- const KENDO_COMMON = [
1484
- ...KENDO_ADORNMENTS,
1485
- DraggableDirective,
1486
- EventsOutsideAngularDirective,
1487
- ResizeSensorComponent,
1488
- ToggleButtonTabStopDirective,
1489
- WatermarkOverlayComponent,
1490
- ];
1491
- /**
1492
- * @hidden
1493
- */
1494
- const KENDO_DRAGGABLE = [
1495
- DraggableDirective
1496
- ];
1497
- /**
1498
- * @hidden
1499
- */
1500
- const KENDO_EVENTS = [
1501
- EventsOutsideAngularDirective
1502
- ];
1503
- /**
1504
- * @hidden
1505
- */
1506
- const KENDO_RESIZESENSOR = [
1507
- ResizeSensorComponent
1508
- ];
1509
- /**
1510
- * @hidden
1511
- */
1512
- const KENDO_TOGGLEBUTTONTABSTOP = [
1513
- ToggleButtonTabStopDirective
1514
- ];
1515
- /**
1516
- * @hidden
1517
- */
1518
- const KENDO_WATERMARK = [
1519
- WatermarkOverlayComponent
1520
- ];
1521
- /**
1522
- * @hidden
1523
- */
1524
- const KENDO_TEMPLATE_CONTEXT = [
1525
- TemplateContextDirective
1526
- ];
1527
-
1528
- /**
1529
- * @hidden
1530
- * IMPORTANT: NgModule export kept for backwards compatibility
1531
- */
1532
- class AdornmentsModule {
1533
- }
1534
- AdornmentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdornmentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1535
- AdornmentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AdornmentsModule, imports: [PrefixTemplateDirective, SuffixTemplateDirective, SeparatorComponent], exports: [PrefixTemplateDirective, SuffixTemplateDirective, SeparatorComponent] });
1536
- AdornmentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdornmentsModule, imports: [SeparatorComponent] });
1537
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdornmentsModule, decorators: [{
1538
- type: NgModule,
1539
- args: [{
1540
- imports: [...KENDO_ADORNMENTS],
1541
- exports: [...KENDO_ADORNMENTS]
1542
- }]
1543
- }] });
1544
-
1545
- class PreventableEvent {
1546
- constructor() {
1547
- this.prevented = false;
1548
- }
1549
- /**
1550
- * Prevents the default action for a specified event.
1551
- * In this way, the source component suppresses
1552
- * the built-in behavior that follows the event.
1553
- */
1554
- preventDefault() {
1555
- this.prevented = true;
1556
- }
1557
- /**
1558
- * Returns `true` if the event was prevented
1559
- * by any of its subscribers.
1560
- *
1561
- * @returns `true` if the default action was prevented.
1562
- * Otherwise, returns `false`.
1563
- */
1564
- isDefaultPrevented() {
1565
- return this.prevented;
1566
- }
1567
- }
1568
-
1569
- const canCreateElement = () => isDocumentAvailable() && document.createElement;
1570
- const propName = '--kendo-scrollbar-width';
1571
- /**
1572
- * @hidden
1573
- */
1574
- const scrollbarWidth = () => {
1575
- let scrollbarWidth = 0;
1576
- if (canCreateElement()) {
1577
- const div = document.createElement('div');
1578
- div.style.cssText = 'overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block';
1579
- div.innerHTML = '&nbsp;';
1580
- document.body.appendChild(div);
1581
- scrollbarWidth = div.offsetWidth - div.scrollWidth;
1582
- document.body.removeChild(div);
1583
- }
1584
- return scrollbarWidth;
1585
- };
1586
- /**
1587
- * @hidden
1588
- */
1589
- class ScrollbarWidthService {
1590
- constructor() {
1591
- this.changes = new EventEmitter();
1592
- if (typeof window !== 'undefined' && isDocumentAvailable()) {
1593
- document.body.style.setProperty(propName, `${scrollbarWidth()}px`);
1594
- }
1595
- }
1596
- }
1597
- ScrollbarWidthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollbarWidthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1598
- ScrollbarWidthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollbarWidthService, providedIn: 'root' });
1599
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollbarWidthService, decorators: [{
1600
- type: Injectable,
1601
- args: [{
1602
- providedIn: 'root'
1603
- }]
1604
- }], ctorParameters: function () { return []; } });
1605
-
1606
- /**
1607
- * @hidden
1608
- * IMPORTANT: NgModule export kept for backwards compatibility
1609
- */
1610
- class ToggleButtonTabStopModule {
1611
- }
1612
- ToggleButtonTabStopModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToggleButtonTabStopModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1613
- ToggleButtonTabStopModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ToggleButtonTabStopModule, imports: [ToggleButtonTabStopDirective], exports: [ToggleButtonTabStopDirective] });
1614
- ToggleButtonTabStopModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToggleButtonTabStopModule });
1615
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToggleButtonTabStopModule, decorators: [{
1616
- type: NgModule,
1617
- args: [{
1618
- imports: [ToggleButtonTabStopDirective],
1619
- exports: [ToggleButtonTabStopDirective]
1620
- }]
1621
- }] });
1622
-
1623
- /**
1624
- * Generated bundle index. Do not edit.
1625
- */
1626
-
1627
- export { AdornmentsModule, DraggableDirective, DraggableModule, EventsModule, EventsOutsideAngularDirective, KENDO_ADORNMENTS, KENDO_COMMON, KENDO_DRAGGABLE, KENDO_EVENTS, KENDO_RESIZESENSOR, KENDO_TEMPLATE_CONTEXT, KENDO_TOGGLEBUTTONTABSTOP, KENDO_WATERMARK, KendoInput, Keys, MultiTabStop, PrefixTemplateDirective, PreventableEvent, ResizeBatchService, ResizeCompatService, ResizeObserverService, ResizeSensorComponent, ResizeSensorModule, ScrollbarWidthService, SeparatorComponent, SuffixTemplateDirective, TemplateContextDirective, ToggleButtonTabStopDirective, ToggleButtonTabStopModule, WatermarkModule, WatermarkOverlayComponent, anyChanged, applyAttributes, closest, closestBySelector, closestInScope, contains, findElement, findFocusable, findFocusableChild, focusableSelector, guid, hasClasses, hasObservers, isChanged, isControlRequired, isDocumentAvailable, isFirefox, isFocusable, isFocusableWithTabKey, isObject, isObjectPresent, isPresent, isSafari, isString, isVisible, matchesClasses, matchesNodeName, parseAttributes, parseCSSClassNames, removeHTMLAttributes, rtlScrollPosition, scrollbarWidth, setHTMLAttributes, shouldShowValidationUI, splitStringToArray };
1628
-