@seniorsistemas/angular-components 19.9.9 → 19.9.11-develop-1dc6275b

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.
Files changed (102) hide show
  1. package/button/lib/button/button.component.d.ts +3 -1
  2. package/dynamic-form/dynamic-form/form-field/addon-config.d.ts +12 -0
  3. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +0 -1
  4. package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +1 -0
  5. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -0
  6. package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +1 -0
  7. package/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.d.ts +4 -0
  8. package/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.d.ts +1 -0
  9. package/esm2022/button/lib/button/button.component.mjs +7 -3
  10. package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +1 -1
  11. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +2 -2
  12. package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +3 -3
  13. package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +2 -2
  14. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -3
  15. package/esm2022/dynamic-form/dynamic-form/form-field/addon-config.mjs +29 -2
  16. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
  17. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +8 -7
  18. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +1 -1
  19. package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +1 -1
  20. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +6 -5
  21. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +8 -7
  22. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +14 -5
  23. package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +2 -2
  24. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +8 -7
  25. package/esm2022/editor/lib/editor/link-dialog/link-dialog.component.mjs +2 -2
  26. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +1 -1
  27. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +2 -2
  28. package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +2 -2
  29. package/esm2022/global-search/lib/global-search/global-search.component.mjs +2 -2
  30. package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +1 -1
  31. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +1 -1
  32. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +2 -2
  33. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
  34. package/esm2022/input-group/lib/input-group/input-group.component.mjs +37 -0
  35. package/esm2022/input-group/lib/input-group/input-group.module.mjs +16 -0
  36. package/esm2022/input-group/lib/input-group/types/input-group-addon.mjs +2 -0
  37. package/esm2022/input-group/public-api.mjs +3 -0
  38. package/esm2022/input-group/seniorsistemas-angular-components-input-group.mjs +5 -0
  39. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +1 -1
  40. package/esm2022/lib/locale/fallback.mjs +8 -1
  41. package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +1 -1
  42. package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +1 -1
  43. package/esm2022/picklist/lib/picklist/picklist.component.mjs +2 -2
  44. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +2 -2
  45. package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +31 -3
  46. package/esm2022/select/lib/select/select.component.mjs +240 -23
  47. package/esm2022/spotlight/lib/spotlight/spotlight.component.mjs +2 -2
  48. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +1 -1
  49. package/fesm2022/seniorsistemas-angular-components-button.mjs +6 -2
  50. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  51. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +1 -1
  52. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
  53. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +1 -1
  54. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  55. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +2 -2
  56. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
  57. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +64 -24
  58. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  59. package/fesm2022/seniorsistemas-angular-components-editor.mjs +1 -1
  60. package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
  61. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +1 -1
  62. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  63. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +1 -1
  64. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  65. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +2 -2
  66. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  67. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +1 -1
  68. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  69. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +1 -1
  70. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  71. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +2 -2
  72. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  73. package/fesm2022/seniorsistemas-angular-components-input-group.mjs +57 -0
  74. package/fesm2022/seniorsistemas-angular-components-input-group.mjs.map +1 -0
  75. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +1 -1
  76. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  77. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +2 -2
  78. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  79. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +1 -1
  80. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  81. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +1 -1
  82. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  83. package/fesm2022/seniorsistemas-angular-components-select.mjs +269 -24
  84. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  85. package/fesm2022/seniorsistemas-angular-components-spotlight.mjs +1 -1
  86. package/fesm2022/seniorsistemas-angular-components-spotlight.mjs.map +1 -1
  87. package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
  88. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  89. package/fesm2022/seniorsistemas-angular-components.mjs +7 -0
  90. package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
  91. package/input-group/README.md +106 -0
  92. package/input-group/index.d.ts +5 -0
  93. package/input-group/lib/input-group/input-group.component.d.ts +27 -0
  94. package/input-group/lib/input-group/input-group.module.d.ts +7 -0
  95. package/input-group/lib/input-group/types/input-group-addon.d.ts +10 -0
  96. package/input-group/package.json +3 -0
  97. package/input-group/public-api.d.ts +3 -0
  98. package/package.json +7 -1
  99. package/select/README.md +16 -3
  100. package/select/lib/select/components/select-option/select-option.component.d.ts +23 -1
  101. package/select/lib/select/select.component.d.ts +111 -17
  102. package/styles.css +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-kanban.mjs","sources":["../../projects/angular-components/kanban/src/lib/kanban/kanban-event.service.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-column/kanban-column.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-column/kanban-column.component.html","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.html","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item/kanban-item.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item/kanban-item.component.html","../../projects/angular-components/kanban/src/lib/kanban/kanban.component.ts","../../projects/angular-components/kanban/src/lib/kanban/kanban.component.html","../../projects/angular-components/kanban/src/lib/kanban/kanban.module.ts","../../projects/angular-components/kanban/src/seniorsistemas-angular-components-kanban.ts"],"sourcesContent":["import { EventEmitter, Injectable } from '@angular/core';\n\nimport { KanbanColumn, KanbanItem } from './types';\n\n@Injectable()\nexport class KanbanEventService {\n public selectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public unselectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public selectItemEvent = new EventEmitter<KanbanItem>();\n public unselectItemEvent = new EventEmitter<KanbanItem>();\n\n public emitSelectAllColumnItemsEvent(column: KanbanColumn): void {\n this.selectAllColumnItemsEvent.emit(column);\n }\n\n public emitUnselectAllColumnItemsEvent(column: KanbanColumn): void {\n this.unselectAllColumnItemsEvent.emit(column);\n }\n\n public emitSelectItemEvent(item: KanbanItem): void {\n this.selectItemEvent.emit(item);\n }\n\n public emitUnselectItemEvent(item: KanbanItem): void {\n this.unselectItemEvent.emit(item);\n }\n}\n","import { Component, Input, OnDestroy, OnInit, TemplateRef, inject } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { KanbanColumn, KanbanItem } from '../../types';\r\nimport { KanbanEventService } from '../../kanban-event.service';\r\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { KanbanColumnOption } from '../../types/kanban-data';\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-kanban-column',\r\n templateUrl: './kanban-column.component.html',\r\n styleUrls: ['./kanban-column.component.scss'],\r\n standalone: true,\r\n imports: [FormsModule, ReactiveFormsModule, NgTemplateOutlet, ButtonComponent],\r\n})\r\nexport class KanbanColumnComponent implements OnInit, OnDestroy {\r\n private readonly kanbanEventService = inject(KanbanEventService);\r\n\r\n @Input({ required: true })\r\n public data!: KanbanColumn;\r\n\r\n @Input()\r\n public showCheckbox = true;\r\n\r\n @Input()\r\n public headerTemplate: TemplateRef<any> | null = null;\r\n\r\n public selectionControl = new FormControl(false);\r\n public tieredMenuOptions!: TieredMenuItemData[];\r\n\r\n private _unsubscribe$ = new Subject<void>();\r\n\r\n public ngOnInit(): void {\r\n this._validateInputs();\r\n this._subscriveEvents();\r\n\r\n this._createTieredOptions();\r\n\r\n this.tieredMenuOptions = this.data.options ? (this.data.options as TieredMenuItemData[]) : [];\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n private _createTieredOptions(): void {\r\n if (!this.data.options) return;\r\n\r\n const options: KanbanColumnOption[] = [];\r\n\r\n this.data.options.forEach((option: KanbanColumnOption) => {\r\n options.push({\r\n ...option,\r\n command: () => {\r\n option.command(this.data);\r\n },\r\n });\r\n });\r\n\r\n this.data.options = options;\r\n }\r\n\r\n private _subscriveEvents(): void {\r\n this.selectionControl.valueChanges.pipe(takeUntil(this._unsubscribe$)).subscribe((value: boolean | null) => {\r\n if (value) {\r\n this.kanbanEventService.emitSelectAllColumnItemsEvent(this.data);\r\n } else {\r\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(this.data);\r\n }\r\n });\r\n\r\n this.kanbanEventService.unselectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((_) => {\r\n this.selectionControl.setValue(false, { emitEvent: false });\r\n });\r\n\r\n this.kanbanEventService.selectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: KanbanItem) => {\r\n if (!this.data.items.includes(item)) {\r\n this.selectionControl.setValue(false, { emitEvent: false });\r\n }\r\n });\r\n\r\n this.kanbanEventService.selectAllColumnItemsEvent\r\n .pipe(takeUntil(this._unsubscribe$))\r\n .subscribe((column: KanbanColumn) => {\r\n if (this.data !== column) {\r\n this.selectionControl.setValue(false, { emitEvent: false });\r\n }\r\n });\r\n\r\n this.kanbanEventService.unselectAllColumnItemsEvent\r\n .pipe(takeUntil(this._unsubscribe$))\r\n .subscribe((column: KanbanColumn) => {\r\n if (this.data !== column) {\r\n this.selectionControl.setValue(false, { emitEvent: false });\r\n }\r\n });\r\n }\r\n\r\n private _validateInputs(): void {\r\n if (!this.data) {\r\n throw new Error('data parameter is required');\r\n }\r\n }\r\n}\r\n","<div class=\"kanban-column\">\n <div class=\"kanban-column__header\">\n <div class=\"content\">\n <form>\n @if (showCheckbox) {\n <input\n type=\"checkbox\"\n name=\"checkbox\"\n [formControl]=\"selectionControl\"\n />\n }\n </form>\n\n @if (!headerTemplate) {\n <div class=\"header\">\n <span class=\"title\">{{ data.title }} ({{ data.items.length }})</span>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: data }\"></ng-container>\n }\n </div>\n @if (data.options) {\n <s-button\n priority=\"default\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n size=\"small\"\n [menuOptions]=\"tieredMenuOptions\"\n >\n </s-button>\n }\n </div>\n <div class=\"kanban-column__body\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { BadgeComponent } from '@seniorsistemas/angular-components/badge';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 's-kanban-item-dragging',\r\n templateUrl: './kanban-item-dragging.component.html',\r\n styleUrls: ['./kanban-item-dragging.component.scss'],\r\n standalone: true,\r\n imports: [NgClass, BadgeComponent, TranslatePipe],\r\n})\r\nexport class KanbanItemDraggingComponent {\r\n @Input()\r\n public quantityItems = 0;\r\n}\r\n","<div class=\"kanban-item-dragging-container\">\r\n @if (quantityItems) {\r\n <div class=\"kanban-item-dragging\"></div>\r\n }\r\n\r\n <div\r\n class=\"kanban-item-dragging\"\r\n [ngClass]=\"{ 'kanban-item-dragging--over': quantityItems }\"\r\n >\r\n <div class=\"content\">\r\n <input\r\n type=\"checkbox\"\r\n checked\r\n />\r\n <s-badge\r\n [text]=\"'platform.angular_components.count_items_selected' | translate: { count: quantityItems }\"\r\n color=\"blue\"\r\n >\r\n </s-badge>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit, TemplateRef, inject } from '@angular/core';\r\n\r\nimport { KanbanItem } from '../../types';\r\nimport { KanbanEventService } from '../../kanban-event.service';\r\nimport { KanbanItemOption } from '../../types/kanban-data';\r\nimport { TieredMenuItemData, TieredMenuDirective } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 's-kanban-item',\r\n templateUrl: './kanban-item.component.html',\r\n styleUrls: ['./kanban-item.component.scss'],\r\n standalone: true,\r\n imports: [NgClass, FormsModule, NgTemplateOutlet, TieredMenuDirective],\r\n})\r\nexport class KanbanItemComponent implements OnInit {\r\n private readonly _kanbanEventService = inject(KanbanEventService);\r\n\r\n @Input({ required: true })\r\n public item!: KanbanItem;\r\n\r\n @Input()\r\n public selected = false;\r\n\r\n @Input()\r\n public showCheckbox = true;\r\n\r\n @Input()\r\n public headerTemplate: TemplateRef<any> | null = null;\r\n\r\n @Input()\r\n public bodyTemplate: TemplateRef<any> | null = null;\r\n\r\n @Input()\r\n public footerTemplate: TemplateRef<any> | null = null;\r\n\r\n public kanbanItemOptions: TieredMenuItemData[] = [];\r\n\r\n public ngOnInit(): void {\r\n this._convertToTieredMenuItemData();\r\n }\r\n\r\n public onSelectedChange(value: any): void {\r\n if (value) {\r\n this._kanbanEventService.emitSelectItemEvent(this.item);\r\n } else {\r\n this._kanbanEventService.emitUnselectItemEvent(this.item);\r\n }\r\n }\r\n\r\n private _convertToTieredMenuItemData() {\r\n if (!this.item.options) return;\r\n\r\n const options: TieredMenuItemData[] = [];\r\n\r\n this.item.options.forEach((option: KanbanItemOption) => {\r\n options.push({\r\n ...option,\r\n command: () => option.command(this.item),\r\n });\r\n });\r\n\r\n this.kanbanItemOptions = options;\r\n }\r\n}\r\n","<div\r\n class=\"kanban-item\"\r\n [ngClass]=\"{\r\n 'kanban-item--selected': selected && !item.disabled,\r\n 'kanban-item--disabled': item.disabled,\r\n 'kanban-item--frozen': !item.disabled && item.frozen,\r\n }\"\r\n>\r\n <div class=\"kanban-item__header\">\r\n <div class=\"content\">\r\n <form>\r\n @if (showCheckbox && !item.disabled && !item.frozen) {\r\n <input\r\n type=\"checkbox\"\r\n name=\"checkbox\"\r\n [(ngModel)]=\"selected\"\r\n (ngModelChange)=\"onSelectedChange($event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n }\r\n </form>\r\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n @if (item.options && !item.disabled) {\r\n <button\r\n class=\"options-button\"\r\n (click)=\"$event.stopPropagation()\"\r\n sTieredMenu\r\n [items]=\"kanbanItemOptions\"\r\n >\r\n <i class=\"fas fa-ellipsis-v\"></i>\r\n </button>\r\n }\r\n </div>\r\n <div class=\"kanban-item__body\">\r\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n @if (footerTemplate) {\r\n <div class=\"kanban-item__footer\">\r\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n }\r\n</div>\r\n","import {\r\n CdkDragDrop,\r\n moveItemInArray,\r\n transferArrayItem,\r\n CdkDropList,\r\n CdkDrag,\r\n CdkDragPreview,\r\n CdkDragPlaceholder,\r\n} from '@angular/cdk/drag-drop';\r\nimport {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n inject,\r\n} from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { KanbanEventService } from './kanban-event.service';\r\nimport { KanbanColumn, KanbanData, KanbanItem, KanbanItemMovedData } from './types/index';\r\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { KanbanColumnComponent } from './components/kanban-column/kanban-column.component';\r\nimport { KanbanItemDraggingComponent } from './components/kanban-item-dragging/kanban-item-dragging.component';\r\nimport { KanbanItemComponent } from './components/kanban-item/kanban-item.component';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n/**\r\n * @description Componente de quadro Kanban com suporte a arrastar e soltar colunas e itens.\r\n * Permite seleção via checkboxes, templates customizáveis para cabeçalho, corpo e rodapé\r\n * dos cards, além de emitir eventos de movição e seleção.\r\n *\r\n * @example\r\n * ```html\r\n * <s-kanban\r\n * [data]=\"dadosKanban\"\r\n * (itemsMoved)=\"onItemMovido($event)\" />\r\n * ```\r\n *\r\n * @category Data\r\n */\r\n@Component({\r\n selector: 's-kanban',\r\n templateUrl: './kanban.component.html',\r\n styleUrls: ['./kanban.component.scss'],\r\n standalone: true,\r\n imports: [\r\n KanbanColumnComponent,\r\n CdkDropList,\r\n NgTemplateOutlet,\r\n CdkDrag,\r\n CdkDragPreview,\r\n KanbanItemDraggingComponent,\r\n KanbanItemComponent,\r\n CdkDragPlaceholder,\r\n TranslatePipe,\r\n ],\r\n})\r\nexport class KanbanComponent implements OnInit, AfterContentInit, OnDestroy {\r\n private readonly kanbanEventService = inject(KanbanEventService);\r\n\r\n /** @description Dados do quadro Kanban com colunas e itens. Campo obrigatório. */\r\n @Input({ required: true })\r\n public data!: KanbanData;\r\n\r\n /** @description Exibe checkboxes de seleção em cada item Kanban. @default true */\r\n @Input()\r\n public showItemCheckboxes = true;\r\n\r\n /** @description Exibe checkboxes de seleção no cabeçalho de cada coluna. @default true */\r\n @Input()\r\n public showColumnCheckboxes = true;\r\n\r\n /** @description Emitido quando o usuário move um item entre colunas ou posições. */\r\n @Output()\r\n public itemsMoved = new EventEmitter<KanbanItemMovedData>();\r\n\r\n /** @description Emitido quando os dados do quadro são atualizados após movição. */\r\n @Output()\r\n public dataUpdated = new EventEmitter<KanbanData>();\r\n\r\n /** @description Emitido quando a seleção de itens muda, com a lista de itens selecionados. */\r\n @Output()\r\n public itemsSelected = new EventEmitter<KanbanItem[]>();\r\n\r\n public selectedColumn: KanbanColumn | null = null;\r\n public selectedItems = new Set<KanbanItem>();\r\n public draggingItems = new Set<KanbanItem>();\r\n\r\n public columnHeaderTemplate: TemplateRef<any> | null = null;\r\n public columnEmptyMessageTemplate: TemplateRef<any> | null = null;\r\n public itemHeaderTemplate: TemplateRef<any> | null = null;\r\n public itemBodyTemplate: TemplateRef<any> | null = null;\r\n public itemFooterTemplate: TemplateRef<any> | null = null;\r\n\r\n private readonly _instanceId = `kanban-${Math.random().toString(36).substring(2, 9)}-${Date.now().toString(36)}`;\r\n private readonly _columnIdMap = new Map<string, string>();\r\n private _unsubscribe$ = new Subject<void>();\r\n\r\n @ContentChildren(TemplateDirective) templates: QueryList<TemplateDirective> | null = null;\r\n\r\n public ngOnInit(): void {\r\n this._subscribeEvents();\r\n this._normalizeData();\r\n this._validateInputs();\r\n }\r\n\r\n ngAfterContentInit() {\r\n this._getTemplates();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n public drop(event: CdkDragDrop<KanbanItem[]>): void {\r\n const previousColumn = this.data.columns.find(\r\n (column: KanbanColumn) => column.id === event.previousContainer.id,\r\n );\r\n const targetColumn = this.data.columns.find((column: KanbanColumn) => column.id === event.container.id);\r\n\r\n if (!previousColumn || !targetColumn) {\r\n throw new Error('Unable to obtain information about columns when performing drag and drop');\r\n }\r\n\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n } else {\r\n transferArrayItem(\r\n event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex,\r\n );\r\n }\r\n\r\n this.selectedItems.forEach((item: KanbanItem) => {\r\n const previousIndex = event.previousContainer.data.indexOf(item);\r\n if (previousIndex !== -1 && item !== event.item.data) {\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, previousIndex, event.currentIndex);\r\n } else {\r\n transferArrayItem(\r\n event.previousContainer.data,\r\n event.container.data,\r\n previousIndex,\r\n event.currentIndex,\r\n );\r\n }\r\n }\r\n });\r\n\r\n this.selectedItems.add(event.item.data);\r\n\r\n this.itemsMoved.emit({\r\n items: [...this.selectedItems],\r\n previousColumn,\r\n targetColumn,\r\n });\r\n\r\n if (this.dataUpdated.observers?.length) {\r\n this.dataUpdated.emit({ ...this.data });\r\n }\r\n\r\n this.data.columns.forEach((column: KanbanColumn) => {\r\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(column);\r\n });\r\n this.selectedItems.clear();\r\n }\r\n\r\n public selectItem(event: MouseEvent, item: KanbanItem, column: KanbanColumn): void {\r\n if (item.disabled || item.frozen) return;\r\n\r\n if (event.ctrlKey) {\r\n if (this.selectedItems.delete(item)) {\r\n this.kanbanEventService.emitUnselectItemEvent(item);\r\n } else {\r\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\r\n this.selectedItems.clear();\r\n }\r\n\r\n this.selectedItems.add(item);\r\n this.selectedColumn = column;\r\n this.kanbanEventService.emitSelectItemEvent(item);\r\n }\r\n } else {\r\n if (this.selectedItems.delete(item)) return;\r\n\r\n this.selectedItems.clear();\r\n this.selectedItems.add(item);\r\n this.selectedColumn = column;\r\n this.kanbanEventService.emitSelectItemEvent(item);\r\n }\r\n }\r\n\r\n public dragStarted(): void {\r\n this.selectedItems.forEach((item: KanbanItem) => {\r\n this.draggingItems.add(item);\r\n });\r\n }\r\n\r\n public dragReleased(): void {\r\n this.draggingItems.clear();\r\n }\r\n\r\n public getLinkedColumns(currentColumn: KanbanColumn): string[] {\r\n return this.data.columns\r\n .filter((column: KanbanColumn) => column != currentColumn)\r\n .map((column: KanbanColumn) => column.id ?? '');\r\n }\r\n\r\n public getColumnHeaderTemplate(): TemplateRef<any> | null {\r\n return this._getCustomTemplate('column-header') ?? null;\r\n }\r\n\r\n public getColumnEmptyMessageTemplate(): TemplateRef<any> | null {\r\n return this._getCustomTemplate('column-empty-message') ?? null;\r\n }\r\n\r\n public getItemHeaderTemplate(): TemplateRef<any> | null {\r\n return this._getCustomTemplate('item-header') ?? null;\r\n }\r\n\r\n public getItemBodyTemplate(): TemplateRef<any> | null {\r\n return this._getCustomTemplate('item-body') ?? null;\r\n }\r\n\r\n public getItemFooterTemplate(): TemplateRef<any> | null {\r\n return this._getCustomTemplate('item-footer') ?? null;\r\n }\r\n\r\n private _getCustomTemplate(type: string): TemplateRef<any> | null {\r\n return this.templates?.find((template: TemplateDirective) => template.type === type)?.template ?? null;\r\n }\r\n\r\n private _subscribeEvents(): void {\r\n this.kanbanEventService.selectAllColumnItemsEvent\r\n .pipe(takeUntil(this._unsubscribe$))\r\n .subscribe((column: KanbanColumn) => {\r\n column.items\r\n .filter((item: KanbanItem) => !item.disabled && !item.frozen)\r\n .forEach((item: KanbanItem) => {\r\n this.selectedItems.add(item);\r\n });\r\n this.selectedColumn = column;\r\n this.itemsSelected.emit([...this.selectedItems]);\r\n });\r\n\r\n this.kanbanEventService.unselectAllColumnItemsEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((_) => {\r\n this.selectedItems.clear();\r\n });\r\n\r\n this.kanbanEventService.selectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: KanbanItem) => {\r\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\r\n this.selectedItems.clear();\r\n }\r\n this.selectedItems.add(item);\r\n this.itemsSelected.emit([...this.selectedItems]);\r\n\r\n // Finding the item column and setting selectedColumn.\r\n this.data.columns.forEach((column: KanbanColumn) => {\r\n column.items.forEach((currentItem: KanbanItem) => {\r\n if (currentItem === item) {\r\n this.selectedColumn = column;\r\n return;\r\n }\r\n });\r\n });\r\n });\r\n\r\n this.kanbanEventService.unselectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: KanbanItem) => {\r\n this.selectedItems.delete(item);\r\n });\r\n }\r\n\r\n private _normalizeData(): void {\r\n this.data.columns.forEach((column: KanbanColumn) => {\r\n const originalId = column.id || `col-${Math.random().toString(36).substring(2, 9)}`;\r\n // Não mutar column.id, manter original\r\n if (!column.id) {\r\n column.id = originalId;\r\n }\r\n // Criar ID único para esta instância\r\n const uniqueId = `${this._instanceId}-${originalId}`;\r\n this._columnIdMap.set(originalId, uniqueId);\r\n });\r\n }\r\n\r\n private _validateInputs(): void {\r\n const columns = this.data.columns;\r\n const columnIds = this.data.columns.map((column: KanbanColumn) => column.id);\r\n\r\n if (new Set(columnIds).size !== columns.length) {\r\n throw new Error('Repeated IDs are not accepted.');\r\n }\r\n }\r\n\r\n private _getTemplates(): void {\r\n this.columnHeaderTemplate = this.getColumnHeaderTemplate();\r\n this.columnEmptyMessageTemplate = this.getColumnEmptyMessageTemplate();\r\n this.itemHeaderTemplate = this.getItemHeaderTemplate();\r\n this.itemBodyTemplate = this.getItemBodyTemplate();\r\n this.itemFooterTemplate = this.getItemFooterTemplate();\r\n }\r\n}\r\n","<div class=\"kanban\">\r\n @for (column of data.columns; track column) {\r\n <s-kanban-column\r\n [data]=\"column\"\r\n [showCheckbox]=\"showColumnCheckboxes\"\r\n [headerTemplate]=\"columnHeaderTemplate\"\r\n >\r\n <div\r\n [id]=\"column.id + ''\"\r\n style=\"height: 100%; width: 100%\"\r\n cdkDropList\r\n #dynamicList=\"cdkDropList\"\r\n [cdkDropListData]=\"column.items\"\r\n [cdkDropListConnectedTo]=\"getLinkedColumns(column)\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n @if (column.items.length === 0) {\r\n @if (!columnEmptyMessageTemplate) {\r\n <div class=\"empty-message\">\r\n <p class=\"text\">\r\n <span class=\"fas fa-clock\"></span>&nbsp;\r\n <span>{{\r\n 'platform.angular_components.count_items_in_target'\r\n | translate: { count: column.items.length, target: column.title }\r\n }}</span>\r\n </p>\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"columnEmptyMessageTemplate; context: { $implicit: column }\"\r\n ></ng-container>\r\n }\r\n }\r\n @for (item of column.items; track item) {\r\n <div\r\n cdkDrag\r\n [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"item.disabled || item.frozen\"\r\n (cdkDragStarted)=\"dragStarted()\"\r\n (cdkDragReleased)=\"dragReleased()\"\r\n (click)=\"selectItem($event, item, column)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n <ng-container *cdkDragPreview>\r\n @if (selectedItems.size > 1) {\r\n <s-kanban-item-dragging [quantityItems]=\"selectedItems.size\"></s-kanban-item-dragging>\r\n } @else {\r\n <div class=\"max-w-96\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-container>\r\n <ng-template #itemTemplate>\r\n <s-kanban-item\r\n [item]=\"item\"\r\n [selected]=\"selectedItems.has(item)\"\r\n [showCheckbox]=\"showItemCheckboxes\"\r\n [headerTemplate]=\"itemHeaderTemplate\"\r\n [bodyTemplate]=\"itemBodyTemplate\"\r\n [footerTemplate]=\"itemFooterTemplate\"\r\n >\r\n </s-kanban-item>\r\n </ng-template>\r\n <div *cdkDragPlaceholder>\r\n <div class=\"placeholder\">\r\n <div class=\"placeholder-line\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </s-kanban-column>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { KanbanEventService } from './kanban-event.service';\r\nimport { KanbanComponent } from './kanban.component';\r\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\r\n\r\n@NgModule({\r\n imports: [TemplateModule, KanbanComponent],\r\n exports: [KanbanComponent, TemplateModule],\r\n providers: [KanbanEventService],\r\n})\r\nexport class KanbanModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-kanban.mjs","sources":["../../projects/angular-components/kanban/src/lib/kanban/kanban-event.service.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-column/kanban-column.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-column/kanban-column.component.html","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.html","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item/kanban-item.component.ts","../../projects/angular-components/kanban/src/lib/kanban/components/kanban-item/kanban-item.component.html","../../projects/angular-components/kanban/src/lib/kanban/kanban.component.ts","../../projects/angular-components/kanban/src/lib/kanban/kanban.component.html","../../projects/angular-components/kanban/src/lib/kanban/kanban.module.ts","../../projects/angular-components/kanban/src/seniorsistemas-angular-components-kanban.ts"],"sourcesContent":["import { EventEmitter, Injectable } from '@angular/core';\n\nimport { KanbanColumn, KanbanItem } from './types';\n\n@Injectable()\nexport class KanbanEventService {\n public selectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public unselectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public selectItemEvent = new EventEmitter<KanbanItem>();\n public unselectItemEvent = new EventEmitter<KanbanItem>();\n\n public emitSelectAllColumnItemsEvent(column: KanbanColumn): void {\n this.selectAllColumnItemsEvent.emit(column);\n }\n\n public emitUnselectAllColumnItemsEvent(column: KanbanColumn): void {\n this.unselectAllColumnItemsEvent.emit(column);\n }\n\n public emitSelectItemEvent(item: KanbanItem): void {\n this.selectItemEvent.emit(item);\n }\n\n public emitUnselectItemEvent(item: KanbanItem): void {\n this.unselectItemEvent.emit(item);\n }\n}\n","import { Component, Input, OnDestroy, OnInit, TemplateRef, inject } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { KanbanColumn, KanbanItem } from '../../types';\r\nimport { KanbanEventService } from '../../kanban-event.service';\r\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { KanbanColumnOption } from '../../types/kanban-data';\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-kanban-column',\r\n templateUrl: './kanban-column.component.html',\r\n styleUrls: ['./kanban-column.component.scss'],\r\n standalone: true,\r\n imports: [FormsModule, ReactiveFormsModule, NgTemplateOutlet, ButtonComponent],\r\n})\r\nexport class KanbanColumnComponent implements OnInit, OnDestroy {\r\n private readonly kanbanEventService = inject(KanbanEventService);\r\n\r\n @Input({ required: true })\r\n public data!: KanbanColumn;\r\n\r\n @Input()\r\n public showCheckbox = true;\r\n\r\n @Input()\r\n public headerTemplate: TemplateRef<any> | null = null;\r\n\r\n public selectionControl = new FormControl(false);\r\n public tieredMenuOptions!: TieredMenuItemData[];\r\n\r\n private _unsubscribe$ = new Subject<void>();\r\n\r\n public ngOnInit(): void {\r\n this._validateInputs();\r\n this._subscriveEvents();\r\n\r\n this._createTieredOptions();\r\n\r\n this.tieredMenuOptions = this.data.options ? (this.data.options as TieredMenuItemData[]) : [];\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n private _createTieredOptions(): void {\r\n if (!this.data.options) return;\r\n\r\n const options: KanbanColumnOption[] = [];\r\n\r\n this.data.options.forEach((option: KanbanColumnOption) => {\r\n options.push({\r\n ...option,\r\n command: () => {\r\n option.command(this.data);\r\n },\r\n });\r\n });\r\n\r\n this.data.options = options;\r\n }\r\n\r\n private _subscriveEvents(): void {\r\n this.selectionControl.valueChanges.pipe(takeUntil(this._unsubscribe$)).subscribe((value: boolean | null) => {\r\n if (value) {\r\n this.kanbanEventService.emitSelectAllColumnItemsEvent(this.data);\r\n } else {\r\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(this.data);\r\n }\r\n });\r\n\r\n this.kanbanEventService.unselectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((_) => {\r\n this.selectionControl.setValue(false, { emitEvent: false });\r\n });\r\n\r\n this.kanbanEventService.selectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: KanbanItem) => {\r\n if (!this.data.items.includes(item)) {\r\n this.selectionControl.setValue(false, { emitEvent: false });\r\n }\r\n });\r\n\r\n this.kanbanEventService.selectAllColumnItemsEvent\r\n .pipe(takeUntil(this._unsubscribe$))\r\n .subscribe((column: KanbanColumn) => {\r\n if (this.data !== column) {\r\n this.selectionControl.setValue(false, { emitEvent: false });\r\n }\r\n });\r\n\r\n this.kanbanEventService.unselectAllColumnItemsEvent\r\n .pipe(takeUntil(this._unsubscribe$))\r\n .subscribe((column: KanbanColumn) => {\r\n if (this.data !== column) {\r\n this.selectionControl.setValue(false, { emitEvent: false });\r\n }\r\n });\r\n }\r\n\r\n private _validateInputs(): void {\r\n if (!this.data) {\r\n throw new Error('data parameter is required');\r\n }\r\n }\r\n}\r\n","<div class=\"kanban-column\">\n <div class=\"kanban-column__header\">\n <div class=\"content\">\n <form>\n @if (showCheckbox) {\n <input\n type=\"checkbox\"\n name=\"checkbox\"\n [formControl]=\"selectionControl\"\n />\n }\n </form>\n\n @if (!headerTemplate) {\n <div class=\"header\">\n <span class=\"title\">{{ data.title }} ({{ data.items.length }})</span>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: data }\"></ng-container>\n }\n </div>\n @if (data.options) {\n <s-button\n priority=\"default\"\n [disabled]=\"false\"\n [auxiliary]=\"true\"\n size=\"small\"\n [menuOptions]=\"tieredMenuOptions\"\n >\n </s-button>\n }\n </div>\n <div class=\"kanban-column__body\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { BadgeComponent } from '@seniorsistemas/angular-components/badge';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 's-kanban-item-dragging',\r\n templateUrl: './kanban-item-dragging.component.html',\r\n styleUrls: ['./kanban-item-dragging.component.scss'],\r\n standalone: true,\r\n imports: [NgClass, BadgeComponent, TranslatePipe],\r\n})\r\nexport class KanbanItemDraggingComponent {\r\n @Input()\r\n public quantityItems = 0;\r\n}\r\n","<div class=\"kanban-item-dragging-container\">\r\n @if (quantityItems) {\r\n <div class=\"kanban-item-dragging\"></div>\r\n }\r\n\r\n <div\r\n class=\"kanban-item-dragging\"\r\n [ngClass]=\"{ 'kanban-item-dragging--over': quantityItems }\"\r\n >\r\n <div class=\"content\">\r\n <input\r\n type=\"checkbox\"\r\n checked\r\n />\r\n <s-badge\r\n [text]=\"'platform.angular_components.count_items_selected' | translate: { count: quantityItems }\"\r\n color=\"blue\"\r\n >\r\n </s-badge>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit, TemplateRef, inject } from '@angular/core';\r\n\r\nimport { KanbanItem } from '../../types';\r\nimport { KanbanEventService } from '../../kanban-event.service';\r\nimport { KanbanItemOption } from '../../types/kanban-data';\r\nimport { TieredMenuItemData, TieredMenuDirective } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 's-kanban-item',\r\n templateUrl: './kanban-item.component.html',\r\n styleUrls: ['./kanban-item.component.scss'],\r\n standalone: true,\r\n imports: [NgClass, FormsModule, NgTemplateOutlet, TieredMenuDirective],\r\n})\r\nexport class KanbanItemComponent implements OnInit {\r\n private readonly _kanbanEventService = inject(KanbanEventService);\r\n\r\n @Input({ required: true })\r\n public item!: KanbanItem;\r\n\r\n @Input()\r\n public selected = false;\r\n\r\n @Input()\r\n public showCheckbox = true;\r\n\r\n @Input()\r\n public headerTemplate: TemplateRef<any> | null = null;\r\n\r\n @Input()\r\n public bodyTemplate: TemplateRef<any> | null = null;\r\n\r\n @Input()\r\n public footerTemplate: TemplateRef<any> | null = null;\r\n\r\n public kanbanItemOptions: TieredMenuItemData[] = [];\r\n\r\n public ngOnInit(): void {\r\n this._convertToTieredMenuItemData();\r\n }\r\n\r\n public onSelectedChange(value: any): void {\r\n if (value) {\r\n this._kanbanEventService.emitSelectItemEvent(this.item);\r\n } else {\r\n this._kanbanEventService.emitUnselectItemEvent(this.item);\r\n }\r\n }\r\n\r\n private _convertToTieredMenuItemData() {\r\n if (!this.item.options) return;\r\n\r\n const options: TieredMenuItemData[] = [];\r\n\r\n this.item.options.forEach((option: KanbanItemOption) => {\r\n options.push({\r\n ...option,\r\n command: () => option.command(this.item),\r\n });\r\n });\r\n\r\n this.kanbanItemOptions = options;\r\n }\r\n}\r\n","<div\r\n class=\"kanban-item\"\r\n [ngClass]=\"{\r\n 'kanban-item--selected': selected && !item.disabled,\r\n 'kanban-item--disabled': item.disabled,\r\n 'kanban-item--frozen': !item.disabled && item.frozen,\r\n }\"\r\n>\r\n <div class=\"kanban-item__header\">\r\n <div class=\"content\">\r\n <form>\r\n @if (showCheckbox && !item.disabled && !item.frozen) {\r\n <input\r\n type=\"checkbox\"\r\n name=\"checkbox\"\r\n [(ngModel)]=\"selected\"\r\n (ngModelChange)=\"onSelectedChange($event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n }\r\n </form>\r\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n @if (item.options && !item.disabled) {\r\n <button\r\n class=\"options-button\"\r\n (click)=\"$event.stopPropagation()\"\r\n sTieredMenu\r\n [items]=\"kanbanItemOptions\"\r\n >\r\n <i class=\"fas fa-ellipsis-v\"></i>\r\n </button>\r\n }\r\n </div>\r\n <div class=\"kanban-item__body\">\r\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n @if (footerTemplate) {\r\n <div class=\"kanban-item__footer\">\r\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n }\r\n</div>\r\n","import {\r\n CdkDragDrop,\r\n moveItemInArray,\r\n transferArrayItem,\r\n CdkDropList,\r\n CdkDrag,\r\n CdkDragPreview,\r\n CdkDragPlaceholder,\r\n} from '@angular/cdk/drag-drop';\r\nimport {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n inject,\r\n} from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { KanbanEventService } from './kanban-event.service';\r\nimport { KanbanColumn, KanbanData, KanbanItem, KanbanItemMovedData } from './types/index';\r\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { KanbanColumnComponent } from './components/kanban-column/kanban-column.component';\r\nimport { KanbanItemDraggingComponent } from './components/kanban-item-dragging/kanban-item-dragging.component';\r\nimport { KanbanItemComponent } from './components/kanban-item/kanban-item.component';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n/**\r\n * @description Componente de quadro Kanban com suporte a arrastar e soltar colunas e itens.\r\n * Permite seleção via checkboxes, templates customizáveis para cabeçalho, corpo e rodapé\r\n * dos cards, além de emitir eventos de movição e seleção.\r\n *\r\n * @example\r\n * ```html\r\n * <s-kanban\r\n * [data]=\"dadosKanban\"\r\n * (itemsMoved)=\"onItemMovido($event)\" />\r\n * ```\r\n *\r\n * @category Data\r\n */\r\n@Component({\r\n selector: 's-kanban',\r\n templateUrl: './kanban.component.html',\r\n styleUrls: ['./kanban.component.scss'],\r\n standalone: true,\r\n imports: [\r\n KanbanColumnComponent,\r\n CdkDropList,\r\n NgTemplateOutlet,\r\n CdkDrag,\r\n CdkDragPreview,\r\n KanbanItemDraggingComponent,\r\n KanbanItemComponent,\r\n CdkDragPlaceholder,\r\n TranslatePipe,\r\n ],\r\n})\r\nexport class KanbanComponent implements OnInit, AfterContentInit, OnDestroy {\r\n private readonly kanbanEventService = inject(KanbanEventService);\r\n\r\n /** @description Dados do quadro Kanban com colunas e itens. Campo obrigatório. */\r\n @Input({ required: true })\r\n public data!: KanbanData;\r\n\r\n /** @description Exibe checkboxes de seleção em cada item Kanban. @default true */\r\n @Input()\r\n public showItemCheckboxes = true;\r\n\r\n /** @description Exibe checkboxes de seleção no cabeçalho de cada coluna. @default true */\r\n @Input()\r\n public showColumnCheckboxes = true;\r\n\r\n /** @description Emitido quando o usuário move um item entre colunas ou posições. */\r\n @Output()\r\n public itemsMoved = new EventEmitter<KanbanItemMovedData>();\r\n\r\n /** @description Emitido quando os dados do quadro são atualizados após movição. */\r\n @Output()\r\n public dataUpdated = new EventEmitter<KanbanData>();\r\n\r\n /** @description Emitido quando a seleção de itens muda, com a lista de itens selecionados. */\r\n @Output()\r\n public itemsSelected = new EventEmitter<KanbanItem[]>();\r\n\r\n public selectedColumn: KanbanColumn | null = null;\r\n public selectedItems = new Set<KanbanItem>();\r\n public draggingItems = new Set<KanbanItem>();\r\n\r\n public columnHeaderTemplate: TemplateRef<any> | null = null;\r\n public columnEmptyMessageTemplate: TemplateRef<any> | null = null;\r\n public itemHeaderTemplate: TemplateRef<any> | null = null;\r\n public itemBodyTemplate: TemplateRef<any> | null = null;\r\n public itemFooterTemplate: TemplateRef<any> | null = null;\r\n\r\n private readonly _instanceId = `kanban-${Math.random().toString(36).substring(2, 9)}-${Date.now().toString(36)}`;\r\n private readonly _columnIdMap = new Map<string, string>();\r\n private _unsubscribe$ = new Subject<void>();\r\n\r\n @ContentChildren(TemplateDirective) templates: QueryList<TemplateDirective> | null = null;\r\n\r\n public ngOnInit(): void {\r\n this._subscribeEvents();\r\n this._normalizeData();\r\n this._validateInputs();\r\n }\r\n\r\n ngAfterContentInit() {\r\n this._getTemplates();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._unsubscribe$.next();\r\n this._unsubscribe$.complete();\r\n }\r\n\r\n public drop(event: CdkDragDrop<KanbanItem[]>): void {\r\n const previousColumn = this.data.columns.find(\r\n (column: KanbanColumn) => column.id === event.previousContainer.id,\r\n );\r\n const targetColumn = this.data.columns.find((column: KanbanColumn) => column.id === event.container.id);\r\n\r\n if (!previousColumn || !targetColumn) {\r\n throw new Error('Unable to obtain information about columns when performing drag and drop');\r\n }\r\n\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n } else {\r\n transferArrayItem(\r\n event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex,\r\n );\r\n }\r\n\r\n this.selectedItems.forEach((item: KanbanItem) => {\r\n const previousIndex = event.previousContainer.data.indexOf(item);\r\n if (previousIndex !== -1 && item !== event.item.data) {\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, previousIndex, event.currentIndex);\r\n } else {\r\n transferArrayItem(\r\n event.previousContainer.data,\r\n event.container.data,\r\n previousIndex,\r\n event.currentIndex,\r\n );\r\n }\r\n }\r\n });\r\n\r\n this.selectedItems.add(event.item.data);\r\n\r\n this.itemsMoved.emit({\r\n items: [...this.selectedItems],\r\n previousColumn,\r\n targetColumn,\r\n });\r\n\r\n if (this.dataUpdated.observers?.length) {\r\n this.dataUpdated.emit({ ...this.data });\r\n }\r\n\r\n this.data.columns.forEach((column: KanbanColumn) => {\r\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(column);\r\n });\r\n this.selectedItems.clear();\r\n }\r\n\r\n public selectItem(event: MouseEvent, item: KanbanItem, column: KanbanColumn): void {\r\n if (item.disabled || item.frozen) return;\r\n\r\n if (event.ctrlKey) {\r\n if (this.selectedItems.delete(item)) {\r\n this.kanbanEventService.emitUnselectItemEvent(item);\r\n } else {\r\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\r\n this.selectedItems.clear();\r\n }\r\n\r\n this.selectedItems.add(item);\r\n this.selectedColumn = column;\r\n this.kanbanEventService.emitSelectItemEvent(item);\r\n }\r\n } else {\r\n if (this.selectedItems.delete(item)) return;\r\n\r\n this.selectedItems.clear();\r\n this.selectedItems.add(item);\r\n this.selectedColumn = column;\r\n this.kanbanEventService.emitSelectItemEvent(item);\r\n }\r\n }\r\n\r\n public dragStarted(): void {\r\n this.selectedItems.forEach((item: KanbanItem) => {\r\n this.draggingItems.add(item);\r\n });\r\n }\r\n\r\n public dragReleased(): void {\r\n this.draggingItems.clear();\r\n }\r\n\r\n public getLinkedColumns(currentColumn: KanbanColumn): string[] {\r\n return this.data.columns\r\n .filter((column: KanbanColumn) => column != currentColumn)\r\n .map((column: KanbanColumn) => column.id ?? '');\r\n }\r\n\r\n public getColumnHeaderTemplate(): TemplateRef<any> | null {\r\n return this._getCustomTemplate('column-header') ?? null;\r\n }\r\n\r\n public getColumnEmptyMessageTemplate(): TemplateRef<any> | null {\r\n return this._getCustomTemplate('column-empty-message') ?? null;\r\n }\r\n\r\n public getItemHeaderTemplate(): TemplateRef<any> | null {\r\n return this._getCustomTemplate('item-header') ?? null;\r\n }\r\n\r\n public getItemBodyTemplate(): TemplateRef<any> | null {\r\n return this._getCustomTemplate('item-body') ?? null;\r\n }\r\n\r\n public getItemFooterTemplate(): TemplateRef<any> | null {\r\n return this._getCustomTemplate('item-footer') ?? null;\r\n }\r\n\r\n private _getCustomTemplate(type: string): TemplateRef<any> | null {\r\n return this.templates?.find((template: TemplateDirective) => template.type === type)?.template ?? null;\r\n }\r\n\r\n private _subscribeEvents(): void {\r\n this.kanbanEventService.selectAllColumnItemsEvent\r\n .pipe(takeUntil(this._unsubscribe$))\r\n .subscribe((column: KanbanColumn) => {\r\n column.items\r\n .filter((item: KanbanItem) => !item.disabled && !item.frozen)\r\n .forEach((item: KanbanItem) => {\r\n this.selectedItems.add(item);\r\n });\r\n this.selectedColumn = column;\r\n this.itemsSelected.emit([...this.selectedItems]);\r\n });\r\n\r\n this.kanbanEventService.unselectAllColumnItemsEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((_) => {\r\n this.selectedItems.clear();\r\n });\r\n\r\n this.kanbanEventService.selectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: KanbanItem) => {\r\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\r\n this.selectedItems.clear();\r\n }\r\n this.selectedItems.add(item);\r\n this.itemsSelected.emit([...this.selectedItems]);\r\n\r\n // Finding the item column and setting selectedColumn.\r\n this.data.columns.forEach((column: KanbanColumn) => {\r\n column.items.forEach((currentItem: KanbanItem) => {\r\n if (currentItem === item) {\r\n this.selectedColumn = column;\r\n return;\r\n }\r\n });\r\n });\r\n });\r\n\r\n this.kanbanEventService.unselectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: KanbanItem) => {\r\n this.selectedItems.delete(item);\r\n });\r\n }\r\n\r\n private _normalizeData(): void {\r\n this.data.columns.forEach((column: KanbanColumn) => {\r\n const originalId = column.id || `col-${Math.random().toString(36).substring(2, 9)}`;\r\n // Não mutar column.id, manter original\r\n if (!column.id) {\r\n column.id = originalId;\r\n }\r\n // Criar ID único para esta instância\r\n const uniqueId = `${this._instanceId}-${originalId}`;\r\n this._columnIdMap.set(originalId, uniqueId);\r\n });\r\n }\r\n\r\n private _validateInputs(): void {\r\n const columns = this.data.columns;\r\n const columnIds = this.data.columns.map((column: KanbanColumn) => column.id);\r\n\r\n if (new Set(columnIds).size !== columns.length) {\r\n throw new Error('Repeated IDs are not accepted.');\r\n }\r\n }\r\n\r\n private _getTemplates(): void {\r\n this.columnHeaderTemplate = this.getColumnHeaderTemplate();\r\n this.columnEmptyMessageTemplate = this.getColumnEmptyMessageTemplate();\r\n this.itemHeaderTemplate = this.getItemHeaderTemplate();\r\n this.itemBodyTemplate = this.getItemBodyTemplate();\r\n this.itemFooterTemplate = this.getItemFooterTemplate();\r\n }\r\n}\r\n","<div class=\"kanban\">\r\n @for (column of data.columns; track column) {\r\n <s-kanban-column\r\n [data]=\"column\"\r\n [showCheckbox]=\"showColumnCheckboxes\"\r\n [headerTemplate]=\"columnHeaderTemplate\"\r\n >\r\n <div\r\n [id]=\"column.id + ''\"\r\n style=\"height: 100%; width: 100%\"\r\n cdkDropList\r\n #dynamicList=\"cdkDropList\"\r\n [cdkDropListData]=\"column.items\"\r\n [cdkDropListConnectedTo]=\"getLinkedColumns(column)\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n @if (column.items.length === 0) {\r\n @if (!columnEmptyMessageTemplate) {\r\n <div class=\"empty-message\">\r\n <p class=\"text\">\r\n <span class=\"fas fa-clock\"></span>&nbsp;\r\n <span>{{\r\n 'platform.angular_components.count_items_in_target'\r\n | translate: { count: column.items.length, target: column.title }\r\n }}</span>\r\n </p>\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"columnEmptyMessageTemplate; context: { $implicit: column }\"\r\n ></ng-container>\r\n }\r\n }\r\n @for (item of column.items; track item) {\r\n <div\r\n cdkDrag\r\n [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"item.disabled || item.frozen\"\r\n (cdkDragStarted)=\"dragStarted()\"\r\n (cdkDragReleased)=\"dragReleased()\"\r\n (click)=\"selectItem($event, item, column)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n <ng-container *cdkDragPreview>\r\n @if (selectedItems.size > 1) {\r\n <s-kanban-item-dragging [quantityItems]=\"selectedItems.size\"></s-kanban-item-dragging>\r\n } @else {\r\n <div class=\"max-w-96\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-container>\r\n <ng-template #itemTemplate>\r\n <s-kanban-item\r\n [item]=\"item\"\r\n [selected]=\"selectedItems.has(item)\"\r\n [showCheckbox]=\"showItemCheckboxes\"\r\n [headerTemplate]=\"itemHeaderTemplate\"\r\n [bodyTemplate]=\"itemBodyTemplate\"\r\n [footerTemplate]=\"itemFooterTemplate\"\r\n >\r\n </s-kanban-item>\r\n </ng-template>\r\n <div *cdkDragPlaceholder>\r\n <div class=\"placeholder\">\r\n <div class=\"placeholder-line\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </s-kanban-column>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { KanbanEventService } from './kanban-event.service';\r\nimport { KanbanComponent } from './kanban.component';\r\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\r\n\r\n@NgModule({\r\n imports: [TemplateModule, KanbanComponent],\r\n exports: [KanbanComponent, TemplateModule],\r\n providers: [KanbanEventService],\r\n})\r\nexport class KanbanModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ class ObjectCardFieldComponent {
25
25
  badge = input('');
26
26
  badgeColor = input('blue');
27
27
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardFieldComponent, isStandalone: true, selector: "s-object-card-field", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, imageSource: { classPropertyName: "imageSource", publicName: "imageSource", isSignal: false, isRequired: false, transformFunction: null }, imageAlt: { classPropertyName: "imageAlt", publicName: "imageAlt", isSignal: false, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: false, isRequired: false, transformFunction: null }, buttonModel: { classPropertyName: "buttonModel", publicName: "buttonModel", isSignal: false, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, badgeColor: { classPropertyName: "badgeColor", publicName: "badgeColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "thumbnailComponent", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\n <div class=\"container\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n @if (!thumbnailComponent && (imageSource || iconClass)) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></s-thumbnail>\n }\n\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n class=\"label\"\n [sTooltip]=\"label\"\n >{{ label }}</span\n >\n }\n\n <div #descriptionTemplate>\n @if (!badge()) {\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n }\n </div>\n @if (!descriptionTemplate.children.length) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [sTooltip]=\"description\"\n >{{ description }}</span\n >\n }\n\n @if (badge()) {\n <s-badge\n [text]=\"badge()\"\n [color]=\"badgeColor()\"\n [enableTruncateText]=\"true\"\n >\n </s-badge>\n }\n @if (buttonLabel) {\n <s-button\n [id]=\"id + '-button'\"\n styleClass=\"object-card-button\"\n priority=\"link\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit($event)\"\n ></s-button>\n }\n </div>\n </div>\n</ng-template>\n\n", styles: [".container{align-items:center;display:flex;height:100%}.info-container{margin-left:10px}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{color:#999;display:block}.info-container .description{display:block}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.info-container{flex:1}}@media (max-width: 767px){.info-container,.info-container span{white-space:normal}}.info-container:only-child{margin-left:0}\n"], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign", "enableTruncateText"], outputs: ["selected"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }] });
28
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardFieldComponent, isStandalone: true, selector: "s-object-card-field", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, imageSource: { classPropertyName: "imageSource", publicName: "imageSource", isSignal: false, isRequired: false, transformFunction: null }, imageAlt: { classPropertyName: "imageAlt", publicName: "imageAlt", isSignal: false, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: false, isRequired: false, transformFunction: null }, buttonModel: { classPropertyName: "buttonModel", publicName: "buttonModel", isSignal: false, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, badgeColor: { classPropertyName: "badgeColor", publicName: "badgeColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "thumbnailComponent", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\n <div class=\"container\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n @if (!thumbnailComponent && (imageSource || iconClass)) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></s-thumbnail>\n }\n\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n class=\"label\"\n [sTooltip]=\"label\"\n >{{ label }}</span\n >\n }\n\n <div #descriptionTemplate>\n @if (!badge()) {\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n }\n </div>\n @if (!descriptionTemplate.children.length) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [sTooltip]=\"description\"\n >{{ description }}</span\n >\n }\n\n @if (badge()) {\n <s-badge\n [text]=\"badge()\"\n [color]=\"badgeColor()\"\n [enableTruncateText]=\"true\"\n >\n </s-badge>\n }\n @if (buttonLabel) {\n <s-button\n [id]=\"id + '-button'\"\n styleClass=\"object-card-button\"\n priority=\"link\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit($event)\"\n ></s-button>\n }\n </div>\n </div>\n</ng-template>\n\n", styles: [".container{align-items:center;display:flex;height:100%}.info-container{margin-left:10px}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{color:#999;display:block}.info-container .description{display:block}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.info-container{flex:1}}@media (max-width: 767px){.info-container,.info-container span{white-space:normal}}.info-container:only-child{margin-left:0}\n"], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign", "enableTruncateText"], outputs: ["selected"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked", "tieredMenuOpened", "tieredMenuClosed"] }] });
29
29
  }
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardFieldComponent, decorators: [{
31
31
  type: Component,
@@ -96,7 +96,7 @@ class ObjectCardMainComponent {
96
96
  this.thumbnailSize = window.innerWidth <= Breakpoints.SM_MAX ? 'small' : 'medium';
97
97
  }
98
98
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardMainComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
99
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardMainComponent, isStandalone: true, selector: "s-object-card-main", inputs: { id: "id", imageSource: "imageSource", imageFallback: "imageFallback", imageAlt: "imageAlt", iconClass: "iconClass", hasThumbnail: "hasThumbnail", hasDescription: "hasDescription", isBrand: "isBrand", label: "label", description: "description", buttonLabel: "buttonLabel", buttonModel: "buttonModel" }, outputs: { buttonClick: "buttonClick" }, host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "thumbnailComponent", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], ngImport: i0, template: "@if (hasThumbnail) {\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n @if (!thumbnailComponent) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageFallback]=\"imageFallback\"\r\n [imageAlt]=\"imageAlt || label\"\r\n [iconClass]=\"iconClass\"\r\n [size]=\"thumbnailSize\"\r\n [isBrand]=\"isBrand\"\r\n ></s-thumbnail>\r\n }\r\n}\r\n\r\n@if (hasDescription) {\r\n <div class=\"info-container\">\r\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n class=\"label\"\r\n [sTooltip]=\"label\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ label }}</span\r\n >\r\n }\r\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\r\n @if (!descriptionTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"description\"\r\n [sTooltip]=\"description\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ description }}</span\r\n >\r\n }\r\n @if (buttonLabel) {\r\n <s-button\r\n [id]=\"id + '-button'\"\r\n styleClass=\"object-card-button\"\r\n priority=\"link\"\r\n [label]=\"buttonLabel\"\r\n [menuOptions]=\"buttonModel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit($event)\"\r\n ></s-button>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{align-items:center;display:flex;min-height:70px}.info-container{margin-left:10px;flex:1}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{display:block;font-weight:700}.info-container .description{color:#999;display:block}@media (max-width: 767px){.info-container,.info-container span{white-space:normal}}\n"], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }] });
99
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardMainComponent, isStandalone: true, selector: "s-object-card-main", inputs: { id: "id", imageSource: "imageSource", imageFallback: "imageFallback", imageAlt: "imageAlt", iconClass: "iconClass", hasThumbnail: "hasThumbnail", hasDescription: "hasDescription", isBrand: "isBrand", label: "label", description: "description", buttonLabel: "buttonLabel", buttonModel: "buttonModel" }, outputs: { buttonClick: "buttonClick" }, host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "thumbnailComponent", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], ngImport: i0, template: "@if (hasThumbnail) {\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n @if (!thumbnailComponent) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageFallback]=\"imageFallback\"\r\n [imageAlt]=\"imageAlt || label\"\r\n [iconClass]=\"iconClass\"\r\n [size]=\"thumbnailSize\"\r\n [isBrand]=\"isBrand\"\r\n ></s-thumbnail>\r\n }\r\n}\r\n\r\n@if (hasDescription) {\r\n <div class=\"info-container\">\r\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n class=\"label\"\r\n [sTooltip]=\"label\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ label }}</span\r\n >\r\n }\r\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\r\n @if (!descriptionTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"description\"\r\n [sTooltip]=\"description\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ description }}</span\r\n >\r\n }\r\n @if (buttonLabel) {\r\n <s-button\r\n [id]=\"id + '-button'\"\r\n styleClass=\"object-card-button\"\r\n priority=\"link\"\r\n [label]=\"buttonLabel\"\r\n [menuOptions]=\"buttonModel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit($event)\"\r\n ></s-button>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{align-items:center;display:flex;min-height:70px}.info-container{margin-left:10px;flex:1}.info-container,.info-container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-container .label{display:block;font-weight:700}.info-container .description{color:#999;display:block}@media (max-width: 767px){.info-container,.info-container span{white-space:normal}}\n"], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked", "tieredMenuOpened", "tieredMenuClosed"] }] });
100
100
  }
101
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardMainComponent, decorators: [{
102
102
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-object-card.mjs","sources":["../../projects/angular-components/object-card/src/lib/object-card/elements/field/object-card-field.component.ts","../../projects/angular-components/object-card/src/lib/object-card/elements/field/object-card-field.component.html","../../projects/angular-components/object-card/src/lib/object-card/elements/main/object-card-main.component.ts","../../projects/angular-components/object-card/src/lib/object-card/elements/main/object-card-main.component.html","../../projects/angular-components/object-card/src/lib/object-card/object-card.component.ts","../../projects/angular-components/object-card/src/lib/object-card/object-card.component.html","../../projects/angular-components/object-card/src/lib/object-card/object-card.module.ts","../../projects/angular-components/object-card/src/seniorsistemas-angular-components-object-card.ts"],"sourcesContent":["import { Component, ContentChild, EventEmitter, input, Input, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { BadgeColors, BadgeComponent } from '@seniorsistemas/angular-components/badge';\r\nimport {\r\n ThumbnailComponent,\r\n ThumbnailComponent as ThumbnailComponent_1,\r\n} from '@seniorsistemas/angular-components/thumbnail';\r\n\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-object-card-field',\r\n templateUrl: './object-card-field.component.html',\r\n styleUrls: ['./object-card-field.component.scss'],\r\n standalone: true,\r\n imports: [ThumbnailComponent_1, TooltipDirective, BadgeComponent, ButtonComponent],\r\n})\r\nexport class ObjectCardFieldComponent {\r\n public static nextId = 0;\r\n\r\n @Input()\r\n public id = `s-object-card-field-${ObjectCardFieldComponent.nextId++}`;\r\n\r\n @Input()\r\n public imageSource?: string;\r\n\r\n @Input()\r\n public imageAlt?: string;\r\n\r\n @Input()\r\n public iconClass?: string;\r\n\r\n @Input()\r\n public label?: string;\r\n\r\n @Input()\r\n public description?: string;\r\n\r\n @Input()\r\n public buttonLabel?: string;\r\n\r\n @Input()\r\n public buttonModel: TieredMenuItemData[] = [];\r\n\r\n @Output()\r\n public buttonClick = new EventEmitter();\r\n\r\n @ContentChild(ThumbnailComponent, { static: true })\r\n public thumbnailComponent: ThumbnailComponent | null = null;\r\n\r\n @ViewChild(TemplateRef, { static: true })\r\n public content: TemplateRef<any> | null = null;\r\n\r\n badge = input<string>('');\r\n\r\n badgeColor = input<BadgeColors>('blue');\r\n}\r\n","<ng-template>\n <div class=\"container\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n @if (!thumbnailComponent && (imageSource || iconClass)) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></s-thumbnail>\n }\n\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n class=\"label\"\n [sTooltip]=\"label\"\n >{{ label }}</span\n >\n }\n\n <div #descriptionTemplate>\n @if (!badge()) {\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n }\n </div>\n @if (!descriptionTemplate.children.length) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [sTooltip]=\"description\"\n >{{ description }}</span\n >\n }\n\n @if (badge()) {\n <s-badge\n [text]=\"badge()\"\n [color]=\"badgeColor()\"\n [enableTruncateText]=\"true\"\n >\n </s-badge>\n }\n @if (buttonLabel) {\n <s-button\n [id]=\"id + '-button'\"\n styleClass=\"object-card-button\"\n priority=\"link\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit($event)\"\n ></s-button>\n }\n </div>\n </div>\n</ng-template>\n\n","import { AfterContentInit, Component, ContentChild, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\nimport {\r\n ThumbnailComponent,\r\n ThumbnailSize,\r\n ThumbnailComponent as ThumbnailComponent_1,\r\n} from '@seniorsistemas/angular-components/thumbnail';\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { Breakpoints } from '@seniorsistemas/angular-components/utils';\r\n\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-object-card-main',\r\n templateUrl: './object-card-main.component.html',\r\n styleUrls: ['./object-card-main.component.scss'],\r\n standalone: true,\r\n imports: [ThumbnailComponent_1, TooltipDirective, ButtonComponent],\r\n})\r\nexport class ObjectCardMainComponent implements AfterContentInit {\r\n public static readonly nextIdSeed = 0;\r\n private static _nextId = ObjectCardMainComponent.nextIdSeed;\r\n\r\n public static getNextId(): number {\r\n return this._nextId++;\r\n }\r\n\r\n @Input()\r\n public id = `s-object-card-main-${ObjectCardMainComponent.getNextId()}`;\r\n\r\n @Input()\r\n public imageSource?: string;\r\n\r\n @Input()\r\n public imageFallback?: string;\r\n\r\n @Input()\r\n public imageAlt?: string;\r\n\r\n @Input()\r\n public iconClass = 'fa fa-picture-o';\r\n\r\n @Input()\r\n public hasThumbnail = true;\r\n\r\n @Input()\r\n public hasDescription = true;\r\n\r\n @Input()\r\n public isBrand = false;\r\n\r\n @Input()\r\n public label?: string;\r\n\r\n @Input()\r\n public description?: string;\r\n\r\n @Input()\r\n public buttonLabel?: string;\r\n\r\n @Input()\r\n public buttonModel: TieredMenuItemData[] = [];\r\n\r\n @Output()\r\n public buttonClick: EventEmitter<any> = new EventEmitter();\r\n\r\n @ContentChild(ThumbnailComponent, { static: true })\r\n public thumbnailComponent: ThumbnailComponent | null = null;\r\n\r\n private _thumbnailSize: ThumbnailSize = 'medium';\r\n\r\n public get thumbnailSize() {\r\n return this._thumbnailSize;\r\n }\r\n\r\n public set thumbnailSize(value: ThumbnailSize) {\r\n this._thumbnailSize = value;\r\n if (this.thumbnailComponent) {\r\n this.thumbnailComponent.size = value;\r\n }\r\n }\r\n\r\n @HostListener('window:resize')\r\n public onResize(): void {\r\n this.update();\r\n }\r\n\r\n public ngAfterContentInit(): void {\r\n this.update();\r\n }\r\n\r\n public update(): void {\r\n this.thumbnailSize = window.innerWidth <= Breakpoints.SM_MAX ? 'small' : 'medium';\r\n }\r\n}\r\n","@if (hasThumbnail) {\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n @if (!thumbnailComponent) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageFallback]=\"imageFallback\"\r\n [imageAlt]=\"imageAlt || label\"\r\n [iconClass]=\"iconClass\"\r\n [size]=\"thumbnailSize\"\r\n [isBrand]=\"isBrand\"\r\n ></s-thumbnail>\r\n }\r\n}\r\n\r\n@if (hasDescription) {\r\n <div class=\"info-container\">\r\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n class=\"label\"\r\n [sTooltip]=\"label\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ label }}</span\r\n >\r\n }\r\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\r\n @if (!descriptionTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"description\"\r\n [sTooltip]=\"description\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ description }}</span\r\n >\r\n }\r\n @if (buttonLabel) {\r\n <s-button\r\n [id]=\"id + '-button'\"\r\n styleClass=\"object-card-button\"\r\n priority=\"link\"\r\n [label]=\"buttonLabel\"\r\n [menuOptions]=\"buttonModel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit($event)\"\r\n ></s-button>\r\n }\r\n </div>\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n AfterContentChecked,\r\n Component,\r\n ContentChild,\r\n contentChildren,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n viewChild,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ObjectCardFieldComponent } from './elements/field/object-card-field.component';\r\nimport { ObjectCardMainComponent } from './elements/main/object-card-main.component';\r\nimport { Breakpoints } from '@seniorsistemas/angular-components/utils';\r\nimport { BorderButtonOptions, Severities, BorderButtonComponent } from '@seniorsistemas/angular-components/shared';\r\nimport { NgClass, NgTemplateOutlet, SlicePipe } from '@angular/common';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\n\r\n/**\r\n * @description Card de exibição de objeto com setor principal, campos extras e\r\n * painel expansível. Calcula automaticamente quantos campos cábem visíveis\r\n * conforme a largura do container e suporta nível de severidade.\r\n *\r\n * @example\r\n * ```html\r\n * <s-object-card [severity]=\"'info'\" [expanded]=\"false\">\r\n * <s-object-card-main label=\"Nome\" value=\"João\" />\r\n * <s-object-card-field label=\"CPF\" value=\"000.000.000-00\" />\r\n * </s-object-card>\r\n * ```\r\n *\r\n * @category Structure\r\n */\r\n@Component({\r\n selector: 's-object-card',\r\n templateUrl: './object-card.component.html',\r\n styleUrls: ['./object-card.component.scss'],\r\n animations: [\r\n trigger('expandableContent', [\r\n state(\r\n '*',\r\n style({\r\n height: '0',\r\n }),\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n height: '0',\r\n }),\r\n ),\r\n state(\r\n 'true',\r\n style({\r\n height: '*',\r\n }),\r\n ),\r\n transition('* => true', animate('200ms ease-out')),\r\n transition('false <=> true', animate('200ms ease-out')),\r\n ]),\r\n trigger('BorderButtonAnimation', [\r\n transition(':enter', [\r\n style({ transform: 'scaleY(0)', opacity: 0 }),\r\n animate('300ms ease', style({ transform: 'scaleY(1)', opacity: 1 })),\r\n ]),\r\n transition(':leave', [\r\n style({ transform: 'scaleY(1)', opacity: 1 }),\r\n animate('300ms ease', style({ transform: 'scaleY(0)', opacity: 0 })),\r\n ]),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [BorderButtonComponent, NgClass, NgTemplateOutlet, TooltipDirective, SlicePipe],\r\n})\r\nexport class ObjectCardComponent implements AfterContentChecked {\r\n public static readonly nextIdSeed = 0;\r\n private static _nextId = ObjectCardComponent.nextIdSeed;\r\n\r\n public static getNextId(): number {\r\n return this._nextId++;\r\n }\r\n\r\n /** @description Identificador do componente no DOM. Gerado automaticamente se não informado. */\r\n @Input()\r\n public id = `s-object-card-${ObjectCardComponent.getNextId()}`;\r\n\r\n /** @description Define se o painel expansível está aberto. @default false */\r\n @Input()\r\n public expanded = false;\r\n\r\n /** @description Tooltip do botão de expandir. @default 'Abrir painel' */\r\n @Input()\r\n public expandTooltip = 'Abrir painel';\r\n\r\n /** @description Tooltip do botão de colapsar. @default 'Fechar painel' */\r\n @Input()\r\n public collapseTooltip = 'Fechar painel';\r\n\r\n /** @description Largura mínima em pixels de cada campo visível. @default 200 */\r\n @Input()\r\n public fieldsMinWidth = 200;\r\n\r\n /** @description Nível de severidade que altera o estilo visual. @default 'default' */\r\n @Input()\r\n public severity: Severities = 'default';\r\n\r\n /** @description Opções de configuração do botão de borda lateral. */\r\n @Input()\r\n public borderButtonOptions?: BorderButtonOptions;\r\n\r\n /** @description Emitido quando o estado de expansão muda, com o novo valor booleano. */\r\n @Output()\r\n public expandedChange = new EventEmitter<boolean>();\r\n\r\n @ContentChild(ObjectCardMainComponent, { static: true })\r\n public main: ObjectCardMainComponent | null = null;\r\n\r\n fields = contentChildren(ObjectCardFieldComponent, { descendants: true });\r\n\r\n private readonly container = viewChild.required<ElementRef<HTMLElement>>('contentContainer');\r\n\r\n private readonly cardMainContainer = viewChild.required<ElementRef<HTMLElement>>('cardMainContainer');\r\n\r\n private readonly iconContainer = viewChild.required<ElementRef<HTMLElement>>('iconContainer');\r\n\r\n public maxVisibleFields = 0;\r\n\r\n public ngAfterContentChecked(): void {\r\n this.update();\r\n }\r\n\r\n private update() {\r\n const windowWidth = window.innerWidth;\r\n const containerWidth = this.container().nativeElement.getBoundingClientRect().width;\r\n const mainFieldWidth = this.cardMainContainer().nativeElement.getBoundingClientRect().width;\r\n let remainingSpace = containerWidth - mainFieldWidth;\r\n const fieldsMinWidth = this.fieldsMinWidth;\r\n const expandIconWidth = this.iconContainer().nativeElement.getBoundingClientRect().width;\r\n\r\n let maxFieldQtd: number;\r\n\r\n if (windowWidth <= Breakpoints.SM_MAX) {\r\n maxFieldQtd = 0;\r\n } else {\r\n maxFieldQtd = Math.floor(remainingSpace / fieldsMinWidth);\r\n }\r\n\r\n const hasExpandIcon = maxFieldQtd < this.fields().length;\r\n if (hasExpandIcon) {\r\n this.iconContainer().nativeElement.style.display = 'flex';\r\n remainingSpace = remainingSpace - expandIconWidth;\r\n maxFieldQtd = Math.floor(remainingSpace / fieldsMinWidth);\r\n } else {\r\n this.iconContainer().nativeElement.style.display = 'none';\r\n }\r\n\r\n this.maxVisibleFields = maxFieldQtd;\r\n\r\n if (maxFieldQtd >= this.fields().length && this.expanded) {\r\n this.collapse();\r\n }\r\n }\r\n\r\n public toggle() {\r\n this.expanded ? this.collapse() : this.expand();\r\n }\r\n\r\n public expand() {\r\n this.expanded = true;\r\n this.expandedChange.emit(this.expanded);\r\n }\r\n\r\n public collapse() {\r\n this.expanded = false;\r\n this.expandedChange.emit(this.expanded);\r\n }\r\n}\r\n","<div\n [id]=\"id\"\n class=\"object-card-container\"\n>\n @if (borderButtonOptions?.visible ? borderButtonOptions?.visible(severity) : false) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n }\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields().length > maxVisibleFields,\n 'with-visible-fields': fields().length && maxVisibleFields,\n 'main-container--severity-default': severity === 'default',\n 'main-container--severity-info': severity === 'info',\n 'main-container--severity-warn': severity === 'warn',\n 'main-container--severity-error': severity === 'error',\n 'main-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"object-content\">\n <div\n class=\"s-object-card-main\"\n #cardMainContainer\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-content select=\"s-object-card-main\"></ng-content>\n </div>\n\n @if (maxVisibleFields && fields().length) {\n <div class=\"divider\"></div>\n }\n\n @for (field of fields() | slice: 0 : maxVisibleFields; track field.id) {\n <div\n class=\"s-object-card-field\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n #iconContainer\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-expanded]=\"expanded\"\n (click)=\"toggle()\"\n (keydown.enter)=\"toggle()\"\n (keydown.space)=\"toggle(); $event.preventDefault()\"\n [sTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n >\n <span\n [id]=\"id + '-expand-icon'\"\n class=\"expand-icon fa\"\n [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"\n ></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default': severity === 'default',\n 'expandable-container--severity-info': severity === 'info',\n 'expandable-container--severity-warn': severity === 'warn',\n 'expandable-container--severity-error': severity === 'error',\n 'expandable-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"childlist\">\n @for (field of fields() | slice: maxVisibleFields : fields().length; track field.id) {\n <div class=\"s-object-card-field\">\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ObjectCardFieldComponent } from './elements/field/object-card-field.component';\r\nimport { ObjectCardMainComponent } from './elements/main/object-card-main.component';\r\nimport { ObjectCardComponent } from './object-card.component';\r\nimport { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';\r\n\r\n@NgModule({\r\n imports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\r\n exports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\r\n})\r\nexport class ObjectCardModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ThumbnailComponent_1"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-object-card.mjs","sources":["../../projects/angular-components/object-card/src/lib/object-card/elements/field/object-card-field.component.ts","../../projects/angular-components/object-card/src/lib/object-card/elements/field/object-card-field.component.html","../../projects/angular-components/object-card/src/lib/object-card/elements/main/object-card-main.component.ts","../../projects/angular-components/object-card/src/lib/object-card/elements/main/object-card-main.component.html","../../projects/angular-components/object-card/src/lib/object-card/object-card.component.ts","../../projects/angular-components/object-card/src/lib/object-card/object-card.component.html","../../projects/angular-components/object-card/src/lib/object-card/object-card.module.ts","../../projects/angular-components/object-card/src/seniorsistemas-angular-components-object-card.ts"],"sourcesContent":["import { Component, ContentChild, EventEmitter, input, Input, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { BadgeColors, BadgeComponent } from '@seniorsistemas/angular-components/badge';\r\nimport {\r\n ThumbnailComponent,\r\n ThumbnailComponent as ThumbnailComponent_1,\r\n} from '@seniorsistemas/angular-components/thumbnail';\r\n\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-object-card-field',\r\n templateUrl: './object-card-field.component.html',\r\n styleUrls: ['./object-card-field.component.scss'],\r\n standalone: true,\r\n imports: [ThumbnailComponent_1, TooltipDirective, BadgeComponent, ButtonComponent],\r\n})\r\nexport class ObjectCardFieldComponent {\r\n public static nextId = 0;\r\n\r\n @Input()\r\n public id = `s-object-card-field-${ObjectCardFieldComponent.nextId++}`;\r\n\r\n @Input()\r\n public imageSource?: string;\r\n\r\n @Input()\r\n public imageAlt?: string;\r\n\r\n @Input()\r\n public iconClass?: string;\r\n\r\n @Input()\r\n public label?: string;\r\n\r\n @Input()\r\n public description?: string;\r\n\r\n @Input()\r\n public buttonLabel?: string;\r\n\r\n @Input()\r\n public buttonModel: TieredMenuItemData[] = [];\r\n\r\n @Output()\r\n public buttonClick = new EventEmitter();\r\n\r\n @ContentChild(ThumbnailComponent, { static: true })\r\n public thumbnailComponent: ThumbnailComponent | null = null;\r\n\r\n @ViewChild(TemplateRef, { static: true })\r\n public content: TemplateRef<any> | null = null;\r\n\r\n badge = input<string>('');\r\n\r\n badgeColor = input<BadgeColors>('blue');\r\n}\r\n","<ng-template>\n <div class=\"container\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n @if (!thumbnailComponent && (imageSource || iconClass)) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></s-thumbnail>\n }\n\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n class=\"label\"\n [sTooltip]=\"label\"\n >{{ label }}</span\n >\n }\n\n <div #descriptionTemplate>\n @if (!badge()) {\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n }\n </div>\n @if (!descriptionTemplate.children.length) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [sTooltip]=\"description\"\n >{{ description }}</span\n >\n }\n\n @if (badge()) {\n <s-badge\n [text]=\"badge()\"\n [color]=\"badgeColor()\"\n [enableTruncateText]=\"true\"\n >\n </s-badge>\n }\n @if (buttonLabel) {\n <s-button\n [id]=\"id + '-button'\"\n styleClass=\"object-card-button\"\n priority=\"link\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit($event)\"\n ></s-button>\n }\n </div>\n </div>\n</ng-template>\n\n","import { AfterContentInit, Component, ContentChild, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\nimport {\r\n ThumbnailComponent,\r\n ThumbnailSize,\r\n ThumbnailComponent as ThumbnailComponent_1,\r\n} from '@seniorsistemas/angular-components/thumbnail';\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { Breakpoints } from '@seniorsistemas/angular-components/utils';\r\n\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-object-card-main',\r\n templateUrl: './object-card-main.component.html',\r\n styleUrls: ['./object-card-main.component.scss'],\r\n standalone: true,\r\n imports: [ThumbnailComponent_1, TooltipDirective, ButtonComponent],\r\n})\r\nexport class ObjectCardMainComponent implements AfterContentInit {\r\n public static readonly nextIdSeed = 0;\r\n private static _nextId = ObjectCardMainComponent.nextIdSeed;\r\n\r\n public static getNextId(): number {\r\n return this._nextId++;\r\n }\r\n\r\n @Input()\r\n public id = `s-object-card-main-${ObjectCardMainComponent.getNextId()}`;\r\n\r\n @Input()\r\n public imageSource?: string;\r\n\r\n @Input()\r\n public imageFallback?: string;\r\n\r\n @Input()\r\n public imageAlt?: string;\r\n\r\n @Input()\r\n public iconClass = 'fa fa-picture-o';\r\n\r\n @Input()\r\n public hasThumbnail = true;\r\n\r\n @Input()\r\n public hasDescription = true;\r\n\r\n @Input()\r\n public isBrand = false;\r\n\r\n @Input()\r\n public label?: string;\r\n\r\n @Input()\r\n public description?: string;\r\n\r\n @Input()\r\n public buttonLabel?: string;\r\n\r\n @Input()\r\n public buttonModel: TieredMenuItemData[] = [];\r\n\r\n @Output()\r\n public buttonClick: EventEmitter<any> = new EventEmitter();\r\n\r\n @ContentChild(ThumbnailComponent, { static: true })\r\n public thumbnailComponent: ThumbnailComponent | null = null;\r\n\r\n private _thumbnailSize: ThumbnailSize = 'medium';\r\n\r\n public get thumbnailSize() {\r\n return this._thumbnailSize;\r\n }\r\n\r\n public set thumbnailSize(value: ThumbnailSize) {\r\n this._thumbnailSize = value;\r\n if (this.thumbnailComponent) {\r\n this.thumbnailComponent.size = value;\r\n }\r\n }\r\n\r\n @HostListener('window:resize')\r\n public onResize(): void {\r\n this.update();\r\n }\r\n\r\n public ngAfterContentInit(): void {\r\n this.update();\r\n }\r\n\r\n public update(): void {\r\n this.thumbnailSize = window.innerWidth <= Breakpoints.SM_MAX ? 'small' : 'medium';\r\n }\r\n}\r\n","@if (hasThumbnail) {\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n @if (!thumbnailComponent) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageFallback]=\"imageFallback\"\r\n [imageAlt]=\"imageAlt || label\"\r\n [iconClass]=\"iconClass\"\r\n [size]=\"thumbnailSize\"\r\n [isBrand]=\"isBrand\"\r\n ></s-thumbnail>\r\n }\r\n}\r\n\r\n@if (hasDescription) {\r\n <div class=\"info-container\">\r\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n class=\"label\"\r\n [sTooltip]=\"label\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ label }}</span\r\n >\r\n }\r\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\r\n @if (!descriptionTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"description\"\r\n [sTooltip]=\"description\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ description }}</span\r\n >\r\n }\r\n @if (buttonLabel) {\r\n <s-button\r\n [id]=\"id + '-button'\"\r\n styleClass=\"object-card-button\"\r\n priority=\"link\"\r\n [label]=\"buttonLabel\"\r\n [menuOptions]=\"buttonModel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit($event)\"\r\n ></s-button>\r\n }\r\n </div>\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n AfterContentChecked,\r\n Component,\r\n ContentChild,\r\n contentChildren,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n viewChild,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ObjectCardFieldComponent } from './elements/field/object-card-field.component';\r\nimport { ObjectCardMainComponent } from './elements/main/object-card-main.component';\r\nimport { Breakpoints } from '@seniorsistemas/angular-components/utils';\r\nimport { BorderButtonOptions, Severities, BorderButtonComponent } from '@seniorsistemas/angular-components/shared';\r\nimport { NgClass, NgTemplateOutlet, SlicePipe } from '@angular/common';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\n\r\n/**\r\n * @description Card de exibição de objeto com setor principal, campos extras e\r\n * painel expansível. Calcula automaticamente quantos campos cábem visíveis\r\n * conforme a largura do container e suporta nível de severidade.\r\n *\r\n * @example\r\n * ```html\r\n * <s-object-card [severity]=\"'info'\" [expanded]=\"false\">\r\n * <s-object-card-main label=\"Nome\" value=\"João\" />\r\n * <s-object-card-field label=\"CPF\" value=\"000.000.000-00\" />\r\n * </s-object-card>\r\n * ```\r\n *\r\n * @category Structure\r\n */\r\n@Component({\r\n selector: 's-object-card',\r\n templateUrl: './object-card.component.html',\r\n styleUrls: ['./object-card.component.scss'],\r\n animations: [\r\n trigger('expandableContent', [\r\n state(\r\n '*',\r\n style({\r\n height: '0',\r\n }),\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n height: '0',\r\n }),\r\n ),\r\n state(\r\n 'true',\r\n style({\r\n height: '*',\r\n }),\r\n ),\r\n transition('* => true', animate('200ms ease-out')),\r\n transition('false <=> true', animate('200ms ease-out')),\r\n ]),\r\n trigger('BorderButtonAnimation', [\r\n transition(':enter', [\r\n style({ transform: 'scaleY(0)', opacity: 0 }),\r\n animate('300ms ease', style({ transform: 'scaleY(1)', opacity: 1 })),\r\n ]),\r\n transition(':leave', [\r\n style({ transform: 'scaleY(1)', opacity: 1 }),\r\n animate('300ms ease', style({ transform: 'scaleY(0)', opacity: 0 })),\r\n ]),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [BorderButtonComponent, NgClass, NgTemplateOutlet, TooltipDirective, SlicePipe],\r\n})\r\nexport class ObjectCardComponent implements AfterContentChecked {\r\n public static readonly nextIdSeed = 0;\r\n private static _nextId = ObjectCardComponent.nextIdSeed;\r\n\r\n public static getNextId(): number {\r\n return this._nextId++;\r\n }\r\n\r\n /** @description Identificador do componente no DOM. Gerado automaticamente se não informado. */\r\n @Input()\r\n public id = `s-object-card-${ObjectCardComponent.getNextId()}`;\r\n\r\n /** @description Define se o painel expansível está aberto. @default false */\r\n @Input()\r\n public expanded = false;\r\n\r\n /** @description Tooltip do botão de expandir. @default 'Abrir painel' */\r\n @Input()\r\n public expandTooltip = 'Abrir painel';\r\n\r\n /** @description Tooltip do botão de colapsar. @default 'Fechar painel' */\r\n @Input()\r\n public collapseTooltip = 'Fechar painel';\r\n\r\n /** @description Largura mínima em pixels de cada campo visível. @default 200 */\r\n @Input()\r\n public fieldsMinWidth = 200;\r\n\r\n /** @description Nível de severidade que altera o estilo visual. @default 'default' */\r\n @Input()\r\n public severity: Severities = 'default';\r\n\r\n /** @description Opções de configuração do botão de borda lateral. */\r\n @Input()\r\n public borderButtonOptions?: BorderButtonOptions;\r\n\r\n /** @description Emitido quando o estado de expansão muda, com o novo valor booleano. */\r\n @Output()\r\n public expandedChange = new EventEmitter<boolean>();\r\n\r\n @ContentChild(ObjectCardMainComponent, { static: true })\r\n public main: ObjectCardMainComponent | null = null;\r\n\r\n fields = contentChildren(ObjectCardFieldComponent, { descendants: true });\r\n\r\n private readonly container = viewChild.required<ElementRef<HTMLElement>>('contentContainer');\r\n\r\n private readonly cardMainContainer = viewChild.required<ElementRef<HTMLElement>>('cardMainContainer');\r\n\r\n private readonly iconContainer = viewChild.required<ElementRef<HTMLElement>>('iconContainer');\r\n\r\n public maxVisibleFields = 0;\r\n\r\n public ngAfterContentChecked(): void {\r\n this.update();\r\n }\r\n\r\n private update() {\r\n const windowWidth = window.innerWidth;\r\n const containerWidth = this.container().nativeElement.getBoundingClientRect().width;\r\n const mainFieldWidth = this.cardMainContainer().nativeElement.getBoundingClientRect().width;\r\n let remainingSpace = containerWidth - mainFieldWidth;\r\n const fieldsMinWidth = this.fieldsMinWidth;\r\n const expandIconWidth = this.iconContainer().nativeElement.getBoundingClientRect().width;\r\n\r\n let maxFieldQtd: number;\r\n\r\n if (windowWidth <= Breakpoints.SM_MAX) {\r\n maxFieldQtd = 0;\r\n } else {\r\n maxFieldQtd = Math.floor(remainingSpace / fieldsMinWidth);\r\n }\r\n\r\n const hasExpandIcon = maxFieldQtd < this.fields().length;\r\n if (hasExpandIcon) {\r\n this.iconContainer().nativeElement.style.display = 'flex';\r\n remainingSpace = remainingSpace - expandIconWidth;\r\n maxFieldQtd = Math.floor(remainingSpace / fieldsMinWidth);\r\n } else {\r\n this.iconContainer().nativeElement.style.display = 'none';\r\n }\r\n\r\n this.maxVisibleFields = maxFieldQtd;\r\n\r\n if (maxFieldQtd >= this.fields().length && this.expanded) {\r\n this.collapse();\r\n }\r\n }\r\n\r\n public toggle() {\r\n this.expanded ? this.collapse() : this.expand();\r\n }\r\n\r\n public expand() {\r\n this.expanded = true;\r\n this.expandedChange.emit(this.expanded);\r\n }\r\n\r\n public collapse() {\r\n this.expanded = false;\r\n this.expandedChange.emit(this.expanded);\r\n }\r\n}\r\n","<div\n [id]=\"id\"\n class=\"object-card-container\"\n>\n @if (borderButtonOptions?.visible ? borderButtonOptions?.visible(severity) : false) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n }\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields().length > maxVisibleFields,\n 'with-visible-fields': fields().length && maxVisibleFields,\n 'main-container--severity-default': severity === 'default',\n 'main-container--severity-info': severity === 'info',\n 'main-container--severity-warn': severity === 'warn',\n 'main-container--severity-error': severity === 'error',\n 'main-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"object-content\">\n <div\n class=\"s-object-card-main\"\n #cardMainContainer\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-content select=\"s-object-card-main\"></ng-content>\n </div>\n\n @if (maxVisibleFields && fields().length) {\n <div class=\"divider\"></div>\n }\n\n @for (field of fields() | slice: 0 : maxVisibleFields; track field.id) {\n <div\n class=\"s-object-card-field\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n #iconContainer\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-expanded]=\"expanded\"\n (click)=\"toggle()\"\n (keydown.enter)=\"toggle()\"\n (keydown.space)=\"toggle(); $event.preventDefault()\"\n [sTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n >\n <span\n [id]=\"id + '-expand-icon'\"\n class=\"expand-icon fa\"\n [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"\n ></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default': severity === 'default',\n 'expandable-container--severity-info': severity === 'info',\n 'expandable-container--severity-warn': severity === 'warn',\n 'expandable-container--severity-error': severity === 'error',\n 'expandable-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"childlist\">\n @for (field of fields() | slice: maxVisibleFields : fields().length; track field.id) {\n <div class=\"s-object-card-field\">\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ObjectCardFieldComponent } from './elements/field/object-card-field.component';\r\nimport { ObjectCardMainComponent } from './elements/main/object-card-main.component';\r\nimport { ObjectCardComponent } from './object-card.component';\r\nimport { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';\r\n\r\n@NgModule({\r\n imports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\r\n exports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\r\n})\r\nexport class ObjectCardModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ThumbnailComponent_1"],"mappings":"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"}