@seniorsistemas/angular-components 19.0.9 → 19.1.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/breadcrumb/lib/breadcrumb/breadcrumb-models.d.ts +2 -0
- package/button/lib/button/button.component.d.ts +8 -2
- package/checkbox/lib/checkbox/checkbox.component.d.ts +5 -1
- package/dialog/lib/src/dialog/dialog.component.d.ts +7 -1
- package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +2 -2
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-models.mjs +1 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +8 -6
- package/esm2022/button/lib/button/button.component.mjs +20 -8
- package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +8 -5
- package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +2 -2
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +1 -1
- package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +9 -3
- package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/select/select-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +1 -1
- package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +1 -1
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +1 -1
- package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +1 -1
- package/esm2022/global-search/lib/global-search/global-search.component.mjs +1 -1
- package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +1 -1
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +1 -1
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
- package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +1 -1
- package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +1 -1
- package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +1 -1
- package/esm2022/lib/locale/fallback.mjs +13 -2
- package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +1 -1
- package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +1 -1
- package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +1 -1
- package/esm2022/paginator/lib/paginator/paginator.component.mjs +2 -2
- package/esm2022/picklist/lib/picklist/picklist.component.mjs +1 -1
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +1 -1
- package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +3 -3
- package/esm2022/select/lib/select/select.component.mjs +132 -20
- package/esm2022/shared/lib/accessibility/paginator-accessibility.directive.mjs +182 -0
- package/esm2022/shared/lib/accessibility/table-checkbox-accessibility.directive.mjs +174 -0
- package/esm2022/shared/public-api.mjs +6 -4
- package/esm2022/switch/lib/switch/switch.component.mjs +19 -8
- package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +1 -1
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +18 -8
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +1 -1
- package/esm2022/tiered-menu/lib/tiered-menu/services/tiered-menu.service.mjs +1 -1
- package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +11 -3
- package/esm2022/tooltip/lib/tooltip/tooltip.component.mjs +17 -11
- package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +108 -241
- package/esm2022/tooltip/lib/tooltip/tooltip.module.mjs +4 -6
- package/esm2022/topbar/lib/topbar/topbar.component.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +9 -7
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +19 -7
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +7 -4
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs +8 -2
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +11 -11
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +133 -21
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs +354 -2
- package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-switch.mjs +18 -7
- package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +26 -8
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +125 -254
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components.mjs +12 -1
- package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
- package/package.json +1 -1
- package/select/lib/select/select.component.d.ts +23 -2
- package/shared/lib/accessibility/paginator-accessibility.directive.d.ts +30 -0
- package/shared/lib/accessibility/table-checkbox-accessibility.directive.d.ts +46 -0
- package/shared/public-api.d.ts +7 -5
- package/switch/lib/switch/switch.component.d.ts +9 -5
- package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +1 -0
- package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +4 -2
- package/tooltip/lib/tooltip/tooltip.component.d.ts +13 -7
- package/tooltip/lib/tooltip/tooltip.directive.d.ts +27 -40
- package/tooltip/lib/tooltip/tooltip.module.d.ts +3 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-table.mjs","sources":["../../projects/angular-components/table/src/lib/table/navigation/navigation.directive.ts","../../projects/angular-components/table/src/lib/table/row-toggler/row-toggler.directive.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-column-field-type.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-badge-colors.ts","../../projects/angular-components/table/src/lib/locale-utils.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.html","../../projects/angular-components/table/src/lib/table/export-utils.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.html","../../projects/angular-components/table/src/lib/table/table.module.ts","../../projects/angular-components/table/src/seniorsistemas-angular-components-table.ts"],"sourcesContent":["import { Directive, HostListener } from '@angular/core';\n\n@Directive({ selector: '[sNavigation]' })\nexport class NavigationDirective {\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Right': // IE 11\n case 'ArrowRight':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._focusFirstColFromCurrentRow(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._focusNextSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Left': // IE 11\n case 'ArrowLeft':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._focusLastColFromPrevRow(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._focusPrevSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Up': // IE 11\n case 'ArrowUp':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._setPrevRowFocus(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._setAboveColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Down': // IE 11\n case 'ArrowDown':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._setNextRowFocus(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._setUnderColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n }\n }\n\n private _focusLastColFromPrevRow(event: HTMLTableRowElement): void {\n const prevRow = this._findPrevSelectableRow(event);\n\n if (prevRow) {\n (prevRow.lastElementChild as HTMLTableColElement).focus();\n }\n }\n\n private _focusFirstColFromCurrentRow(row: HTMLTableRowElement): void {\n const firstCol = row.firstElementChild as HTMLTableColElement;\n\n if (firstCol) {\n firstCol.focus();\n }\n }\n\n private _focusNextSelectableCol(col: HTMLTableColElement): void {\n const nextCol = col.nextElementSibling as HTMLTableColElement;\n\n if (nextCol) {\n nextCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return this._setNextRowFocus(currentRow);\n }\n }\n\n private _focusPrevSelectableCol(col: HTMLTableColElement): void {\n const prevCol = col.previousElementSibling as HTMLTableColElement;\n\n if (prevCol) {\n prevCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return currentRow.focus();\n }\n }\n\n private _setAboveColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = (currentCol as any)['cellIndex'];\n const currentRow = currentCol.parentElement;\n const prevRow = this._findPrevSelectableRow(currentRow as HTMLTableRowElement);\n\n if (prevRow) (prevRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private _setUnderColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = (currentCol as any)['cellIndex'];\n const currentRow = currentCol.parentElement;\n const nextRow = this._findNextSelectableRow(currentRow as HTMLTableRowElement);\n if (nextRow) (nextRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private _setNextRowFocus(row: HTMLTableRowElement): void {\n const nextRow = this._findNextSelectableRow(row);\n if (nextRow) {\n nextRow.focus();\n }\n }\n\n private _setPrevRowFocus(row: HTMLTableRowElement): void {\n const prevRow = this._findPrevSelectableRow(row);\n if (prevRow) {\n prevRow.focus();\n }\n }\n\n private _isRow(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === 'tr';\n }\n\n private _isCol(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === 'td';\n }\n\n private _findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const prevRow = <HTMLTableRowElement>row.previousElementSibling;\n return prevRow ?? null;\n }\n\n private _findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n const nextRow = <HTMLTableRowElement>row.nextElementSibling;\n return nextRow ?? null;\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\nimport { RowToggler, Table } from 'primeng/table';\n\n@Directive({ selector: '[sRowToggler]' })\nexport class RowTogllerDirective extends RowToggler {\n @Input({ alias: 'sRowToggler', required: true })\n public override data: any = null;\n\n constructor(public override readonly dt: Table) {\n super(dt);\n }\n\n @HostListener('keydown', ['$event'])\n public onKeydown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n switch (event.key) {\n case 'Enter':\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n break;\n default:\n event.preventDefault();\n break;\n }\n }\n }\n}\n","export enum EnumColumnFieldType {\n STRING = 'STRING',\n NUMBER = 'NUMBER',\n BOOLEAN = 'BOOLEAN',\n DATE = 'DATE',\n CURRENCY = 'CURRENCY',\n ENUM = 'ENUM',\n LOOKUP = 'LOOKUP',\n LINK = 'LINK',\n TOKENS = 'TOKENS'\n}\n","export enum EnumBadgeColors {\n RED = 'red',\n ORANGE = 'orange',\n YELLOW = 'yellow',\n GREEN = 'green',\n BLUE = 'blue',\n GRAY = 'gray',\n}\n","export const convertToMomentDateFormat = (format: string): string => {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, \"D\") // day of month (no leading zero)\n .replace(/\\bdd\\b/, \"DD\") // day of month\n .replace(/\\bo\\b/, \"DDD\") // day of the year (no leading zero)\n .replace(/\\boo\\b/, \"DDDD\") // day of the year\n .replace(/\\bM\\b/, \"MMM\") // month name short\n .replace(/\\bMM\\b/, \"MMMM\") // month name long\n .replace(/\\bm\\b/, \"M\") // month of year (no leading)\n .replace(/\\bmm\\b/, \"MM\") // month of year\n .replace(/\\by\\b/, \"YY\") // year (two digits)\n .replace(/\\byy\\b/, \"YYYY\"); // year (four digits)\n}","import {\n Component,\n Inject,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { NumericService } from '@seniorsistemas/angular-components/numeric';\nimport { IToken } from '@seniorsistemas/angular-components/token-list';\nimport { deepClone, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { MaskConfig, applyMask } from '@seniorsistemas/ng2-currency-mask';\nimport BigNumber from 'bignumber.js';\nimport moment from 'moment';\nimport { convertToMomentDateFormat } from '../../locale-utils';\nimport { Column, ColumnValues, EnumColumnFieldType, TableColumnLocaleOptions } from './models';\n\n/**\n * @description Componente interno que renderiza uma linha de colunas da tabela,\n * aplicando formatação localizada (data, número, moeda, token, etc.) para cada coluna.\n * Normalmente usado dentro do contexto de uma tabela PrimeNG.\n *\n * @example\n * ```html\n * <s-table-columns [columns]=\"colunas\" [rowValue]=\"linha\" />\n * ```\n *\n * @category Data\n */\n@Component({\n templateUrl: './table-columns.component.html',\n styleUrls: ['./table-columns.component.scss'],\n selector: 's-table-columns',\n})\nexport class TableColumnsComponent implements OnChanges {\n @ViewChild('columnsTemplate', { static: true })\n public columnsTemplate: TemplateRef<any> | null = null;\n\n /** @description Lista de configurações das colunas a serem renderizadas. @default [] */\n @Input()\n public columns: Column[] = [];\n\n /** @description Objeto da linha com os valores a serem exibidos nas colunas. Campo obrigatório. */\n @Input()\n public rowValue!: any;\n\n /** @description Opções de localização (calendário e número) usadas para formatação. @default null */\n @Input()\n public locale: TableColumnLocaleOptions | null = null;\n\n cellsData: (CellData | null)[] = [];\n\n formattedColumns: ColumnValues[] = [];\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly viewContainerRef: ViewContainerRef,\n private readonly translate: TranslateService,\n private readonly numericService: NumericService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs,\n ) {\n this.locale = {\n calendar: {\n ...this.localeService.getLocaleOptions()?.calendar,\n dateFormat: convertToMomentDateFormat(this.localeService.getLocaleOptions()?.calendar.dateFormat ?? ''),\n },\n number: {\n ...this.localeService.getLocaleOptions()?.number,\n scale: 0,\n },\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.validateComponentAttributes(changes);\n\n if (changes['columns'] && changes['columns'].currentValue !== changes['columns'].previousValue) {\n this.columns = this.sortColumnsBySequence(changes['columns'].currentValue);\n }\n this.createColumnsTemplate(changes);\n }\n\n public isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n public getTokensByColumn(column: ColumnValues) {\n return column.columnValue as IToken[];\n }\n\n private getCellData(column: ColumnValues): CellData | null {\n const { columnValue, separator, uninformed } = column;\n\n if (typeof columnValue === 'string') {\n const splittedString = columnValue.split(separator);\n\n return splittedString.map((string, index) => {\n const isLastIndex = splittedString.length - 1 === index;\n\n return {\n value: string,\n isUninformed: string === uninformed,\n separator: !isLastIndex ? separator : null,\n };\n });\n }\n\n return null;\n }\n\n private validateComponentAttributes(changes: SimpleChanges): void {\n if (!this.columns && !changes['columns']?.currentValue) {\n throw new Error(\"The 'columns' attribute must be informed!\");\n }\n if (!this.rowValue && !changes['rowValue']?.currentValue) {\n throw new Error(\"The 'rowValue' attribute must be informed!\");\n }\n }\n\n private createColumnsTemplate(changes: SimpleChanges): void {\n this.viewContainerRef.clear();\n\n const columns: Column[] = changes['columns']?.currentValue || this.columns;\n\n const rowValue: object = deepClone(changes['rowValue']?.currentValue ?? this.rowValue);\n\n const locale: TableColumnLocaleOptions = changes['locale']?.currentValue || this.locale;\n\n this.formattedColumns = columns.map((column) => this.getColumnValue(column, rowValue, locale));\n\n this.cellsData = this.formattedColumns.map((column) => this.getCellData(column));\n\n if (!isNullOrUndefined(this.columnsTemplate)) {\n this.viewContainerRef.createEmbeddedView(this.columnsTemplate);\n }\n }\n\n private getColumnSeparator(column: Column) {\n return column.separator ? column.separator : ' - ';\n }\n\n private getTranslationPrefix(column: Column) {\n return column.prefix ? column.prefix : `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n private isAttributeValueInvalid(attributeValue: any) {\n return (\n attributeValue === null ||\n attributeValue === undefined ||\n (attributeValue?.options?.numberFormatOptions && isNullOrUndefined(attributeValue?.value)) ||\n (this.isArray(attributeValue) && !attributeValue.length) ||\n (typeof attributeValue === 'string' && attributeValue.trim() === '')\n );\n }\n\n private getFormattedColumnValue(\n column: Column,\n columnValue: any[],\n unifiedColumnValues: string,\n uninformedText: string,\n uninformedNumber: number,\n ) {\n if (uninformedNumber === column.attributes.length) {\n return uninformedText;\n }\n\n if (column.type === EnumColumnFieldType.TOKENS) {\n return [].concat.apply(\n [],\n columnValue.filter((values) => values !== uninformedText),\n );\n }\n\n return unifiedColumnValues;\n }\n\n private getAttributeValue(attribute: string, rowValue: any) {\n let attributeValue!: any;\n\n attribute.split('/').forEach((value: string) => {\n if (!attributeValue) {\n value.split('.').forEach((val: string, i) => {\n if (!rowValue) {\n return;\n }\n\n if (i === 0) {\n attributeValue = rowValue[val];\n } else {\n if (attributeValue) {\n attributeValue = attributeValue[val];\n }\n }\n });\n }\n });\n\n return attributeValue;\n }\n\n private getNumberConfigs(column: Column): MaskConfig {\n return {\n ...this.locale?.number,\n scale:\n column.scale !== null && column.scale !== undefined\n ? this.getColumnScale(column.scale)\n : this.locale?.number.scale,\n prefix: `${this.locale?.number.currencySymbol} `,\n };\n }\n\n private getDateFormat(column: Column, locale: TableColumnLocaleOptions) {\n return column.dateFormat ? column.dateFormat : locale.calendar.dateFormat;\n }\n\n private getColumnValue(column: Column, rowValue: any, locale: TableColumnLocaleOptions): ColumnValues {\n const prefix = this.getTranslationPrefix(column);\n const separator = this.getColumnSeparator(column);\n const uninformed = this.translate.instant(prefix + 'empty_label');\n const style = column.style;\n\n const columnValue = column.attributes.map((attribute: string | number | symbol) => {\n const attributeValue = this.getAttributeValue(attribute as string, rowValue);\n\n if (this.isAttributeValueInvalid(attributeValue)) {\n return uninformed;\n }\n\n const numberConfigs = this.getNumberConfigs(column);\n\n switch (column.type) {\n case EnumColumnFieldType.ENUM:\n return this.translate.instant(column.enumPrefix + attributeValue.toString().toLowerCase());\n\n case EnumColumnFieldType.CURRENCY: {\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === 'function'\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n\n case EnumColumnFieldType.DATE:\n const dateFormat = this.getDateFormat(column, locale);\n return moment(attributeValue).format(dateFormat);\n\n case EnumColumnFieldType.BOOLEAN:\n const value = attributeValue ? 'yes' : 'no';\n return this.translate.instant(prefix + value);\n\n case EnumColumnFieldType.NUMBER: {\n numberConfigs.prefix = '';\n\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === 'function'\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n case EnumColumnFieldType.TOKENS:\n return this.getTokens(attributeValue);\n\n default:\n return attributeValue;\n }\n });\n\n const unifiedColumnValues = columnValue.join(separator);\n const uninformedNumber = unifiedColumnValues.split(separator).filter((value) => value === uninformed).length;\n const formattedColumnValue = this.getFormattedColumnValue(\n column,\n columnValue,\n unifiedColumnValues,\n uninformed,\n uninformedNumber,\n );\n\n return {\n style,\n columnValue: formattedColumnValue,\n separator,\n uninformed,\n badgeConfigs: column?.badgeConfigs?.find(\n (badgeConfig) => badgeConfig.enumValue === rowValue[column.attributes[0] ?? column.field],\n ),\n color: column.color?.(rowValue),\n type: column.type,\n tooltip: this.getColumnTooltip(column.tooltip),\n infoSign: this.getColumnInfoSign(column.infoSign),\n onLinkClick: column.onLinkClick,\n onColumnClick: column.onColumnClick,\n compact: column.compact,\n };\n }\n\n private getColumnScale(scale: number | ((rowValue: any) => number)): number {\n if (typeof scale === 'function') {\n return scale(deepClone(this.rowValue));\n }\n return scale;\n }\n\n private getColumnInfoSign(infoSign?: string | ((rowValue: any) => string | null)): string | null {\n if (!isNullOrUndefined(infoSign)) {\n if (typeof infoSign === 'function') {\n return infoSign(deepClone(this.rowValue));\n }\n return infoSign;\n }\n return null;\n }\n\n private getColumnTooltip(tooltip?: string | ((rowValue: any) => string)): string {\n if (!isNullOrUndefined(tooltip)) {\n if (typeof tooltip === 'function') {\n return tooltip(deepClone(this.rowValue));\n }\n return tooltip;\n }\n return '';\n }\n\n private isNumber(value: any): boolean {\n return !new BigNumber(value).isNaN();\n }\n\n private getTokens(values: any): IToken[] {\n if (!this.isArray(values)) {\n throw new Error('To use tokens an array must be informed');\n }\n\n if (!this.isValidTokenArray(values)) {\n throw new Error(\n 'Not a valid token array. Must be a primitive values array or an objects with label attribute array',\n );\n }\n\n if (this.isLabelObjectArray(values)) {\n return values;\n }\n\n return values\n .filter((value: any) => value !== undefined && value !== null)\n .map((value: any) => {\n const label = typeof value === 'symbol' ? value.toString() : `${value}`;\n return {\n label,\n };\n });\n }\n\n private isValidTokenArray(values: any[]): boolean {\n return this.isPrimitiveValuesArray(values) || this.isLabelObjectArray(values);\n }\n\n private isPrimitiveValuesArray(values: any[]): boolean {\n return values.filter((value) => value !== Object(value)).length === values.length;\n }\n\n private isLabelObjectArray(values: any[]): boolean {\n return values.filter((value) => value?.label !== null && value?.label !== undefined).length === values.length;\n }\n\n private sortColumnsBySequence(columns: Column[]): Column[] {\n return columns.sort((a, b) => (a.sequence ?? 0) - (b.sequence ?? 0));\n }\n}\n\ntype CellData = { value: string; isUninformed: boolean; separator: string | null }[];\n\n","<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <ng-template #anchorTemplate>\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n </ng-template>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue'\n }\"\n >{{ cellData.value }}</span>\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n","import { ElementRef } from '@angular/core';\nimport { Column } from '../table/table-column/models/column.interface';\nimport { EnumColumnFieldType } from '../table/table-column/models/enum-column-field-type';\n\ndeclare global {\n interface Navigator {\n msSaveOrOpenBlob(blob: Blob, name: string): void;\n }\n}\n\nexport abstract class ExportUtils {\n public static addClass(element: ElementRef, className: string) {\n element.nativeElement.className = `${element.nativeElement.className} ${className}`;\n }\n\n public static removeClass(element: ElementRef, className: string) {\n if (element.nativeElement.className.includes(className)) {\n element.nativeElement.className = element.nativeElement.className.replace(className, '');\n }\n }\n\n public static exportCSV(\n columns: Partial<Column>[] = [],\n data: any[] = [],\n csvSeparator: string = ';',\n documentName: string = 'download',\n ) {\n let csv = '\\ufeff';\n\n columns\n .filter((column: any) => column.exportable && column.field)\n .forEach((column: any, i: number) => {\n csv += `\"${column.header || column.field}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n\n data.forEach((record: any) => {\n csv += '\\n';\n\n columns\n .filter((column: any) => column.exportable && column.field)\n .forEach((column: any, i: number) => {\n let cellData;\n if (Array.isArray(column.field)) {\n const fieldValues = column.field.map((col: string) =>\n this._resolveFieldData(record, col, column),\n );\n\n cellData = fieldValues\n .flat()\n .filter((value: string) => value !== null && value !== undefined)\n .join(column.separator);\n } else {\n cellData = this._resolveFieldData(record, column.field, column);\n }\n\n if (cellData !== null) cellData = String(cellData).replace(/\"/g, '\"\"');\n else cellData = '';\n\n csv += `\"${cellData}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n });\n\n const blob = new Blob([csv], {\n type: 'text/csv;charset=utf-8;',\n });\n\n if (typeof window.navigator.msSaveOrOpenBlob === 'function') {\n navigator.msSaveOrOpenBlob(blob, documentName + '.csv');\n } else {\n const link = document.createElement('a');\n link.style.display = 'none';\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', documentName + '.csv');\n link.click();\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n private static _resolveFieldData(data: any, field: any, column: Column): string | null {\n if (!data && !field) {\n return null;\n }\n const needSplitValues = field.includes('.');\n if (this._isFunction(field)) {\n return field(data);\n } else if (!needSplitValues) {\n return data[field];\n } else {\n const fields: string[] = field.split('.');\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value === null || value === undefined) {\n return null;\n }\n value = value[fields[i]];\n }\n return ExportUtils._extractData(value, column);\n }\n }\n\n private static _isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n\n private static _extractData(data: any, column: Column) {\n const _data = Array.isArray(data) ? data : [data];\n switch (column.type) {\n case EnumColumnFieldType.TOKENS:\n return _data.map((d: any) => ExportUtils._parseToken(d));\n default:\n return data;\n }\n }\n\n private static _parseToken(data: any) {\n if (isObject(data)) {\n return data['label'];\n } else {\n return data;\n }\n }\n}\n\nconst isObject = (obj: any) => obj !== null && typeof obj === 'object';\n","import { Component, Inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Table } from 'primeng/table';\nimport { CustomAction } from './models';\nimport { Column } from '../table-column/models';\nimport { ExportUtils } from '../export-utils';\nimport { deepClone, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\n\ntype RowValueFormatOption = {\n value?: number;\n options?: {\n numberFormatOptions?: Intl.NumberFormatOptions;\n };\n};\n\n@Component({\n templateUrl: './table-paging.component.html',\n styleUrls: ['./table-paging.component.scss'],\n selector: 's-table-paging',\n})\nexport class TablePagingComponent implements OnChanges {\n @Input()\n public totalRecords!: number;\n\n @Input()\n public exportFileName?: string;\n\n @Input()\n public table!: Table;\n\n @Input()\n public exportable = true;\n\n @Input()\n public enableExportSelectedRecords = true;\n\n @Input()\n public customActions?: CustomAction[];\n\n @Input()\n public loadAllRecords?: () => Promise<any[]>;\n\n @Input()\n public loadCurrentPageRecords?: () => any[];\n\n @Input()\n public loadSelectedRecords?: () => any[];\n\n public totalRecordsText = '';\n\n private readonly localeService: LocaleService = Inject(LocaleService);\n\n constructor(\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['totalRecords']?.currentValue) {\n this.totalRecordsText = this.translate.instant(`${this.getTranslatePrefix()}total_records`, {\n value: changes['totalRecords'].currentValue,\n });\n }\n }\n\n private getTranslatePrefix() {\n return `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n public getTooltipText() {\n return this.translate.instant(`${this.getTranslatePrefix()}export_to_csv`);\n }\n\n public getActions(): TieredMenuItemData[] {\n const actions: TieredMenuItemData[] = [\n {\n dataKey: 'exportCurrentPage',\n label: this.translate.instant(`${this.getTranslatePrefix()}export_current_page`),\n command: () => this.exportCurrentPage(),\n },\n ];\n\n if (this.enableExportSelectedRecords) {\n actions.push({\n dataKey: 'exportSelected',\n label: this.translate.instant(`${this.getTranslatePrefix()}export_selected_records`),\n command: () => this.exportSelectedRecords(),\n });\n }\n\n if (this.loadAllRecords) {\n actions.push({\n dataKey: 'exportAll',\n label: this.translate.instant(`${this.getTranslatePrefix()}export_all_records`),\n command: () => this.exportAllRecords(),\n });\n }\n\n if (this.customActions?.length) {\n const customMenus = this.customActions.map((p, $index) => ({\n dataKey: `customAction_${$index}`,\n label: p.label,\n command: p.command,\n }));\n actions.push(...customMenus);\n }\n\n return actions;\n }\n\n private validateComponent() {\n if (!this.table) {\n throw new Error('Table component not defined');\n }\n }\n\n public getColumnsToExport() {\n return [...(this.table.columns ?? [])].map((column) => {\n const exportColumn = {\n ...column,\n header: column.header,\n exportable: true,\n field: column.field,\n separator: column.separator ?? ' - ',\n enumPrefix: column.enumPrefix,\n customExport: column.customExport,\n };\n\n if (column.exportable === false) {\n exportColumn.exportable = false;\n }\n\n if (column.attributes && column.attributes.length) {\n if (column.attributes.length === 1) {\n exportColumn.field = column.attributes[0];\n } else {\n exportColumn.field = column.attributes;\n }\n }\n\n return exportColumn;\n });\n }\n\n private getCurrentPageRowsToExport(columns: any[]) {\n let tableData = deepClone(this.table.value);\n\n if (this.loadCurrentPageRecords) {\n tableData = this.loadCurrentPageRecords();\n }\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getSelectedRowsToExport(columns: any[]) {\n let tableData = deepClone(this.table.selection);\n if (this.loadSelectedRecords) {\n tableData = this.loadSelectedRecords();\n }\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getPropertyValue(obj: any, path: string) {\n return path\n .split('.')\n .reduce((result: any, prop: any) => (result[prop] === undefined ? undefined : result[prop]), obj);\n }\n\n private setPropertyValue(obj: any, path: string, value: any) {\n this.recursionSetValue(obj, path.split('.'), value);\n }\n\n private recursionSetValue(obj: any, keysList: string[], value: any): any {\n const key = keysList[0];\n if (keysList.length === 1) {\n obj[key] = value;\n return obj;\n }\n obj[key] = this.recursionSetValue(obj?.[key] || {}, keysList.slice(1), value);\n return obj;\n }\n\n public mapColumnsTranslations(columns: any[], rows: any[]) {\n const enumColumns = columns.filter((p) => p.enumPrefix);\n if (!enumColumns.length) {\n return rows;\n }\n\n return [...rows].map((row) => {\n const newRow = { ...row };\n enumColumns.forEach((column) => {\n const fields = !Array.isArray(column.field) ? [column.field] : column.field;\n fields.forEach((fieldName: string) => {\n const columnData = this.getPropertyValue(row, fieldName);\n if (columnData === null || columnData === undefined) {\n return;\n }\n\n const newValue = this.translateValue(column, columnData);\n this.setPropertyValue(newRow, fieldName, newValue);\n });\n });\n\n return newRow;\n });\n }\n\n public mapCustomExport(columns: any[], rows: any[]) {\n const customColumns = columns.filter((p) => p.customExport);\n if (!customColumns.length) {\n return rows;\n }\n\n return [...rows].map((row) => {\n const newRow = { ...row };\n customColumns.forEach((column) => {\n const fields = !Array.isArray(column.field) ? [column.field] : column.field;\n fields.forEach((fieldName: string) => {\n const columnData = this.getPropertyValue(row, fieldName);\n if (columnData === null || columnData === undefined) {\n return;\n }\n const newValue = column.customExport(columnData);\n this.setPropertyValue(newRow, fieldName, newValue);\n });\n });\n\n return newRow;\n });\n }\n\n private translateValue(column: any, columnData: any) {\n // Default usage: ENUM_VALUE -> domain.service.enum_value\n const enumValue = columnData.toString().toLowerCase();\n let translationKey = column.enumPrefix + enumValue;\n let translatedValue = this.translate.instant(translationKey);\n\n // Custom usage 1: V9 -> domain.service.v_9\n if (translationKey === translatedValue && enumValue.length > 1) {\n translationKey = `${column.enumPrefix}${enumValue.substring(0, 1)}_${enumValue.substr(1)}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n // Custom usage 2: EnumValue -> domain.service.enum_value\n if (translationKey === translatedValue) {\n const enumKey = this.convertToSnakeCase(columnData.toString());\n translationKey = `${column.enumPrefix}${enumKey}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n return translatedValue;\n }\n\n private convertToSnakeCase(str: string) {\n return str.replace(/([A-Z])/g, (_match, group) => `_${group.toLowerCase()}`).replace(/^_/, '');\n }\n\n private getExportFileName() {\n const lang = this.translate.currentLang ?? 'pt-BR';\n const date = new Date();\n\n const fileName = this.exportFileName ?? 'download';\n const formattedDate = date.toLocaleDateString(lang).replace('_', '-');\n const formattedTime = date.toLocaleTimeString(lang).replace(' ', '-');\n\n return `${fileName}_${formattedDate}_${formattedTime}`;\n }\n\n public exportCurrentPage() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getCurrentPageRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public exportSelectedRecords() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getSelectedRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public async exportAllRecords() {\n this.validateComponent();\n\n if (!this.loadAllRecords) {\n return;\n }\n let serverData = await this.loadAllRecords();\n\n const columns = this.getColumnsToExport();\n\n serverData = this.mapCustomExport(columns, serverData);\n\n serverData = this.mapNumberFormatOptionsExport(columns, serverData);\n\n const dataToExport = this.mapColumnsTranslations(columns, serverData);\n\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n /**\n * The purpose of this method is to map values\n * from the TableColumnsComponent, which uses the numberFormatOptions\n * field, along with rows that have a custom numberFormatOptions,\n * to ensure the correct values are exported by the TablePagingComponent.\n *\n * @returns Returns the correctly mapped tableData.\n */\n public mapNumberFormatOptionsExport(\n columns: Partial<Column>[],\n tableData: {\n [key: string]: RowValueFormatOption | number | string | null | undefined;\n }[],\n ) {\n const hasNumberFormatOptionsColumns = columns.some((column) => column.numberFormatOptions);\n const hasNumberFormatOptionsRows = tableData.some((rowData) =>\n Object.keys(rowData).some((key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions),\n );\n\n if (!hasNumberFormatOptionsColumns && !hasNumberFormatOptionsRows) return tableData;\n\n if (hasNumberFormatOptionsColumns) {\n tableData = tableData.map((rowData) => {\n const columnsWithNumberFormatOptions = columns.filter((column) => column.numberFormatOptions);\n\n for (const column of columnsWithNumberFormatOptions) {\n const attributes = column.attributes;\n\n const numberFormatOptions =\n typeof column.numberFormatOptions === 'function'\n ? column.numberFormatOptions({\n rowData,\n })\n : column.numberFormatOptions;\n\n for (const attribute of attributes!) {\n if (isNullOrUndefined(rowData[attribute as string])) continue;\n\n if ((rowData[attribute as string] as RowValueFormatOption).options?.numberFormatOptions) {\n continue;\n }\n\n const value = rowData[attribute as string] as string | number;\n\n const mappedValue =\n numberFormatOptions?.style === 'percent'\n ? new BigNumber(value).times(100)\n : new BigNumber(value);\n\n const numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions()!.locale, {\n ...numberFormatOptions,\n style: 'decimal',\n useGrouping: false,\n roundingMode: 'trunc',\n } as any);\n\n rowData[attribute as string] = numberFormat.format(mappedValue.toNumber());\n }\n }\n\n return rowData;\n });\n }\n\n if (hasNumberFormatOptionsRows) {\n tableData = tableData.map((rowData) => {\n const keysWithNumberFormatOptions = Object.keys(rowData).filter(\n (key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions,\n );\n\n for (const key of keysWithNumberFormatOptions) {\n const value = (rowData[key] as RowValueFormatOption).value;\n\n const numberFormatOptions = (rowData[key] as RowValueFormatOption).options?.numberFormatOptions;\n\n const mappedValue =\n numberFormatOptions?.style === 'percent'\n ? new BigNumber(value!).times(100)\n : new BigNumber(value!);\n\n const numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions()!.locale, {\n ...numberFormatOptions,\n style: 'decimal',\n useGrouping: false,\n roundingMode: 'trunc',\n } as any);\n\n (rowData[key] as string | number) = numberFormat.format(mappedValue.toNumber());\n }\n\n return rowData;\n });\n }\n\n return tableData;\n }\n}\n","<div class=\"paging-container\">\n <span class=\"total-records\">\n {{ totalRecordsText }}\n </span>\n @if (exportable) {\n <s-button\n class=\"export-button\"\n priority=\"default\"\n iconClass=\"fa fa-fw fa-file-export\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n [tooltip]=\"getTooltipText()\"\n [menuOptions]=\"getActions()\"\n >\n </s-button>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NavigationDirective } from './navigation/navigation.directive';\nimport { RowTogllerDirective } from './row-toggler/row-toggler.directive';\nimport { TableColumnsComponent } from './table-column/table-columns.component';\nimport { TablePagingComponent } from './table-paging/table-paging.component';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { TokenListModule } from '@seniorsistemas/angular-components/token-list';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, TokenListModule, TranslateModule, ButtonModule, InfoSignModule, BadgeModule],\n exports: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n declarations: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n})\nexport class TableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BigNumber","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-table.mjs","sources":["../../projects/angular-components/table/src/lib/table/navigation/navigation.directive.ts","../../projects/angular-components/table/src/lib/table/row-toggler/row-toggler.directive.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-column-field-type.ts","../../projects/angular-components/table/src/lib/table/table-column/models/enum-badge-colors.ts","../../projects/angular-components/table/src/lib/locale-utils.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.ts","../../projects/angular-components/table/src/lib/table/table-column/table-columns.component.html","../../projects/angular-components/table/src/lib/table/export-utils.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.ts","../../projects/angular-components/table/src/lib/table/table-paging/table-paging.component.html","../../projects/angular-components/table/src/lib/table/table.module.ts","../../projects/angular-components/table/src/seniorsistemas-angular-components-table.ts"],"sourcesContent":["import { Directive, HostListener } from '@angular/core';\n\n@Directive({ selector: '[sNavigation]' })\nexport class NavigationDirective {\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Right': // IE 11\n case 'ArrowRight':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._focusFirstColFromCurrentRow(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._focusNextSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Left': // IE 11\n case 'ArrowLeft':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._focusLastColFromPrevRow(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._focusPrevSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Up': // IE 11\n case 'ArrowUp':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._setPrevRowFocus(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._setAboveColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case 'Down': // IE 11\n case 'ArrowDown':\n if (this._isRow(event.target as HTMLTableElement)) {\n this._setNextRowFocus(event.target as HTMLTableRowElement);\n } else if (this._isCol(event.target as HTMLTableElement)) {\n this._setUnderColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n }\n }\n\n private _focusLastColFromPrevRow(event: HTMLTableRowElement): void {\n const prevRow = this._findPrevSelectableRow(event);\n\n if (prevRow) {\n (prevRow.lastElementChild as HTMLTableColElement).focus();\n }\n }\n\n private _focusFirstColFromCurrentRow(row: HTMLTableRowElement): void {\n const firstCol = row.firstElementChild as HTMLTableColElement;\n\n if (firstCol) {\n firstCol.focus();\n }\n }\n\n private _focusNextSelectableCol(col: HTMLTableColElement): void {\n const nextCol = col.nextElementSibling as HTMLTableColElement;\n\n if (nextCol) {\n nextCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return this._setNextRowFocus(currentRow);\n }\n }\n\n private _focusPrevSelectableCol(col: HTMLTableColElement): void {\n const prevCol = col.previousElementSibling as HTMLTableColElement;\n\n if (prevCol) {\n prevCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return currentRow.focus();\n }\n }\n\n private _setAboveColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = (currentCol as any)['cellIndex'];\n const currentRow = currentCol.parentElement;\n const prevRow = this._findPrevSelectableRow(currentRow as HTMLTableRowElement);\n\n if (prevRow) (prevRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private _setUnderColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = (currentCol as any)['cellIndex'];\n const currentRow = currentCol.parentElement;\n const nextRow = this._findNextSelectableRow(currentRow as HTMLTableRowElement);\n if (nextRow) (nextRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private _setNextRowFocus(row: HTMLTableRowElement): void {\n const nextRow = this._findNextSelectableRow(row);\n if (nextRow) {\n nextRow.focus();\n }\n }\n\n private _setPrevRowFocus(row: HTMLTableRowElement): void {\n const prevRow = this._findPrevSelectableRow(row);\n if (prevRow) {\n prevRow.focus();\n }\n }\n\n private _isRow(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === 'tr';\n }\n\n private _isCol(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === 'td';\n }\n\n private _findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const prevRow = <HTMLTableRowElement>row.previousElementSibling;\n return prevRow ?? null;\n }\n\n private _findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement | null {\n const nextRow = <HTMLTableRowElement>row.nextElementSibling;\n return nextRow ?? null;\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\nimport { RowToggler, Table } from 'primeng/table';\n\n@Directive({ selector: '[sRowToggler]' })\nexport class RowTogllerDirective extends RowToggler {\n @Input({ alias: 'sRowToggler', required: true })\n public override data: any = null;\n\n constructor(public override readonly dt: Table) {\n super(dt);\n }\n\n @HostListener('keydown', ['$event'])\n public onKeydown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n switch (event.key) {\n case 'Enter':\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n break;\n default:\n event.preventDefault();\n break;\n }\n }\n }\n}\n","export enum EnumColumnFieldType {\n STRING = 'STRING',\n NUMBER = 'NUMBER',\n BOOLEAN = 'BOOLEAN',\n DATE = 'DATE',\n CURRENCY = 'CURRENCY',\n ENUM = 'ENUM',\n LOOKUP = 'LOOKUP',\n LINK = 'LINK',\n TOKENS = 'TOKENS'\n}\n","export enum EnumBadgeColors {\n RED = 'red',\n ORANGE = 'orange',\n YELLOW = 'yellow',\n GREEN = 'green',\n BLUE = 'blue',\n GRAY = 'gray',\n}\n","export const convertToMomentDateFormat = (format: string): string => {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, \"D\") // day of month (no leading zero)\n .replace(/\\bdd\\b/, \"DD\") // day of month\n .replace(/\\bo\\b/, \"DDD\") // day of the year (no leading zero)\n .replace(/\\boo\\b/, \"DDDD\") // day of the year\n .replace(/\\bM\\b/, \"MMM\") // month name short\n .replace(/\\bMM\\b/, \"MMMM\") // month name long\n .replace(/\\bm\\b/, \"M\") // month of year (no leading)\n .replace(/\\bmm\\b/, \"MM\") // month of year\n .replace(/\\by\\b/, \"YY\") // year (two digits)\n .replace(/\\byy\\b/, \"YYYY\"); // year (four digits)\n}","import {\n Component,\n Inject,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { NumericService } from '@seniorsistemas/angular-components/numeric';\nimport { IToken } from '@seniorsistemas/angular-components/token-list';\nimport { deepClone, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { MaskConfig, applyMask } from '@seniorsistemas/ng2-currency-mask';\nimport BigNumber from 'bignumber.js';\nimport moment from 'moment';\nimport { convertToMomentDateFormat } from '../../locale-utils';\nimport { Column, ColumnValues, EnumColumnFieldType, TableColumnLocaleOptions } from './models';\n\n/**\n * @description Componente interno que renderiza uma linha de colunas da tabela,\n * aplicando formatação localizada (data, número, moeda, token, etc.) para cada coluna.\n * Normalmente usado dentro do contexto de uma tabela PrimeNG.\n *\n * @example\n * ```html\n * <s-table-columns [columns]=\"colunas\" [rowValue]=\"linha\" />\n * ```\n *\n * @category Data\n */\n@Component({\n templateUrl: './table-columns.component.html',\n styleUrls: ['./table-columns.component.scss'],\n selector: 's-table-columns',\n})\nexport class TableColumnsComponent implements OnChanges {\n @ViewChild('columnsTemplate', { static: true })\n public columnsTemplate: TemplateRef<any> | null = null;\n\n /** @description Lista de configurações das colunas a serem renderizadas. @default [] */\n @Input()\n public columns: Column[] = [];\n\n /** @description Objeto da linha com os valores a serem exibidos nas colunas. Campo obrigatório. */\n @Input()\n public rowValue!: any;\n\n /** @description Opções de localização (calendário e número) usadas para formatação. @default null */\n @Input()\n public locale: TableColumnLocaleOptions | null = null;\n\n cellsData: (CellData | null)[] = [];\n\n formattedColumns: ColumnValues[] = [];\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly viewContainerRef: ViewContainerRef,\n private readonly translate: TranslateService,\n private readonly numericService: NumericService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs,\n ) {\n this.locale = {\n calendar: {\n ...this.localeService.getLocaleOptions()?.calendar,\n dateFormat: convertToMomentDateFormat(this.localeService.getLocaleOptions()?.calendar.dateFormat ?? ''),\n },\n number: {\n ...this.localeService.getLocaleOptions()?.number,\n scale: 0,\n },\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.validateComponentAttributes(changes);\n\n if (changes['columns'] && changes['columns'].currentValue !== changes['columns'].previousValue) {\n this.columns = this.sortColumnsBySequence(changes['columns'].currentValue);\n }\n this.createColumnsTemplate(changes);\n }\n\n public isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n public getTokensByColumn(column: ColumnValues) {\n return column.columnValue as IToken[];\n }\n\n private getCellData(column: ColumnValues): CellData | null {\n const { columnValue, separator, uninformed } = column;\n\n if (typeof columnValue === 'string') {\n const splittedString = columnValue.split(separator);\n\n return splittedString.map((string, index) => {\n const isLastIndex = splittedString.length - 1 === index;\n\n return {\n value: string,\n isUninformed: string === uninformed,\n separator: !isLastIndex ? separator : null,\n };\n });\n }\n\n return null;\n }\n\n private validateComponentAttributes(changes: SimpleChanges): void {\n if (!this.columns && !changes['columns']?.currentValue) {\n throw new Error(\"The 'columns' attribute must be informed!\");\n }\n if (!this.rowValue && !changes['rowValue']?.currentValue) {\n throw new Error(\"The 'rowValue' attribute must be informed!\");\n }\n }\n\n private createColumnsTemplate(changes: SimpleChanges): void {\n this.viewContainerRef.clear();\n\n const columns: Column[] = changes['columns']?.currentValue || this.columns;\n\n const rowValue: object = deepClone(changes['rowValue']?.currentValue ?? this.rowValue);\n\n const locale: TableColumnLocaleOptions = changes['locale']?.currentValue || this.locale;\n\n this.formattedColumns = columns.map((column) => this.getColumnValue(column, rowValue, locale));\n\n this.cellsData = this.formattedColumns.map((column) => this.getCellData(column));\n\n if (!isNullOrUndefined(this.columnsTemplate)) {\n this.viewContainerRef.createEmbeddedView(this.columnsTemplate);\n }\n }\n\n private getColumnSeparator(column: Column) {\n return column.separator ? column.separator : ' - ';\n }\n\n private getTranslationPrefix(column: Column) {\n return column.prefix ? column.prefix : `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n private isAttributeValueInvalid(attributeValue: any) {\n return (\n attributeValue === null ||\n attributeValue === undefined ||\n (attributeValue?.options?.numberFormatOptions && isNullOrUndefined(attributeValue?.value)) ||\n (this.isArray(attributeValue) && !attributeValue.length) ||\n (typeof attributeValue === 'string' && attributeValue.trim() === '')\n );\n }\n\n private getFormattedColumnValue(\n column: Column,\n columnValue: any[],\n unifiedColumnValues: string,\n uninformedText: string,\n uninformedNumber: number,\n ) {\n if (uninformedNumber === column.attributes.length) {\n return uninformedText;\n }\n\n if (column.type === EnumColumnFieldType.TOKENS) {\n return [].concat.apply(\n [],\n columnValue.filter((values) => values !== uninformedText),\n );\n }\n\n return unifiedColumnValues;\n }\n\n private getAttributeValue(attribute: string, rowValue: any) {\n let attributeValue!: any;\n\n attribute.split('/').forEach((value: string) => {\n if (!attributeValue) {\n value.split('.').forEach((val: string, i) => {\n if (!rowValue) {\n return;\n }\n\n if (i === 0) {\n attributeValue = rowValue[val];\n } else {\n if (attributeValue) {\n attributeValue = attributeValue[val];\n }\n }\n });\n }\n });\n\n return attributeValue;\n }\n\n private getNumberConfigs(column: Column): MaskConfig {\n return {\n ...this.locale?.number,\n scale:\n column.scale !== null && column.scale !== undefined\n ? this.getColumnScale(column.scale)\n : this.locale?.number.scale,\n prefix: `${this.locale?.number.currencySymbol} `,\n };\n }\n\n private getDateFormat(column: Column, locale: TableColumnLocaleOptions) {\n return column.dateFormat ? column.dateFormat : locale.calendar.dateFormat;\n }\n\n private getColumnValue(column: Column, rowValue: any, locale: TableColumnLocaleOptions): ColumnValues {\n const prefix = this.getTranslationPrefix(column);\n const separator = this.getColumnSeparator(column);\n const uninformed = this.translate.instant(prefix + 'empty_label');\n const style = column.style;\n\n const columnValue = column.attributes.map((attribute: string | number | symbol) => {\n const attributeValue = this.getAttributeValue(attribute as string, rowValue);\n\n if (this.isAttributeValueInvalid(attributeValue)) {\n return uninformed;\n }\n\n const numberConfigs = this.getNumberConfigs(column);\n\n switch (column.type) {\n case EnumColumnFieldType.ENUM:\n return this.translate.instant(column.enumPrefix + attributeValue.toString().toLowerCase());\n\n case EnumColumnFieldType.CURRENCY: {\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === 'function'\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n\n case EnumColumnFieldType.DATE:\n const dateFormat = this.getDateFormat(column, locale);\n return moment(attributeValue).format(dateFormat);\n\n case EnumColumnFieldType.BOOLEAN:\n const value = attributeValue ? 'yes' : 'no';\n return this.translate.instant(prefix + value);\n\n case EnumColumnFieldType.NUMBER: {\n numberConfigs.prefix = '';\n\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === 'function'\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n case EnumColumnFieldType.TOKENS:\n return this.getTokens(attributeValue);\n\n default:\n return attributeValue;\n }\n });\n\n const unifiedColumnValues = columnValue.join(separator);\n const uninformedNumber = unifiedColumnValues.split(separator).filter((value) => value === uninformed).length;\n const formattedColumnValue = this.getFormattedColumnValue(\n column,\n columnValue,\n unifiedColumnValues,\n uninformed,\n uninformedNumber,\n );\n\n return {\n style,\n columnValue: formattedColumnValue,\n separator,\n uninformed,\n badgeConfigs: column?.badgeConfigs?.find(\n (badgeConfig) => badgeConfig.enumValue === rowValue[column.attributes[0] ?? column.field],\n ),\n color: column.color?.(rowValue),\n type: column.type,\n tooltip: this.getColumnTooltip(column.tooltip),\n infoSign: this.getColumnInfoSign(column.infoSign),\n onLinkClick: column.onLinkClick,\n onColumnClick: column.onColumnClick,\n compact: column.compact,\n };\n }\n\n private getColumnScale(scale: number | ((rowValue: any) => number)): number {\n if (typeof scale === 'function') {\n return scale(deepClone(this.rowValue));\n }\n return scale;\n }\n\n private getColumnInfoSign(infoSign?: string | ((rowValue: any) => string | null)): string | null {\n if (!isNullOrUndefined(infoSign)) {\n if (typeof infoSign === 'function') {\n return infoSign(deepClone(this.rowValue));\n }\n return infoSign;\n }\n return null;\n }\n\n private getColumnTooltip(tooltip?: string | ((rowValue: any) => string)): string {\n if (!isNullOrUndefined(tooltip)) {\n if (typeof tooltip === 'function') {\n return tooltip(deepClone(this.rowValue));\n }\n return tooltip;\n }\n return '';\n }\n\n private isNumber(value: any): boolean {\n return !new BigNumber(value).isNaN();\n }\n\n private getTokens(values: any): IToken[] {\n if (!this.isArray(values)) {\n throw new Error('To use tokens an array must be informed');\n }\n\n if (!this.isValidTokenArray(values)) {\n throw new Error(\n 'Not a valid token array. Must be a primitive values array or an objects with label attribute array',\n );\n }\n\n if (this.isLabelObjectArray(values)) {\n return values;\n }\n\n return values\n .filter((value: any) => value !== undefined && value !== null)\n .map((value: any) => {\n const label = typeof value === 'symbol' ? value.toString() : `${value}`;\n return {\n label,\n };\n });\n }\n\n private isValidTokenArray(values: any[]): boolean {\n return this.isPrimitiveValuesArray(values) || this.isLabelObjectArray(values);\n }\n\n private isPrimitiveValuesArray(values: any[]): boolean {\n return values.filter((value) => value !== Object(value)).length === values.length;\n }\n\n private isLabelObjectArray(values: any[]): boolean {\n return values.filter((value) => value?.label !== null && value?.label !== undefined).length === values.length;\n }\n\n private sortColumnsBySequence(columns: Column[]): Column[] {\n return columns.sort((a, b) => (a.sequence ?? 0) - (b.sequence ?? 0));\n }\n}\n\ntype CellData = { value: string; isUninformed: boolean; separator: string | null }[];\n\n","<ng-template #columnsTemplate>\n @for (column of formattedColumns; track $index; let i = $index) {\n <td\n [ngStyle]=\"column.style\"\n (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\"\n >\n @if (column.type !== 'TOKENS' || !isArray(column.columnValue)) {\n <div [ngClass]=\"{ 'compact-column': column.compact }\">\n @if (column.type !== 'LINK') {\n <span\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </span>\n }\n\n @if (column.type === 'LINK') {\n @if (cellsData[i]?.[0]?.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellsData[i]?.[0]?.value }}</span>\n } @else {\n <ng-template #anchorTemplate>\n <a\n [sTooltip]=\"column.tooltip\"\n [escape]=\"false\"\n (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\"\n >\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container>\n </a>\n </ng-template>\n }\n }\n\n <ng-template #columnValueTemplate>\n @for (cellData of cellsData[i]; track $index) {\n @if (cellData.isUninformed) {\n <span class=\"sds-empty-value\">{{ cellData.value }}</span>\n } @else {\n @if (column.badgeConfigs) {\n <s-badge\n [sTooltip]=\"column.tooltip\"\n [color]=\"column.badgeConfigs.color\"\n [text]=\"cellData.value\"\n ></s-badge>\n } @else {\n <span [ngClass]=\"{\n 'column-cell-red': column.color === 'Red',\n 'column-cell-orange': column.color === 'Orange',\n 'column-cell-yellow': column.color === 'Yellow',\n 'column-cell-green': column.color === 'Green',\n 'column-cell-blue': column.color === 'Blue'\n }\"\n >{{ cellData.value }}</span>\n }\n }\n\n @if (cellData.separator) {\n <span>{{ cellData.separator }}</span>\n }\n }\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n </ng-template>\n </div>\n } @else {\n <s-token-list\n [tokens]=\"getTokensByColumn(column)\"\n [hidePointerEvents]=\"true\"\n ></s-token-list>\n\n @if (!!column.infoSign) {\n <span *sInfoSign=\"column.infoSign\"></span>\n }\n }\n </td>\n }\n</ng-template>\n","import { ElementRef } from '@angular/core';\nimport { Column } from '../table/table-column/models/column.interface';\nimport { EnumColumnFieldType } from '../table/table-column/models/enum-column-field-type';\n\ndeclare global {\n interface Navigator {\n msSaveOrOpenBlob(blob: Blob, name: string): void;\n }\n}\n\nexport abstract class ExportUtils {\n public static addClass(element: ElementRef, className: string) {\n element.nativeElement.className = `${element.nativeElement.className} ${className}`;\n }\n\n public static removeClass(element: ElementRef, className: string) {\n if (element.nativeElement.className.includes(className)) {\n element.nativeElement.className = element.nativeElement.className.replace(className, '');\n }\n }\n\n public static exportCSV(\n columns: Partial<Column>[] = [],\n data: any[] = [],\n csvSeparator: string = ';',\n documentName: string = 'download',\n ) {\n let csv = '\\ufeff';\n\n columns\n .filter((column: any) => column.exportable && column.field)\n .forEach((column: any, i: number) => {\n csv += `\"${column.header || column.field}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n\n data.forEach((record: any) => {\n csv += '\\n';\n\n columns\n .filter((column: any) => column.exportable && column.field)\n .forEach((column: any, i: number) => {\n let cellData;\n if (Array.isArray(column.field)) {\n const fieldValues = column.field.map((col: string) =>\n this._resolveFieldData(record, col, column),\n );\n\n cellData = fieldValues\n .flat()\n .filter((value: string) => value !== null && value !== undefined)\n .join(column.separator);\n } else {\n cellData = this._resolveFieldData(record, column.field, column);\n }\n\n if (cellData !== null) cellData = String(cellData).replace(/\"/g, '\"\"');\n else cellData = '';\n\n csv += `\"${cellData}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n });\n\n const blob = new Blob([csv], {\n type: 'text/csv;charset=utf-8;',\n });\n\n if (typeof window.navigator.msSaveOrOpenBlob === 'function') {\n navigator.msSaveOrOpenBlob(blob, documentName + '.csv');\n } else {\n const link = document.createElement('a');\n link.style.display = 'none';\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', documentName + '.csv');\n link.click();\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n private static _resolveFieldData(data: any, field: any, column: Column): string | null {\n if (!data && !field) {\n return null;\n }\n const needSplitValues = field.includes('.');\n if (this._isFunction(field)) {\n return field(data);\n } else if (!needSplitValues) {\n return data[field];\n } else {\n const fields: string[] = field.split('.');\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value === null || value === undefined) {\n return null;\n }\n value = value[fields[i]];\n }\n return ExportUtils._extractData(value, column);\n }\n }\n\n private static _isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n\n private static _extractData(data: any, column: Column) {\n const _data = Array.isArray(data) ? data : [data];\n switch (column.type) {\n case EnumColumnFieldType.TOKENS:\n return _data.map((d: any) => ExportUtils._parseToken(d));\n default:\n return data;\n }\n }\n\n private static _parseToken(data: any) {\n if (isObject(data)) {\n return data['label'];\n } else {\n return data;\n }\n }\n}\n\nconst isObject = (obj: any) => obj !== null && typeof obj === 'object';\n","import { Component, Inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Table } from 'primeng/table';\nimport { CustomAction } from './models';\nimport { Column } from '../table-column/models';\nimport { ExportUtils } from '../export-utils';\nimport { deepClone, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from '@seniorsistemas/angular-components/common';\n\ntype RowValueFormatOption = {\n value?: number;\n options?: {\n numberFormatOptions?: Intl.NumberFormatOptions;\n };\n};\n\n@Component({\n templateUrl: './table-paging.component.html',\n styleUrls: ['./table-paging.component.scss'],\n selector: 's-table-paging',\n})\nexport class TablePagingComponent implements OnChanges {\n @Input()\n public totalRecords!: number;\n\n @Input()\n public exportFileName?: string;\n\n @Input()\n public table!: Table;\n\n @Input()\n public exportable = true;\n\n @Input()\n public enableExportSelectedRecords = true;\n\n @Input()\n public customActions?: CustomAction[];\n\n @Input()\n public loadAllRecords?: () => Promise<any[]>;\n\n @Input()\n public loadCurrentPageRecords?: () => any[];\n\n @Input()\n public loadSelectedRecords?: () => any[];\n\n public totalRecordsText = '';\n\n private readonly localeService: LocaleService = Inject(LocaleService);\n\n constructor(\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['totalRecords']?.currentValue) {\n this.totalRecordsText = this.translate.instant(`${this.getTranslatePrefix()}total_records`, {\n value: changes['totalRecords'].currentValue,\n });\n }\n }\n\n private getTranslatePrefix() {\n return `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n public getTooltipText() {\n return this.translate.instant(`${this.getTranslatePrefix()}export_to_csv`);\n }\n\n public getActions(): TieredMenuItemData[] {\n const actions: TieredMenuItemData[] = [\n {\n dataKey: 'exportCurrentPage',\n label: this.translate.instant(`${this.getTranslatePrefix()}export_current_page`),\n command: () => this.exportCurrentPage(),\n },\n ];\n\n if (this.enableExportSelectedRecords) {\n actions.push({\n dataKey: 'exportSelected',\n label: this.translate.instant(`${this.getTranslatePrefix()}export_selected_records`),\n command: () => this.exportSelectedRecords(),\n });\n }\n\n if (this.loadAllRecords) {\n actions.push({\n dataKey: 'exportAll',\n label: this.translate.instant(`${this.getTranslatePrefix()}export_all_records`),\n command: () => this.exportAllRecords(),\n });\n }\n\n if (this.customActions?.length) {\n const customMenus = this.customActions.map((p, $index) => ({\n dataKey: `customAction_${$index}`,\n label: p.label,\n command: p.command,\n }));\n actions.push(...customMenus);\n }\n\n return actions;\n }\n\n private validateComponent() {\n if (!this.table) {\n throw new Error('Table component not defined');\n }\n }\n\n public getColumnsToExport() {\n return [...(this.table.columns ?? [])].map((column) => {\n const exportColumn = {\n ...column,\n header: column.header,\n exportable: true,\n field: column.field,\n separator: column.separator ?? ' - ',\n enumPrefix: column.enumPrefix,\n customExport: column.customExport,\n };\n\n if (column.exportable === false) {\n exportColumn.exportable = false;\n }\n\n if (column.attributes && column.attributes.length) {\n if (column.attributes.length === 1) {\n exportColumn.field = column.attributes[0];\n } else {\n exportColumn.field = column.attributes;\n }\n }\n\n return exportColumn;\n });\n }\n\n private getCurrentPageRowsToExport(columns: any[]) {\n let tableData = deepClone(this.table.value);\n\n if (this.loadCurrentPageRecords) {\n tableData = this.loadCurrentPageRecords();\n }\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getSelectedRowsToExport(columns: any[]) {\n let tableData = deepClone(this.table.selection);\n if (this.loadSelectedRecords) {\n tableData = this.loadSelectedRecords();\n }\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getPropertyValue(obj: any, path: string) {\n return path\n .split('.')\n .reduce((result: any, prop: any) => (result[prop] === undefined ? undefined : result[prop]), obj);\n }\n\n private setPropertyValue(obj: any, path: string, value: any) {\n this.recursionSetValue(obj, path.split('.'), value);\n }\n\n private recursionSetValue(obj: any, keysList: string[], value: any): any {\n const key = keysList[0];\n if (keysList.length === 1) {\n obj[key] = value;\n return obj;\n }\n obj[key] = this.recursionSetValue(obj?.[key] || {}, keysList.slice(1), value);\n return obj;\n }\n\n public mapColumnsTranslations(columns: any[], rows: any[]) {\n const enumColumns = columns.filter((p) => p.enumPrefix);\n if (!enumColumns.length) {\n return rows;\n }\n\n return [...rows].map((row) => {\n const newRow = { ...row };\n enumColumns.forEach((column) => {\n const fields = !Array.isArray(column.field) ? [column.field] : column.field;\n fields.forEach((fieldName: string) => {\n const columnData = this.getPropertyValue(row, fieldName);\n if (columnData === null || columnData === undefined) {\n return;\n }\n\n const newValue = this.translateValue(column, columnData);\n this.setPropertyValue(newRow, fieldName, newValue);\n });\n });\n\n return newRow;\n });\n }\n\n public mapCustomExport(columns: any[], rows: any[]) {\n const customColumns = columns.filter((p) => p.customExport);\n if (!customColumns.length) {\n return rows;\n }\n\n return [...rows].map((row) => {\n const newRow = { ...row };\n customColumns.forEach((column) => {\n const fields = !Array.isArray(column.field) ? [column.field] : column.field;\n fields.forEach((fieldName: string) => {\n const columnData = this.getPropertyValue(row, fieldName);\n if (columnData === null || columnData === undefined) {\n return;\n }\n const newValue = column.customExport(columnData);\n this.setPropertyValue(newRow, fieldName, newValue);\n });\n });\n\n return newRow;\n });\n }\n\n private translateValue(column: any, columnData: any) {\n // Default usage: ENUM_VALUE -> domain.service.enum_value\n const enumValue = columnData.toString().toLowerCase();\n let translationKey = column.enumPrefix + enumValue;\n let translatedValue = this.translate.instant(translationKey);\n\n // Custom usage 1: V9 -> domain.service.v_9\n if (translationKey === translatedValue && enumValue.length > 1) {\n translationKey = `${column.enumPrefix}${enumValue.substring(0, 1)}_${enumValue.substr(1)}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n // Custom usage 2: EnumValue -> domain.service.enum_value\n if (translationKey === translatedValue) {\n const enumKey = this.convertToSnakeCase(columnData.toString());\n translationKey = `${column.enumPrefix}${enumKey}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n return translatedValue;\n }\n\n private convertToSnakeCase(str: string) {\n return str.replace(/([A-Z])/g, (_match, group) => `_${group.toLowerCase()}`).replace(/^_/, '');\n }\n\n private getExportFileName() {\n const lang = this.translate.currentLang ?? 'pt-BR';\n const date = new Date();\n\n const fileName = this.exportFileName ?? 'download';\n const formattedDate = date.toLocaleDateString(lang).replace('_', '-');\n const formattedTime = date.toLocaleTimeString(lang).replace(' ', '-');\n\n return `${fileName}_${formattedDate}_${formattedTime}`;\n }\n\n public exportCurrentPage() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getCurrentPageRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public exportSelectedRecords() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getSelectedRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public async exportAllRecords() {\n this.validateComponent();\n\n if (!this.loadAllRecords) {\n return;\n }\n let serverData = await this.loadAllRecords();\n\n const columns = this.getColumnsToExport();\n\n serverData = this.mapCustomExport(columns, serverData);\n\n serverData = this.mapNumberFormatOptionsExport(columns, serverData);\n\n const dataToExport = this.mapColumnsTranslations(columns, serverData);\n\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n /**\n * The purpose of this method is to map values\n * from the TableColumnsComponent, which uses the numberFormatOptions\n * field, along with rows that have a custom numberFormatOptions,\n * to ensure the correct values are exported by the TablePagingComponent.\n *\n * @returns Returns the correctly mapped tableData.\n */\n public mapNumberFormatOptionsExport(\n columns: Partial<Column>[],\n tableData: {\n [key: string]: RowValueFormatOption | number | string | null | undefined;\n }[],\n ) {\n const hasNumberFormatOptionsColumns = columns.some((column) => column.numberFormatOptions);\n const hasNumberFormatOptionsRows = tableData.some((rowData) =>\n Object.keys(rowData).some((key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions),\n );\n\n if (!hasNumberFormatOptionsColumns && !hasNumberFormatOptionsRows) return tableData;\n\n if (hasNumberFormatOptionsColumns) {\n tableData = tableData.map((rowData) => {\n const columnsWithNumberFormatOptions = columns.filter((column) => column.numberFormatOptions);\n\n for (const column of columnsWithNumberFormatOptions) {\n const attributes = column.attributes;\n\n const numberFormatOptions =\n typeof column.numberFormatOptions === 'function'\n ? column.numberFormatOptions({\n rowData,\n })\n : column.numberFormatOptions;\n\n for (const attribute of attributes!) {\n if (isNullOrUndefined(rowData[attribute as string])) continue;\n\n if ((rowData[attribute as string] as RowValueFormatOption).options?.numberFormatOptions) {\n continue;\n }\n\n const value = rowData[attribute as string] as string | number;\n\n const mappedValue =\n numberFormatOptions?.style === 'percent'\n ? new BigNumber(value).times(100)\n : new BigNumber(value);\n\n const numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions()!.locale, {\n ...numberFormatOptions,\n style: 'decimal',\n useGrouping: false,\n roundingMode: 'trunc',\n } as any);\n\n rowData[attribute as string] = numberFormat.format(mappedValue.toNumber());\n }\n }\n\n return rowData;\n });\n }\n\n if (hasNumberFormatOptionsRows) {\n tableData = tableData.map((rowData) => {\n const keysWithNumberFormatOptions = Object.keys(rowData).filter(\n (key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions,\n );\n\n for (const key of keysWithNumberFormatOptions) {\n const value = (rowData[key] as RowValueFormatOption).value;\n\n const numberFormatOptions = (rowData[key] as RowValueFormatOption).options?.numberFormatOptions;\n\n const mappedValue =\n numberFormatOptions?.style === 'percent'\n ? new BigNumber(value!).times(100)\n : new BigNumber(value!);\n\n const numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions()!.locale, {\n ...numberFormatOptions,\n style: 'decimal',\n useGrouping: false,\n roundingMode: 'trunc',\n } as any);\n\n (rowData[key] as string | number) = numberFormat.format(mappedValue.toNumber());\n }\n\n return rowData;\n });\n }\n\n return tableData;\n }\n}\n","<div class=\"paging-container\">\n <span class=\"total-records\">\n {{ totalRecordsText }}\n </span>\n @if (exportable) {\n <s-button\n class=\"export-button\"\n priority=\"default\"\n iconClass=\"fa fa-fw fa-file-export\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n [tooltip]=\"getTooltipText()\"\n [menuOptions]=\"getActions()\"\n >\n </s-button>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NavigationDirective } from './navigation/navigation.directive';\nimport { RowTogllerDirective } from './row-toggler/row-toggler.directive';\nimport { TableColumnsComponent } from './table-column/table-columns.component';\nimport { TablePagingComponent } from './table-paging/table-paging.component';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { TokenListModule } from '@seniorsistemas/angular-components/token-list';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, TokenListModule, TranslateModule, ButtonModule, InfoSignModule, BadgeModule],\n exports: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n declarations: [RowTogllerDirective, NavigationDirective, TableColumnsComponent, TablePagingComponent],\n})\nexport class TableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BigNumber","i2"],"mappings":"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"}
|
|
@@ -341,6 +341,7 @@ class TieredMenuComponent {
|
|
|
341
341
|
top = 0;
|
|
342
342
|
left = 0;
|
|
343
343
|
menuTriggerEvent = 'hover';
|
|
344
|
+
isSubmenu = false;
|
|
344
345
|
_componentRef = null;
|
|
345
346
|
_menuDivElement = null;
|
|
346
347
|
_unsubscribe$ = new Subject();
|
|
@@ -411,14 +412,16 @@ class TieredMenuComponent {
|
|
|
411
412
|
}
|
|
412
413
|
}
|
|
413
414
|
ngOnInit() {
|
|
414
|
-
this.tieredMenuService.currentItems = this.items;
|
|
415
|
-
this.tieredMenuService.currentItem = this.items[0] ?? null;
|
|
416
415
|
this._subscribeEvents();
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
416
|
+
// Submenus have their focus managed by the openItemMenuEvent handler.
|
|
417
|
+
if (!this.isSubmenu) {
|
|
418
|
+
this.tieredMenuService.currentItems = this.items;
|
|
419
|
+
this.tieredMenuService.currentItem = this.items[0] ?? null;
|
|
420
|
+
disableScroll();
|
|
421
|
+
requestAnimationFrame(() => {
|
|
422
|
+
this._focusCurrentItem();
|
|
423
|
+
});
|
|
424
|
+
}
|
|
422
425
|
}
|
|
423
426
|
ngOnDestroy() {
|
|
424
427
|
this._unsubscribe$.next();
|
|
@@ -481,6 +484,7 @@ class TieredMenuComponent {
|
|
|
481
484
|
document.body.appendChild(domElem);
|
|
482
485
|
// Setting the menu items.
|
|
483
486
|
this._componentRef.instance.items = items;
|
|
487
|
+
this._componentRef.instance.isSubmenu = true;
|
|
484
488
|
// Subscribe menu events.
|
|
485
489
|
this._componentRef.instance.destroyRequest.subscribe((propagate) => {
|
|
486
490
|
this._destroy(propagate);
|
|
@@ -599,6 +603,9 @@ class TieredMenuComponent {
|
|
|
599
603
|
this.tieredMenuService.currentItems = item.submenu;
|
|
600
604
|
this.tieredMenuService.currentItem = item.submenu[0];
|
|
601
605
|
item.isOpen = true;
|
|
606
|
+
requestAnimationFrame(() => {
|
|
607
|
+
this._focusCurrentItem();
|
|
608
|
+
});
|
|
602
609
|
}
|
|
603
610
|
});
|
|
604
611
|
// Close item menu event.
|
|
@@ -617,6 +624,9 @@ class TieredMenuComponent {
|
|
|
617
624
|
this.tieredMenuService.currentItems = item?.parent?.parent?.submenu || this.tieredMenuService.items;
|
|
618
625
|
this.tieredMenuService.currentItem = item.parent;
|
|
619
626
|
this.destroyRequest.emit(false);
|
|
627
|
+
requestAnimationFrame(() => {
|
|
628
|
+
this._focusCurrentItem();
|
|
629
|
+
});
|
|
620
630
|
}
|
|
621
631
|
});
|
|
622
632
|
}
|
|
@@ -683,6 +693,8 @@ class TieredMenuDirective {
|
|
|
683
693
|
*/
|
|
684
694
|
triggerEvent = 'click';
|
|
685
695
|
ariaLabel;
|
|
696
|
+
tieredMenuOpened = new EventEmitter();
|
|
697
|
+
tieredMenuClosed = new EventEmitter();
|
|
686
698
|
_componentRef = null;
|
|
687
699
|
_showTimeout;
|
|
688
700
|
_isNested = false;
|
|
@@ -760,6 +772,7 @@ class TieredMenuDirective {
|
|
|
760
772
|
this._tieredMenuGlobalService.lastInstance = this;
|
|
761
773
|
this._lastActiveElement?.blur();
|
|
762
774
|
this._isOpen = true;
|
|
775
|
+
this.tieredMenuOpened.emit();
|
|
763
776
|
this._isNested = document.body.clientWidth < 600;
|
|
764
777
|
this._isNested ? this._createNestedMenu() : this._createTieredMenu();
|
|
765
778
|
}
|
|
@@ -800,6 +813,7 @@ class TieredMenuDirective {
|
|
|
800
813
|
_destroy() {
|
|
801
814
|
if (this._componentRef) {
|
|
802
815
|
this._isOpen = false;
|
|
816
|
+
this.tieredMenuClosed.emit();
|
|
803
817
|
window.clearTimeout(this._showTimeout);
|
|
804
818
|
this._appRef.detachView(this._componentRef.hostView);
|
|
805
819
|
this._componentRef.destroy();
|
|
@@ -875,7 +889,7 @@ class TieredMenuDirective {
|
|
|
875
889
|
this._tieredMenuService.items[0];
|
|
876
890
|
}
|
|
877
891
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TieredMenuDirective, deps: [{ token: i0.ElementRef }, { token: i0.ApplicationRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: TieredMenuEventService }, { token: TieredMenuService }, { token: TieredMenuGlobalService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
878
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TieredMenuDirective, selector: "[sTieredMenu]", inputs: { items: "items", focusedItem: "focusedItem", triggerEvent: "triggerEvent", ariaLabel: "ariaLabel" }, host: { listeners: { "click": "onClick($event)" } }, providers: [TieredMenuEventService, TieredMenuService], usesOnChanges: true, ngImport: i0 });
|
|
892
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TieredMenuDirective, selector: "[sTieredMenu]", inputs: { items: "items", focusedItem: "focusedItem", triggerEvent: "triggerEvent", ariaLabel: "ariaLabel" }, outputs: { tieredMenuOpened: "tieredMenuOpened", tieredMenuClosed: "tieredMenuClosed" }, host: { listeners: { "click": "onClick($event)" } }, providers: [TieredMenuEventService, TieredMenuService], usesOnChanges: true, ngImport: i0 });
|
|
879
893
|
}
|
|
880
894
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TieredMenuDirective, decorators: [{
|
|
881
895
|
type: Directive,
|
|
@@ -891,6 +905,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
891
905
|
type: Input
|
|
892
906
|
}], ariaLabel: [{
|
|
893
907
|
type: Input
|
|
908
|
+
}], tieredMenuOpened: [{
|
|
909
|
+
type: Output
|
|
910
|
+
}], tieredMenuClosed: [{
|
|
911
|
+
type: Output
|
|
894
912
|
}], onClick: [{
|
|
895
913
|
type: HostListener,
|
|
896
914
|
args: ['click', ['$event']]
|