@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.
Files changed (70) hide show
  1. package/README.md +4 -2
  2. package/fesm2022/unipin-angular-applet-accordion.mjs +39 -37
  3. package/fesm2022/unipin-angular-applet-accordion.mjs.map +1 -1
  4. package/fesm2022/unipin-angular-applet-alert-dialog.mjs +9 -9
  5. package/fesm2022/unipin-angular-applet-alert-dialog.mjs.map +1 -1
  6. package/fesm2022/unipin-angular-applet-alert.mjs +16 -19
  7. package/fesm2022/unipin-angular-applet-alert.mjs.map +1 -1
  8. package/fesm2022/unipin-angular-applet-approval.mjs +11 -11
  9. package/fesm2022/unipin-angular-applet-approval.mjs.map +1 -1
  10. package/fesm2022/{unipin-angular-applet-audit-audit-modal.component-3a2P0bZr.mjs → unipin-angular-applet-audit-audit-modal.component-Y61VDaze.mjs} +6 -7
  11. package/fesm2022/unipin-angular-applet-audit-audit-modal.component-Y61VDaze.mjs.map +1 -0
  12. package/fesm2022/unipin-angular-applet-audit.mjs +14 -14
  13. package/fesm2022/unipin-angular-applet-audit.mjs.map +1 -1
  14. package/fesm2022/unipin-angular-applet-auth.mjs +23 -26
  15. package/fesm2022/unipin-angular-applet-auth.mjs.map +1 -1
  16. package/fesm2022/unipin-angular-applet-avatar.mjs +6 -7
  17. package/fesm2022/unipin-angular-applet-avatar.mjs.map +1 -1
  18. package/fesm2022/unipin-angular-applet-badge.mjs +6 -7
  19. package/fesm2022/unipin-angular-applet-badge.mjs.map +1 -1
  20. package/fesm2022/unipin-angular-applet-buttons.mjs +13 -15
  21. package/fesm2022/unipin-angular-applet-buttons.mjs.map +1 -1
  22. package/fesm2022/unipin-angular-applet-calendar.mjs +23 -27
  23. package/fesm2022/unipin-angular-applet-calendar.mjs.map +1 -1
  24. package/fesm2022/unipin-angular-applet-collapsible.mjs +17 -20
  25. package/fesm2022/unipin-angular-applet-collapsible.mjs.map +1 -1
  26. package/fesm2022/unipin-angular-applet-common.mjs +25 -30
  27. package/fesm2022/unipin-angular-applet-common.mjs.map +1 -1
  28. package/fesm2022/unipin-angular-applet-containers.mjs +23 -26
  29. package/fesm2022/unipin-angular-applet-containers.mjs.map +1 -1
  30. package/fesm2022/unipin-angular-applet-dialog.mjs +64 -70
  31. package/fesm2022/unipin-angular-applet-dialog.mjs.map +1 -1
  32. package/fesm2022/unipin-angular-applet-forms.mjs +231 -236
  33. package/fesm2022/unipin-angular-applet-forms.mjs.map +1 -1
  34. package/fesm2022/unipin-angular-applet-froala.mjs +10 -11
  35. package/fesm2022/unipin-angular-applet-froala.mjs.map +1 -1
  36. package/fesm2022/unipin-angular-applet-grids.mjs +430 -17
  37. package/fesm2022/unipin-angular-applet-grids.mjs.map +1 -1
  38. package/fesm2022/unipin-angular-applet-infinite-scroll.mjs +5 -6
  39. package/fesm2022/unipin-angular-applet-infinite-scroll.mjs.map +1 -1
  40. package/fesm2022/unipin-angular-applet-json-viewer.mjs +8 -9
  41. package/fesm2022/unipin-angular-applet-json-viewer.mjs.map +1 -1
  42. package/fesm2022/unipin-angular-applet-kbd.mjs +5 -6
  43. package/fesm2022/unipin-angular-applet-kbd.mjs.map +1 -1
  44. package/fesm2022/unipin-angular-applet-loading-dialog.mjs +8 -9
  45. package/fesm2022/unipin-angular-applet-loading-dialog.mjs.map +1 -1
  46. package/fesm2022/unipin-angular-applet-markdown.mjs +20 -21
  47. package/fesm2022/unipin-angular-applet-markdown.mjs.map +1 -1
  48. package/fesm2022/unipin-angular-applet-popover.mjs +26 -30
  49. package/fesm2022/unipin-angular-applet-popover.mjs.map +1 -1
  50. package/fesm2022/unipin-angular-applet-progress-bar.mjs +8 -9
  51. package/fesm2022/unipin-angular-applet-progress-bar.mjs.map +1 -1
  52. package/fesm2022/unipin-angular-applet-skeleton.mjs +5 -6
  53. package/fesm2022/unipin-angular-applet-skeleton.mjs.map +1 -1
  54. package/fesm2022/unipin-angular-applet-spinner.mjs +7 -7
  55. package/fesm2022/unipin-angular-applet-spinner.mjs.map +1 -1
  56. package/fesm2022/unipin-angular-applet-stepper.mjs +17 -19
  57. package/fesm2022/unipin-angular-applet-stepper.mjs.map +1 -1
  58. package/fesm2022/unipin-angular-applet-swipeable.mjs +26 -30
  59. package/fesm2022/unipin-angular-applet-swipeable.mjs.map +1 -1
  60. package/fesm2022/unipin-angular-applet-tabs.mjs +22 -25
  61. package/fesm2022/unipin-angular-applet-tabs.mjs.map +1 -1
  62. package/fesm2022/unipin-angular-applet-tooltip.mjs +5 -6
  63. package/fesm2022/unipin-angular-applet-tooltip.mjs.map +1 -1
  64. package/package.json +6 -2
  65. package/types/unipin-angular-applet-accordion.d.ts +4 -2
  66. package/types/unipin-angular-applet-forms.d.ts +6 -3
  67. package/types/unipin-angular-applet-grids.d.ts +102 -15
  68. package/types/unipin-angular-applet-popover.d.ts +3 -3
  69. package/common/assets/sprites/flagGlobal.png +0 -0
  70. 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":"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"}
@@ -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.1.5", ngImport: i0, type: UpInfiniteScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
70
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.5", 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 }); }
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.1.5", ngImport: i0, type: UpInfiniteScrollDirective, decorators: [{
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 standalone: true,\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,qDAAC;AAEnE;;;;;AAKG;AACa,QAAA,IAAA,CAAA,UAAU,GAAwB,KAAK,CAAS,KAAK,sDAAC;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;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE;AACX,iBAAA;;;ACND;;AAEG;;;;"}
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.1.5", ngImport: i0, type: JsonViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.5", 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: `
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.1.5", ngImport: i0, type: JsonViewerComponent, decorators: [{
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 standalone: true,\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;AAnBhC,IAAA,WAAA,GAAA;AAqBE;;;;AAIG;AACa,QAAA,IAAA,CAAA,IAAI,GAAqC,KAAK,CAAC,QAAQ,+CAAuB;AAE9F;;;;AAIG;AACa,QAAA,IAAA,CAAA,QAAQ,GAAyB,KAAK,CAAU,KAAK,oDAAC;AAEtE;;;;AAIG;AACa,QAAA,IAAA,CAAA,KAAK,GAAwB,KAAK,CAAS,CAAC,iDAAC;QAE7C,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,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,0DACF;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;kBAnB/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,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;;;;"}
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.1.5", ngImport: i0, type: UpKbdDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
13
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.5", 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 }); }
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.1.5", ngImport: i0, type: UpKbdDirective, decorators: [{
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 standalone: true,\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;AAR3B,IAAA,WAAA,GAAA;QAUkB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,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,0DACF;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;kBAR1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B;AACF,iBAAA;;;ACXD;;AAEG;;;;"}
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.1.5", ngImport: i0, type: UpLoadingDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", 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: [
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.1.5", ngImport: i0, type: UpLoadingDialogComponent, decorators: [{
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.1.5", ngImport: i0, type: UpLoadingDialogController, deps: [{ token: i1.UpDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
238
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpLoadingDialogController, providedIn: 'root' }); }
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.1.5", ngImport: i0, type: UpLoadingDialogController, decorators: [{
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":"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"}
@@ -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.1.5", 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.1.5", type: UpMarkdownDirective, isStandalone: true, selector: "[upMarkdown]", host: { properties: { "class": "class" } }, exportAs: ["upMarkdown"], ngImport: i0 }); }
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.1.5", ngImport: i0, type: UpMarkdownDirective, decorators: [{
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.1.5", ngImport: i0, type: MarkdownService, deps: [{ token: UNIPIN_GQL_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
389
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: MarkdownService, providedIn: 'root' }); }
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.1.5", ngImport: i0, type: MarkdownService, decorators: [{
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.1.5", ngImport: i0, type: UpMarkdownInputComponent, deps: [{ token: MarkdownService }], target: i0.ɵɵFactoryTarget.Component }); }
642
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", 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: [
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.1.5", ngImport: i0, type: UpMarkdownInputComponent, decorators: [{
662
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UpMarkdownInputComponent, decorators: [{
664
663
  type: Component,
665
- args: [{ standalone: true, selector: 'up-markdown-input', changeDetection: ChangeDetectionStrategy.OnPush, host: {
664
+ args: [{ selector: 'up-markdown-input', changeDetection: ChangeDetectionStrategy.OnPush, host: {
666
665
  '[class]': '_computedClass()',
667
666
  }, providers: [
668
667
  {