@datarailsshared/datarailsshared 1.6.371 → 1.6.373

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.
@@ -25,7 +25,10 @@ function DrProgressBarComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
25
25
  const _c0 = ["*"];
26
26
  export class DrProgressBarComponent {
27
27
  constructor() {
28
- this.roundProgress = false;
28
+ /**
29
+ * Integer number of decimal places for progressPercent (0-100, default: 2)
30
+ */
31
+ this.progressPrecision = 2;
29
32
  /**
30
33
  * Option to hide value label
31
34
  */
@@ -77,14 +80,22 @@ export class DrProgressBarComponent {
77
80
  if (this.total <= 0) {
78
81
  return 0;
79
82
  }
80
- return this.clampProgress((this.progress / this.total) * 100);
83
+ const raw = (this.progress / this.total) * 100;
84
+ const clamped = this.clampProgress(raw);
85
+ const precision = Math.min(100, Math.max(0, Math.floor(this.progressPrecision)));
86
+ if (precision === 0) {
87
+ return Math.round(clamped);
88
+ }
89
+ if (Number.isInteger(clamped)) {
90
+ return clamped;
91
+ }
92
+ return Number(clamped.toFixed(precision));
81
93
  }
82
94
  clampProgress(value) {
83
95
  if (Number.isNaN(value)) {
84
96
  return 0;
85
97
  }
86
- const clampedValue = Math.min(100, Math.max(0, value));
87
- return this.roundProgress ? Math.round(clampedValue) : clampedValue;
98
+ return Math.min(100, Math.max(0, value));
88
99
  }
89
100
  clampNonNegativeNumber(value, fallbackValue) {
90
101
  const numericValue = typeof value === 'number' ? value : Number(value);
@@ -102,7 +113,7 @@ export class DrProgressBarComponent {
102
113
  } }, hostVars: 7, hostBindings: function DrProgressBarComponent_HostBindings(rf, ctx) { if (rf & 2) {
103
114
  i0.ɵɵattribute("role", ctx.role)("aria-valuemin", ctx.ariaValueMin)("aria-valuemax", ctx.ariaValueMax)("aria-valuenow", ctx.ariaValueNow)("aria-label", ctx.ariaLabel);
104
115
  i0.ɵɵclassMap(ctx.theme);
105
- } }, inputs: { progress: "progress", total: "total", roundProgress: "roundProgress", showValue: "showValue", theme: "theme", customAriaLabel: ["aria-label", "customAriaLabel"] }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 7, vars: 3, consts: [["aria-hidden", "true", 1, "progress-bar__background"], [1, "progress-bar__background__fill"], ["aria-hidden", "true", 1, "progress-bar__value"], [4, "ngIf"], ["defaultValueTemplate", ""], [4, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function DrProgressBarComponent_Template(rf, ctx) { if (rf & 1) {
116
+ } }, inputs: { progress: "progress", total: "total", progressPrecision: "progressPrecision", showValue: "showValue", theme: "theme", customAriaLabel: ["aria-label", "customAriaLabel"] }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 7, vars: 3, consts: [["aria-hidden", "true", 1, "progress-bar__background"], [1, "progress-bar__background__fill"], ["aria-hidden", "true", 1, "progress-bar__value"], [4, "ngIf"], ["defaultValueTemplate", ""], [4, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function DrProgressBarComponent_Template(rf, ctx) { if (rf & 1) {
106
117
  i0.ɵɵprojectionDef();
107
118
  i0.ɵɵelementStart(0, "div", 0);
108
119
  i0.ɵɵelement(1, "div", 1);
@@ -126,7 +137,7 @@ export class DrProgressBarComponent {
126
137
  type: Input
127
138
  }], total: [{
128
139
  type: Input
129
- }], roundProgress: [{
140
+ }], progressPrecision: [{
130
141
  type: Input
131
142
  }], customValueTemplate: [{
132
143
  type: ContentChild,
@@ -157,4 +168,4 @@ export class DrProgressBarComponent {
157
168
  type: HostBinding,
158
169
  args: ['attr.aria-label']
159
170
  }] }); })();
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXByb2dyZXNzLWJhci9kci1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItcHJvZ3Jlc3MtYmFyL2RyLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7SUNLdkMsd0JBQ2tIOzs7SUFGdEgsNkJBQWdDO0lBQzVCLHdHQUNrSDtJQUN0SCwwQkFBZTs7Ozs7SUFETixlQUErRDtJQUEvRCwySEFBK0Qsd0RBQUE7OztJQUdILFlBQXNCOzs7SUFBdEIsa0RBQXNCOzs7QURPL0YsTUFBTSxPQUFPLHNCQUFzQjtJQVBuQztRQTRCSSxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUt0Qjs7V0FFRztRQUVILGNBQVMsR0FBRyxJQUFJLENBQUM7UUFJakIsVUFBSyxHQUFzQixPQUFPLENBQUM7UUFTMUIsU0FBSSxHQUFHLGFBQWEsQ0FBQztRQUdyQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQTBEbEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsV0FBTSxHQUFHLEdBQUcsQ0FBQztLQUN4QjtJQXpHRzs7T0FFRztJQUNILElBQ0ksUUFBUSxDQUFDLEtBQXlCO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0QsSUFB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LGtEQUFxQztZQUlsRSxlQUFlO1lBQWYsb0NBQWU7NEJEVXBCLFlBQVk7O3VGQUViLHNCQUFzQjtjQVBsQyxTQUFTOzJCQUNJLGlCQUFpQixjQUdmLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQztnQkFPbkIsUUFBUTtrQkFEWCxLQUFLO1lBU0YsS0FBSztrQkFEUixLQUFLO1lBU04sYUFBYTtrQkFEWixLQUFLO1lBSU4sbUJBQW1CO2tCQURsQixZQUFZO21CQUFDLFdBQVc7WUFPekIsU0FBUztrQkFEUixLQUFLO1lBS04sS0FBSztrQkFGSixLQUFLOztrQkFDTCxXQUFXO21CQUFDLE9BQU87WUFPcEIsZUFBZTtrQkFEZCxLQUFLO21CQUFDLFlBQVk7WUFJVixJQUFJO2tCQURaLFdBQVc7bUJBQUMsV0FBVztZQUlmLFlBQVk7a0JBRHBCLFdBQVc7bUJBQUMsb0JBQW9CO1lBSTdCLFlBQVk7a0JBRGYsV0FBVzttQkFBQyxvQkFBb0I7WUFNN0IsWUFBWTtrQkFEZixXQUFXO21CQUFDLG9CQUFvQjtZQU03QixTQUFTO2tCQURaLFdBQVc7bUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCB0eXBlIFRQcm9ncmVzc0JhclRoZW1lID0gJ2xpZ2h0JyB8ICdkYXJrJztcbmV4cG9ydCB0eXBlIFRQcm9ncmVzc0JhclZhbHVlVGVtcGxhdGVDb250ZXh0ID0ge1xuICAgIHByb2dyZXNzOiBudW1iZXI7XG4gICAgdG90YWw6IG51bWJlcjtcbiAgICBwcm9ncmVzc1BlcmNlbnQ6IG51bWJlcjtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItcHJvZ3Jlc3MtYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBEclByb2dyZXNzQmFyQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBQcm9ncmVzcyB2YWx1ZSBmcm9tIDAgdG8gdG90YWxcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBwcm9ncmVzcyh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3Jhd1Byb2dyZXNzID0gdGhpcy5jbGFtcE5vbk5lZ2F0aXZlTnVtYmVyKHZhbHVlLCAwKTtcbiAgICB9XG4gICAgZ2V0IHByb2dyZXNzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbih0aGlzLl9yYXdQcm9ncmVzcywgdGhpcy50b3RhbCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgdG90YWwodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl90b3RhbCA9IHRoaXMuY2xhbXBOb25OZWdhdGl2ZU51bWJlcih2YWx1ZSwgMTAwKTtcbiAgICB9XG4gICAgZ2V0IHRvdGFsKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b3RhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHJvdW5kUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgY3VzdG9tVmFsdWVUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPFRQcm9ncmVzc0JhclZhbHVlVGVtcGxhdGVDb250ZXh0PjtcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbiB0byBoaWRlIHZhbHVlIGxhYmVsXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93VmFsdWUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICB0aGVtZTogVFByb2dyZXNzQmFyVGhlbWUgPSAnbGlnaHQnO1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGFjY2Vzc2libGUgbGFiZWwgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAgICovXG4gICAgQElucHV0KCdhcmlhLWxhYmVsJylcbiAgICBjdXN0b21BcmlhTGFiZWw/OiBzdHJpbmc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgcmVhZG9ubHkgcm9sZSA9ICdwcm9ncmVzc2Jhcic7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS12YWx1ZW1pbicpXG4gICAgcmVhZG9ubHkgYXJpYVZhbHVlTWluID0gMDtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbWF4JylcbiAgICBnZXQgYXJpYVZhbHVlTWF4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvdGFsO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbm93JylcbiAgICBnZXQgYXJpYVZhbHVlTm93KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2dyZXNzO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsJylcbiAgICBnZXQgYXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUFyaWFMYWJlbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tQXJpYUxhYmVsXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xce3Byb2dyZXNzXFx9L2csIHRoaXMucHJvZ3Jlc3MudG9TdHJpbmcoKSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFx7dG90YWxcXH0vZywgdGhpcy50b3RhbC50b1N0cmluZygpKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXHtwcm9ncmVzc1BlcmNlbnRcXH0vZywgdGhpcy5wcm9ncmVzc1BlcmNlbnQudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYFByb2dyZXNzOiAke3RoaXMucHJvZ3Jlc3NQZXJjZW50fSUgY29tcGxldGVgO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZVRlbXBsYXRlQ29udGV4dCgpOiBUUHJvZ3Jlc3NCYXJWYWx1ZVRlbXBsYXRlQ29udGV4dCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9ncmVzczogdGhpcy5wcm9ncmVzcyxcbiAgICAgICAgICAgIHRvdGFsOiB0aGlzLnRvdGFsLFxuICAgICAgICAgICAgcHJvZ3Jlc3NQZXJjZW50OiB0aGlzLnByb2dyZXNzUGVyY2VudCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXQgcHJvZ3Jlc3NQZXJjZW50KCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLnRvdGFsIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY2xhbXBQcm9ncmVzcygodGhpcy5wcm9ncmVzcyAvIHRoaXMudG90YWwpICogMTAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsYW1wUHJvZ3Jlc3ModmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsYW1wZWRWYWx1ZSA9IE1hdGgubWluKDEwMCwgTWF0aC5tYXgoMCwgdmFsdWUpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91bmRQcm9ncmVzcyA/IE1hdGgucm91bmQoY2xhbXBlZFZhbHVlKSA6IGNsYW1wZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsYW1wTm9uTmVnYXRpdmVOdW1iZXIodmFsdWU6IHVua25vd24sIGZhbGxiYWNrVmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZSA6IE51bWJlcih2YWx1ZSk7XG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVtZXJpY1ZhbHVlKSB8fCAhTnVtYmVyLmlzRmluaXRlKG51bWVyaWNWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxsYmFja1ZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsIG51bWVyaWNWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmF3UHJvZ3Jlc3MgPSAwO1xuICAgIHByaXZhdGUgX3RvdGFsID0gMTAwO1xufVxuIiwiPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhcl9fYmFja2dyb3VuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXJfX2JhY2tncm91bmRfX2ZpbGxcIiBbc3R5bGUud2lkdGhdPVwicHJvZ3Jlc3NQZXJjZW50ICsgJyUnXCI+PC9kaXY+XG48L2Rpdj5cbjxzcGFuIGNsYXNzPVwicHJvZ3Jlc3MtYmFyX192YWx1ZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1ZhbHVlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tVmFsdWVUZW1wbGF0ZSA/PyBkZWZhdWx0VmFsdWVUZW1wbGF0ZTsgY29udGV4dDogdmFsdWVUZW1wbGF0ZUNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvc3Bhbj5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFZhbHVlVGVtcGxhdGUgbGV0LXByb2dyZXNzUGVyY2VudD1cInByb2dyZXNzUGVyY2VudFwiPnt7IHByb2dyZXNzUGVyY2VudCB9fSU8L25nLXRlbXBsYXRlPlxuIl19
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXByb2dyZXNzLWJhci9kci1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItcHJvZ3Jlc3MtYmFyL2RyLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7SUNLdkMsd0JBQ2tIOzs7SUFGdEgsNkJBQWdDO0lBQzVCLHdHQUNrSDtJQUN0SCwwQkFBZTs7Ozs7SUFETixlQUErRDtJQUEvRCwySEFBK0Qsd0RBQUE7OztJQUdILFlBQXNCOzs7SUFBdEIsa0RBQXNCOzs7QURPL0YsTUFBTSxPQUFPLHNCQUFzQjtJQVBuQztRQTJCSTs7V0FFRztRQUVILHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUt0Qjs7V0FFRztRQUVILGNBQVMsR0FBRyxJQUFJLENBQUM7UUFJakIsVUFBSyxHQUFzQixPQUFPLENBQUM7UUFTMUIsU0FBSSxHQUFHLGFBQWEsQ0FBQztRQUdyQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQWtFbEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsV0FBTSxHQUFHLEdBQUcsQ0FBQztLQUN4QjtJQXBIRzs7T0FFRztJQUNILElBQ0ksUUFBUSxDQUFDLEtBQXlCO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RCxD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Q0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzlELE9BQU8sYUFBYSxDQUFDO1NBQ3hCO1FBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNyQyxDQUFDOzBHQWpIUSxzQkFBc0I7bUdBQXRCLHNCQUFzQjt3Q0EwQmpCLFdBQVc7Ozs7Ozs7OztZQzNDN0IsOEJBQXlEO1lBQ3JELHlCQUF3RjtZQUM1RixpQkFBTTtZQUNOLCtCQUFxRDtZQUNqRCxrQkFBeUI7WUFDekIseUZBR2U7WUFDbkIsaUJBQU87WUFDUCx3SEFBNkc7O1lBVDdELGVBQXFDO1lBQXJDLGtEQUFxQztZQUlsRSxlQUFlO1lBQWYsb0NBQWU7NEJEVXBCLFlBQVk7O3VGQUViLHNCQUFzQjtjQVBsQyxTQUFTOzJCQUNJLGlCQUFpQixjQUdmLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQztnQkFPbkIsUUFBUTtrQkFEWCxLQUFLO1lBU0YsS0FBSztrQkFEUixLQUFLO1lBWU4saUJBQWlCO2tCQURoQixLQUFLO1lBSU4sbUJBQW1CO2tCQURsQixZQUFZO21CQUFDLFdBQVc7WUFPekIsU0FBUztrQkFEUixLQUFLO1lBS04sS0FBSztrQkFGSixLQUFLOztrQkFDTCxXQUFXO21CQUFDLE9BQU87WUFPcEIsZUFBZTtrQkFEZCxLQUFLO21CQUFDLFlBQVk7WUFJVixJQUFJO2tCQURaLFdBQVc7bUJBQUMsV0FBVztZQUlmLFlBQVk7a0JBRHBCLFdBQVc7bUJBQUMsb0JBQW9CO1lBSTdCLFlBQVk7a0JBRGYsV0FBVzttQkFBQyxvQkFBb0I7WUFNN0IsWUFBWTtrQkFEZixXQUFXO21CQUFDLG9CQUFvQjtZQU03QixTQUFTO2tCQURaLFdBQVc7bUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCB0eXBlIFRQcm9ncmVzc0JhclRoZW1lID0gJ2xpZ2h0JyB8ICdkYXJrJztcbmV4cG9ydCB0eXBlIFRQcm9ncmVzc0JhclZhbHVlVGVtcGxhdGVDb250ZXh0ID0ge1xuICAgIHByb2dyZXNzOiBudW1iZXI7XG4gICAgdG90YWw6IG51bWJlcjtcbiAgICBwcm9ncmVzc1BlcmNlbnQ6IG51bWJlcjtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItcHJvZ3Jlc3MtYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBEclByb2dyZXNzQmFyQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBQcm9ncmVzcyB2YWx1ZSBmcm9tIDAgdG8gdG90YWxcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBwcm9ncmVzcyh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3Jhd1Byb2dyZXNzID0gdGhpcy5jbGFtcE5vbk5lZ2F0aXZlTnVtYmVyKHZhbHVlLCAwKTtcbiAgICB9XG4gICAgZ2V0IHByb2dyZXNzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbih0aGlzLl9yYXdQcm9ncmVzcywgdGhpcy50b3RhbCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgdG90YWwodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl90b3RhbCA9IHRoaXMuY2xhbXBOb25OZWdhdGl2ZU51bWJlcih2YWx1ZSwgMTAwKTtcbiAgICB9XG4gICAgZ2V0IHRvdGFsKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b3RhbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnRlZ2VyIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBmb3IgcHJvZ3Jlc3NQZXJjZW50ICgwLTEwMCwgZGVmYXVsdDogMilcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2dyZXNzUHJlY2lzaW9uID0gMjtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgY3VzdG9tVmFsdWVUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPFRQcm9ncmVzc0JhclZhbHVlVGVtcGxhdGVDb250ZXh0PjtcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbiB0byBoaWRlIHZhbHVlIGxhYmVsXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93VmFsdWUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICB0aGVtZTogVFByb2dyZXNzQmFyVGhlbWUgPSAnbGlnaHQnO1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGFjY2Vzc2libGUgbGFiZWwgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAgICovXG4gICAgQElucHV0KCdhcmlhLWxhYmVsJylcbiAgICBjdXN0b21BcmlhTGFiZWw/OiBzdHJpbmc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgcmVhZG9ubHkgcm9sZSA9ICdwcm9ncmVzc2Jhcic7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS12YWx1ZW1pbicpXG4gICAgcmVhZG9ubHkgYXJpYVZhbHVlTWluID0gMDtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbWF4JylcbiAgICBnZXQgYXJpYVZhbHVlTWF4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvdGFsO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbm93JylcbiAgICBnZXQgYXJpYVZhbHVlTm93KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2dyZXNzO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsJylcbiAgICBnZXQgYXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUFyaWFMYWJlbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tQXJpYUxhYmVsXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xce3Byb2dyZXNzXFx9L2csIHRoaXMucHJvZ3Jlc3MudG9TdHJpbmcoKSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFx7dG90YWxcXH0vZywgdGhpcy50b3RhbC50b1N0cmluZygpKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXHtwcm9ncmVzc1BlcmNlbnRcXH0vZywgdGhpcy5wcm9ncmVzc1BlcmNlbnQudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYFByb2dyZXNzOiAke3RoaXMucHJvZ3Jlc3NQZXJjZW50fSUgY29tcGxldGVgO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZVRlbXBsYXRlQ29udGV4dCgpOiBUUHJvZ3Jlc3NCYXJWYWx1ZVRlbXBsYXRlQ29udGV4dCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcm9ncmVzczogdGhpcy5wcm9ncmVzcyxcbiAgICAgICAgICAgIHRvdGFsOiB0aGlzLnRvdGFsLFxuICAgICAgICAgICAgcHJvZ3Jlc3NQZXJjZW50OiB0aGlzLnByb2dyZXNzUGVyY2VudCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXQgcHJvZ3Jlc3NQZXJjZW50KCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLnRvdGFsIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmF3ID0gKHRoaXMucHJvZ3Jlc3MgLyB0aGlzLnRvdGFsKSAqIDEwMDtcbiAgICAgICAgY29uc3QgY2xhbXBlZCA9IHRoaXMuY2xhbXBQcm9ncmVzcyhyYXcpO1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSBNYXRoLm1pbigxMDAsIE1hdGgubWF4KDAsIE1hdGguZmxvb3IodGhpcy5wcm9ncmVzc1ByZWNpc2lvbikpKTtcbiAgICAgICAgaWYgKHByZWNpc2lvbiA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoY2xhbXBlZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE51bWJlci5pc0ludGVnZXIoY2xhbXBlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBjbGFtcGVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBOdW1iZXIoY2xhbXBlZC50b0ZpeGVkKHByZWNpc2lvbikpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xhbXBQcm9ncmVzcyh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKE51bWJlci5pc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE1hdGgubWluKDEwMCwgTWF0aC5tYXgoMCwgdmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsYW1wTm9uTmVnYXRpdmVOdW1iZXIodmFsdWU6IHVua25vd24sIGZhbGxiYWNrVmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZSA6IE51bWJlcih2YWx1ZSk7XG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVtZXJpY1ZhbHVlKSB8fCAhTnVtYmVyLmlzRmluaXRlKG51bWVyaWNWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxsYmFja1ZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsIG51bWVyaWNWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmF3UHJvZ3Jlc3MgPSAwO1xuICAgIHByaXZhdGUgX3RvdGFsID0gMTAwO1xufVxuIiwiPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhcl9fYmFja2dyb3VuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXJfX2JhY2tncm91bmRfX2ZpbGxcIiBbc3R5bGUud2lkdGhdPVwicHJvZ3Jlc3NQZXJjZW50ICsgJyUnXCI+PC9kaXY+XG48L2Rpdj5cbjxzcGFuIGNsYXNzPVwicHJvZ3Jlc3MtYmFyX192YWx1ZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1ZhbHVlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tVmFsdWVUZW1wbGF0ZSA/PyBkZWZhdWx0VmFsdWVUZW1wbGF0ZTsgY29udGV4dDogdmFsdWVUZW1wbGF0ZUNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvc3Bhbj5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFZhbHVlVGVtcGxhdGUgbGV0LXByb2dyZXNzUGVyY2VudD1cInByb2dyZXNzUGVyY2VudFwiPnt7IHByb2dyZXNzUGVyY2VudCB9fSU8L25nLXRlbXBsYXRlPlxuIl19
@@ -15547,7 +15547,10 @@ function DrProgressBarComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
15547
15547
  const _c0$n = ["*"];
15548
15548
  class DrProgressBarComponent {
15549
15549
  constructor() {
15550
- this.roundProgress = false;
15550
+ /**
15551
+ * Integer number of decimal places for progressPercent (0-100, default: 2)
15552
+ */
15553
+ this.progressPrecision = 2;
15551
15554
  /**
15552
15555
  * Option to hide value label
15553
15556
  */
@@ -15599,14 +15602,22 @@ class DrProgressBarComponent {
15599
15602
  if (this.total <= 0) {
15600
15603
  return 0;
15601
15604
  }
15602
- return this.clampProgress((this.progress / this.total) * 100);
15605
+ const raw = (this.progress / this.total) * 100;
15606
+ const clamped = this.clampProgress(raw);
15607
+ const precision = Math.min(100, Math.max(0, Math.floor(this.progressPrecision)));
15608
+ if (precision === 0) {
15609
+ return Math.round(clamped);
15610
+ }
15611
+ if (Number.isInteger(clamped)) {
15612
+ return clamped;
15613
+ }
15614
+ return Number(clamped.toFixed(precision));
15603
15615
  }
15604
15616
  clampProgress(value) {
15605
15617
  if (Number.isNaN(value)) {
15606
15618
  return 0;
15607
15619
  }
15608
- const clampedValue = Math.min(100, Math.max(0, value));
15609
- return this.roundProgress ? Math.round(clampedValue) : clampedValue;
15620
+ return Math.min(100, Math.max(0, value));
15610
15621
  }
15611
15622
  clampNonNegativeNumber(value, fallbackValue) {
15612
15623
  const numericValue = typeof value === 'number' ? value : Number(value);
@@ -15624,7 +15635,7 @@ class DrProgressBarComponent {
15624
15635
  } }, hostVars: 7, hostBindings: function DrProgressBarComponent_HostBindings(rf, ctx) { if (rf & 2) {
15625
15636
  i0.ɵɵattribute("role", ctx.role)("aria-valuemin", ctx.ariaValueMin)("aria-valuemax", ctx.ariaValueMax)("aria-valuenow", ctx.ariaValueNow)("aria-label", ctx.ariaLabel);
15626
15637
  i0.ɵɵclassMap(ctx.theme);
15627
- } }, inputs: { progress: "progress", total: "total", roundProgress: "roundProgress", showValue: "showValue", theme: "theme", customAriaLabel: ["aria-label", "customAriaLabel"] }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c0$n, decls: 7, vars: 3, consts: [["aria-hidden", "true", 1, "progress-bar__background"], [1, "progress-bar__background__fill"], ["aria-hidden", "true", 1, "progress-bar__value"], [4, "ngIf"], ["defaultValueTemplate", ""], [4, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function DrProgressBarComponent_Template(rf, ctx) { if (rf & 1) {
15638
+ } }, inputs: { progress: "progress", total: "total", progressPrecision: "progressPrecision", showValue: "showValue", theme: "theme", customAriaLabel: ["aria-label", "customAriaLabel"] }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c0$n, decls: 7, vars: 3, consts: [["aria-hidden", "true", 1, "progress-bar__background"], [1, "progress-bar__background__fill"], ["aria-hidden", "true", 1, "progress-bar__value"], [4, "ngIf"], ["defaultValueTemplate", ""], [4, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function DrProgressBarComponent_Template(rf, ctx) { if (rf & 1) {
15628
15639
  i0.ɵɵprojectionDef();
15629
15640
  i0.ɵɵelementStart(0, "div", 0);
15630
15641
  i0.ɵɵelement(1, "div", 1);
@@ -15648,7 +15659,7 @@ class DrProgressBarComponent {
15648
15659
  type: Input
15649
15660
  }], total: [{
15650
15661
  type: Input
15651
- }], roundProgress: [{
15662
+ }], progressPrecision: [{
15652
15663
  type: Input
15653
15664
  }], customValueTemplate: [{
15654
15665
  type: ContentChild,