{ "version": 3, "sources": ["libs/galaxy/table/src/services/column-sort.service.ts", "libs/galaxy/table/src/components/column-sort/column-sort-simple/column-sort-simple.component.ts", "libs/galaxy/table/src/components/column-sort/column-sort-simple/column-sort-simple.component.html", "libs/galaxy/table/src/components/column-sort/advanced-column-organizer/advanced-column-organizer.ts", "libs/galaxy/table/src/components/column-sort/advanced-column-organizer/advanced-column-organizer.service.ts", "libs/galaxy/table/src/components/column-sort/advanced-column-organizer/advanced-column-organizer.component.ts", "libs/galaxy/table/src/components/column-sort/advanced-column-organizer/advanced-column-organizer.component.html", "libs/galaxy/table/src/components/column-sort/advanced-column-organizer/advanced-column-organizer-button.component.ts", "libs/galaxy/table/src/components/column-sort/column-sort.component.ts", "libs/galaxy/table/src/components/column-sort/column-sort.component.html", "libs/galaxy/table/src/components/model-driven-cell/renderers/blank-value.ts", "libs/galaxy/table/src/components/model-driven-cell/renderers/boolean.ts", "libs/galaxy/table/src/components/model-driven-cell/renderers/date.ts", "libs/galaxy/table/src/components/model-driven-cell/renderers/integer.ts", "libs/galaxy/table/src/components/model-driven-cell/renderers/phone.ts", "libs/galaxy/table/src/components/model-driven-cell/renderers/tags.ts", "libs/galaxy/table/src/components/model-driven-cell/renderers/text.ts", "libs/galaxy/table/src/components/model-driven-cell/renderers/timestamp.ts", "libs/galaxy/table/src/components/model-driven-cell/renderers/float.ts", "libs/galaxy/table/src/components/model-driven-cell/model-driven-cell.component.ts", "libs/galaxy/table/src/services/table-selection.service.ts", "libs/galaxy/table/src/components/selection/selection.component.ts", "libs/galaxy/table/src/components/selection/selection.component.html", "libs/galaxy/table/src/datasource/paginator-text.ts", "libs/galaxy/table/src/datasource/datasource.ts", "libs/galaxy/table/src/services/table-search.service.ts", "libs/galaxy/table/src/components/grid-view/grid-card.directive.ts", "libs/galaxy/table/src/components/grid-view/grid-view.component.ts", "libs/galaxy/table/src/components/grid-view/grid-view.component.html", "libs/galaxy/table/src/components/grid-view/grid-min-width.directive.ts", "libs/galaxy/table/src/components/table-container/table-container.component.ts", "libs/galaxy/table/src/components/table-container/table-container.component.html", "libs/galaxy/table/src/components/table-content-footer/table-content-footer.component.ts", "libs/galaxy/table/src/components/table-content-footer/table-content-footer.component.html", "libs/galaxy/table/src/components/table-content-header/table-content-header.component.ts", "libs/galaxy/table/src/components/table-content-header/table-content-header.component.html", "libs/galaxy/table/src/components/model-driven-cell/interface.ts", "libs/galaxy/table/src/table.module.ts"], "sourcesContent": ["import { Injectable, QueryList } from '@angular/core';\nimport { MatColumnDef } from '@angular/material/table';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GalaxyColumnDef } from '../table.interface';\n\n/**\n * Service for managing which columns are displayed, and which aren't\n * A single \"table view service\" should manage saving this off to local storage, query\n * params, and any other storage option\n */\n@Injectable()\nexport class GalaxyColumnsSortService {\n // List of columns manged by this service\n columns?: GalaxyColumnDef[];\n\n // Query List of column defs we can manipulate\n columnDefs?: QueryList | MatColumnDef[];\n\n /**\n * Replay subject containing the list of columns that are managed by this service.\n */\n columns$$: ReplaySubject = new ReplaySubject(1);\n\n groupConfigs$$: ReplaySubject = new ReplaySubject(1);\n\n /**\n * Observable containing a list of IDs of columns that are visible.\n */\n visibleColumns$: Observable = this.columns$$.pipe(\n map((cols: GalaxyColumnDef[]) => {\n const flatColumns: GalaxyColumnDef[] = [];\n\n cols?.forEach((col) => {\n if (col.columns) {\n col.columns.forEach((subCol) => {\n flatColumns.push(subCol);\n });\n } else if (!col.hidden) {\n flatColumns.push(col);\n }\n });\n\n return (\n flatColumns\n // Sort by position\n .sort((colA, colB) => {\n return colA._position !== undefined && colB._position != undefined ? colA._position - colB._position : 0;\n })\n // Filter out hidden ones\n .filter((col) => !col.hidden)\n // Just the IDs\n .map((col) => col.id)\n );\n }),\n );\n\n /**\n * Update the list of columns\n * @param columns - List of columns to override the current with\n */\n setColumns(columns: GalaxyColumnDef[]): void {\n this.columns = columns;\n\n // If columns do not have positions applied, apply them now for ordering\n let position = 0;\n this.columns?.forEach((col: GalaxyColumnDef) => {\n if (col.columns) {\n col.columns.forEach((sub: GalaxyColumnDef) => {\n sub._position = position;\n position++;\n });\n } else {\n col._position = position;\n position++;\n }\n });\n\n this.updatePinnableColumns();\n if (this.columnDefs) {\n this.updateStickyColumns();\n }\n\n this.columns$$.next(columns);\n }\n\n setColumnDefs(columnDefs: QueryList | MatColumnDef[]): void {\n this.columnDefs = columnDefs;\n\n this.updateStickyColumns();\n }\n\n setGroups(groups: GalaxyColumnDef[]): void {\n this.groupConfigs$$.next(groups);\n }\n\n /**\n * Updates the list of columns to make sure they are allowed to be pinnable\n * Columns at the start or end, and touching a pinnable column, are allowed to be pinned\n */\n private updatePinnableColumns(): void {\n const flattened = this.flattenCols();\n\n const sorted = flattened.sort((a, b) => {\n return a._position && b._position ? a._position - b._position : 0;\n });\n\n // We don't care about first entry\n let startAnchor = 1;\n let anchoredToStart = true;\n // We don't care about last entry\n let endAnchor = sorted.length - 2;\n let anchoredToEnd = true;\n\n // Check to see that the pins are anchored to a start pin\n while (startAnchor < endAnchor && anchoredToStart) {\n const col = sorted[startAnchor];\n\n if (col.pinned) {\n const previousCol = sorted[startAnchor - 1];\n if (!previousCol.pinned) {\n col.pinned = false;\n }\n }\n\n if (!col.pinned) {\n anchoredToStart = false;\n break;\n }\n\n startAnchor++;\n }\n\n // Check against end anchor point, otherwise clear back to the start anchor point\n while (endAnchor > startAnchor) {\n const col = sorted[endAnchor];\n\n if (col.pinned) {\n const nextCol = sorted[endAnchor + 1];\n if (!nextCol.pinned || !anchoredToEnd) {\n col.pinned = false;\n }\n }\n\n if (!col.pinned) {\n anchoredToEnd = false;\n }\n\n endAnchor--;\n }\n }\n\n /**\n * Update columns to be sticky if the galaxy column def says it is so\n */\n private updateStickyColumns(): void {\n const flattened = this.flattenCols();\n\n flattened.forEach((col) => {\n const colDef = this.columnDefs?.find((def) => def.name === col.id);\n\n if (colDef && colDef.sticky !== col.sticky) {\n colDef.sticky = !!col.sticky;\n }\n\n if (colDef && colDef.stickyEnd !== col.stickyEnd) {\n colDef.stickyEnd = !!col.stickyEnd;\n }\n });\n }\n\n /**\n * Flatten the list of columns so that we can handle it easily\n * @returns Flattened list of columns\n */\n private flattenCols(): GalaxyColumnDef[] {\n const flattened: GalaxyColumnDef[] = [];\n this.columns?.forEach((col) => {\n if (col.columns) {\n col.columns.forEach((sub) => {\n flattened.push(sub);\n });\n } else {\n flattened.push(col);\n }\n });\n\n return flattened;\n }\n}\n", "import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { AbstractControl, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { GalaxyColumnsSortService } from '../../../services/column-sort.service';\nimport { GalaxyColumnDef } from '../../../table.interface';\n\n@Component({\n selector: 'glxy-column-sort-simple',\n templateUrl: './column-sort-simple.component.html',\n styleUrls: ['./column-sort-simple.component.scss'],\n})\nexport class ColumnSortSimpleComponent implements OnDestroy, OnChanges {\n /** List of colums to be controlled by this component */\n @Input() columns: GalaxyColumnDef[] = [];\n\n // Flattened columns to be show in UI\n columnsFlat: GalaxyColumnDef[] = [];\n\n // Used to listen for column visibility changes\n formGroup?: UntypedFormGroup;\n\n // List of subscriptions created for UI checkboxes\n controlSubs: Subscription[] = [];\n\n constructor(public colSortService: GalaxyColumnsSortService) {}\n\n ngOnDestroy(): void {\n this.controlSubs.forEach((sub) => sub.unsubscribe());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.columns.firstChange || changes.columns?.currentValue !== changes.columns?.previousValue) {\n // unsubscribe from all the old form controls\n this.controlSubs.forEach((sub) => sub.unsubscribe());\n\n this.flattenColumns();\n\n const controls: { [key: string]: AbstractControl } = {};\n\n this.columnsFlat.forEach((col: GalaxyColumnDef) => {\n controls[col.id] = new UntypedFormControl(!col.hidden);\n if (col.pinned) {\n controls[col.id].disable();\n }\n const sub = controls[col.id].valueChanges\n .pipe(distinctUntilChanged())\n .subscribe((visible) => this.updateColHidden(col, !visible));\n this.controlSubs.push(sub);\n });\n\n this.formGroup = new UntypedFormGroup(controls);\n }\n }\n\n /**\n * Flattens the list of columns for use in UI.\n * Note: we might want to pull this into a utility method\n */\n flattenColumns(): void {\n this.columnsFlat = [];\n this.columns?.forEach((col: GalaxyColumnDef) => {\n if (col.columns) {\n col.columns.forEach((subCol: GalaxyColumnDef) => {\n this.columnsFlat.push(subCol);\n });\n } else {\n this.columnsFlat.push(col);\n }\n });\n }\n\n /**\n * NOTE THAT THIS EVENT STRIPS GROUPS. We don't care about groups in simple column arrangement\n * @param event - CDK Drop event provided when we drop an element in the list, in a new position\n */\n drop(event: CdkDragDrop): void {\n // Adjust for select column being hidden\n const indexAdjust = this.columnsFlat[0].id === 'select' ? 1 : 0;\n\n moveItemInArray(this.columnsFlat, event.previousIndex + indexAdjust, event.currentIndex + indexAdjust);\n\n this.columnsFlat.forEach((col: GalaxyColumnDef, i: number) => {\n col._position = i;\n });\n\n this.colSortService.setColumns(this.columnsFlat);\n }\n\n /**\n * Confirm that we can allow the columns to be sorted when this item is droped.\n * @param index - Index of the item to work into the list\n * @returns True if the target location is not a pinned spot, and we can allow the drop\n */\n sortAgainstPinned = (index: number): boolean => {\n // Adjust for select column being hidden\n const indexAdjust = this.columnsFlat[0].id === 'select' ? 1 : 0;\n\n const target = this.columnsFlat.find((col: GalaxyColumnDef) => col._position === index + indexAdjust);\n return !target?.pinned;\n };\n\n /**\n * Update a column's visibility.\n * @param col - The column to updated\n * @param hidden - If true, this column will be hidden\n */\n updateColHidden(col: GalaxyColumnDef, hidden: boolean): void {\n col.hidden = hidden;\n this.colSortService.setColumns(this.columnsFlat);\n }\n}\n", "
\n \n
\n \n {{ col.pinned ? 'push_pin' : 'drag_indicator' }}\n \n \n {{ col.title || col.id | translate }}\n \n
\n
\n
\n", "export enum Pinned {\n PINNED_UNSET = 0,\n PINNED_LEFT = 1,\n PINNED_RIGHT = 2,\n}\n\nexport interface ColumnInfo {\n id: string;\n name: string;\n isVisible: boolean;\n pinned?: Pinned;\n}\n", "import { Injectable } from '@angular/core';\nimport { ColumnInfo, Pinned } from './advanced-column-organizer';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GalaxyColumnDef } from '../../../table.interface';\n\n@Injectable()\nexport class AdvancedColumnOrganizerService {\n private searchTerm$$ = new BehaviorSubject('');\n searchTerm$: Observable = this.searchTerm$$.asObservable();\n\n private columnDefs$$ = new BehaviorSubject([]);\n columnDefs$: Observable = this.columnDefs$$.asObservable();\n\n private groupDefs$$ = new BehaviorSubject([]);\n groupDefs$: Observable = this.groupDefs$$.asObservable();\n\n private selectedOrderedColumns$$ = new BehaviorSubject([]);\n\n selectedOrderedColumns$: Observable = this.selectedOrderedColumns$$.asObservable();\n\n columnDefsByID$: Observable<{ [id: string]: GalaxyColumnDef }>;\n selectedColumns$: Observable;\n searchedGroups$: Observable;\n pinnedLeftColumns$: Observable;\n pinnedRightColumns$: Observable;\n\n translator: TranslateService;\n\n constructor(translator: TranslateService) {\n this.translator = translator;\n this.columnDefsByID$ = this.columnDefs$.pipe(\n map((columnDefs) => {\n const columnDefsByID: { [id: string]: GalaxyColumnDef } = {};\n columnDefs.map((cd) => {\n columnDefsByID[cd.id] = cd;\n });\n return columnDefsByID;\n }),\n );\n\n this.selectedColumns$ = this.getSelectedColumns$();\n this.searchedGroups$ = this.getSearchedGroups$();\n this.pinnedLeftColumns$ = this.getPinnedLeftColumns$();\n this.pinnedRightColumns$ = this.getPinnedRightColumns$();\n }\n\n configure(colDefs: GalaxyColumnDef[], groupDefs: GalaxyColumnDef[]): void {\n colDefs = (colDefs || []).map((cd) => {\n cd.title = this.translator.instant(cd.title || cd.id);\n return cd;\n });\n groupDefs = (groupDefs || []).map((gd) => {\n gd.title = this.translator.instant(gd.title || gd.id);\n return gd;\n });\n\n this.columnDefs$$.next(colDefs || []);\n this.groupDefs$$.next(groupDefs || []);\n const selectedOrderedColumns: string[] = this.columnDefs$$.value\n .filter((c) => !c.pinned && !c.hidden)\n .map((c) => c.id);\n this.selectedOrderedColumns$$.next(selectedOrderedColumns);\n }\n\n getPinnedLeftColumns$(): Observable {\n return this.pinnedColumns$(Pinned.PINNED_LEFT);\n }\n\n getSelectedColumns$(): Observable {\n return combineLatest([this.selectedOrderedColumns$, this.columnDefsByID$]).pipe(\n map(([selectedColumnIDs, keyedColumns]): ColumnInfo[] => {\n return selectedColumnIDs.map((id: string): ColumnInfo => {\n return {\n id: id,\n name: keyedColumns[id].title || keyedColumns[id].id,\n isVisible: !keyedColumns[id]?.hidden,\n pinned: Pinned.PINNED_UNSET,\n };\n });\n }),\n );\n }\n\n getSelectedColumnsDef$(): Observable {\n return combineLatest([this.selectedOrderedColumns$, this.columnDefs$]).pipe(\n map(([selectedOrderedColumns, columnsEntry]) => {\n const pinnedColumns = new Map();\n columnsEntry.forEach((column, index) => {\n if (column.pinned) {\n pinnedColumns.set(index, column);\n }\n });\n\n const nonPinnedColumns = columnsEntry.filter((column) => !column.pinned);\n\n const sortedNonPinned = nonPinnedColumns.sort(\n (a, b) => selectedOrderedColumns.indexOf(a.id) - selectedOrderedColumns.indexOf(b.id),\n );\n\n const orderedColumns: GalaxyColumnDef[] = [];\n\n columnsEntry.forEach((column, index) => {\n if (pinnedColumns.has(index)) {\n orderedColumns[index] = pinnedColumns.get(index)!;\n } else {\n orderedColumns[index] = sortedNonPinned.shift() as GalaxyColumnDef;\n }\n });\n\n orderedColumns.forEach((column) => {\n if (!column.pinned) {\n column.hidden = !selectedOrderedColumns.includes(column.id);\n }\n });\n\n return orderedColumns;\n }),\n );\n }\n\n getPinnedRightColumns$(): Observable {\n return this.pinnedColumns$(Pinned.PINNED_RIGHT);\n }\n\n pinnedColumns$(pinSide: Pinned): Observable {\n return this.columnDefs$.pipe(\n map((columnDefs: GalaxyColumnDef[]): ColumnInfo[] => {\n const pinnedColumns = columnDefs.filter((columnDef) => {\n if (pinSide === Pinned.PINNED_LEFT) {\n return columnDef.pinned && columnDef.sticky;\n }\n if (pinSide === Pinned.PINNED_RIGHT) {\n return columnDef.pinned && columnDef.stickyEnd;\n }\n return false;\n });\n\n return pinnedColumns.map(\n (columnDef: GalaxyColumnDef): ColumnInfo => ({\n id: columnDef.id,\n name: columnDef.title || columnDef.id,\n isVisible: true,\n pinned: pinSide,\n }),\n );\n }),\n );\n }\n\n getSearchedGroups$(): Observable {\n return combineLatest([this.searchTerm$, this.columnDefsByID$, this.columnDefs$]).pipe(\n map(([searchTerm, keyedColumns]) => {\n const groupDefs: GalaxyColumnDef[] = this.groupDefs$$.getValue();\n\n const groups: GalaxyColumnDef[] = groupDefs.map((groupDef: GalaxyColumnDef): GalaxyColumnDef => {\n const filteredColumns: (GalaxyColumnDef | undefined)[] = (groupDef.columns ?? [])\n .map((columnID): GalaxyColumnDef | undefined => {\n const id = columnID?.id;\n const title = keyedColumns[id]?.title || id;\n const pinned = keyedColumns[id]?.pinned;\n\n return id ? { id, title, pinned } : undefined;\n })\n .filter((column) => !!column);\n\n return {\n id: groupDef?.id,\n title: groupDef?.title,\n columns: filteredColumns as GalaxyColumnDef[],\n };\n });\n\n return this.filterGroupsBySearchTerm(groups, searchTerm);\n }),\n );\n }\n\n updateSearchTerm(st: string): void {\n this.searchTerm$$.next(st);\n }\n\n filterGroupsBySearchTerm(groups: GalaxyColumnDef[], searchTerm: string): GalaxyColumnDef[] {\n const columnMatchesSearchTerm = (column: GalaxyColumnDef, st: string) =>\n column.title?.toLowerCase().indexOf(st.toLowerCase()) !== -1;\n if (!searchTerm) {\n return groups;\n }\n return groups\n .filter((group) => {\n return group.columns?.some((column) => columnMatchesSearchTerm(column, searchTerm));\n })\n .map(\n (group: GalaxyColumnDef): GalaxyColumnDef => ({\n ...group,\n columns: group.columns?.filter((column) => columnMatchesSearchTerm(column, searchTerm)),\n }),\n );\n }\n\n setColumnVisibility(id: string, isVisible: boolean): void {\n const cols = this.selectedOrderedColumns$$.value;\n const index = cols.indexOf(id);\n if (isVisible) {\n if (index === -1) {\n cols.push(id);\n }\n } else {\n if (index !== -1) {\n cols.splice(index, 1);\n }\n }\n this.selectedOrderedColumns$$.next(cols);\n }\n\n selectAll(columnGroup: GalaxyColumnDef): void {\n if (!columnGroup.columns) {\n return;\n }\n columnGroup.columns\n .filter((column) => !column.pinned)\n .map((column) => {\n this.setColumnVisibility(column.id, true);\n });\n }\n\n deselectAll(columnGroup: GalaxyColumnDef): void {\n if (!columnGroup.columns) {\n return;\n }\n columnGroup.columns\n .filter((column) => !column.pinned)\n .map((column) => {\n this.setColumnVisibility(column.id, false);\n });\n }\n\n columnDroppedInList(prevIndex: number, curIndex: number): void {\n const columns: string[] = this.selectedOrderedColumns$$.getValue();\n moveItemInArray(columns, prevIndex, curIndex);\n this.selectedOrderedColumns$$.next(columns);\n }\n\n getSelectedColumns(): string[] {\n return this.selectedOrderedColumns$$.value;\n }\n}\n", "import { Component, Inject, Input } from '@angular/core';\nimport { AdvancedColumnOrganizerService } from './advanced-column-organizer.service';\nimport { ColumnInfo } from './advanced-column-organizer';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { firstValueFrom, Observable, map, Subscription } from 'rxjs';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { GalaxyColumnDef } from '../../../table.interface';\nimport { UntypedFormControl } from '@angular/forms';\n\n// @dynamic\n@Component({\n selector: 'glxy-table-advanced-column',\n templateUrl: './advanced-column-organizer.component.html',\n styleUrls: ['./advanced-column-organizer.component.scss'],\n providers: [AdvancedColumnOrganizerService],\n})\nexport class AdvancedColumnOrganizerComponent {\n saveName: string;\n activeTab: string | null = null;\n selectedColumns: string[] = [];\n columnDefs: GalaxyColumnDef[] = [];\n\n @Input() advancedColumns: GalaxyColumnDef[] = [];\n\n public searchControl: UntypedFormControl = new UntypedFormControl();\n private readonly searchSubscription: Subscription;\n\n constructor(\n public advancedColumnOrganizerService: AdvancedColumnOrganizerService,\n @Inject(MAT_DIALOG_DATA)\n public dialogData: {\n saveName: string;\n columnConfigs: GalaxyColumnDef[];\n groupConfigs: GalaxyColumnDef[];\n useI18NTranslations: boolean;\n },\n public breakpointObserver: BreakpointObserver,\n public dialogRef: MatDialogRef,\n ) {\n this.saveName = dialogData.saveName;\n this.loadColumns();\n this.getActiveTab();\n this.searchSubscription = this.searchControl.valueChanges.subscribe((searchTerm) => {\n this.updateSearchTerm(searchTerm);\n });\n }\n\n ngOnDestroy(): void {\n if (this.searchSubscription) {\n this.searchSubscription.unsubscribe();\n }\n }\n\n get selectedColumns$(): Observable {\n return this.advancedColumnOrganizerService.selectedColumns$;\n }\n\n get pinnedLeftColumns$(): Observable {\n return this.advancedColumnOrganizerService.pinnedLeftColumns$;\n }\n\n get pinnedRightColumns$(): Observable {\n return this.advancedColumnOrganizerService.pinnedRightColumns$;\n }\n\n get searchedGroups$(): Observable {\n return this.advancedColumnOrganizerService.searchedGroups$;\n }\n\n updateSearchTerm(event: string): void {\n this.advancedColumnOrganizerService.updateSearchTerm(event);\n }\n\n setColumnVisibility(id: string, isVisible: boolean): void {\n this.advancedColumnOrganizerService.setColumnVisibility(id, isVisible);\n }\n\n columnDroppedInList(event: CdkDragDrop): void {\n this.advancedColumnOrganizerService.columnDroppedInList(event.item.data.columnIndex, event.currentIndex);\n }\n\n async save(): Promise {\n this.selectedColumns = this.advancedColumnOrganizerService.getSelectedColumns();\n this.columnDefs = await firstValueFrom(this.advancedColumnOrganizerService.getSelectedColumnsDef$());\n this.dialogRef.close(true);\n }\n\n loadColumns(): void {\n this.advancedColumnOrganizerService.configure(this.dialogData.columnConfigs, this.dialogData.groupConfigs);\n }\n\n selectAll(columnGroup: GalaxyColumnDef): void {\n this.advancedColumnOrganizerService.selectAll(columnGroup);\n }\n\n deselectAll(columnGroup: GalaxyColumnDef): void {\n this.advancedColumnOrganizerService.deselectAll(columnGroup);\n }\n\n onClose(): void {\n this.dialogRef.close();\n }\n\n isMobileScreen(): boolean {\n return this.breakpointObserver.isMatched('(max-width: 820px)');\n }\n\n setActiveTab(currentTab: string): void {\n sessionStorage.setItem('columnManagerCurrentTab', currentTab);\n }\n getActiveTab(): void {\n this.activeTab = sessionStorage.getItem('columnManagerCurrentTab');\n }\n isActionsColumn(column: GalaxyColumnDef): Observable {\n return this.advancedColumnOrganizerService.selectedOrderedColumns$.pipe(\n map((selectedCols) => {\n if (column.id === 'actions') {\n return true;\n }\n return selectedCols.includes(column.id);\n }),\n );\n }\n}\n", "\n

\n Manage columns\n \n close\n \n

\n\n\n \n \n
\n
\n \n
\n\n
\n \n
\n
\n
\n\n \n \n
\n \n \n
\n \n
\n
\n\n \n
\n \n
\n
\n \n
\n
\n
\n\n\n \n \n\n\n\n\n\n
\n
\n \n Search\n \n \n \n \n
\n No columns matched '{{ searchControl.value }}'. Please try another term.\n
\n
\n\n \n \n \n
\n

\n {{ columnGroup.title }}\n \n

\n
    \n \n
  • \n 0\"\n (change)=\"setColumnVisibility(column.id, $event.checked)\"\n >\n {{ column.title }}\n \n
  • \n
    \n
\n
\n
\n
\n
\n
\n
\n\n\n\n
\n
Arrange columns
\n\n
\n \n \n
\n
\n lock\n
\n
{{ column.name }}
\n
\n
\n\n \n
\n \n
\n drag_handle\n
\n\n
\n {{ columnInfo.name }}\n
\n
\n {{ columnInfo.name }}\n
\n
\n \n
\n\n
\n
\n
\n\n \n \n
\n
\n lock\n
\n
{{ column.name }}
\n
\n
\n
\n \n
\n", "import { Component, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { take } from 'rxjs/operators';\nimport { AdvancedColumnOrganizerComponent } from './advanced-column-organizer.component';\nimport { GalaxyColumnsSortService } from '../../../services/column-sort.service';\nimport { GalaxyColumnDef } from '../../../table.interface';\n\nexport interface DialogData {\n saveName: string | undefined;\n columnConfigs: GalaxyColumnDef[];\n groupConfigs: GalaxyColumnDef[];\n useI18NTranslations: boolean;\n}\n\n@Component({\n selector: 'glxy-mat-table-advanced-column-organizer-button',\n template: '',\n})\nexport class AdvancedColumnOrganizerButtonComponent {\n @Input() saveName?: string;\n @Input() columnConfigs: GalaxyColumnDef[] = [];\n @Input() groupConfigs: GalaxyColumnDef[] = [];\n @Input() useI18NTranslations?: boolean;\n\n constructor(\n private dialog: MatDialog,\n public colSortService: GalaxyColumnsSortService,\n ) {}\n\n openManager(): void {\n const dialogData: DialogData = {\n saveName: this.saveName,\n columnConfigs: this.columnConfigs,\n groupConfigs: this.groupConfigs,\n useI18NTranslations: !!this.useI18NTranslations,\n };\n const dialogRef = this.dialog.open(AdvancedColumnOrganizerComponent, {\n width: '800px',\n panelClass: 'glxy-advanced-column-organizer-panel',\n autoFocus: false,\n data: dialogData,\n });\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((save) => {\n if (save) {\n this.colSortService.setColumns(dialogRef.componentInstance.columnDefs);\n }\n });\n }\n}\n", "import { ChangeDetectionStrategy, Component, DestroyRef, Input, inject } from '@angular/core';\nimport { PopoverPositions } from '@vendasta/galaxy/popover';\nimport { GalaxyColumnsSortService } from '../../services/column-sort.service';\nimport { GalaxyColumnDef } from '../../table.interface';\nimport { startWith, Observable } from 'rxjs';\n\n@Component({\n selector: 'glxy-column-sort',\n templateUrl: './column-sort.component.html',\n styleUrls: ['./column-sort.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GalaxyColumnSortComponent {\n /** Which type of UI to display */\n @Input() type: 'simple' | 'advanced' = 'simple';\n\n /** List of columns to rearrange */\n columns$: Observable = this.colSortService.columns$$.asObservable().pipe(startWith([]));\n\n groupConfigs$: Observable = this.colSortService.groupConfigs$$?.asObservable().pipe(startWith([]));\n\n /** Whether or not the UI is open */\n isOpen = false;\n\n /** Mapping of positions for use in template */\n PopoverPositions = PopoverPositions;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(public colSortService: GalaxyColumnsSortService) {}\n}\n", "
\n \n view_column\n Columns\n \n\n \n \n \n
\n
\n \n view_column\n Columns\n \n
\n", "import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'glxy-blank-value',\n template: `
`,\n styleUrls: ['./blank-value.scss'],\n imports: [CommonModule],\n standalone: true,\n})\nexport class BlankValueComponent {}\n\n@Component({\n selector: 'glxy-blank-value-renderer',\n template: ` `,\n imports: [CommonModule, BlankValueComponent],\n standalone: true,\n})\nexport class BlankValueRendererComponent {}\n", "import { Component } from '@angular/core';\n\n@Component({\n template: `\n
\n {{ getDisplayValue() }}\n
\n \n `,\n})\nexport class BooleanRendererComponent {\n value: boolean | undefined;\n\n showBlank(): boolean {\n return !this.value === undefined;\n }\n\n getDisplayValue(): string {\n if (this.value === undefined) {\n return '-';\n }\n if (this.value) {\n return 'True';\n }\n return 'False';\n }\n}\n", "import { Component } from '@angular/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter } from '@angular/material/core';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\n\n@Component({\n template: `\n
\n {{ value | glxyDate }}\n
\n `,\n providers: [\n // for browsers with a negative GMT, the default datepicker would show the previous day\n { provide: DateAdapter, useClass: MomentDateAdapter },\n ],\n})\nexport class DateRendererComponent {\n longFormat = DateFormat.long;\n value: Date = new Date(0);\n}\n", "import { Component } from '@angular/core';\n\n@Component({\n template: `\n
\n {{ value }}\n
\n \n `,\n})\nexport class IntegerRendererComponent {\n value: number | undefined;\n}\n", "import { Component } from '@angular/core';\nimport { ParsedNumber, format, parseNumber } from 'libphonenumber-js';\n\n@Component({\n template: `\n \n \n \n
{{ value }}
\n
\n \n
\n `,\n styleUrls: ['./phone.scss'],\n})\nexport class PhoneRendererComponent {\n private _value = '';\n readonlyPhone = '';\n phoneLink = '';\n\n private setupPhoneValues(): void {\n const parsedNumber = parseNumber(this._value, {\n defaultCountry: 'US',\n });\n if (Object.keys(parsedNumber).length === 0) {\n this.readonlyPhone = '';\n this.phoneLink = '';\n return;\n }\n\n this.readonlyPhone = format(parsedNumber as ParsedNumber, 'INTERNATIONAL');\n this.phoneLink = format(parsedNumber as ParsedNumber, 'RFC3966');\n }\n\n get value(): string {\n return this._value;\n }\n set value(v: string) {\n this._value = v;\n this.setupPhoneValues();\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { BlankValueComponent } from './blank-value';\n\n@Component({\n template: `\n \n\n \n
0\">\n {{ value[0] }}\n {{ value[1] }}\n 2\" [glxyTooltip]=\"value.join(', ')\">+{{ value.length - 1 }}\n
\n
\n `,\n styleUrls: ['./tags.scss'],\n imports: [CommonModule, BlankValueComponent, GalaxyBadgeModule, GalaxyTooltipModule],\n standalone: true,\n})\nexport class TagsRendererComponent {\n value: string[] = [];\n}\n", "import { Component } from '@angular/core';\n\n@Component({\n template: `\n
\n {{ value }}\n \n {{ value }}\n \n
\n \n `,\n})\nexport class TextRendererComponent {\n value: string | undefined;\n link: string | undefined;\n}\n", "import { Component } from '@angular/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter } from '@angular/material/core';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\n\n@Component({\n template: `\n
\n {{ value | glxyDate : format }}\n
\n `,\n providers: [\n // for browsers with a negative GMT, the default datepicker would show the previous day\n { provide: DateAdapter, useClass: MomentDateAdapter },\n ],\n})\nexport class TimestampRendererComponent {\n format = DateFormat.medium;\n value: Date = new Date(0);\n}\n", "import { Component } from '@angular/core';\n\n@Component({\n selector: 'glxy-float-renderer',\n template: `\n
\n {{ value | number }}\n
\n \n `,\n})\nexport class FloatRendererComponent {\n value: number | undefined;\n}\n", "import { Component, Input, OnInit, ViewContainerRef } from '@angular/core';\nimport { CellData, CustomCellComponent } from './interface';\nimport { BlankValueRendererComponent } from './renderers/blank-value';\nimport { BooleanRendererComponent } from './renderers/boolean';\nimport { DateRendererComponent } from './renderers/date';\nimport { IntegerRendererComponent } from './renderers/integer';\nimport { PhoneRendererComponent } from './renderers/phone';\nimport { TagsRendererComponent } from './renderers/tags';\nimport { TextRendererComponent } from './renderers/text';\nimport { TimestampRendererComponent } from './renderers/timestamp';\nimport { FloatRendererComponent } from './renderers/float';\n\n@Component({\n selector: 'glxy-table-model-driven-cell',\n template: '',\n})\nexport class ModelDrivenCellComponent implements OnInit {\n @Input() cellData: CellData;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n private renderCell(): void {\n this.viewContainerRef.clear();\n const cellType = this.cellData?.cellType;\n if (cellType === 'integer') {\n const component = this.viewContainerRef.createComponent(IntegerRendererComponent);\n component.instance.value = Number(this.cellData?.value as number);\n } else if (cellType === 'float') {\n const component = this.viewContainerRef.createComponent(FloatRendererComponent);\n component.instance.value = Number(this.cellData?.value as number);\n } else if (cellType === 'date') {\n const component = this.viewContainerRef.createComponent(DateRendererComponent);\n component.instance.value = (this.cellData?.value as Date) || new Date(0);\n } else if (cellType === 'text') {\n const component = this.viewContainerRef.createComponent(TextRendererComponent);\n component.instance.value = (this.cellData?.value as string) || '';\n if (this.cellData && 'link' in this.cellData) {\n component.instance.link = this.cellData.link;\n }\n } else if (cellType === 'boolean') {\n const component = this.viewContainerRef.createComponent(BooleanRendererComponent);\n component.instance.value = Boolean(this.cellData?.value);\n } else if (cellType === 'tags') {\n const component = this.viewContainerRef.createComponent(TagsRendererComponent);\n component.instance.value = (this.cellData?.value as string[]) || new Array();\n } else if (cellType === 'phone') {\n const component = this.viewContainerRef.createComponent(PhoneRendererComponent);\n component.instance.value = (this.cellData?.value as string) || '';\n } else if (cellType === 'timestamp') {\n const component = this.viewContainerRef.createComponent(TimestampRendererComponent);\n component.instance.value = (this.cellData?.value as Date) || new Date(0);\n } else if (cellType === 'custom' && this.cellData && 'component' in this.cellData) {\n const component = this.viewContainerRef.createComponent(this.cellData.component);\n component.instance.value = this.cellData.value;\n } else {\n this.viewContainerRef.createComponent(BlankValueRendererComponent);\n }\n }\n\n ngOnInit(): void {\n this.renderCell();\n }\n}\n", "import { SelectionModel } from '@angular/cdk/collections';\nimport { computed, Injectable } from '@angular/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { filter, map, switchMap } from 'rxjs/operators';\nimport { Row } from '../components/model-driven-cell/interface';\nimport { GalaxySelectionComponent } from '../components/selection/selection.component';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\ninterface SelectionEntry {\n select: GalaxySelectionComponent;\n valueSub: Subscription | null;\n}\n\nexport type SelectionMode = 'single' | 'multiple';\n\n@Injectable()\nexport class GalaxyTableSelectionService {\n entries: SelectionEntry[] = [];\n\n private selectionMode$$ = new BehaviorSubject('multiple');\n\n multiSelection = new SelectionModel(true, [], true, GalaxyTableSelectionService.compareRows);\n singleSelection = new SelectionModel(false, [], true, GalaxyTableSelectionService.compareRows);\n\n private selectionModeSig = toSignal(this.selectionMode$$.asObservable());\n selectionModel = computed(() => {\n const mode = this.selectionModeSig();\n if (mode === 'single') {\n return this.singleSelection;\n }\n return this.multiSelection;\n });\n\n // We only want to emit what is selected, not the diffs\n selection$ = toObservable(this.selectionModel).pipe(\n switchMap((selectionModel) => {\n return selectionModel.changed.pipe(map(() => selectionModel.selected));\n }),\n );\n\n allSelected$ = toObservable(this.selectionModel).pipe(\n switchMap((selectionModel) => {\n return selectionModel.changed.pipe(\n map(() =>\n this.entries.every((entry) => (entry.select.row ? selectionModel.isSelected(entry.select.row) : false)),\n ),\n );\n }),\n );\n\n hasSelection$ = toObservable(this.selectionModel).pipe(\n switchMap((selectionModel) => {\n return selectionModel.changed.pipe(map(() => selectionModel.hasValue()));\n }),\n );\n\n static compareRows(row1: Row, row2: Row): boolean {\n if (row1?.id && row2?.id) {\n return row1.id === row2.id;\n }\n return row1 === row2;\n }\n\n private removeEntry(select: GalaxySelectionComponent): SelectionEntry {\n const index = this.entries.findIndex((entry) => entry.select === select);\n return this.entries.splice(index, 1)[0];\n }\n\n /** The \"all control\" selection has been updated */\n mainChanged(checked: boolean): void {\n if (!checked) {\n this.multiSelection.clear();\n return;\n }\n this.entries.forEach((entry) => {\n if (entry.select.row && !this.isSelected(entry.select.row)) {\n this.multiSelection.select(entry.select.row);\n }\n });\n }\n\n /**\n * Register a component and its row for selection events\n * @param selectComp - The select component to register and listen to\n */\n registerRow(selectComp: GalaxySelectionComponent): void {\n const entry: SelectionEntry = {\n select: selectComp,\n valueSub: null,\n };\n\n // register the lord of checkboxes\n if (!selectComp.row) {\n entry.valueSub = selectComp.selected$$.pipe(filter((a) => a !== null)).subscribe({\n next: (checked) => this.mainChanged(!!checked),\n });\n } else {\n entry.valueSub = selectComp.selected$$.pipe(filter((a) => a !== null)).subscribe({\n next: () => {\n if (entry.select.row) this.onSelection(entry.select.row);\n },\n });\n this.entries.push(entry);\n }\n }\n\n /**\n * Unregister a selection component and its row\n * @param selectComp - The selection component to unregister\n */\n unregisterRow(selectComp: GalaxySelectionComponent): void {\n const entry = this.removeEntry(selectComp);\n if (!entry) {\n return;\n }\n entry.valueSub?.unsubscribe();\n }\n\n isSelected(row: Row): boolean {\n if (this.selectionMode$$.value === 'single') {\n return this.singleSelection.isSelected(row);\n }\n return this.multiSelection.isSelected(row);\n }\n\n onSelection(row: Row): void {\n if (this.selectionMode$$.value === 'single') {\n this.singleSelection.toggle(row);\n return;\n }\n this.multiSelection.toggle(row);\n }\n\n clear() {\n this.singleSelection.clear();\n this.multiSelection.clear();\n }\n\n setSelectionMode(mode: SelectionMode) {\n this.selectionMode$$.next(mode);\n }\n}\n", "import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { BehaviorSubject } from 'rxjs';\nimport { GalaxyTableSelectionService } from '../../services/table-selection.service';\nimport { Row } from '../model-driven-cell/interface';\n\n// First iteration only allows for the current page to be selected\n@Component({\n selector: 'glxy-table-selection',\n templateUrl: './selection.component.html',\n})\nexport class GalaxySelectionComponent implements OnInit, OnChanges, OnDestroy {\n // If no row is present, we can assume that this is the mother of all\n // checkboxes. It controls them all\n @Input() row?: Row;\n @Input() preSelectedRows: Row[] = [];\n @Input() preSelectedLockedRows: Row[] = [];\n\n disabledRow = false;\n selected$$ = new BehaviorSubject(null);\n\n constructor(public selectionService: GalaxyTableSelectionService) {}\n\n // For now, we register when created (aka only allow for one page at a time)\n ngOnInit(): void {\n this.selectionService.registerRow(this);\n }\n\n // If the row is preselected, we disable the checkbox\n ngOnChanges(changes: SimpleChanges) {\n if (this.preSelectedLockedRows && this.row) {\n if (changes?.preSelectedLockedRows?.currentValue || changes?.row?.currentValue) {\n const matchingRow = this.preSelectedLockedRows?.some((item) => item.id === this.row?.id);\n this.disabledRow = matchingRow;\n }\n }\n if (this.preSelectedRows && this.row) {\n if (changes?.preSelectedRows?.currentValue || changes?.row?.currentValue) {\n const matchingRow = this.preSelectedRows?.some((item) => item.id === this.row?.id);\n //Only change the value if it's the matching row\n if (matchingRow) {\n this.selected$$.next(matchingRow);\n }\n }\n }\n }\n\n // For now, we unregister when destroyed (aka only allow for one page at a time)\n ngOnDestroy(): void {\n this.selectionService.unregisterRow(this);\n }\n\n onSelectChange(change: MatCheckboxChange): void {\n this.selected$$.next(change.checked);\n }\n}\n", "\n \n\n\n\n \n\n", "import { MatPaginatorIntl } from '@angular/material/paginator';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport const INDETERMINATE_MAX = Infinity;\n\nexport class GalaxyPaginatorText extends MatPaginatorIntl {\n constructor(private translate: TranslateService) {\n super();\n }\n\n // Label that goes beside the page selector\n itemsPerPageLabel = this.translate.instant('GALAXY.PAGINATION.ITEMS_PER_PAGE');\n // Lable that goes in the tooltip for the next page button\n nextPageLabel = this.translate.instant('GALAXY.PAGINATION.NEXT_PAGE');\n // Lable that goes in the tooltip for the previous page button\n previousPageLabel = this.translate.instant('GALAXY.PAGINATION.PREVIOUS_PAGE');\n\n /**\n * Contruct the label that displays how many items exist in the series, when using an endpoint that doesn't\n * provide a total items prop.\n * @param page - The current page number\n * @param pageSize - The size of the page\n * @param length - How many items exist in the entire data set\n * @returns The translated string for display number of items on the page, out of total\n * \"1 - 10 of many\", \"11-15 of 15\"\n */\n getRangeLabel = (page: number, pageSize: number, length: number): string => {\n if (length === 0 || pageSize === 0) {\n return `0 of ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n // \"Of many\" rather than of \"length\"\n return `${startIndex + 1} - ${endIndex} ${this.translate.instant('GALAXY.PAGINATION.OF')} ${\n length === INDETERMINATE_MAX ? this.translate.instant('GALAXY.PAGINATION.INDETERMINATE_AMOUNT') : length\n }`;\n };\n}\n", "import { DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable, shareReplay, Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, map, switchMap } from 'rxjs/operators';\nimport { PagedResponseInterface, PageEvent, PaginatedAPIInterface } from './datasource.interface';\nimport { INDETERMINATE_MAX } from './paginator-text';\n\ninterface State {\n pageSize?: number;\n cursor?: string;\n pageIndex?: number;\n previousPageIndex?: number;\n dataMembers?: RowType[];\n shouldRefetch?: boolean;\n loading?: boolean;\n totalDataMembers?: number;\n searchTerm?: string;\n searchFields?: string[];\n filters?: FilterType[];\n sorting?: SortType[];\n shouldClearSelection?: boolean;\n initialLoadCompleted?: boolean;\n selectAll?: boolean;\n}\n\nexport class GalaxyDataSource extends DataSource {\n private stateSubscription?: Subscription | null;\n private cursors: Record = {};\n private searchTerm = '';\n\n private state$$ = new BehaviorSubject>(this.defaultState());\n state$ = this.state$$.asObservable();\n loading$ = this.state$.pipe(map(({ loading }) => loading));\n shouldClearSelection$ = this.state$.pipe(map(({ shouldClearSelection }) => shouldClearSelection));\n totalDataMembers$ = this.state$.pipe(map(({ totalDataMembers }) => totalDataMembers));\n pageIndex$ = this.state$.pipe(map(({ pageIndex }) => pageIndex));\n dataMembers$ = this.state$.pipe(map(({ dataMembers = [] }) => dataMembers));\n selectAll$ = this.state$.pipe(map(({ selectAll }) => selectAll));\n clearSelectionOnChange = false;\n get state(): State {\n return this.state$$.getValue();\n }\n\n set state(newState: State) {\n this.state$$.next({ ...this.state, ...newState });\n }\n\n filtersApplied$: Observable = this.state$$.pipe(\n map(({ filters }) => {\n return filters ? filters.length > 0 : false;\n }),\n );\n\n constructor(private listApi: PaginatedAPIInterface) {\n super();\n }\n\n /**\n * Set the current search term and refetch data for the current page.\n * Also starts the back to page one as we can't start at a random page with new search criteria.\n * @param searchTerm - Term to search for\n */\n setSearchTerm(searchTerm: string): void {\n const state = this.state;\n this.searchTerm = searchTerm;\n\n this.state = {\n ...this.defaultState(),\n searchTerm,\n filters: state.filters,\n pageSize: state.pageSize,\n loading: true,\n shouldRefetch: true,\n selectAll: false,\n shouldClearSelection: this.clearSelectionOnChange,\n };\n }\n\n /**\n * Set the current filters term and refetch data.\n * Also starts the back to page one as we can't start at a random page with new filters criteria.\n * @param filters\n */\n setFilters(filters: FilterType[]): void {\n const state = this.state;\n this.clearCursors();\n this.state = {\n ...this.defaultState(),\n filters,\n searchTerm: state.searchTerm,\n pageSize: state.pageSize,\n loading: true,\n shouldRefetch: true,\n selectAll: false,\n shouldClearSelection: this.clearSelectionOnChange,\n };\n }\n\n /**\n * Set the current sorting term and refetch data.\n * Also starts the back to page one as we can't start at a random page with new filters criteria.\n * @param sorting\n */\n setSorting(sorting: SortType[]): void {\n this.clearCursors();\n this.state = {\n ...this.defaultState(),\n sorting,\n pageSize: this.state.pageSize,\n loading: true,\n shouldRefetch: true,\n };\n }\n\n /**\n * Triggered by the paginator, this handles page changes events, as well as page size changes.\n * @param page - Page event triggered by Paginator\n */\n pageChanged(page: PageEvent): void {\n const state = this.state;\n if (page.pageSize !== state.pageSize) {\n this.pageSizeChanged(page.pageSize);\n return;\n }\n\n // Advance to the next/previous page\n this.state = {\n ...this.state,\n shouldRefetch: true,\n pageIndex: page.pageIndex,\n loading: true,\n };\n }\n\n pageSizeChanged(pageSize: number): void {\n const state = this.state;\n\n this.state = {\n ...this.defaultState(),\n pageSize: pageSize,\n loading: true,\n shouldRefetch: true,\n // persist searching, sorting, and filtering\n searchTerm: state.searchTerm,\n searchFields: state.searchFields,\n sorting: state.sorting,\n filters: state.filters,\n };\n }\n\n clearSelection(): void {\n this.state = {\n ...this.state,\n shouldRefetch: true,\n loading: true,\n shouldClearSelection: true,\n selectAll: false,\n };\n }\n\n toggleSelectAll(): void {\n this.state = {\n ...this.state,\n selectAll: !this.state.selectAll,\n shouldClearSelection: this.state.selectAll,\n };\n }\n\n /**\n * Invoked by the paginator when it first connects to the data source.\n */\n connect(): Observable {\n // Whenever state changes and we should refetch data, call the api with the current pageSize and cursor.\n // We could consider adding a debounce or something here but our API can handle some extra requests.\n // Start the subscription here so we can unsubscribe/subscribe on disconnect/connect.\n this.stateSubscription = this.state$\n .pipe(\n filter((state) => !!state.shouldRefetch),\n distinctUntilChanged(),\n switchMap(\n ({ pageSize = this.DEFAULT_PAGE_SIZE, pageIndex = 0, searchTerm, searchFields, filters, sorting }) => {\n const cursor = this.getCursor(pageIndex, pageSize);\n const req = {\n pagingOptions: {\n pageSize,\n cursor: cursor,\n },\n searchOptions: {\n text: searchTerm?.trim() || '',\n fields: searchFields || [],\n },\n filters: filters,\n sorting: sorting,\n };\n return this.listApi.get(req);\n },\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n )\n .subscribe({\n next: (response) => this.pageDataRecieved(response),\n });\n\n return this.dataMembers$;\n }\n\n /**\n * Triggered when the paginator is cleaned up.\n */\n disconnect(): void {\n if (this.stateSubscription) {\n this.stateSubscription.unsubscribe();\n }\n }\n\n /**\n * Handle a paged response from the API\n * @param response - The paged response data\n */\n pageDataRecieved(response: PagedResponseInterface): void {\n const { pageIndex = 0, pageSize = this.DEFAULT_PAGE_SIZE } = this.state;\n // Figure out if we can determine how many pages there are\n let totalDataMembers = INDETERMINATE_MAX;\n if (response.pagingMetadata.totalResults) {\n totalDataMembers = response.pagingMetadata.totalResults;\n } else if (\n response.data.length < pageSize ||\n response.data.length === 0 ||\n response.pagingMetadata.hasMore === false\n ) {\n totalDataMembers = pageIndex * pageSize + response.data.length;\n }\n\n this.setNextCursor(pageIndex, pageSize, response.pagingMetadata.nextCursor);\n\n // This provides resiliency around frontend data changes that\n // can incur many different state changes in a single frame.\n requestAnimationFrame(() => {\n this.state = {\n ...this.state,\n totalDataMembers,\n cursor: response.pagingMetadata.nextCursor,\n dataMembers: [...response.data],\n shouldRefetch: false,\n loading: false,\n shouldClearSelection: false,\n initialLoadCompleted: true,\n };\n });\n }\n\n DEFAULT_PAGE_SIZE = 20;\n\n private defaultState(): State {\n if (this.state$$ === undefined || this.state$$.getValue().initialLoadCompleted === true) {\n return {\n pageSize: 20,\n cursor: '',\n previousPageIndex: 0,\n pageIndex: 0,\n dataMembers: [],\n shouldRefetch: true,\n loading: false,\n totalDataMembers: INDETERMINATE_MAX,\n searchTerm: this.searchTerm,\n searchFields: [],\n filters: [],\n sorting: [],\n };\n }\n return {};\n }\n\n clearCursors(): void {\n this.cursors = {};\n }\n\n getCursor(pageIndex: number, pageSize: number): string {\n return this.cursors[pageIndex * pageSize] || '';\n }\n\n getCursors(): Record {\n return this.cursors;\n }\n\n loadCursors(cursors: Record): void {\n this.cursors = cursors;\n }\n\n private setNextCursor(pageIndex: number, pageSize: number, cursor: string): void {\n const nextPageIndex = pageIndex + 1;\n this.cursors[nextPageIndex * pageSize] = cursor;\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\ninterface SearchProps {\n searchTerm: string;\n options: string[];\n}\n\n@Injectable()\nexport class GalaxyTableSearchService {\n searchTerm = '';\n options: string[] = [];\n private fields$$ = new BehaviorSubject({\n searchTerm: '',\n options: [],\n });\n fields$: Observable = this.fields$$.asObservable();\n searchTerm$: Observable = this.fields$$.pipe(\n map((fields) => fields.searchTerm),\n distinctUntilChanged(),\n );\n\n /**\n * Update search term value and propagate changes.\n * @param value - The new search term.\n */\n updateTerm(value: string): void {\n this.searchTerm = value;\n this.updateSearch();\n }\n\n /**\n * Propagate changes to consumers listening for search term and options changes.\n */\n private updateSearch(): void {\n this.fields$$.next({\n searchTerm: this.searchTerm,\n // Options are a future slice, when we have UI to support them\n options: this.options,\n });\n }\n}\n", "import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[glxyGridCard]',\n})\nexport class GalaxyGridCardDirective {\n constructor(\n public templateRef: TemplateRef,\n public viewContainerRef: ViewContainerRef,\n ) {}\n}\n", "import { Component, DestroyRef, HostBinding, inject, Input } from '@angular/core';\nimport { GalaxyDataSource } from '../../../../table';\nimport { combineLatest, Subject } from 'rxjs';\nimport { GalaxyGridCardDirective } from './grid-card.directive';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'glxy-table-grid-view, [glxy-table-grid-view]',\n templateUrl: './grid-view.component.html',\n styleUrls: ['./grid-view.component.scss'],\n})\nexport class GridViewComponent {\n @HostBinding('class') class = 'glxy-table-grid-view';\n @HostBinding('style.grid-template-columns') gridTemplateColumns =\n `repeat(auto-fill, minmax(${this.minWidth}px, 1fr))`;\n @Input()\n set minWidth(width: number) {\n this.gridTemplateColumns = 'repeat(auto-fill, minmax(' + width + 'px, 1fr))';\n }\n\n private destroyRef: DestroyRef = inject(DestroyRef);\n private _datasource?: GalaxyDataSource;\n set dataSource(dataSource: GalaxyDataSource) {\n if (dataSource) {\n this.switchDataSource(dataSource);\n }\n }\n\n private data$$ = new Subject();\n private cardDirective$$ = new Subject();\n\n @Input()\n set cardDirective(directive: GalaxyGridCardDirective) {\n if (directive) {\n this.cardDirective$$.next(directive);\n }\n }\n\n constructor() {\n combineLatest([this.data$$.asObservable(), this.cardDirective$$.asObservable()])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(([data, directive]) => {\n directive.viewContainerRef.clear();\n for (const row of data) {\n const context = {\n $implicit: row,\n };\n directive.viewContainerRef.createEmbeddedView(directive.templateRef, context);\n }\n });\n }\n\n private switchDataSource(dataSource: GalaxyDataSource) {\n this._datasource = dataSource;\n this._datasource.dataMembers$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((data: T[]) => {\n this.data$$.next(data);\n });\n }\n}\n", "\n", "import { Directive, Input } from '@angular/core';\n\nexport const GRID_MIN_CARD_WIDTH = 200;\n\n@Directive({\n selector: '[glxyGridMinCardWidth]',\n})\nexport class GalaxyGridMinCardWidthDirective {\n @Input({ transform: (value: string): number => parseInt(value) }) glxyGridMinCardWidth = GRID_MIN_CARD_WIDTH;\n}\n", "import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { Sort } from '@angular/material/sort';\nimport { MatColumnDef, MatHeaderRowDef, MatRowDef, MatTable } from '@angular/material/table';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, tap } from 'rxjs/operators';\nimport { GalaxyDataSource } from '../../datasource/datasource';\nimport { GalaxyColumnsSortService } from '../../services/column-sort.service';\nimport { GalaxyTableSearchService } from '../../services/table-search.service';\nimport { GalaxyTableSelectionService } from '../../services/table-selection.service';\nimport { GalaxyColumnDef } from '../../table.interface';\nimport { CellData, Row, RowData } from '../model-driven-cell/interface';\nimport { TableContentHeaderComponent } from '../../../../table';\nimport { GridViewComponent } from '../grid-view/grid-view.component';\nimport { GalaxyGridCardDirective } from '../grid-view/grid-card.directive';\nimport { GalaxyGridMinCardWidthDirective, GRID_MIN_CARD_WIDTH } from '../grid-view/grid-min-width.directive';\n\n// If nothing is provided, the frontend service handles everything\n@Component({\n selector: 'glxy-table-container',\n templateUrl: './table-container.component.html',\n styleUrls: ['./table-container.component.scss'],\n providers: [GalaxyTableSelectionService, GalaxyTableSearchService, GalaxyColumnsSortService],\n})\nexport class TableContainerComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n @HostBinding('class') class = 'glxy-table-container';\n\n @HostBinding('class.has-border')\n @Input()\n border = true;\n\n @HostBinding('class.glxy-table-full-width')\n @Input()\n fullWidth = false;\n\n /* Used to identify the table on a given page, when applying user settings */\n @Input() id = '';\n\n @Input({ required: true }) dataSource!: GalaxyDataSource;\n\n @Input() columns: GalaxyColumnDef[] = [];\n @Input() groupConfigs: GalaxyColumnDef[] = [];\n\n @Input() showSelection = false;\n @Input() singleSelection = false;\n\n @Input() pageSizeOptions?: number[];\n @Input() pageSize?: number;\n @Input() showFooter = true;\n\n @Output() selectionChanged: EventEmitter = new EventEmitter();\n @Output() columnsChanged: EventEmitter = new EventEmitter();\n\n @ContentChild(MatTable) table?: MatTable;\n @ContentChild(MatHeaderRowDef) headerRowDef?: MatHeaderRowDef;\n @ContentChild(MatRowDef) rowDef?: MatRowDef;\n @ContentChildren(MatColumnDef, { descendants: true }) columnDefs?: QueryList;\n private subscriptions: Subscription[] = [];\n\n @ViewChildren(MatColumnDef)\n private allMatColumnDefs?: QueryList;\n\n @ViewChild('scrollContainer', { static: false }) scrollContainer?: ElementRef;\n\n @ContentChild(forwardRef(() => TableContentHeaderComponent)) tableContentHeader?: TableContentHeaderComponent;\n currentDisplayOption: 'grid' | 'list' = 'list';\n\n @ViewChild(GridViewComponent)\n set gridView(grid: GridViewComponent) {\n if (grid) {\n grid.dataSource = this.dataSource;\n }\n }\n\n @ContentChild(GalaxyGridCardDirective)\n set setCardDirective(cardDirective: GalaxyGridCardDirective) {\n this.cardDirective = cardDirective;\n }\n cardDirective?: GalaxyGridCardDirective;\n\n @ContentChild(GalaxyGridMinCardWidthDirective)\n set setMinCardWidthDirective(minCardWidthDirective: GalaxyGridMinCardWidthDirective) {\n if (minCardWidthDirective) {\n this.gridCardMinWidth = minCardWidthDirective.glxyGridMinCardWidth;\n }\n }\n gridCardMinWidth = GRID_MIN_CARD_WIDTH;\n\n constructor(\n private columnSortService: GalaxyColumnsSortService,\n private selectionService: GalaxyTableSelectionService,\n private searchService: GalaxyTableSearchService,\n private changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['showSelection']) {\n this.updateServicesAndDatasource();\n }\n }\n\n ngOnInit(): void {\n if (this.showSelection && this.singleSelection) {\n this.selectionService.setSelectionMode('single');\n }\n const searchSub = this.searchService.searchTerm$.subscribe({\n next: (searchTerm) => {\n this.dataSource?.setSearchTerm(searchTerm);\n },\n });\n\n const selectSub = this.selectionService.selection$.subscribe({\n next: (rows: Row[]) => this.selectionChanged.emit(rows),\n });\n\n const columnSub = this.columnSortService.columns$$\n .pipe(\n filter((columns: GalaxyColumnDef[]) => columns.length > 0),\n distinctUntilChanged(),\n )\n .subscribe({\n next: (columns: GalaxyColumnDef[]) => this.columnsChanged.emit(columns),\n });\n\n const clearSelectionSub = this.dataSource.shouldClearSelection$\n .pipe(\n filter((shouldClear) => !!shouldClear),\n tap(() => {\n this.selectionService.clear();\n }),\n )\n .subscribe();\n\n const selectAllSub = this.dataSource.selectAll$\n .pipe(\n filter((selectAll) => !!selectAll),\n tap(() => {\n this.selectionService.entries.forEach((entry) => {\n if (entry.select.row && !this.selectionService.isSelected(entry.select.row)) {\n this.selectionService.multiSelection.select(entry.select.row);\n }\n });\n }),\n )\n .subscribe();\n\n this.subscriptions.push(searchSub, selectSub, columnSub, clearSelectionSub, selectAllSub);\n }\n\n ngAfterViewInit(): void {\n if (this.tableContentHeader) {\n this.tableContentHeader.displayOptionChanged.subscribe((option) => {\n this.currentDisplayOption = option;\n });\n\n this.currentDisplayOption = this.tableContentHeader.selectedDisplayOption;\n this.changeDetectorRef.detectChanges();\n }\n\n this.scrollContainer?.nativeElement.addEventListener(\n 'scroll',\n () => {\n const el = this.scrollContainer?.nativeElement;\n const scrollLeft = el.scrollLeft;\n\n // apply a class to control conditional styles if sticky columns are overlapping or not\n // left column has styles unless scrolled to the start\n if (scrollLeft >= 2) {\n el.classList.add('show-sticky-shadow');\n } else {\n el.classList.remove('show-sticky-shadow');\n }\n // right column has styles unless scrolled to end\n if (Math.abs(scrollLeft) === el.scrollWidth - el.clientWidth) {\n el.classList.remove('show-sticky-shadow-end');\n } else {\n el.classList.add('show-sticky-shadow-end');\n }\n },\n { capture: false, passive: true },\n );\n\n const viewChildrenColumnsSub = this.allMatColumnDefs?.changes.subscribe((defs) => {\n this.updateMatColumns(defs);\n });\n if (this.allMatColumnDefs) this.updateMatColumns(this.allMatColumnDefs);\n\n const colSortSub = this.columnSortService.visibleColumns$.subscribe({\n next: (displayedColumns: string[]) => {\n if (this.headerRowDef) this.headerRowDef.columns = displayedColumns;\n if (this.rowDef) this.rowDef.columns = displayedColumns;\n },\n });\n\n if (viewChildrenColumnsSub) {\n this.subscriptions.push(viewChildrenColumnsSub, colSortSub);\n }\n }\n\n private updateMatColumns(defs: QueryList): void {\n const columnDefsFiltered = defs.filter((def) => !this.columnDefs?.find((c) => c.name === def.name));\n\n // need to delete and re-add the columns,\n // since we can't easily inspect the columns inside a MatTable\n // to know which ones are model-driven or from the template using our table\n columnDefsFiltered.forEach((def) => {\n this.table?.removeColumnDef(def);\n });\n columnDefsFiltered.forEach((def: MatColumnDef) => {\n this.table?.addColumnDef(def);\n });\n\n this.updateServicesAndDatasource();\n }\n\n private updateServicesAndDatasource(): void {\n const externalColumnDefs = this.columnDefs;\n const modelDrivenColumnDefs =\n this.allMatColumnDefs?.filter((def) => !externalColumnDefs?.find((external) => external.name === def.name)) || [];\n const columnsDefs = [...(externalColumnDefs || []), ...modelDrivenColumnDefs];\n\n if (this.table) {\n this.table.dataSource = this.dataSource;\n const cols = [...(this.columns || [])];\n if (cols[0]?.id !== 'select') {\n cols.unshift({\n id: 'select',\n pinned: true,\n sticky: true,\n hidden: !this.showSelection,\n });\n }\n this.columnSortService.setColumns(cols);\n this.columnSortService.setColumnDefs(columnsDefs);\n this.columnSortService.setGroups(this.groupConfigs);\n }\n }\n\n // Searching between HTML and TS doesn't work well in IDE.\n // If it's all TS code, it's easier to find data-type usages.\n getCellData(row: RowData, columnId: string): CellData {\n return row[columnId];\n }\n\n updateSorting(sortOption: Sort): void {\n if (sortOption.direction === '') {\n this.dataSource.setSorting([]);\n return;\n }\n this.dataSource.setSorting([{ active: sortOption.active, direction: sortOption.direction }]);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n\n this.scrollContainer?.nativeElement?.removeEventListener('scroll', { capture: false });\n }\n}\n", "\n\n \n
\n \n\n \n \n {{ col.title }}\n \n \n {{ col.title }}\n \n \n \n \n \n
\n
\n \n \n \n
\n \n
\n \n
\n\n\n", "import { AfterViewInit, Component, HostBinding, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from '@angular/material/paginator';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription, combineLatest } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { GalaxyDataSource } from '../../datasource/datasource';\nimport { GalaxyPaginatorText } from '../../datasource/paginator-text';\n\nexport function useFactory(translateService: TranslateService): GalaxyPaginatorText {\n return new GalaxyPaginatorText(translateService);\n}\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [5, 10, 15];\nconst DEFAULT_PAGE_SIZE = 20;\n\ninterface CurrentCursor {\n pi: number;\n ps: number;\n c: Record;\n}\n\n@Component({\n selector: 'glxy-table-content-footer',\n templateUrl: './table-content-footer.component.html',\n styleUrls: ['./table-content-footer.component.scss'],\n providers: [\n {\n provide: MatPaginatorIntl,\n useFactory,\n deps: [TranslateService],\n },\n ],\n})\nexport class TableContentFooterComponent implements AfterViewInit, OnInit, OnDestroy {\n @HostBinding('class') class = 'glxy-table-content-footer';\n\n @Input({ required: true }) dataSource!: GalaxyDataSource;\n @Input({ required: true, transform: (v: number[] | undefined) => v ?? DEFAULT_PAGE_SIZE_OPTIONS })\n pageSizeOptions: number[] = DEFAULT_PAGE_SIZE_OPTIONS;\n\n @Input() id = '';\n\n _pageSize = DEFAULT_PAGE_SIZE;\n @Input() set pageSize(pageSize: number) {\n if (this.id) {\n const savedPageSize = localStorage.getItem(`table-${this.id}-pageSize`);\n if (savedPageSize) {\n this._pageSize = parseInt(savedPageSize, 10);\n return;\n }\n }\n this._pageSize = pageSize;\n }\n\n @ViewChild(MatPaginator) paginator?: MatPaginator;\n\n private readonly subscriptions: Subscription[] = [];\n\n constructor(private readonly router: Router, private readonly activatedRoute: ActivatedRoute) {}\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n ngOnInit(): void {\n if (this.id) {\n // Only read and write cursor to query params if we have an id\n const cursorParam = this.activatedRoute.snapshot.queryParams.cursor;\n if (cursorParam) {\n const cursor = JSON.parse(atob(cursorParam)) as CurrentCursor;\n this.dataSource.loadCursors(cursor.c);\n this.dataSource.state = {\n pageSize: cursor.ps,\n pageIndex: cursor.pi,\n shouldRefetch: true,\n };\n this._pageSize = cursor.ps;\n }\n\n this.subscriptions.push(\n combineLatest([this.activatedRoute.queryParams, this.dataSource.pageIndex$])\n .pipe(\n tap(([queryParams, pageIndex]) => {\n const newQueryParams = { ...queryParams };\n if (pageIndex) {\n const cursorParam = btoa(\n JSON.stringify({\n pi: pageIndex,\n ps: this.dataSource?.state.pageSize,\n c: this.dataSource?.getCursors(),\n } as CurrentCursor),\n );\n newQueryParams.cursor = cursorParam;\n } else {\n delete newQueryParams['cursor'];\n }\n // Note: `queryParamsHandling: 'merge'` doesn't work when multiple components are adjusting the query params\n // at the same time. Without this other components may not be able to write to the query params.\n if (queryParams.cursor === newQueryParams.cursor) {\n return;\n }\n this.router.navigate([], {\n relativeTo: this.activatedRoute,\n queryParams: newQueryParams,\n });\n }),\n )\n .subscribe(),\n );\n }\n }\n\n ngAfterViewInit(): void {\n if (this.paginator) {\n this.dataSource.state = { pageSize: this.paginator.pageSize, shouldRefetch: true };\n }\n }\n\n pageChanged(event: PageEvent): void {\n if (this.id) {\n localStorage.setItem(`table-${this.id}-pageSize`, event.pageSize.toString());\n }\n let pageIndex = event.pageIndex;\n const cursor = this.dataSource.getCursor(pageIndex, event.pageSize);\n if (!cursor && pageIndex > 0) {\n pageIndex = 0;\n }\n this.dataSource.state = { pageSize: event.pageSize, pageIndex: pageIndex, shouldRefetch: true, loading: true };\n }\n}\n", "\n\n\n", "import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n AfterViewChecked,\n Component,\n DestroyRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UntypedFormControl } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Observable, skipWhile } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { GalaxyTableSearchService } from '../../services/table-search.service';\nimport { GalaxyTableSelectionService } from '../../services/table-selection.service';\n\nconst SEARCH_TERM_DELAY = 300; // ms\n\n@Component({\n selector: 'glxy-table-content-header',\n templateUrl: './table-content-header.component.html',\n styleUrls: ['./table-content-header.component.scss'],\n providers: [],\n animations: [\n trigger('openClose', [\n state(\n 'open',\n style({\n height: '*',\n opacity: 1,\n }),\n ),\n state(\n 'closed',\n style({\n height: '0px',\n opacity: 0,\n }),\n ),\n transition('open <=> closed', [animate('0.2s')]),\n ]),\n ],\n})\nexport class TableContentHeaderComponent implements OnInit, OnChanges, AfterViewChecked {\n @HostBinding('class') class = 'glxy-table-content-header';\n\n @Input() showColumnArrange?: boolean = true;\n @Input() columnArrangeType?: 'simple' | 'advanced' = 'simple';\n @Input() showFiltersButton?: boolean = true;\n @Input() showFilters?: boolean = true;\n @Input() showFiltersOpen?: boolean = true;\n @Input() showFiltersApplied?: boolean = false;\n @Input() showSearch?: boolean = true;\n @Input() showSort?: boolean = true;\n @Input() showExport?: boolean = false;\n @Input() showActions?: boolean = true;\n @Input() saveSearchToQueryParams?: boolean = false;\n @Input() showSelectedAllCount?: boolean = false;\n @Input() showDisplayOption: boolean = false;\n @Input() selectedDisplayOption: 'grid' | 'list' = 'list';\n\n // overrides the search value with NgOnChanges\n @Input() emitSearchChange?: string;\n\n @Output() export = new EventEmitter();\n @Output() displayOptionChanged = new EventEmitter<'grid' | 'list'>();\n\n searchControl: UntypedFormControl = new UntypedFormControl();\n numSelected$?: Observable;\n\n private initialSearchTerm = '';\n private initialSearchTermSet = false;\n\n constructor(\n private searchService: GalaxyTableSearchService,\n private selectionService: GalaxyTableSelectionService,\n private destroyRef: DestroyRef,\n private readonly activatedRoute: ActivatedRoute,\n private readonly router: Router,\n ) {}\n\n ngAfterViewChecked(): void {\n if (this.initialSearchTerm && !this.initialSearchTermSet) {\n this.searchControl.setValue(this.initialSearchTerm);\n this.searchControl.updateValueAndValidity();\n this.initialSearchTermSet = true;\n }\n }\n\n ngOnInit(): void {\n if (this.saveSearchToQueryParams) {\n const searchParam = this.activatedRoute.snapshot.queryParamMap.get('search');\n if (searchParam) {\n this.initialSearchTerm = decodeURI(searchParam);\n }\n }\n\n // When the user enters a search term, update and emit.\n this.searchControl.valueChanges\n .pipe(\n skipWhile((term) => term !== this.initialSearchTerm),\n debounceTime(SEARCH_TERM_DELAY),\n distinctUntilChanged(),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe({\n next: (text: string) => {\n this.setSearchTerm(text);\n },\n });\n // When the search term is programmatically updated, update without emitting.\n this.searchService.searchTerm$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({\n next: (searchTerm) => {\n this.searchControl.setValue(searchTerm, { emitEvent: false });\n this.searchControl.updateValueAndValidity();\n },\n });\n\n this.numSelected$ = this.selectionService.selection$.pipe(map((selection) => selection.length));\n this.displayOptionChanged.emit(this.selectedDisplayOption);\n }\n\n ngOnChanges() {\n if (this.emitSearchChange) {\n this.searchControl.setValue(this.emitSearchChange);\n this.searchControl.updateValueAndValidity();\n }\n }\n\n setSearchTerm(searchTerm: string): void {\n if (this.saveSearchToQueryParams) {\n let searchParam: string | null = null;\n if (searchTerm) {\n searchParam = encodeURI(searchTerm);\n }\n this.router.navigate([], {\n relativeTo: this.activatedRoute,\n queryParams: { search: searchParam },\n queryParamsHandling: 'merge',\n });\n }\n this.searchService.updateTerm(searchTerm);\n }\n\n toggleFilterBar(): void {\n this.showFiltersOpen = !this.showFiltersOpen;\n }\n\n onChangeDisplayOption(value: 'grid' | 'list'): void {\n this.selectedDisplayOption = value;\n this.displayOptionChanged.emit(value);\n }\n}\n", "
\n
\n
\n \n \n \n filter_list\n \n \n {{ 'GALAXY.TABLE.FILTERS.TOGGLE_BUTTON' | translate }}\n \n \n \n Search\n \n \n
\n
\n \n @if (showDisplayOption) {\n \n \n grid_view\n \n \n format_list_bulleted\n \n \n }\n
\n
\n\n
\n \n \n \n cloud_download\n Export\n \n
\n
\n
\n
\n \n
\n
\n
\n
{{ numSelected }} selected →
\n
\n \n
\n \n flash_on\n Actions\n \n \n \n \n
\n\n\n", "import { Type } from '@angular/core';\n\nexport type CellData =\n | undefined\n | TextData\n | BooleanData\n | IntegerData\n | FloatData\n | DateData\n | TagsData\n | PhoneData\n | TimestampData\n | CustomCell;\n\nexport type CustomData =\n | TextData\n | BooleanData\n | IntegerData\n | FloatData\n | DateData\n | TagsData\n | PhoneData\n | TimestampData\n | CustomCell;\nexport type CustomDataValue = string | boolean | number | Date | string[] | string;\n\nexport interface TextData {\n cellType: 'text';\n value?: string;\n link?: string;\n}\n\nexport interface BooleanData {\n cellType: 'boolean';\n value?: boolean;\n}\n\nexport interface IntegerData {\n cellType: 'integer';\n value?: number;\n}\n\nexport interface FloatData {\n cellType: 'float';\n value?: number;\n}\n\nexport interface DateData {\n cellType: 'date';\n value?: Date;\n}\n\nexport interface TagsData {\n cellType: 'tags';\n value?: string[];\n}\n\nexport interface PhoneData {\n cellType: 'phone';\n value?: string;\n}\n\nexport interface TimestampData {\n cellType: 'timestamp';\n value?: Date;\n}\n\nexport abstract class CustomCellComponent {\n abstract set value(v: any);\n}\n\nexport interface CustomCell {\n cellType: 'custom';\n value?: any;\n component: Type;\n}\n\nexport interface RowData {\n [columnId: string]: CellData;\n}\n\nexport interface Row {\n id: string;\n data: RowData;\n}\n", "import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyCheckboxModule } from '@vendasta/galaxy/checkbox';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxyPopoverModule } from '@vendasta/galaxy/popover';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { ColumnSortSimpleComponent } from './components/column-sort/column-sort-simple/column-sort-simple.component';\nimport { GalaxyColumnSortComponent } from './components/column-sort/column-sort.component';\nimport { ModelDrivenCellComponent } from './components/model-driven-cell/model-driven-cell.component';\nimport { BlankValueComponent } from './components/model-driven-cell/renderers/blank-value';\nimport { BooleanRendererComponent } from './components/model-driven-cell/renderers/boolean';\nimport { DateRendererComponent } from './components/model-driven-cell/renderers/date';\nimport { IntegerRendererComponent } from './components/model-driven-cell/renderers/integer';\nimport { FloatRendererComponent } from './components/model-driven-cell/renderers/float';\nimport { PhoneRendererComponent } from './components/model-driven-cell/renderers/phone';\nimport { TextRendererComponent } from './components/model-driven-cell/renderers/text';\nimport { TimestampRendererComponent } from './components/model-driven-cell/renderers/timestamp';\nimport { GalaxySelectionComponent } from './components/selection/selection.component';\nimport { TableContainerComponent } from './components/table-container/table-container.component';\nimport { TableContentFooterComponent } from './components/table-content-footer/table-content-footer.component';\nimport { TableContentHeaderComponent } from './components/table-content-header/table-content-header.component';\nimport { AdvancedColumnOrganizerButtonComponent } from './components/column-sort/advanced-column-organizer/advanced-column-organizer-button.component';\nimport { AdvancedColumnOrganizerComponent } from './components/column-sort/advanced-column-organizer/advanced-column-organizer.component';\nimport { MatDialogActions, MatDialogContent } from '@angular/material/dialog';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatButtonToggle, MatButtonToggleGroup } from '@angular/material/button-toggle';\nimport { GridViewComponent } from './components/grid-view/grid-view.component';\nimport { GalaxyGridCardDirective } from '@vendasta/galaxy/table/src/components/grid-view/grid-card.directive';\nimport { GalaxyGridMinCardWidthDirective } from '@vendasta/galaxy/table/src/components/grid-view/grid-min-width.directive';\n\nexport { GalaxyColumnSortComponent } from './components/column-sort/column-sort.component';\nexport * from './components/model-driven-cell/interface';\nexport { BlankValueComponent } from './components/model-driven-cell/renderers/blank-value';\nexport { GalaxySelectionComponent } from './components/selection/selection.component';\nexport { TableContainerComponent } from './components/table-container/table-container.component';\nexport { TableContentHeaderComponent } from './components/table-content-header/table-content-header.component';\nexport { GalaxyDataSource } from './datasource/datasource';\nexport * from './datasource/datasource.interface';\nexport { GalaxyColumnsSortService } from './services/column-sort.service';\nexport { GalaxyColumnDef } from './table.interface';\n\nexport const MODULE_DECLARATIONS = [\n TableContainerComponent,\n TableContentHeaderComponent,\n TableContentFooterComponent,\n GalaxyColumnSortComponent,\n ColumnSortSimpleComponent,\n GalaxySelectionComponent,\n ModelDrivenCellComponent,\n DateRendererComponent,\n IntegerRendererComponent,\n FloatRendererComponent,\n TextRendererComponent,\n BooleanRendererComponent,\n PhoneRendererComponent,\n TimestampRendererComponent,\n AdvancedColumnOrganizerButtonComponent,\n AdvancedColumnOrganizerComponent,\n GridViewComponent,\n GalaxyGridCardDirective,\n GalaxyGridMinCardWidthDirective,\n];\n\nexport const MODULE_IMPORTS = [\n CommonModule,\n GalaxyInputModule,\n GalaxyCheckboxModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n GalaxyCheckboxModule,\n FormsModule,\n ReactiveFormsModule,\n GalaxyPopoverModule,\n DragDropModule,\n MatCheckboxModule,\n TranslateModule,\n MatPaginatorModule,\n MatTableModule,\n RouterModule,\n GalaxyTooltipModule,\n GalaxyPipesModule,\n BlankValueComponent,\n GalaxyFormFieldModule,\n GalaxyLoadingSpinnerModule,\n MatSortModule,\n MatDialogContent,\n MatDialogActions,\n MatIconModule,\n MatTabsModule,\n MatDialogActions,\n MatCheckboxModule,\n MatButtonToggleGroup,\n MatButtonToggle,\n];\n\nexport const MODULE_EXPORTS = [\n TableContainerComponent,\n TableContentHeaderComponent,\n GalaxySelectionComponent,\n GalaxyColumnSortComponent,\n GridViewComponent,\n GalaxyGridCardDirective,\n GalaxyGridMinCardWidthDirective,\n];\n\n@NgModule({\n declarations: MODULE_DECLARATIONS,\n imports: [MODULE_IMPORTS],\n exports: MODULE_EXPORTS,\n})\nexport class GalaxyTableModule {}\n"], "mappings": "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", "names": ["GalaxyColumnsSortService", "constructor", "columns$$", "ReplaySubject", "groupConfigs$$", "visibleColumns$", "pipe", "map", "cols", "flatColumns", "forEach", "col", "columns", "subCol", "push", "hidden", "sort", "colA", "colB", "_position", "undefined", "filter", "id", "setColumns", "position", "sub", "updatePinnableColumns", "columnDefs", "updateStickyColumns", "next", "setColumnDefs", "setGroups", "groups", "sorted", "flattenCols", "a", "b", "startAnchor", "anchoredToStart", "endAnchor", "length", "anchoredToEnd", "pinned", "colDef", "find", "def", "name", "sticky", "stickyEnd", "flattened", "factory", "\u0275fac", "_GalaxyColumnsSortService", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "col_r1", "pinned", "ctx_r1", "formGroup", "controls", "id", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "title", "\u0275\u0275template", "ColumnSortSimpleComponent_ng_container_1_div_1_glxy_checkbox_3_Template", "\u0275\u0275elementContainerStart", "ColumnSortSimpleComponent_ng_container_1_div_1_Template", "ColumnSortSimpleComponent", "constructor", "colSortService", "columns", "columnsFlat", "controlSubs", "sortAgainstPinned", "index", "indexAdjust", "find", "col", "_position", "ngOnDestroy", "forEach", "sub", "unsubscribe", "ngOnChanges", "changes", "firstChange", "currentValue", "previousValue", "flattenColumns", "UntypedFormControl", "hidden", "disable", "valueChanges", "pipe", "distinctUntilChanged", "subscribe", "visible", "updateColHidden", "push", "UntypedFormGroup", "subCol", "drop", "event", "moveItemInArray", "previousIndex", "currentIndex", "i", "setColumns", "\u0275\u0275directiveInject", "GalaxyColumnsSortService", "selectors", "inputs", "features", "\u0275\u0275NgOnChangesFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275listener", "$event", "ColumnSortSimpleComponent_ng_container_1_Template", "_ColumnSortSimpleComponent", "Pinned", "AdvancedColumnOrganizerService", "constructor", "translator", "searchTerm$$", "BehaviorSubject", "searchTerm$", "asObservable", "columnDefs$$", "columnDefs$", "groupDefs$$", "groupDefs$", "selectedOrderedColumns$$", "selectedOrderedColumns$", "columnDefsByID$", "pipe", "map", "columnDefs", "columnDefsByID", "cd", "id", "selectedColumns$", "getSelectedColumns$", "searchedGroups$", "getSearchedGroups$", "pinnedLeftColumns$", "getPinnedLeftColumns$", "pinnedRightColumns$", "getPinnedRightColumns$", "configure", "colDefs", "groupDefs", "title", "instant", "gd", "next", "selectedOrderedColumns", "value", "filter", "c", "pinned", "hidden", "pinnedColumns$", "Pinned", "PINNED_LEFT", "combineLatest", "selectedColumnIDs", "keyedColumns", "name", "isVisible", "PINNED_UNSET", "getSelectedColumnsDef$", "columnsEntry", "pinnedColumns", "Map", "forEach", "column", "index", "set", "sortedNonPinned", "sort", "a", "b", "indexOf", "orderedColumns", "has", "get", "shift", "includes", "PINNED_RIGHT", "pinSide", "columnDef", "sticky", "stickyEnd", "searchTerm", "groups", "getValue", "groupDef", "filteredColumns", "columns", "columnID", "undefined", "filterGroupsBySearchTerm", "updateSearchTerm", "st", "columnMatchesSearchTerm", "toLowerCase", "group", "some", "__spreadProps", "__spreadValues", "setColumnVisibility", "cols", "push", "splice", "selectAll", "columnGroup", "deselectAll", "columnDroppedInList", "prevIndex", "curIndex", "moveItemInArray", "getSelectedColumns", "\u0275\u0275inject", "TranslateService", "factory", "\u0275fac", "_AdvancedColumnOrganizerService", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "onClose", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275elementContainer", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "AdvancedColumnOrganizerComponent_ng_container_4_ng_container_3_Template", "AdvancedColumnOrganizerComponent_ng_container_4_ng_container_5_Template", "\u0275\u0275advance", "\u0275\u0275property", "filtered_checkablelist_r4", "filtered_dragable_list_r5", "$event", "_r6", "setActiveTab", "index", "toString", "AdvancedColumnOrganizerComponent_ng_container_5_ng_container_5_Template", "AdvancedColumnOrganizerComponent_ng_container_5_ng_container_8_Template", "activeTab", "\u0275\u0275textInterpolate1", "searchControl", "value", "AdvancedColumnOrganizerComponent_ng_template_11_ng_container_6_div_1_Template", "searchedGroups_r7", "length", "column_r11", "_r10", "$implicit", "setColumnVisibility", "id", "checked", "\u0275\u0275pipeBind1", "isActionsColumn", "pinned", "title", "_r8", "columnGroup_r9", "selectAll", "deselectAll", "AdvancedColumnOrganizerComponent_ng_template_11_ng_container_8_ng_container_1_ng_container_11_Template", "columns", "AdvancedColumnOrganizerComponent_ng_template_11_ng_container_8_ng_container_1_Template", "\u0275\u0275element", "AdvancedColumnOrganizerComponent_ng_template_11_ng_container_6_Template", "AdvancedColumnOrganizerComponent_ng_template_11_ng_container_8_Template", "searchedGroups$", "\u0275\u0275textInterpolate", "column_r12", "name", "AdvancedColumnOrganizerComponent_ng_template_13_ng_container_4_div_1_Template", "columnInfo_r14", "_r13", "columnDroppedInList", "AdvancedColumnOrganizerComponent_ng_template_13_div_7_div_4_Template", "AdvancedColumnOrganizerComponent_ng_template_13_div_7_div_5_Template", "AdvancedColumnOrganizerComponent_ng_template_13_div_7_div_10_Template", "\u0275\u0275pureFunction2", "_c0", "i_r15", "isMobileScreen", "column_r16", "AdvancedColumnOrganizerComponent_ng_template_13_ng_container_9_div_1_Template", "AdvancedColumnOrganizerComponent_ng_template_13_ng_container_4_Template", "AdvancedColumnOrganizerComponent_ng_template_13_div_7_Template", "AdvancedColumnOrganizerComponent_ng_template_13_ng_container_9_Template", "pinnedLeftColumns$", "selectedColumns$", "pinnedRightColumns$", "AdvancedColumnOrganizerComponent", "constructor", "advancedColumnOrganizerService", "dialogData", "breakpointObserver", "dialogRef", "selectedColumns", "columnDefs", "advancedColumns", "UntypedFormControl", "saveName", "loadColumns", "getActiveTab", "searchSubscription", "valueChanges", "subscribe", "searchTerm", "updateSearchTerm", "ngOnDestroy", "unsubscribe", "event", "isVisible", "item", "data", "columnIndex", "currentIndex", "save", "__async", "getSelectedColumns", "firstValueFrom", "getSelectedColumnsDef$", "close", "configure", "columnConfigs", "groupConfigs", "columnGroup", "isMatched", "currentTab", "sessionStorage", "setItem", "getItem", "column", "selectedOrderedColumns$", "pipe", "map", "selectedCols", "includes", "\u0275\u0275directiveInject", "AdvancedColumnOrganizerService", "MAT_DIALOG_DATA", "BreakpointObserver", "MatDialogRef", "selectors", "inputs", "features", "\u0275\u0275ProvidersFeature", "decls", "vars", "consts", "template", "rf", "ctx", "AdvancedColumnOrganizerComponent_button_2_Template", "AdvancedColumnOrganizerComponent_ng_container_4_Template", "AdvancedColumnOrganizerComponent_ng_container_5_Template", "i0", "_r1", "AdvancedColumnOrganizerComponent_ng_template_11_Template", "\u0275\u0275templateRefExtractor", "AdvancedColumnOrganizerComponent_ng_template_13_Template", "_AdvancedColumnOrganizerComponent", "AdvancedColumnOrganizerButtonComponent", "constructor", "dialog", "colSortService", "columnConfigs", "groupConfigs", "openManager", "dialogData", "saveName", "useI18NTranslations", "dialogRef", "open", "AdvancedColumnOrganizerComponent", "width", "panelClass", "autoFocus", "data", "afterClosed", "pipe", "take", "subscribe", "save", "setColumns", "componentInstance", "columnDefs", "\u0275\u0275directiveInject", "MatDialog", "GalaxyColumnsSortService", "selectors", "inputs", "ngContentSelectors", "_c0", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275projection", "\u0275\u0275elementEnd", "_AdvancedColumnOrganizerButtonComponent", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "isOpen", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275advance", "\u0275\u0275property", "simpleSort_r3", "\u0275\u0275pureFunction1", "_c0", "PopoverPositions", "BottomRight", "\u0275\u0275pipeBind1", "columns$", "groupConfigs$", "GalaxyColumnSortComponent", "constructor", "colSortService", "type", "columns$$", "asObservable", "pipe", "startWith", "groupConfigs$$", "destroyRef", "inject", "DestroyRef", "\u0275\u0275directiveInject", "GalaxyColumnsSortService", "selectors", "inputs", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "GalaxyColumnSortComponent_div_0_Template", "GalaxyColumnSortComponent_div_1_Template", "_GalaxyColumnSortComponent", "BlankValueComponent", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "CommonModule", "styles", "_BlankValueComponent", "BlankValueRendererComponent", "\u0275\u0275element", "encapsulation", "_BlankValueRendererComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "getDisplayValue", "\u0275\u0275element", "BooleanRendererComponent", "showBlank", "value", "undefined", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "BooleanRendererComponent_div_0_Template", "BooleanRendererComponent_glxy_blank_value_1_Template", "\u0275\u0275property", "_BooleanRendererComponent", "DateRendererComponent", "constructor", "longFormat", "DateFormat", "long", "value", "Date", "selectors", "features", "\u0275\u0275ProvidersFeature", "provide", "DateAdapter", "useClass", "MomentDateAdapter", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "\u0275\u0275pipeBind2", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "_DateRendererComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "value", "\u0275\u0275element", "IntegerRendererComponent", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "IntegerRendererComponent_div_0_Template", "IntegerRendererComponent_glxy_blank_value_1_Template", "\u0275\u0275property", "_IntegerRendererComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "ctx_r0", "phoneLink", "\u0275\u0275sanitizeUrl", "\u0275\u0275textInterpolate1", "readonlyPhone", "\u0275\u0275elementContainerStart", "\u0275\u0275textInterpolate", "value", "\u0275\u0275element", "\u0275\u0275template", "PhoneRendererComponent_ng_template_1_ng_container_0_Template", "PhoneRendererComponent_ng_template_1_glxy_blank_value_1_Template", "PhoneRendererComponent", "constructor", "_value", "setupPhoneValues", "parsedNumber", "parseNumber", "defaultCountry", "Object", "keys", "length", "format", "v", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "PhoneRendererComponent_div_0_Template", "PhoneRendererComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "noPhoneLink_r2", "_PhoneRendererComponent", "\u0275\u0275element", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "ctx_r0", "value", "join", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275textInterpolate1", "length", "\u0275\u0275template", "TagsRendererComponent_ng_template_1_div_0_glxy_badge_3_Template", "TagsRendererComponent_ng_template_1_div_0_glxy_badge_4_Template", "TagsRendererComponent_ng_template_1_div_0_Template", "TagsRendererComponent", "constructor", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "TagsRendererComponent_glxy_blank_value_0_Template", "TagsRendererComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "hasTags_r2", "CommonModule", "NgIf", "BlankValueComponent", "GalaxyBadgeModule", "BadgeComponent", "GalaxyTooltipModule", "GalaxyTooltipDirective", "styles", "_TagsRendererComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "ctx_r0", "link", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "value", "\u0275\u0275textInterpolate1", "\u0275\u0275template", "TextRendererComponent_div_0_a_1_Template", "TextRendererComponent_div_0_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "val_r2", "\u0275\u0275element", "TextRendererComponent", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "TextRendererComponent_div_0_Template", "TextRendererComponent_glxy_blank_value_1_Template", "_TextRendererComponent", "TimestampRendererComponent", "constructor", "format", "DateFormat", "medium", "value", "Date", "selectors", "features", "\u0275\u0275ProvidersFeature", "provide", "DateAdapter", "useClass", "MomentDateAdapter", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind2", "_TimestampRendererComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "ctx_r0", "value", "\u0275\u0275element", "FloatRendererComponent", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "FloatRendererComponent_div_0_Template", "FloatRendererComponent_glxy_blank_value_1_Template", "\u0275\u0275property", "_FloatRendererComponent", "ModelDrivenCellComponent", "constructor", "viewContainerRef", "renderCell", "clear", "cellType", "cellData", "component", "createComponent", "IntegerRendererComponent", "instance", "value", "Number", "FloatRendererComponent", "DateRendererComponent", "Date", "TextRendererComponent", "link", "BooleanRendererComponent", "Boolean", "TagsRendererComponent", "Array", "PhoneRendererComponent", "TimestampRendererComponent", "BlankValueRendererComponent", "ngOnInit", "\u0275\u0275directiveInject", "ViewContainerRef", "selectors", "inputs", "decls", "vars", "template", "rf", "ctx", "\u0275\u0275elementContainer", "_ModelDrivenCellComponent", "GalaxyTableSelectionService", "constructor", "entries", "selectionMode$$", "BehaviorSubject", "multiSelection", "SelectionModel", "compareRows", "singleSelection", "selectionModeSig", "toSignal", "asObservable", "selectionModel", "computed", "selection$", "toObservable", "pipe", "switchMap", "changed", "map", "selected", "allSelected$", "every", "entry", "select", "row", "isSelected", "hasSelection$", "hasValue", "row1", "row2", "id", "removeEntry", "index", "findIndex", "splice", "mainChanged", "checked", "clear", "forEach", "registerRow", "selectComp", "valueSub", "selected$$", "filter", "a", "subscribe", "next", "onSelection", "push", "unregisterRow", "unsubscribe", "value", "toggle", "setSelectionMode", "mode", "factory", "\u0275fac", "_GalaxyTableSelectionService", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "onSelectChange", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "selectionService", "isSelected", "row", "disabledRow", "_r3", "\u0275\u0275pipeBind1", "hasSelection$", "allSelected$", "GalaxySelectionComponent", "constructor", "preSelectedRows", "preSelectedLockedRows", "selected$$", "BehaviorSubject", "ngOnInit", "registerRow", "ngOnChanges", "changes", "currentValue", "matchingRow", "some", "item", "id", "next", "ngOnDestroy", "unregisterRow", "change", "checked", "\u0275\u0275directiveInject", "GalaxyTableSelectionService", "selectors", "inputs", "features", "\u0275\u0275NgOnChangesFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "GalaxySelectionComponent_ng_container_0_Template", "GalaxySelectionComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "mainCheckbox_r4", "_GalaxySelectionComponent", "INDETERMINATE_MAX", "Infinity", "GalaxyPaginatorText", "MatPaginatorIntl", "constructor", "translate", "itemsPerPageLabel", "instant", "nextPageLabel", "previousPageLabel", "getRangeLabel", "page", "pageSize", "length", "Math", "max", "startIndex", "endIndex", "min", "GalaxyDataSource", "DataSource", "state", "state$$", "getValue", "newState", "next", "__spreadValues", "constructor", "listApi", "cursors", "searchTerm", "BehaviorSubject", "defaultState", "state$", "asObservable", "loading$", "pipe", "map", "loading", "shouldClearSelection$", "shouldClearSelection", "totalDataMembers$", "totalDataMembers", "pageIndex$", "pageIndex", "dataMembers$", "dataMembers", "selectAll$", "selectAll", "clearSelectionOnChange", "filtersApplied$", "filters", "length", "DEFAULT_PAGE_SIZE", "setSearchTerm", "__spreadProps", "pageSize", "shouldRefetch", "setFilters", "clearCursors", "setSorting", "sorting", "pageChanged", "page", "pageSizeChanged", "searchFields", "clearSelection", "toggleSelectAll", "connect", "stateSubscription", "filter", "distinctUntilChanged", "switchMap", "cursor", "getCursor", "req", "pagingOptions", "searchOptions", "text", "trim", "fields", "get", "shareReplay", "refCount", "bufferSize", "subscribe", "response", "pageDataRecieved", "disconnect", "unsubscribe", "INDETERMINATE_MAX", "pagingMetadata", "totalResults", "data", "hasMore", "setNextCursor", "nextCursor", "requestAnimationFrame", "initialLoadCompleted", "undefined", "previousPageIndex", "getCursors", "loadCursors", "nextPageIndex", "GalaxyTableSearchService", "constructor", "searchTerm", "options", "fields$$", "BehaviorSubject", "fields$", "asObservable", "searchTerm$", "pipe", "map", "fields", "distinctUntilChanged", "updateTerm", "value", "updateSearch", "next", "factory", "\u0275fac", "_GalaxyTableSearchService", "GalaxyGridCardDirective", "constructor", "templateRef", "viewContainerRef", "\u0275\u0275directiveInject", "TemplateRef", "ViewContainerRef", "selectors", "_GalaxyGridCardDirective", "GridViewComponent", "minWidth", "width", "gridTemplateColumns", "dataSource", "switchDataSource", "cardDirective", "directive", "cardDirective$$", "next", "constructor", "class", "destroyRef", "inject", "DestroyRef", "data$$", "Subject", "combineLatest", "asObservable", "pipe", "takeUntilDestroyed", "subscribe", "data", "viewContainerRef", "clear", "row", "context", "$implicit", "createEmbeddedView", "templateRef", "_datasource", "dataMembers$", "selectors", "hostVars", "hostBindings", "rf", "ctx", "\u0275\u0275classMap", "\u0275\u0275styleProp", "\u0275\u0275projection", "_GridViewComponent", "GRID_MIN_CARD_WIDTH", "GalaxyGridMinCardWidthDirective", "constructor", "glxyGridMinCardWidth", "selectors", "inputs", "\u0275\u0275InputFlags", "HasDecoratorInputTransform", "value", "parseInt", "features", "\u0275\u0275InputTransformsFeature", "_GalaxyGridMinCardWidthDirective", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "col_r2", "title", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "TableContainerComponent_ng_container_7_ng_container_1_th_1_Template", "TableContainerComponent_ng_container_7_ng_template_2_th_0_Template", "\u0275\u0275element", "\u0275\u0275property", "ctx_r3", "getCellData", "row_r3", "data", "id", "TableContainerComponent_ng_container_7_ng_container_1_Template", "TableContainerComponent_ng_container_7_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "TableContainerComponent_ng_container_7_td_4_Template", "sortable", "noSort_r5", "dataSource", "pageSizeOptions", "pageSize", "TableContainerComponent", "gridView", "grid", "setCardDirective", "cardDirective", "setMinCardWidthDirective", "minCardWidthDirective", "gridCardMinWidth", "glxyGridMinCardWidth", "constructor", "columnSortService", "selectionService", "searchService", "changeDetectorRef", "class", "border", "fullWidth", "columns", "groupConfigs", "showSelection", "singleSelection", "showFooter", "selectionChanged", "EventEmitter", "columnsChanged", "subscriptions", "currentDisplayOption", "GRID_MIN_CARD_WIDTH", "ngOnChanges", "changes", "updateServicesAndDatasource", "ngOnInit", "setSelectionMode", "searchSub", "searchTerm$", "subscribe", "next", "searchTerm", "setSearchTerm", "selectSub", "selection$", "rows", "emit", "columnSub", "columns$$", "pipe", "filter", "length", "distinctUntilChanged", "clearSelectionSub", "shouldClearSelection$", "shouldClear", "tap", "clear", "selectAllSub", "selectAll$", "selectAll", "entries", "forEach", "entry", "select", "row", "isSelected", "multiSelection", "push", "ngAfterViewInit", "tableContentHeader", "displayOptionChanged", "option", "selectedDisplayOption", "detectChanges", "scrollContainer", "nativeElement", "addEventListener", "el", "scrollLeft", "classList", "add", "remove", "Math", "abs", "scrollWidth", "clientWidth", "capture", "passive", "viewChildrenColumnsSub", "allMatColumnDefs", "defs", "updateMatColumns", "colSortSub", "visibleColumns$", "displayedColumns", "headerRowDef", "rowDef", "columnDefsFiltered", "def", "columnDefs", "find", "c", "name", "table", "removeColumnDef", "addColumnDef", "externalColumnDefs", "modelDrivenColumnDefs", "external", "columnsDefs", "cols", "unshift", "pinned", "sticky", "hidden", "setColumns", "setColumnDefs", "setGroups", "columnId", "updateSorting", "sortOption", "direction", "setSorting", "active", "ngOnDestroy", "sub", "unsubscribe", "removeEventListener", "\u0275\u0275directiveInject", "GalaxyColumnsSortService", "GalaxyTableSelectionService", "GalaxyTableSearchService", "ChangeDetectorRef", "selectors", "contentQueries", "rf", "ctx", "dirIndex", "MatTable", "MatHeaderRowDef", "MatRowDef", "TableContentHeaderComponent", "GalaxyGridCardDirective", "GalaxyGridMinCardWidthDirective", "MatColumnDef", "GridViewComponent", "\u0275\u0275classMap", "\u0275\u0275classProp", "\u0275\u0275NgOnChangesFeature", "ngContentSelectors", "_c2", "decls", "vars", "consts", "template", "\u0275\u0275projection", "\u0275\u0275listener", "$event", "i0", "\u0275\u0275restoreView", "_r1", "\u0275\u0275resetView", "TableContainerComponent_ng_container_7_Template", "TableContainerComponent_div_11_Template", "TableContainerComponent_glxy_table_content_footer_13_Template", "\u0275\u0275pureFunction1", "_c3", "\u0275\u0275pipeBind1", "loading$", "_TableContainerComponent", "useFactory", "translateService", "GalaxyPaginatorText", "DEFAULT_PAGE_SIZE_OPTIONS", "DEFAULT_PAGE_SIZE", "TableContentFooterComponent", "pageSize", "id", "savedPageSize", "localStorage", "getItem", "_pageSize", "parseInt", "constructor", "router", "activatedRoute", "class", "pageSizeOptions", "subscriptions", "ngOnDestroy", "forEach", "sub", "unsubscribe", "ngOnInit", "cursorParam", "snapshot", "queryParams", "cursor", "JSON", "parse", "atob", "dataSource", "loadCursors", "c", "state", "ps", "pageIndex", "pi", "shouldRefetch", "push", "combineLatest", "pageIndex$", "pipe", "tap", "newQueryParams", "__spreadValues", "btoa", "stringify", "getCursors", "navigate", "relativeTo", "subscribe", "ngAfterViewInit", "paginator", "pageChanged", "event", "setItem", "toString", "getCursor", "loading", "\u0275\u0275directiveInject", "Router", "ActivatedRoute", "selectors", "viewQuery", "rf", "ctx", "MatPaginator", "\u0275\u0275classMap", "v", "features", "\u0275\u0275ProvidersFeature", "provide", "MatPaginatorIntl", "deps", "TranslateService", "\u0275\u0275InputTransformsFeature", "decls", "vars", "consts", "template", "\u0275\u0275elementStart", "\u0275\u0275listener", "$event", "\u0275\u0275elementEnd", "\u0275\u0275property", "tmp_2_0", "\u0275\u0275pipeBind1", "totalDataMembers$", "undefined", "loading$", "_TableContentFooterComponent", "\u0275\u0275element", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "toggleFilterBar", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275template", "TableContentHeaderComponent_ng_container_3_button_1_span_4_Template", "\u0275\u0275property", "\u0275\u0275pureFunction1", "_c2", "showFiltersOpen", "\u0275\u0275advance", "showFiltersApplied", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275elementContainerStart", "TableContentHeaderComponent_ng_container_3_button_1_Template", "showFiltersButton", "customFilterButton_r3", "searchControl", "$event", "_r4", "onChangeDisplayOption", "value", "selectedDisplayOption", "columnArrangeType", "_r5", "export", "emit", "\u0275\u0275projection", "\u0275\u0275textInterpolate1", "numSelected_r6", "TableContentHeaderComponent_div_13_div_1_Template", "showSelectedAllCount", "actionsMenu_r7", "SEARCH_TERM_DELAY", "TableContentHeaderComponent", "constructor", "searchService", "selectionService", "destroyRef", "activatedRoute", "router", "class", "showColumnArrange", "showFilters", "showSearch", "showSort", "showExport", "showActions", "saveSearchToQueryParams", "showDisplayOption", "EventEmitter", "displayOptionChanged", "UntypedFormControl", "initialSearchTerm", "initialSearchTermSet", "ngAfterViewChecked", "setValue", "updateValueAndValidity", "ngOnInit", "searchParam", "snapshot", "queryParamMap", "get", "decodeURI", "valueChanges", "pipe", "skipWhile", "term", "debounceTime", "distinctUntilChanged", "takeUntilDestroyed", "subscribe", "next", "text", "setSearchTerm", "searchTerm$", "searchTerm", "emitEvent", "numSelected$", "selection$", "map", "selection", "length", "ngOnChanges", "emitSearchChange", "encodeURI", "navigate", "relativeTo", "queryParams", "search", "queryParamsHandling", "updateTerm", "\u0275\u0275directiveInject", "GalaxyTableSearchService", "GalaxyTableSelectionService", "DestroyRef", "ActivatedRoute", "Router", "selectors", "hostVars", "hostBindings", "rf", "ctx", "\u0275\u0275classMap", "\u0275\u0275NgOnChangesFeature", "ngContentSelectors", "_c1", "decls", "vars", "consts", "template", "TableContentHeaderComponent_ng_container_3_Template", "TableContentHeaderComponent_glxy_form_field_4_Template", "TableContentHeaderComponent_Conditional_7_Template", "TableContentHeaderComponent_button_9_Template", "TableContentHeaderComponent_glxy_column_sort_10_Template", "TableContentHeaderComponent_button_11_Template", "TableContentHeaderComponent_div_12_Template", "TableContentHeaderComponent_div_13_Template", "TableContentHeaderComponent_ng_template_15_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275conditional", "trigger", "state", "style", "height", "opacity", "transition", "animate", "_TableContentHeaderComponent", "CustomCellComponent", "GalaxyTableModule", "CommonModule", "GalaxyInputModule", "GalaxyCheckboxModule", "MatButtonModule", "MatIconModule", "MatMenuModule", "FormsModule", "ReactiveFormsModule", "GalaxyPopoverModule", "DragDropModule", "MatCheckboxModule", "TranslateModule", "MatPaginatorModule", "MatTableModule", "RouterModule", "GalaxyTooltipModule", "GalaxyPipesModule", "BlankValueComponent", "GalaxyFormFieldModule", "GalaxyLoadingSpinnerModule", "MatSortModule", "MatTabsModule", "MatButtonToggle", "_GalaxyTableModule", "TableContainerComponent", "NgClass", "NgForOf", "NgIf", "MatHeaderCellDef", "MatColumnDef", "MatCellDef", "MatHeaderCell", "MatCell", "LoadingSpinnerComponent", "MatSort", "MatSortHeader", "TableContentFooterComponent", "ModelDrivenCellComponent", "GridViewComponent", "AsyncPipe"] }