igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
1 lines • 36.3 kB
Source Map (JSON)
{"version":3,"file":"igniteui-angular-progressbar.mjs","sources":["../../../projects/igniteui-angular/progressbar/src/progressbar/progressbar.common.ts","../../../projects/igniteui-angular/progressbar/src/progressbar/progressbar.component.ts","../../../projects/igniteui-angular/progressbar/src/progressbar/templates/linear-bar.component.html","../../../projects/igniteui-angular/progressbar/src/progressbar/templates/circular-bar.component.html","../../../projects/igniteui-angular/progressbar/src/progressbar/public_api.ts","../../../projects/igniteui-angular/progressbar/src/progressbar/progressbar.module.ts","../../../projects/igniteui-angular/progressbar/src/igniteui-angular-progressbar.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[igxProgressBarText]',\n standalone: true\n})\nexport class IgxProgressBarTextTemplateDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({\n selector: '[igxProgressBarGradient]',\n standalone: true\n})\nexport class IgxProgressBarGradientDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n Renderer2,\n ViewChild,\n ContentChild,\n AfterContentInit,\n Directive,\n booleanAttribute,\n inject,\n ChangeDetectorRef,\n NgZone,\n} from '@angular/core';\nimport {\n IgxProgressBarTextTemplateDirective,\n IgxProgressBarGradientDirective,\n} from './progressbar.common';\nimport { IBaseEventArgs } from 'igniteui-angular/core';\nconst ONE_PERCENT = 0.01;\nconst MIN_VALUE = 0;\n\nexport const IgxTextAlign = {\n START: 'start',\n CENTER: 'center',\n END: 'end'\n} as const;\nexport type IgxTextAlign = (typeof IgxTextAlign)[keyof typeof IgxTextAlign];\n\nexport const IgxProgressType = {\n ERROR: 'error',\n INFO: 'info',\n WARNING: 'warning',\n SUCCESS: 'success'\n} as const;\nexport type IgxProgressType = (typeof IgxProgressType)[keyof typeof IgxProgressType];\n\nexport interface IChangeProgressEventArgs extends IBaseEventArgs {\n previousValue: number;\n currentValue: number;\n}\nexport const valueInRange = (value: number, max: number, min = 0): number => Math.max(Math.min(value, max), min);\n\n/**\n * @hidden\n */\n@Directive()\nexport abstract class BaseProgressDirective {\n /**\n * An event, which is triggered after progress is changed.\n * ```typescript\n * public progressChange(event) {\n * alert(\"Progress made!\");\n * }\n * //...\n * ```\n * ```html\n * <igx-circular-bar (progressChanged)=\"progressChange($event)\"></igx-circular-bar>\n * <igx-linear-bar (progressChanged)=\"progressChange($event)\"></igx-linear-bar>\n * ```\n */\n @Output()\n public progressChanged = new EventEmitter<IChangeProgressEventArgs>();\n\n /**\n * Sets/Gets progressbar animation duration. By default, it is 2000ms.\n * ```html\n * <igx-linear-bar [animationDuration]=\"3000\"></igx-linear-bar>\n * <igx-circular-bar [animationDuration]=\"3000\"></igx-linear-bar>\n * ```\n */\n @Input()\n public animationDuration = 2000;\n\n protected _contentInit = false;\n protected _indeterminate = false;\n protected _text: string;\n protected _max = 100;\n protected _value = MIN_VALUE;\n protected _animate = true;\n protected _step: number;\n protected _fraction = 0;\n protected _integer = 0;\n protected _cdr = inject(ChangeDetectorRef);\n protected _zone = inject(NgZone);\n\n /**\n * Sets progressbar in indeterminate. By default, it is set to false.\n * ```html\n * <igx-linear-bar [indeterminate]=\"true\"></igx-linear-bar>\n * <igx-circular-bar [indeterminate]=\"true\"></igx-circular-bar>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public set indeterminate(isIndeterminate: boolean) {\n this._indeterminate = isIndeterminate;\n this._resetCounterValues(this._indeterminate); // Use the helper for indeterminate condition\n }\n\n /**\n * Gets the current state of the progress bar:\n * - `true` if in the indeterminate state (no progress value displayed),\n * - `false` if the progress bar shows the actual progress.\n *\n * ```typescript\n * const isIndeterminate = progressBar.indeterminate;\n * ```\n */\n public get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n /**\n * Returns the value which update the progress indicator of the `progress bar`.\n * ```typescript\n * @ViewChild(\"MyProgressBar\")\n * public progressBar: IgxLinearProgressBarComponent | IgxCircularBarComponent;\n * public stepValue(event) {\n * let step = this.progressBar.step;\n * alert(step);\n * }\n * ```\n */\n @Input()\n public get step(): number {\n if (this._step) {\n return this._step;\n }\n return this._max * ONE_PERCENT;\n }\n\n /**\n * Sets the value by which progress indicator is updated. By default, it is 1.\n * ```html\n * <igx-linear-bar [step]=\"1\"></igx-linear-bar>\n * <igx-circular-bar [step]=\"1\"></igx-circular-bar>\n * ```\n */\n public set step(val: number) {\n const step = Number(val);\n if (step > this.max) {\n return;\n }\n\n this._step = step;\n }\n\n\n /**\n * Set a custom text. This will hide the counter value.\n * ```html\n * <igx-circular-bar text=\"my text\"></igx-circular-bar>\n * ```\n */\n @Input()\n public set text(value: string) {\n this._text = value;\n this._resetCounterValues(!!this._text); // Use the helper for text condition\n }\n\n /**\n * Gets a custom text.\n * ```typescript\n * let text = this.circularBar.text;\n * ```\n */\n public get text(): string {\n return this._text;\n }\n\n /**\n * Animating the progress. By default, it is set to true.\n * ```html\n * <igx-linear-bar [animate]=\"false\"></igx-linear-bar>\n * <igx-circular-bar [animate]=\"false\"></igx-circular-bar>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public set animate(animate: boolean) {\n this._animate = animate;\n }\n\n /**\n * Returns whether the `progress bar` has animation true/false.\n * ```typescript\n * @ViewChild(\"MyProgressBar\")\n * public progressBar: IgxLinearProgressBarComponent | IgxCircularBarComponent;\n * public animationStatus(event) {\n * let animationStatus = this.progressBar.animate;\n * alert(animationStatus);\n * }\n * ```\n */\n public get animate(): boolean {\n return this._animate;\n }\n\n /**\n * Set maximum value that can be passed. By default it is set to 100.\n * ```html\n * <igx-linear-bar [max]=\"200\"></igx-linear-bar>\n * <igx-circular-bar [max]=\"200\"></igx-circular-bar>\n * ```\n */\n @HostBinding('attr.aria-valuemax')\n @Input()\n public set max(maxNum: number) {\n // Ignore invalid or unchanged max\n if (maxNum < MIN_VALUE || this._max === maxNum) {\n return;\n }\n\n this._max = maxNum;\n\n // Revalidate current value\n this._value = valueInRange(this._value, this._max);\n\n // Refresh CSS variables\n this._updateProgressValues();\n }\n\n /**\n * Returns the maximum progress value of the `progress bar`.\n * ```typescript\n * @ViewChild(\"MyProgressBar\")\n * public progressBar: IgxLinearProgressBarComponent | IgxCircularBarComponent;\n * public maxValue(event) {\n * let max = this.progressBar.max;\n * alert(max);\n * }\n * ```\n */\n public get max() {\n return this._max;\n }\n\n @HostBinding('style.--_progress-integer')\n private get progressInteger() {\n return this._integer.toString();\n }\n\n @HostBinding('style.--_progress-fraction')\n private get progressFraction() {\n return this._fraction.toString();\n }\n\n @HostBinding('style.--_progress-whole')\n private get progressWhole() {\n return this.valueInPercent.toFixed(2);\n }\n\n @HostBinding('style.--_transition-duration')\n private get transitionDuration() {\n return `${this.animationDuration}ms`;\n }\n\n /**\n * @hidden\n */\n protected get hasFraction(): boolean {\n const percentage = this.valueInPercent;\n const integerPart = Math.floor(percentage);\n const fractionalPart = percentage - integerPart;\n\n return fractionalPart > 0;\n }\n\n /**\n * Returns the `IgxLinearProgressBarComponent`/`IgxCircularProgressBarComponent` value in percentage.\n * ```typescript\n * @ViewChild(\"MyProgressBar\")\n * public progressBar: IgxLinearProgressBarComponent / IgxCircularProgressBarComponent\n * public valuePercent(event){\n * let percentValue = this.progressBar.valueInPercent;\n * alert(percentValue);\n * }\n * ```\n */\n public get valueInPercent(): number {\n const result = this.max > 0 ? (this._value / this.max) * 100 : 0;\n return Math.round(result * 100) / 100; // Round to two decimal places\n }\n\n /**\n * Returns value that indicates the current `IgxLinearProgressBarComponent`/`IgxCircularProgressBarComponent` position.\n * ```typescript\n * @ViewChild(\"MyProgressBar\")\n * public progressBar: IgxLinearProgressBarComponent / IgxCircularProgressBarComponent;\n * public getValue(event) {\n * let value = this.progressBar.value;\n * alert(value);\n * }\n * ```\n */\n @HostBinding('attr.aria-valuenow')\n @Input()\n public get value(): number {\n return this._value;\n }\n\n /**\n * @hidden\n */\n protected _updateProgressValues(): void {\n const percentage = this.valueInPercent;\n const integerPart = Math.floor(percentage);\n const fractionalPart = Math.round((percentage % 1) * 100);\n\n this._integer = integerPart;\n this._fraction = fractionalPart;\n }\n\n private _resetCounterValues(condition: boolean) {\n if (condition) {\n this._integer = 0;\n this._fraction = 0;\n } else {\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n this._updateProgressValues();\n this._cdr.markForCheck();\n });\n });\n }\n }\n\n /**\n * Set value that indicates the current `IgxLinearProgressBarComponent / IgxCircularProgressBarComponent` position.\n * ```html\n * <igx-linear-bar [value]=\"50\"></igx-linear-bar>\n * <igx-circular-bar [value]=\"50\"></igx-circular-bar>\n * ```\n */\n public set value(val) {\n const valInRange = valueInRange(val, this.max); // Ensure value is in range\n\n // Avoid redundant updates\n if (isNaN(valInRange) || this._value === valInRange) {\n return;\n }\n\n const previousValue = this._value;\n\n // Update internal value\n this._value = valInRange;\n\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n this._updateProgressValues();\n this._cdr.markForCheck();\n });\n });\n\n // Emit the progressChanged event\n this.progressChanged.emit({\n previousValue,\n currentValue: this._value,\n });\n }\n}\nlet NEXT_LINEAR_ID = 0;\nlet NEXT_CIRCULAR_ID = 0;\nlet NEXT_GRADIENT_ID = 0;\n@Component({\n selector: 'igx-linear-bar',\n templateUrl: 'templates/linear-bar.component.html',\n imports: [NgClass]\n})\nexport class IgxLinearProgressBarComponent extends BaseProgressDirective implements AfterContentInit {\n @HostBinding('attr.aria-valuemin')\n public valueMin = 0;\n\n @HostBinding('class.igx-linear-bar')\n public cssClass = 'igx-linear-bar';\n\n /**\n * Set `IgxLinearProgressBarComponent` to have striped style. By default it is set to false.\n * ```html\n * <igx-linear-bar [striped]=\"true\" [max]=\"200\" [value]=\"50\"></igx-linear-bar>\n * ```\n */\n @HostBinding('class.igx-linear-bar--striped')\n @Input({ transform: booleanAttribute })\n public striped = false;\n\n /**\n * @hidden\n * ```\n */\n @HostBinding('class.igx-linear-bar--indeterminate')\n public get isIndeterminate() {\n return this.indeterminate;\n }\n\n /**\n * Sets the value of the `role` attribute. If not provided it will be automatically set to `progressbar`.\n * ```html\n * <igx-linear-bar role=\"progressbar\"></igx-linear-bar>\n * ```\n */\n @HostBinding('attr.role')\n @Input()\n public role = 'progressbar';\n\n /**\n * Sets the value of `id` attribute. If not provided it will be automatically generated.\n * ```html\n * <igx-linear-bar [id]=\"'igx-linear-bar-55'\" [striped]=\"true\" [max]=\"200\" [value]=\"50\"></igx-linear-bar>\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-linear-bar-${NEXT_LINEAR_ID++}`;\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-linear-bar--animation-none')\n public get disableAnimationClass(): boolean {\n return !this._animate;\n }\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-linear-bar--hide-counter')\n public get hasText(): boolean {\n return !!this.text;\n }\n\n /**\n * Set the position that defines where the text is aligned.\n * Possible options - `IgxTextAlign.START` (default), `IgxTextAlign.CENTER`, `IgxTextAlign.END`.\n * ```typescript\n * public positionCenter: IgxTextAlign;\n * public ngOnInit() {\n * this.positionCenter = IgxTextAlign.CENTER;\n * }\n * //...\n * ```\n * ```html\n * <igx-linear-bar [textAlign]=\"positionCenter\"></igx-linear-bar>\n * ```\n */\n @Input()\n public textAlign: IgxTextAlign = IgxTextAlign.START;\n\n /**\n * Set the text to be visible. By default, it is set to true.\n * ```html\n * <igx-linear-bar [textVisibility]=\"false\"></igx-linear-bar>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public textVisibility = true;\n\n /**\n * Set the position that defines if the text should be aligned above the progress line. By default, is set to false.\n * ```html\n * <igx-linear-bar [textTop]=\"true\"></igx-linear-bar>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public textTop = false;\n\n /**\n * Set type of the `IgxLinearProgressBarComponent`. Possible options - `default`, `success`, `info`, `warning`, and `error`.\n * ```html\n * <igx-linear-bar [type]=\"'error'\"></igx-linear-bar>\n * ```\n */\n @Input()\n public type = 'default';\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-linear-bar--danger')\n public get error() {\n return this.type === IgxProgressType.ERROR;\n }\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-linear-bar--info')\n public get info() {\n return this.type === IgxProgressType.INFO;\n }\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-linear-bar--warning')\n public get warning() {\n return this.type === IgxProgressType.WARNING;\n }\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-linear-bar--success')\n public get success() {\n return this.type === IgxProgressType.SUCCESS;\n }\n\n public ngAfterContentInit() {\n this._contentInit = true;\n }\n}\n\n@Component({\n selector: 'igx-circular-bar',\n templateUrl: 'templates/circular-bar.component.html',\n imports: [NgTemplateOutlet, NgClass]\n})\nexport class IgxCircularProgressBarComponent extends BaseProgressDirective implements AfterContentInit {\n private renderer = inject(Renderer2);\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-circular-bar')\n public cssClass = 'igx-circular-bar';\n\n /**\n * Sets the value of `id` attribute. If not provided it will be automatically generated.\n * ```html\n * <igx-circular-bar [id]=\"'igx-circular-bar-55'\"></igx-circular-bar>\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-circular-bar-${NEXT_CIRCULAR_ID++}`;\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-circular-bar--indeterminate')\n public get isIndeterminate() {\n return this.indeterminate;\n }\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-circular-bar--animation-none')\n public get disableAnimationClass(): boolean {\n return !this._animate;\n }\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-circular-bar--hide-counter')\n public get hasText(): boolean {\n return !!this.text;\n }\n\n /**\n * Sets the text visibility. By default, it is set to true.\n * ```html\n * <igx-circular-bar [textVisibility]=\"false\"></igx-circular-bar>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public textVisibility = true;\n\n @ContentChild(IgxProgressBarTextTemplateDirective, { read: IgxProgressBarTextTemplateDirective })\n public textTemplate: IgxProgressBarTextTemplateDirective;\n\n @ContentChild(IgxProgressBarGradientDirective, { read: IgxProgressBarGradientDirective })\n public gradientTemplate: IgxProgressBarGradientDirective;\n\n @ViewChild('circle', { static: true })\n private _svgCircle: ElementRef;\n\n /**\n * @hidden\n */\n public gradientId = `igx-circular-gradient-${NEXT_GRADIENT_ID++}`;\n\n /**\n * @hidden\n */\n public get context(): any {\n return {\n $implicit: { value: this.value, valueInPercent: this.valueInPercent, max: this.max }\n };\n }\n\n /**\n * @hidden\n */\n public get textContent(): string {\n return this.text;\n }\n\n /**\n * Set type of the `IgxCircularProgressBarComponent`. Possible options - `default`, `success`, `info`, `warning`, and `error`.\n * ```html\n * <igx-circular-bar [type]=\"'error'\"></igx-circular-bar>\n * ```\n */\n @Input()\n public type = 'default';\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-circular-bar--danger')\n public get error() {\n return this.type === IgxProgressType.ERROR;\n }\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-circular-bar--info')\n public get info() {\n return this.type === IgxProgressType.INFO;\n }\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-circular-bar--warning')\n public get warning() {\n return this.type === IgxProgressType.WARNING;\n }\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-circular-bar--success')\n public get success() {\n return this.type === IgxProgressType.SUCCESS;\n }\n\n /**\n * @hidden\n */\n @HostBinding('style.stroke')\n public get strokeStyle() {\n return this.type === 'default' ? `url(#${this.gradientId})` : 'none';\n }\n\n public ngAfterContentInit() {\n this._contentInit = true;\n }\n\n}\n","\n <div class=\"igx-linear-bar__base\">\n <div class=\"igx-linear-bar__indicator\"></div>\n <div class=\"igx-linear-bar__indicator-secondary\"></div>\n </div>\n\n <span\n class=\"igx-linear-bar__value\"\n [ngClass]=\"{\n 'igx-linear-bar__value--start': textAlign === 'start',\n 'igx-linear-bar__value--center': textAlign === 'center',\n 'igx-linear-bar__value--end': textAlign === 'end',\n 'igx-linear-bar__value--top': textTop,\n 'igx-linear-bar__value--hidden': !textVisibility,\n 'igx-linear-bar__value--fraction': hasFraction\n }\">\n {{text}}\n </span>\n\n","<svg #svg\n role=\"progressbar\"\n aria-valuemin=\"0\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"value\">\n <svg:circle class=\"igx-circular-bar__inner\" />\n <svg:circle #circle class=\"igx-circular-bar__outer\"/>\n\n <svg:defs>\n <ng-container\n *ngTemplateOutlet=\"gradientTemplate ? gradientTemplate.template : defaultGradientTemplate;\n context: { $implicit: gradientId }\">\n </ng-container>\n </svg:defs>\n\n <ng-template #defaultGradientTemplate>\n <svg:linearGradient [id]=\"gradientId\" gradientTransform=\"rotate(90)\">\n <stop offset=\"0%\" class=\"igx-circular-bar__gradient-start\" />\n <stop offset=\"100%\" class=\"igx-circular-bar__gradient-end\" />\n </svg:linearGradient>\n </ng-template>\n</svg>\n\n@if (textVisibility) {\n <span class=\"igx-circular-bar__text\" [ngClass]=\"hasFraction ? 'igx-circular-bar__value--fraction' : ''\">\n <ng-container *ngTemplateOutlet=\"textTemplate ? textTemplate.template : defaultTextTemplate;\n context: context\">\n </ng-container>\n </span>\n}\n\n<ng-template #defaultTextTemplate>\n {{textContent}}\n</ng-template>\n\n\n","import { IgxProgressBarGradientDirective, IgxProgressBarTextTemplateDirective } from './progressbar.common';\nimport { IgxCircularProgressBarComponent, IgxLinearProgressBarComponent } from './progressbar.component';\n\nexport * from './progressbar.common';\nexport {\n IgxTextAlign,\n IgxProgressType,\n IChangeProgressEventArgs,\n IgxLinearProgressBarComponent,\n IgxCircularProgressBarComponent\n} from './progressbar.component';\n\n/* NOTE: Progress bar (linear and circular) directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_PROGRESS_BAR_DIRECTIVES = [\n IgxLinearProgressBarComponent,\n IgxCircularProgressBarComponent,\n IgxProgressBarTextTemplateDirective,\n IgxProgressBarGradientDirective\n] as const;\n\n/* NOTE: Linear progress bar directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_LINEAR_PROGRESS_BAR_DIRECTIVES = [\n IgxLinearProgressBarComponent,\n IgxProgressBarGradientDirective\n] as const;\n\n/* NOTE: Circular progress bar directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_CIRCULAR_PROGRESS_BAR_DIRECTIVES = [\n IgxCircularProgressBarComponent,\n IgxProgressBarTextTemplateDirective,\n IgxProgressBarGradientDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_PROGRESS_BAR_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_PROGRESS_BAR_DIRECTIVES\n ],\n exports: [\n ...IGX_PROGRESS_BAR_DIRECTIVES\n ]\n})\nexport class IgxProgressBarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxLinearProgressBarComponent","i1.IgxCircularProgressBarComponent","i2.IgxProgressBarTextTemplateDirective","i2.IgxProgressBarGradientDirective"],"mappings":"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"}