@progress/kendo-angular-progressbar 25.0.0-develop.2 → 25.0.0-develop.4

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.
@@ -5,12 +5,11 @@
5
5
  import * as i1 from '@progress/kendo-angular-l10n';
6
6
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
7
7
  import * as i0 from '@angular/core';
8
- import { isDevMode, Input, HostBinding, Component, Directive, forwardRef, EventEmitter, ViewChild, Output, ContentChild, NgModule } from '@angular/core';
8
+ import { isDevMode, signal, computed, Input, HostBinding, ChangeDetectionStrategy, Component, Directive, forwardRef, EventEmitter, effect, untracked, ViewChild, Output, afterNextRender, ContentChild, NgModule } from '@angular/core';
9
9
  import { validatePackage } from '@progress/kendo-licensing';
10
- import { hasObservers, isDocumentAvailable, isChanged, ResizeSensorComponent, ResizeBatchService } from '@progress/kendo-angular-common';
10
+ import { hasObservers, isDocumentAvailable, ResizeSensorComponent, ResizeBatchService } from '@progress/kendo-angular-common';
11
11
  import { NgStyle, NgClass, NgTemplateOutlet } from '@angular/common';
12
12
  import { Subscription } from 'rxjs';
13
- import { take } from 'rxjs/operators';
14
13
 
15
14
  /**
16
15
  * @hidden
@@ -20,8 +19,8 @@ const packageMetadata = {
20
19
  productName: 'Kendo UI for Angular',
21
20
  productCode: 'KENDOUIANGULAR',
22
21
  productCodes: ['KENDOUIANGULAR'],
23
- publishDate: 1783688456,
24
- version: '25.0.0-develop.2',
22
+ publishDate: 1783940090,
23
+ version: '25.0.0-develop.4',
25
24
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
26
25
  };
27
26
 
@@ -172,23 +171,36 @@ class ProgressBarBase {
172
171
  * The maximum value of the ProgressBar.
173
172
  * Defaults to `100`.
174
173
  */
175
- max = 100;
174
+ set max(value) {
175
+ validateRange(this._min(), value);
176
+ this._max.set(value);
177
+ }
178
+ get max() {
179
+ return this._max();
180
+ }
176
181
  /**
177
182
  * The minimum value of the ProgressBar.
178
183
  * Defaults to `0`.
179
184
  */
180
- min = 0;
181
- /**
182
- * The value of the ProgressBar.
183
- * Has to be between `min` and `max`.
184
- * By default, the value is equal to the `min` value.
185
- */
185
+ set min(value) {
186
+ validateRange(value, this._max());
187
+ this._min.set(value);
188
+ }
189
+ get min() {
190
+ return this._min();
191
+ }
186
192
  /**
187
193
  * The value of the ProgressBar.
188
194
  * Has to be between `min` and `max`.
189
195
  * Defaults to `0`.
190
196
  */
191
- value = 0;
197
+ set value(v) {
198
+ this.previousValue = this.displayValue;
199
+ this._value.set(v == null || Number.isNaN(v) ? this._min() : v);
200
+ }
201
+ get value() {
202
+ return this._value();
203
+ }
192
204
  /**
193
205
  * @hidden
194
206
  */
@@ -227,29 +239,54 @@ class ProgressBarBase {
227
239
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/orientation)).
228
240
  * Defaults to `horizontal`.
229
241
  */
230
- orientation = 'horizontal';
242
+ set orientation(value) {
243
+ this._orientation.set(value);
244
+ }
245
+ get orientation() {
246
+ return this._orientation();
247
+ }
231
248
  /**
232
249
  * If set to `true`, the ProgressBar will be disabled
233
250
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/disabled)).
234
251
  * It will still allow you to change its value.
235
252
  * Defaults to `false`.
236
253
  */
237
- disabled = false;
254
+ set disabled(value) {
255
+ this._disabled.set(value);
256
+ }
257
+ get disabled() {
258
+ return this._disabled();
259
+ }
238
260
  /**
239
261
  * If set to `true`, the ProgressBar will be reversed
240
262
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/direction)).
241
263
  * Defaults to `false`.
242
264
  */
243
- reverse = false;
265
+ set reverse(value) {
266
+ this._reverse.set(value);
267
+ }
268
+ get reverse() {
269
+ return this._reverse();
270
+ }
244
271
  /**
245
272
  * Sets the `indeterminate` state of the ProgressBar.
246
273
  * Defaults to `false`.
247
274
  */
248
- indeterminate = false;
275
+ set indeterminate(value) {
276
+ this._indeterminate.set(value);
277
+ }
278
+ get indeterminate() {
279
+ return this._indeterminate();
280
+ }
249
281
  direction;
250
282
  localizationChangeSubscription;
251
- displayValue = 0;
252
283
  previousValue = 0;
284
+ /**
285
+ * @hidden
286
+ */
287
+ get displayValue() {
288
+ return this._displayValue();
289
+ }
253
290
  /**
254
291
  * @hidden
255
292
  */
@@ -267,39 +304,27 @@ class ProgressBarBase {
267
304
  const label = this.localization.get('progressBarLabel');
268
305
  this.renderer.setAttribute(elem, 'aria-label', label);
269
306
  }
270
- ngOnChanges(changes) {
271
- const min = extractValueFromChanges(changes, 'min', this.min);
272
- const max = extractValueFromChanges(changes, 'max', this.max);
273
- const value = extractValueFromChanges(changes, 'value', this.value);
274
- if (changes['min'] || changes['max'] || changes['value']) {
275
- if (changes['min'] || changes['max']) {
276
- validateRange(min, max);
277
- }
278
- if (changes['value']) {
279
- if (value == null || Number.isNaN(value)) {
280
- this.value = min;
281
- }
282
- const previousValue = this.displayValue;
283
- this.displayValue = adjustValueToRange(this.min, this.max, value);
284
- this.previousValue = previousValue;
285
- }
286
- this.min = min;
287
- this.max = max;
288
- this.displayValue = adjustValueToRange(this.min, this.max, value);
289
- }
290
- }
291
307
  ngOnDestroy() {
292
308
  if (this.localizationChangeSubscription) {
293
309
  this.localizationChangeSubscription.unsubscribe();
294
310
  }
295
311
  }
312
+ _max = signal(100, ...(ngDevMode ? [{ debugName: "_max" }] : []));
313
+ _min = signal(0, ...(ngDevMode ? [{ debugName: "_min" }] : []));
314
+ _value = signal(0, ...(ngDevMode ? [{ debugName: "_value" }] : []));
315
+ _orientation = signal('horizontal', ...(ngDevMode ? [{ debugName: "_orientation" }] : []));
316
+ _disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
317
+ _reverse = signal(false, ...(ngDevMode ? [{ debugName: "_reverse" }] : []));
318
+ _indeterminate = signal(false, ...(ngDevMode ? [{ debugName: "_indeterminate" }] : []));
319
+ _displayValue = computed(() => adjustValueToRange(this._min(), this._max(), this._value()), ...(ngDevMode ? [{ debugName: "_displayValue" }] : []));
296
320
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ProgressBarBase, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
297
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: ProgressBarBase, isStandalone: true, selector: "ng-component", inputs: { max: "max", min: "min", value: "value", orientation: "orientation", disabled: "disabled", reverse: "reverse", indeterminate: "indeterminate" }, host: { properties: { "class.k-progressbar": "this.hostClasses", "class.k-progressbar-horizontal": "this.isHorizontal", "class.k-progressbar-vertical": "this.isVertical", "class.k-disabled": "this.disabledClass", "class.k-progressbar-reverse": "this.reverseClass", "class.k-progressbar-indeterminate": "this.indeterminateClass", "attr.dir": "this.dirAttribute", "attr.role": "this.roleAttribute", "attr.aria-valuemin": "this.ariaMinAttribute", "attr.aria-valuemax": "this.ariaMaxAttribute", "attr.aria-valuenow": "this.ariaValueAttribute" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
321
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: ProgressBarBase, isStandalone: true, selector: "ng-component", inputs: { max: "max", min: "min", value: "value", orientation: "orientation", disabled: "disabled", reverse: "reverse", indeterminate: "indeterminate" }, host: { properties: { "class.k-progressbar": "this.hostClasses", "class.k-progressbar-horizontal": "this.isHorizontal", "class.k-progressbar-vertical": "this.isVertical", "class.k-disabled": "this.disabledClass", "class.k-progressbar-reverse": "this.reverseClass", "class.k-progressbar-indeterminate": "this.indeterminateClass", "attr.dir": "this.dirAttribute", "attr.role": "this.roleAttribute", "attr.aria-valuemin": "this.ariaMinAttribute", "attr.aria-valuemax": "this.ariaMaxAttribute", "attr.aria-valuenow": "this.ariaValueAttribute" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
298
322
  }
299
323
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ProgressBarBase, decorators: [{
300
324
  type: Component,
301
325
  args: [{
302
- template: ''
326
+ template: '',
327
+ changeDetection: ChangeDetectionStrategy.OnPush
303
328
  }]
304
329
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.LocalizationService }], propDecorators: { hostClasses: [{
305
330
  type: HostBinding,
@@ -428,36 +453,77 @@ class ProgressBarComponent extends ProgressBarBase {
428
453
  * Determines whether the status label displays.
429
454
  * @default true
430
455
  */
431
- label = true;
456
+ set label(value) {
457
+ this._label.set(value);
458
+ }
459
+ get label() {
460
+ return this._label();
461
+ }
432
462
  /**
433
463
  * Sets the CSS styles that will be rendered on the inner element, which represents the full portion of the progress bar
434
464
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/appearance)).
435
465
  * Supports the type of values that [`ngStyle`](link:site.data.urls.angular['ngstyleapi']) supports.
436
466
  */
437
- progressCssStyle;
467
+ set progressCssStyle(value) {
468
+ this._progressCssStyle.set(value);
469
+ }
470
+ get progressCssStyle() {
471
+ return this._progressCssStyle();
472
+ }
438
473
  /**
439
474
  * The CSS classes that render on the inner element which represents the full portion of the progress bar
440
475
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/appearance)).
441
476
  * Supports the type of values that [`ngClass`](link:site.data.urls.angular['ngclassapi']) supports.
442
477
  */
443
- progressCssClass;
478
+ set progressCssClass(value) {
479
+ this._progressCssClass.set(value);
480
+ }
481
+ get progressCssClass() {
482
+ return this._progressCssClass();
483
+ }
444
484
  /**
445
485
  * The CSS styles that render on the inner element which represents the empty portion of the progress bar
446
486
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/appearance)).
447
487
  * Supports the type of values that [`ngStyle`](link:site.data.urls.angular['ngstyleapi']) supports.
448
488
  */
449
- emptyCssStyle;
489
+ set emptyCssStyle(value) {
490
+ this._emptyCssStyle.set(value);
491
+ }
492
+ get emptyCssStyle() {
493
+ return this._emptyCssStyle();
494
+ }
450
495
  /**
451
496
  * The CSS classes that render on the inner element which represents the empty portion of the progress bar
452
497
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/appearance)).
453
498
  * Supports the type of values that [`ngClass`](link:site.data.urls.angular['ngclassapi']) supports.
454
499
  */
455
- emptyCssClass;
500
+ set emptyCssClass(value) {
501
+ this._emptyCssClass.set(value);
502
+ }
503
+ get emptyCssClass() {
504
+ return this._emptyCssClass();
505
+ }
456
506
  /**
457
507
  * The animation configuration of the ProgressBar.
458
508
  * @default false
459
509
  */
460
- animation = false;
510
+ set animation(value) {
511
+ this._animation.set(value);
512
+ }
513
+ get animation() {
514
+ return this._animation();
515
+ }
516
+ /**
517
+ * The maximum value of the ProgressBar.
518
+ * Defaults to `100`.
519
+ */
520
+ set max(v) {
521
+ this._previousMax = this.max;
522
+ super.max = v;
523
+ }
524
+ get max() {
525
+ return super.max;
526
+ }
461
527
  /**
462
528
  * Fires when the animation which indicates the latest value change completes.
463
529
  */
@@ -519,7 +585,35 @@ class ProgressBarComponent extends ProgressBarBase {
519
585
  animationFrame;
520
586
  cancelCurrentAnimation;
521
587
  isAnimationInProgress;
522
- previousMax;
588
+ _previousMax;
589
+ _valueEffectInitialized = false;
590
+ _label = signal(true, ...(ngDevMode ? [{ debugName: "_label" }] : []));
591
+ _progressCssStyle = signal(undefined, ...(ngDevMode ? [{ debugName: "_progressCssStyle" }] : []));
592
+ _progressCssClass = signal(undefined, ...(ngDevMode ? [{ debugName: "_progressCssClass" }] : []));
593
+ _emptyCssStyle = signal(undefined, ...(ngDevMode ? [{ debugName: "_emptyCssStyle" }] : []));
594
+ _emptyCssClass = signal(undefined, ...(ngDevMode ? [{ debugName: "_emptyCssClass" }] : []));
595
+ _animation = signal(false, ...(ngDevMode ? [{ debugName: "_animation" }] : []));
596
+ valueChangeEffect = effect(() => {
597
+ const _value = this.value; // tracks _value signal changes via public getter
598
+ if (!this._valueEffectInitialized) {
599
+ this._valueEffectInitialized = true;
600
+ return;
601
+ }
602
+ const displayValue = untracked(() => this.displayValue);
603
+ const animation = untracked(() => this.animation);
604
+ if (animation && typeof requestAnimationFrame !== 'undefined' && this.previousValue !== displayValue) {
605
+ if (!this.progressStatusElement?.nativeElement || !this.progressStatusWrapperElement?.nativeElement) {
606
+ return;
607
+ }
608
+ this.startAnimation(this.previousValue);
609
+ }
610
+ }, ...(ngDevMode ? [{ debugName: "valueChangeEffect" }] : []));
611
+ animationStopEffect = effect(() => {
612
+ const animation = this.animation; // tracks _animation signal changes via public getter
613
+ if (this.isAnimationInProgress && !animation) {
614
+ this.cancelCurrentAnimation = true;
615
+ }
616
+ }, ...(ngDevMode ? [{ debugName: "animationStopEffect" }] : []));
523
617
  /**
524
618
  * @hidden
525
619
  */
@@ -530,23 +624,11 @@ class ProgressBarComponent extends ProgressBarBase {
530
624
  this.renderer = renderer;
531
625
  this.zone = zone;
532
626
  }
533
- /**
534
- * @hidden
535
- */
536
- ngOnChanges(changes) {
537
- super.ngOnChanges(changes);
538
- this.previousMax = changes['max'] ? changes['max'].previousValue : this.max;
539
- if (this.isAnimationInProgress && stopCurrentAnimation(changes)) {
540
- this.cancelCurrentAnimation = true;
541
- }
542
- if (runAnimation(changes, this.animation, this.previousValue, this.displayValue) && !changes['value'].firstChange) {
543
- this.startAnimation(this.previousValue);
544
- }
545
- }
546
627
  /**
547
628
  * @hidden
548
629
  */
549
630
  ngOnDestroy() {
631
+ super.ngOnDestroy();
550
632
  if (this.animationFrame) {
551
633
  cancelAnimationFrame(this.animationFrame);
552
634
  }
@@ -612,7 +694,7 @@ class ProgressBarComponent extends ProgressBarBase {
612
694
  }
613
695
  getAnimationOptions(value) {
614
696
  const isHorizontal = this.orientation === 'horizontal';
615
- const previousRatio = calculateRatio(this.min, this.previousMax ?? this.max, value);
697
+ const previousRatio = calculateRatio(this.min, this._previousMax ?? this.max, value);
616
698
  const previousStatusWidth = isHorizontal ? previousRatio * 100 : 100;
617
699
  const previousStatusHeight = !isHorizontal ? previousRatio * 100 : 100;
618
700
  const property = isHorizontal ? 'width' : 'height';
@@ -643,13 +725,13 @@ class ProgressBarComponent extends ProgressBarBase {
643
725
  });
644
726
  }
645
727
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ProgressBarComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
646
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: ProgressBarComponent, isStandalone: true, selector: "kendo-progressbar", inputs: { label: "label", progressCssStyle: "progressCssStyle", progressCssClass: "progressCssClass", emptyCssStyle: "emptyCssStyle", emptyCssClass: "emptyCssClass", animation: "animation" }, outputs: { animationEnd: "animationEnd" }, providers: [
728
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: ProgressBarComponent, isStandalone: true, selector: "kendo-progressbar", inputs: { label: "label", progressCssStyle: "progressCssStyle", progressCssClass: "progressCssClass", emptyCssStyle: "emptyCssStyle", emptyCssClass: "emptyCssClass", animation: "animation", max: "max" }, outputs: { animationEnd: "animationEnd" }, providers: [
647
729
  LocalizationService,
648
730
  {
649
731
  provide: L10N_PREFIX,
650
732
  useValue: 'kendo.progressbar'
651
733
  }
652
- ], viewQueries: [{ propertyName: "progressStatusElement", first: true, predicate: ["progressStatus"], descendants: true }, { propertyName: "progressStatusWrapperElement", first: true, predicate: ["progressStatusWrap"], descendants: true }], exportAs: ["kendoProgressBar"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
734
+ ], viewQueries: [{ propertyName: "progressStatusElement", first: true, predicate: ["progressStatus"], descendants: true }, { propertyName: "progressStatusWrapperElement", first: true, predicate: ["progressStatusWrap"], descendants: true }], exportAs: ["kendoProgressBar"], usesInheritance: true, ngImport: i0, template: `
653
735
  <ng-container kendoProgressBarLocalizedMessages
654
736
  i18n-progressBarLabel="kendo.progressbar.progressBarLabel|The aria-label attribute for the ProgressBar component."
655
737
  progressBarLabel="Progressbar"
@@ -688,13 +770,14 @@ class ProgressBarComponent extends ProgressBarBase {
688
770
  }
689
771
  </span>
690
772
  </div>
691
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedProgressBarMessagesDirective, selector: "[kendoProgressBarLocalizedMessages]" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
773
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedProgressBarMessagesDirective, selector: "[kendoProgressBarLocalizedMessages]" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
692
774
  }
693
775
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ProgressBarComponent, decorators: [{
694
776
  type: Component,
695
777
  args: [{
696
- exportAs: 'kendoProgressBar',
697
778
  selector: 'kendo-progressbar',
779
+ exportAs: 'kendoProgressBar',
780
+ changeDetection: ChangeDetectionStrategy.OnPush,
698
781
  template: `
699
782
  <ng-container kendoProgressBarLocalizedMessages
700
783
  i18n-progressBarLabel="kendo.progressbar.progressBarLabel|The aria-label attribute for the ProgressBar component."
@@ -757,6 +840,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
757
840
  type: Input
758
841
  }], animation: [{
759
842
  type: Input
843
+ }], max: [{
844
+ type: Input
760
845
  }], animationEnd: [{
761
846
  type: Output
762
847
  }], progressStatusElement: [{
@@ -801,7 +886,12 @@ class ChunkProgressBarComponent extends ProgressBarBase {
801
886
  *
802
887
  * @default 5
803
888
  */
804
- chunkCount = 5;
889
+ set chunkCount(value) {
890
+ this._chunkCount.set(value);
891
+ }
892
+ get chunkCount() {
893
+ return this._chunkCount();
894
+ }
805
895
  /**
806
896
  * @hidden
807
897
  */
@@ -818,22 +908,42 @@ class ChunkProgressBarComponent extends ProgressBarBase {
818
908
  * Sets the CSS styles that will be rendered on the full chunk elements ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/circularprogressbar/appearance)).
819
909
  * Supports the type of values that [`ngStyle`](link:site.data.urls.angular['ngstyleapi']) supports.
820
910
  */
821
- progressCssStyle;
911
+ set progressCssStyle(value) {
912
+ this._progressCssStyle.set(value);
913
+ }
914
+ get progressCssStyle() {
915
+ return this._progressCssStyle();
916
+ }
822
917
  /**
823
918
  * Sets the CSS classes that will be rendered on the full chunk elements ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/circularprogressbar/appearance)).
824
919
  * Supports the type of values that [`ngClass`](link:site.data.urls.angular['ngclassapi']) supports.
825
920
  */
826
- progressCssClass;
921
+ set progressCssClass(value) {
922
+ this._progressCssClass.set(value);
923
+ }
924
+ get progressCssClass() {
925
+ return this._progressCssClass();
926
+ }
827
927
  /**
828
928
  * Sets the CSS styles that will be rendered on the empty chunk elements ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/circularprogressbar/appearance)).
829
929
  * Supports the type of values that [`ngStyle`](link:site.data.urls.angular['ngstyleapi']) supports.
830
930
  */
831
- emptyCssStyle;
931
+ set emptyCssStyle(value) {
932
+ this._emptyCssStyle.set(value);
933
+ }
934
+ get emptyCssStyle() {
935
+ return this._emptyCssStyle();
936
+ }
832
937
  /**
833
938
  * Sets the CSS classes that will be rendered on the empty chunk elements ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/circularprogressbar/appearance)).
834
939
  * Supports the type of values that [`ngClass`](link:site.data.urls.angular['ngclassapi']) supports.
835
940
  */
836
- emptyCssClass;
941
+ set emptyCssClass(value) {
942
+ this._emptyCssClass.set(value);
943
+ }
944
+ get emptyCssClass() {
945
+ return this._emptyCssClass();
946
+ }
837
947
  /**
838
948
  * @hidden
839
949
  */
@@ -854,6 +964,11 @@ class ChunkProgressBarComponent extends ProgressBarBase {
854
964
  }
855
965
  return this._orientationStyles;
856
966
  }
967
+ _chunkCount = signal(5, ...(ngDevMode ? [{ debugName: "_chunkCount" }] : []));
968
+ _progressCssStyle = signal(undefined, ...(ngDevMode ? [{ debugName: "_progressCssStyle" }] : []));
969
+ _progressCssClass = signal(undefined, ...(ngDevMode ? [{ debugName: "_progressCssClass" }] : []));
970
+ _emptyCssStyle = signal(undefined, ...(ngDevMode ? [{ debugName: "_emptyCssStyle" }] : []));
971
+ _emptyCssClass = signal(undefined, ...(ngDevMode ? [{ debugName: "_emptyCssClass" }] : []));
857
972
  _orientationStyles = {
858
973
  width: `${this.chunkSizePercentage}%`,
859
974
  height: null
@@ -894,13 +1009,13 @@ class ChunkProgressBarComponent extends ProgressBarBase {
894
1009
  </li>
895
1010
  }
896
1011
  </ul>
897
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedProgressBarMessagesDirective, selector: "[kendoProgressBarLocalizedMessages]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
1012
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedProgressBarMessagesDirective, selector: "[kendoProgressBarLocalizedMessages]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
898
1013
  }
899
1014
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ChunkProgressBarComponent, decorators: [{
900
1015
  type: Component,
901
1016
  args: [{
902
- exportAs: 'kendoChunkProgressBar',
903
1017
  selector: 'kendo-chunkprogressbar',
1018
+ exportAs: 'kendoChunkProgressBar',
904
1019
  template: `
905
1020
  <ng-container kendoProgressBarLocalizedMessages
906
1021
  i18n-progressBarLabel="kendo.chunkprogressbar.progressBarLabel|The aria-label attribute for the ChunkProgressBar component."
@@ -930,6 +1045,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
930
1045
  }
931
1046
  ],
932
1047
  standalone: true,
1048
+ changeDetection: ChangeDetectionStrategy.OnPush,
933
1049
  imports: [LocalizedProgressBarMessagesDirective, NgClass, NgStyle]
934
1050
  }]
935
1051
  }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { chunkClass: [{
@@ -1004,10 +1120,9 @@ const DEFAULT_SURFACE_SIZE = 200;
1004
1120
  */
1005
1121
  class CircularProgressBarComponent {
1006
1122
  renderer;
1007
- cdr;
1008
1123
  localization;
1009
1124
  element;
1010
- zone;
1125
+ injector;
1011
1126
  hostClasses = true;
1012
1127
  get ariaMinAttribute() {
1013
1128
  return String(this.min);
@@ -1032,10 +1147,10 @@ class CircularProgressBarComponent {
1032
1147
  this.handleErrors('value < min');
1033
1148
  }
1034
1149
  this.previousValue = this.value;
1035
- this._value = value;
1150
+ this._value.set(value);
1036
1151
  }
1037
1152
  get value() {
1038
- return this._value;
1153
+ return this._value();
1039
1154
  }
1040
1155
  /**
1041
1156
  * Sets the maximum value which the Circular ProgressBar can accept.
@@ -1046,10 +1161,10 @@ class CircularProgressBarComponent {
1046
1161
  if (max < this.min) {
1047
1162
  this.handleErrors('max < min');
1048
1163
  }
1049
- this._max = max;
1164
+ this._max.set(max);
1050
1165
  }
1051
1166
  get max() {
1052
- return this._max;
1167
+ return this._max();
1053
1168
  }
1054
1169
  /**
1055
1170
  * Sets the minimum value which the Circular ProgressBar can accept.
@@ -1060,38 +1175,53 @@ class CircularProgressBarComponent {
1060
1175
  if (min > this.max) {
1061
1176
  this.handleErrors('max < min');
1062
1177
  }
1063
- this._min = min;
1178
+ this._min.set(min);
1064
1179
  }
1065
1180
  get min() {
1066
- return this._min;
1181
+ return this._min();
1067
1182
  }
1068
1183
  /**
1069
1184
  * Specifies whether to play an animation when the value changes.
1070
1185
  *
1071
1186
  * @default false
1072
1187
  */
1073
- animation = false;
1188
+ set animation(value) {
1189
+ this._animation.set(value);
1190
+ }
1191
+ get animation() {
1192
+ return this._animation();
1193
+ }
1074
1194
  /**
1075
1195
  * Sets the opacity of the value arc.
1076
1196
  *
1077
1197
  * @default 1
1078
1198
  */
1079
- opacity = 1;
1199
+ set opacity(value) {
1200
+ this._opacity.set(value);
1201
+ }
1202
+ get opacity() {
1203
+ return this._opacity();
1204
+ }
1080
1205
  /**
1081
1206
  * Puts the Circular ProgressBar in indeterminate state.
1082
1207
  *
1083
1208
  * @default false
1084
1209
  */
1085
1210
  set indeterminate(indeterminate) {
1086
- this._indeterminate = indeterminate;
1211
+ this._indeterminate.set(indeterminate);
1087
1212
  }
1088
1213
  get indeterminate() {
1089
- return this._indeterminate;
1214
+ return this._indeterminate();
1090
1215
  }
1091
1216
  /**
1092
1217
  * Configures the pointer color. You can set it to a single color string or customize it per progress stages.
1093
1218
  */
1094
- progressColor;
1219
+ set progressColor(value) {
1220
+ this._progressColor.set(value);
1221
+ }
1222
+ get progressColor() {
1223
+ return this._progressColor();
1224
+ }
1095
1225
  /**
1096
1226
  * Fires when the animation that indicates the latest value change completes.
1097
1227
  */
@@ -1101,21 +1231,68 @@ class CircularProgressBarComponent {
1101
1231
  labelElement;
1102
1232
  surface;
1103
1233
  centerTemplate;
1104
- centerTemplateContext = {};
1105
- _indeterminate = false;
1106
- _max = 100;
1107
- _min = 0;
1108
- _value = 0;
1234
+ /**
1235
+ * @hidden
1236
+ */
1237
+ get centerTemplateContext() {
1238
+ return this._centerTemplateContext();
1239
+ }
1109
1240
  previousValue = 0;
1110
1241
  internalValue = 0;
1111
1242
  rtl;
1112
1243
  subscriptions = new Subscription();
1113
- constructor(renderer, cdr, localization, element, zone) {
1244
+ _value = signal(0, ...(ngDevMode ? [{ debugName: "_value" }] : []));
1245
+ _max = signal(100, ...(ngDevMode ? [{ debugName: "_max" }] : []));
1246
+ _min = signal(0, ...(ngDevMode ? [{ debugName: "_min" }] : []));
1247
+ _animation = signal(false, ...(ngDevMode ? [{ debugName: "_animation" }] : []));
1248
+ _opacity = signal(1, ...(ngDevMode ? [{ debugName: "_opacity" }] : []));
1249
+ _indeterminate = signal(false, ...(ngDevMode ? [{ debugName: "_indeterminate" }] : []));
1250
+ _progressColor = signal(undefined, ...(ngDevMode ? [{ debugName: "_progressColor" }] : []));
1251
+ _centerTemplateContext = signal({}, ...(ngDevMode ? [{ debugName: "_centerTemplateContext" }] : []));
1252
+ _valueEffectInitialized = false;
1253
+ valueChangeEffect = effect(() => {
1254
+ const _value = this._value(); // tracks _value signal changes
1255
+ if (!this._valueEffectInitialized) {
1256
+ this._valueEffectInitialized = true;
1257
+ return;
1258
+ }
1259
+ if (!this.progress) {
1260
+ return;
1261
+ }
1262
+ const animation = untracked(() => this._animation());
1263
+ if (animation) {
1264
+ this.progressbarAnimation();
1265
+ }
1266
+ else {
1267
+ const relValue = _value - untracked(() => this._min());
1268
+ this.internalValue = _value;
1269
+ this.calculateProgress(relValue);
1270
+ }
1271
+ }, ...(ngDevMode ? [{ debugName: "valueChangeEffect" }] : []));
1272
+ opacityEffect = effect(() => {
1273
+ const opacity = this._opacity();
1274
+ if (!this.progress) {
1275
+ return;
1276
+ }
1277
+ setProgressBarStyles([{ method: 'setAttribute', el: this.progress.nativeElement, attr: 'opacity', attrValue: opacity.toString() }], this.renderer);
1278
+ }, ...(ngDevMode ? [{ debugName: "opacityEffect" }] : []));
1279
+ _indeterminateEffectInitialized = false;
1280
+ indeterminateEffect = effect(() => {
1281
+ const _indeterminate = this._indeterminate();
1282
+ if (!this._indeterminateEffectInitialized) {
1283
+ this._indeterminateEffectInitialized = true;
1284
+ return;
1285
+ }
1286
+ if (!this.progress) {
1287
+ return;
1288
+ }
1289
+ this.indeterminateState();
1290
+ }, ...(ngDevMode ? [{ debugName: "indeterminateEffect" }] : []));
1291
+ constructor(renderer, localization, element, injector) {
1114
1292
  this.renderer = renderer;
1115
- this.cdr = cdr;
1116
1293
  this.localization = localization;
1117
1294
  this.element = element;
1118
- this.zone = zone;
1295
+ this.injector = injector;
1119
1296
  validatePackage(packageMetadata);
1120
1297
  this.subscriptions.add(this.localization.changes.subscribe(this.rtlChange.bind(this)));
1121
1298
  }
@@ -1128,25 +1305,6 @@ class CircularProgressBarComponent {
1128
1305
  this.renderer.setAttribute(elem, 'aria-label', ariaLabel);
1129
1306
  this.initProgressArc();
1130
1307
  }
1131
- ngOnChanges(changes) {
1132
- const skipFirstChange = true;
1133
- if (isChanged('value', changes, skipFirstChange) && this.progress) {
1134
- if (this.animation) {
1135
- this.progressbarAnimation();
1136
- }
1137
- else {
1138
- const value = this.value - this.min;
1139
- this.internalValue = changes['value'].currentValue;
1140
- this.calculateProgress(value);
1141
- }
1142
- }
1143
- if (changes['opacity'] && this.progress) {
1144
- setProgressBarStyles([{ method: 'setAttribute', el: this.progress.nativeElement, attr: 'opacity', attrValue: this.opacity.toString() }], this.renderer);
1145
- }
1146
- if (changes['indeterminate'] && !changes['indeterminate'].firstChange) {
1147
- this.indeterminateState();
1148
- }
1149
- }
1150
1308
  ngOnDestroy() {
1151
1309
  this.subscriptions.unsubscribe();
1152
1310
  }
@@ -1179,9 +1337,9 @@ class CircularProgressBarComponent {
1179
1337
  this.updateProgressColor(value);
1180
1338
  }
1181
1339
  // needed when we have *ngIf inside the template to render different content depending on some condition
1182
- this.zone.onStable.pipe(take(1)).subscribe(() => {
1340
+ afterNextRender(() => {
1183
1341
  this.updateCenterTemplate(value + this.min);
1184
- });
1342
+ }, { injector: this.injector });
1185
1343
  const progressArc = this.progress.nativeElement;
1186
1344
  const radius = this.progress.nativeElement.r.baseVal.value;
1187
1345
  const circumference = Math.PI * (radius * 2);
@@ -1288,10 +1446,10 @@ class CircularProgressBarComponent {
1288
1446
  if (!this.centerTemplate) {
1289
1447
  return;
1290
1448
  }
1291
- this.centerTemplateContext.value = value;
1292
- this.centerTemplateContext.color = this.currentColor;
1293
- this.cdr.detectChanges();
1294
- this.positionLabel();
1449
+ this._centerTemplateContext.set({ value, color: this.currentColor });
1450
+ afterNextRender(() => {
1451
+ this.positionLabel();
1452
+ }, { injector: this.injector });
1295
1453
  }
1296
1454
  positionLabel() {
1297
1455
  const labelEl = this.labelElement.nativeElement;
@@ -1367,14 +1525,14 @@ class CircularProgressBarComponent {
1367
1525
  this.setDirection();
1368
1526
  }
1369
1527
  }
1370
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CircularProgressBarComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.LocalizationService }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1528
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CircularProgressBarComponent, deps: [{ token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1371
1529
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: CircularProgressBarComponent, isStandalone: true, selector: "kendo-circularprogressbar", inputs: { value: "value", max: "max", min: "min", animation: "animation", opacity: "opacity", indeterminate: "indeterminate", progressColor: "progressColor" }, outputs: { animationEnd: "animationEnd" }, host: { properties: { "class.k-circular-progressbar": "this.hostClasses", "attr.aria-valuemin": "this.ariaMinAttribute", "attr.aria-valuemax": "this.ariaMaxAttribute", "attr.aria-valuenow": "this.ariaValueAttribute", "attr.role": "this.roleAttribute" } }, providers: [
1372
1530
  LocalizationService,
1373
1531
  {
1374
1532
  provide: L10N_PREFIX,
1375
1533
  useValue: 'kendo.circularprogressbar'
1376
1534
  }
1377
- ], queries: [{ propertyName: "centerTemplate", first: true, predicate: CircularProgressbarCenterTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "progress", first: true, predicate: ["progress"], descendants: true }, { propertyName: "scale", first: true, predicate: ["scale"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["label"], descendants: true }, { propertyName: "surface", first: true, predicate: ["surface"], descendants: true }], exportAs: ["kendoCircularProgressBar"], usesOnChanges: true, ngImport: i0, template: `
1535
+ ], queries: [{ propertyName: "centerTemplate", first: true, predicate: CircularProgressbarCenterTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "progress", first: true, predicate: ["progress"], descendants: true }, { propertyName: "scale", first: true, predicate: ["scale"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["label"], descendants: true }, { propertyName: "surface", first: true, predicate: ["surface"], descendants: true }], exportAs: ["kendoCircularProgressBar"], ngImport: i0, template: `
1378
1536
  <ng-container kendoProgressBarLocalizedMessages
1379
1537
  i18n-progressBarLabel="kendo.circularprogressbar.progressBarLabel|The aria-label attribute for the Circular ProgressBar component."
1380
1538
  progressBarLabel="Circular progressbar"
@@ -1396,13 +1554,13 @@ class CircularProgressBarComponent {
1396
1554
  </div>
1397
1555
  </div>
1398
1556
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
1399
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedProgressBarMessagesDirective, selector: "[kendoProgressBarLocalizedMessages]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
1557
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedProgressBarMessagesDirective, selector: "[kendoProgressBarLocalizedMessages]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1400
1558
  }
1401
1559
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CircularProgressBarComponent, decorators: [{
1402
1560
  type: Component,
1403
1561
  args: [{
1404
- exportAs: 'kendoCircularProgressBar',
1405
1562
  selector: 'kendo-circularprogressbar',
1563
+ exportAs: 'kendoCircularProgressBar',
1406
1564
  template: `
1407
1565
  <ng-container kendoProgressBarLocalizedMessages
1408
1566
  i18n-progressBarLabel="kendo.circularprogressbar.progressBarLabel|The aria-label attribute for the Circular ProgressBar component."
@@ -1433,9 +1591,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
1433
1591
  }
1434
1592
  ],
1435
1593
  standalone: true,
1594
+ changeDetection: ChangeDetectionStrategy.OnPush,
1436
1595
  imports: [LocalizedProgressBarMessagesDirective, NgTemplateOutlet, ResizeSensorComponent]
1437
1596
  }]
1438
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.LocalizationService }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { hostClasses: [{
1597
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.ElementRef }, { type: i0.Injector }], propDecorators: { hostClasses: [{
1439
1598
  type: HostBinding,
1440
1599
  args: ['class.k-circular-progressbar']
1441
1600
  }], ariaMinAttribute: [{
package/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { LocalizationService, ComponentMessages } from '@progress/kendo-angular-l10n';
6
6
  import * as i0 from '@angular/core';
7
- import { OnChanges, ElementRef, Renderer2, SimpleChanges, EventEmitter, NgZone, TemplateRef, AfterViewInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
7
+ import { AfterViewInit, OnDestroy, ElementRef, Renderer2, EventEmitter, NgZone, TemplateRef, Injector } from '@angular/core';
8
8
  import { Subscription } from 'rxjs';
9
9
 
10
10
  /**
@@ -29,7 +29,7 @@ type ProgressBarOrientation = 'horizontal' | 'vertical';
29
29
  /**
30
30
  * @hidden
31
31
  */
32
- declare abstract class ProgressBarBase implements OnChanges {
32
+ declare abstract class ProgressBarBase implements AfterViewInit, OnDestroy {
33
33
  protected elem: ElementRef;
34
34
  protected renderer: Renderer2;
35
35
  protected localization: LocalizationService;
@@ -48,23 +48,21 @@ declare abstract class ProgressBarBase implements OnChanges {
48
48
  * The maximum value of the ProgressBar.
49
49
  * Defaults to `100`.
50
50
  */
51
- max: number;
51
+ set max(value: number);
52
+ get max(): number;
52
53
  /**
53
54
  * The minimum value of the ProgressBar.
54
55
  * Defaults to `0`.
55
56
  */
56
- min: number;
57
- /**
58
- * The value of the ProgressBar.
59
- * Has to be between `min` and `max`.
60
- * By default, the value is equal to the `min` value.
61
- */
57
+ set min(value: number);
58
+ get min(): number;
62
59
  /**
63
60
  * The value of the ProgressBar.
64
61
  * Has to be between `min` and `max`.
65
62
  * Defaults to `0`.
66
63
  */
67
- value: number;
64
+ set value(v: number);
65
+ get value(): number;
68
66
  /**
69
67
  * @hidden
70
68
  */
@@ -91,36 +89,50 @@ declare abstract class ProgressBarBase implements OnChanges {
91
89
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/orientation)).
92
90
  * Defaults to `horizontal`.
93
91
  */
94
- orientation: ProgressBarOrientation;
92
+ set orientation(value: ProgressBarOrientation);
93
+ get orientation(): ProgressBarOrientation;
95
94
  /**
96
95
  * If set to `true`, the ProgressBar will be disabled
97
96
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/disabled)).
98
97
  * It will still allow you to change its value.
99
98
  * Defaults to `false`.
100
99
  */
101
- disabled: boolean;
100
+ set disabled(value: boolean);
101
+ get disabled(): boolean;
102
102
  /**
103
103
  * If set to `true`, the ProgressBar will be reversed
104
104
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/direction)).
105
105
  * Defaults to `false`.
106
106
  */
107
- reverse: boolean;
107
+ set reverse(value: boolean);
108
+ get reverse(): boolean;
108
109
  /**
109
110
  * Sets the `indeterminate` state of the ProgressBar.
110
111
  * Defaults to `false`.
111
112
  */
112
- indeterminate: boolean;
113
+ set indeterminate(value: boolean);
114
+ get indeterminate(): boolean;
113
115
  protected direction: string;
114
116
  protected localizationChangeSubscription: Subscription;
115
- protected displayValue: number;
116
117
  protected previousValue: number;
118
+ /**
119
+ * @hidden
120
+ */
121
+ protected get displayValue(): number;
117
122
  /**
118
123
  * @hidden
119
124
  */
120
125
  constructor(elem: ElementRef, renderer: Renderer2, localization: LocalizationService);
121
126
  ngAfterViewInit(): void;
122
- ngOnChanges(changes: SimpleChanges): void;
123
127
  ngOnDestroy(): void;
128
+ private readonly _max;
129
+ private readonly _min;
130
+ private readonly _value;
131
+ private readonly _orientation;
132
+ private readonly _disabled;
133
+ private readonly _reverse;
134
+ private readonly _indeterminate;
135
+ private readonly _displayValue;
124
136
  static ɵfac: i0.ɵɵFactoryDeclaration<ProgressBarBase, never>;
125
137
  static ɵcmp: i0.ɵɵComponentDeclaration<ProgressBarBase, "ng-component", never, { "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "value": { "alias": "value"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "reverse": { "alias": "reverse"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; }, {}, never, never, true, never>;
126
138
  }
@@ -214,13 +226,17 @@ declare class ProgressBarComponent extends ProgressBarBase {
214
226
  * Determines whether the status label displays.
215
227
  * @default true
216
228
  */
217
- label: boolean | LabelSettings;
229
+ set label(value: boolean | LabelSettings);
230
+ get label(): boolean | LabelSettings;
218
231
  /**
219
232
  * Sets the CSS styles that will be rendered on the inner element, which represents the full portion of the progress bar
220
233
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/appearance)).
221
234
  * Supports the type of values that [`ngStyle`](link:site.data.urls.angular['ngstyleapi']) supports.
222
235
  */
223
- progressCssStyle: {
236
+ set progressCssStyle(value: {
237
+ [key: string]: string;
238
+ });
239
+ get progressCssStyle(): {
224
240
  [key: string]: string;
225
241
  };
226
242
  /**
@@ -228,7 +244,10 @@ declare class ProgressBarComponent extends ProgressBarBase {
228
244
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/appearance)).
229
245
  * Supports the type of values that [`ngClass`](link:site.data.urls.angular['ngclassapi']) supports.
230
246
  */
231
- progressCssClass: string | string[] | Set<string> | {
247
+ set progressCssClass(value: string | string[] | Set<string> | {
248
+ [key: string]: any;
249
+ });
250
+ get progressCssClass(): string | string[] | Set<string> | {
232
251
  [key: string]: any;
233
252
  };
234
253
  /**
@@ -236,7 +255,10 @@ declare class ProgressBarComponent extends ProgressBarBase {
236
255
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/appearance)).
237
256
  * Supports the type of values that [`ngStyle`](link:site.data.urls.angular['ngstyleapi']) supports.
238
257
  */
239
- emptyCssStyle: {
258
+ set emptyCssStyle(value: {
259
+ [key: string]: string;
260
+ });
261
+ get emptyCssStyle(): {
240
262
  [key: string]: string;
241
263
  };
242
264
  /**
@@ -244,14 +266,24 @@ declare class ProgressBarComponent extends ProgressBarBase {
244
266
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/progressbar/appearance)).
245
267
  * Supports the type of values that [`ngClass`](link:site.data.urls.angular['ngclassapi']) supports.
246
268
  */
247
- emptyCssClass: string | string[] | Set<string> | {
269
+ set emptyCssClass(value: string | string[] | Set<string> | {
270
+ [key: string]: any;
271
+ });
272
+ get emptyCssClass(): string | string[] | Set<string> | {
248
273
  [key: string]: any;
249
274
  };
250
275
  /**
251
276
  * The animation configuration of the ProgressBar.
252
277
  * @default false
253
278
  */
254
- animation: boolean | ProgressBarAnimation;
279
+ set animation(value: boolean | ProgressBarAnimation);
280
+ get animation(): boolean | ProgressBarAnimation;
281
+ /**
282
+ * The maximum value of the ProgressBar.
283
+ * Defaults to `100`.
284
+ */
285
+ set max(v: number);
286
+ get max(): number;
255
287
  /**
256
288
  * Fires when the animation which indicates the latest value change completes.
257
289
  */
@@ -285,15 +317,20 @@ declare class ProgressBarComponent extends ProgressBarBase {
285
317
  private animationFrame;
286
318
  private cancelCurrentAnimation;
287
319
  private isAnimationInProgress;
288
- private previousMax;
320
+ private _previousMax;
321
+ private _valueEffectInitialized;
322
+ private readonly _label;
323
+ private readonly _progressCssStyle;
324
+ private readonly _progressCssClass;
325
+ private readonly _emptyCssStyle;
326
+ private readonly _emptyCssClass;
327
+ private readonly _animation;
328
+ private readonly valueChangeEffect;
329
+ private readonly animationStopEffect;
289
330
  /**
290
331
  * @hidden
291
332
  */
292
333
  constructor(localization: LocalizationService, elem: ElementRef, renderer: Renderer2, zone: NgZone);
293
- /**
294
- * @hidden
295
- */
296
- ngOnChanges(changes: SimpleChanges): void;
297
334
  /**
298
335
  * @hidden
299
336
  */
@@ -311,7 +348,7 @@ declare class ProgressBarComponent extends ProgressBarBase {
311
348
  private renderValueChange;
312
349
  private resetProgress;
313
350
  static ɵfac: i0.ɵɵFactoryDeclaration<ProgressBarComponent, never>;
314
- static ɵcmp: i0.ɵɵComponentDeclaration<ProgressBarComponent, "kendo-progressbar", ["kendoProgressBar"], { "label": { "alias": "label"; "required": false; }; "progressCssStyle": { "alias": "progressCssStyle"; "required": false; }; "progressCssClass": { "alias": "progressCssClass"; "required": false; }; "emptyCssStyle": { "alias": "emptyCssStyle"; "required": false; }; "emptyCssClass": { "alias": "emptyCssClass"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; }, { "animationEnd": "animationEnd"; }, never, never, true, never>;
351
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProgressBarComponent, "kendo-progressbar", ["kendoProgressBar"], { "label": { "alias": "label"; "required": false; }; "progressCssStyle": { "alias": "progressCssStyle"; "required": false; }; "progressCssClass": { "alias": "progressCssClass"; "required": false; }; "emptyCssStyle": { "alias": "emptyCssStyle"; "required": false; }; "emptyCssClass": { "alias": "emptyCssClass"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; "max": { "alias": "max"; "required": false; }; }, { "animationEnd": "animationEnd"; }, never, never, true, never>;
315
352
  }
316
353
 
317
354
  /**
@@ -348,7 +385,8 @@ declare class ChunkProgressBarComponent extends ProgressBarBase {
348
385
  *
349
386
  * @default 5
350
387
  */
351
- chunkCount: number;
388
+ set chunkCount(value: number);
389
+ get chunkCount(): number;
352
390
  /**
353
391
  * @hidden
354
392
  */
@@ -357,28 +395,40 @@ declare class ChunkProgressBarComponent extends ProgressBarBase {
357
395
  * Sets the CSS styles that will be rendered on the full chunk elements ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/circularprogressbar/appearance)).
358
396
  * Supports the type of values that [`ngStyle`](link:site.data.urls.angular['ngstyleapi']) supports.
359
397
  */
360
- progressCssStyle: {
398
+ set progressCssStyle(value: {
399
+ [key: string]: any;
400
+ });
401
+ get progressCssStyle(): {
361
402
  [key: string]: any;
362
403
  };
363
404
  /**
364
405
  * Sets the CSS classes that will be rendered on the full chunk elements ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/circularprogressbar/appearance)).
365
406
  * Supports the type of values that [`ngClass`](link:site.data.urls.angular['ngclassapi']) supports.
366
407
  */
367
- progressCssClass: string | string[] | Set<string> | {
408
+ set progressCssClass(value: string | string[] | Set<string> | {
409
+ [key: string]: string;
410
+ });
411
+ get progressCssClass(): string | string[] | Set<string> | {
368
412
  [key: string]: string;
369
413
  };
370
414
  /**
371
415
  * Sets the CSS styles that will be rendered on the empty chunk elements ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/circularprogressbar/appearance)).
372
416
  * Supports the type of values that [`ngStyle`](link:site.data.urls.angular['ngstyleapi']) supports.
373
417
  */
374
- emptyCssStyle: {
418
+ set emptyCssStyle(value: {
419
+ [key: string]: string;
420
+ });
421
+ get emptyCssStyle(): {
375
422
  [key: string]: string;
376
423
  };
377
424
  /**
378
425
  * Sets the CSS classes that will be rendered on the empty chunk elements ([see example](https://www.telerik.com/kendo-angular-ui/components/progressbars/circularprogressbar/appearance)).
379
426
  * Supports the type of values that [`ngClass`](link:site.data.urls.angular['ngclassapi']) supports.
380
427
  */
381
- emptyCssClass: string | string[] | Set<string> | {
428
+ set emptyCssClass(value: string | string[] | Set<string> | {
429
+ [key: string]: any;
430
+ });
431
+ get emptyCssClass(): string | string[] | Set<string> | {
382
432
  [key: string]: any;
383
433
  };
384
434
  /**
@@ -392,6 +442,11 @@ declare class ChunkProgressBarComponent extends ProgressBarBase {
392
442
  width: string;
393
443
  height: string;
394
444
  };
445
+ private readonly _chunkCount;
446
+ private readonly _progressCssStyle;
447
+ private readonly _progressCssClass;
448
+ private readonly _emptyCssStyle;
449
+ private readonly _emptyCssClass;
395
450
  private _orientationStyles;
396
451
  /**
397
452
  * @hidden
@@ -478,12 +533,11 @@ interface ProgressColor {
478
533
  * @remarks
479
534
  * Supported children components are: {@link ProgressBarCustomMessagesComponent}
480
535
  */
481
- declare class CircularProgressBarComponent implements AfterViewInit, OnChanges, OnDestroy {
536
+ declare class CircularProgressBarComponent implements AfterViewInit, OnDestroy {
482
537
  private renderer;
483
- private cdr;
484
538
  private localization;
485
539
  private element;
486
- private zone;
540
+ private injector;
487
541
  hostClasses: boolean;
488
542
  get ariaMinAttribute(): string;
489
543
  get ariaMaxAttribute(): string;
@@ -515,13 +569,15 @@ declare class CircularProgressBarComponent implements AfterViewInit, OnChanges,
515
569
  *
516
570
  * @default false
517
571
  */
518
- animation: boolean;
572
+ set animation(value: boolean);
573
+ get animation(): boolean;
519
574
  /**
520
575
  * Sets the opacity of the value arc.
521
576
  *
522
577
  * @default 1
523
578
  */
524
- opacity: number;
579
+ set opacity(value: number);
580
+ get opacity(): number;
525
581
  /**
526
582
  * Puts the Circular ProgressBar in indeterminate state.
527
583
  *
@@ -532,7 +588,8 @@ declare class CircularProgressBarComponent implements AfterViewInit, OnChanges,
532
588
  /**
533
589
  * Configures the pointer color. You can set it to a single color string or customize it per progress stages.
534
590
  */
535
- progressColor: string | ProgressColor[];
591
+ set progressColor(value: string | ProgressColor[]);
592
+ get progressColor(): string | ProgressColor[];
536
593
  /**
537
594
  * Fires when the animation that indicates the latest value change completes.
538
595
  */
@@ -542,18 +599,29 @@ declare class CircularProgressBarComponent implements AfterViewInit, OnChanges,
542
599
  labelElement: ElementRef;
543
600
  surface: ElementRef;
544
601
  centerTemplate: CircularProgressbarCenterTemplateDirective;
545
- centerTemplateContext: CenterTemplateContext;
546
- private _indeterminate;
547
- private _max;
548
- private _min;
549
- private _value;
602
+ /**
603
+ * @hidden
604
+ */
605
+ get centerTemplateContext(): CenterTemplateContext;
550
606
  private previousValue;
551
607
  private internalValue;
552
608
  private rtl;
553
- private subscriptions;
554
- constructor(renderer: Renderer2, cdr: ChangeDetectorRef, localization: LocalizationService, element: ElementRef, zone: NgZone);
609
+ private readonly subscriptions;
610
+ private readonly _value;
611
+ private readonly _max;
612
+ private readonly _min;
613
+ private readonly _animation;
614
+ private readonly _opacity;
615
+ private readonly _indeterminate;
616
+ private readonly _progressColor;
617
+ private _centerTemplateContext;
618
+ private _valueEffectInitialized;
619
+ private readonly valueChangeEffect;
620
+ private readonly opacityEffect;
621
+ private _indeterminateEffectInitialized;
622
+ private readonly indeterminateEffect;
623
+ constructor(renderer: Renderer2, localization: LocalizationService, element: ElementRef, injector: Injector);
555
624
  ngAfterViewInit(): void;
556
- ngOnChanges(changes: SimpleChanges): void;
557
625
  ngOnDestroy(): void;
558
626
  /**
559
627
  * @hidden
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1783688456,
11
- "version": "25.0.0-develop.2",
10
+ "publishDate": 1783940090,
11
+ "version": "25.0.0-develop.4",
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-progressbar",
3
- "version": "25.0.0-develop.2",
3
+ "version": "25.0.0-develop.4",
4
4
  "description": "Kendo UI Angular component starter template",
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": 1783688456,
22
+ "publishDate": 1783940090,
23
23
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
24
24
  }
25
25
  },
@@ -29,13 +29,13 @@
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.2",
33
- "@progress/kendo-angular-l10n": "25.0.0-develop.2",
32
+ "@progress/kendo-angular-common": "25.0.0-develop.4",
33
+ "@progress/kendo-angular-l10n": "25.0.0-develop.4",
34
34
  "rxjs": "^6.5.3 || ^7.0.0"
35
35
  },
36
36
  "dependencies": {
37
37
  "tslib": "^2.3.1",
38
- "@progress/kendo-angular-schematics": "25.0.0-develop.2"
38
+ "@progress/kendo-angular-schematics": "25.0.0-develop.4"
39
39
  },
40
40
  "schematics": "./schematics/collection.json",
41
41
  "module": "fesm2022/progress-kendo-angular-progressbar.mjs",