@unipin/angular-applet 21.3.1 → 21.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/fesm2022/unipin-angular-applet-accordion.mjs +39 -37
- package/fesm2022/unipin-angular-applet-accordion.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-alert-dialog.mjs +9 -9
- package/fesm2022/unipin-angular-applet-alert-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-alert.mjs +16 -19
- package/fesm2022/unipin-angular-applet-alert.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-approval.mjs +11 -11
- package/fesm2022/unipin-angular-applet-approval.mjs.map +1 -1
- package/fesm2022/{unipin-angular-applet-audit-audit-modal.component-3a2P0bZr.mjs → unipin-angular-applet-audit-audit-modal.component-Y61VDaze.mjs} +6 -7
- package/fesm2022/unipin-angular-applet-audit-audit-modal.component-Y61VDaze.mjs.map +1 -0
- package/fesm2022/unipin-angular-applet-audit.mjs +14 -14
- package/fesm2022/unipin-angular-applet-audit.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-auth.mjs +23 -26
- package/fesm2022/unipin-angular-applet-auth.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-avatar.mjs +6 -7
- package/fesm2022/unipin-angular-applet-avatar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-badge.mjs +6 -7
- package/fesm2022/unipin-angular-applet-badge.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-buttons.mjs +13 -15
- package/fesm2022/unipin-angular-applet-buttons.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-calendar.mjs +23 -27
- package/fesm2022/unipin-angular-applet-calendar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-collapsible.mjs +17 -20
- package/fesm2022/unipin-angular-applet-collapsible.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-common.mjs +25 -30
- package/fesm2022/unipin-angular-applet-common.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-containers.mjs +23 -26
- package/fesm2022/unipin-angular-applet-containers.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-dialog.mjs +64 -70
- package/fesm2022/unipin-angular-applet-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-forms.mjs +231 -236
- package/fesm2022/unipin-angular-applet-forms.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-froala.mjs +10 -11
- package/fesm2022/unipin-angular-applet-froala.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-grids.mjs +430 -17
- package/fesm2022/unipin-angular-applet-grids.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-infinite-scroll.mjs +5 -6
- package/fesm2022/unipin-angular-applet-infinite-scroll.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-json-viewer.mjs +8 -9
- package/fesm2022/unipin-angular-applet-json-viewer.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-kbd.mjs +5 -6
- package/fesm2022/unipin-angular-applet-kbd.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-loading-dialog.mjs +8 -9
- package/fesm2022/unipin-angular-applet-loading-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-markdown.mjs +20 -21
- package/fesm2022/unipin-angular-applet-markdown.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-popover.mjs +26 -30
- package/fesm2022/unipin-angular-applet-popover.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-progress-bar.mjs +8 -9
- package/fesm2022/unipin-angular-applet-progress-bar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-skeleton.mjs +5 -6
- package/fesm2022/unipin-angular-applet-skeleton.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-spinner.mjs +7 -7
- package/fesm2022/unipin-angular-applet-spinner.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-stepper.mjs +17 -19
- package/fesm2022/unipin-angular-applet-stepper.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-swipeable.mjs +26 -30
- package/fesm2022/unipin-angular-applet-swipeable.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-tabs.mjs +22 -25
- package/fesm2022/unipin-angular-applet-tabs.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-tooltip.mjs +5 -6
- package/fesm2022/unipin-angular-applet-tooltip.mjs.map +1 -1
- package/package.json +6 -2
- package/types/unipin-angular-applet-accordion.d.ts +4 -2
- package/types/unipin-angular-applet-forms.d.ts +6 -3
- package/types/unipin-angular-applet-grids.d.ts +102 -15
- package/types/unipin-angular-applet-popover.d.ts +3 -3
- package/common/assets/sprites/flagGlobal.png +0 -0
- package/fesm2022/unipin-angular-applet-audit-audit-modal.component-3a2P0bZr.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-grids.mjs","sources":["../../../projects/unipin-angular/grids/constants/row-number-column.const.ts","../../../projects/unipin-angular/grids/utils/render-flag/render-flag.util.ts","../../../projects/unipin-angular/grids/utils/render-grid-badge/render-grid-badge.util.ts","../../../projects/unipin-angular/grids/utils/render-status-badge/render-status-badge.util.ts","../../../projects/unipin-angular/grids/unipin-angular-applet-grids.ts"],"sourcesContent":["export const rowNumberColumn = {\n maxWidth: 55,\n pinned: 'left', \n sortable: false,\n lockPinned: true,\n headerName: 'No.',\n lockPosition: true,\n suppressMovable: true,\n valueGetter: 'node.rowIndex + 1',\n cellStyle: {\n fontWeight: 500,\n textAlign: 'center',\n justifyContent: 'center',\n }\n};\n","export function renderFlag(value: string | string[]): string{\n \n if (\n !value ||\n !value.length\n ) {\n return '';\n }\n\n const values = Array.isArray(value)? value : [ value ];\n return `\n <div class=\"d-flex align-items-center gap-2 h-100 fw-medium\">\n ${\n values.map(\n (v) => {\n return `\n <div class=\"d-flex align-items-center gap-1 size-full\">\n <div title=\"${ v }\" class=\"fflag-up border rounded fflag-${ v }\"></div>\n </div>\n `;\n }\n ).join('')\n }\n </div>\n `;\n}\n","import { generateContrastColor, up } from '@unipin/angular-applet/common';\nimport { BadgeVariants, badgeVariants } from '@unipin/angular-applet/badge';\n\n\nexport type RenderGridBadgeOptions = {\n additionalClass?: string;\n isAutoGenerateColor?: boolean;\n variant?: BadgeVariants['variant'];\n};\n\nexport function renderGridBadge(\n value: string,\n { \n additionalClass = '', \n variant = 'default',\n isAutoGenerateColor = true,\n }: RenderGridBadgeOptions\n): string{\n \n if (!value) {\n return '';\n }\n\n const badgeClass = up(\n badgeVariants(\n {\n variant: variant\n }\n ),\n 'w-full',\n additionalClass\n );\n\n let style = ''\n if (isAutoGenerateColor) {\n const { background, foreground } = generateContrastColor(value.substring(0,3));\n style = `background-color: ${ background } !important; color: ${ foreground } !important;`;\n }\n\n return `\n <span \n style=\"${ style }\" \n class=\"${ badgeClass }\"\n >\n ${ value }\n </span>\n `;\n}\n","import { up } from '@unipin/angular-applet/common';\nimport { BadgeVariants } from '@unipin/angular-applet/badge';\nimport { renderGridBadge, RenderGridBadgeOptions } from './../render-grid-badge/render-grid-badge.util';\n\n\ntype RenderStatusBadgeOptions = Omit<RenderGridBadgeOptions, 'isAutoGenerateColor' | 'variant'> & {\n additionalStatus?: {\n [key: string]: {\n class: string;\n variant: BadgeVariants['variant'];\n }\n };\n};\n\nconst statusVariant = {\n ACTIVE: {\n class: '',\n variant: 'default'\n },\n \n SUCCESS: {\n variant: 'default',\n class: 'bg-green-700'\n },\n APPROVED: {\n variant: 'default',\n class: 'bg-green-700'\n },\n\n FAIL: {\n class: '',\n variant: 'destructive'\n },\n FAILED: {\n class: '',\n variant: 'destructive'\n },\n DELETED: {\n class: '',\n variant: 'destructive'\n },\n\n INACTIVE: {\n variant: 'default',\n class: 'bg-yellow-500 text-black',\n },\n IN_PROGRESS: {\n variant: 'default',\n class: 'bg-yellow-500 text-black',\n },\n PENDING: {\n variant: 'default',\n class: 'bg-yellow-500 text-black',\n },\n};\n\nexport function renderStatusBadge(\n value: string,\n {\n additionalStatus,\n additionalClass = ''\n }: RenderStatusBadgeOptions\n): string{\n \n if (!value) {\n return '';\n }\n\n let used = statusVariant[value as keyof typeof statusVariant] || additionalStatus?.[value];\n if (!used) {\n return renderGridBadge(\n value, \n { \n additionalClass \n }\n );\n }\n\n return renderGridBadge(\n value,\n {\n isAutoGenerateColor: true,\n variant: used.variant as BadgeVariants['variant'],\n additionalClass: up(\n used.class,\n additionalClass\n )\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-grids.mjs","sources":["../../../projects/unipin-angular/grids/constants/row-number-column.const.ts","../../../projects/unipin-angular/grids/constants/grid-config.const.ts","../../../projects/unipin-angular/grids/utils/render-flag/render-flag.util.ts","../../../projects/unipin-angular/grids/utils/render-grid-badge/render-grid-badge.util.ts","../../../projects/unipin-angular/grids/utils/render-status-badge/render-status-badge.util.ts","../../../projects/unipin-angular/grids/services/grid.service.ts","../../../projects/unipin-angular/grids/components/grid.component.ts","../../../projects/unipin-angular/grids/components/snapshot-grid.component.ts","../../../projects/unipin-angular/grids/unipin-angular-applet-grids.ts"],"sourcesContent":["import { ColDef } from 'ag-grid-community';\n\n\nexport const rowNumberColumn: ColDef = {\n maxWidth: 60,\n pinned: 'left', \n sortable: false,\n lockPinned: true,\n headerName: 'No.',\n lockPosition: true,\n suppressMovable: true,\n valueGetter: 'node.rowIndex + 1',\n cellStyle: {\n fontWeight: 500,\n textAlign: 'center',\n justifyContent: 'center',\n }\n};\n","import { ColDef, Theme, themeQuartz } from 'ag-grid-community';\n\n\nexport const gridDefaultColDef: ColDef = {\n flex: 1,\n minWidth: 200,\n sortable: true,\n resizable: true,\n editable: true,\n sortingOrder: ['asc', 'desc'],\n cellStyle: { \n textAlign: 'left' \n }\n};\n\nexport const gridTheme: Theme = themeQuartz.withParams(\n {\n headerFontWeight: 'bold',\n accentColor: 'var(--primary)',\n \n wrapperBorderRadius: 'var(--radius)',\n wrapperBorder: '1px solid var(--border)',\n }\n);\n","export function renderFlag(countryCode: string | string[]): string{\n \n const codes = [countryCode].flat().filter(Boolean);\n if (!codes.length) {\n return '';\n }\n\n const flagTemplate = codes.map(\n (c) => {\n const code = String(c).trim().toLowerCase();\n\n const countryFlagSrc = `https://flagicons.lipis.dev/flags/1x1/${ code }.svg`;\n const globalFlagSrc = 'https://www.svgrepo.com/show/405734/globe-showing-asia-australia.svg';\n \n const isGlobal = !code || code === 'go';\n const style = isGlobal? 'scale-[1.4]' : '';\n const source = isGlobal? globalFlagSrc : countryFlagSrc;\n\n return `\n <div\n class=\"h-full overflow-hidden border border-border rounded-md relative\" \n title=\"${ code }\"\n >\n <img \n loading=\"lazy\"\n alt=\"${ code }\" \n src=\"${ source }\" \n class=\"block size-full object-cover ${ style }\" \n />\n </div>\n `;\n }\n );\n\n return `\n <div class=\"flex items-center justify-center gap-2 size-full\">\n ${ flagTemplate.join('') }\n </div>\n `;\n}\n","import { generateContrastColor, up } from '@unipin/angular-applet/common';\nimport { BadgeVariants, badgeVariants } from '@unipin/angular-applet/badge';\n\n\nexport type RenderGridBadgeOptions = {\n additionalClass?: string;\n isAutoGenerateColor?: boolean;\n variant?: BadgeVariants['variant'];\n};\n\nexport function renderGridBadge(\n value: string,\n { \n additionalClass = '', \n variant = 'default',\n isAutoGenerateColor = true,\n }: RenderGridBadgeOptions\n): string{\n \n if (!value) {\n return '';\n }\n\n const badgeClass = up(\n badgeVariants(\n {\n variant: variant\n }\n ),\n 'w-full',\n additionalClass\n );\n\n let style = ''\n if (isAutoGenerateColor) {\n const { background, foreground } = generateContrastColor(value.substring(0,3));\n style = `background-color: ${ background } !important; color: ${ foreground } !important;`;\n }\n\n return `\n <span \n style=\"${ style }\" \n class=\"${ badgeClass }\"\n >\n ${ value }\n </span>\n `;\n}\n","import { BadgeVariants } from '@unipin/angular-applet/badge';\nimport { up, formatCapitalize } from '@unipin/angular-applet/common';\nimport { renderGridBadge, RenderGridBadgeOptions } from './../render-grid-badge/render-grid-badge.util';\n\n\ntype RenderStatusBadgeOptions = Omit<RenderGridBadgeOptions, 'isAutoGenerateColor' | 'variant'> & {\n additionalStatus?: {\n [key: string]: {\n class: string;\n variant: BadgeVariants['variant'];\n }\n };\n};\n\nconst statusVariant = {\n ACTIVE: {\n class: '',\n variant: 'default'\n },\n \n SUCCESS: {\n variant: 'default',\n class: 'bg-green-700'\n },\n APPROVED: {\n variant: 'default',\n class: 'bg-green-700'\n },\n\n FAIL: {\n class: '',\n variant: 'destructive'\n },\n FAILED: {\n class: '',\n variant: 'destructive'\n },\n DELETED: {\n class: '',\n variant: 'destructive'\n },\n\n INACTIVE: {\n variant: 'default',\n class: 'bg-yellow-500 text-black',\n },\n IN_PROGRESS: {\n variant: 'default',\n class: 'bg-yellow-500 text-black',\n },\n PENDING: {\n variant: 'default',\n class: 'bg-yellow-500 text-black',\n },\n};\n\nexport function renderStatusBadge(\n value: string,\n {\n additionalStatus,\n additionalClass = ''\n }: RenderStatusBadgeOptions\n): string{\n \n if (!value) {\n return '';\n }\n\n let used = statusVariant[value as keyof typeof statusVariant] || additionalStatus?.[value];\n if (!used) {\n return renderGridBadge(\n value, \n { \n additionalClass \n }\n );\n }\n\n return renderGridBadge(\n formatCapitalize(value),\n {\n isAutoGenerateColor: false,\n variant: used.variant as BadgeVariants['variant'],\n additionalClass: up(\n used.class,\n additionalClass\n )\n }\n );\n}\n","import { Injectable } from '@angular/core';\nimport { GridApi } from 'ag-grid-community';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GridService {\n\n protected readonly apis: Map<string, GridApi> = new Map();\n\n public setApi(id: string, api: GridApi): void{ \n this.apis.set(id, api); \n }\n\n public getApi(id: string): GridApi | undefined{ \n return this.apis.get(id); \n }\n\n public refreshGridCache(id: string, forceRefresh: boolean = false): void{\n const api = this.apis.get(id);\n\n if (!api) {\n return;\n }\n api.refreshInfiniteCache();\n\n if (forceRefresh) {\n api.paginationGoToFirstPage();\n api.purgeInfiniteCache();\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, model, OnInit, output } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { CellStyleModule, ClientSideRowModelApiModule, ClientSideRowModelModule, ColDef, ColGroupDef, DragStoppedEvent, GridApi, GridReadyEvent, InfiniteRowModelModule, Module, ModuleRegistry, PaginationChangedEvent, PaginationModule, PinnedRowModule, RowApiModule, RowClassParams, RowClickedEvent, RowModelType, RowSelectionModule, RowStyleModule, SelectionChangedEvent, TextEditorModule } from 'ag-grid-community';\nimport { up } from '@unipin/angular-applet/common';\nimport { gridDefaultColDef, gridTheme } from '../constants/grid-config.const';\nimport { GridService } from '../services/grid.service';\nimport { GridDatasourceRefreshEvent } from '../types/grid-datasource-refresh-event.type';\n\n\n@Component({\n selector: 'up-grid',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n imports: [\n AgGridAngular,\n ],\n template: `\n <ag-grid-angular \n class=\"size-full\"\n \n [theme]=\"theme\"\n [animateRows]=\"true\"\n [defaultColDef]=\"defaultColDef\" \n\n [columnDefs]=\"columnDefs()\"\n [getRowClass]=\"getRowClass()\"\n [rowModelType]=\"rowModelType()\"\n [rowSelection]=\"rowSelection()\"\n\n [pagination]=\"pagination()\"\n [cacheBlockSize]=\"rowPerPage()\" \n [paginationPageSize]=\"rowPerPage()\"\n\n (rowClicked)=\"rowClicked.emit($event)\"\n (selectionChanged)=\"selectionChanged.emit($event)\"\n \n (dragStopped)=\"dragColumn($event)\"\n (gridReady)=\"setDatasource($event)\"\n (paginationChanged)=\"changePagination($event)\"\n />\n `,\n})\nexport class UpGridComponent<T = any> implements OnInit {\n\n public readonly columnDefs = input.required<(ColDef<T> | ColGroupDef<T>)[]>();\n\n public readonly noRowText = input<string>('Data not found');\n public readonly rowModelType = input<RowModelType>('infinite');\n public readonly rowSelection = input<'single' | 'multiple'>('single');\n public readonly getRowClass = input<((params: RowClassParams<T>) => string) | undefined>(undefined);\n\n public readonly id = input<`grid-${ string }`>('grid-pagination');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n \n public readonly rowPerPage = model<number>(50);\n public readonly pagination = input(true, { transform: booleanAttribute });\n\n public readonly gridReady = output<GridReadyEvent<T>>();\n public readonly rowClicked = output<RowClickedEvent<T>>();\n public readonly selectionChanged = output<SelectionChangedEvent<T>>();\n public readonly datasourceRefreshed = output<GridDatasourceRefreshEvent<T>>();\n\n public readonly theme = gridTheme;\n public readonly defaultColDef = gridDefaultColDef;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block size-full',\n this.inlineClass(),\n );\n }\n );\n protected count?: number;\n\n constructor(\n protected readonly service: GridService\n ) { }\n\n public ngOnInit(): void{\n const modules: Module[] = [\n RowApiModule,\n RowStyleModule,\n PinnedRowModule,\n CellStyleModule,\n TextEditorModule,\n PaginationModule,\n RowSelectionModule,\n ];\n\n switch (this.rowModelType()) {\n case 'infinite':\n modules.push(InfiniteRowModelModule);\n break;\n \n case 'clientSide':\n modules.push(\n ClientSideRowModelModule,\n ClientSideRowModelApiModule\n );\n break;\n }\n ModuleRegistry.registerModules(modules);\n }\n\n public changePagination({ newPageSize, api }: PaginationChangedEvent): void{\n if (newPageSize) {\n this.rowPerPage.set(\n api.paginationGetPageSize()\n );\n }\n }\n\n public dragColumn({ api }: DragStoppedEvent): void{\n localStorage.setItem(\n this.id(), \n btoa(\n JSON.stringify(\n api.getColumnState()\n )\n )\n );\n }\n\n public setDatasource(ev: GridReadyEvent): void{\n this.gridReady.emit(ev);\n this.service.setApi(this.id(), ev.api);\n this.setNoRowTemplate(ev.api, this.noRowText());\n\n const saved = localStorage.getItem(this.id());\n if (saved) {\n try {\n const state = JSON.parse(\n atob(\n saved\n )\n );\n\n ev.api.setColumnsVisible(\n ev.api.getAllGridColumns(), \n true\n );\n \n ev.api.applyColumnState(\n { \n state, \n applyOrder: true \n }\n );\n }\n catch { }\n }\n\n if (this.rowModelType() === 'infinite') {\n ev.api.setGridOption(\n 'datasource',\n {\n getRows: (\n {\n api, \n sortModel,\n\n failCallback: fail,\n successCallback: success,\n }\n ) => {\n api.setGridOption('loading', true);\n this.setNoRowTemplate(api, this.noRowText());\n \n const page = api.paginationGetCurrentPage();\n const pageSize = api.paginationGetPageSize();\n\n const failCallback = (message?: string) => {\n fail();\n api.setGridOption('loading', false);\n \n if (message) {\n this.setNoRowTemplate(api, message);\n }\n api.showNoRowsOverlay();\n };\n\n const successCallback = (data: T[], count?: number) => {\n api.setGridOption('loading', false);\n\n if (page === 0) {\n if (!data.length) {\n this.setNoRowTemplate(\n api, \n this.noRowText()\n );\n \n api.showNoRowsOverlay();\n }\n this.count = count;\n }\n success(data, this.count);\n };\n\n this.datasourceRefreshed.emit(\n {\n page,\n pageSize,\n \n failCallback,\n successCallback,\n \n sort: !sortModel.length? undefined : {\n colId: sortModel[0]!.colId || '',\n sort: sortModel[0]!.sort || 'asc'\n }\n }\n );\n }\n }\n );\n }\n }\n\n protected setNoRowTemplate(api: GridApi, text: string): void{\n api.setGridOption(\n 'overlayNoRowsTemplate', \n `<span class=\"text-lg\">${ text }</span>`\n );\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, model, OnInit, output } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { CellStyleModule, ColDef, ColGroupDef, DragStoppedEvent, GridApi, GridReadyEvent, InfiniteRowModelModule, ModuleRegistry, PaginationChangedEvent, PaginationModule, PinnedRowModule, RowApiModule, RowClassParams, RowClickedEvent, RowSelectionModule, RowStyleModule, SelectionChangedEvent, TextEditorModule } from 'ag-grid-community';\nimport { up } from '@unipin/angular-applet/common';\nimport { gridDefaultColDef, gridTheme } from '../constants/grid-config.const';\nimport { GridService } from '../services/grid.service';\nimport { GridSnapshotDatasourceRefreshEvent, GridSnapshotPageInfo } from '../types/grid-snapshot-datasource-refresh-event.type';\n\n\n@Component({\n selector: 'up-snapshot-grid',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n imports: [\n AgGridAngular,\n ],\n template: `\n <ag-grid-angular \n class=\"size-full\"\n rowModelType=\"infinite\"\n \n [theme]=\"theme\"\n [animateRows]=\"true\"\n [defaultColDef]=\"defaultColDef\" \n\n [columnDefs]=\"columnDefs()\"\n [getRowClass]=\"getRowClass()\"\n [rowSelection]=\"rowSelection()\"\n\n [pagination]=\"pagination()\"\n [cacheBlockSize]=\"rowPerPage()\" \n [paginationPageSize]=\"rowPerPage()\"\n\n (rowClicked)=\"rowClicked.emit($event)\"\n (selectionChanged)=\"selectionChanged.emit($event)\"\n \n (dragStopped)=\"dragColumn($event)\"\n (gridReady)=\"setDatasource($event)\"\n (paginationChanged)=\"changePagination($event)\"\n />\n `,\n})\nexport class UpSnapshotGridComponent<T = any> implements OnInit {\n\n public readonly columnDefs = input.required<(ColDef<T> | ColGroupDef<T>)[]>();\n\n public readonly noRowText = input<string>('Data not found');\n public readonly rowSelection = input<'single' | 'multiple'>('single');\n public readonly getRowClass = input<((params: RowClassParams<T>) => string) | undefined>(undefined);\n\n public readonly id = input<`grid-${ string }`>('grid-snapshot');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n \n public readonly rowPerPage = model<number>(50);\n public readonly pagination = input(true, { transform: booleanAttribute });\n\n public readonly gridReady = output<GridReadyEvent<T>>();\n public readonly rowClicked = output<RowClickedEvent<T>>();\n public readonly selectionChanged = output<SelectionChangedEvent<T>>();\n public readonly datasourceRefreshed = output<GridSnapshotDatasourceRefreshEvent<T>>();\n\n public readonly theme = gridTheme;\n public readonly defaultColDef = gridDefaultColDef;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block size-full',\n this.inlineClass(),\n );\n }\n );\n protected after!: string;\n\n constructor(\n protected readonly service: GridService\n ) { }\n\n public ngOnInit(): void{\n ModuleRegistry.registerModules(\n [\n RowApiModule,\n RowStyleModule,\n PinnedRowModule,\n CellStyleModule,\n TextEditorModule,\n PaginationModule,\n RowSelectionModule,\n InfiniteRowModelModule\n ]\n );\n }\n\n public changePagination({ newPageSize, api }: PaginationChangedEvent): void{\n if (newPageSize) {\n this.rowPerPage.set(\n api.paginationGetPageSize()\n );\n }\n }\n\n public dragColumn({ api }: DragStoppedEvent): void{\n localStorage.setItem(\n this.id(), \n btoa(\n JSON.stringify(\n api.getColumnState()\n )\n )\n );\n }\n\n public setDatasource(ev: GridReadyEvent): void{\n this.gridReady.emit(ev);\n this.service.setApi(this.id(), ev.api);\n this.setNoRowTemplate(ev.api, this.noRowText());\n\n const saved = localStorage.getItem(this.id());\n if (saved) {\n try {\n const state = JSON.parse(\n atob(\n saved\n )\n );\n\n ev.api.setColumnsVisible(\n ev.api.getAllGridColumns(), \n true\n );\n \n ev.api.applyColumnState(\n { \n state, \n applyOrder: true \n }\n );\n }\n catch { }\n }\n\n ev.api.setGridOption(\n 'datasource',\n {\n getRows: (\n {\n api,\n sortModel,\n\n failCallback: fail,\n successCallback: success,\n }\n ) => {\n api.setGridOption('loading', true);\n this.setNoRowTemplate(api, this.noRowText());\n\n const page = api.paginationGetCurrentPage();\n const pageSize = api.paginationGetPageSize();\n\n if (page === 0) {\n this.after = undefined!;\n }\n\n const failCallback = (message?: string) => {\n fail();\n api.setGridOption('loading', false);\n\n if (message) {\n this.setNoRowTemplate(api, message);\n }\n api.showNoRowsOverlay();\n };\n\n const successCallback = (data: T[], { endCursor, hasNextPage }: GridSnapshotPageInfo) => {\n api.setGridOption('loading', false);\n\n if (\n !data.length && \n page === 0\n ) {\n this.setNoRowTemplate(api, this.noRowText());\n api.showNoRowsOverlay();\n }\n\n if (\n hasNextPage && \n endCursor\n ) {\n this.after = endCursor;\n success(data, undefined);\n \n return;\n }\n success(data, page * pageSize + data.length);\n };\n\n this.datasourceRefreshed.emit(\n {\n after: this.after?? null,\n pageSize,\n\n failCallback,\n successCallback,\n\n sort: !sortModel.length? undefined : {\n colId: sortModel[0]!.colId || '',\n sort: sortModel[0]!.sort || 'asc'\n }\n }\n );\n }\n }\n );\n }\n\n protected setNoRowTemplate(api: GridApi, text: string): void{\n api.setGridOption(\n 'overlayNoRowsTemplate', \n `<span class=\"text-lg\">${ text }</span>`\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GridService"],"mappings":";;;;;;;AAGO,MAAM,eAAe,GAAW;AACrC,IAAA,QAAQ,EAAE,EAAE;AACZ,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,eAAe,EAAE,IAAI;AACrB,IAAA,WAAW,EAAE,mBAAmB;AAChC,IAAA,SAAS,EAAE;AACT,QAAA,UAAU,EAAE,GAAG;AACf,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,cAAc,EAAE,QAAQ;AACzB;;;ACbI,MAAM,iBAAiB,GAAW;AACvC,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC7B,IAAA,SAAS,EAAE;AACT,QAAA,SAAS,EAAE;AACZ;;AAGI,MAAM,SAAS,GAAU,WAAW,CAAC,UAAU,CACpD;AACE,IAAA,gBAAgB,EAAE,MAAM;AACxB,IAAA,WAAW,EAAE,gBAAgB;AAE7B,IAAA,mBAAmB,EAAE,eAAe;AACpC,IAAA,aAAa,EAAE,yBAAyB;AACzC,CAAA;;ACtBG,SAAU,UAAU,CAAC,WAA8B,EAAA;AAEvD,IAAA,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;AAClD,IAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACjB,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAC5B,CAAC,CAAC,KAAI;AACJ,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAE3C,QAAA,MAAM,cAAc,GAAG,CAAA,sCAAA,EAA0C,IAAK,MAAM;QAC5E,MAAM,aAAa,GAAG,sEAAsE;QAE5F,MAAM,QAAQ,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI;QACvC,MAAM,KAAK,GAAG,QAAQ,GAAE,aAAa,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,QAAQ,GAAE,aAAa,GAAG,cAAc;QAEvD,OAAO;;;mBAGO,IAAK,CAAA;;;;mBAIL,IAAK,CAAA;mBACL,MAAO,CAAA;kDACwB,KAAM,CAAA;;;OAGlD;AACH,IAAA,CAAC,CACF;IAED,OAAO;;AAEA,MAAA,EAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAE;;GAE5B;AACH;;SC7BgB,eAAe,CAC7B,KAAa,EACb,EACE,eAAe,GAAG,EAAE,EACpB,OAAO,GAAG,SAAS,EACnB,mBAAmB,GAAG,IAAI,GACH,EAAA;IAGzB,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,MAAM,UAAU,GAAG,EAAE,CACnB,aAAa,CACX;AACE,QAAA,OAAO,EAAE;AACV,KAAA,CACF,EACD,QAAQ,EACR,eAAe,CAChB;IAED,IAAI,KAAK,GAAG,EAAE;IACd,IAAI,mBAAmB,EAAE;AACvB,QAAA,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AAC9E,QAAA,KAAK,GAAG,CAAA,kBAAA,EAAsB,UAAW,CAAA,oBAAA,EAAwB,UAAW,cAAc;IAC5F;IAEA,OAAO;;eAEO,KAAM,CAAA;eACN,UAAW,CAAA;;QAElB,KAAM;;GAEZ;AACH;;ACjCA,MAAM,aAAa,GAAG;AACpB,IAAA,MAAM,EAAE;AACN,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,OAAO,EAAE;AACV,KAAA;AAED,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE;AACR,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE;AACR,KAAA;AAED,IAAA,IAAI,EAAE;AACJ,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,OAAO,EAAE;AACV,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,OAAO,EAAE;AACV,KAAA;AAED,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,0BAA0B;AAClC,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,0BAA0B;AAClC,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,0BAA0B;AAClC,KAAA;CACF;AAEK,SAAU,iBAAiB,CAC/B,KAAa,EACb,EACE,gBAAgB,EAChB,eAAe,GAAG,EAAE,EACK,EAAA;IAG3B,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,IAAI,IAAI,GAAG,aAAa,CAAC,KAAmC,CAAC,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC1F,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,eAAe,CACpB,KAAK,EACL;YACE;AACD,SAAA,CACF;IACH;AAEA,IAAA,OAAO,eAAe,CACpB,gBAAgB,CAAC,KAAK,CAAC,EACvB;AACE,QAAA,mBAAmB,EAAE,KAAK;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAmC;QACjD,eAAe,EAAE,EAAE,CACjB,IAAI,CAAC,KAAK,EACV,eAAe;AAElB,KAAA,CACF;AACH;;MClFa,WAAW,CAAA;AAHxB,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,IAAI,GAAyB,IAAI,GAAG,EAAE;AAuB1D,IAAA;IArBQ,MAAM,CAAC,EAAU,EAAE,GAAY,EAAA;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;IACxB;AAEO,IAAA,MAAM,CAAC,EAAU,EAAA;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1B;AAEO,IAAA,gBAAgB,CAAC,EAAU,EAAE,YAAA,GAAwB,KAAK,EAAA;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAE7B,IAAI,CAAC,GAAG,EAAE;YACR;QACF;QACA,GAAG,CAAC,oBAAoB,EAAE;QAE1B,IAAI,YAAY,EAAE;YAChB,GAAG,CAAC,uBAAuB,EAAE;YAC7B,GAAG,CAAC,kBAAkB,EAAE;QAC1B;IACF;8GAxBW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCuCY,eAAe,CAAA;AAiC1B,IAAA,WAAA,CACqB,OAAoB,EAAA;QAApB,IAAA,CAAA,OAAO,GAAP,OAAO;AAhCZ,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,QAAQ,gFAAkC;AAE7D,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,gBAAgB,gFAAC;AAC3C,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAe,UAAU,mFAAC;AAC9C,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAwB,QAAQ,mFAAC;AACrD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAsD,SAAS,kFAAC;AAEnF,QAAA,IAAA,CAAA,EAAE,GAAG,KAAK,CAAqB,iBAAiB,yEAAC;QACjD,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,mFAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEvD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,EAAE,iFAAC;QAC9B,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,IAAI,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAEzD,IAAA,CAAA,SAAS,GAAG,MAAM,EAAqB;QACvC,IAAA,CAAA,UAAU,GAAG,MAAM,EAAsB;QACzC,IAAA,CAAA,gBAAgB,GAAG,MAAM,EAA4B;QACrD,IAAA,CAAA,mBAAmB,GAAG,MAAM,EAAiC;QAE7D,IAAA,CAAA,KAAK,GAAG,SAAS;QACjB,IAAA,CAAA,aAAa,GAAG,iBAAiB;AAE9B,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,iBAAiB,EACjB,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,qFACF;IAKG;IAEG,QAAQ,GAAA;AACb,QAAA,MAAM,OAAO,GAAa;YACxB,YAAY;YACZ,cAAc;YACd,eAAe;YACf,eAAe;YACf,gBAAgB;YAChB,gBAAgB;YAChB,kBAAkB;SACnB;AAED,QAAA,QAAQ,IAAI,CAAC,YAAY,EAAE;AACzB,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;gBACpC;AAEF,YAAA,KAAK,YAAY;AACf,gBAAA,OAAO,CAAC,IAAI,CACV,wBAAwB,EACxB,2BAA2B,CAC5B;gBACD;;AAEJ,QAAA,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC;IACzC;AAEO,IAAA,gBAAgB,CAAC,EAAE,WAAW,EAAE,GAAG,EAA0B,EAAA;QAClE,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,GAAG,CAAC,qBAAqB,EAAE,CAC5B;QACH;IACF;IAEO,UAAU,CAAC,EAAE,GAAG,EAAoB,EAAA;QACzC,YAAY,CAAC,OAAO,CAClB,IAAI,CAAC,EAAE,EAAE,EACT,IAAI,CACF,IAAI,CAAC,SAAS,CACZ,GAAG,CAAC,cAAc,EAAE,CACrB,CACF,CACF;IACH;AAEO,IAAA,aAAa,CAAC,EAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;AACtC,QAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QAE/C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,KAAK,EAAE;AACT,YAAA,IAAI;gBACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,IAAI,CACF,KAAK,CACN,CACF;AAED,gBAAA,EAAE,CAAC,GAAG,CAAC,iBAAiB,CACtB,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAC1B,IAAI,CACL;AAED,gBAAA,EAAE,CAAC,GAAG,CAAC,gBAAgB,CACrB;oBACE,KAAK;AACL,oBAAA,UAAU,EAAE;AACb,iBAAA,CACF;YACH;YACA,MAAM,EAAE;QACV;AAEA,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,UAAU,EAAE;AACtC,YAAA,EAAE,CAAC,GAAG,CAAC,aAAa,CAClB,YAAY,EACZ;AACE,gBAAA,OAAO,EAAE,CACP,EACE,GAAG,EACH,SAAS,EAET,YAAY,EAAE,IAAI,EAClB,eAAe,EAAE,OAAO,GACzB,KACC;AACF,oBAAA,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC;oBAClC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AAE5C,oBAAA,MAAM,IAAI,GAAG,GAAG,CAAC,wBAAwB,EAAE;AAC3C,oBAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,qBAAqB,EAAE;AAE5C,oBAAA,MAAM,YAAY,GAAG,CAAC,OAAgB,KAAI;AACxC,wBAAA,IAAI,EAAE;AACN,wBAAA,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC;wBAEnC,IAAI,OAAO,EAAE;AACX,4BAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC;wBACrC;wBACA,GAAG,CAAC,iBAAiB,EAAE;AACzB,oBAAA,CAAC;AAED,oBAAA,MAAM,eAAe,GAAG,CAAC,IAAS,EAAE,KAAc,KAAI;AACpD,wBAAA,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC;AAEnC,wBAAA,IAAI,IAAI,KAAK,CAAC,EAAE;AACd,4BAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gCAChB,IAAI,CAAC,gBAAgB,CACnB,GAAG,EACH,IAAI,CAAC,SAAS,EAAE,CACjB;gCAED,GAAG,CAAC,iBAAiB,EAAE;4BACzB;AACA,4BAAA,IAAI,CAAC,KAAK,GAAG,KAAK;wBACpB;AACA,wBAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;AAC3B,oBAAA,CAAC;AAED,oBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B;wBACE,IAAI;wBACJ,QAAQ;wBAER,YAAY;wBACZ,eAAe;wBAEf,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,GAAE,SAAS,GAAG;4BACnC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAE,CAAC,KAAK,IAAI,EAAE;4BAChC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI;AAC7B;AACF,qBAAA,CACF;gBACH;AACD,aAAA,CACF;QACH;IACF;IAEU,gBAAgB,CAAC,GAAY,EAAE,IAAY,EAAA;QACnD,GAAG,CAAC,aAAa,CACf,uBAAuB,EACvB,CAAA,sBAAA,EAA0B,IAAK,CAAA,OAAA,CAAS,CACzC;IACH;8GAtLW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA1BhB;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA1BC,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,8BAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,8BAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,+BAAA,EAAA,sCAAA,EAAA,uCAAA,EAAA,8BAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,gCAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,0BAAA,EAAA,mCAAA,EAAA,8BAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,mCAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,kCAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,sBAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,4BAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,2CAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,mCAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,iCAAA,EAAA,uBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,2BAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,+BAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,EAAA,4BAAA,EAAA,2CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,uCAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iCAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,gCAAA,EAAA,qCAAA,EAAA,qCAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,wBAAA,EAAA,4BAAA,EAAA,oCAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,gCAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,+BAAA,EAAA,gCAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,yBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,cAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,qCAAA,EAAA,aAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FA4BJ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAnC3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,SAAS;oBACnB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,aAAa;AACd,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA;AACF,iBAAA;;;MCCY,uBAAuB,CAAA;AAgClC,IAAA,WAAA,CACqB,OAAoB,EAAA;QAApB,IAAA,CAAA,OAAO,GAAP,OAAO;AA/BZ,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,QAAQ,gFAAkC;AAE7D,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,gBAAgB,gFAAC;AAC3C,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAwB,QAAQ,mFAAC;AACrD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAsD,SAAS,kFAAC;AAEnF,QAAA,IAAA,CAAA,EAAE,GAAG,KAAK,CAAqB,eAAe,yEAAC;QAC/C,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,mFAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEvD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,EAAE,iFAAC;QAC9B,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,IAAI,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAEzD,IAAA,CAAA,SAAS,GAAG,MAAM,EAAqB;QACvC,IAAA,CAAA,UAAU,GAAG,MAAM,EAAsB;QACzC,IAAA,CAAA,gBAAgB,GAAG,MAAM,EAA4B;QACrD,IAAA,CAAA,mBAAmB,GAAG,MAAM,EAAyC;QAErE,IAAA,CAAA,KAAK,GAAG,SAAS;QACjB,IAAA,CAAA,aAAa,GAAG,iBAAiB;AAE9B,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,iBAAiB,EACjB,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,qFACF;IAKG;IAEG,QAAQ,GAAA;QACb,cAAc,CAAC,eAAe,CAC5B;YACE,YAAY;YACZ,cAAc;YACd,eAAe;YACf,eAAe;YACf,gBAAgB;YAChB,gBAAgB;YAChB,kBAAkB;YAClB;AACD,SAAA,CACF;IACH;AAEO,IAAA,gBAAgB,CAAC,EAAE,WAAW,EAAE,GAAG,EAA0B,EAAA;QAClE,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,GAAG,CAAC,qBAAqB,EAAE,CAC5B;QACH;IACF;IAEO,UAAU,CAAC,EAAE,GAAG,EAAoB,EAAA;QACzC,YAAY,CAAC,OAAO,CAClB,IAAI,CAAC,EAAE,EAAE,EACT,IAAI,CACF,IAAI,CAAC,SAAS,CACZ,GAAG,CAAC,cAAc,EAAE,CACrB,CACF,CACF;IACH;AAEO,IAAA,aAAa,CAAC,EAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;AACtC,QAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QAE/C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,KAAK,EAAE;AACT,YAAA,IAAI;gBACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,IAAI,CACF,KAAK,CACN,CACF;AAED,gBAAA,EAAE,CAAC,GAAG,CAAC,iBAAiB,CACtB,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAC1B,IAAI,CACL;AAED,gBAAA,EAAE,CAAC,GAAG,CAAC,gBAAgB,CACrB;oBACE,KAAK;AACL,oBAAA,UAAU,EAAE;AACb,iBAAA,CACF;YACH;YACA,MAAM,EAAE;QACV;AAEA,QAAA,EAAE,CAAC,GAAG,CAAC,aAAa,CAClB,YAAY,EACZ;AACE,YAAA,OAAO,EAAE,CACP,EACE,GAAG,EACH,SAAS,EAET,YAAY,EAAE,IAAI,EAClB,eAAe,EAAE,OAAO,GACzB,KACC;AACF,gBAAA,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC;gBAClC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AAE5C,gBAAA,MAAM,IAAI,GAAG,GAAG,CAAC,wBAAwB,EAAE;AAC3C,gBAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,qBAAqB,EAAE;AAE5C,gBAAA,IAAI,IAAI,KAAK,CAAC,EAAE;AACd,oBAAA,IAAI,CAAC,KAAK,GAAG,SAAU;gBACzB;AAEA,gBAAA,MAAM,YAAY,GAAG,CAAC,OAAgB,KAAI;AACxC,oBAAA,IAAI,EAAE;AACN,oBAAA,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC;oBAEnC,IAAI,OAAO,EAAE;AACX,wBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC;oBACrC;oBACA,GAAG,CAAC,iBAAiB,EAAE;AACzB,gBAAA,CAAC;gBAED,MAAM,eAAe,GAAG,CAAC,IAAS,EAAE,EAAE,SAAS,EAAE,WAAW,EAAwB,KAAI;AACtF,oBAAA,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC;oBAEnC,IACE,CAAC,IAAI,CAAC,MAAM;wBACZ,IAAI,KAAK,CAAC,EACV;wBACA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;wBAC5C,GAAG,CAAC,iBAAiB,EAAE;oBACzB;AAEA,oBAAA,IACE,WAAW;AACX,wBAAA,SAAS,EACT;AACA,wBAAA,IAAI,CAAC,KAAK,GAAG,SAAS;AACtB,wBAAA,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;wBAExB;oBACF;oBACA,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9C,gBAAA,CAAC;AAED,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3B;AACE,oBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,IAAG,IAAI;oBACxB,QAAQ;oBAER,YAAY;oBACZ,eAAe;oBAEf,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,GAAE,SAAS,GAAG;wBACnC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAE,CAAC,KAAK,IAAI,EAAE;wBAChC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI;AAC7B;AACF,iBAAA,CACF;YACH;AACD,SAAA,CACF;IACH;IAEU,gBAAgB,CAAC,GAAY,EAAE,IAAY,EAAA;QACnD,GAAG,CAAC,aAAa,CACf,uBAAuB,EACvB,CAAA,sBAAA,EAA0B,IAAK,CAAA,OAAA,CAAS,CACzC;IACH;8GAlLW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA1BxB;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA1BC,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,8BAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,8BAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,+BAAA,EAAA,sCAAA,EAAA,uCAAA,EAAA,8BAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,gCAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,0BAAA,EAAA,mCAAA,EAAA,8BAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,mCAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,kCAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,sBAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,4BAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,2CAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,mCAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,iCAAA,EAAA,uBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,2BAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,+BAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,EAAA,4BAAA,EAAA,2CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,uCAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iCAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,gCAAA,EAAA,qCAAA,EAAA,qCAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,wBAAA,EAAA,4BAAA,EAAA,oCAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,gCAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,+BAAA,EAAA,gCAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,yBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,cAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,qCAAA,EAAA,aAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FA4BJ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAnCnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,aAAa;AACd,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA;AACF,iBAAA;;;AC5CD;;AAEG;;;;"}
|
|
@@ -9,14 +9,14 @@ class UpInfiniteScrollDirective {
|
|
|
9
9
|
* will be triggered as soon as a single pixel is visible. 1.0 means that the callback will only be triggered when the entire element is visible.
|
|
10
10
|
* @type {InputSignal<number>}
|
|
11
11
|
*/
|
|
12
|
-
this.threshold = input(0.5, ...(ngDevMode ? [{ debugName: "threshold" }] : []));
|
|
12
|
+
this.threshold = input(0.5, ...(ngDevMode ? [{ debugName: "threshold" }] : /* istanbul ignore next */ []));
|
|
13
13
|
/**
|
|
14
14
|
* Margin around the root. This can be used to grow or shrink the area used to
|
|
15
15
|
* determine intersections. It follows the same syntax as the CSS margin property.
|
|
16
16
|
* Example values: '10px', '10px 20px', '10%', '10% 20% 30% 40%'.
|
|
17
17
|
* @type {InputSignal<string>}
|
|
18
18
|
*/
|
|
19
|
-
this.rootMargin = input('10%', ...(ngDevMode ? [{ debugName: "rootMargin" }] : []));
|
|
19
|
+
this.rootMargin = input('10%', ...(ngDevMode ? [{ debugName: "rootMargin" }] : /* istanbul ignore next */ []));
|
|
20
20
|
/**
|
|
21
21
|
* Event emitted when the user has scrolled to the threshold.
|
|
22
22
|
* Used for triggering the component to load more data.
|
|
@@ -66,13 +66,12 @@ class UpInfiniteScrollDirective {
|
|
|
66
66
|
}, options);
|
|
67
67
|
this.intersectionObserver.observe(this.elementRef.nativeElement);
|
|
68
68
|
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
70
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpInfiniteScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
70
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.7", type: UpInfiniteScrollDirective, isStandalone: true, selector: "[upInfiniteScroll]", inputs: { threshold: { classPropertyName: "threshold", publicName: "threshold", isSignal: true, isRequired: false, transformFunction: null }, rootMargin: { classPropertyName: "rootMargin", publicName: "rootMargin", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { scrolled: "scrolled" }, exportAs: ["upInfiniteScroll"], ngImport: i0 }); }
|
|
71
71
|
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpInfiniteScrollDirective, decorators: [{
|
|
73
73
|
type: Directive,
|
|
74
74
|
args: [{
|
|
75
|
-
standalone: true,
|
|
76
75
|
exportAs: 'upInfiniteScroll',
|
|
77
76
|
selector: '[upInfiniteScroll]'
|
|
78
77
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-infinite-scroll.mjs","sources":["../../../projects/unipin-angular/infinite-scroll/infinite-scroll.directive.ts","../../../projects/unipin-angular/infinite-scroll/unipin-angular-applet-infinite-scroll.ts"],"sourcesContent":["import { Directive, ElementRef, InputSignal, OnDestroy, OnInit, OutputEmitterRef, input, output } from '@angular/core';\n\n@Directive({\n
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-infinite-scroll.mjs","sources":["../../../projects/unipin-angular/infinite-scroll/infinite-scroll.directive.ts","../../../projects/unipin-angular/infinite-scroll/unipin-angular-applet-infinite-scroll.ts"],"sourcesContent":["import { Directive, ElementRef, InputSignal, OnDestroy, OnInit, OutputEmitterRef, input, output } from '@angular/core';\n\n\n@Directive({\n exportAs: 'upInfiniteScroll',\n selector: '[upInfiniteScroll]'\n})\nexport class UpInfiniteScrollDirective implements OnInit, OnDestroy {\n \n /**\n * Threshold at which to trigger the callback. A value of 0.0 means that the callback\n * will be triggered as soon as a single pixel is visible. 1.0 means that the callback will only be triggered when the entire element is visible.\n * @type {InputSignal<number>}\n */\n public readonly threshold: InputSignal<number> = input<number>(0.5);\n\n /**\n * Margin around the root. This can be used to grow or shrink the area used to\n * determine intersections. It follows the same syntax as the CSS margin property.\n * Example values: '10px', '10px 20px', '10%', '10% 20% 30% 40%'.\n * @type {InputSignal<string>}\n */\n public readonly rootMargin: InputSignal<string> = input<string>('10%');\n\n /**\n * Event emitted when the user has scrolled to the threshold.\n * Used for triggering the component to load more data.\n * @type {OutputEmitterRef<void>}\n */\n public readonly scrolled: OutputEmitterRef<void> = output<void>();\n\n /**\n * IntersectionObserver instance used to observe the element.\n * @type {IntersectionObserver}\n */\n protected intersectionObserver?: IntersectionObserver;\n\n constructor(\n protected readonly elementRef: ElementRef\n ) { }\n\n public ngOnInit(): void{\n this.createIntersectionObserver();\n }\n\n public ngOnDestroy(): void{\n this.destroyIntersectionObserver();\n }\n\n /**\n * Updates the observer configuration when inputs change.\n * Call this method if you need to update threshold or rootMargin dynamically.\n */\n public updateObserver(): void{\n this.destroyIntersectionObserver();\n this.createIntersectionObserver();\n }\n\n /**\n * Cleans up the Intersection Observer when the directive is destroyed.\n */\n protected destroyIntersectionObserver(): void{\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = undefined;\n }\n }\n\n /**\n * Creates and configures the Intersection Observer to monitor when the element\n * comes into view based on the specified threshold and root margin.\n */\n protected createIntersectionObserver(): void{\n const options: IntersectionObserverInit = {\n root: null, // Use the viewport as the root\n rootMargin: this.rootMargin(),\n threshold: this.threshold()\n };\n\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach(\n (entry) => {\n if (entry.isIntersecting) {\n this.scrolled.emit();\n }\n }\n );\n },\n options\n );\n this.intersectionObserver.observe(this.elementRef.nativeElement);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,yBAAyB,CAAA;AA8BpC,IAAA,WAAA,CACqB,UAAsB,EAAA;QAAtB,IAAA,CAAA,UAAU,GAAV,UAAU;AA7B/B;;;;AAIG;AACa,QAAA,IAAA,CAAA,SAAS,GAAwB,KAAK,CAAS,GAAG,gFAAC;AAEnE;;;;;AAKG;AACa,QAAA,IAAA,CAAA,UAAU,GAAwB,KAAK,CAAS,KAAK,iFAAC;AAEtE;;;;AAIG;QACa,IAAA,CAAA,QAAQ,GAA2B,MAAM,EAAQ;IAU7D;IAEG,QAAQ,GAAA;QACb,IAAI,CAAC,0BAA0B,EAAE;IACnC;IAEO,WAAW,GAAA;QAChB,IAAI,CAAC,2BAA2B,EAAE;IACpC;AAEA;;;AAGG;IACI,cAAc,GAAA;QACnB,IAAI,CAAC,2BAA2B,EAAE;QAClC,IAAI,CAAC,0BAA0B,EAAE;IACnC;AAEA;;AAEG;IACO,2BAA2B,GAAA;AACnC,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE;AACtC,YAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS;QACvC;IACF;AAEA;;;AAGG;IACO,0BAA0B,GAAA;AAClC,QAAA,MAAM,OAAO,GAA6B;YACxC,IAAI,EAAE,IAAI;AACV,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B;QAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAClD,CAAC,OAAO,KAAI;AACV,YAAA,OAAO,CAAC,OAAO,CACb,CAAC,KAAK,KAAI;AACR,gBAAA,IAAI,KAAK,CAAC,cAAc,EAAE;AACxB,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACtB;AACF,YAAA,CAAC,CACF;QACH,CAAC,EACD,OAAO,CACR;QACD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IAClE;8GArFW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE;AACX,iBAAA;;;ACND;;AAEG;;;;"}
|
|
@@ -11,26 +11,26 @@ class JsonViewerComponent {
|
|
|
11
11
|
*
|
|
12
12
|
* @type {InputSignal<Record<string, any>>}
|
|
13
13
|
*/
|
|
14
|
-
this.json = input.required(...(ngDevMode ? [{ debugName: "json" }] : []));
|
|
14
|
+
this.json = input.required(...(ngDevMode ? [{ debugName: "json" }] : /* istanbul ignore next */ []));
|
|
15
15
|
/**
|
|
16
16
|
* Input for if the JSON data should be expanded by default.
|
|
17
17
|
*
|
|
18
18
|
* @type {InputSignal<boolean>}
|
|
19
19
|
*/
|
|
20
|
-
this.expanded = input(false, ...(ngDevMode ? [{ debugName: "expanded" }] : []));
|
|
20
|
+
this.expanded = input(false, ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
|
|
21
21
|
/**
|
|
22
22
|
* Input for the depth of the JSON data to be displayed.
|
|
23
23
|
*
|
|
24
24
|
* @type {InputSignal<number>}
|
|
25
25
|
*/
|
|
26
|
-
this.depth = input(2, ...(ngDevMode ? [{ debugName: "depth" }] : []));
|
|
27
|
-
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
|
|
26
|
+
this.depth = input(2, ...(ngDevMode ? [{ debugName: "depth" }] : /* istanbul ignore next */ []));
|
|
27
|
+
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
28
28
|
this._computedClass = computed(() => {
|
|
29
29
|
return up('block overflow-hidden', this.inlineClass());
|
|
30
|
-
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
30
|
+
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
31
31
|
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
33
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: JsonViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: JsonViewerComponent, isStandalone: true, selector: "up-json-viewer", inputs: { json: { classPropertyName: "json", publicName: "json", isSignal: true, isRequired: true, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, depth: { classPropertyName: "depth", publicName: "depth", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0, template: `
|
|
34
34
|
<div class="w-full selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none">
|
|
35
35
|
<ngx-json-viewer
|
|
36
36
|
[json]="json()"
|
|
@@ -40,10 +40,9 @@ class JsonViewerComponent {
|
|
|
40
40
|
</div>
|
|
41
41
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NgxJsonViewerModule }, { kind: "component", type: i1.NgxJsonViewerComponent, selector: "ngx-json-viewer", inputs: ["json", "expanded", "depth", "_currentDepth"] }] }); }
|
|
42
42
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: JsonViewerComponent, decorators: [{
|
|
44
44
|
type: Component,
|
|
45
45
|
args: [{
|
|
46
|
-
standalone: true,
|
|
47
46
|
selector: 'up-json-viewer',
|
|
48
47
|
imports: [
|
|
49
48
|
NgxJsonViewerModule
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-json-viewer.mjs","sources":["../../../projects/unipin-angular/json-viewer/json-viewer.component.ts","../../../projects/unipin-angular/json-viewer/unipin-angular-applet-json-viewer.ts"],"sourcesContent":["import { Component, computed, input, InputSignal } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\nimport { up } from '@unipin/angular-applet/common';\n\n@Component({\n
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-json-viewer.mjs","sources":["../../../projects/unipin-angular/json-viewer/json-viewer.component.ts","../../../projects/unipin-angular/json-viewer/unipin-angular-applet-json-viewer.ts"],"sourcesContent":["import { Component, computed, input, InputSignal } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\nimport { up } from '@unipin/angular-applet/common';\n\n\n@Component({\n selector: 'up-json-viewer',\n imports: [\n NgxJsonViewerModule\n ],\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <div class=\"w-full selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none\">\n <ngx-json-viewer\n [json]=\"json()\"\n [depth]=\"depth()\"\n [expanded]=\"expanded()\"\n />\n </div>\n `\n})\nexport class JsonViewerComponent {\n \n /**\n * Input for the JSON data to be displayed.\n *\n * @type {InputSignal<Record<string, any>>}\n */\n public readonly json: InputSignal<Record<string, any>> = input.required<Record<string, any>>();\n\n /**\n * Input for if the JSON data should be expanded by default.\n *\n * @type {InputSignal<boolean>}\n */\n public readonly expanded: InputSignal<boolean> = input<boolean>(false);\n\n /**\n * Input for the depth of the JSON data to be displayed.\n *\n * @type {InputSignal<number>}\n */\n public readonly depth: InputSignal<number> = input<number>(2);\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block overflow-hidden',\n this.inlineClass(),\n );\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAwBa,mBAAmB,CAAA;AAlBhC,IAAA,WAAA,GAAA;AAoBE;;;;AAIG;AACa,QAAA,IAAA,CAAA,IAAI,GAAqC,KAAK,CAAC,QAAQ,0EAAuB;AAE9F;;;;AAIG;AACa,QAAA,IAAA,CAAA,QAAQ,GAAyB,KAAK,CAAU,KAAK,+EAAC;AAEtE;;;;AAIG;AACa,QAAA,IAAA,CAAA,KAAK,GAAwB,KAAK,CAAS,CAAC,4EAAC;QAE7C,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,mFAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,uBAAuB,EACvB,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,qFACF;AACF,IAAA;8GAjCY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAVpB;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAbC,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAeV,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAlB/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,OAAO,EAAE;wBACP;AACD,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,EAAA;AACF,iBAAA;;;ACvBD;;AAEG;;;;"}
|
|
@@ -4,18 +4,17 @@ import { up } from '@unipin/angular-applet/common';
|
|
|
4
4
|
|
|
5
5
|
class UpKbdDirective {
|
|
6
6
|
constructor() {
|
|
7
|
-
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
|
|
7
|
+
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
8
8
|
this._computedClass = computed(() => {
|
|
9
9
|
return up('bg-muted text-muted-foreground border border-border pointer-events-none inline-flex items-center gap-1 h-5 w-fit min-w-5 justify-center rounded-sm px-1 font-sans text-xs font-medium select-none', `[&_ng-icon:not([class*='size-'])]:size-3`, '[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10', this.inlineClass());
|
|
10
|
-
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
10
|
+
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
11
11
|
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
13
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpKbdDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.7", type: UpKbdDirective, isStandalone: true, selector: "[upKbd]", inputs: { inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upKbd"], ngImport: i0 }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpKbdDirective, decorators: [{
|
|
16
16
|
type: Directive,
|
|
17
17
|
args: [{
|
|
18
|
-
standalone: true,
|
|
19
18
|
exportAs: 'upKbd',
|
|
20
19
|
selector: '[upKbd]',
|
|
21
20
|
host: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-kbd.mjs","sources":["../../../projects/unipin-angular/kbd/kbd.directive.ts","../../../projects/unipin-angular/kbd/unipin-angular-applet-kbd.ts"],"sourcesContent":["import { computed, Directive, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-kbd.mjs","sources":["../../../projects/unipin-angular/kbd/kbd.directive.ts","../../../projects/unipin-angular/kbd/unipin-angular-applet-kbd.ts"],"sourcesContent":["import { computed, Directive, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n\n@Directive({\n exportAs: 'upKbd',\n selector: '[upKbd]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpKbdDirective {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'bg-muted text-muted-foreground border border-border pointer-events-none inline-flex items-center gap-1 h-5 w-fit min-w-5 justify-center rounded-sm px-1 font-sans text-xs font-medium select-none',\n `[&_ng-icon:not([class*='size-'])]:size-3`,\n '[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10',\n this.inlineClass()\n );\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAYa,cAAc,CAAA;AAP3B,IAAA,WAAA,GAAA;QASkB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,mFAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;AACH,YAAA,OAAO,EAAE,CACP,mMAAmM,EACnM,CAAA,wCAAA,CAA0C,EAC1C,wJAAwJ,EACxJ,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,qFACF;AACF,IAAA;8GAdY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B;AACF,iBAAA;;;ACXD;;AAEG;;;;"}
|
|
@@ -17,8 +17,8 @@ class UpLoadingDialogComponent {
|
|
|
17
17
|
isDone: false,
|
|
18
18
|
totalProgress: 0,
|
|
19
19
|
errorMessages: [],
|
|
20
|
-
}, ...(ngDevMode ? [{ debugName: "requestState" }] : []));
|
|
21
|
-
this.state = computed(() => this.dialogRef?.state() ?? 'closed', ...(ngDevMode ? [{ debugName: "state" }] : []));
|
|
20
|
+
}, ...(ngDevMode ? [{ debugName: "requestState" }] : /* istanbul ignore next */ []));
|
|
21
|
+
this.state = computed(() => this.dialogRef?.state() ?? 'closed', ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
|
|
22
22
|
}
|
|
23
23
|
ngOnInit() {
|
|
24
24
|
this.executeTasks();
|
|
@@ -56,8 +56,8 @@ class UpLoadingDialogComponent {
|
|
|
56
56
|
};
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
60
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpLoadingDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: UpLoadingDialogComponent, isStandalone: true, selector: "up-loading-dialog", host: { properties: { "attr.data-state": "state()" }, classAttribute: "\n grid relative gap-6 bg-white rounded-xl shadow-lg \n [animation-duration:200] data-[state=open]:animate-in data-[state=closed]:animate-out \n data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 \n data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 \n data-[state=closed]:slide-out-to-top-[2%] data-[state=open]:slide-in-from-top-[2%] \n w-full p-6 max-w-[calc(100%-2rem)] mx-auto\n md:w-full md:min-w-120 md:max-w-130\n overflow-hidden border border-border\n " }, providers: [
|
|
61
61
|
provideIcons({
|
|
62
62
|
matWarningRound
|
|
63
63
|
})
|
|
@@ -124,10 +124,9 @@ class UpLoadingDialogComponent {
|
|
|
124
124
|
</div>
|
|
125
125
|
`, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: UpButtonDirective, selector: "[upButton]", inputs: ["size", "variant", "class"], exportAs: ["upButton"] }, { kind: "directive", type: UpProgressBarDirective, selector: "[upProgressBar]", inputs: ["max", "progress", "class"], exportAs: ["upProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
126
126
|
}
|
|
127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpLoadingDialogComponent, decorators: [{
|
|
128
128
|
type: Component,
|
|
129
129
|
args: [{
|
|
130
|
-
standalone: true,
|
|
131
130
|
selector: 'up-loading-dialog',
|
|
132
131
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
133
132
|
host: {
|
|
@@ -234,10 +233,10 @@ class UpLoadingDialogController {
|
|
|
234
233
|
}
|
|
235
234
|
});
|
|
236
235
|
}
|
|
237
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
238
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
236
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpLoadingDialogController, deps: [{ token: i1.UpDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
237
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpLoadingDialogController, providedIn: 'root' }); }
|
|
239
238
|
}
|
|
240
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpLoadingDialogController, decorators: [{
|
|
241
240
|
type: Injectable,
|
|
242
241
|
args: [{
|
|
243
242
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-loading-dialog.mjs","sources":["../../../projects/unipin-angular/loading-dialog/components/loading-dialog.component.ts","../../../projects/unipin-angular/loading-dialog/services/loading-dialog-controller.service.ts","../../../projects/unipin-angular/loading-dialog/unipin-angular-applet-loading-dialog.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, OnInit, signal } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matWarningRound } from '@ng-icons/material-icons/round';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { UpProgressBarDirective } from '@unipin/angular-applet/progress-bar';\nimport { injectDialogContext, UpDialogRef } from '@unipin/angular-applet/dialog';\nimport { LoadingDialogOptions } from '../types/loading-dialog-options.type';\n\n@Component({\n standalone: true,\n selector: 'up-loading-dialog',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-state]': 'state()',\n 'class': `\n grid relative gap-6 bg-white rounded-xl shadow-lg \n [animation-duration:200] data-[state=open]:animate-in data-[state=closed]:animate-out \n data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 \n data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 \n data-[state=closed]:slide-out-to-top-[2%] data-[state=open]:slide-in-from-top-[2%] \n w-full p-6 max-w-[calc(100%-2rem)] mx-auto\n md:w-full md:min-w-120 md:max-w-130\n overflow-hidden border border-border\n `,\n },\n providers: [\n provideIcons(\n {\n matWarningRound\n }\n )\n ],\n imports: [\n NgIcon,\n UpButtonDirective,\n UpProgressBarDirective,\n ],\n template: `\n <div class=\"border-b border-border pb-4\">\n <h3 class=\"text-lg font-semibold text-gray-900 flex items-center gap-3\">\n Processing Request\n </h3>\n </div>\n\n <div class=\"space-y-2\">\n <div class=\"flex items-center justify-between text-sm\">\n <span class=\"font-medium\">Progress</span>\n \n <span class=\"font-semibold\">\n {{ requestState().progress }}/{{ requestState().totalProgress }}\n </span>\n </div>\n \n <span \n upProgressBar \n class=\"h-2.5 w-full bg-gray-200 rounded-full overflow-hidden\"\n [max]=\"requestState().totalProgress\" \n [progress]=\"requestState().progress\"\n >\n </span>\n </div>\n\n @if (\n opts.showError && \n requestState().errorMessages.length > 0 && \n requestState().isDone\n ) {\n <div class=\"space-y-3 mt-4\">\n <div class=\"flex items-center gap-2 text-yellow-500\">\n <ng-icon name=\"matWarningRound\"/>\n \n <h4 class=\"text-sm font-medium text-gray-700\">\n Issues ({{ requestState().errorMessages.length }})\n </h4>\n </div>\n \n <div class=\"max-h-24 overflow-y-auto bg-gray-50 rounded-md border border-border\">\n <ul>\n @for (err of requestState().errorMessages; track $index) {\n <li class=\"px-3 py-2 text-xs bg-red-50 border-l-4 border-red-400 text-destructive\">\n {{err}}\n </li>\n }\n </ul>\n </div>\n </div>\n }\n\n <div class=\"flex flex-col-reverse gap-3 sm:flex-row sm:justify-end pt-2\">\n <button\n upButton\n class=\"flex-1 sm:flex-none sm:min-w-[120px] px-4 py-2.5 text-sm font-medium\"\n [disabled]=\"!requestState().isDone\"\n (click)=\"dialogRef.close()\"\n >\n {{ requestState().isDone? 'Done' : 'Processing...' }}\n </button>\n </div>\n `\n})\nexport class UpLoadingDialogComponent implements OnInit {\n \n public readonly dialogRef = inject(UpDialogRef);\n public readonly opts = injectDialogContext<LoadingDialogOptions>();\n \n public readonly requestState = signal(\n {\n progress: 0,\n isDone: false,\n totalProgress: 0,\n errorMessages: [] as string[],\n }\n );\n public readonly state = computed(() => this.dialogRef?.state()?? 'closed');\n \n public ngOnInit(): void{\n this.executeTasks();\n }\n\n protected async executeTasks(): Promise<void>{\n const { serviceCalls } = this.opts;\n\n this.requestState.set(\n {\n progress: 0,\n isDone: false,\n errorMessages: [],\n totalProgress: serviceCalls.length,\n }\n );\n\n for (const [i, service] of serviceCalls.entries()) {\n try {\n await firstValueFrom(service);\n } catch (err: unknown) {\n this.handleError(i, err);\n } finally {\n this.requestState.update((s) => ({ ...s, progress: s.progress + 1 }));\n }\n }\n this.requestState.update((s) => ({ ...s, isDone: true }));\n }\n\n protected handleError(i: number, err: unknown): void{\n const message = err instanceof Error? err.message : String(err);\n this.requestState.update(\n (s) => {\n return {\n ...s,\n errorMessages: [\n ...s.errorMessages, \n `Request #${i + 1} failed: ${message}`\n ]\n };\n }\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { UpDialogRef, UpDialogService } from '@unipin/angular-applet/dialog';\nimport { LoadingDialogOptions } from '../types/loading-dialog-options.type';\nimport { UpLoadingDialogComponent } from '../components/loading-dialog.component';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class UpLoadingDialogController {\n\n constructor(\n protected readonly dialog: UpDialogService\n ) { }\n\n public show(options: LoadingDialogOptions): UpDialogRef{\n return this.dialog.open(\n {\n context: options,\n content: UpLoadingDialogComponent,\n options: {\n hasBackdrop: true,\n disableClose: true,\n closeOnBackdropClick: false,\n closeOnOutsidePointerEvents: false\n }\n }\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-loading-dialog.mjs","sources":["../../../projects/unipin-angular/loading-dialog/components/loading-dialog.component.ts","../../../projects/unipin-angular/loading-dialog/services/loading-dialog-controller.service.ts","../../../projects/unipin-angular/loading-dialog/unipin-angular-applet-loading-dialog.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, OnInit, signal } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matWarningRound } from '@ng-icons/material-icons/round';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { UpProgressBarDirective } from '@unipin/angular-applet/progress-bar';\nimport { injectDialogContext, UpDialogRef } from '@unipin/angular-applet/dialog';\nimport { LoadingDialogOptions } from '../types/loading-dialog-options.type';\n\n\n@Component({\n selector: 'up-loading-dialog',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-state]': 'state()',\n 'class': `\n grid relative gap-6 bg-white rounded-xl shadow-lg \n [animation-duration:200] data-[state=open]:animate-in data-[state=closed]:animate-out \n data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 \n data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 \n data-[state=closed]:slide-out-to-top-[2%] data-[state=open]:slide-in-from-top-[2%] \n w-full p-6 max-w-[calc(100%-2rem)] mx-auto\n md:w-full md:min-w-120 md:max-w-130\n overflow-hidden border border-border\n `,\n },\n providers: [\n provideIcons(\n {\n matWarningRound\n }\n )\n ],\n imports: [\n NgIcon,\n UpButtonDirective,\n UpProgressBarDirective,\n ],\n template: `\n <div class=\"border-b border-border pb-4\">\n <h3 class=\"text-lg font-semibold text-gray-900 flex items-center gap-3\">\n Processing Request\n </h3>\n </div>\n\n <div class=\"space-y-2\">\n <div class=\"flex items-center justify-between text-sm\">\n <span class=\"font-medium\">Progress</span>\n \n <span class=\"font-semibold\">\n {{ requestState().progress }}/{{ requestState().totalProgress }}\n </span>\n </div>\n \n <span \n upProgressBar \n class=\"h-2.5 w-full bg-gray-200 rounded-full overflow-hidden\"\n [max]=\"requestState().totalProgress\" \n [progress]=\"requestState().progress\"\n >\n </span>\n </div>\n\n @if (\n opts.showError && \n requestState().errorMessages.length > 0 && \n requestState().isDone\n ) {\n <div class=\"space-y-3 mt-4\">\n <div class=\"flex items-center gap-2 text-yellow-500\">\n <ng-icon name=\"matWarningRound\"/>\n \n <h4 class=\"text-sm font-medium text-gray-700\">\n Issues ({{ requestState().errorMessages.length }})\n </h4>\n </div>\n \n <div class=\"max-h-24 overflow-y-auto bg-gray-50 rounded-md border border-border\">\n <ul>\n @for (err of requestState().errorMessages; track $index) {\n <li class=\"px-3 py-2 text-xs bg-red-50 border-l-4 border-red-400 text-destructive\">\n {{err}}\n </li>\n }\n </ul>\n </div>\n </div>\n }\n\n <div class=\"flex flex-col-reverse gap-3 sm:flex-row sm:justify-end pt-2\">\n <button\n upButton\n class=\"flex-1 sm:flex-none sm:min-w-[120px] px-4 py-2.5 text-sm font-medium\"\n [disabled]=\"!requestState().isDone\"\n (click)=\"dialogRef.close()\"\n >\n {{ requestState().isDone? 'Done' : 'Processing...' }}\n </button>\n </div>\n `\n})\nexport class UpLoadingDialogComponent implements OnInit {\n \n public readonly dialogRef = inject(UpDialogRef);\n public readonly opts = injectDialogContext<LoadingDialogOptions>();\n \n public readonly requestState = signal(\n {\n progress: 0,\n isDone: false,\n totalProgress: 0,\n errorMessages: [] as string[],\n }\n );\n public readonly state = computed(() => this.dialogRef?.state()?? 'closed');\n \n public ngOnInit(): void{\n this.executeTasks();\n }\n\n protected async executeTasks(): Promise<void>{\n const { serviceCalls } = this.opts;\n\n this.requestState.set(\n {\n progress: 0,\n isDone: false,\n errorMessages: [],\n totalProgress: serviceCalls.length,\n }\n );\n\n for (const [i, service] of serviceCalls.entries()) {\n try {\n await firstValueFrom(service);\n } catch (err: unknown) {\n this.handleError(i, err);\n } finally {\n this.requestState.update((s) => ({ ...s, progress: s.progress + 1 }));\n }\n }\n this.requestState.update((s) => ({ ...s, isDone: true }));\n }\n\n protected handleError(i: number, err: unknown): void{\n const message = err instanceof Error? err.message : String(err);\n this.requestState.update(\n (s) => {\n return {\n ...s,\n errorMessages: [\n ...s.errorMessages, \n `Request #${i + 1} failed: ${message}`\n ]\n };\n }\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { UpDialogRef, UpDialogService } from '@unipin/angular-applet/dialog';\nimport { LoadingDialogOptions } from '../types/loading-dialog-options.type';\nimport { UpLoadingDialogComponent } from '../components/loading-dialog.component';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class UpLoadingDialogController {\n\n constructor(\n protected readonly dialog: UpDialogService\n ) { }\n\n public show(options: LoadingDialogOptions): UpDialogRef{\n return this.dialog.open(\n {\n context: options,\n content: UpLoadingDialogComponent,\n options: {\n hasBackdrop: true,\n disableClose: true,\n closeOnBackdropClick: false,\n closeOnOutsidePointerEvents: false\n }\n }\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;MAqGa,wBAAwB,CAAA;AA3FrC,IAAA,WAAA,GAAA;AA6FkB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QAC/B,IAAA,CAAA,IAAI,GAAG,mBAAmB,EAAwB;QAElD,IAAA,CAAA,YAAY,GAAG,MAAM,CACnC;AACE,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,aAAa,EAAE,EAAc;AAC9B,SAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACF;AACe,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAG,QAAQ,4EAAC;AA4C3E,IAAA;IA1CQ,QAAQ,GAAA;QACb,IAAI,CAAC,YAAY,EAAE;IACrB;AAEU,IAAA,MAAM,YAAY,GAAA;AAC1B,QAAA,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI;AAElC,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB;AACE,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,YAAY,CAAC,MAAM;AACnC,SAAA,CACF;AAED,QAAA,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE;AACjD,YAAA,IAAI;AACF,gBAAA,MAAM,cAAc,CAAC,OAAO,CAAC;YAC/B;YAAE,OAAO,GAAY,EAAE;AACrB,gBAAA,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC;YAC1B;oBAAU;gBACR,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;YACvE;QACF;QACA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D;IAEU,WAAW,CAAC,CAAS,EAAE,GAAY,EAAA;AAC3C,QAAA,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,GAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;QAC/D,IAAI,CAAC,YAAY,CAAC,MAAM,CACtB,CAAC,CAAC,KAAI;YACJ,OAAO;AACL,gBAAA,GAAG,CAAC;AACJ,gBAAA,aAAa,EAAE;oBACb,GAAG,CAAC,CAAC,aAAa;AAClB,oBAAA,CAAA,SAAA,EAAY,CAAC,GAAG,CAAC,CAAA,SAAA,EAAY,OAAO,CAAA;AACrC;aACF;AACH,QAAA,CAAC,CACF;IACH;8GAxDW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,4gBAAA,EAAA,EAAA,SAAA,EA3ExB;AACT,YAAA,YAAY,CACV;gBACE;aACD;SAEJ,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAMS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAjEC,MAAM,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAiEb,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBA3FpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,OAAO,EAAE;;;;;;;;;AASR,IAAA,CAAA;AACF,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA,YAAY,CACV;4BACE;yBACD;AAEJ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,MAAM;wBACN,iBAAiB;wBACjB,sBAAsB;AACvB,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DT,EAAA;AACF,iBAAA;;;MC5FY,yBAAyB,CAAA;AAEpC,IAAA,WAAA,CACqB,MAAuB,EAAA;QAAvB,IAAA,CAAA,MAAM,GAAN,MAAM;IACvB;AAEG,IAAA,IAAI,CAAC,OAA6B,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB;AACE,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,OAAO,EAAE;AACP,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,2BAA2B,EAAE;AAC9B;AACF,SAAA,CACF;IACH;8GAnBW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA;;2FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACPD;;AAEG;;;;"}
|
|
@@ -305,7 +305,7 @@ class UpMarkdownDirective {
|
|
|
305
305
|
constructor(el, renderer) {
|
|
306
306
|
this.el = el;
|
|
307
307
|
this.renderer = renderer;
|
|
308
|
-
this.markdown = signal('', ...(ngDevMode ? [{ debugName: "markdown" }] : []));
|
|
308
|
+
this.markdown = signal('', ...(ngDevMode ? [{ debugName: "markdown" }] : /* istanbul ignore next */ []));
|
|
309
309
|
this.class = `
|
|
310
310
|
[&_h1]:text-4xl [&_h1]:font-bold [&_h1]:mt-0 [&_h1]:mb-4 [&_h1]:border-b [&_h1]:border-[#eeeeee]
|
|
311
311
|
[&_h2]:text-2xl [&_h2]:font-bold [&_h2]:mt-0 [&_h2]:mb-4 [&_h2]:border-b [&_h2]:border-[#eeeeee]
|
|
@@ -342,13 +342,12 @@ class UpMarkdownDirective {
|
|
|
342
342
|
ngOnDestroy() {
|
|
343
343
|
this.observer.disconnect();
|
|
344
344
|
}
|
|
345
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
346
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.
|
|
345
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpMarkdownDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
346
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: UpMarkdownDirective, isStandalone: true, selector: "[upMarkdown]", host: { properties: { "class": "class" } }, exportAs: ["upMarkdown"], ngImport: i0 }); }
|
|
347
347
|
}
|
|
348
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
348
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpMarkdownDirective, decorators: [{
|
|
349
349
|
type: Directive,
|
|
350
350
|
args: [{
|
|
351
|
-
standalone: true,
|
|
352
351
|
exportAs: 'upMarkdown',
|
|
353
352
|
selector: '[upMarkdown]',
|
|
354
353
|
host: {
|
|
@@ -385,10 +384,10 @@ class MarkdownService {
|
|
|
385
384
|
})
|
|
386
385
|
});
|
|
387
386
|
}
|
|
388
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
389
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
387
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: MarkdownService, deps: [{ token: UNIPIN_GQL_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
388
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: MarkdownService, providedIn: 'root' }); }
|
|
390
389
|
}
|
|
391
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
390
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: MarkdownService, decorators: [{
|
|
392
391
|
type: Injectable,
|
|
393
392
|
args: [{
|
|
394
393
|
providedIn: 'root'
|
|
@@ -402,11 +401,11 @@ class UpMarkdownInputComponent extends UpFieldControlComponent {
|
|
|
402
401
|
constructor(markdownService) {
|
|
403
402
|
super();
|
|
404
403
|
this.markdownService = markdownService;
|
|
405
|
-
this.value = model('', ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
406
|
-
this.placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
|
|
407
|
-
this.mode = model('write', ...(ngDevMode ? [{ debugName: "mode" }] : []));
|
|
408
|
-
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
|
|
409
|
-
this.textarea = viewChild('textarea', ...(ngDevMode ? [{ debugName: "textarea" }] : []));
|
|
404
|
+
this.value = model('', ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
405
|
+
this.placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
406
|
+
this.mode = model('write', ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
|
|
407
|
+
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
408
|
+
this.textarea = viewChild('textarea', ...(ngDevMode ? [{ debugName: "textarea" }] : /* istanbul ignore next */ []));
|
|
410
409
|
this.buttons = [
|
|
411
410
|
{ icon: 'customHeading', action: 'heading' },
|
|
412
411
|
{ icon: 'matFormatBoldRound', action: 'bold' },
|
|
@@ -417,13 +416,13 @@ class UpMarkdownInputComponent extends UpFieldControlComponent {
|
|
|
417
416
|
{ icon: 'matFormatListBulletedRound', action: 'ul' },
|
|
418
417
|
{ icon: 'matChecklistRound', action: 'taskList' },
|
|
419
418
|
];
|
|
420
|
-
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
|
|
421
|
-
this.contextGuid = input('', ...(ngDevMode ? [{ debugName: "contextGuid" }] : []));
|
|
422
|
-
this.contextType = input('', ...(ngDevMode ? [{ debugName: "contextType" }] : []));
|
|
419
|
+
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
420
|
+
this.contextGuid = input('', ...(ngDevMode ? [{ debugName: "contextGuid" }] : /* istanbul ignore next */ []));
|
|
421
|
+
this.contextType = input('', ...(ngDevMode ? [{ debugName: "contextType" }] : /* istanbul ignore next */ []));
|
|
423
422
|
this.isTouched = false;
|
|
424
423
|
this._computedClass = computed(() => {
|
|
425
424
|
return up('peer placeholder:text-muted-foreground/30 selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex flex-col min-h-48 size-full min-w-0 rounded-md border bg-transparent text-base shadow-xs transition-[color,box-shadow] outline-none md:text-sm overflow-hidden', 'has-[textarea:focus-visible]:border-ring has-[textarea:focus-visible]:ring-ring/50 has-[textarea:focus-visible]:ring-[3px] has-[textarea:focus-visible]:outline-none', this.error() ? 'ring-destructive/20 dark:ring-destructive/40 border-destructive has-[textarea:focus-visible]:ring-destructive/50' : '', this.inlineClass());
|
|
426
|
-
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
425
|
+
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
427
426
|
this.sub = null;
|
|
428
427
|
/**
|
|
429
428
|
* Callback function to handle value changes in the markdown input component.
|
|
@@ -638,8 +637,8 @@ class UpMarkdownInputComponent extends UpFieldControlComponent {
|
|
|
638
637
|
return null;
|
|
639
638
|
}
|
|
640
639
|
}
|
|
641
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
642
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
640
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpMarkdownInputComponent, deps: [{ token: MarkdownService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
641
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: UpMarkdownInputComponent, isStandalone: true, selector: "up-markdown-input", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, contextGuid: { classPropertyName: "contextGuid", publicName: "contextGuid", isSignal: true, isRequired: false, transformFunction: null }, contextType: { classPropertyName: "contextType", publicName: "contextType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", mode: "modeChange" }, host: { listeners: { "document:keyup": "handleStyleWithKeyboard($event)" }, properties: { "class": "_computedClass()" } }, providers: [
|
|
643
642
|
{
|
|
644
643
|
provide: UpFieldControl,
|
|
645
644
|
useExisting: forwardRef(() => UpMarkdownInputComponent)
|
|
@@ -660,9 +659,9 @@ class UpMarkdownInputComponent extends UpFieldControlComponent {
|
|
|
660
659
|
}),
|
|
661
660
|
], viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"shrink-0 w-full flex flex-col-reverse md:flex-row md:items-center justify-between gap-1 bg-[#f5f7f6]\">\n <div class=\"flex items-center h-full\">\n <button\n upButton\n variant=\"ghost\"\n class=\"transition-none rounded-none rounded-t-md\"\n [class]=\"\n mode() !== 'write'? '' : 'border-r border-input bg-white'\n \"\n (click)=\"mode.set('write')\"\n >\n Write\n </button>\n\n <button\n upButton\n variant=\"ghost\"\n class=\"transition-none rounded-none rounded-t-md\"\n [class]=\"\n mode() !== 'preview'? '' : 'border-x border-input bg-white'\n \"\n (click)=\"mode.set('preview')\"\n >\n Preview\n </button>\n </div>\n\n @if (mode() === 'write') {\n <div class=\"flex justify-start md:justify-end items-center gap-0.5\">\n @for (btn of buttons; track btn.action) {\n <button\n upButton\n size=\"sm\"\n variant=\"ghost\"\n class=\"p-0 px-2 py-1\"\n [disabled]=\"disabled()\"\n (click)=\"applyStyle(btn.action)\"\n >\n <ng-icon\n size=\"16px\" \n [name]=\"btn.icon\"\n />\n </button>\n }\n </div>\n }\n</div>\n\n<div class=\"grow relative\">\n @if (mode() === 'preview') {\n <div\n upMarkdown\n class=\"size-full absolute top-0 left-0 bg-white p-2 outline-none text-wrap break-words overflow-y-auto\"\n [innerHTML]=\"(value() || 'Nothing to preview')\"\n ></div>\n }\n @else {\n <textarea\n #textarea\n class=\"size-full absolute top-0 left-0 bg-white p-2 outline-none resize-none\" \n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n (blur)=\"touch()\"\n (input)=\"change($event)\"\n (paste)=\"pasteImage($event)\"\n (keyup)=\"changeSelection($event)\"\n (mouseup)=\"changeSelection($event)\"\n ></textarea>\n }\n</div>\n", dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: UpMarkdownDirective, selector: "[upMarkdown]", exportAs: ["upMarkdown"] }, { kind: "directive", type: UpButtonDirective, selector: "[upButton]", inputs: ["size", "variant", "class"], exportAs: ["upButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
662
661
|
}
|
|
663
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
662
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpMarkdownInputComponent, decorators: [{
|
|
664
663
|
type: Component,
|
|
665
|
-
args: [{
|
|
664
|
+
args: [{ selector: 'up-markdown-input', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
666
665
|
'[class]': '_computedClass()',
|
|
667
666
|
}, providers: [
|
|
668
667
|
{
|