@factor_ec/ui 5.0.8 → 6.0.0
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.
- package/README.md +1 -1
- package/fesm2022/factor_ec-ui.mjs +161 -491
- package/fesm2022/factor_ec-ui.mjs.map +1 -1
- package/package.json +8 -9
- package/types/factor_ec-ui.d.ts +174 -0
- package/index.d.ts +0 -5
- package/lib/avatar/avatar.component.d.ts +0 -17
- package/lib/chart.service.d.ts +0 -18
- package/lib/icon/icon.component.d.ts +0 -14
- package/lib/image/image.component.d.ts +0 -14
- package/lib/message.service.d.ts +0 -25
- package/lib/models/chart.d.ts +0 -12
- package/lib/models/message-content.d.ts +0 -4
- package/lib/models/message-options.d.ts +0 -12
- package/lib/models/ui-options.d.ts +0 -9
- package/lib/observe-intersecting.directive.d.ts +0 -17
- package/lib/progress/progress.component.d.ts +0 -10
- package/lib/rating/rating.component.d.ts +0 -20
- package/lib/ui.module.d.ts +0 -13
- package/lib/ui.service.d.ts +0 -8
- package/public-api.d.ts +0 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factor_ec-ui.mjs","sources":["../../../projects/ui/src/lib/avatar/avatar.component.ts","../../../projects/ui/src/lib/avatar/avatar.component.html","../../../projects/ui/src/lib/chart.service.ts","../../../projects/ui/src/lib/models/ui-options.ts","../../../projects/ui/src/lib/ui.service.ts","../../../projects/ui/src/lib/icon/icon.component.ts","../../../projects/ui/src/lib/icon/icon.component.html","../../../projects/ui/src/lib/image/image.component.ts","../../../projects/ui/src/lib/image/image.component.html","../../../projects/ui/src/lib/message.service.ts","../../../projects/ui/src/lib/observe-intersecting.directive.ts","../../../projects/ui/src/lib/progress/progress.component.ts","../../../projects/ui/src/lib/progress/progress.component.html","../../../projects/ui/src/lib/rating/rating.component.ts","../../../projects/ui/src/lib/rating/rating.component.html","../../../projects/ui/src/lib/ui.module.ts","../../../projects/ui/src/factor_ec-ui.ts"],"sourcesContent":["import { Component, computed, effect, HostBinding, input, signal, inject } from '@angular/core';\n\n\nimport { ColorService } from '@factor_ec/utils';\n\n@Component({\n selector: 'ft-avatar',\n standalone: true,\n imports: [],\n templateUrl: './avatar.component.html',\n styleUrl: './avatar.component.scss'\n})\nexport class AvatarComponent {\n private colorService = inject(ColorService);\n\n color = input<string>();\n initials = computed(() => {\n return this.getInitials(this.label());\n });\n label = input.required<string>();\n loaded = signal<boolean>(false);\n src = input<string>();\n @HostBinding('style.background-color') get backgroundColor(): string {\n return this.color() || this.colorService.hex(this.label());\n }\n @HostBinding('style.background-image') get backgroundImage(): string {\n return this.src() ? `url(${this.src()})` : '';\n }\n class = input<string>();\n @HostBinding('class') get hostClasses(): string {\n return ['ft-avatar', this.class()].join(' ');\n }\n\n constructor() {\n // Usa `effect` para reaccionar a los cambios en el valor de `src`\n effect(() => {\n const value = this.src();\n if (value && value.trim() !== '') {\n const image = new Image();\n image.src = value;\n image.onload = () => {\n if ('decode' in image) {\n image.decode().then(() => {\n this.loaded.set(true);\n });\n } else {\n console.error('Image.decode not available.');\n }\n };\n }\n });\n }\n \n getInitials(value: string): string {\n const allInitials: string[] = value.match(/\\b\\w/g) || [];\n const initials: string = ((allInitials.shift() || '') + (allInitials.pop() || '')).toUpperCase();\n return initials;\n }\n}\n","@if (!loaded()) {\n<div>{{ initials() }}</div>\n}","import { Injectable } from '@angular/core';\n\nimport * as d3 from 'd3';\n\nimport { Chart } from './models/chart';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ChartService {\n private resizeTimeout!: ReturnType<typeof setTimeout>;\n private charts: Map<SVGElement, any> = new Map();\n\n constructor() {\n window.addEventListener('resize', this.handleResize.bind(this));\n }\n\n remove(element: SVGElement): void {\n this.charts.delete(element);\n }\n render(element: SVGElement, items: Chart[]): void {\n // Clear svg\n const svg = d3.select(element).html('');\n \n // Resize event\n if (!this.charts.has(element)) {\n this.charts.set(element, items);\n }\n\n const values: number[] = [0];\n items.forEach((item) => {\n item.data.forEach((i) => {\n if (typeof i[item.field] === 'number') {\n values.push(i[item.field]);\n }\n });\n });\n if (values.length > 0) {\n const domain: any = d3.extent(values);\n\n // Dibujo los gráficos\n items.forEach((item) => {\n switch (item.type) {\n case 'limit':\n this.drawLimitChart(svg, { ...item, domain });\n break;\n case 'column':\n this.drawColumnChart(svg, { ...item, domain });\n break;\n case 'line':\n this.drawLineChart(svg, { ...item, domain });\n break;\n case 'circle':\n this.drawCircleChart(svg, { ...item, domain });\n break;\n case 'event':\n this.drawEventsPlaceholder(svg, { ...item, domain });\n break;\n }\n });\n }\n }\n private drawAxis(svg: any, values: any[], domain: any): void {\n const element = svg.node()?.getBoundingClientRect();\n const yScale = d3\n .scaleLinear()\n .domain(domain)\n .range([element?.height || 0 - 4, 4]);\n\n // Dibuja el eje en X\n svg.select('.x-axis').remove();\n svg\n .append('rect')\n .attr('class', 'x-axis')\n .attr('fill', 'rgba(0, 0, 0, 0.08)')\n .attr('x', 0)\n .attr('width', element?.width || 0)\n .attr('height', 1)\n .attr('shape-rendering', 'crispEdges')\n .attr('y', yScale(0));\n\n /*\n const yScale = d3.scaleLinear().domain([-5000, 8000]).range([this.height, 0]);\n const yAxisGenerator = d3.axisLeft(yScale).ticks(8);\n this.svg.append('g').call(yAxisGenerator).style('transform', 'translateX(50px)');\n */\n }\n private drawCircleChart(svg: any, options: Chart): void {\n const domRect: DOMRect = svg.node().getBoundingClientRect();\n const xAccessor = (d: any) => d[options.categoryField];\n const yAccessor = (d: any) => d[options.field] || 0;\n const xScale = d3\n .scaleBand()\n .domain(options.data.map(xAccessor))\n .range([0, domRect.width])\n .padding(typeof options.padding === 'number' ? options.padding : 0);\n const yScale = d3\n .scaleLinear()\n .domain(\n options.domain ?? [\n Math.min(d3.min(options.data, yAccessor), 0),\n d3.max(options.data, yAccessor),\n ]\n )\n .range([domRect.height - 10, 10]);\n\n const circles = svg\n .append('g')\n .attr('class', 'ft-chart__circle')\n .selectAll(`circle`)\n .data(options.data);\n circles\n .enter()\n .append('circle')\n .style('stroke', options.color ?? '#ff9800')\n .attr('stroke-width', options.strokeWidth ?? 1)\n .style('fill', 'var(--ft-body-bg)')\n .attr('r', 1.5)\n .merge(circles)\n .attr('cx', (d: any) =>\n Math.round((xScale(xAccessor(d)) || 0) + xScale.bandwidth() / 2)\n )\n .attr('cy', (d: any) =>\n Math.round(yScale(yAccessor(d)))\n );\n circles.exit().remove();\n }\n private drawColumnChart(svg: any, options: Chart): void {\n const element = svg.node().getBoundingClientRect();\n const xAccessor = (d: any) => d[options.categoryField];\n //const xAccessor = (d: any) => (new Date(d[options.categoryField]))?.getTime();\n const yAccessor = (d: any) => d[options.field] || 0;\n\n const xScale = d3\n .scaleBand()\n .domain(options.data.map(xAccessor))\n .range([0, element.width])\n .padding(options.padding ?? 0.5);\n const yScale = d3\n .scaleLinear()\n .domain(\n options.domain\n ? options.domain\n : [\n Math.min(d3.min(options.data, yAccessor), 0),\n d3.max(options.data, yAccessor),\n ]\n )\n .range([element.height - 4, 4]);\n\n const columns = svg\n .append('g')\n .attr('class', 'ft-chart__column')\n .selectAll('rect')\n .data(options.data);\n columns\n .enter()\n .append('rect')\n .attr('x', (d: any) => xScale(xAccessor(d)))\n .attr('y', (d: any) => yScale(yAccessor(d)))\n .attr('shape-rendering', 'crispEdges')\n .attr('fill', options.color ?? '#ff9800')\n .attr('title', (d: any) => d[options.field])\n .merge(columns)\n .attr('width', Math.max(1, xScale.bandwidth()))\n .attr('height', (d: any) => Math.abs(yScale(yAccessor(d)) - yScale(0)));\n columns.exit().remove();\n }\n private drawLineChart(svg: any, options: Chart): void {\n const domRect: DOMRect = svg.node().getBoundingClientRect();\n const xAccessor = (d: any) => d[options.categoryField];\n const yAccessor = (d: any) => d[options.field] || 0;\n const xScale = d3\n .scaleBand()\n .domain(options.data.map(xAccessor))\n .range([0, domRect.width])\n .padding(typeof options.padding === 'number' ? options.padding : 0);\n const yScale = d3\n .scaleLinear()\n .domain(\n options.domain ?? [\n Math.min(d3.min(options.data, yAccessor), 0),\n d3.max(options.data, yAccessor),\n ]\n )\n .range([domRect.height - 10, 10]);\n\n const lineGenerator = d3\n .line()\n .x((d: any) =>\n Math.round((xScale(xAccessor(d)) || 0) + xScale.bandwidth() / 2)\n )\n .y((d: any) => Math.round(yScale(yAccessor(d))));\n svg\n .append('path')\n .attr('class', 'ft-chart__line')\n .attr('fill', 'none')\n .attr('stroke', options.color ?? '#ff9800')\n .attr('stroke-width', options.strokeWidth ?? 2)\n .attr('stroke-linecap', 'round')\n .attr('d', lineGenerator(options.data));\n }\n private drawLimitChart(svg: any, options: Chart): void {\n const element = svg.node().getBoundingClientRect();\n const yAccessor = (d: any) => d[options.field] || 0;\n const yScale = d3\n .scaleLinear()\n .domain(\n options.domain\n ? options.domain\n : [\n Math.min(d3.min(options.data, yAccessor), 0),\n d3.max(options.data, yAccessor),\n ]\n )\n .range([element.height - 4, 4]);\n const line = svg.append('g').selectAll('rect').data([options.data[0]]);\n line\n .enter()\n .append('rect')\n .attr('x', 0)\n .attr('y', (d: any) => yScale(yAccessor(d)) + 1)\n .attr('shape-rendering', 'crispEdges')\n .attr('fill', options.color ?? '#ff9800')\n .attr('title', 0)\n .attr('width', () => '100%')\n .attr('height', 1);\n line.exit().remove();\n\n line\n .enter()\n .append('text')\n .attr(\n 'style',\n 'font-weight: 600; font-size: var(--ft-text-font-size-sm);'\n )\n .attr('x', 0)\n .attr('y', (d: any) => yScale(yAccessor(d)) + 16)\n .attr('fill', 'var(--ft-danger-color)')\n .text(options.label);\n }\n private drawEventsPlaceholder(svg: any, options: Chart): void {\n const domRect: DOMRect = svg.node().getBoundingClientRect();\n const xAccessor = (d: any) => d[options.categoryField];\n const yAccessor = (d: any) => d[options.field] || 0;\n const xScale = d3\n .scaleBand()\n .domain(options.data.map(xAccessor))\n .range([0, domRect.width])\n .padding(typeof options.padding === 'number' ? options.padding : 0);\n const yScale = d3\n .scaleLinear()\n .domain(\n options.domain ?? [\n Math.min(d3.min(options.data, yAccessor), 0),\n d3.max(options.data, yAccessor),\n ]\n )\n .range([domRect.height, 0]);\n\n const columns = svg\n .append('g')\n .attr('class', 'ft-chart__placeholder')\n .selectAll('rect')\n .data(options.data);\n columns\n .enter()\n .append('rect')\n .attr('x', (d: any) => xScale(d[options.categoryField]))\n .attr('y', () => 0)\n .attr('shape-rendering', 'crispEdges')\n .attr('fill', 'rgba(0,0,0,0)')\n .attr('tabindex', 0)\n .merge(columns)\n .attr('width', Math.max(1, xScale.bandwidth()))\n .attr('height', () => yScale(0))\n .on('click', (event: MouseEvent, d: any) => {\n if (options.click) {\n options.click(event, d);\n }\n });\n columns.exit().remove();\n }\n private handleResize(): void {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n for (const [element, items] of this.charts.entries()) {\n this.render(element, items);\n }\n }, 300);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface UiOptions {\n iconSettings: {\n path: string;\n collection: string;\n mode: 'external' | undefined;\n };\n}\n\nexport const UI_OPTIONS = new InjectionToken<UiOptions>('UI_OPTIONS');\n","import { Injectable, inject } from '@angular/core';\nimport { UI_OPTIONS, UiOptions } from './models/ui-options';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UiService {\n private options = inject<UiOptions>(UI_OPTIONS);\n\n\n get(): UiOptions {\n return this.options;\n } \n}\n","import { Component, computed, HostBinding, inject, input } from '@angular/core';\n\nimport { UiService } from '../ui.service';\n\n@Component({\n selector: 'ft-icon',\n standalone: true,\n imports: [],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss'\n})\nexport class IconComponent {\n private options = inject(UiService);\n public collection = input<string>();\n public mode = input<string>();\n public name = input.required<string>();\n public path = input<string>();\n public src = input<string>();\n public url = computed(() => {\n let collection = this.collection();\n let mode = this.mode();\n let path = this.path();\n const options = this.options.get().iconSettings;\n // Set the default collection if the mode is external\n if (!this.collection()) {\n if (options && options.collection) {\n collection = options.collection;\n } else if (this.mode() === 'external') {\n collection = 'icons';\n }\n }\n if (!this.mode()) {\n if (this.options.get().iconSettings && options.mode) {\n mode = options.mode;\n } else {\n mode = 'external';\n }\n }\n if (mode === 'external') {\n // If the icon mode is external\n if (!this.path()) {\n if (options && 'path' in options) {\n path = options.path;\n } else {\n path = 'assets';\n }\n }\n return `${path}/${collection}.svg#${this.name()}`;\n } else {\n // If the icon mode is inline\n const name =\n this.collection() && this.collection() !== 'unset'\n ? `${this.collection()}--${this.name()}`\n : this.name();\n return `#${name}`;\n }\n });\n public class = input<string>();\n @HostBinding('class') get hostClasses(): string {\n return ['ft-icon', this.class()].join(' ');\n }\n}\n","@if (!src()) {\n<svg>\n <use attr.href=\"{{ url() }}\" />\n</svg>\n} @else {\n<img [src]=\"src()\" alt=\"\" />\n}","import {\n Component,\n ElementRef,\n HostBinding,\n inject,\n input,\n} from '@angular/core';\n\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'ft-image',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './image.component.html',\n styleUrl: './image.component.scss'\n})\nexport class ImageComponent {\n private element = inject(ElementRef);\n\n readonly class = input<string>('');\n @HostBinding('class.ft-image--error') error!: boolean;\n @HostBinding('class.ft-image--loading') loading: boolean = false;\n readonly src = input.required<string>();\n readonly alt = input<string>('');\n shown: boolean = false;\n\n ngOnInit() {\n if ('IntersectionObserver' in window) {\n let elementObserver = new IntersectionObserver(\n (entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n let image = new Image();\n image.src = this.src();\n setTimeout(() => {\n if (!this.shown && !this.error) {\n this.loading = true;\n }\n }, 100);\n image.onerror = () => {\n this.error = true;\n this.loading = false;\n };\n image.onload = () => {\n if ('decode' in image) {\n image.decode().then(() => {\n this.loading = false;\n this.shown = true;\n });\n } else {\n this.loading = false;\n this.shown = true;\n }\n };\n elementObserver.unobserve(this.element.nativeElement);\n }\n });\n },\n {\n rootMargin: '0px 0px 200px 0px',\n }\n );\n elementObserver.observe(this.element.nativeElement);\n } else {\n console.error('IntersectionObserver not available.');\n this.loading = false;\n this.shown = true;\n }\n }\n @HostBinding('class') get hostClasses(): string {\n return ['ft-image', this.class()].join(' ');\n }\n}\n","@if (shown) {\n <img [src]=\"src()\" [alt]=\"alt()\" />\n}\n@if (error) {\n <ft-icon name=\"warning\" size=\"2\"></ft-icon>\n}","import {\n Component,\n Injectable,\n OutputEmitterRef,\n inject,\n output,\n} from '@angular/core';\nimport {\n MAT_DIALOG_DATA,\n MatDialog,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport {\n MAT_SNACK_BAR_DATA,\n MatSnackBar,\n MatSnackBarModule,\n} from '@angular/material/snack-bar';\n\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { IconComponent } from './icon/icon.component';\nimport { MessageOptions } from './models/message-options';\nimport { MessageContent } from './models/message-content';\nimport { StringService } from '@factor_ec/utils';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n imports: [MatSnackBarModule, IconComponent],\n template: `\n @if (data.options.icon) {\n <ft-icon [name]=\"data.options.icon\" class=\"ft-icon--2\" />\n } @switch (data.message?.type) { @case ('html') {\n <div [innerHTML]=\"data.message?.content\"></div>\n } @default {\n {{ data.message?.content }}\n } }\n `,\n})\nexport class MessageContentComponent {\n data = inject(MAT_SNACK_BAR_DATA);\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatDialogModule, IconComponent],\n template: `\n @if (data.options?.title) {\n <h1 mat-dialog-title class=\"ft-message__title\">\n @if (data.options?.titleIcon) {\n <ft-icon\n [name]=\"data.options?.titleIcon?.name\"\n [collection]=\"data.options?.titleIcon?.collection\"\n [ngClass]=\"data.options?.titleIcon?.class\"\n ></ft-icon>\n }\n <div>{{ data.options?.title }}</div>\n </h1>\n }\n <div\n mat-dialog-content\n class=\"ft-message__content\"\n [ngClass]=\"data.options?.class\"\n >\n @if (data.options?.icon) {\n <ft-icon\n [name]=\"data.options?.icon?.name\"\n [collection]=\"data.options?.icon?.collection\"\n [ngClass]=\"data.options?.icon?.class\"\n ></ft-icon>\n } @switch (data.message?.type) { @case ('html') {\n <div [innerHTML]=\"data.message?.content\"></div>\n } @default {\n {{ data.message?.content }}\n } }\n </div>\n @if (data.options.actionsVisible) {\n <div mat-dialog-actions class=\"ft-message__actions\">\n @if (data.options?.actions?.length > 0) { @for (action of\n data.options?.actions; track action; let i = $index) { @switch\n (action.type) { @case ('raised') {\n <button\n type=\"button\"\n mat-raised-button\n [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\"\n >\n {{ action.label }}\n </button>\n } @case ('flat') {\n <button\n type=\"button\"\n mat-flat-button\n [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\"\n >\n {{ action.label }}\n </button>\n } @case ('stroked') {\n <button\n type=\"button\"\n mat-stroked-button\n [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\"\n >\n {{ action.label }}\n </button>\n } @default {\n <button type=\"button\" mat-button (click)=\"select(action.value)\">\n {{ action.label }}\n </button>\n } } } } @else {\n <button\n type=\"button\"\n mat-flat-button\n color=\"primary\"\n (click)=\"select('-1')\"\n i18n\n >\n Accept\n </button>\n }\n </div>\n }\n `,\n})\nexport class MessageDialogComponent {\n data = inject(MAT_DIALOG_DATA);\n\n readonly beforeSelect: OutputEmitterRef<string> = output();\n\n select(value: string) {\n this.beforeSelect.emit(value);\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MessageService {\n private snackBar = inject(MatSnackBar);\n private dialog = inject(MatDialog);\n private stringService = inject(StringService);\n\n show(\n message: string | MessageContent,\n options?: MessageOptions\n ): Observable<any> {\n const selectionSource: ReplaySubject<string> = new ReplaySubject<string>(\n undefined\n );\n const selection: Observable<string> = selectionSource.asObservable();\n const defaults: MessageOptions = {\n type: 'notification',\n actionsVisible: true,\n };\n options = Object.assign(defaults, options);\n const data = {\n message:\n typeof message === 'string'\n ? { content: message, type: 'text' }\n : message,\n options,\n };\n let dialogRef: MatDialogRef<MessageDialogComponent>;\n switch (options.type) {\n default:\n case 'notification':\n const panelClass = ['ft-message', 'ft-message--notification'];\n if (options.class) {\n panelClass.push(options.class);\n }\n const snackBarRef = this.snackBar.openFromComponent(\n MessageContentComponent,\n {\n data,\n panelClass,\n duration:\n options.duration ??\n Math.min(\n this.stringService.calculateReadingTime(\n typeof message === 'string' ? message : message.content\n ),\n 30000\n ),\n verticalPosition: options.verticalPosition || 'top',\n }\n );\n snackBarRef.onAction().subscribe(() => {\n snackBarRef.dismiss();\n });\n break;\n case 'modal':\n dialogRef = this.dialog.open(MessageDialogComponent, {\n width: options.width || '350px',\n data,\n panelClass: ['ft-message', 'ft-message--modal'],\n autoFocus: false,\n disableClose: true,\n });\n dialogRef.componentInstance.beforeSelect.subscribe((response: any) => {\n selectionSource.next(response);\n dialogRef.close();\n });\n break;\n }\n return selection;\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n input,\n OnInit,\n PLATFORM_ID,\n inject,\n OutputEmitterRef,\n output,\n OnDestroy\n} from '@angular/core';\n\n@Directive({\n selector: '[ftObserveIntersecting]',\n standalone: true\n})\nexport class ObserveIntersectingDirective implements OnInit, OnDestroy {\n private element = inject(ElementRef);\n private readonly platformId = inject(PLATFORM_ID);\n private elementObserver: IntersectionObserver | null = null;\n\n ftObserveIntersectingOptions = input<{\n root?: HTMLElement;\n rootMargin?: string;\n threshold?: number | number[];\n }>();\n public readonly event: OutputEmitterRef<boolean> = output({ alias: 'ftObserveIntersecting' });\n \n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n if ('IntersectionObserver' in window) {\n this.elementObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry: IntersectionObserverEntry) => {\n this.event.emit(entry.isIntersecting);\n });\n }, this.ftObserveIntersectingOptions());\n this.elementObserver.observe(this.element.nativeElement);\n } else {\n console.error('ftObserveIntersecting not available in this browser.');\n }\n }\n }\n ngOnDestroy(): void {\n if (this.elementObserver) {\n this.elementObserver.disconnect();\n this.elementObserver = null;\n }\n }\n}\n","import { Component, HostBinding, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ft-progress',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './progress.component.html',\n styleUrl: './progress.component.scss'\n})\nexport class ProgressComponent {\n mode = input<'determinate' | 'indeterminate'>('indeterminate');\n overlay = input<boolean>(false);\n value = input<number>(0);\n\n class = input<string>('');\n @HostBinding('class')\n get hostClasses(): string {\n return [\n 'ft-progress',\n this.overlay() ? 'ft-progress--overlay' : '',\n this.class()\n ].join(' ');\n }\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" [ngClass]=\"mode() === 'determinate' ? 'ft-bar--determinate' : 'ft-bar--indeterminate'\" cx=\"50\"\n cy=\"50\" r=\"40\"\n [ngStyle]=\"{'stroke-dashoffset': mode() === 'determinate'? 'calc((3.14159265 * 40 * 2 * (100 - ' + value() + ')) / 100)' : null}\">\n </circle>\n</svg>","import { Component, Input, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ft-rating',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './rating.component.html',\n styleUrl: './rating.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RatingComponent,\n multi: true\n }\n ]\n})\nexport class RatingComponent implements ControlValueAccessor {\n disabled: boolean = false;\n hoverValue!: number;\n propagateChange = (_: any) => { };\n readonly readOnly = input<boolean>(false);\n stars: any[] = [\n { value: 1 },\n { value: 2 },\n { value: 3 },\n { value: 4 },\n { value: 5 }\n ];\n _value!: number;\n\n get value() {\n return this._value;\n }\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input() set value(value: any) {\n this._value = value;\n this.propagateChange(this._value);\n }\n registerOnChange(fn: (_: any) => void) {\n this.propagateChange = fn;\n }\n registerOnTouched(fn: (_: any) => void) {\n //this.propagateChange = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n setRate(value: number, isHover?: boolean) {\n if (isHover) {\n this.hoverValue = value;\n } else {\n this.value = value;\n }\n }\n updateValue(event: any) {\n this.value = event.target.value;\n }\n writeValue(value: string) {\n this.value = value;\n }\n}","@for (star of stars; track star) {\n <ng-container *ngTemplateOutlet=\"!readOnly()? buttonTemplate : starTemplate; context:{star:star}\"></ng-container>\n}\n<ng-template #buttonTemplate let-star=\"star\">\n @if (!readOnly()) {\n <button type=\"button\" class=\"ft-rating__item\" [disabled]=\"disabled\"\n (mouseover)=\"setRate(star.value, true)\" (focus)=\"setRate(star.value, true)\" (blur)=\"setRate(0, true)\"\n (mouseout)=\"setRate(0, true)\" (click)=\"setRate(star.value)\">\n <ng-container *ngTemplateOutlet=\"starTemplate; context:{star:star}\"></ng-container>\n </button>\n } @else {\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n }\n</ng-template>\n<ng-template #starTemplate let-star=\"star\">\n <svg [ngClass]=\"{'ft-rating__item-icon--hover': hoverValue >= star.value, 'ft-rating__item-icon--active': value >= star.value}\"\n viewBox=\"0 0 24 24\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AvatarComponent } from './avatar/avatar.component';\nimport { IconComponent } from './icon/icon.component';\nimport { ImageComponent } from './image/image.component';\nimport { ProgressComponent } from './progress/progress.component';\nimport { RatingComponent } from './rating/rating.component';\nimport { ObserveIntersectingDirective } from './observe-intersecting.directive';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n AvatarComponent,\n IconComponent,\n ImageComponent,\n ProgressComponent,\n RatingComponent,\n ObserveIntersectingDirective\n ],\n exports: [\n AvatarComponent,\n IconComponent,\n ImageComponent,\n ProgressComponent,\n RatingComponent,\n ObserveIntersectingDirective\n ]\n})\nexport class UiModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;MAYa,eAAe,CAAA;AAClB,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAE3C,KAAK,GAAG,KAAK,EAAU;AACvB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACvC,KAAC,CAAC;AACF,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU;AAChC,IAAA,MAAM,GAAG,MAAM,CAAU,KAAK,CAAC;IAC/B,GAAG,GAAG,KAAK,EAAU;AACrB,IAAA,IAA2C,eAAe,GAAA;AACxD,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;;AAE5D,IAAA,IAA2C,eAAe,GAAA;AACxD,QAAA,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAA,IAAA,EAAO,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,CAAG,GAAG,EAAE;;IAE/C,KAAK,GAAG,KAAK,EAAU;AACvB,IAAA,IAA0B,WAAW,GAAA;AACnC,QAAA,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;AAG9C,IAAA,WAAA,GAAA;;QAEE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;YACxB,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAChC,gBAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE;AACzB,gBAAA,KAAK,CAAC,GAAG,GAAG,KAAK;AACjB,gBAAA,KAAK,CAAC,MAAM,GAAG,MAAK;AAClB,oBAAA,IAAI,QAAQ,IAAI,KAAK,EAAE;AACrB,wBAAA,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAK;AACvB,4BAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,yBAAC,CAAC;;yBACG;AACL,wBAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC;;AAEhD,iBAAC;;AAEL,SAAC,CAAC;;AAGJ,IAAA,WAAW,CAAC,KAAa,EAAA;QACvB,MAAM,WAAW,GAAa,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;QACxD,MAAM,QAAQ,GAAW,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE;AAChG,QAAA,OAAO,QAAQ;;uGA5CN,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,qsBCZ5B,mDAEC,EAAA,MAAA,EAAA,CAAA,uaAAA,CAAA,EAAA,CAAA;;2FDUY,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;+BACI,WAAW,EAAA,UAAA,EACT,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,uaAAA,CAAA,EAAA;wDAc8B,eAAe,EAAA,CAAA;sBAAzD,WAAW;uBAAC,wBAAwB;gBAGM,eAAe,EAAA,CAAA;sBAAzD,WAAW;uBAAC,wBAAwB;gBAIX,WAAW,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO;;;MEpBT,YAAY,CAAA;AACf,IAAA,aAAa;AACb,IAAA,MAAM,GAAyB,IAAI,GAAG,EAAE;AAEhD,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAGjE,IAAA,MAAM,CAAC,OAAmB,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;IAE7B,MAAM,CAAC,OAAmB,EAAE,KAAc,EAAA;;AAExC,QAAA,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;QAGvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;;AAGjC,QAAA,MAAM,MAAM,GAAa,CAAC,CAAC,CAAC;AAC5B,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;gBACtB,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;oBACrC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;AAE9B,aAAC,CAAC;AACJ,SAAC,CAAC;AACF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,MAAM,GAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;;AAGrC,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACrB,gBAAA,QAAQ,IAAI,CAAC,IAAI;AACf,oBAAA,KAAK,OAAO;AACV,wBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC;wBAC7C;AACF,oBAAA,KAAK,QAAQ;AACX,wBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC;wBAC9C;AACF,oBAAA,KAAK,MAAM;AACT,wBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC;wBAC5C;AACF,oBAAA,KAAK,QAAQ;AACX,wBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC;wBAC9C;AACF,oBAAA,KAAK,OAAO;AACV,wBAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC;wBACpD;;AAEN,aAAC,CAAC;;;AAGE,IAAA,QAAQ,CAAC,GAAQ,EAAE,MAAa,EAAE,MAAW,EAAA;QACnD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,qBAAqB,EAAE;QACnD,MAAM,MAAM,GAAG;AACZ,aAAA,WAAW;aACX,MAAM,CAAC,MAAM;AACb,aAAA,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;;QAGvC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;QAC9B;aACG,MAAM,CAAC,MAAM;AACb,aAAA,IAAI,CAAC,OAAO,EAAE,QAAQ;AACtB,aAAA,IAAI,CAAC,MAAM,EAAE,qBAAqB;AAClC,aAAA,IAAI,CAAC,GAAG,EAAE,CAAC;aACX,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AACjC,aAAA,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,aAAA,IAAI,CAAC,iBAAiB,EAAE,YAAY;aACpC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAEvB;;;;AAIE;;IAEI,eAAe,CAAC,GAAQ,EAAE,OAAc,EAAA;QAC9C,MAAM,OAAO,GAAY,GAAG,CAAC,IAAI,EAAE,CAAC,qBAAqB,EAAE;AAC3D,QAAA,MAAM,SAAS,GAAG,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;AACtD,QAAA,MAAM,SAAS,GAAG,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACnD,MAAM,MAAM,GAAG;AACZ,aAAA,SAAS;aACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;aAClC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;AACxB,aAAA,OAAO,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG;AACZ,aAAA,WAAW;AACX,aAAA,MAAM,CACL,OAAO,CAAC,MAAM,IAAI;AAChB,YAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5C,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SAChC;aAEF,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnC,MAAM,OAAO,GAAG;aACb,MAAM,CAAC,GAAG;AACV,aAAA,IAAI,CAAC,OAAO,EAAE,kBAAkB;aAChC,SAAS,CAAC,QAAQ;AAClB,aAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACrB;AACG,aAAA,KAAK;aACL,MAAM,CAAC,QAAQ;aACf,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;aAC1C,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;AAC7C,aAAA,KAAK,CAAC,MAAM,EAAE,mBAAmB;AACjC,aAAA,IAAI,CAAC,GAAG,EAAE,GAAG;aACb,KAAK,CAAC,OAAO;AACb,aAAA,IAAI,CAAC,IAAI,EAAE,CAAC,CAAM,KACjB,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;aAEjE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAM,KACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CACjC;AACH,QAAA,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;;IAEjB,eAAe,CAAC,GAAQ,EAAE,OAAc,EAAA;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,qBAAqB,EAAE;AAClD,QAAA,MAAM,SAAS,GAAG,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;;AAEtD,QAAA,MAAM,SAAS,GAAG,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QAEnD,MAAM,MAAM,GAAG;AACZ,aAAA,SAAS;aACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;aAClC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;AACxB,aAAA,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC;QAClC,MAAM,MAAM,GAAG;AACZ,aAAA,WAAW;aACX,MAAM,CACL,OAAO,CAAC;cACJ,OAAO,CAAC;AACV,cAAE;AACE,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC5C,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;aAChC;aAEN,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjC,MAAM,OAAO,GAAG;aACb,MAAM,CAAC,GAAG;AACV,aAAA,IAAI,CAAC,OAAO,EAAE,kBAAkB;aAChC,SAAS,CAAC,MAAM;AAChB,aAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACrB;AACG,aAAA,KAAK;aACL,MAAM,CAAC,MAAM;AACb,aAAA,IAAI,CAAC,GAAG,EAAE,CAAC,CAAM,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1C,aAAA,IAAI,CAAC,GAAG,EAAE,CAAC,CAAM,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1C,aAAA,IAAI,CAAC,iBAAiB,EAAE,YAAY;aACpC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;AACvC,aAAA,IAAI,CAAC,OAAO,EAAE,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;aAC1C,KAAK,CAAC,OAAO;AACb,aAAA,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;aAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAM,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,QAAA,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;;IAEjB,aAAa,CAAC,GAAQ,EAAE,OAAc,EAAA;QAC5C,MAAM,OAAO,GAAY,GAAG,CAAC,IAAI,EAAE,CAAC,qBAAqB,EAAE;AAC3D,QAAA,MAAM,SAAS,GAAG,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;AACtD,QAAA,MAAM,SAAS,GAAG,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACnD,MAAM,MAAM,GAAG;AACZ,aAAA,SAAS;aACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;aAClC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;AACxB,aAAA,OAAO,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG;AACZ,aAAA,WAAW;AACX,aAAA,MAAM,CACL,OAAO,CAAC,MAAM,IAAI;AAChB,YAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5C,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SAChC;aAEF,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnC,MAAM,aAAa,GAAG;AACnB,aAAA,IAAI;AACJ,aAAA,CAAC,CAAC,CAAC,CAAM,KACR,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAEjE,aAAA,CAAC,CAAC,CAAC,CAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD;aACG,MAAM,CAAC,MAAM;AACb,aAAA,IAAI,CAAC,OAAO,EAAE,gBAAgB;AAC9B,aAAA,IAAI,CAAC,MAAM,EAAE,MAAM;aACnB,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;aACzC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;AAC7C,aAAA,IAAI,CAAC,gBAAgB,EAAE,OAAO;aAC9B,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;IAEnC,cAAc,CAAC,GAAQ,EAAE,OAAc,EAAA;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,qBAAqB,EAAE;AAClD,QAAA,MAAM,SAAS,GAAG,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACnD,MAAM,MAAM,GAAG;AACZ,aAAA,WAAW;aACX,MAAM,CACL,OAAO,CAAC;cACJ,OAAO,CAAC;AACV,cAAE;AACE,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC5C,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;aAChC;aAEN,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE;AACG,aAAA,KAAK;aACL,MAAM,CAAC,MAAM;AACb,aAAA,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,aAAA,IAAI,CAAC,GAAG,EAAE,CAAC,CAAM,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9C,aAAA,IAAI,CAAC,iBAAiB,EAAE,YAAY;aACpC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;AACvC,aAAA,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,aAAA,IAAI,CAAC,OAAO,EAAE,MAAM,MAAM;AAC1B,aAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;QAEpB;AACG,aAAA,KAAK;aACL,MAAM,CAAC,MAAM;AACb,aAAA,IAAI,CACH,OAAO,EACP,2DAA2D;AAE5D,aAAA,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,aAAA,IAAI,CAAC,GAAG,EAAE,CAAC,CAAM,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC/C,aAAA,IAAI,CAAC,MAAM,EAAE,wBAAwB;AACrC,aAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;IAEhB,qBAAqB,CAAC,GAAQ,EAAE,OAAc,EAAA;QACpD,MAAM,OAAO,GAAY,GAAG,CAAC,IAAI,EAAE,CAAC,qBAAqB,EAAE;AAC3D,QAAA,MAAM,SAAS,GAAG,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;AACtD,QAAA,MAAM,SAAS,GAAG,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACnD,MAAM,MAAM,GAAG;AACZ,aAAA,SAAS;aACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;aAClC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;AACxB,aAAA,OAAO,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG;AACZ,aAAA,WAAW;AACX,aAAA,MAAM,CACL,OAAO,CAAC,MAAM,IAAI;AAChB,YAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5C,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SAChC;aAEF,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE7B,MAAM,OAAO,GAAG;aACb,MAAM,CAAC,GAAG;AACV,aAAA,IAAI,CAAC,OAAO,EAAE,uBAAuB;aACrC,SAAS,CAAC,MAAM;AAChB,aAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACrB;AACG,aAAA,KAAK;aACL,MAAM,CAAC,MAAM;AACb,aAAA,IAAI,CAAC,GAAG,EAAE,CAAC,CAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACtD,aAAA,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;AACjB,aAAA,IAAI,CAAC,iBAAiB,EAAE,YAAY;AACpC,aAAA,IAAI,CAAC,MAAM,EAAE,eAAe;AAC5B,aAAA,IAAI,CAAC,UAAU,EAAE,CAAC;aAClB,KAAK,CAAC,OAAO;AACb,aAAA,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;aAC7C,IAAI,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,CAAC,CAAC;aAC9B,EAAE,CAAC,OAAO,EAAE,CAAC,KAAiB,EAAE,CAAM,KAAI;AACzC,YAAA,IAAI,OAAO,CAAC,KAAK,EAAE;AACjB,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;;AAE3B,SAAC,CAAC;AACJ,QAAA,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;;IAEjB,YAAY,GAAA;AAClB,QAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACnC,YAAA,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;AACpD,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;;SAE9B,EAAE,GAAG,CAAC;;uGAxRE,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCEY,UAAU,GAAG,IAAI,cAAc,CAAY,YAAY;;MCJvD,SAAS,CAAA;AACZ,IAAA,OAAO,GAAG,MAAM,CAAY,UAAU,CAAC;IAG/C,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,OAAO;;uGALV,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAT,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,cAFR,MAAM,EAAA,CAAA;;2FAEP,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCMY,aAAa,CAAA;AAChB,IAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;IAC5B,UAAU,GAAG,KAAK,EAAU;IAC5B,IAAI,GAAG,KAAK,EAAU;AACtB,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;IAC/B,IAAI,GAAG,KAAK,EAAU;IACtB,GAAG,GAAG,KAAK,EAAU;AACrB,IAAA,GAAG,GAAG,QAAQ,CAAC,MAAK;AACzB,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAClC,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACtB,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY;;AAE/C,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACtB,YAAA,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE;AACjC,gBAAA,UAAU,GAAG,OAAO,CAAC,UAAU;;AAC1B,iBAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE;gBACrC,UAAU,GAAG,OAAO;;;AAGxB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AAChB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE;AACnD,gBAAA,IAAI,GAAG,OAAO,CAAC,IAAI;;iBACd;gBACL,IAAI,GAAG,UAAU;;;AAGrB,QAAA,IAAI,IAAI,KAAK,UAAU,EAAE;;AAEvB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AAChB,gBAAA,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,EAAE;AAChC,oBAAA,IAAI,GAAG,OAAO,CAAC,IAAI;;qBACd;oBACL,IAAI,GAAG,QAAQ;;;YAGnB,OAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,UAAU,CAAA,KAAA,EAAQ,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE;;aAC5C;;AAEL,YAAA,MAAM,IAAI,GACR,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK;kBACvC,CAAG,EAAA,IAAI,CAAC,UAAU,EAAE,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,EAAE,CAAE;AACxC,kBAAE,IAAI,CAAC,IAAI,EAAE;YACjB,OAAO,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE;;AAErB,KAAC,CAAC;IACK,KAAK,GAAG,KAAK,EAAU;AAC9B,IAAA,IAA0B,WAAW,GAAA;AACnC,QAAA,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;uGAhDjC,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,q1BCX1B,sHAMC,EAAA,MAAA,EAAA,CAAA,+cAAA,CAAA,EAAA,CAAA;;2FDKY,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;+BACI,SAAS,EAAA,UAAA,EACP,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,QAAA,EAAA,sHAAA,EAAA,MAAA,EAAA,CAAA,+cAAA,CAAA,EAAA;8BAmDa,WAAW,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO;;;MEzCT,cAAc,CAAA;AACjB,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAE3B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACI,IAAA,KAAK;IACH,OAAO,GAAY,KAAK;AACvD,IAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC9B,IAAA,GAAG,GAAG,KAAK,CAAS,EAAE,CAAC;IAChC,KAAK,GAAY,KAAK;IAEtB,QAAQ,GAAA;AACN,QAAA,IAAI,sBAAsB,IAAI,MAAM,EAAE;YACpC,IAAI,eAAe,GAAG,IAAI,oBAAoB,CAC5C,CAAC,OAAO,EAAE,QAAQ,KAAI;AACpB,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACxB,oBAAA,IAAI,KAAK,CAAC,cAAc,EAAE;AACxB,wBAAA,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE;AACvB,wBAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;wBACtB,UAAU,CAAC,MAAK;4BACd,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9B,gCAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;yBAEtB,EAAE,GAAG,CAAC;AACP,wBAAA,KAAK,CAAC,OAAO,GAAG,MAAK;AACnB,4BAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,4BAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACtB,yBAAC;AACD,wBAAA,KAAK,CAAC,MAAM,GAAG,MAAK;AAClB,4BAAA,IAAI,QAAQ,IAAI,KAAK,EAAE;AACrB,gCAAA,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAK;AACvB,oCAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,oCAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACnB,iCAAC,CAAC;;iCACG;AACL,gCAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,gCAAA,IAAI,CAAC,KAAK,GAAG,IAAI;;AAErB,yBAAC;wBACD,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;;AAEzD,iBAAC,CAAC;AACJ,aAAC,EACD;AACE,gBAAA,UAAU,EAAE,mBAAmB;AAChC,aAAA,CACF;YACD,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;;aAC9C;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC;AACpD,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;;;AAGrB,IAAA,IAA0B,WAAW,GAAA;AACnC,QAAA,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;uGAtDlC,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB3B,kIAKC,EAAA,MAAA,EAAA,CAAA,2GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQW,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIZ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EACR,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,kIAAA,EAAA,MAAA,EAAA,CAAA,2GAAA,CAAA,EAAA;8BAQc,KAAK,EAAA,CAAA;sBAA1C,WAAW;uBAAC,uBAAuB;gBACI,OAAO,EAAA,CAAA;sBAA9C,WAAW;uBAAC,yBAAyB;gBAgDZ,WAAW,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO;;;ME7BT,uBAAuB,CAAA;AAClC,IAAA,IAAI,GAAG,MAAM,CAAC,kBAAkB,CAAC;uGADtB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAVxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;GAQT,EATS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,+BAAE,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAW/B,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAbnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC;AAC3C,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,EAAA,CAAA;AACF,iBAAA;;MAwFY,sBAAsB,CAAA;AACjC,IAAA,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC;IAErB,YAAY,GAA6B,MAAM,EAAE;AAE1D,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;uGANpB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAhFvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8ET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA/ES,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,0bAAE,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAiF5D,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAnFlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,CAAC;AACxE,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8ET,EAAA,CAAA;AACF,iBAAA;;MAcY,cAAc,CAAA;AACjB,IAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAC9B,IAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAC1B,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAE7C,IAAI,CACF,OAAgC,EAChC,OAAwB,EAAA;AAExB,QAAA,MAAM,eAAe,GAA0B,IAAI,aAAa,CAC9D,SAAS,CACV;AACD,QAAA,MAAM,SAAS,GAAuB,eAAe,CAAC,YAAY,EAAE;AACpE,QAAA,MAAM,QAAQ,GAAmB;AAC/B,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,cAAc,EAAE,IAAI;SACrB;QACD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC1C,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,OAAO,EACL,OAAO,OAAO,KAAK;kBACf,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM;AAClC,kBAAE,OAAO;YACb,OAAO;SACR;AACD,QAAA,IAAI,SAA+C;AACnD,QAAA,QAAQ,OAAO,CAAC,IAAI;YAClB;AACA,YAAA,KAAK,cAAc;AACjB,gBAAA,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,0BAA0B,CAAC;AAC7D,gBAAA,IAAI,OAAO,CAAC,KAAK,EAAE;AACjB,oBAAA,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;gBAEhC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CACjD,uBAAuB,EACvB;oBACE,IAAI;oBACJ,UAAU;oBACV,QAAQ,EACN,OAAO,CAAC,QAAQ;wBAChB,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,aAAa,CAAC,oBAAoB,CACrC,OAAO,OAAO,KAAK,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CACxD,EACD,KAAK,CACN;AACH,oBAAA,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,KAAK;AACpD,iBAAA,CACF;AACD,gBAAA,WAAW,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAK;oBACpC,WAAW,CAAC,OAAO,EAAE;AACvB,iBAAC,CAAC;gBACF;AACF,YAAA,KAAK,OAAO;gBACV,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACnD,oBAAA,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO;oBAC/B,IAAI;AACJ,oBAAA,UAAU,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC;AAC/C,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA,CAAC;gBACF,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAa,KAAI;AACnE,oBAAA,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC9B,SAAS,CAAC,KAAK,EAAE;AACnB,iBAAC,CAAC;gBACF;;AAEJ,QAAA,OAAO,SAAS;;uGAnEP,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MC3HY,4BAA4B,CAAA;AAC/B,IAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AACnB,IAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;IACzC,eAAe,GAAgC,IAAI;IAE3D,4BAA4B,GAAG,KAAK,EAIhC;IACY,KAAK,GAA8B,MAAM,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;IAE7F,QAAQ,GAAA;AACN,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,sBAAsB,IAAI,MAAM,EAAE;gBACpC,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,KAAI;AAC1D,oBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,KAAgC,KAAI;wBACnD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;AACvC,qBAAC,CAAC;AACJ,iBAAC,EAAE,IAAI,CAAC,4BAA4B,EAAE,CAAC;gBACvC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;;iBACnD;AACL,gBAAA,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC;;;;IAI3E,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;;uGA7BpB,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCNY,iBAAiB,CAAA;AAC5B,IAAA,IAAI,GAAG,KAAK,CAAkC,eAAe,CAAC;AAC9D,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,CAAC;AAC/B,IAAA,KAAK,GAAG,KAAK,CAAS,CAAC,CAAC;AAExB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,IAAA,IACI,WAAW,GAAA;QACb,OAAO;YACL,aAAa;YACb,IAAI,CAAC,OAAO,EAAE,GAAG,sBAAsB,GAAG,EAAE;YAC5C,IAAI,CAAC,KAAK;AACX,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC;;uGAZF,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV9B,4eAOM,EAAA,MAAA,EAAA,CAAA,s8CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIb,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACX,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,4eAAA,EAAA,MAAA,EAAA,CAAA,s8CAAA,CAAA,EAAA;8BAWrB,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;;MEET,eAAe,CAAA;IAC1B,QAAQ,GAAY,KAAK;AACzB,IAAA,UAAU;AACV,IAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAI;AACxB,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC;AACzC,IAAA,KAAK,GAAU;QACb,EAAE,KAAK,EAAE,CAAC,EAAE;QACZ,EAAE,KAAK,EAAE,CAAC,EAAE;QACZ,EAAE,KAAK,EAAE,CAAC,EAAE;QACZ,EAAE,KAAK,EAAE,CAAC,EAAE;QACZ,EAAE,KAAK,EAAE,CAAC;KACX;AACD,IAAA,MAAM;AAEN,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;;;IAIpB,IAAa,KAAK,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEnC,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;AAE3B,IAAA,iBAAiB,CAAC,EAAoB,EAAA;;;AAGtC,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;IAE5B,OAAO,CAAC,KAAa,EAAE,OAAiB,EAAA;QACtC,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;aAClB;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;AAGtB,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;;AAEjC,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;uGA3CT,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EARf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,eAAe;AAC5B,gBAAA,KAAK,EAAE;AACR;SACF,EChBH,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iuDAwBc,yDDjBF,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAWX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAd3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,cACT,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAGZ,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAiB,eAAA;AAC5B,4BAAA,KAAK,EAAE;AACR;AACF,qBAAA,EAAA,QAAA,EAAA,iuDAAA,EAAA;8BAqBY,KAAK,EAAA,CAAA;sBAAjB;;;MERU,QAAQ,CAAA;uGAAR,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,QAAQ,YAjBjB,YAAY;YACZ,eAAe;YACf,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,eAAe;AACf,YAAA,4BAA4B,aAG5B,eAAe;YACf,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,eAAe;YACf,4BAA4B,CAAA,EAAA,CAAA;AAGnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,QAAQ,YAjBjB,YAAY;YAIZ,iBAAiB;YACjB,eAAe,CAAA,EAAA,CAAA;;2FAYN,QAAQ,EAAA,UAAA,EAAA,CAAA;kBApBpB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,iBAAiB;wBACjB,eAAe;wBACf;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,iBAAiB;wBACjB,eAAe;wBACf;AACD;AACF,iBAAA;;;AC5BD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"factor_ec-ui.mjs","sources":["../../../projects/ui/src/lib/avatar/avatar.ts","../../../projects/ui/src/lib/avatar/avatar.html","../../../projects/ui/src/lib/models/ui-options.ts","../../../projects/ui/src/lib/icon/icon.ts","../../../projects/ui/src/lib/icon/icon.html","../../../projects/ui/src/lib/lazy-image/lazy-image.ts","../../../projects/ui/src/lib/lazy-image/lazy-image.html","../../../projects/ui/src/lib/progress/progress.ts","../../../projects/ui/src/lib/progress/progress.html","../../../projects/ui/src/lib/rating/rating.ts","../../../projects/ui/src/lib/rating/rating.html","../../../projects/ui/src/lib/constants/message-position.ts","../../../projects/ui/src/lib/message-service.ts","../../../projects/ui/src/lib/observe-intersecting.ts","../../../projects/ui/src/lib/constants/message-type.ts","../../../projects/ui/src/public-api.ts","../../../projects/ui/src/factor_ec-ui.ts"],"sourcesContent":["import { Component, computed, effect, HostBinding, inject, input, signal } from '@angular/core';\nimport { ColorUtil } from '@factor_ec/utils';\n\n@Component({\n selector: 'ft-avatar',\n imports: [],\n templateUrl: './avatar.html',\n styleUrl: './avatar.css',\n})\nexport class Avatar {\n private colorService = inject(ColorUtil);\n\n color = input<string>();\n initials = computed(() => {\n return this.getInitials(this.label());\n });\n label = input.required<string>();\n loaded = signal<boolean>(false);\n src = input<string>();\n @HostBinding('style.--ft-avatar-bg-color') get backgroundColor(): string {\n return this.color() || this.colorService.hex(this.label());\n }\n @HostBinding('style.--ft-avatar-bg-image') get backgroundImage(): string {\n return this.src() ? `url(${this.src()})` : '';\n }\n class = input<string>();\n @HostBinding('class') get hostClasses(): string {\n return ['ft-avatar', this.class()].join(' ');\n }\n\n constructor() {\n // Usa `effect` para reaccionar a los cambios en el valor de `src`\n effect(() => {\n const value = this.src();\n if (value && value.trim() !== '') {\n const image = new Image();\n image.src = value;\n image.onload = () => {\n if ('decode' in image) {\n image.decode().then(() => {\n this.loaded.set(true);\n });\n } else {\n console.error('Image.decode not available.');\n }\n };\n }\n });\n }\n\n getInitials(value: string): string {\n const allInitials: string[] = value.match(/\\b\\w/g) || [];\n const initials: string = ((allInitials.shift() || '') + (allInitials.pop() || '')).toUpperCase();\n return initials;\n }\n}\n","@if (!loaded()) {\n<div>{{ initials() }}</div>\n}","import { InjectionToken } from '@angular/core';\n\nexport interface UiOptions {\n iconSettings: {\n path: string;\n collection: string;\n mode: 'external' | undefined;\n };\n}\n\nexport const UI_OPTIONS = new InjectionToken<UiOptions>('UI_OPTIONS');\n","import { Component, computed, HostBinding, inject, input, signal } from '@angular/core';\nimport { UI_OPTIONS, UiOptions } from '../models/ui-options';\n\n@Component({\n selector: 'ft-icon',\n imports: [],\n templateUrl: './icon.html',\n styleUrl: './icon.css',\n host: {\n class: 'ft-icon'\n }\n})\nexport class Icon {\n private readonly UIOptions = inject(UI_OPTIONS, { optional: true });\n private options = signal<UiOptions | null>(this.UIOptions || null);\n public collection = input<string>();\n public mode = input<string>();\n public name = input.required<string>();\n public path = input<string>();\n public src = input<string>();\n public url = computed(() => {\n let collection = this.collection() ?? 'icons';\n let mode = this.mode();\n let path = this.path();\n const options = this.options()?.iconSettings;\n // Set the default collection if the mode is external\n if (!this.collection()) {\n if (options && options.collection) {\n collection = options.collection;\n } else if (this.mode() === 'external') {\n collection = 'icons';\n }\n }\n if (!this.mode()) {\n if (this.options()?.iconSettings && options?.mode) {\n mode = options.mode;\n } else {\n mode = 'external';\n }\n }\n if (mode === 'external') {\n // If the icon mode is external\n if (!this.path()) {\n if (options && 'path' in options) {\n path = options.path;\n } else {\n path = '';\n }\n }\n return `${path}/${collection}.svg#${this.name()}`;\n } else {\n // If the icon mode is inline\n const name =\n this.collection() && this.collection() !== 'unset'\n ? `${this.collection()}--${this.name()}`\n : this.name();\n return `#${name}`;\n }\n });\n}\n","@if (!src()) {\n<svg>\n <use attr.href=\"{{ url() }}\" />\n</svg>\n} @else {\n<img [src]=\"src()\" alt=\"\" />\n}","import { Component, ElementRef, HostBinding, inject, input } from '@angular/core';\nimport { Icon } from '../icon/icon';\n\n@Component({\n selector: 'ft-lazy-image',\n imports: [Icon],\n templateUrl: './lazy-image.html',\n styleUrl: './lazy-image.css',\n})\nexport class LazyImage {\n private element = inject(ElementRef);\n\n readonly class = input<string>('');\n @HostBinding('class.ft-image--error') error!: boolean;\n @HostBinding('class.ft-image--loading') loading: boolean = false;\n readonly src = input.required<string>();\n readonly alt = input<string>('');\n shown: boolean = false;\n\n ngOnInit() {\n if ('IntersectionObserver' in window) {\n let elementObserver = new IntersectionObserver(\n (entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n let image = new Image();\n image.src = this.src();\n setTimeout(() => {\n if (!this.shown && !this.error) {\n this.loading = true;\n }\n }, 100);\n image.onerror = () => {\n this.error = true;\n this.loading = false;\n };\n image.onload = () => {\n if ('decode' in image) {\n image.decode().then(() => {\n this.loading = false;\n this.shown = true;\n });\n } else {\n this.loading = false;\n this.shown = true;\n }\n };\n elementObserver.unobserve(this.element.nativeElement);\n }\n });\n },\n {\n rootMargin: '0px 0px 200px 0px',\n }\n );\n elementObserver.observe(this.element.nativeElement);\n } else {\n console.error('IntersectionObserver not available.');\n this.loading = false;\n this.shown = true;\n }\n }\n @HostBinding('class') get hostClasses(): string {\n return ['ft-image', this.class()].join(' ');\n }\n}\n","@if (shown) {\n <img [src]=\"src()\" [alt]=\"alt()\" />\n}\n@if (error) {\n <ft-icon name=\"warning\" />\n}\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'ft-progress',\n imports: [],\n templateUrl: './progress.html',\n styleUrl: './progress.css',\n})\nexport class Progress {\n mode = input<'determinate' | 'indeterminate'>('indeterminate');\n overlay = input<boolean>(false);\n value = input<number>(0);\n\n class = input<string>('');\n @HostBinding('class')\n get hostClasses(): string {\n return [\n 'ft-progress',\n this.overlay() ? 'ft-progress--overlay' : '',\n this.class()\n ].join(' ');\n }\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\">\n <circle class=\"ft-track\" cx=\"50\" cy=\"50\" r=\"40\" />\n <circle class=\"ft-bar\" \n [class.ft-bar--determinate]=\"mode() === 'determinate'\"\n [class.ft-bar--indeterminate]=\"mode() === 'indeterminate'\"\n cx=\"50\" cy=\"50\" r=\"40\"\n [style.stroke-dashoffset]=\"mode() === 'determinate' ? 'calc((3.14159265 * 40 * 2 * (100 - ' + value() + ')) / 100)' : null\">\n </circle>\n</svg>","import { Component, ChangeDetectionStrategy, computed, input, output, signal } from '@angular/core';\n\ninterface Star {\n value: number;\n}\n\n@Component({\n selector: 'ft-rating',\n imports: [],\n templateUrl: './rating.html',\n styleUrl: './rating.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Rating {\n readonly readOnly = input<boolean>(false);\n readonly value = input<number>(0);\n readonly disabled = input<boolean>(false);\n \n readonly valueChange = output<number>();\n\n readonly stars: Star[] = [\n { value: 1 },\n { value: 2 },\n { value: 3 },\n { value: 4 },\n { value: 5 }\n ];\n\n readonly hoverValue = signal<number>(0);\n\n readonly isHovered = computed(() => (starValue: number) => {\n return this.hoverValue() >= starValue;\n });\n\n readonly isActive = computed(() => (starValue: number) => {\n return this.value() >= starValue;\n });\n\n readonly iconClasses = computed(() => (starValue: number) => {\n const hovered = this.isHovered()(starValue);\n const active = this.isActive()(starValue);\n \n return {\n 'ft-rating__item-icon--hover': hovered,\n 'ft-rating__item-icon--active': active\n };\n });\n\n setRate(value: number, isHover = false): void {\n if (isHover) {\n this.hoverValue.set(value);\n } else {\n this.valueChange.emit(value);\n }\n }\n\n clearHover(): void {\n this.hoverValue.set(0);\n }\n}\n","@for (star of stars; track star.value) {\n @if (!readOnly()) {\n <button \n type=\"button\" \n class=\"ft-rating__item\" \n [disabled]=\"disabled()\" \n (mouseover)=\"setRate(star.value, true)\"\n (focus)=\"setRate(star.value, true)\" \n (blur)=\"clearHover()\" \n (mouseout)=\"clearHover()\"\n (click)=\"setRate(star.value)\">\n <svg \n [class]=\"iconClasses()(star.value)\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n </button>\n } @else {\n <svg \n [class]=\"iconClasses()(star.value)\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <path\n d=\"M17.93 21.315c-.534.408-5.22-3.186-5.881-3.181-.663 0-5.307 3.656-5.846 3.254-.537-.403 1.29-6.165 1.081-6.822-.209-.656-4.972-4.138-4.772-4.796.201-.658 6.015-.627 6.55-1.036.533-.41 2.233-6.215 2.895-6.219.663 0 2.43 5.779 2.968 6.182.539.403 6.352.297 6.56.953.21.656-4.513 4.197-4.714 4.856-.2.658 1.692 6.398 1.159 6.808z\" />\n </svg>\n }\n}\n","export const MESSAGE_POSITION = {\n TOP: 'top',\n BOTTOM: 'bottom'\n};\n\nexport type MessagePosition = (typeof MESSAGE_POSITION)[keyof typeof MESSAGE_POSITION];\n","import {\n Component,\n Injectable,\n OutputEmitterRef,\n inject,\n output,\n} from '@angular/core';\nimport {\n MAT_DIALOG_DATA,\n MatDialog,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport {\n MAT_SNACK_BAR_DATA,\n MatSnackBar,\n MatSnackBarModule,\n} from '@angular/material/snack-bar';\n\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { Icon } from './icon/icon';\nimport { MessageOptions } from './models/message-options';\nimport { MessageContent } from './models/message-content';\nimport { StringUtil } from '@factor_ec/utils';\nimport { CommonModule } from '@angular/common';\nimport { MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\nimport { MESSAGE_POSITION } from './constants/message-position';\n\n@Component({\n standalone: true,\n imports: [MatSnackBarModule, Icon],\n template: `\n @if (data.options.icon) {\n <ft-icon [name]=\"data.options.icon\" class=\"ft-icon--2\" />\n } @switch (data.message?.type) { @case ('html') {\n <div [innerHTML]=\"data.message?.content\"></div>\n } @default {\n {{ data.message?.content }}\n } }\n `,\n})\nexport class MessageContentComponent {\n data = inject(MAT_SNACK_BAR_DATA);\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatDialogModule, Icon],\n template: `\n @if (data.options?.title) {\n <h1 mat-dialog-title class=\"ft-message__title\">\n @if (data.options?.titleIcon) {\n <ft-icon\n [name]=\"data.options?.titleIcon?.name\"\n [collection]=\"data.options?.titleIcon?.collection\"\n [ngClass]=\"data.options?.titleIcon?.class\"\n ></ft-icon>\n }\n <div>{{ data.options?.title }}</div>\n </h1>\n }\n <div\n mat-dialog-content\n class=\"ft-message__content\"\n [ngClass]=\"data.options?.class\"\n >\n @if (data.options?.icon) {\n <ft-icon\n [name]=\"data.options?.icon?.name\"\n [collection]=\"data.options?.icon?.collection\"\n [ngClass]=\"data.options?.icon?.class\"\n ></ft-icon>\n } @switch (data.message?.type) { @case ('html') {\n <div [innerHTML]=\"data.message?.content\"></div>\n } @default {\n {{ data.message?.content }}\n } }\n </div>\n @if (data.options.actionsVisible) {\n <div mat-dialog-actions class=\"ft-message__actions\">\n @if (data.options?.actions?.length > 0) { @for (action of\n data.options?.actions; track action; let i = $index) { @switch\n (action.type) { @case ('raised') {\n <button\n type=\"button\"\n mat-raised-button\n [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\"\n >\n {{ action.label }}\n </button>\n } @case ('flat') @case ('filled') {\n <button\n type=\"button\"\n mat-flat-button\n [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\"\n >\n {{ action.label }}\n </button>\n } @case ('stroked') @case ('outlined') {\n <button\n type=\"button\"\n mat-stroked-button\n [color]=\"action.metadata?.color\"\n (click)=\"select(action.value)\"\n >\n {{ action.label }}\n </button>\n } @default {\n <button type=\"button\" mat-button (click)=\"select(action.value)\">\n {{ action.label }}\n </button>\n } } } } @else {\n <button\n type=\"button\"\n mat-flat-button\n color=\"primary\"\n (click)=\"select('-1')\"\n i18n\n >\n Accept\n </button>\n }\n </div>\n }\n `,\n})\nexport class MessageDialogComponent {\n data = inject(MAT_DIALOG_DATA);\n\n readonly beforeSelect: OutputEmitterRef<string> = output();\n\n select(value: string) {\n this.beforeSelect.emit(value);\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MessageService {\n private snackBar = inject(MatSnackBar);\n private dialog = inject(MatDialog);\n private stringUtil = inject(StringUtil);\n\n show(\n message: string | MessageContent,\n options?: MessageOptions\n ): Observable<any> {\n const selectionSource: ReplaySubject<string> = new ReplaySubject<string>(\n undefined\n );\n const selection: Observable<string> = selectionSource.asObservable();\n const defaults: MessageOptions = {\n type: 'notification',\n actionsVisible: true,\n };\n options = Object.assign(defaults, options);\n const data = {\n message:\n typeof message === 'string'\n ? { content: message, type: 'text' }\n : message,\n options,\n };\n let dialogRef: MatDialogRef<MessageDialogComponent>;\n switch (options.type) {\n default:\n case 'notification':\n const panelClass = ['ft-message', 'ft-message--notification'];\n if (options.class) {\n panelClass.push(options.class);\n }\n const snackBarRef = this.snackBar.openFromComponent(\n MessageContentComponent,\n {\n data,\n panelClass,\n duration:\n options.duration ??\n Math.min(\n this.stringUtil.calculateReadingTime(\n typeof message === 'string' ? message : message.content\n ),\n 30000\n ),\n verticalPosition: MESSAGE_POSITION.TOP as MatSnackBarVerticalPosition,\n }\n );\n snackBarRef.onAction().subscribe(() => {\n snackBarRef.dismiss();\n });\n break;\n case 'modal':\n dialogRef = this.dialog.open(MessageDialogComponent, {\n width: options.width || '350px',\n data,\n panelClass: ['ft-message', 'ft-message--modal'],\n autoFocus: false,\n disableClose: true,\n });\n dialogRef.componentInstance.beforeSelect.subscribe((response: any) => {\n selectionSource.next(response);\n dialogRef.close();\n });\n break;\n }\n return selection;\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, inject, Injectable, input, output, PLATFORM_ID } from '@angular/core';\n\n@Directive({\n selector: '[ftObserveIntersecting]'\n})\nexport class ObserveIntersecting {\n private element = inject(ElementRef);\n private readonly platformId = inject(PLATFORM_ID);\n private elementObserver: IntersectionObserver | null = null;\n\n ftObserveIntersectingOptions = input<{\n root?: HTMLElement;\n rootMargin?: string;\n threshold?: number | number[];\n }>();\n public readonly ftObserveIntersecting = output<boolean>();\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n if ('IntersectionObserver' in window) {\n this.elementObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry: IntersectionObserverEntry) => {\n this.ftObserveIntersecting.emit(entry.isIntersecting);\n });\n }, this.ftObserveIntersectingOptions());\n this.elementObserver.observe(this.element.nativeElement);\n } else {\n console.error('ftObserveIntersecting not available in this browser.');\n }\n }\n }\n ngOnDestroy(): void {\n if (this.elementObserver) {\n this.elementObserver.disconnect();\n this.elementObserver = null;\n }\n }\n}\n","export const MESSAGE_TYPE = {\n MODAL: 'modal',\n NOTIFICATION: 'notification'\n};\n\nexport type MessageType = (typeof MESSAGE_TYPE)[keyof typeof MESSAGE_TYPE];\n","/*\n * Public API Surface of ui\n */\n\n// Components\nexport * from './lib/avatar/avatar';\nexport * from './lib/icon/icon';\nexport * from './lib/lazy-image/lazy-image';\nexport * from './lib/progress/progress';\nexport * from './lib/rating/rating';\n\n// Services\nexport * from './lib/message-service';\nexport * from './lib/observe-intersecting';\n\n// Models\nexport * from './lib/models/message-action';\nexport * from './lib/models/message-content';\nexport * from './lib/models/message-options';\nexport * from './lib/models/ui-options';\n\n// Constants\nexport * from './lib/constants/message-position';\nexport * from './lib/constants/message-type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@factor_ec/ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"license": "CC-BY-NC-ND-4.0",
|
|
5
5
|
"author": "Factor",
|
|
6
6
|
"peerDependencies": {
|
|
7
|
-
"@angular/common": ">=
|
|
8
|
-
"@angular/core": ">=
|
|
9
|
-
"@angular/localize": ">=
|
|
10
|
-
"@angular/material": ">=
|
|
11
|
-
"@factor_ec/utils": ">=
|
|
12
|
-
"d3": ">=7.9.0"
|
|
7
|
+
"@angular/common": ">=21.0.0",
|
|
8
|
+
"@angular/core": ">=21.0.0",
|
|
9
|
+
"@angular/localize": ">=21.0.0",
|
|
10
|
+
"@angular/material": ">=21.0.0",
|
|
11
|
+
"@factor_ec/utils": ">=6.0.0"
|
|
13
12
|
},
|
|
14
13
|
"dependencies": {
|
|
15
14
|
"tslib": "^2.3.0"
|
|
16
15
|
},
|
|
17
16
|
"sideEffects": false,
|
|
18
17
|
"module": "fesm2022/factor_ec-ui.mjs",
|
|
19
|
-
"typings": "
|
|
18
|
+
"typings": "types/factor_ec-ui.d.ts",
|
|
20
19
|
"exports": {
|
|
21
20
|
"./package.json": {
|
|
22
21
|
"default": "./package.json"
|
|
23
22
|
},
|
|
24
23
|
".": {
|
|
25
|
-
"types": "./
|
|
24
|
+
"types": "./types/factor_ec-ui.d.ts",
|
|
26
25
|
"default": "./fesm2022/factor_ec-ui.mjs"
|
|
27
26
|
}
|
|
28
27
|
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { OutputEmitterRef, InjectionToken } from '@angular/core';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
|
|
5
|
+
declare class Avatar {
|
|
6
|
+
private colorService;
|
|
7
|
+
color: _angular_core.InputSignal<string | undefined>;
|
|
8
|
+
initials: _angular_core.Signal<string>;
|
|
9
|
+
label: _angular_core.InputSignal<string>;
|
|
10
|
+
loaded: _angular_core.WritableSignal<boolean>;
|
|
11
|
+
src: _angular_core.InputSignal<string | undefined>;
|
|
12
|
+
get backgroundColor(): string;
|
|
13
|
+
get backgroundImage(): string;
|
|
14
|
+
class: _angular_core.InputSignal<string | undefined>;
|
|
15
|
+
get hostClasses(): string;
|
|
16
|
+
constructor();
|
|
17
|
+
getInitials(value: string): string;
|
|
18
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Avatar, never>;
|
|
19
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Avatar, "ft-avatar", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
declare class Icon {
|
|
23
|
+
private readonly UIOptions;
|
|
24
|
+
private options;
|
|
25
|
+
collection: _angular_core.InputSignal<string | undefined>;
|
|
26
|
+
mode: _angular_core.InputSignal<string | undefined>;
|
|
27
|
+
name: _angular_core.InputSignal<string>;
|
|
28
|
+
path: _angular_core.InputSignal<string | undefined>;
|
|
29
|
+
src: _angular_core.InputSignal<string | undefined>;
|
|
30
|
+
url: _angular_core.Signal<string>;
|
|
31
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Icon, never>;
|
|
32
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Icon, "ft-icon", never, { "collection": { "alias": "collection"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "path": { "alias": "path"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
declare class LazyImage {
|
|
36
|
+
private element;
|
|
37
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
38
|
+
error: boolean;
|
|
39
|
+
loading: boolean;
|
|
40
|
+
readonly src: _angular_core.InputSignal<string>;
|
|
41
|
+
readonly alt: _angular_core.InputSignal<string>;
|
|
42
|
+
shown: boolean;
|
|
43
|
+
ngOnInit(): void;
|
|
44
|
+
get hostClasses(): string;
|
|
45
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LazyImage, never>;
|
|
46
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LazyImage, "ft-lazy-image", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
declare class Progress {
|
|
50
|
+
mode: _angular_core.InputSignal<"determinate" | "indeterminate">;
|
|
51
|
+
overlay: _angular_core.InputSignal<boolean>;
|
|
52
|
+
value: _angular_core.InputSignal<number>;
|
|
53
|
+
class: _angular_core.InputSignal<string>;
|
|
54
|
+
get hostClasses(): string;
|
|
55
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Progress, never>;
|
|
56
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Progress, "ft-progress", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "overlay": { "alias": "overlay"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
interface Star {
|
|
60
|
+
value: number;
|
|
61
|
+
}
|
|
62
|
+
declare class Rating {
|
|
63
|
+
readonly readOnly: _angular_core.InputSignal<boolean>;
|
|
64
|
+
readonly value: _angular_core.InputSignal<number>;
|
|
65
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
66
|
+
readonly valueChange: _angular_core.OutputEmitterRef<number>;
|
|
67
|
+
readonly stars: Star[];
|
|
68
|
+
readonly hoverValue: _angular_core.WritableSignal<number>;
|
|
69
|
+
readonly isHovered: _angular_core.Signal<(starValue: number) => boolean>;
|
|
70
|
+
readonly isActive: _angular_core.Signal<(starValue: number) => boolean>;
|
|
71
|
+
readonly iconClasses: _angular_core.Signal<(starValue: number) => {
|
|
72
|
+
'ft-rating__item-icon--hover': boolean;
|
|
73
|
+
'ft-rating__item-icon--active': boolean;
|
|
74
|
+
}>;
|
|
75
|
+
setRate(value: number, isHover?: boolean): void;
|
|
76
|
+
clearHover(): void;
|
|
77
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Rating, never>;
|
|
78
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Rating, "ft-rating", never, { "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
declare const MESSAGE_POSITION: {
|
|
82
|
+
TOP: string;
|
|
83
|
+
BOTTOM: string;
|
|
84
|
+
};
|
|
85
|
+
type MessagePosition = (typeof MESSAGE_POSITION)[keyof typeof MESSAGE_POSITION];
|
|
86
|
+
|
|
87
|
+
declare const MESSAGE_TYPE: {
|
|
88
|
+
MODAL: string;
|
|
89
|
+
NOTIFICATION: string;
|
|
90
|
+
};
|
|
91
|
+
type MessageType = (typeof MESSAGE_TYPE)[keyof typeof MESSAGE_TYPE];
|
|
92
|
+
|
|
93
|
+
/** @deprecated Use 'filled' or 'outlined' instead */
|
|
94
|
+
type MessageActionTypeDeprecated = 'raised' | 'flat' | 'stroked';
|
|
95
|
+
type MessageActionType = MessageActionTypeDeprecated | 'outlined' | 'filled';
|
|
96
|
+
interface MessageAction {
|
|
97
|
+
/**
|
|
98
|
+
* Estilo del botón. Preferir 'outlined' | 'filled'.
|
|
99
|
+
* Los valores 'raised', 'flat' y 'stroked' están descontinuados pero siguen soportados.
|
|
100
|
+
*/
|
|
101
|
+
type: MessageActionType;
|
|
102
|
+
label: string;
|
|
103
|
+
value: string | number;
|
|
104
|
+
metadata?: {
|
|
105
|
+
color?: string;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
interface MessageOptions {
|
|
110
|
+
type?: MessageType;
|
|
111
|
+
actions?: MessageAction[];
|
|
112
|
+
actionsVisible?: boolean;
|
|
113
|
+
class?: string;
|
|
114
|
+
duration?: number;
|
|
115
|
+
title?: string;
|
|
116
|
+
titleIcon?: any;
|
|
117
|
+
icon?: any;
|
|
118
|
+
width?: string;
|
|
119
|
+
verticalPosition?: MessagePosition;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
interface MessageContent {
|
|
123
|
+
content: string;
|
|
124
|
+
type: 'text' | 'html';
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
declare class MessageContentComponent {
|
|
128
|
+
data: any;
|
|
129
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MessageContentComponent, never>;
|
|
130
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MessageContentComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
131
|
+
}
|
|
132
|
+
declare class MessageDialogComponent {
|
|
133
|
+
data: any;
|
|
134
|
+
readonly beforeSelect: OutputEmitterRef<string>;
|
|
135
|
+
select(value: string): void;
|
|
136
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MessageDialogComponent, never>;
|
|
137
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MessageDialogComponent, "ng-component", never, {}, { "beforeSelect": "beforeSelect"; }, never, never, true, never>;
|
|
138
|
+
}
|
|
139
|
+
declare class MessageService {
|
|
140
|
+
private snackBar;
|
|
141
|
+
private dialog;
|
|
142
|
+
private stringUtil;
|
|
143
|
+
show(message: string | MessageContent, options?: MessageOptions): Observable<any>;
|
|
144
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MessageService, never>;
|
|
145
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MessageService>;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
declare class ObserveIntersecting {
|
|
149
|
+
private element;
|
|
150
|
+
private readonly platformId;
|
|
151
|
+
private elementObserver;
|
|
152
|
+
ftObserveIntersectingOptions: _angular_core.InputSignal<{
|
|
153
|
+
root?: HTMLElement;
|
|
154
|
+
rootMargin?: string;
|
|
155
|
+
threshold?: number | number[];
|
|
156
|
+
} | undefined>;
|
|
157
|
+
readonly ftObserveIntersecting: _angular_core.OutputEmitterRef<boolean>;
|
|
158
|
+
ngOnInit(): void;
|
|
159
|
+
ngOnDestroy(): void;
|
|
160
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ObserveIntersecting, never>;
|
|
161
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ObserveIntersecting, "[ftObserveIntersecting]", never, { "ftObserveIntersectingOptions": { "alias": "ftObserveIntersectingOptions"; "required": false; "isSignal": true; }; }, { "ftObserveIntersecting": "ftObserveIntersecting"; }, never, never, true, never>;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
interface UiOptions {
|
|
165
|
+
iconSettings: {
|
|
166
|
+
path: string;
|
|
167
|
+
collection: string;
|
|
168
|
+
mode: 'external' | undefined;
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
declare const UI_OPTIONS: InjectionToken<UiOptions>;
|
|
172
|
+
|
|
173
|
+
export { Avatar, Icon, LazyImage, MESSAGE_POSITION, MESSAGE_TYPE, MessageContentComponent, MessageDialogComponent, MessageService, ObserveIntersecting, Progress, Rating, UI_OPTIONS };
|
|
174
|
+
export type { MessageAction, MessageActionType, MessageActionTypeDeprecated, MessageContent, MessageOptions, MessagePosition, MessageType, UiOptions };
|
package/index.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class AvatarComponent {
|
|
3
|
-
private colorService;
|
|
4
|
-
color: import("@angular/core").InputSignal<string | undefined>;
|
|
5
|
-
initials: import("@angular/core").Signal<string>;
|
|
6
|
-
label: import("@angular/core").InputSignal<string>;
|
|
7
|
-
loaded: import("@angular/core").WritableSignal<boolean>;
|
|
8
|
-
src: import("@angular/core").InputSignal<string | undefined>;
|
|
9
|
-
get backgroundColor(): string;
|
|
10
|
-
get backgroundImage(): string;
|
|
11
|
-
class: import("@angular/core").InputSignal<string | undefined>;
|
|
12
|
-
get hostClasses(): string;
|
|
13
|
-
constructor();
|
|
14
|
-
getInitials(value: string): string;
|
|
15
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AvatarComponent, never>;
|
|
16
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AvatarComponent, "ft-avatar", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
17
|
-
}
|
package/lib/chart.service.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Chart } from './models/chart';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class ChartService {
|
|
4
|
-
private resizeTimeout;
|
|
5
|
-
private charts;
|
|
6
|
-
constructor();
|
|
7
|
-
remove(element: SVGElement): void;
|
|
8
|
-
render(element: SVGElement, items: Chart[]): void;
|
|
9
|
-
private drawAxis;
|
|
10
|
-
private drawCircleChart;
|
|
11
|
-
private drawColumnChart;
|
|
12
|
-
private drawLineChart;
|
|
13
|
-
private drawLimitChart;
|
|
14
|
-
private drawEventsPlaceholder;
|
|
15
|
-
private handleResize;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ChartService, never>;
|
|
17
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ChartService>;
|
|
18
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class IconComponent {
|
|
3
|
-
private options;
|
|
4
|
-
collection: import("@angular/core").InputSignal<string | undefined>;
|
|
5
|
-
mode: import("@angular/core").InputSignal<string | undefined>;
|
|
6
|
-
name: import("@angular/core").InputSignal<string>;
|
|
7
|
-
path: import("@angular/core").InputSignal<string | undefined>;
|
|
8
|
-
src: import("@angular/core").InputSignal<string | undefined>;
|
|
9
|
-
url: import("@angular/core").Signal<string>;
|
|
10
|
-
class: import("@angular/core").InputSignal<string | undefined>;
|
|
11
|
-
get hostClasses(): string;
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<IconComponent, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "ft-icon", never, { "collection": { "alias": "collection"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "path": { "alias": "path"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class ImageComponent {
|
|
3
|
-
private element;
|
|
4
|
-
readonly class: import("@angular/core").InputSignal<string>;
|
|
5
|
-
error: boolean;
|
|
6
|
-
loading: boolean;
|
|
7
|
-
readonly src: import("@angular/core").InputSignal<string>;
|
|
8
|
-
readonly alt: import("@angular/core").InputSignal<string>;
|
|
9
|
-
shown: boolean;
|
|
10
|
-
ngOnInit(): void;
|
|
11
|
-
get hostClasses(): string;
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ImageComponent, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ImageComponent, "ft-image", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14
|
-
}
|
package/lib/message.service.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { OutputEmitterRef } from '@angular/core';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { MessageOptions } from './models/message-options';
|
|
4
|
-
import { MessageContent } from './models/message-content';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class MessageContentComponent {
|
|
7
|
-
data: any;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MessageContentComponent, never>;
|
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MessageContentComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
10
|
-
}
|
|
11
|
-
export declare class MessageDialogComponent {
|
|
12
|
-
data: any;
|
|
13
|
-
readonly beforeSelect: OutputEmitterRef<string>;
|
|
14
|
-
select(value: string): void;
|
|
15
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MessageDialogComponent, never>;
|
|
16
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MessageDialogComponent, "ng-component", never, {}, { "beforeSelect": "beforeSelect"; }, never, never, true, never>;
|
|
17
|
-
}
|
|
18
|
-
export declare class MessageService {
|
|
19
|
-
private snackBar;
|
|
20
|
-
private dialog;
|
|
21
|
-
private stringService;
|
|
22
|
-
show(message: string | MessageContent, options?: MessageOptions): Observable<any>;
|
|
23
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MessageService, never>;
|
|
24
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<MessageService>;
|
|
25
|
-
}
|
package/lib/models/chart.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export interface MessageOptions {
|
|
2
|
-
type?: 'modal' | 'notification';
|
|
3
|
-
actions?: any[];
|
|
4
|
-
actionsVisible?: boolean;
|
|
5
|
-
class?: string;
|
|
6
|
-
duration?: number;
|
|
7
|
-
title?: string;
|
|
8
|
-
titleIcon?: any;
|
|
9
|
-
icon?: any;
|
|
10
|
-
width?: string;
|
|
11
|
-
verticalPosition?: 'top' | 'bottom';
|
|
12
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { OnInit, OutputEmitterRef, OnDestroy } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class ObserveIntersectingDirective implements OnInit, OnDestroy {
|
|
4
|
-
private element;
|
|
5
|
-
private readonly platformId;
|
|
6
|
-
private elementObserver;
|
|
7
|
-
ftObserveIntersectingOptions: import("@angular/core").InputSignal<{
|
|
8
|
-
root?: HTMLElement;
|
|
9
|
-
rootMargin?: string;
|
|
10
|
-
threshold?: number | number[];
|
|
11
|
-
} | undefined>;
|
|
12
|
-
readonly event: OutputEmitterRef<boolean>;
|
|
13
|
-
ngOnInit(): void;
|
|
14
|
-
ngOnDestroy(): void;
|
|
15
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ObserveIntersectingDirective, never>;
|
|
16
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ObserveIntersectingDirective, "[ftObserveIntersecting]", never, { "ftObserveIntersectingOptions": { "alias": "ftObserveIntersectingOptions"; "required": false; "isSignal": true; }; }, { "event": "ftObserveIntersecting"; }, never, never, true, never>;
|
|
17
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class ProgressComponent {
|
|
3
|
-
mode: import("@angular/core").InputSignal<"determinate" | "indeterminate">;
|
|
4
|
-
overlay: import("@angular/core").InputSignal<boolean>;
|
|
5
|
-
value: import("@angular/core").InputSignal<number>;
|
|
6
|
-
class: import("@angular/core").InputSignal<string>;
|
|
7
|
-
get hostClasses(): string;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ProgressComponent, never>;
|
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ProgressComponent, "ft-progress", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "overlay": { "alias": "overlay"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
10
|
-
}
|