@fundamental-ngx/core 0.59.1-rc.21 → 0.59.1-rc.23

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.
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-status-indicator.mjs","sources":["../../../../libs/core/status-indicator/status-indicator.component.ts","../../../../libs/core/status-indicator/status-indicator.component.html","../../../../libs/core/status-indicator/status-indicator.module.ts","../../../../libs/core/status-indicator/fundamental-ngx-core-status-indicator.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { CssClassBuilder, Nullable, applyCssClass } from '@fundamental-ngx/cdk/utils';\n\nexport type StatusIndicatorSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type StatusIndicatorColor = 'negative' | 'critical' | 'positive';\nexport type LablePosition = 'left' | 'right' | 'top' | 'bottom';\nexport type FillingType = 'radial' | 'angled' | 'linearup' | 'lineardown' | 'linearleft';\nexport type FillingDirection = 'clockwise' | 'counterclockwise';\n\nexport class Point {\n /** @hidden */\n constructor(\n public x: number,\n public y: number\n ) {}\n}\n\n@Component({\n selector: 'fd-status-indicator',\n templateUrl: './status-indicator.component.html',\n styleUrl: './status-indicator.component.scss',\n host: {\n '[attr.aria-label]': 'ariaLabel',\n '[attr.aria-roledescription]': 'ariaRoleDescription',\n '[attr.focusable]': 'focusable',\n '[attr.title]': 'title',\n '[attr.role]': 'role',\n '[attr.aria-valuetext]': 'ariaValueText',\n '[attr.aria-valuenow]': 'fillPercentage ? fillPercentage : 0',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': '100',\n '[attr.tabindex]': 'focusable ? 0 : -1'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet]\n})\nexport class StatusIndicatorComponent implements OnChanges, AfterViewInit, CssClassBuilder, OnInit {\n /**\n * value id defines the id of the object.\n */\n @Input()\n id: string;\n\n /**\n * defines the size of the status indicator.\n * Can be one of the following: 'sm' | 'md' | 'lg' | 'xl'\n * Default size is Medium(md).\n */\n @Input()\n size: StatusIndicatorSize = 'md';\n\n /**\n * The status represented by the Status Indicator.\n * Can be one of the following: 'negative' | 'critical' | 'informative'\n * For default Object Status omit this property\n */\n @Input()\n status: StatusIndicatorColor;\n\n /** Define the text content of the Status indicator*/\n @Input()\n statusLabel: string;\n\n /**\n * positioning of the status indicator image within the defined height and width .\n */\n @Input()\n viewBox: string;\n\n /**\n * boolean value to be marked as clickable\n */\n @Input()\n clickable: boolean;\n\n /**\n * defines the size of the status indicator.\n * Can be one of the following: 'sm' | 'md' | 'lg' | 'xl'\n */\n @Input()\n labelSize: StatusIndicatorSize = 'sm';\n\n /** Aria label for the Status Indicator. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria defines role description for the Status Indicator. */\n @Input()\n ariaRoleDescription: Nullable<string>;\n\n /** Aria Focusable for the Status Indicator. */\n @Input()\n focusable: boolean;\n\n /** Aria Role for the Status Indicator. */\n @Input()\n role: Nullable<string>;\n\n /** Aria Value Text for the Status Indicator. */\n @Input()\n ariaValueText: Nullable<string>;\n\n /** Aria title for the status indicator. */\n @Input()\n title: Nullable<string>;\n\n /** defines the label position the value can be 'left' | 'right' | 'top' | 'bottom' */\n @Input()\n labelPosition: LablePosition;\n\n /** Path for the status indicator */\n @Input()\n path: string[];\n\n /**\n * Offset value to be filled under the give percentatge value.\n */\n @Input()\n fillPercentage: number;\n\n /**\n * value to define fill direction\n */\n @Input()\n fillDirection: FillingDirection = 'clockwise';\n\n /** @hidden */\n set _fillDirection(direction: FillingDirection) {\n this.fillDirection = direction;\n }\n get _fillDirection(): FillingDirection {\n return this.fillDirection;\n }\n\n /**\n * FillingType to represent the fill pattern of the component\n */\n @Input()\n fillingType: FillingType = 'lineardown';\n\n /** represent the degree of angle to project the filling of the component */\n @Input()\n angle: number;\n\n /** @hidden */\n fillCalculator: number;\n /** @hidden */\n binaryString: string;\n /** @hidden */\n x1: string;\n /** @hidden */\n y1: string;\n /** @hidden */\n x2: string;\n /** @hidden */\n y2: string;\n /** @hidden */\n pointsArray: string[] = [];\n\n /** @hidden */\n class: string;\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef<HTMLElement>,\n private _cd: ChangeDetectorRef\n ) {}\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-status-indicator',\n this.size ? `fd-status-indicator--${this.size}` : '',\n this.status ? `fd-status-indicator--${this.status}` : '',\n this.clickable ? `fd-status-indicator--link` : '',\n this.labelPosition === 'right' || this.labelPosition === 'left'\n ? `fd-status-indicator--horizontal-label`\n : '',\n this.class\n ];\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._angleCalculation();\n this._cd.detectChanges();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this._calculateFilling();\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n public ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n private _calculateFilling(): void {\n if (this.fillPercentage < 0 || this.fillPercentage === undefined) {\n this.fillCalculator = 0;\n } else {\n this.fillCalculator = (this.fillPercentage * this.path.length) / 100;\n }\n }\n\n /** @hidden */\n private _angleCalculation(): void {\n let sPointsAttributeValue: Array<Point>;\n let polygonPoints: string;\n switch (this.fillingType) {\n case 'angled':\n this.binaryString = this._convertAngleToBinary(this.angle);\n this._assignBinaryValue(this.binaryString);\n break;\n case 'radial': {\n const tempPercent = this.fillCalculator % 1;\n const fillNumber = Number(tempPercent.toFixed(2));\n const element = this.elementRef.nativeElement.querySelectorAll('svg');\n\n for (let i = 1; i < element.length; i++) {\n sPointsAttributeValue = this._getPolygonPointsForCircularFilling(\n fillNumber * 100,\n element[i].getBBox()\n );\n polygonPoints = sPointsAttributeValue.reduce((acc, item) => acc + item.x + ',' + item.y + ' ', '');\n this.pointsArray.push(polygonPoints);\n }\n break;\n }\n case 'linearup':\n this.binaryString = this._convertAngleToBinary(90);\n this._assignBinaryValue(this.binaryString);\n break;\n case 'lineardown':\n this.binaryString = this._convertAngleToBinary(270);\n this._assignBinaryValue(this.binaryString);\n break;\n case 'linearleft':\n this.binaryString = this._convertAngleToBinary(180);\n this._assignBinaryValue(this.binaryString);\n break;\n default:\n throw new Error(`fdStatusIndicator: No fillType found for ${this.fillingType}.`);\n }\n }\n\n /** @hidden */\n private _convertAngleToBinary(angle: number): string {\n if (angle > 0 && angle <= 45) {\n return '1,0,0,1';\n } else if (angle >= 45 && angle < 90) {\n return '0,0,0,1';\n } else if (angle >= 90 && angle < 135) {\n return '0,0,0,1';\n } else if (angle >= 135 && angle < 180) {\n return '0,0,1,1';\n } else if (angle >= 180 && angle < 225) {\n return '0,0,1,0';\n } else if (angle >= 225 && angle < 270) {\n return '0,1,1,0';\n } else if (angle >= 270 && angle < 315) {\n return '0,1,0,0';\n } else if (angle >= 315 && angle < 360) {\n return '1,1,0,0';\n } else if (angle === 0 || angle === 360) {\n return '1,0,0,0';\n } else {\n return 'invalid';\n }\n }\n\n /** @hidden */\n private _assignBinaryValue(binaryString: string): void {\n const binaryValue = binaryString.split(',');\n this.x1 = binaryValue[0];\n this.y1 = binaryValue[1];\n this.x2 = binaryValue[2];\n this.y2 = binaryValue[3];\n }\n\n /** @hidden */\n private _getPolygonPointsForCircularFilling(value: number, boundingBoxSvg: DOMRect): Array<Point> {\n const angle = 3.6 * value;\n const points: Point[] = [];\n let xDifferenceFromBoundaryCentre: number;\n let yDifferenceFromBoundaryCentre: number;\n let polygonPoint: Point;\n\n // starts at 12, the algorithm computes the coordination for clockwise direction only\n // counter clockwise direction is managed by symmetry\n const oStartPoint = new Point(boundingBoxSvg.x + boundingBoxSvg.width / 2, boundingBoxSvg.y);\n const oCentrePoint = new Point(\n boundingBoxSvg.x + boundingBoxSvg.width / 2,\n boundingBoxSvg.y + boundingBoxSvg.height / 2\n );\n\n // Reflects x coordinate by centre point for Counter Clockwise type\n const _adjustIfCounterClockwise = (oPoint: Point): Point => {\n const res = Object.assign({}, oPoint);\n\n if (this._fillDirection === 'counterclockwise') {\n const iXDistanceFromCentre = oPoint.x - oCentrePoint.x;\n res.x = oCentrePoint.x - iXDistanceFromCentre;\n }\n\n return res;\n };\n\n // Boundary centre is given by angle distance from the beginning (0°). The returned difference is related\n // to x or y coordinate depending on boundary centre angle (e.g. 0° -> x, 90° -> y, 180° -> x 270° -> y).\n // Boundary length is length of the corresponding side of bounding box (width for x, height for y).\n const computeDifferenceFromBoundaryCentre = (\n inAngle: number,\n iBoundaryCentreAngle: number,\n iBoundaryLength: number\n ): number => {\n const tan = Math.tan(((iBoundaryCentreAngle - inAngle) * Math.PI) / 180);\n\n return (tan * iBoundaryLength) / 2;\n };\n\n points.push(oStartPoint);\n\n if (0 < angle && angle < 45) {\n xDifferenceFromBoundaryCentre = computeDifferenceFromBoundaryCentre(angle, 0, boundingBoxSvg.height);\n polygonPoint = new Point(oStartPoint.x - xDifferenceFromBoundaryCentre, oStartPoint.y);\n points.push(_adjustIfCounterClockwise(polygonPoint));\n }\n\n if (45 <= angle) {\n points.push(\n _adjustIfCounterClockwise(new Point(boundingBoxSvg.x + boundingBoxSvg.width, boundingBoxSvg.y))\n );\n }\n\n if (45 < angle && angle < 135) {\n yDifferenceFromBoundaryCentre = computeDifferenceFromBoundaryCentre(angle, 90, boundingBoxSvg.width);\n polygonPoint = new Point(\n boundingBoxSvg.x + boundingBoxSvg.width,\n boundingBoxSvg.y + boundingBoxSvg.height / 2 - yDifferenceFromBoundaryCentre\n );\n points.push(_adjustIfCounterClockwise(polygonPoint));\n }\n\n if (135 <= angle) {\n points.push(\n _adjustIfCounterClockwise(\n new Point(boundingBoxSvg.x + boundingBoxSvg.width, boundingBoxSvg.y + boundingBoxSvg.height)\n )\n );\n }\n\n if (135 < angle && angle < 225) {\n xDifferenceFromBoundaryCentre = computeDifferenceFromBoundaryCentre(angle, 180, boundingBoxSvg.height);\n polygonPoint = new Point(\n boundingBoxSvg.x + boundingBoxSvg.width / 2 + xDifferenceFromBoundaryCentre,\n boundingBoxSvg.y + boundingBoxSvg.height\n );\n points.push(_adjustIfCounterClockwise(polygonPoint));\n }\n\n if (225 <= angle) {\n points.push(\n _adjustIfCounterClockwise(new Point(boundingBoxSvg.x, boundingBoxSvg.y + boundingBoxSvg.height))\n );\n }\n\n if (225 < angle && angle < 315) {\n yDifferenceFromBoundaryCentre = computeDifferenceFromBoundaryCentre(angle, 270, boundingBoxSvg.width);\n polygonPoint = new Point(\n boundingBoxSvg.x,\n boundingBoxSvg.y + boundingBoxSvg.height / 2 + yDifferenceFromBoundaryCentre\n );\n points.push(_adjustIfCounterClockwise(polygonPoint));\n }\n\n if (315 <= angle) {\n points.push(_adjustIfCounterClockwise(new Point(boundingBoxSvg.x, boundingBoxSvg.y)));\n }\n\n if (315 < angle && angle <= 360) {\n xDifferenceFromBoundaryCentre = computeDifferenceFromBoundaryCentre(angle, 360, boundingBoxSvg.height);\n polygonPoint = new Point(\n boundingBoxSvg.x + boundingBoxSvg.width / 2 - xDifferenceFromBoundaryCentre,\n boundingBoxSvg.y\n );\n points.push(_adjustIfCounterClockwise(polygonPoint));\n }\n\n points.push(oCentrePoint);\n\n return points;\n }\n}\n","@if (labelPosition === 'left' || labelPosition === 'top') {\n <span\n [class.fd-status-indicator__label--sm]=\"labelSize === 'sm'\"\n [class.fd-status-indicator__label--md]=\"labelSize === 'md'\"\n [class.fd-status-indicator__label--lg]=\"labelSize === 'lg'\"\n [class.fd-status-indicator__label--xl]=\"labelSize === 'xl'\"\n [class.fd-status-indicator__label--top]=\"labelPosition === 'top'\"\n [class.fd-status-indicator__label--left]=\"labelPosition === 'left'\"\n class=\"fd-status-indicator__label\"\n >{{ statusLabel }}\n </span>\n}\n<svg\n [attr.id]=\"id\"\n data-sap-ui=\"__shape0-__box21-24\"\n version=\"1.1\"\n [attr.viewBox]=\"viewBox\"\n xlmns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid meet\"\n class=\"fd-status-indicator__svg\"\n>\n <ng-container [ngTemplateOutlet]=\"svgTemplate\"></ng-container>\n</svg>\n@if (labelPosition === 'right' || labelPosition === 'bottom') {\n <span\n [class.fd-status-indicator__label--sm]=\"labelSize === 'sm'\"\n [class.fd-status-indicator__label--md]=\"labelSize === 'md'\"\n [class.fd-status-indicator__label--lg]=\"labelSize === 'lg'\"\n [class.fd-status-indicator__label--xl]=\"labelSize === 'xl'\"\n [class.fd-status-indicator__label--right]=\"labelPosition === 'right'\"\n [class.fd-status-indicator__label--bottom]=\"labelPosition === 'bottom'\"\n class=\"fd-status-indicator__label\"\n >{{ statusLabel }}\n </span>\n}\n<ng-template #svgTemplate>\n @for (path of path; track path; let i = $index) {\n <svg\n xlmns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid meet\"\n overflow=\"visible\"\n [attr.id]=\"id + i\"\n data-sap-ui=\"id\"\n >\n <defs>\n @if (!(fillCalculator - i > 0 && fillCalculator - i < 1) || fillingType !== 'radial') {\n <linearGradient\n id=\"{{ id + i }}-gradient\"\n [attr.x1]=\"x1\"\n [attr.y1]=\"y1\"\n [attr.x2]=\"x2\"\n [attr.y2]=\"y2\"\n >\n <stop [attr.offset]=\"fillCalculator - i\" stop-color=\"white\">\n <animate\n attributeName=\"offset\"\n attr.values=\"0, {{ fillCalculator - i }}\"\n repeatCount=\"1\"\n dur=\"1s\"\n begin=\"0s\"\n />\n </stop>\n <stop [attr.offset]=\"fillCalculator - i\" stop-color=\"transparent\">\n <animate\n attributeName=\"offset\"\n attr.values=\"0, {{ fillCalculator - i }}\"\n repeatCount=\"1\"\n dur=\"1s\"\n begin=\"0s\"\n />\n </stop>\n </linearGradient>\n }\n <mask #maskTemplate id=\"{{ id + i }}-mask\">\n @if (!(fillCalculator - i > 0 && fillCalculator - i < 1) || fillingType !== 'radial') {\n <path\n id=\"{{ id + i }}-mask-shape\"\n [attr.d]=\"path\"\n stroke-width=\"0\"\n stroke=\"white\"\n attr.fill=\"url(#{{ id + i }}-gradient)\"\n ></path>\n }\n @if (fillingType === 'radial' && fillCalculator - i > 0 && fillCalculator - i < 1) {\n <polygon id=\"{{ id + i }}-mask-shape\" fill=\"white\" [attr.points]=\"pointsArray[i]\"></polygon>\n }\n </mask>\n </defs>\n <path\n id=\"{{ id + i }}-shape\"\n [attr.d]=\"path\"\n stroke-width=\"0\"\n stroke=\"#89919A\"\n attr.mask=\"url(#{{ id + i }}-mask)\"\n ></path>\n <path\n id=\"{{ id + i }}-shape-border\"\n [attr.d]=\"path\"\n stroke-width=\"0.25\"\n stroke=\"#89919A\"\n fill=\"transparent\"\n ></path>\n </svg>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { StatusIndicatorComponent } from './status-indicator.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [StatusIndicatorComponent],\n exports: [StatusIndicatorComponent]\n})\nexport class StatusIndicatorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-status-indicator.mjs","sources":["../../../../libs/core/status-indicator/status-indicator.component.ts","../../../../libs/core/status-indicator/status-indicator.component.html","../../../../libs/core/status-indicator/status-indicator.module.ts","../../../../libs/core/status-indicator/fundamental-ngx-core-status-indicator.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n ViewEncapsulation\n} from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\n\nexport type StatusIndicatorSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type StatusIndicatorColor = 'negative' | 'critical' | 'positive';\nexport type LablePosition = 'left' | 'right' | 'top' | 'bottom';\nexport type FillingType = 'radial' | 'angled' | 'linearup' | 'lineardown' | 'linearleft';\nexport type FillingDirection = 'clockwise' | 'counterclockwise';\n\nlet statusIndicatorId = 0;\n\nexport class Point {\n /** @hidden */\n constructor(\n public x: number,\n public y: number\n ) {}\n}\n\n@Component({\n selector: 'fd-status-indicator',\n templateUrl: './status-indicator.component.html',\n styleUrl: './status-indicator.component.scss',\n host: {\n '[class]': '_cssClass()',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-roledescription]': 'ariaRoleDescription()',\n '[attr.focusable]': 'focusable()',\n '[attr.title]': 'title()',\n '[attr.role]': 'role()',\n '[attr.aria-valuetext]': 'ariaValueText()',\n '[attr.aria-valuenow]': 'fillPercentage() || 0',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': '100',\n '[attr.tabindex]': 'focusable() ? 0 : -1'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet]\n})\nexport class StatusIndicatorComponent implements AfterViewInit, HasElementRef {\n /**\n * value id defines the id of the object.\n */\n readonly id = input('fd-status-indicator-' + ++statusIndicatorId);\n\n /**\n * defines the size of the status indicator.\n * Can be one of the following: 'sm' | 'md' | 'lg' | 'xl'\n * Default size is Medium(md).\n */\n readonly size = input<StatusIndicatorSize>('md');\n\n /**\n * The status represented by the Status Indicator.\n * Can be one of the following: 'negative' | 'critical' | 'informative'\n * For default Object Status omit this property\n */\n readonly status = input<StatusIndicatorColor>();\n\n /** Define the text content of the Status indicator*/\n readonly statusLabel = input<string>();\n\n /**\n * positioning of the status indicator image within the defined height and width .\n */\n readonly viewBox = input<string>();\n\n /**\n * boolean value to be marked as clickable\n */\n readonly clickable = input(false);\n\n /**\n * defines the size of the status indicator.\n * Can be one of the following: 'sm' | 'md' | 'lg' | 'xl'\n */\n readonly labelSize = input<StatusIndicatorSize>('sm');\n\n /** Aria label for the Status Indicator. */\n readonly ariaLabel = input<string | null | undefined>();\n\n /** Aria defines role description for the Status Indicator. */\n readonly ariaRoleDescription = input<string | null | undefined>();\n\n /** Aria Focusable for the Status Indicator. */\n readonly focusable = input(false, { transform: booleanAttribute });\n\n /** Aria Role for the Status Indicator. */\n readonly role = input<string | null | undefined>();\n\n /** Aria Value Text for the Status Indicator. */\n readonly ariaValueText = input<string | null | undefined>();\n\n /** Aria title for the status indicator. */\n readonly title = input<string | null | undefined>();\n\n /** defines the label position the value can be 'left' | 'right' | 'top' | 'bottom' */\n readonly labelPosition = input<LablePosition>();\n\n /** Path for the status indicator */\n readonly path = input<string[]>();\n\n /**\n * Offset value to be filled under the give percentatge value.\n */\n readonly fillPercentage = input<number>();\n\n /**\n * value to define fill direction\n */\n readonly fillDirection = input<FillingDirection>('clockwise');\n\n /**\n * FillingType to represent the fill pattern of the component\n */\n readonly fillingType = input<FillingType>('lineardown');\n\n /** represent the degree of angle to project the filling of the component */\n readonly angle = input<number>();\n\n /** @hidden */\n readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /** @hidden */\n protected readonly binaryString = signal<string>('');\n /** @hidden */\n protected readonly x1 = signal<string>('');\n /** @hidden */\n protected readonly y1 = signal<string>('');\n /** @hidden */\n protected readonly x2 = signal<string>('');\n /** @hidden */\n protected readonly y2 = signal<string>('');\n /** @hidden */\n protected readonly pointsArray = signal<string[]>([]);\n\n /** @hidden Computed fill calculator based on percentage and path length */\n protected readonly fillCalculator = computed(() => {\n const percentage = this.fillPercentage();\n const pathLength = this.path()?.length || 0;\n\n if (percentage === undefined || percentage < 0) {\n return 0;\n }\n return (percentage * pathLength) / 100;\n });\n\n /** @hidden Computed CSS class */\n protected readonly _cssClass = computed(() =>\n [\n 'fd-status-indicator',\n this.size() ? `fd-status-indicator--${this.size()}` : '',\n this.status() ? `fd-status-indicator--${this.status()}` : '',\n this.clickable() ? 'fd-status-indicator--link' : '',\n this.labelPosition() === 'right' || this.labelPosition() === 'left'\n ? 'fd-status-indicator--horizontal-label'\n : ''\n ]\n .filter(Boolean)\n .join(' ')\n );\n\n protected readonly labelCssClass = computed(() =>\n [\n 'fd-status-indicator__label',\n this.labelSize() ? `fd-status-indicator__label--${this.labelSize()}` : '',\n this.labelPosition() ? `fd-status-indicator__label--${this.labelPosition()}` : ''\n ]\n .filter(Boolean)\n .join(' ')\n );\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._angleCalculation();\n }\n\n /** @hidden */\n private _angleCalculation(): void {\n let sPointsAttributeValue: Array<Point>;\n let polygonPoints: string;\n const fillType = this.fillingType();\n\n switch (fillType) {\n case 'angled': {\n const angleValue = this.angle();\n if (angleValue !== undefined) {\n const binaryStr = this._convertAngleToBinary(angleValue);\n this.binaryString.set(binaryStr);\n this._assignBinaryValue(binaryStr);\n }\n break;\n }\n case 'radial': {\n const tempPercent = this.fillCalculator() % 1;\n const fillNumber = Number(tempPercent.toFixed(2));\n const element = this.elementRef.nativeElement.querySelectorAll('svg');\n const points: string[] = [];\n\n for (let i = 1; i < element.length; i++) {\n sPointsAttributeValue = this._getPolygonPointsForCircularFilling(\n fillNumber * 100,\n element[i].getBBox()\n );\n polygonPoints = sPointsAttributeValue.reduce((acc, item) => acc + item.x + ',' + item.y + ' ', '');\n points.push(polygonPoints);\n }\n this.pointsArray.set(points);\n break;\n }\n case 'linearup': {\n const binaryStr = this._convertAngleToBinary(90);\n this.binaryString.set(binaryStr);\n this._assignBinaryValue(binaryStr);\n break;\n }\n case 'lineardown': {\n const binaryStr = this._convertAngleToBinary(270);\n this.binaryString.set(binaryStr);\n this._assignBinaryValue(binaryStr);\n break;\n }\n case 'linearleft': {\n const binaryStr = this._convertAngleToBinary(180);\n this.binaryString.set(binaryStr);\n this._assignBinaryValue(binaryStr);\n break;\n }\n default:\n throw new Error(`fdStatusIndicator: No fillType found for ${fillType}.`);\n }\n }\n\n /** @hidden */\n private _convertAngleToBinary(angle: number): string {\n if (angle > 0 && angle <= 45) {\n return '1,0,0,1';\n } else if (angle >= 45 && angle < 90) {\n return '0,0,0,1';\n } else if (angle >= 90 && angle < 135) {\n return '0,0,0,1';\n } else if (angle >= 135 && angle < 180) {\n return '0,0,1,1';\n } else if (angle >= 180 && angle < 225) {\n return '0,0,1,0';\n } else if (angle >= 225 && angle < 270) {\n return '0,1,1,0';\n } else if (angle >= 270 && angle < 315) {\n return '0,1,0,0';\n } else if (angle >= 315 && angle < 360) {\n return '1,1,0,0';\n } else if (angle === 0 || angle === 360) {\n return '1,0,0,0';\n } else {\n return 'invalid';\n }\n }\n\n /** @hidden */\n private _assignBinaryValue(binaryString: string): void {\n const binaryValue = binaryString.split(',');\n this.x1.set(binaryValue[0]);\n this.y1.set(binaryValue[1]);\n this.x2.set(binaryValue[2]);\n this.y2.set(binaryValue[3]);\n }\n\n /** @hidden */\n private _getPolygonPointsForCircularFilling(value: number, boundingBoxSvg: DOMRect): Array<Point> {\n const angle = 3.6 * value;\n const points: Point[] = [];\n let xDifferenceFromBoundaryCentre: number;\n let yDifferenceFromBoundaryCentre: number;\n let polygonPoint: Point;\n\n // starts at 12, the algorithm computes the coordination for clockwise direction only\n // counter clockwise direction is managed by symmetry\n const oStartPoint = new Point(boundingBoxSvg.x + boundingBoxSvg.width / 2, boundingBoxSvg.y);\n const oCentrePoint = new Point(\n boundingBoxSvg.x + boundingBoxSvg.width / 2,\n boundingBoxSvg.y + boundingBoxSvg.height / 2\n );\n\n // Reflects x coordinate by centre point for Counter Clockwise type\n const _adjustIfCounterClockwise = (oPoint: Point): Point => {\n const res = Object.assign({}, oPoint);\n\n if (this.fillDirection() === 'counterclockwise') {\n const iXDistanceFromCentre = oPoint.x - oCentrePoint.x;\n res.x = oCentrePoint.x - iXDistanceFromCentre;\n }\n\n return res;\n };\n\n // Boundary centre is given by angle distance from the beginning (0°). The returned difference is related\n // to x or y coordinate depending on boundary centre angle (e.g. 0° -> x, 90° -> y, 180° -> x 270° -> y).\n // Boundary length is length of the corresponding side of bounding box (width for x, height for y).\n const computeDifferenceFromBoundaryCentre = (\n inAngle: number,\n iBoundaryCentreAngle: number,\n iBoundaryLength: number\n ): number => {\n const tan = Math.tan(((iBoundaryCentreAngle - inAngle) * Math.PI) / 180);\n\n return (tan * iBoundaryLength) / 2;\n };\n\n points.push(oStartPoint);\n\n if (0 < angle && angle < 45) {\n xDifferenceFromBoundaryCentre = computeDifferenceFromBoundaryCentre(angle, 0, boundingBoxSvg.height);\n polygonPoint = new Point(oStartPoint.x - xDifferenceFromBoundaryCentre, oStartPoint.y);\n points.push(_adjustIfCounterClockwise(polygonPoint));\n }\n\n if (45 <= angle) {\n points.push(\n _adjustIfCounterClockwise(new Point(boundingBoxSvg.x + boundingBoxSvg.width, boundingBoxSvg.y))\n );\n }\n\n if (45 < angle && angle < 135) {\n yDifferenceFromBoundaryCentre = computeDifferenceFromBoundaryCentre(angle, 90, boundingBoxSvg.width);\n polygonPoint = new Point(\n boundingBoxSvg.x + boundingBoxSvg.width,\n boundingBoxSvg.y + boundingBoxSvg.height / 2 - yDifferenceFromBoundaryCentre\n );\n points.push(_adjustIfCounterClockwise(polygonPoint));\n }\n\n if (135 <= angle) {\n points.push(\n _adjustIfCounterClockwise(\n new Point(boundingBoxSvg.x + boundingBoxSvg.width, boundingBoxSvg.y + boundingBoxSvg.height)\n )\n );\n }\n\n if (135 < angle && angle < 225) {\n xDifferenceFromBoundaryCentre = computeDifferenceFromBoundaryCentre(angle, 180, boundingBoxSvg.height);\n polygonPoint = new Point(\n boundingBoxSvg.x + boundingBoxSvg.width / 2 + xDifferenceFromBoundaryCentre,\n boundingBoxSvg.y + boundingBoxSvg.height\n );\n points.push(_adjustIfCounterClockwise(polygonPoint));\n }\n\n if (225 <= angle) {\n points.push(\n _adjustIfCounterClockwise(new Point(boundingBoxSvg.x, boundingBoxSvg.y + boundingBoxSvg.height))\n );\n }\n\n if (225 < angle && angle < 315) {\n yDifferenceFromBoundaryCentre = computeDifferenceFromBoundaryCentre(angle, 270, boundingBoxSvg.width);\n polygonPoint = new Point(\n boundingBoxSvg.x,\n boundingBoxSvg.y + boundingBoxSvg.height / 2 + yDifferenceFromBoundaryCentre\n );\n points.push(_adjustIfCounterClockwise(polygonPoint));\n }\n\n if (315 <= angle) {\n points.push(_adjustIfCounterClockwise(new Point(boundingBoxSvg.x, boundingBoxSvg.y)));\n }\n\n if (315 < angle && angle <= 360) {\n xDifferenceFromBoundaryCentre = computeDifferenceFromBoundaryCentre(angle, 360, boundingBoxSvg.height);\n polygonPoint = new Point(\n boundingBoxSvg.x + boundingBoxSvg.width / 2 - xDifferenceFromBoundaryCentre,\n boundingBoxSvg.y\n );\n points.push(_adjustIfCounterClockwise(polygonPoint));\n }\n\n points.push(oCentrePoint);\n\n return points;\n }\n}\n","@if (labelPosition() === 'left' || labelPosition() === 'top') {\n <span [class]=\"labelCssClass()\">{{ statusLabel() }} </span>\n}\n<svg\n [attr.id]=\"id()\"\n data-sap-ui=\"__shape0-__box21-24\"\n version=\"1.1\"\n [attr.viewBox]=\"viewBox()\"\n xlmns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid meet\"\n class=\"fd-status-indicator__svg\"\n>\n <ng-container [ngTemplateOutlet]=\"svgTemplate\"></ng-container>\n</svg>\n@if (labelPosition() === 'right' || labelPosition() === 'bottom') {\n <span [class]=\"labelCssClass()\">{{ statusLabel() }} </span>\n}\n<ng-template #svgTemplate>\n @for (path of path(); track path; let i = $index) {\n <svg\n xlmns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid meet\"\n overflow=\"visible\"\n [attr.id]=\"id() + i\"\n data-sap-ui=\"id\"\n >\n <defs>\n @if (!(fillCalculator() - i > 0 && fillCalculator() - i < 1) || fillingType() !== 'radial') {\n <linearGradient\n id=\"{{ id() + i }}-gradient\"\n [attr.x1]=\"x1()\"\n [attr.y1]=\"y1()\"\n [attr.x2]=\"x2()\"\n [attr.y2]=\"y2()\"\n >\n <stop [attr.offset]=\"fillCalculator() - i\" stop-color=\"white\">\n <animate\n attributeName=\"offset\"\n attr.values=\"0, {{ fillCalculator() - i }}\"\n repeatCount=\"1\"\n dur=\"1s\"\n begin=\"0s\"\n />\n </stop>\n <stop [attr.offset]=\"fillCalculator() - i\" stop-color=\"transparent\">\n <animate\n attributeName=\"offset\"\n attr.values=\"0, {{ fillCalculator() - i }}\"\n repeatCount=\"1\"\n dur=\"1s\"\n begin=\"0s\"\n />\n </stop>\n </linearGradient>\n }\n <mask #maskTemplate id=\"{{ id() + i }}-mask\">\n @if (!(fillCalculator() - i > 0 && fillCalculator() - i < 1) || fillingType() !== 'radial') {\n <path\n id=\"{{ id() + i }}-mask-shape\"\n [attr.d]=\"path\"\n stroke-width=\"0\"\n stroke=\"white\"\n attr.fill=\"url(#{{ id() + i }}-gradient)\"\n ></path>\n }\n @if (fillingType() === 'radial' && fillCalculator() - i > 0 && fillCalculator() - i < 1) {\n <polygon id=\"{{ id() + i }}-mask-shape\" fill=\"white\" [attr.points]=\"pointsArray()[i]\"></polygon>\n }\n </mask>\n </defs>\n <path\n id=\"{{ id() + i }}-shape\"\n [attr.d]=\"path\"\n stroke-width=\"0\"\n stroke=\"#89919A\"\n attr.mask=\"url(#{{ id() + i }}-mask)\"\n ></path>\n <path\n id=\"{{ id() + i }}-shape-border\"\n [attr.d]=\"path\"\n stroke-width=\"0.25\"\n stroke=\"#89919A\"\n fill=\"transparent\"\n ></path>\n </svg>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { StatusIndicatorComponent } from './status-indicator.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [StatusIndicatorComponent],\n exports: [StatusIndicatorComponent]\n})\nexport class StatusIndicatorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core",
3
- "version": "0.59.1-rc.21",
3
+ "version": "0.59.1-rc.23",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "ng-update": {
6
6
  "migrations": "./schematics/migrations.json"
@@ -23,8 +23,8 @@
23
23
  "@angular/forms": "^21.0.0",
24
24
  "@angular/platform-browser": "^21.0.0",
25
25
  "@angular/router": "^21.0.0",
26
- "@fundamental-ngx/cdk": "0.59.1-rc.21",
27
- "@fundamental-ngx/i18n": "0.59.1-rc.21",
26
+ "@fundamental-ngx/cdk": "0.59.1-rc.23",
27
+ "@fundamental-ngx/i18n": "0.59.1-rc.23",
28
28
  "@sap-theming/theming-base-content": "^11.32.0",
29
29
  "fundamental-styles": "0.40.1",
30
30
  "rxjs": "^7.8.0"
@@ -1,183 +1,71 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, OnChanges, ElementRef } from '@angular/core';
3
- import { CssClassBuilder, Nullable } from '@fundamental-ngx/cdk/utils';
2
+ import { ElementRef } from '@angular/core';
3
+ import { HasElementRef } from '@fundamental-ngx/cdk/utils';
4
4
 
5
- /**
6
- * Layout Panel level actions such as add, remove, delete, sort, etc.
7
- *
8
- * ```html
9
- * <fd-layout-panel>
10
- * <fd-layout-panel-header>
11
- * <fd-layout-panel-actions>
12
- * <button fd-button (click)="action()">Action</button>
13
- * </fd-layout-panel-actions>
14
- * </fd-layout-panel-header>
15
- * </fd-layout-panel>
16
- * ```
17
- */
18
5
  declare class LayoutPanelActionsComponent {
19
- /** @hidden */
20
- fdLayoutPanelActionsClass: boolean;
21
6
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutPanelActionsComponent, never>;
22
7
  static ɵcmp: i0.ɵɵComponentDeclaration<LayoutPanelActionsComponent, "fd-layout-panel-actions", never, {}, {}, never, ["*"], true, never>;
23
8
  }
24
9
 
25
- /**
26
- * Main content of the panel can that hold lists, table, tree, text, form or any other information.
27
- *
28
- * ```html
29
- * <fd-layout-panel>
30
- * <fd-layout-panel-body>
31
- * Some text can go here!
32
- * </fd-layout-panel-body>
33
- * </fd-layout-panel>
34
- * ```
35
- */
36
10
  declare class LayoutPanelBodyComponent {
37
- /** @hidden */
38
- fdLayoutPanelBodyClass: boolean;
39
- /** Whether the edges of the panel should have bleeding padding. */
40
- bleed: boolean;
11
+ /**
12
+ * Whether the edges of the panel should have bleeding padding.
13
+ * @default false
14
+ */
15
+ readonly bleed: i0.InputSignalWithTransform<boolean, unknown>;
41
16
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutPanelBodyComponent, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<LayoutPanelBodyComponent, "fd-layout-panel-body", never, { "bleed": { "alias": "bleed"; "required": false; }; }, {}, never, ["*"], true, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayoutPanelBodyComponent, "fd-layout-panel-body", never, { "bleed": { "alias": "bleed"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
43
18
  }
44
19
 
45
- /**
46
- * Description of the panel title.
47
- *
48
- * ```html
49
- * <fd-layout-panel>
50
- * <fd-layout-panel-header>
51
- * <fd-layout-panel-head>
52
- * <fd-layout-panel-description>This is a description for a panel title!</fd-layout-panel-description>
53
- * </fd-layout-panel-head>
54
- * </fd-layout-panel-header>
55
- * </fd-layout-panel>
56
- * ```
57
- */
58
20
  declare class LayoutPanelDescriptionComponent {
59
21
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutPanelDescriptionComponent, never>;
60
22
  static ɵcmp: i0.ɵɵComponentDeclaration<LayoutPanelDescriptionComponent, "fd-layout-panel-description", never, {}, {}, never, ["*"], true, never>;
61
23
  }
62
24
 
63
- /**
64
- * Layout Panel level filters that is specific to the data being displayed within the panel.
65
- *
66
- * ```html
67
- * <fd-layout-panel>
68
- * <fd-layout-panel-filters>
69
- * Some text can go here!
70
- * </fd-layout-panel-filters>
71
- * </fd-layout-panel>
72
- * ```
73
- */
74
25
  declare class LayoutPanelFiltersComponent {
75
- /** @hidden */
76
- fdLayoutPanelFiltersClass: boolean;
77
26
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutPanelFiltersComponent, never>;
78
27
  static ɵcmp: i0.ɵɵComponentDeclaration<LayoutPanelFiltersComponent, "fd-layout-panel-filters", never, {}, {}, never, ["*"], true, never>;
79
28
  }
80
29
 
81
30
  type FooterPosition = 'start' | 'end';
82
- declare class LayoutPanelFooterComponent implements OnInit, OnChanges, CssClassBuilder {
83
- readonly elementRef: ElementRef<HTMLElement>;
84
- /** Apply user custom styles */
85
- class: string;
31
+ declare class LayoutPanelFooterComponent implements HasElementRef {
86
32
  /**
87
33
  * Footer variations, can be start (left aligned), end (right aligned) or null for default.
88
34
  * The default value will render the content of the footer in the middle.
89
35
  */
90
- position: Nullable<FooterPosition>;
91
- /** @hidden */
92
- constructor(elementRef: ElementRef<HTMLElement>);
93
- /** @hidden */
94
- buildComponentCssClass(): string[];
95
- /** @hidden */
96
- ngOnInit(): void;
36
+ position: i0.InputSignal<FooterPosition | null>;
97
37
  /** @hidden */
98
- ngOnChanges(): void;
38
+ readonly elementRef: ElementRef<any>;
99
39
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutPanelFooterComponent, never>;
100
- static ɵcmp: i0.ɵɵComponentDeclaration<LayoutPanelFooterComponent, "fd-layout-panel-footer", never, { "class": { "alias": "class"; "required": false; }; "position": { "alias": "position"; "required": false; }; }, {}, never, ["*"], true, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayoutPanelFooterComponent, "fd-layout-panel-footer", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
101
41
  }
102
42
 
103
- /**
104
- * Container for title and description.
105
- *
106
- * ```html
107
- * <fd-layout-panel>
108
- * <fd-layout-panel-header>
109
- * <fd-layout-panel-head>
110
- * <fd-layout-panel-title>Title!</fd-layout-panel-title>
111
- * </fd-layout-panel-head>
112
- * </fd-layout-panel-header>
113
- * </fd-layout-panel>
114
- * ```
115
- */
116
43
  declare class LayoutPanelHeadComponent {
117
- /** @hidden */
118
- fdLayoutPanelHeadClass: boolean;
119
44
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutPanelHeadComponent, never>;
120
45
  static ɵcmp: i0.ɵɵComponentDeclaration<LayoutPanelHeadComponent, "fd-layout-panel-head", never, {}, {}, never, ["*"], true, never>;
121
46
  }
122
47
 
123
- /**
124
- * Header of the panel. Contains a head and actions.
125
- *
126
- * ```html
127
- * <fd-layout-panel>
128
- * <fd-layout-panel-header>
129
- * <fd-layout-panel-head>
130
- * <fd-layout-panel-title>Title!</fd-layout-panel-title>
131
- * </fd-layout-panel-head>
132
- * </fd-layout-panel-header>
133
- * </fd-layout-panel>
134
- * ```
135
- */
136
48
  declare class LayoutPanelHeaderComponent {
137
- /** @hidden */
138
- fdLayoutPanelHeaderClass: boolean;
139
49
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutPanelHeaderComponent, never>;
140
50
  static ɵcmp: i0.ɵɵComponentDeclaration<LayoutPanelHeaderComponent, "fd-layout-panel-header", never, {}, {}, never, ["fd-layout-panel-head", "fd-layout-panel-actions"], true, never>;
141
51
  }
142
52
 
143
- /**
144
- * Applies the panel title style to a header element. It can be used with any header level.
145
- *
146
- * ```html
147
- * <h1 fd-layout-panel-title>Layout Panel Title</h1>
148
- * <h3 fd-layout-panel-title>Layout Panel Title</h3>
149
- * ```
150
- */
151
53
  declare class LayoutPanelTitleDirective {
152
- /** @hidden */
153
- fdLayoutPanelTitleClass: string;
154
54
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutPanelTitleDirective, never>;
155
55
  static ɵdir: i0.ɵɵDirectiveDeclaration<LayoutPanelTitleDirective, "[fd-layout-panel-title]", never, {}, {}, never, never, true, never>;
156
56
  }
157
57
 
158
- /**
159
- * Layout Panels are used to encapsulate part of the content, form elements, lists, collections, etc., on a page.
160
- */
161
- declare class LayoutPanelComponent implements OnChanges, OnInit {
162
- private elRef;
163
- /** @Input Background image of the panel. */
164
- backgroundImage: string;
58
+ declare class LayoutPanelComponent {
59
+ /** Background image of the panel. */
60
+ readonly backgroundImage: i0.InputSignal<string | null | undefined>;
165
61
  /** Id for the layout panel element. */
166
- id: string;
167
- /** @hidden */
168
- fdLayoutPanelClass: boolean;
62
+ readonly id: i0.InputSignal<string>;
169
63
  /** Whether the background of the panel should be transparent. */
170
- transparent: boolean;
171
- /** @hidden */
172
- constructor(elRef: ElementRef);
173
- /** @hidden */
174
- ngOnChanges(): void;
175
- /** @hidden */
176
- ngOnInit(): void;
64
+ readonly transparent: i0.InputSignalWithTransform<boolean, unknown>;
177
65
  /** @hidden */
178
- private _applyBackgroundImage;
66
+ protected readonly backgroundImageUrl: i0.Signal<string | null>;
179
67
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutPanelComponent, never>;
180
- static ɵcmp: i0.ɵɵComponentDeclaration<LayoutPanelComponent, "fd-layout-panel", never, { "backgroundImage": { "alias": "backgroundImage"; "required": false; }; "id": { "alias": "id"; "required": false; }; "transparent": { "alias": "transparent"; "required": false; }; }, {}, never, ["fd-layout-panel-header", "fd-layout-panel-filters", "fd-layout-panel-body", "fd-layout-panel-footer", "*"], true, never>;
68
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayoutPanelComponent, "fd-layout-panel", never, { "backgroundImage": { "alias": "backgroundImage"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "transparent": { "alias": "transparent"; "required": false; "isSignal": true; }; }, {}, never, ["fd-layout-panel-header", "fd-layout-panel-filters", "fd-layout-panel-body", "fd-layout-panel-footer", "*"], true, never>;
181
69
  }
182
70
 
183
71
  /**
@@ -1,6 +1,6 @@
1
- import * as i0 from '@angular/core';
2
- import { OnChanges, AfterViewInit, OnInit, ElementRef, ChangeDetectorRef } from '@angular/core';
3
- import { CssClassBuilder, Nullable } from '@fundamental-ngx/cdk/utils';
1
+ import * as _angular_core from '@angular/core';
2
+ import { AfterViewInit, ElementRef } from '@angular/core';
3
+ import { HasElementRef } from '@fundamental-ngx/cdk/utils';
4
4
 
5
5
  type StatusIndicatorSize = 'sm' | 'md' | 'lg' | 'xl';
6
6
  type StatusIndicatorColor = 'negative' | 'critical' | 'positive';
@@ -13,106 +13,90 @@ declare class Point {
13
13
  /** @hidden */
14
14
  constructor(x: number, y: number);
15
15
  }
16
- declare class StatusIndicatorComponent implements OnChanges, AfterViewInit, CssClassBuilder, OnInit {
17
- readonly elementRef: ElementRef<HTMLElement>;
18
- private _cd;
16
+ declare class StatusIndicatorComponent implements AfterViewInit, HasElementRef {
19
17
  /**
20
18
  * value id defines the id of the object.
21
19
  */
22
- id: string;
20
+ readonly id: _angular_core.InputSignal<string>;
23
21
  /**
24
22
  * defines the size of the status indicator.
25
23
  * Can be one of the following: 'sm' | 'md' | 'lg' | 'xl'
26
24
  * Default size is Medium(md).
27
25
  */
28
- size: StatusIndicatorSize;
26
+ readonly size: _angular_core.InputSignal<StatusIndicatorSize>;
29
27
  /**
30
28
  * The status represented by the Status Indicator.
31
29
  * Can be one of the following: 'negative' | 'critical' | 'informative'
32
30
  * For default Object Status omit this property
33
31
  */
34
- status: StatusIndicatorColor;
32
+ readonly status: _angular_core.InputSignal<StatusIndicatorColor | undefined>;
35
33
  /** Define the text content of the Status indicator*/
36
- statusLabel: string;
34
+ readonly statusLabel: _angular_core.InputSignal<string | undefined>;
37
35
  /**
38
36
  * positioning of the status indicator image within the defined height and width .
39
37
  */
40
- viewBox: string;
38
+ readonly viewBox: _angular_core.InputSignal<string | undefined>;
41
39
  /**
42
40
  * boolean value to be marked as clickable
43
41
  */
44
- clickable: boolean;
42
+ readonly clickable: _angular_core.InputSignal<boolean>;
45
43
  /**
46
44
  * defines the size of the status indicator.
47
45
  * Can be one of the following: 'sm' | 'md' | 'lg' | 'xl'
48
46
  */
49
- labelSize: StatusIndicatorSize;
47
+ readonly labelSize: _angular_core.InputSignal<StatusIndicatorSize>;
50
48
  /** Aria label for the Status Indicator. */
51
- ariaLabel: Nullable<string>;
49
+ readonly ariaLabel: _angular_core.InputSignal<string | null | undefined>;
52
50
  /** Aria defines role description for the Status Indicator. */
53
- ariaRoleDescription: Nullable<string>;
51
+ readonly ariaRoleDescription: _angular_core.InputSignal<string | null | undefined>;
54
52
  /** Aria Focusable for the Status Indicator. */
55
- focusable: boolean;
53
+ readonly focusable: _angular_core.InputSignalWithTransform<boolean, unknown>;
56
54
  /** Aria Role for the Status Indicator. */
57
- role: Nullable<string>;
55
+ readonly role: _angular_core.InputSignal<string | null | undefined>;
58
56
  /** Aria Value Text for the Status Indicator. */
59
- ariaValueText: Nullable<string>;
57
+ readonly ariaValueText: _angular_core.InputSignal<string | null | undefined>;
60
58
  /** Aria title for the status indicator. */
61
- title: Nullable<string>;
59
+ readonly title: _angular_core.InputSignal<string | null | undefined>;
62
60
  /** defines the label position the value can be 'left' | 'right' | 'top' | 'bottom' */
63
- labelPosition: LablePosition;
61
+ readonly labelPosition: _angular_core.InputSignal<LablePosition | undefined>;
64
62
  /** Path for the status indicator */
65
- path: string[];
63
+ readonly path: _angular_core.InputSignal<string[] | undefined>;
66
64
  /**
67
65
  * Offset value to be filled under the give percentatge value.
68
66
  */
69
- fillPercentage: number;
67
+ readonly fillPercentage: _angular_core.InputSignal<number | undefined>;
70
68
  /**
71
69
  * value to define fill direction
72
70
  */
73
- fillDirection: FillingDirection;
74
- /** @hidden */
75
- set _fillDirection(direction: FillingDirection);
76
- get _fillDirection(): FillingDirection;
71
+ readonly fillDirection: _angular_core.InputSignal<FillingDirection>;
77
72
  /**
78
73
  * FillingType to represent the fill pattern of the component
79
74
  */
80
- fillingType: FillingType;
75
+ readonly fillingType: _angular_core.InputSignal<FillingType>;
81
76
  /** represent the degree of angle to project the filling of the component */
82
- angle: number;
83
- /** @hidden */
84
- fillCalculator: number;
77
+ readonly angle: _angular_core.InputSignal<number | undefined>;
85
78
  /** @hidden */
86
- binaryString: string;
79
+ readonly elementRef: ElementRef<any>;
87
80
  /** @hidden */
88
- x1: string;
81
+ protected readonly binaryString: _angular_core.WritableSignal<string>;
89
82
  /** @hidden */
90
- y1: string;
83
+ protected readonly x1: _angular_core.WritableSignal<string>;
91
84
  /** @hidden */
92
- x2: string;
85
+ protected readonly y1: _angular_core.WritableSignal<string>;
93
86
  /** @hidden */
94
- y2: string;
87
+ protected readonly x2: _angular_core.WritableSignal<string>;
95
88
  /** @hidden */
96
- pointsArray: string[];
89
+ protected readonly y2: _angular_core.WritableSignal<string>;
97
90
  /** @hidden */
98
- class: string;
99
- /** @hidden */
100
- constructor(elementRef: ElementRef<HTMLElement>, _cd: ChangeDetectorRef);
101
- /** @hidden
102
- * CssClassBuilder interface implementation
103
- * function must return single string
104
- * function is responsible for order which css classes are applied
105
- */
106
- buildComponentCssClass(): string[];
91
+ protected readonly pointsArray: _angular_core.WritableSignal<string[]>;
92
+ /** @hidden Computed fill calculator based on percentage and path length */
93
+ protected readonly fillCalculator: _angular_core.Signal<number>;
94
+ /** @hidden Computed CSS class */
95
+ protected readonly _cssClass: _angular_core.Signal<string>;
96
+ protected readonly labelCssClass: _angular_core.Signal<string>;
107
97
  /** @hidden */
108
98
  ngAfterViewInit(): void;
109
99
  /** @hidden */
110
- ngOnChanges(): void;
111
- /** @hidden */
112
- ngOnInit(): void;
113
- /** @hidden */
114
- private _calculateFilling;
115
- /** @hidden */
116
100
  private _angleCalculation;
117
101
  /** @hidden */
118
102
  private _convertAngleToBinary;
@@ -120,8 +104,8 @@ declare class StatusIndicatorComponent implements OnChanges, AfterViewInit, CssC
120
104
  private _assignBinaryValue;
121
105
  /** @hidden */
122
106
  private _getPolygonPointsForCircularFilling;
123
- static ɵfac: i0.ɵɵFactoryDeclaration<StatusIndicatorComponent, never>;
124
- static ɵcmp: i0.ɵɵComponentDeclaration<StatusIndicatorComponent, "fd-status-indicator", never, { "id": { "alias": "id"; "required": false; }; "size": { "alias": "size"; "required": false; }; "status": { "alias": "status"; "required": false; }; "statusLabel": { "alias": "statusLabel"; "required": false; }; "viewBox": { "alias": "viewBox"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; "labelSize": { "alias": "labelSize"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaRoleDescription": { "alias": "ariaRoleDescription"; "required": false; }; "focusable": { "alias": "focusable"; "required": false; }; "role": { "alias": "role"; "required": false; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; }; "title": { "alias": "title"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "path": { "alias": "path"; "required": false; }; "fillPercentage": { "alias": "fillPercentage"; "required": false; }; "fillDirection": { "alias": "fillDirection"; "required": false; }; "fillingType": { "alias": "fillingType"; "required": false; }; "angle": { "alias": "angle"; "required": false; }; }, {}, never, never, true, never>;
107
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusIndicatorComponent, never>;
108
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StatusIndicatorComponent, "fd-status-indicator", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "statusLabel": { "alias": "statusLabel"; "required": false; "isSignal": true; }; "viewBox": { "alias": "viewBox"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "labelSize": { "alias": "labelSize"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaRoleDescription": { "alias": "ariaRoleDescription"; "required": false; "isSignal": true; }; "focusable": { "alias": "focusable"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "path": { "alias": "path"; "required": false; "isSignal": true; }; "fillPercentage": { "alias": "fillPercentage"; "required": false; "isSignal": true; }; "fillDirection": { "alias": "fillDirection"; "required": false; "isSignal": true; }; "fillingType": { "alias": "fillingType"; "required": false; "isSignal": true; }; "angle": { "alias": "angle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
125
109
  }
126
110
 
127
111
  /**
@@ -129,9 +113,9 @@ declare class StatusIndicatorComponent implements OnChanges, AfterViewInit, CssC
129
113
  * Use direct imports of components and directives.
130
114
  */
131
115
  declare class StatusIndicatorModule {
132
- static ɵfac: i0.ɵɵFactoryDeclaration<StatusIndicatorModule, never>;
133
- static ɵmod: i0.ɵɵNgModuleDeclaration<StatusIndicatorModule, never, [typeof StatusIndicatorComponent], [typeof StatusIndicatorComponent]>;
134
- static ɵinj: i0.ɵɵInjectorDeclaration<StatusIndicatorModule>;
116
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusIndicatorModule, never>;
117
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<StatusIndicatorModule, never, [typeof StatusIndicatorComponent], [typeof StatusIndicatorComponent]>;
118
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<StatusIndicatorModule>;
135
119
  }
136
120
 
137
121
  export { Point, StatusIndicatorComponent, StatusIndicatorModule };