@progress/kendo-angular-scrollview 25.0.0-develop.1 → 25.0.0-develop.12

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.
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { EventEmitter, Output, Input, Component, Directive, forwardRef, TemplateRef, HostBinding, ViewChild, ContentChild, NgModule } from '@angular/core';
6
+ import { EventEmitter, signal, Output, Input, ChangeDetectionStrategy, Component, Directive, forwardRef, TemplateRef, HostBinding, ViewChild, ContentChild, NgModule } from '@angular/core';
7
7
  import { trigger, state, style, transition, animate } from '@angular/animations';
8
8
  import { replaceMessagePlaceholder, normalizeKeys, Keys, DraggableDirective, KENDO_WEBMCP_HOST } from '@progress/kendo-angular-common';
9
9
  import { validatePackage } from '@progress/kendo-licensing';
@@ -31,8 +31,8 @@ const packageMetadata = {
31
31
  productName: 'Kendo UI for Angular',
32
32
  productCode: 'KENDOUIANGULAR',
33
33
  productCodes: ['KENDOUIANGULAR'],
34
- publishDate: 1783680027,
35
- version: '25.0.0-develop.1',
34
+ publishDate: 1785318057,
35
+ version: '25.0.0-develop.12',
36
36
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
37
37
  };
38
38
 
@@ -131,9 +131,21 @@ class DataCollection {
131
131
  */
132
132
  class ScrollViewPagerComponent {
133
133
  localization;
134
- activeIndex;
135
- data;
134
+ set activeIndex(value) {
135
+ this._activeIndex.set(value);
136
+ }
137
+ get activeIndex() {
138
+ return this._activeIndex();
139
+ }
140
+ set data(value) {
141
+ this._data.set(value);
142
+ }
143
+ get data() {
144
+ return this._data();
145
+ }
136
146
  pagerIndexChange = new EventEmitter();
147
+ _activeIndex = signal(0, ...(ngDevMode ? [{ debugName: "_activeIndex" }] : []));
148
+ _data = signal([], ...(ngDevMode ? [{ debugName: "_data" }] : []));
137
149
  constructor(localization) {
138
150
  this.localization = localization;
139
151
  }
@@ -159,11 +171,12 @@ class ScrollViewPagerComponent {
159
171
  </span>
160
172
  }
161
173
  </div>
162
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
174
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
163
175
  }
164
176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ScrollViewPagerComponent, decorators: [{
165
177
  type: Component,
166
178
  args: [{
179
+ changeDetection: ChangeDetectionStrategy.OnPush,
167
180
  selector: 'kendo-scrollview-pager',
168
181
  template: `
169
182
  <div class="k-scrollview-nav">
@@ -194,7 +207,13 @@ class ScrollViewMessages extends ComponentMessages {
194
207
  * Sets the label for the buttons in the ScrollView pager. The default label pattern is `'Item {itemIndex}'`.
195
208
  * When the current item is 1, the default label is `'Item 1'`.
196
209
  */
197
- pagerButtonLabel;
210
+ set pagerButtonLabel(value) {
211
+ this._pagerButtonLabel.set(value);
212
+ }
213
+ get pagerButtonLabel() {
214
+ return this._pagerButtonLabel();
215
+ }
216
+ _pagerButtonLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_pagerButtonLabel" }] : []));
198
217
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ScrollViewMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
199
218
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: ScrollViewMessages, isStandalone: true, selector: "kendo-scrollview-messages-base", inputs: { pagerButtonLabel: "pagerButtonLabel" }, usesInheritance: true, ngImport: i0 });
200
219
  }
@@ -274,52 +293,98 @@ class ScrollViewComponent {
274
293
  * Provides the data source for the ScrollView ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/data-sources)).
275
294
  * @default []
276
295
  */
277
- data = [];
296
+ set data(value) {
297
+ this._data.set(value);
298
+ if (value?.length === 0) {
299
+ const clamped = Math.max(Math.min(this._activeIndex(), this.view.total - 1), 0);
300
+ this._activeIndex.set(clamped);
301
+ this.index = clamped;
302
+ }
303
+ }
304
+ get data() {
305
+ return this._data();
306
+ }
278
307
  /**
279
308
  * Sets the current item index ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/active-items)).
280
309
  * @default 0
281
310
  */
282
311
  set activeIndex(value) {
283
- this.index = this._activeIndex = value;
312
+ this.index = value;
313
+ this._activeIndex.set(value);
284
314
  }
285
315
  get activeIndex() {
286
- return this._activeIndex;
316
+ return this._activeIndex();
287
317
  }
288
318
  /**
289
319
  * Sets the width of the ScrollView ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/dimensions)).
290
320
  * By default, the width is not set and must be explicitly defined.
291
321
  */
292
- width;
322
+ set width(value) {
323
+ this._width.set(value);
324
+ }
325
+ get width() {
326
+ return this._width();
327
+ }
293
328
  /**
294
329
  * Sets the height of the ScrollView ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/dimensions)).
295
330
  * By default, the height is not set and must be explicitly defined.
296
331
  */
297
- height;
332
+ set height(value) {
333
+ this._height.set(value);
334
+ }
335
+ get height() {
336
+ return this._height();
337
+ }
298
338
  /**
299
339
  * Enables or disables endless scrolling mode, where items loop endlessly ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/endless-scrolling)).
300
340
  * @default false
301
341
  */
302
- endless = false;
342
+ set endless(value) {
343
+ this._endless.set(value);
344
+ }
345
+ get endless() {
346
+ return this._endless();
347
+ }
303
348
  /**
304
349
  * Sets the pager overlay style to `dark`, `light`, or `none`.
305
350
  * @default 'none'
306
351
  */
307
- pagerOverlay = 'none';
352
+ set pagerOverlay(value) {
353
+ this._pagerOverlay.set(value);
354
+ }
355
+ get pagerOverlay() {
356
+ return this._pagerOverlay();
357
+ }
308
358
  /**
309
359
  * Enables or disables built-in animations ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/animations)).
310
360
  * @default true
311
361
  */
312
- animate = true;
362
+ set animate(value) {
363
+ this._animate.set(value);
364
+ }
365
+ get animate() {
366
+ return this._animate();
367
+ }
313
368
  /**
314
369
  * Enables or disables the built-in pager ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/paging)).
315
370
  * @default false
316
371
  */
317
- pageable = false;
372
+ set pageable(value) {
373
+ this._pageable.set(value);
374
+ }
375
+ get pageable() {
376
+ return this._pageable();
377
+ }
318
378
  /**
319
379
  * Enables or disables the built-in navigation arrows ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/arrows)).
320
380
  * @default false
321
381
  */
322
- arrows = false;
382
+ set arrows(value) {
383
+ this._arrows.set(value);
384
+ }
385
+ get arrows() {
386
+ return this._arrows();
387
+ }
323
388
  /**
324
389
  * Fires after the current item is changed.
325
390
  */
@@ -349,7 +414,12 @@ class ScrollViewComponent {
349
414
  return this.direction;
350
415
  }
351
416
  touchAction = 'pan-y pinch-zoom';
352
- animationState = null;
417
+ get animationState() {
418
+ return this._animationState();
419
+ }
420
+ set animationState(value) {
421
+ this._animationState.set(value);
422
+ }
353
423
  view = new DataCollection(() => new DataResultIterator(this.data, this.activeIndex, this.endless, this.pageIndex, this.isRTL));
354
424
  /**
355
425
  * @hidden
@@ -357,11 +427,20 @@ class ScrollViewComponent {
357
427
  scrollviewId;
358
428
  isDataSourceEmpty = false;
359
429
  subs = new Subscription();
360
- _activeIndex = 0;
361
430
  index = 0;
362
431
  initialTouchCoordinate;
363
432
  pageIndex = null;
364
433
  transforms = ['translateX(-100%)', 'translateX(0%)', 'translateX(100%)'];
434
+ _data = signal([], ...(ngDevMode ? [{ debugName: "_data" }] : []));
435
+ _activeIndex = signal(0, ...(ngDevMode ? [{ debugName: "_activeIndex" }] : []));
436
+ _width = signal(undefined, ...(ngDevMode ? [{ debugName: "_width" }] : []));
437
+ _height = signal(undefined, ...(ngDevMode ? [{ debugName: "_height" }] : []));
438
+ _endless = signal(false, ...(ngDevMode ? [{ debugName: "_endless" }] : []));
439
+ _pagerOverlay = signal('none', ...(ngDevMode ? [{ debugName: "_pagerOverlay" }] : []));
440
+ _animate = signal(true, ...(ngDevMode ? [{ debugName: "_animate" }] : []));
441
+ _pageable = signal(false, ...(ngDevMode ? [{ debugName: "_pageable" }] : []));
442
+ _arrows = signal(false, ...(ngDevMode ? [{ debugName: "_arrows" }] : []));
443
+ _animationState = signal(null, ...(ngDevMode ? [{ debugName: "_animationState" }] : []));
365
444
  get direction() {
366
445
  return this.localization.rtl ? 'rtl' : 'ltr';
367
446
  }
@@ -381,11 +460,6 @@ class ScrollViewComponent {
381
460
  ngOnDestroy() {
382
461
  this.subs.unsubscribe();
383
462
  }
384
- ngOnChanges(_) {
385
- if (this.data && this.data.length === 0) {
386
- this.activeIndex = Math.max(Math.min(this.activeIndex, this.view.total - 1), 0);
387
- }
388
- }
389
463
  /**
390
464
  * Navigates the ScrollView to the previous item.
391
465
  */
@@ -648,11 +722,11 @@ class ScrollViewComponent {
648
722
  useValue: 'kendo.scrollview'
649
723
  },
650
724
  { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => ScrollViewComponent) }
651
- ], queries: [{ propertyName: "itemTemplateRef", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "itemWrapper", first: true, predicate: ["itemWrapper"], descendants: true }, { propertyName: "prevButton", first: true, predicate: ["prevButton"], descendants: true }, { propertyName: "nextButton", first: true, predicate: ["nextButton"], descendants: true }], exportAs: ["kendoScrollView"], usesOnChanges: true, ngImport: i0, template: `
725
+ ], queries: [{ propertyName: "itemTemplateRef", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "itemWrapper", first: true, predicate: ["itemWrapper"], descendants: true }, { propertyName: "prevButton", first: true, predicate: ["prevButton"], descendants: true }, { propertyName: "nextButton", first: true, predicate: ["nextButton"], descendants: true }], exportAs: ["kendoScrollView"], ngImport: i0, template: `
652
726
 
653
727
  <ng-container kendoScrollViewLocalizedMessages
654
728
  i18n-pagerButtonLabel="kendo.scrollview.pagerButtonLabel|The label for the buttons inside the ScrollView Pager"
655
- pagerButtonLabel="{{ 'Item {itemIndex}' }}">
729
+ pagerButtonLabel="Item [[itemIndex]]">
656
730
  <ng-container>
657
731
 
658
732
  <div class="k-scrollview-wrap k-scrollview-animate"
@@ -740,7 +814,7 @@ class ScrollViewComponent {
740
814
  animate('300ms ease-out')
741
815
  ])
742
816
  ])
743
- ] });
817
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
744
818
  }
745
819
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ScrollViewComponent, decorators: [{
746
820
  type: Component,
@@ -768,12 +842,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
768
842
  },
769
843
  { provide: KENDO_WEBMCP_HOST, useExisting: forwardRef(() => ScrollViewComponent) }
770
844
  ],
845
+ changeDetection: ChangeDetectionStrategy.OnPush,
771
846
  selector: 'kendo-scrollview',
772
847
  template: `
773
848
 
774
849
  <ng-container kendoScrollViewLocalizedMessages
775
850
  i18n-pagerButtonLabel="kendo.scrollview.pagerButtonLabel|The label for the buttons inside the ScrollView Pager"
776
- pagerButtonLabel="{{ 'Item {itemIndex}' }}">
851
+ pagerButtonLabel="Item [[itemIndex]]">
777
852
  <ng-container>
778
853
 
779
854
  <div class="k-scrollview-wrap k-scrollview-animate"
package/index.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { OnChanges, OnDestroy, ElementRef, EventEmitter, TemplateRef, NgZone, Renderer2 } from '@angular/core';
6
+ import { OnInit, OnDestroy, ElementRef, EventEmitter, TemplateRef, NgZone, Renderer2 } from '@angular/core';
7
7
  import { AnimationEvent } from '@angular/animations';
8
8
  import { LocalizationService, ComponentMessages } from '@progress/kendo-angular-l10n';
9
9
  import { SVGIcon } from '@progress/kendo-svg-icons';
@@ -88,7 +88,7 @@ type Direction = 'rtl' | 'ltr';
88
88
  * @remarks
89
89
  * Supported children components are: {@link CustomMessagesComponent}
90
90
  */
91
- declare class ScrollViewComponent implements OnChanges, OnDestroy {
91
+ declare class ScrollViewComponent implements OnInit, OnDestroy {
92
92
  protected element: ElementRef;
93
93
  private localization;
94
94
  private ngZone;
@@ -105,7 +105,8 @@ declare class ScrollViewComponent implements OnChanges, OnDestroy {
105
105
  * Provides the data source for the ScrollView ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/data-sources)).
106
106
  * @default []
107
107
  */
108
- data: Array<any>;
108
+ set data(value: Array<any>);
109
+ get data(): Array<any>;
109
110
  /**
110
111
  * Sets the current item index ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/active-items)).
111
112
  * @default 0
@@ -116,37 +117,44 @@ declare class ScrollViewComponent implements OnChanges, OnDestroy {
116
117
  * Sets the width of the ScrollView ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/dimensions)).
117
118
  * By default, the width is not set and must be explicitly defined.
118
119
  */
119
- width: string;
120
+ set width(value: string);
121
+ get width(): string;
120
122
  /**
121
123
  * Sets the height of the ScrollView ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/dimensions)).
122
124
  * By default, the height is not set and must be explicitly defined.
123
125
  */
124
- height: string;
126
+ set height(value: string);
127
+ get height(): string;
125
128
  /**
126
129
  * Enables or disables endless scrolling mode, where items loop endlessly ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/endless-scrolling)).
127
130
  * @default false
128
131
  */
129
- endless: boolean;
132
+ set endless(value: boolean);
133
+ get endless(): boolean;
130
134
  /**
131
135
  * Sets the pager overlay style to `dark`, `light`, or `none`.
132
136
  * @default 'none'
133
137
  */
134
- pagerOverlay: ScrollViewPagerOverlay;
138
+ set pagerOverlay(value: ScrollViewPagerOverlay);
139
+ get pagerOverlay(): ScrollViewPagerOverlay;
135
140
  /**
136
141
  * Enables or disables built-in animations ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/animations)).
137
142
  * @default true
138
143
  */
139
- animate: boolean;
144
+ set animate(value: boolean);
145
+ get animate(): boolean;
140
146
  /**
141
147
  * Enables or disables the built-in pager ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/paging)).
142
148
  * @default false
143
149
  */
144
- pageable: boolean;
150
+ set pageable(value: boolean);
151
+ get pageable(): boolean;
145
152
  /**
146
153
  * Enables or disables the built-in navigation arrows ([see example](https://www.telerik.com/kendo-angular-ui/components/scrollview/arrows)).
147
154
  * @default false
148
155
  */
149
- arrows: boolean;
156
+ set arrows(value: boolean);
157
+ get arrows(): boolean;
150
158
  /**
151
159
  * Fires after the current item is changed.
152
160
  */
@@ -170,7 +178,8 @@ declare class ScrollViewComponent implements OnChanges, OnDestroy {
170
178
  ariaLive: string;
171
179
  get dir(): Direction;
172
180
  touchAction: string;
173
- animationState: AnimationState;
181
+ get animationState(): AnimationState;
182
+ set animationState(value: AnimationState);
174
183
  view: DataCollection;
175
184
  /**
176
185
  * @hidden
@@ -178,16 +187,24 @@ declare class ScrollViewComponent implements OnChanges, OnDestroy {
178
187
  scrollviewId: string;
179
188
  isDataSourceEmpty: boolean;
180
189
  private subs;
181
- private _activeIndex;
182
190
  private index;
183
191
  private initialTouchCoordinate;
184
192
  private pageIndex;
185
193
  private transforms;
194
+ private _data;
195
+ private _activeIndex;
196
+ private _width;
197
+ private _height;
198
+ private _endless;
199
+ private _pagerOverlay;
200
+ private _animate;
201
+ private _pageable;
202
+ private _arrows;
203
+ private _animationState;
186
204
  private get direction();
187
205
  constructor(element: ElementRef, localization: LocalizationService, ngZone: NgZone, renderer: Renderer2);
188
206
  ngOnInit(): void;
189
207
  ngOnDestroy(): void;
190
- ngOnChanges(_: any): void;
191
208
  /**
192
209
  * Navigates the ScrollView to the previous item.
193
210
  */
@@ -261,7 +278,9 @@ declare class ScrollViewMessages extends ComponentMessages {
261
278
  * Sets the label for the buttons in the ScrollView pager. The default label pattern is `'Item {itemIndex}'`.
262
279
  * When the current item is 1, the default label is `'Item 1'`.
263
280
  */
264
- pagerButtonLabel: string;
281
+ set pagerButtonLabel(value: string);
282
+ get pagerButtonLabel(): string;
283
+ private _pagerButtonLabel;
265
284
  static ɵfac: i0.ɵɵFactoryDeclaration<ScrollViewMessages, never>;
266
285
  static ɵdir: i0.ɵɵDirectiveDeclaration<ScrollViewMessages, "kendo-scrollview-messages-base", never, { "pagerButtonLabel": { "alias": "pagerButtonLabel"; "required": false; }; }, {}, never, never, true, never>;
267
286
  }
@@ -318,9 +337,13 @@ declare class ScrollViewModule {
318
337
  */
319
338
  declare class ScrollViewPagerComponent {
320
339
  private localization;
321
- activeIndex: number;
322
- data: any[];
340
+ set activeIndex(value: number);
341
+ get activeIndex(): number;
342
+ set data(value: any[]);
343
+ get data(): any[];
323
344
  pagerIndexChange: EventEmitter<number>;
345
+ private _activeIndex;
346
+ private _data;
324
347
  constructor(localization: LocalizationService);
325
348
  itemClass(idx: number): any;
326
349
  indexChange(selectedIndex: number): void;
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1783680027,
11
- "version": "25.0.0-develop.1",
10
+ "publishDate": 1785318057,
11
+ "version": "25.0.0-develop.12",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-scrollview",
3
- "version": "25.0.0-develop.1",
3
+ "version": "25.0.0-develop.12",
4
4
  "description": "A ScrollView Component for Angular",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -19,7 +19,7 @@
19
19
  "package": {
20
20
  "productName": "Kendo UI for Angular",
21
21
  "productCode": "KENDOUIANGULAR",
22
- "publishDate": 1783680027,
22
+ "publishDate": 1785318057,
23
23
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
24
24
  }
25
25
  },
@@ -29,14 +29,14 @@
29
29
  "@angular/core": "20 - 22",
30
30
  "@angular/platform-browser": "20 - 22",
31
31
  "@progress/kendo-licensing": "^1.11.0",
32
- "@progress/kendo-angular-common": "25.0.0-develop.1",
33
- "@progress/kendo-angular-l10n": "25.0.0-develop.1",
34
- "@progress/kendo-angular-icons": "25.0.0-develop.1",
32
+ "@progress/kendo-angular-common": "25.0.0-develop.12",
33
+ "@progress/kendo-angular-l10n": "25.0.0-develop.12",
34
+ "@progress/kendo-angular-icons": "25.0.0-develop.12",
35
35
  "rxjs": "^6.5.3 || ^7.0.0"
36
36
  },
37
37
  "dependencies": {
38
38
  "tslib": "^2.3.1",
39
- "@progress/kendo-angular-schematics": "25.0.0-develop.1"
39
+ "@progress/kendo-angular-schematics": "25.0.0-develop.12"
40
40
  },
41
41
  "schematics": "./schematics/collection.json",
42
42
  "module": "fesm2022/progress-kendo-angular-scrollview.mjs",