@theseam/ui-common 1.0.0-beta.9 → 1.0.1-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/package.json +3 -0
- package/asset-reader/package.json +3 -0
- package/breadcrumbs/package.json +3 -0
- package/buttons/index.d.ts +4 -1
- package/buttons/package.json +3 -0
- package/card/package.json +3 -0
- package/carousel/package.json +3 -0
- package/checkbox/package.json +3 -0
- package/confirm-dialog/package.json +3 -0
- package/core/package.json +3 -0
- package/data-exporter/package.json +3 -0
- package/data-filters/package.json +3 -0
- package/datatable/index.d.ts +44 -24
- package/datatable/package.json +3 -0
- package/datatable-alterations-display/package.json +3 -0
- package/datatable-dynamic/package.json +3 -0
- package/dynamic/package.json +3 -0
- package/dynamic-component-loader/package.json +3 -0
- package/fesm2022/theseam-ui-common-asset-reader.mjs +10 -10
- package/fesm2022/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs +6 -6
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-buttons.mjs +35 -28
- package/fesm2022/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-card.mjs +16 -16
- package/fesm2022/theseam-ui-common-card.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-carousel.mjs +10 -10
- package/fesm2022/theseam-ui-common-carousel.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-checkbox.mjs +7 -7
- package/fesm2022/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs +13 -13
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-data-exporter.mjs +31 -14
- package/fesm2022/theseam-ui-common-data-exporter.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-data-filters.mjs +13 -13
- package/fesm2022/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +12 -12
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +25 -25
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable.mjs +177 -145
- package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +7 -7
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-dynamic.mjs +21 -21
- package/fesm2022/theseam-ui-common-dynamic.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-footer-bar.mjs +7 -7
- package/fesm2022/theseam-ui-common-footer-bar.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-form-field-error.mjs +16 -16
- package/fesm2022/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-form-field.mjs +22 -22
- package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-framework.mjs +160 -158
- package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-google-maps.mjs +40 -40
- package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-graphql.mjs +852 -479
- package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-icon.mjs +13 -13
- package/fesm2022/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-layout.mjs +7 -7
- package/fesm2022/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-loading.mjs +10 -10
- package/fesm2022/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-menu.mjs +25 -25
- package/fesm2022/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-modal.mjs +43 -43
- package/fesm2022/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-navigation-reload.mjs +3 -3
- package/fesm2022/theseam-ui-common-navigation-reload.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-popover.mjs +10 -10
- package/fesm2022/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-progress.mjs +7 -7
- package/fesm2022/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-rich-text.mjs +7 -7
- package/fesm2022/theseam-ui-common-rich-text.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-scrollbar.mjs +6 -6
- package/fesm2022/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-services.mjs +12 -12
- package/fesm2022/theseam-ui-common-services.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-shared.mjs +37 -37
- package/fesm2022/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-storage.mjs +3 -3
- package/fesm2022/theseam-ui-common-storage.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-story-helpers.mjs +26 -26
- package/fesm2022/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tabbed.mjs +22 -22
- package/fesm2022/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table-cell-type.mjs +10 -10
- package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table-cell-types.mjs +31 -31
- package/fesm2022/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table.mjs +20 -28
- package/fesm2022/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tel-input.mjs +13 -13
- package/fesm2022/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tiled-select.mjs +22 -22
- package/fesm2022/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-toggle-edit.mjs +16 -16
- package/fesm2022/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-toggle-group.mjs +10 -10
- package/fesm2022/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tooltip.mjs +10 -10
- package/fesm2022/theseam-ui-common-tooltip.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +10 -10
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +3 -3
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-viewers.mjs +12 -12
- package/fesm2022/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-widget.mjs +135 -135
- package/fesm2022/theseam-ui-common-widget.mjs.map +1 -1
- package/footer-bar/package.json +3 -0
- package/form-field/package.json +3 -0
- package/form-field-error/package.json +3 -0
- package/framework/package.json +3 -0
- package/google-maps/package.json +3 -0
- package/graphql/index.d.ts +265 -54
- package/graphql/package.json +3 -0
- package/icon/package.json +3 -0
- package/layout/package.json +3 -0
- package/loading/package.json +3 -0
- package/menu/package.json +3 -0
- package/modal/package.json +3 -0
- package/models/package.json +3 -0
- package/navigation-reload/package.json +3 -0
- package/package.json +55 -55
- package/popover/package.json +3 -0
- package/progress/package.json +3 -0
- package/rich-text/package.json +3 -0
- package/scrollbar/package.json +3 -0
- package/services/package.json +3 -0
- package/shared/package.json +3 -0
- package/storage/package.json +3 -0
- package/story-helpers/package.json +3 -0
- package/tabbed/package.json +3 -0
- package/table/index.d.ts +1 -5
- package/table/package.json +3 -0
- package/table-cell-type/package.json +3 -0
- package/table-cell-types/package.json +3 -0
- package/tel-input/package.json +3 -0
- package/testing/package.json +3 -0
- package/tiled-select/package.json +3 -0
- package/toggle-edit/package.json +3 -0
- package/toggle-group/package.json +3 -0
- package/tooltip/package.json +3 -0
- package/unsaved-changes-dialog/package.json +3 -0
- package/utils/package.json +3 -0
- package/validators/package.json +3 -0
- package/vertical-list-filter/package.json +3 -0
- package/viewers/package.json +3 -0
- package/widget/package.json +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-datatable-alterations-display.mjs","sources":["../../../projects/ui-common/datatable-alterations-display/services/alteration-display.service.ts","../../../projects/ui-common/datatable-alterations-display/alteration-item/alteration-item.component.ts","../../../projects/ui-common/datatable-alterations-display/alteration-item/alteration-item.component.html","../../../projects/ui-common/datatable-alterations-display/alterations-list/alterations-list.component.ts","../../../projects/ui-common/datatable-alterations-display/alterations-list/alterations-list.component.html","../../../projects/ui-common/datatable-alterations-display/alterations-diff/alterations-diff.component.ts","../../../projects/ui-common/datatable-alterations-display/alterations-diff/alterations-diff.component.html","../../../projects/ui-common/datatable-alterations-display/public-api.ts","../../../projects/ui-common/datatable-alterations-display/theseam-ui-common-datatable-alterations-display.ts"],"sourcesContent":["import { Injectable } from '@angular/core'\n\nimport {\n AlterationDisplayItem,\n AlterationDiffState,\n} from '../models/alteration-display.model'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AlterationDisplayService {\n /**\n * Calculate the differences between current and pending alterations\n */\n calculateDiff(\n current: AlterationDisplayItem[],\n pending: AlterationDisplayItem[],\n ): AlterationDiffState {\n const currentIds = new Set(current.map((item) => item.id))\n const pendingIds = new Set(pending.map((item) => item.id))\n\n const added = pending.filter((item) => !currentIds.has(item.id))\n const removed = current.filter((item) => !pendingIds.has(item.id))\n\n const unchanged: AlterationDisplayItem[] = []\n const changed: AlterationDisplayItem[] = []\n\n // Check for changes in items that exist in both arrays\n for (const currentItem of current) {\n if (pendingIds.has(currentItem.id)) {\n const pendingItem = pending.find((item) => item.id === currentItem.id)!\n\n if (this._areItemsEqual(currentItem, pendingItem)) {\n unchanged.push(currentItem)\n } else {\n changed.push(pendingItem) // Use the pending version for changed items\n }\n }\n }\n\n return {\n added,\n removed,\n changed,\n unchanged,\n }\n }\n\n /**\n * Group and sort alteration items by type and sort order\n */\n groupAndSortItems(items: AlterationDisplayItem[]): AlterationDisplayItem[] {\n // Define type order: sort, order, hide-column, width, filter (filters last due to variation)\n const typeOrder: Record<string, number> = {\n sort: 1,\n order: 2,\n 'hide-column': 3,\n width: 4,\n filter: 5,\n }\n\n return items.sort((a, b) => {\n // First sort by type\n const typeOrderA = typeOrder[a.type] || 999\n const typeOrderB = typeOrder[b.type] || 999\n\n if (typeOrderA !== typeOrderB) {\n return typeOrderA - typeOrderB\n }\n\n // Then sort by sortOrder within the same type\n const sortOrderA = a.sortOrder || 0\n const sortOrderB = b.sortOrder || 0\n\n if (sortOrderA !== sortOrderB) {\n return sortOrderA - sortOrderB\n }\n\n // Finally sort by id for consistent ordering\n return a.id.localeCompare(b.id)\n })\n }\n\n /**\n * Get a user-friendly type display name\n */\n getTypeDisplayName(type: string): string {\n const typeNames: Record<string, string> = {\n sort: 'Sort',\n order: 'Order',\n 'hide-column': 'Visibility',\n width: 'Width',\n filter: 'Filter',\n }\n return typeNames[type] || type\n }\n\n /**\n * Get an icon name for the alteration type (FontAwesome icon names)\n */\n getTypeIconName(type: string): string {\n const typeIcons: Record<string, string> = {\n sort: 'sort',\n order: 'arrows-alt',\n 'hide-column': 'eye-slash',\n width: 'arrows-alt-h',\n filter: 'filter',\n }\n return typeIcons[type] || 'cog'\n }\n\n private _areItemsEqual(\n item1: AlterationDisplayItem,\n item2: AlterationDisplayItem,\n ): boolean {\n // Compare all properties except sortOrder (which shouldn't affect equality)\n return (\n item1.id === item2.id &&\n item1.type === item2.type &&\n item1.summary === item2.summary &&\n this._areArraysEqual(item1.details || [], item2.details || [])\n )\n }\n\n private _areArraysEqual(arr1: string[], arr2: string[]): boolean {\n if (arr1.length !== arr2.length) {\n return false\n }\n\n return arr1.every((item, index) => item === arr2[index])\n }\n}\n","import { Component, Input } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport {\n faSort,\n faArrowsAlt,\n faEyeSlash,\n faArrowsAltH,\n faFilter,\n faCog,\n} from '@fortawesome/free-solid-svg-icons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\n\nimport {\n AlterationDisplayItem,\n AlterationVisualState,\n} from '../models/alteration-display.model'\nimport { AlterationDisplayService } from '../services/alteration-display.service'\n\n@Component({\n selector: 'seam-alteration-item',\n standalone: true,\n imports: [CommonModule, TheSeamIconModule],\n templateUrl: './alteration-item.component.html',\n styleUrls: ['./alteration-item.component.scss'],\n})\nexport class AlterationItemComponent {\n @Input() item!: AlterationDisplayItem\n @Input() compact = true\n\n // FontAwesome icons\n private readonly typeIcons = {\n sort: faSort,\n order: faArrowsAlt,\n 'hide-column': faEyeSlash,\n width: faArrowsAltH,\n filter: faFilter,\n default: faCog,\n }\n\n constructor(private alterationDisplayService: AlterationDisplayService) {}\n\n get typeDisplayName(): string {\n return this.alterationDisplayService.getTypeDisplayName(this.item.type)\n }\n\n get typeIcon() {\n return (\n this.typeIcons[this.item.type as keyof typeof this.typeIcons] ||\n this.typeIcons.default\n )\n }\n\n get borderClass(): string {\n switch (this.item.diffState) {\n case 'added':\n return 'border-success'\n case 'removed':\n return 'border-danger'\n case 'changed':\n return 'border-warning'\n default:\n return ''\n }\n }\n\n get badgeClass(): string {\n switch (this.item.type) {\n case 'sort':\n return 'badge-primary'\n case 'order':\n return 'badge-info'\n case 'hide-column':\n return 'badge-secondary'\n case 'width':\n return 'badge-dark'\n case 'filter':\n return 'badge-warning'\n default:\n return 'badge-secondary'\n }\n }\n}\n","<div\n class=\"card card-body py-2 px-3 mb-2\"\n [class]=\"borderClass\"\n [attr.data-testid]=\"'alteration-item-' + item.id\"\n>\n <div class=\"d-flex align-items-center\">\n <!-- Type badge -->\n <span\n class=\"badge mr-2\"\n [class]=\"badgeClass\"\n [attr.data-testid]=\"'alteration-type-' + item.type\"\n >\n {{ typeDisplayName }}\n </span>\n\n <!-- Type icon -->\n <seam-icon\n [icon]=\"typeIcon\"\n class=\"mr-2 text-muted\"\n [attr.data-testid]=\"'alteration-icon-' + item.type\"\n >\n </seam-icon>\n\n <!-- Summary text -->\n <span class=\"flex-grow-1\" [attr.data-testid]=\"'alteration-summary'\">\n {{ item.summary }}\n </span>\n\n <!-- Diff state indicator (optional visual indicator) -->\n <span\n *ngIf=\"item.diffState\"\n class=\"ml-2 small text-muted\"\n [attr.data-testid]=\"'alteration-diff-state'\"\n >\n <ng-container [ngSwitch]=\"item.diffState\">\n <span *ngSwitchCase=\"'added'\" class=\"text-success\">+</span>\n <span *ngSwitchCase=\"'removed'\" class=\"text-danger\">-</span>\n <span *ngSwitchCase=\"'changed'\" class=\"text-warning\">~</span>\n </ng-container>\n </span>\n </div>\n\n <!-- Expanded details (for future enhancement) -->\n <div\n *ngIf=\"!compact && item.details && item.details.length > 0\"\n class=\"mt-2 pt-2 border-top\"\n >\n <ul class=\"list-unstyled mb-0 small text-muted\">\n <li\n *ngFor=\"let detail of item.details\"\n [attr.data-testid]=\"'alteration-detail'\"\n >\n {{ detail }}\n </li>\n </ul>\n </div>\n</div>\n","import { Component, Input } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport {\n AlterationDisplayItem,\n AlterationVisualState,\n} from '../models/alteration-display.model'\nimport { AlterationDisplayService } from '../services/alteration-display.service'\nimport { AlterationItemComponent } from '../alteration-item/alteration-item.component'\n\n@Component({\n selector: 'seam-alterations-list',\n standalone: true,\n imports: [CommonModule, AlterationItemComponent],\n templateUrl: './alterations-list.component.html',\n styleUrls: ['./alterations-list.component.scss'],\n})\nexport class AlterationsListComponent {\n @Input() items: AlterationDisplayItem[] = []\n @Input() title?: string\n @Input() diffState?: 'current' | 'pending'\n @Input() groupByType = true\n @Input() sortWithinType = true\n @Input() compact = true\n\n constructor(private alterationDisplayService: AlterationDisplayService) {}\n\n get sortedItems(): AlterationDisplayItem[] {\n if (!this.groupByType && !this.sortWithinType) {\n return this.items\n }\n\n return this.alterationDisplayService.groupAndSortItems(this.items)\n }\n\n get hasItems(): boolean {\n return this.items && this.items.length > 0\n }\n\n trackByItemId(index: number, item: AlterationDisplayItem): string {\n return item.id\n }\n}\n","<div\n class=\"alterations-list\"\n [attr.data-testid]=\"'alterations-list-' + (diffState || 'default')\"\n>\n <!-- Title header -->\n <div *ngIf=\"title\" class=\"mb-3\">\n <h6\n class=\"mb-1 text-muted font-weight-bold\"\n [attr.data-testid]=\"'alterations-list-title'\"\n >\n {{ title }}\n </h6>\n <small class=\"text-muted\" [attr.data-testid]=\"'alterations-list-count'\">\n {{ items.length }} alteration{{ items.length === 1 ? '' : 's' }}\n </small>\n </div>\n\n <!-- Items list -->\n <div *ngIf=\"hasItems; else emptyState\" class=\"alterations-items\">\n <seam-alteration-item\n *ngFor=\"let item of sortedItems; trackBy: trackByItemId\"\n [item]=\"item\"\n [compact]=\"compact\"\n [attr.data-testid]=\"'list-item-' + item.id\"\n >\n </seam-alteration-item>\n </div>\n\n <!-- Empty state -->\n <ng-template #emptyState>\n <div\n class=\"text-center py-4 text-muted\"\n [attr.data-testid]=\"'alterations-list-empty'\"\n >\n <p class=\"mb-0\">No alterations</p>\n <small>No changes have been made to the table configuration.</small>\n </div>\n </ng-template>\n</div>\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { Subject, takeUntil } from 'rxjs'\n\nimport { TheSeamLayoutService } from '@theseam/ui-common/layout'\n\nimport {\n AlterationDisplayItem,\n AlterationDiffState,\n AlterationDiffMode,\n AlterationVisualState,\n} from '../models/alteration-display.model'\nimport { AlterationDisplayService } from '../services/alteration-display.service'\nimport { AlterationsListComponent } from '../alterations-list/alterations-list.component'\n\n@Component({\n selector: 'seam-alterations-diff',\n standalone: true,\n imports: [CommonModule, AlterationsListComponent],\n templateUrl: './alterations-diff.component.html',\n styleUrls: ['./alterations-diff.component.scss'],\n})\nexport class AlterationsDiffComponent implements OnInit, OnDestroy {\n @Input() currentItems: AlterationDisplayItem[] = []\n @Input() pendingItems: AlterationDisplayItem[] = []\n @Input() diffMode: AlterationDiffMode = 'auto'\n @Input() initialDiffState?: AlterationDiffState\n @Input() compact = true\n\n isMobile = false\n diffState: AlterationDiffState | null = null\n\n private destroy$ = new Subject<void>()\n\n constructor(\n private layoutService: TheSeamLayoutService,\n private alterationDisplayService: AlterationDisplayService,\n ) {}\n\n ngOnInit(): void {\n // Subscribe to mobile breakpoint changes\n this.layoutService\n .observe('lt-md')\n .pipe(takeUntil(this.destroy$))\n .subscribe((isMobile) => {\n this.isMobile = isMobile\n })\n\n // Calculate diff state\n this.calculateDiffState()\n }\n\n ngOnDestroy(): void {\n this.destroy$.next()\n this.destroy$.complete()\n }\n\n get currentItemsWithDiffState(): AlterationDisplayItem[] {\n if (!this.diffState) {\n return this.currentItems\n }\n\n return this.currentItems.map((item) => ({\n ...item,\n _diffState: this.getItemDiffState(item, 'current'),\n }))\n }\n\n get pendingItemsWithDiffState(): AlterationDisplayItem[] {\n if (!this.diffState) {\n return this.pendingItems\n }\n\n return this.pendingItems.map((item) => ({\n ...item,\n _diffState: this.getItemDiffState(item, 'pending'),\n }))\n }\n\n get hasDifferences(): boolean {\n if (!this.diffState) {\n return false\n }\n\n return (\n this.diffState.added.length > 0 ||\n this.diffState.removed.length > 0 ||\n this.diffState.changed.length > 0\n )\n }\n\n get differenceSummary(): string {\n if (!this.diffState) {\n return 'No differences calculated'\n }\n\n const parts: string[] = []\n\n if (this.diffState.added.length > 0) {\n parts.push(`${this.diffState.added.length} added`)\n }\n\n if (this.diffState.removed.length > 0) {\n parts.push(`${this.diffState.removed.length} removed`)\n }\n\n if (this.diffState.changed.length > 0) {\n parts.push(`${this.diffState.changed.length} changed`)\n }\n\n if (parts.length === 0) {\n return 'No differences'\n }\n\n return parts.join(', ')\n }\n\n private calculateDiffState(): void {\n if (this.diffMode === 'manual' && this.initialDiffState) {\n this.diffState = this.initialDiffState\n } else {\n this.diffState = this.alterationDisplayService.calculateDiff(\n this.currentItems,\n this.pendingItems,\n )\n }\n }\n\n private getItemDiffState(\n item: AlterationDisplayItem,\n context: 'current' | 'pending',\n ): AlterationVisualState | undefined {\n if (!this.diffState) {\n return undefined\n }\n\n const itemId = item.id\n\n if (this.diffState.added.some((addedItem) => addedItem.id === itemId)) {\n return context === 'pending' ? 'added' : undefined\n }\n\n if (\n this.diffState.removed.some((removedItem) => removedItem.id === itemId)\n ) {\n return context === 'current' ? 'removed' : undefined\n }\n\n if (\n this.diffState.changed.some((changedItem) => changedItem.id === itemId)\n ) {\n return 'changed'\n }\n\n return 'unchanged'\n }\n}\n","<div class=\"alterations-diff\" [attr.data-testid]=\"'alterations-diff'\">\n <!-- Diff summary header -->\n <div\n *ngIf=\"hasDifferences\"\n class=\"mb-3 p-2 bg-light border rounded\"\n [attr.data-testid]=\"'diff-summary'\"\n >\n <small class=\"text-muted font-weight-bold\">\n Changes: {{ differenceSummary }}\n </small>\n </div>\n\n <!-- Desktop layout: Side-by-side -->\n <div\n *ngIf=\"!isMobile; else mobileLayout\"\n class=\"row\"\n [attr.data-testid]=\"'desktop-layout'\"\n >\n <!-- Current alterations column -->\n <div class=\"col-md-6 pr-md-2\">\n <seam-alterations-list\n [items]=\"currentItems\"\n [title]=\"'Current Alterations'\"\n [diffState]=\"'current'\"\n [compact]=\"compact\"\n [attr.data-testid]=\"'current-alterations-list'\"\n >\n </seam-alterations-list>\n </div>\n\n <!-- Pending alterations column -->\n <div class=\"col-md-6 pl-md-2\">\n <seam-alterations-list\n [items]=\"pendingItems\"\n [title]=\"'Pending Alterations'\"\n [diffState]=\"'pending'\"\n [compact]=\"compact\"\n [attr.data-testid]=\"'pending-alterations-list'\"\n >\n </seam-alterations-list>\n </div>\n </div>\n\n <!-- Mobile layout: Stacked -->\n <ng-template #mobileLayout>\n <div class=\"mobile-layout\" [attr.data-testid]=\"'mobile-layout'\">\n <!-- Current alterations -->\n <div class=\"mb-4\">\n <seam-alterations-list\n [items]=\"currentItems\"\n [title]=\"'Current Alterations'\"\n [diffState]=\"'current'\"\n [compact]=\"compact\"\n [attr.data-testid]=\"'current-alterations-list-mobile'\"\n >\n </seam-alterations-list>\n </div>\n\n <!-- Pending alterations -->\n <div>\n <seam-alterations-list\n [items]=\"pendingItems\"\n [title]=\"'Pending Alterations'\"\n [diffState]=\"'pending'\"\n [compact]=\"compact\"\n [attr.data-testid]=\"'pending-alterations-list-mobile'\"\n >\n </seam-alterations-list>\n </div>\n </div>\n </ng-template>\n</div>\n","/*\n * Public API Surface of datatable-alterations-display\n */\n\n// Models\nexport * from './models/alteration-display.model'\n\n// Services\nexport * from './services/alteration-display.service'\n\n// Components\nexport * from './alteration-item/alteration-item.component'\nexport * from './alterations-list/alterations-list.component'\nexport * from './alterations-diff/alterations-diff.component'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AlterationDisplayService","i2.AlterationDisplayService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-datatable-alterations-display.mjs","sources":["../../../projects/ui-common/datatable-alterations-display/services/alteration-display.service.ts","../../../projects/ui-common/datatable-alterations-display/alteration-item/alteration-item.component.ts","../../../projects/ui-common/datatable-alterations-display/alteration-item/alteration-item.component.html","../../../projects/ui-common/datatable-alterations-display/alterations-list/alterations-list.component.ts","../../../projects/ui-common/datatable-alterations-display/alterations-list/alterations-list.component.html","../../../projects/ui-common/datatable-alterations-display/alterations-diff/alterations-diff.component.ts","../../../projects/ui-common/datatable-alterations-display/alterations-diff/alterations-diff.component.html","../../../projects/ui-common/datatable-alterations-display/public-api.ts","../../../projects/ui-common/datatable-alterations-display/theseam-ui-common-datatable-alterations-display.ts"],"sourcesContent":["import { Injectable } from '@angular/core'\n\nimport {\n AlterationDisplayItem,\n AlterationDiffState,\n} from '../models/alteration-display.model'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AlterationDisplayService {\n /**\n * Calculate the differences between current and pending alterations\n */\n calculateDiff(\n current: AlterationDisplayItem[],\n pending: AlterationDisplayItem[],\n ): AlterationDiffState {\n const currentIds = new Set(current.map((item) => item.id))\n const pendingIds = new Set(pending.map((item) => item.id))\n\n const added = pending.filter((item) => !currentIds.has(item.id))\n const removed = current.filter((item) => !pendingIds.has(item.id))\n\n const unchanged: AlterationDisplayItem[] = []\n const changed: AlterationDisplayItem[] = []\n\n // Check for changes in items that exist in both arrays\n for (const currentItem of current) {\n if (pendingIds.has(currentItem.id)) {\n const pendingItem = pending.find((item) => item.id === currentItem.id)!\n\n if (this._areItemsEqual(currentItem, pendingItem)) {\n unchanged.push(currentItem)\n } else {\n changed.push(pendingItem) // Use the pending version for changed items\n }\n }\n }\n\n return {\n added,\n removed,\n changed,\n unchanged,\n }\n }\n\n /**\n * Group and sort alteration items by type and sort order\n */\n groupAndSortItems(items: AlterationDisplayItem[]): AlterationDisplayItem[] {\n // Define type order: sort, order, hide-column, width, filter (filters last due to variation)\n const typeOrder: Record<string, number> = {\n sort: 1,\n order: 2,\n 'hide-column': 3,\n width: 4,\n filter: 5,\n }\n\n return items.sort((a, b) => {\n // First sort by type\n const typeOrderA = typeOrder[a.type] || 999\n const typeOrderB = typeOrder[b.type] || 999\n\n if (typeOrderA !== typeOrderB) {\n return typeOrderA - typeOrderB\n }\n\n // Then sort by sortOrder within the same type\n const sortOrderA = a.sortOrder || 0\n const sortOrderB = b.sortOrder || 0\n\n if (sortOrderA !== sortOrderB) {\n return sortOrderA - sortOrderB\n }\n\n // Finally sort by id for consistent ordering\n return a.id.localeCompare(b.id)\n })\n }\n\n /**\n * Get a user-friendly type display name\n */\n getTypeDisplayName(type: string): string {\n const typeNames: Record<string, string> = {\n sort: 'Sort',\n order: 'Order',\n 'hide-column': 'Visibility',\n width: 'Width',\n filter: 'Filter',\n }\n return typeNames[type] || type\n }\n\n /**\n * Get an icon name for the alteration type (FontAwesome icon names)\n */\n getTypeIconName(type: string): string {\n const typeIcons: Record<string, string> = {\n sort: 'sort',\n order: 'arrows-alt',\n 'hide-column': 'eye-slash',\n width: 'arrows-alt-h',\n filter: 'filter',\n }\n return typeIcons[type] || 'cog'\n }\n\n private _areItemsEqual(\n item1: AlterationDisplayItem,\n item2: AlterationDisplayItem,\n ): boolean {\n // Compare all properties except sortOrder (which shouldn't affect equality)\n return (\n item1.id === item2.id &&\n item1.type === item2.type &&\n item1.summary === item2.summary &&\n this._areArraysEqual(item1.details || [], item2.details || [])\n )\n }\n\n private _areArraysEqual(arr1: string[], arr2: string[]): boolean {\n if (arr1.length !== arr2.length) {\n return false\n }\n\n return arr1.every((item, index) => item === arr2[index])\n }\n}\n","import { Component, Input } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport {\n faSort,\n faArrowsAlt,\n faEyeSlash,\n faArrowsAltH,\n faFilter,\n faCog,\n} from '@fortawesome/free-solid-svg-icons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\n\nimport {\n AlterationDisplayItem,\n AlterationVisualState,\n} from '../models/alteration-display.model'\nimport { AlterationDisplayService } from '../services/alteration-display.service'\n\n@Component({\n selector: 'seam-alteration-item',\n standalone: true,\n imports: [CommonModule, TheSeamIconModule],\n templateUrl: './alteration-item.component.html',\n styleUrls: ['./alteration-item.component.scss'],\n})\nexport class AlterationItemComponent {\n @Input() item!: AlterationDisplayItem\n @Input() compact = true\n\n // FontAwesome icons\n private readonly typeIcons = {\n sort: faSort,\n order: faArrowsAlt,\n 'hide-column': faEyeSlash,\n width: faArrowsAltH,\n filter: faFilter,\n default: faCog,\n }\n\n constructor(private alterationDisplayService: AlterationDisplayService) {}\n\n get typeDisplayName(): string {\n return this.alterationDisplayService.getTypeDisplayName(this.item.type)\n }\n\n get typeIcon() {\n return (\n this.typeIcons[this.item.type as keyof typeof this.typeIcons] ||\n this.typeIcons.default\n )\n }\n\n get borderClass(): string {\n switch (this.item.diffState) {\n case 'added':\n return 'border-success'\n case 'removed':\n return 'border-danger'\n case 'changed':\n return 'border-warning'\n default:\n return ''\n }\n }\n\n get badgeClass(): string {\n switch (this.item.type) {\n case 'sort':\n return 'badge-primary'\n case 'order':\n return 'badge-info'\n case 'hide-column':\n return 'badge-secondary'\n case 'width':\n return 'badge-dark'\n case 'filter':\n return 'badge-warning'\n default:\n return 'badge-secondary'\n }\n }\n}\n","<div\n class=\"card card-body py-2 px-3 mb-2\"\n [class]=\"borderClass\"\n [attr.data-testid]=\"'alteration-item-' + item.id\"\n>\n <div class=\"d-flex align-items-center\">\n <!-- Type badge -->\n <span\n class=\"badge mr-2\"\n [class]=\"badgeClass\"\n [attr.data-testid]=\"'alteration-type-' + item.type\"\n >\n {{ typeDisplayName }}\n </span>\n\n <!-- Type icon -->\n <seam-icon\n [icon]=\"typeIcon\"\n class=\"mr-2 text-muted\"\n [attr.data-testid]=\"'alteration-icon-' + item.type\"\n >\n </seam-icon>\n\n <!-- Summary text -->\n <span class=\"flex-grow-1\" [attr.data-testid]=\"'alteration-summary'\">\n {{ item.summary }}\n </span>\n\n <!-- Diff state indicator (optional visual indicator) -->\n <span\n *ngIf=\"item.diffState\"\n class=\"ml-2 small text-muted\"\n [attr.data-testid]=\"'alteration-diff-state'\"\n >\n <ng-container [ngSwitch]=\"item.diffState\">\n <span *ngSwitchCase=\"'added'\" class=\"text-success\">+</span>\n <span *ngSwitchCase=\"'removed'\" class=\"text-danger\">-</span>\n <span *ngSwitchCase=\"'changed'\" class=\"text-warning\">~</span>\n </ng-container>\n </span>\n </div>\n\n <!-- Expanded details (for future enhancement) -->\n <div\n *ngIf=\"!compact && item.details && item.details.length > 0\"\n class=\"mt-2 pt-2 border-top\"\n >\n <ul class=\"list-unstyled mb-0 small text-muted\">\n <li\n *ngFor=\"let detail of item.details\"\n [attr.data-testid]=\"'alteration-detail'\"\n >\n {{ detail }}\n </li>\n </ul>\n </div>\n</div>\n","import { Component, Input } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport {\n AlterationDisplayItem,\n AlterationVisualState,\n} from '../models/alteration-display.model'\nimport { AlterationDisplayService } from '../services/alteration-display.service'\nimport { AlterationItemComponent } from '../alteration-item/alteration-item.component'\n\n@Component({\n selector: 'seam-alterations-list',\n standalone: true,\n imports: [CommonModule, AlterationItemComponent],\n templateUrl: './alterations-list.component.html',\n styleUrls: ['./alterations-list.component.scss'],\n})\nexport class AlterationsListComponent {\n @Input() items: AlterationDisplayItem[] = []\n @Input() title?: string\n @Input() diffState?: 'current' | 'pending'\n @Input() groupByType = true\n @Input() sortWithinType = true\n @Input() compact = true\n\n constructor(private alterationDisplayService: AlterationDisplayService) {}\n\n get sortedItems(): AlterationDisplayItem[] {\n if (!this.groupByType && !this.sortWithinType) {\n return this.items\n }\n\n return this.alterationDisplayService.groupAndSortItems(this.items)\n }\n\n get hasItems(): boolean {\n return this.items && this.items.length > 0\n }\n\n trackByItemId(index: number, item: AlterationDisplayItem): string {\n return item.id\n }\n}\n","<div\n class=\"alterations-list\"\n [attr.data-testid]=\"'alterations-list-' + (diffState || 'default')\"\n>\n <!-- Title header -->\n <div *ngIf=\"title\" class=\"mb-3\">\n <h6\n class=\"mb-1 text-muted font-weight-bold\"\n [attr.data-testid]=\"'alterations-list-title'\"\n >\n {{ title }}\n </h6>\n <small class=\"text-muted\" [attr.data-testid]=\"'alterations-list-count'\">\n {{ items.length }} alteration{{ items.length === 1 ? '' : 's' }}\n </small>\n </div>\n\n <!-- Items list -->\n <div *ngIf=\"hasItems; else emptyState\" class=\"alterations-items\">\n <seam-alteration-item\n *ngFor=\"let item of sortedItems; trackBy: trackByItemId\"\n [item]=\"item\"\n [compact]=\"compact\"\n [attr.data-testid]=\"'list-item-' + item.id\"\n >\n </seam-alteration-item>\n </div>\n\n <!-- Empty state -->\n <ng-template #emptyState>\n <div\n class=\"text-center py-4 text-muted\"\n [attr.data-testid]=\"'alterations-list-empty'\"\n >\n <p class=\"mb-0\">No alterations</p>\n <small>No changes have been made to the table configuration.</small>\n </div>\n </ng-template>\n</div>\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { Subject, takeUntil } from 'rxjs'\n\nimport { TheSeamLayoutService } from '@theseam/ui-common/layout'\n\nimport {\n AlterationDisplayItem,\n AlterationDiffState,\n AlterationDiffMode,\n AlterationVisualState,\n} from '../models/alteration-display.model'\nimport { AlterationDisplayService } from '../services/alteration-display.service'\nimport { AlterationsListComponent } from '../alterations-list/alterations-list.component'\n\n@Component({\n selector: 'seam-alterations-diff',\n standalone: true,\n imports: [CommonModule, AlterationsListComponent],\n templateUrl: './alterations-diff.component.html',\n styleUrls: ['./alterations-diff.component.scss'],\n})\nexport class AlterationsDiffComponent implements OnInit, OnDestroy {\n @Input() currentItems: AlterationDisplayItem[] = []\n @Input() pendingItems: AlterationDisplayItem[] = []\n @Input() diffMode: AlterationDiffMode = 'auto'\n @Input() initialDiffState?: AlterationDiffState\n @Input() compact = true\n\n isMobile = false\n diffState: AlterationDiffState | null = null\n\n private destroy$ = new Subject<void>()\n\n constructor(\n private layoutService: TheSeamLayoutService,\n private alterationDisplayService: AlterationDisplayService,\n ) {}\n\n ngOnInit(): void {\n // Subscribe to mobile breakpoint changes\n this.layoutService\n .observe('lt-md')\n .pipe(takeUntil(this.destroy$))\n .subscribe((isMobile) => {\n this.isMobile = isMobile\n })\n\n // Calculate diff state\n this.calculateDiffState()\n }\n\n ngOnDestroy(): void {\n this.destroy$.next()\n this.destroy$.complete()\n }\n\n get currentItemsWithDiffState(): AlterationDisplayItem[] {\n if (!this.diffState) {\n return this.currentItems\n }\n\n return this.currentItems.map((item) => ({\n ...item,\n _diffState: this.getItemDiffState(item, 'current'),\n }))\n }\n\n get pendingItemsWithDiffState(): AlterationDisplayItem[] {\n if (!this.diffState) {\n return this.pendingItems\n }\n\n return this.pendingItems.map((item) => ({\n ...item,\n _diffState: this.getItemDiffState(item, 'pending'),\n }))\n }\n\n get hasDifferences(): boolean {\n if (!this.diffState) {\n return false\n }\n\n return (\n this.diffState.added.length > 0 ||\n this.diffState.removed.length > 0 ||\n this.diffState.changed.length > 0\n )\n }\n\n get differenceSummary(): string {\n if (!this.diffState) {\n return 'No differences calculated'\n }\n\n const parts: string[] = []\n\n if (this.diffState.added.length > 0) {\n parts.push(`${this.diffState.added.length} added`)\n }\n\n if (this.diffState.removed.length > 0) {\n parts.push(`${this.diffState.removed.length} removed`)\n }\n\n if (this.diffState.changed.length > 0) {\n parts.push(`${this.diffState.changed.length} changed`)\n }\n\n if (parts.length === 0) {\n return 'No differences'\n }\n\n return parts.join(', ')\n }\n\n private calculateDiffState(): void {\n if (this.diffMode === 'manual' && this.initialDiffState) {\n this.diffState = this.initialDiffState\n } else {\n this.diffState = this.alterationDisplayService.calculateDiff(\n this.currentItems,\n this.pendingItems,\n )\n }\n }\n\n private getItemDiffState(\n item: AlterationDisplayItem,\n context: 'current' | 'pending',\n ): AlterationVisualState | undefined {\n if (!this.diffState) {\n return undefined\n }\n\n const itemId = item.id\n\n if (this.diffState.added.some((addedItem) => addedItem.id === itemId)) {\n return context === 'pending' ? 'added' : undefined\n }\n\n if (\n this.diffState.removed.some((removedItem) => removedItem.id === itemId)\n ) {\n return context === 'current' ? 'removed' : undefined\n }\n\n if (\n this.diffState.changed.some((changedItem) => changedItem.id === itemId)\n ) {\n return 'changed'\n }\n\n return 'unchanged'\n }\n}\n","<div class=\"alterations-diff\" [attr.data-testid]=\"'alterations-diff'\">\n <!-- Diff summary header -->\n <div\n *ngIf=\"hasDifferences\"\n class=\"mb-3 p-2 bg-light border rounded\"\n [attr.data-testid]=\"'diff-summary'\"\n >\n <small class=\"text-muted font-weight-bold\">\n Changes: {{ differenceSummary }}\n </small>\n </div>\n\n <!-- Desktop layout: Side-by-side -->\n <div\n *ngIf=\"!isMobile; else mobileLayout\"\n class=\"row\"\n [attr.data-testid]=\"'desktop-layout'\"\n >\n <!-- Current alterations column -->\n <div class=\"col-md-6 pr-md-2\">\n <seam-alterations-list\n [items]=\"currentItems\"\n [title]=\"'Current Alterations'\"\n [diffState]=\"'current'\"\n [compact]=\"compact\"\n [attr.data-testid]=\"'current-alterations-list'\"\n >\n </seam-alterations-list>\n </div>\n\n <!-- Pending alterations column -->\n <div class=\"col-md-6 pl-md-2\">\n <seam-alterations-list\n [items]=\"pendingItems\"\n [title]=\"'Pending Alterations'\"\n [diffState]=\"'pending'\"\n [compact]=\"compact\"\n [attr.data-testid]=\"'pending-alterations-list'\"\n >\n </seam-alterations-list>\n </div>\n </div>\n\n <!-- Mobile layout: Stacked -->\n <ng-template #mobileLayout>\n <div class=\"mobile-layout\" [attr.data-testid]=\"'mobile-layout'\">\n <!-- Current alterations -->\n <div class=\"mb-4\">\n <seam-alterations-list\n [items]=\"currentItems\"\n [title]=\"'Current Alterations'\"\n [diffState]=\"'current'\"\n [compact]=\"compact\"\n [attr.data-testid]=\"'current-alterations-list-mobile'\"\n >\n </seam-alterations-list>\n </div>\n\n <!-- Pending alterations -->\n <div>\n <seam-alterations-list\n [items]=\"pendingItems\"\n [title]=\"'Pending Alterations'\"\n [diffState]=\"'pending'\"\n [compact]=\"compact\"\n [attr.data-testid]=\"'pending-alterations-list-mobile'\"\n >\n </seam-alterations-list>\n </div>\n </div>\n </ng-template>\n</div>\n","/*\n * Public API Surface of datatable-alterations-display\n */\n\n// Models\nexport * from './models/alteration-display.model'\n\n// Services\nexport * from './services/alteration-display.service'\n\n// Components\nexport * from './alteration-item/alteration-item.component'\nexport * from './alterations-list/alterations-list.component'\nexport * from './alterations-diff/alterations-diff.component'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AlterationDisplayService","i2.AlterationDisplayService"],"mappings":"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"}
|
|
@@ -160,10 +160,10 @@ class DynamicDatatableDefService {
|
|
|
160
160
|
})
|
|
161
161
|
.filter(notNullOrUndefined);
|
|
162
162
|
}
|
|
163
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
164
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
163
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DynamicDatatableDefService, deps: [{ token: THESEAM_DATA_EXPORTER }, { token: THESEAM_DATA_FILTER_DEF }, { token: i1.DynamicValueHelperService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
164
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DynamicDatatableDefService });
|
|
165
165
|
}
|
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DynamicDatatableDefService, decorators: [{
|
|
167
167
|
type: Injectable
|
|
168
168
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
169
169
|
type: Inject,
|
|
@@ -207,10 +207,10 @@ class DynamicDatatableRowActionsService {
|
|
|
207
207
|
row,
|
|
208
208
|
};
|
|
209
209
|
}
|
|
210
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
211
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
210
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DynamicDatatableRowActionsService, deps: [{ token: i1.DynamicValueHelperService }, { token: DynamicDatatableDefService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
211
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DynamicDatatableRowActionsService });
|
|
212
212
|
}
|
|
213
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DynamicDatatableRowActionsService, decorators: [{
|
|
214
214
|
type: Injectable
|
|
215
215
|
}], ctorParameters: () => [{ type: i1.DynamicValueHelperService }, { type: DynamicDatatableDefService }] });
|
|
216
216
|
|
|
@@ -624,10 +624,10 @@ class DatatableDynamicActionMenuItemDirective {
|
|
|
624
624
|
const element = this._elementRef.nativeElement;
|
|
625
625
|
toggleAttribute(element, 'disabled', invalid);
|
|
626
626
|
}
|
|
627
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
628
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
627
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatatableDynamicActionMenuItemDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.DynamicValueHelperService }, { token: i1.DynamicActionHelperService }, { token: i2.AssetReaderHelperService }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i3$1.LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive });
|
|
628
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: DatatableDynamicActionMenuItemDirective, isStandalone: true, selector: "[seamDatatableDynamicActionMenuItem]", inputs: { seamDatatableDynamicActionMenuItem: "seamDatatableDynamicActionMenuItem" }, exportAs: ["seamDatatableDynamicActionMenuItem"], usesOnChanges: true, ngImport: i0 });
|
|
629
629
|
}
|
|
630
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
630
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatatableDynamicActionMenuItemDirective, decorators: [{
|
|
631
631
|
type: Directive,
|
|
632
632
|
args: [{
|
|
633
633
|
selector: '[seamDatatableDynamicActionMenuItem]',
|
|
@@ -740,10 +740,10 @@ class DatatableDynamicActionMenuComponent {
|
|
|
740
740
|
}
|
|
741
741
|
return 'button';
|
|
742
742
|
}
|
|
743
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
744
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
743
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatatableDynamicActionMenuComponent, deps: [{ token: i1.DynamicValueHelperService }, { token: DynamicDatatableRowActionsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
744
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: DatatableDynamicActionMenuComponent, isStandalone: false, selector: "seam-datatable-dynamic-action-menu", inputs: { row: "row", actionDefs: "actionDefs" }, ngImport: i0, template: "<seam-menu\n #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\"\n>\n <ng-container *ngFor=\"let record of _menuRecords$ | async\">\n <a\n *ngIf=\"record.elementType === 'a'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n class=\"list-group-item list-group-item-action py-1\"\n >{{ record.rowAction.label }}</a\n >\n\n <button\n *ngIf=\"record.elementType === 'button'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n >\n {{ record.rowAction.label }}\n </button>\n </ng-container>\n\n <!-- <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n [routerLink]=\"item.routerLink\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-container> -->\n</seam-menu>\n\n<button\n type=\"button\"\n class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"$any(_actionMenuPositions)\"\n title=\"Row Actions\"\n>\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n</button>\n", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i5.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i5.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i5.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "directive", type: DatatableDynamicActionMenuItemDirective, selector: "[seamDatatableDynamicActionMenuItem]", inputs: ["seamDatatableDynamicActionMenuItem"], exportAs: ["seamDatatableDynamicActionMenuItem"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
745
745
|
}
|
|
746
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
746
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatatableDynamicActionMenuComponent, decorators: [{
|
|
747
747
|
type: Component,
|
|
748
748
|
args: [{ selector: 'seam-datatable-dynamic-action-menu', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<seam-menu\n #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\"\n>\n <ng-container *ngFor=\"let record of _menuRecords$ | async\">\n <a\n *ngIf=\"record.elementType === 'a'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n class=\"list-group-item list-group-item-action py-1\"\n >{{ record.rowAction.label }}</a\n >\n\n <button\n *ngIf=\"record.elementType === 'button'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n >\n {{ record.rowAction.label }}\n </button>\n </ng-container>\n\n <!-- <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n [routerLink]=\"item.routerLink\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-container> -->\n</seam-menu>\n\n<button\n type=\"button\"\n class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"$any(_actionMenuPositions)\"\n title=\"Row Actions\"\n>\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n</button>\n", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"] }]
|
|
749
749
|
}], ctorParameters: () => [{ type: i1.DynamicValueHelperService }, { type: DynamicDatatableRowActionsService }], propDecorators: { row: [{
|
|
@@ -793,10 +793,10 @@ class DatatableDynamicFilterContainerComponent {
|
|
|
793
793
|
],
|
|
794
794
|
});
|
|
795
795
|
}
|
|
796
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
797
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
796
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatatableDynamicFilterContainerComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
797
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: DatatableDynamicFilterContainerComponent, isStandalone: false, selector: "seam-datatable-dynamic-filter-container", inputs: { filterComponent: "filterComponent", options: "options" }, ngImport: i0, template: "<ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
798
798
|
}
|
|
799
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
799
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatatableDynamicFilterContainerComponent, decorators: [{
|
|
800
800
|
type: Component,
|
|
801
801
|
args: [{ selector: 'seam-datatable-dynamic-filter-container', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n", styles: [":host{display:block}\n"] }]
|
|
802
802
|
}], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { filterComponent: [{
|
|
@@ -942,10 +942,10 @@ class DatatableDynamicMenuBarContentComponent {
|
|
|
942
942
|
return new ComponentPortal(manifest.component, null, injector, null);
|
|
943
943
|
}
|
|
944
944
|
}
|
|
945
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
946
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
945
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatatableDynamicMenuBarContentComponent, deps: [{ token: i1.DynamicValueHelperService }, { token: i2$1.TheSeamDynamicComponentLoader }, { token: i0.Injector }, { token: THESEAM_DATATABLE_DYNAMIC_MENUBAR_ITEM, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
946
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: DatatableDynamicMenuBarContentComponent, isStandalone: false, selector: "seam-datatable-dynamic-menu-bar-content", inputs: { def: "def" }, ngImport: i0, template: "<seam-datatable-menu-bar-row\n *ngFor=\"let row of _rows$ | async; last as isLast\"\n [class.mb-2]=\"!isLast\"\n [ngClass]=\"$any(row.cssClass)\"\n [ngStyle]=\"$any(row.styles)\"\n>\n <ng-container *ngIf=\"row.layoutType === 'tri-column'\">\n <seam-datatable-menu-bar-column-left\n *ngIf=\"row.layout?.columnLeft\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\"\n >\n <ng-container *ngIf=\"row.layout?.columnLeft?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnLeft?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-left>\n <seam-datatable-menu-bar-column-center\n *ngIf=\"row.layout?.columnCenter\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\"\n >\n <ng-container *ngIf=\"row.layout?.columnCenter?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnCenter?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-center>\n <seam-datatable-menu-bar-column-right\n *ngIf=\"row.layout?.columnRight\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\"\n >\n <ng-container *ngIf=\"row.layout?.columnRight?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnRight?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-right>\n </ng-container>\n</seam-datatable-menu-bar-row>\n", styles: [""], dependencies: [{ kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4$1.DatatableMenuBarRowComponent, selector: "seam-datatable-menu-bar-row" }, { kind: "component", type: i4$1.DatatableMenuBarColumnLeftComponent, selector: "seam-datatable-menu-bar-column-left" }, { kind: "component", type: i4$1.DatatableMenuBarColumnCenterComponent, selector: "seam-datatable-menu-bar-column-center" }, { kind: "component", type: i4$1.DatatableMenuBarColumnRightComponent, selector: "seam-datatable-menu-bar-column-right" }, { kind: "directive", type: i1$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
947
947
|
}
|
|
948
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
948
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatatableDynamicMenuBarContentComponent, decorators: [{
|
|
949
949
|
type: Component,
|
|
950
950
|
args: [{ selector: 'seam-datatable-dynamic-menu-bar-content', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<seam-datatable-menu-bar-row\n *ngFor=\"let row of _rows$ | async; last as isLast\"\n [class.mb-2]=\"!isLast\"\n [ngClass]=\"$any(row.cssClass)\"\n [ngStyle]=\"$any(row.styles)\"\n>\n <ng-container *ngIf=\"row.layoutType === 'tri-column'\">\n <seam-datatable-menu-bar-column-left\n *ngIf=\"row.layout?.columnLeft\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\"\n >\n <ng-container *ngIf=\"row.layout?.columnLeft?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnLeft?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-left>\n <seam-datatable-menu-bar-column-center\n *ngIf=\"row.layout?.columnCenter\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\"\n >\n <ng-container *ngIf=\"row.layout?.columnCenter?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnCenter?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-center>\n <seam-datatable-menu-bar-column-right\n *ngIf=\"row.layout?.columnRight\"\n [ngClass]=\"$any(row.layout).cssClass\"\n [ngStyle]=\"$any(row.layout).styles\"\n >\n <ng-container *ngIf=\"row.layout?.columnRight?.items\">\n <ng-container *ngFor=\"let item of row.layout?.columnRight?.items\">\n <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n </ng-container>\n </ng-container>\n </seam-datatable-menu-bar-column-right>\n </ng-container>\n</seam-datatable-menu-bar-row>\n" }]
|
|
951
951
|
}], ctorParameters: () => [{ type: i1.DynamicValueHelperService }, { type: i2$1.TheSeamDynamicComponentLoader }, { type: i0.Injector }, { type: undefined, decorators: [{
|
|
@@ -1049,10 +1049,10 @@ class DatatableDynamicComponent {
|
|
|
1049
1049
|
this._tmp_columns$ = this._dynamicDef.def$.pipe(map((def) => (def ? def.columns : [])));
|
|
1050
1050
|
this._tmp_rows$ = this._dynamicDef.def$.pipe(map((def) => (def ? def.rows : [])));
|
|
1051
1051
|
}
|
|
1052
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1053
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
1052
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatatableDynamicComponent, deps: [{ token: DynamicDatatableDefService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1053
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: DatatableDynamicComponent, isStandalone: false, selector: "seam-datatable-dynamic", inputs: { def: "def" }, providers: [DynamicDatatableDefService, DynamicDatatableRowActionsService], ngImport: i0, template: "<ng-container *ngIf=\"_hasDef$ | async\">\n <seam-datatable\n *ngIf=\"_options$ | async as opts\"\n class=\"w-100 h-100\"\n [columns]=\"_tmp_columns$ | async\"\n [rows]=\"_tmp_rows$ | async\"\n [virtualization]=\"opts.virtualization\"\n >\n <seam-datatable-menu-bar *ngIf=\"menuBar$ | async as menuBar\">\n <seam-datatable-dynamic-menu-bar-content\n [def]=\"menuBar\"\n ></seam-datatable-dynamic-menu-bar-content>\n </seam-datatable-menu-bar>\n <!-- <seam-datatable-menu-bar *ngIf=\"_hasFilterMenu$ | async\">\n <div class=\"d-flex flex-row pb-2\">\n <div class=\"d-flex flex-row justify-content-end flex-grow-1\">\n <seam-data-filter-search seamDatatableFilter *ngIf=\"_hasFullSearch$\"></seam-data-filter-search>\n </div>\n </div>\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex justify-content-center flex-grow-1\">\n <ng-container *ngFor=\"let r of _commonFilterMenuItems$ | async; let isFirst = first\">\n <seam-datatable-dynamic-filter-container\n [class.ml-1]=\"!isFirst\"\n [filterComponent]=\"r.component\"\n [options]=\"r.options\">\n </seam-datatable-dynamic-filter-container>\n </ng-container>\n </div>\n <seam-datatable-export-button *ngIf=\"_exporters$ | async as exporters\"\n [exporters]=\"exporters\">\n </seam-datatable-export-button>\n </div>\n </seam-datatable-menu-bar> -->\n\n <ng-template seamDatatableRowActionItem let-row>\n <seam-datatable-dynamic-action-menu\n [row]=\"row\"\n ></seam-datatable-dynamic-action-menu>\n </ng-template>\n </seam-datatable>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.DatatableComponent, selector: "seam-datatable", inputs: ["preferencesKey", "targetMarkerTemplate", "columns", "rows", "columnMode", "groupRowsBy", "groupedRows", "selected", "externalPaging", "externalSorting", "externalFiltering", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowIdentity", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "virtualization", "headerHeight", "rowHeight", "footerHeight", "scrollbarV", "scrollbarH", "dataSource", "actionItemColumnPosition", "columnFilterIcon", "columnFilterUpdateMethod", "columnFilterUpdateDebounce"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction", "actionRefreshRequest", "hiddenColumnsChange"] }, { kind: "component", type: i4$1.DatatableMenuBarComponent, selector: "seam-datatable-menu-bar" }, { kind: "directive", type: i4$1.DatatableRowActionItemDirective, selector: "[seamDatatableRowActionItem]" }, { kind: "component", type: DatatableDynamicActionMenuComponent, selector: "seam-datatable-dynamic-action-menu", inputs: ["row", "actionDefs"] }, { kind: "component", type: DatatableDynamicMenuBarContentComponent, selector: "seam-datatable-dynamic-menu-bar-content", inputs: ["def"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1054
1054
|
}
|
|
1055
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1055
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DatatableDynamicComponent, decorators: [{
|
|
1056
1056
|
type: Component,
|
|
1057
1057
|
args: [{ selector: 'seam-datatable-dynamic', providers: [DynamicDatatableDefService, DynamicDatatableRowActionsService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container *ngIf=\"_hasDef$ | async\">\n <seam-datatable\n *ngIf=\"_options$ | async as opts\"\n class=\"w-100 h-100\"\n [columns]=\"_tmp_columns$ | async\"\n [rows]=\"_tmp_rows$ | async\"\n [virtualization]=\"opts.virtualization\"\n >\n <seam-datatable-menu-bar *ngIf=\"menuBar$ | async as menuBar\">\n <seam-datatable-dynamic-menu-bar-content\n [def]=\"menuBar\"\n ></seam-datatable-dynamic-menu-bar-content>\n </seam-datatable-menu-bar>\n <!-- <seam-datatable-menu-bar *ngIf=\"_hasFilterMenu$ | async\">\n <div class=\"d-flex flex-row pb-2\">\n <div class=\"d-flex flex-row justify-content-end flex-grow-1\">\n <seam-data-filter-search seamDatatableFilter *ngIf=\"_hasFullSearch$\"></seam-data-filter-search>\n </div>\n </div>\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex justify-content-center flex-grow-1\">\n <ng-container *ngFor=\"let r of _commonFilterMenuItems$ | async; let isFirst = first\">\n <seam-datatable-dynamic-filter-container\n [class.ml-1]=\"!isFirst\"\n [filterComponent]=\"r.component\"\n [options]=\"r.options\">\n </seam-datatable-dynamic-filter-container>\n </ng-container>\n </div>\n <seam-datatable-export-button *ngIf=\"_exporters$ | async as exporters\"\n [exporters]=\"exporters\">\n </seam-datatable-export-button>\n </div>\n </seam-datatable-menu-bar> -->\n\n <ng-template seamDatatableRowActionItem let-row>\n <seam-datatable-dynamic-action-menu\n [row]=\"row\"\n ></seam-datatable-dynamic-action-menu>\n </ng-template>\n </seam-datatable>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
|
|
1058
1058
|
}], ctorParameters: () => [{ type: DynamicDatatableDefService }], propDecorators: { def: [{
|
|
@@ -1060,8 +1060,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImpor
|
|
|
1060
1060
|
}] } });
|
|
1061
1061
|
|
|
1062
1062
|
class TheSeamDatatableDynamicModule {
|
|
1063
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1064
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
1063
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamDatatableDynamicModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1064
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: TheSeamDatatableDynamicModule, declarations: [DatatableDynamicComponent,
|
|
1065
1065
|
DatatableDynamicFilterContainerComponent,
|
|
1066
1066
|
DatatableDynamicActionMenuComponent,
|
|
1067
1067
|
DatatableDynamicMenuBarContentComponent], imports: [CommonModule,
|
|
@@ -1078,7 +1078,7 @@ class TheSeamDatatableDynamicModule {
|
|
|
1078
1078
|
DatatableDynamicActionMenuItemDirective], exports: [DatatableDynamicComponent,
|
|
1079
1079
|
TheSeamDatatableModule,
|
|
1080
1080
|
DatatableDynamicActionMenuItemDirective] });
|
|
1081
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
1081
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamDatatableDynamicModule, imports: [CommonModule,
|
|
1082
1082
|
TheSeamSharedModule,
|
|
1083
1083
|
TheSeamDatatableModule,
|
|
1084
1084
|
TheSeamTableCellTypesModule,
|
|
@@ -1090,7 +1090,7 @@ class TheSeamDatatableDynamicModule {
|
|
|
1090
1090
|
TheSeamMenuModule,
|
|
1091
1091
|
TheSeamButtonsModule, TheSeamDatatableModule] });
|
|
1092
1092
|
}
|
|
1093
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1093
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamDatatableDynamicModule, decorators: [{
|
|
1094
1094
|
type: NgModule,
|
|
1095
1095
|
args: [{
|
|
1096
1096
|
declarations: [
|