@ai-table/grid 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. package/components/cell-editors/abstract-cell-editor.component.d.ts +2 -2
  2. package/components/cell-editors/abstract-cell-editor.component.d.ts.map +1 -1
  3. package/components/field-menu/field-menu.component.d.ts +14 -0
  4. package/components/field-menu/field-menu.component.d.ts.map +1 -0
  5. package/components/field-property-editor/field-property-editor.component.d.ts +12 -15
  6. package/components/field-property-editor/field-property-editor.component.d.ts.map +1 -1
  7. package/components/index.d.ts +2 -0
  8. package/components/index.d.ts.map +1 -0
  9. package/constants/field.d.ts +14 -0
  10. package/constants/field.d.ts.map +1 -0
  11. package/constants/grid.d.ts.map +1 -1
  12. package/constants/index.d.ts +1 -0
  13. package/constants/index.d.ts.map +1 -1
  14. package/core/action/field.d.ts +2 -2
  15. package/core/action/field.d.ts.map +1 -1
  16. package/core/action/record.d.ts +3 -3
  17. package/core/action/record.d.ts.map +1 -1
  18. package/core/constants/field.d.ts +4 -8
  19. package/core/constants/field.d.ts.map +1 -1
  20. package/core/index.d.ts +1 -0
  21. package/core/index.d.ts.map +1 -1
  22. package/core/types/action.d.ts +7 -6
  23. package/core/types/action.d.ts.map +1 -1
  24. package/core/types/core.d.ts +5 -0
  25. package/core/types/core.d.ts.map +1 -1
  26. package/core/utils/field.d.ts +7 -1
  27. package/core/utils/field.d.ts.map +1 -1
  28. package/core/utils/queries.d.ts +2 -2
  29. package/core/utils/queries.d.ts.map +1 -1
  30. package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +11 -9
  31. package/esm2022/components/field-menu/field-menu.component.mjs +36 -0
  32. package/esm2022/components/field-property-editor/field-property-editor.component.mjs +32 -24
  33. package/esm2022/components/index.mjs +2 -0
  34. package/esm2022/constants/field.mjs +15 -0
  35. package/esm2022/constants/grid.mjs +1 -1
  36. package/esm2022/constants/index.mjs +2 -1
  37. package/esm2022/core/action/field.mjs +1 -1
  38. package/esm2022/core/action/record.mjs +1 -1
  39. package/esm2022/core/constants/field.mjs +4 -4
  40. package/esm2022/core/index.mjs +2 -1
  41. package/esm2022/core/types/action.mjs +1 -1
  42. package/esm2022/core/types/core.mjs +1 -1
  43. package/esm2022/core/utils/field.mjs +12 -1
  44. package/esm2022/core/utils/queries.mjs +1 -1
  45. package/esm2022/grid.component.mjs +41 -30
  46. package/esm2022/public-api.mjs +2 -1
  47. package/esm2022/services/event.service.mjs +4 -4
  48. package/esm2022/services/field.service.mjs +32 -0
  49. package/esm2022/types/field.mjs +2 -0
  50. package/esm2022/types/grid.mjs +1 -1
  51. package/esm2022/types/index.mjs +2 -1
  52. package/fesm2022/ai-table-grid.mjs +236 -136
  53. package/fesm2022/ai-table-grid.mjs.map +1 -1
  54. package/grid.component.d.ts +13 -9
  55. package/grid.component.d.ts.map +1 -1
  56. package/package.json +1 -1
  57. package/public-api.d.ts +1 -0
  58. package/public-api.d.ts.map +1 -1
  59. package/services/field.service.d.ts +16 -0
  60. package/services/field.service.d.ts.map +1 -0
  61. package/types/field.d.ts +11 -0
  62. package/types/field.d.ts.map +1 -0
  63. package/types/grid.d.ts +8 -3
  64. package/types/grid.d.ts.map +1 -1
  65. package/types/index.d.ts +1 -0
  66. package/types/index.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ai-table-grid.mjs","sources":["../../../packages/grid/src/pipes/grid.ts","../../../packages/grid/src/utils/build.ts","../../../packages/grid/src/utils/cell.ts","../../../packages/grid/src/core/types/core.ts","../../../packages/grid/src/core/types/action.ts","../../../packages/grid/src/core/action/field.ts","../../../packages/grid/src/core/action/general.ts","../../../packages/grid/src/core/utils/id-creator.ts","../../../packages/grid/src/core/utils/field.ts","../../../packages/grid/src/core/utils/weak-map.ts","../../../packages/grid/src/core/utils/common.ts","../../../packages/grid/src/core/utils/record.ts","../../../packages/grid/src/core/utils/queries.ts","../../../packages/grid/src/core/action/record.ts","../../../packages/grid/src/core/action/index.ts","../../../packages/grid/src/constants/grid.ts","../../../packages/grid/src/components/cell-editors/abstract-cell-editor.component.ts","../../../packages/grid/src/components/cell-editors/single-select/single-select-editor.component.ts","../../../packages/grid/src/components/cell-editors/text/text-editor.component.ts","../../../packages/grid/src/components/cell-editors/number/number-editor.component.ts","../../../packages/grid/src/components/cell-editors/date-time/date-time-editor.component.ts","../../../packages/grid/src/components/cell-editors/rating/rating-editor.component.ts","../../../packages/grid/src/components/cell-editors/link/number-editor.component.ts","../../../packages/grid/src/constants/editor.ts","../../../packages/grid/src/services/event.service.ts","../../../packages/grid/src/core/constants/field.ts","../../../packages/grid/src/components/field-property-editor/field-property-editor.component.ts","../../../packages/grid/src/components/field-property-editor/field-property-editor.component.html","../../../packages/grid/src/grid.component.ts","../../../packages/grid/src/grid.component.html","../../../packages/grid/src/types/grid.ts","../../../packages/grid/src/ai-table-grid.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { AITableSelectOption } from '../core';;\n\n@Pipe({\n name: 'selectOption',\n standalone: true\n})\nexport class SelectOptionPipe implements PipeTransform {\n transform(id: string, options: AITableSelectOption[]) {\n return options.find((item) => item.id === id);\n }\n}\n","import { AITableFields, AITableRecords } from '../core';;\nimport { AITableGridData } from '../types';\n\nexport const buildGridData = (recordValue: AITableRecords, fieldsValue: AITableFields): AITableGridData => {\n return {\n type: 'grid',\n fields: fieldsValue,\n records: recordValue\n };\n};\n","import { computed, Signal } from '@angular/core';\nimport { AITableField, AITableFields, AITableRecord, AITableRecords } from '../core';\n\nexport function getRecordOrField(value: Signal<AITableRecords | AITableFields>, id: string): Signal<AITableField | AITableRecord> {\n return computed(() => {\n return value().find((item) => item.id === id)!;\n });\n}\n","import { WritableSignal } from '@angular/core';\nimport { AITableAction } from './action';\n\nexport enum AITableFieldType {\n // NotSupport = 0,\n Text = 1,\n Number = 2,\n SingleSelect = 3,\n // MultiSelect = 4,\n DateTime = 5,\n // Attachment = 6,\n Link = 7,\n // Email = 9,\n // Phone = 10,\n // Checkbox = 11,\n Rating = 12\n // Member = 13\n}\n\nexport enum AITableStatType {\n None = 0,\n CountAll = 1,\n Empty = 2,\n Filled = 3,\n Unique = 4,\n PercentEmpty = 5,\n PercentFilled = 6,\n PercentUnique = 7,\n Sum = 8,\n Average = 9,\n Max = 10,\n Min = 11,\n DateRangeOfDays = 12,\n DateRangeOfMonths = 13,\n Checked = 14,\n UnChecked = 15,\n PercentChecked = 16,\n PercentUnChecked = 17\n}\n\nexport interface AITableSelectOption {\n id: string;\n name: string;\n color?: string;\n}\n\nexport interface AITableField {\n id: string;\n name: string;\n type: AITableFieldType;\n width?: string;\n hidden?: boolean;\n frozen?: boolean;\n statType?: AITableStatType;\n [key: string]: AITableSelectOption[] | any;\n}\n\nexport interface AITableRecord {\n id: string;\n value: Record<string, any>;\n}\n\nexport type AITableRecords = AITableRecord[];\n\nexport type AITableFields = AITableField[];\n\nexport interface AITableValue {\n records: AITableRecords;\n fields: AITableFields;\n}\n\nexport interface AITable {\n records: WritableSignal<AITableRecords>;\n fields: WritableSignal<AITableFields>;\n actions: AITableAction[];\n onChange: () => void;\n apply: (action: AITableAction) => void;\n}\n\nexport interface AITableChangeOptions {\n records: AITableRecord[];\n fields: AITableField[];\n actions: AITableAction[];\n}\n","import { AITableField, AITableRecord } from './core';\n\nexport type RecordPath = number;\n\nexport type FieldPath = number;\n\nexport type Path = [RecordPath] | [FieldPath] | [RecordPath, FieldPath];\n\nexport enum ActionName {\n UpdateFieldValue = 'update_field_value',\n AddRecord = 'add_record',\n AddField = 'add_field'\n}\n\nexport enum ExecuteType {\n Execute,\n Undo,\n Redo\n}\n\nexport type UpdateFieldValueAction = {\n type: ActionName.UpdateFieldValue;\n path: [RecordPath, FieldPath];\n fieldValue: any;\n newFieldValue: any;\n};\n\nexport type AddRecordAction = {\n type: ActionName.AddRecord;\n path: [RecordPath];\n record: AITableRecord;\n};\n\nexport type AddFieldAction = {\n type: ActionName.AddField;\n path: [FieldPath];\n field: AITableField;\n};\n\nexport type AITableAction = UpdateFieldValueAction | AddRecordAction | AddFieldAction;\n","import { ActionName, AddFieldAction, FieldPath, AITable, AITableField } from '../types';\n\nexport function addField(aiTable: AITable, field: AITableField, path: [FieldPath]) {\n const operation: AddFieldAction = {\n type: ActionName.AddField,\n field,\n path\n };\n aiTable.apply(operation);\n}\n\nexport const FieldActions = {\n addField\n};\n","import { ActionName, AITable, AITableAction, AITableFields, AITableRecords } from '../types';\nimport { createDraft, finishDraft } from 'immer';\n\nconst apply = (aiTable: AITable, records: AITableRecords, fields: AITableFields, options: AITableAction) => {\n switch (options.type) {\n case ActionName.UpdateFieldValue: {\n const [recordIndex, fieldIndex] = options.path;\n const fieldId = aiTable.fields()[fieldIndex].id;\n records[recordIndex].value[fieldId] = options.newFieldValue;\n break;\n }\n case ActionName.AddRecord: {\n const [recordIndex] = options.path;\n records.splice(recordIndex, 0, options.record);\n break;\n }\n case ActionName.AddField: {\n const [fieldIndex] = options.path;\n const newField = options.field;\n fields.splice(fieldIndex, 0, newField);\n const newRecord = {\n [newField.id]: ''\n };\n records.forEach((item) => {\n item.value = {\n ...item.value,\n ...newRecord\n };\n });\n }\n }\n return {\n records,\n fields\n };\n};\n\nexport const GeneralActions = {\n transform(aiTable: AITable, op: AITableAction): void {\n const records = createDraft(aiTable.records());\n const fields = createDraft(aiTable.fields());\n apply(aiTable, records, fields, op);\n aiTable.fields.update(() => {\n return finishDraft(fields);\n });\n aiTable.records.update(() => {\n return finishDraft(records);\n });\n }\n};\n","export function idCreator(length = 5) {\n // remove numeral\n const $chars =\n 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz'; /**** Easily confusing characters are removed by default oOLl,9gq,Vv,Uu,I1****/\n const maxPosition = $chars.length;\n let key = '';\n for (let i = 0; i < length; i++) {\n key += $chars.charAt(Math.floor(Math.random() * maxPosition));\n }\n return key;\n}\n","import { AITableFieldType } from '../types';\n\nexport function getDefaultFieldValue(type: AITableFieldType) {\n return '';\n}\n","import { AITable } from '../types';\n\nexport const FLUSHING = new WeakMap<AITable, boolean>();\n","import { Actions } from '../action';\nimport { AITable, AITableAction, AITableFields, AITableRecords } from '../types';\nimport { FLUSHING } from './weak-map';\nimport { WritableSignal } from '@angular/core';\n\nexport function createAITable(records: WritableSignal<AITableRecords>, fields: WritableSignal<AITableFields>): AITable {\n const aiTable: AITable = {\n records,\n fields,\n actions: [],\n onChange: () => {},\n apply: (action: AITableAction) => {\n aiTable.actions.push(action);\n Actions.transform(aiTable, action);\n\n if (!FLUSHING.get(aiTable)) {\n FLUSHING.set(aiTable, true);\n Promise.resolve().then(() => {\n FLUSHING.set(aiTable, false);\n aiTable.onChange();\n aiTable.actions = [];\n });\n }\n }\n };\n return aiTable;\n}\n","import { AITableFields, AITableRecord } from '../types';\nimport { getDefaultFieldValue } from './field';\nimport { idCreator } from './id-creator';\n\nexport function getDefaultRecord(fields: AITableFields) {\n const newRow: AITableRecord = {\n id: idCreator(),\n value: {}\n };\n fields.map((item) => {\n newRow.value[item.id] = getDefaultFieldValue(item.type);\n });\n return newRow;\n}\n","import { isUndefinedOrNull } from 'ngx-tethys/util';\nimport { FieldPath, Path, RecordPath, AITable, AITableField, AITableRecord } from '../types';\n\nexport const AITableQueries = {\n findPath(aiTable: AITable, field?: AITableField, record?: AITableRecord): Path {\n const recordIndex = record && aiTable.records().indexOf(record);\n const fieldIndex = field && aiTable.fields().indexOf(field);\n if (!isUndefinedOrNull(recordIndex) && recordIndex > -1 && !isUndefinedOrNull(fieldIndex) && fieldIndex > -1) {\n return [recordIndex!, fieldIndex!];\n }\n if (!isUndefinedOrNull(recordIndex) && recordIndex > -1) {\n return [recordIndex];\n }\n if (!isUndefinedOrNull(fieldIndex) && fieldIndex > -1) {\n return [fieldIndex];\n }\n throw new Error(`Unable to find the path: ${JSON.stringify({ ...(field || {}), ...(record || {}) })}`);\n },\n getFieldValue(aiTable: AITable, path: [RecordPath, FieldPath]): any {\n if (!aiTable || !aiTable.records() || !aiTable.fields()) {\n throw new Error(`Cannot find a descendant at path [${path}]`);\n }\n const fieldId = aiTable.fields()[path[1]].id;\n return aiTable.records()[path[0]].value[fieldId];\n }\n};\n","import { ActionName, AddRecordAction, FieldPath, RecordPath, UpdateFieldValueAction, AITable, AITableRecord } from '../types';\nimport { AITableQueries } from '../utils';\n\nexport function updateFieldValue(aiTable: AITable, value: any, path: [RecordPath, FieldPath]) {\n const node = AITableQueries.getFieldValue(aiTable, path);\n if (node !== value) {\n const operation: UpdateFieldValueAction = {\n type: ActionName.UpdateFieldValue,\n fieldValue: node,\n newFieldValue: value,\n path\n };\n aiTable.apply(operation);\n }\n}\n\nexport function addRecord(aiTable: AITable, record: AITableRecord, path: [RecordPath]) {\n const operation: AddRecordAction = {\n type: ActionName.AddRecord,\n record,\n path\n };\n aiTable.apply(operation);\n}\n\nexport const RecordActions = {\n addRecord,\n updateFieldValue\n};\n","import { FieldActions } from './field';\nimport { GeneralActions } from './general';\nimport { RecordActions } from './record';\n\nexport const Actions = {\n ...GeneralActions,\n ...RecordActions,\n ...FieldActions\n};\n","import { AITableFieldType } from '../core';\n\nexport const DEFAULT_COLUMN_WIDTH = 200;\n\nexport const MIN_COLUMN_WIDTH = 80;\n\nexport const DBL_CLICK_EDIT_TYPE = [\n AITableFieldType.Text,\n AITableFieldType.Number,\n AITableFieldType.SingleSelect,\n AITableFieldType.DateTime\n];\n\nexport const RowHeight = {\n Short: 32,\n Medium: 57,\n Tall: 104,\n ExtraTall: 152\n};\n","import { ChangeDetectionStrategy, Component, computed, inject, input, OnInit } from '@angular/core';\nimport { ThyPopoverRef } from 'ngx-tethys/popover';\nimport { GridCellPath } from '../../types';\nimport { Actions, AITable, AITableField, AITableQueries, AITableRecord } from '../../core';\n\n@Component({\n selector: 'abstract-edit-cell',\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class AbstractEditCellEditor<TValue, TFieldType extends AITableField = AITableField> implements OnInit {\n field = input.required<TFieldType>();\n\n record = input.required<AITableRecord>();\n\n aiTable = input.required<AITable>();\n\n modelValue!: TValue;\n\n protected thyPopoverRef = inject(ThyPopoverRef<AbstractEditCellEditor<TValue>>);\n\n ngOnInit(): void {\n this.modelValue = computed(() => {\n const path = AITableQueries.findPath(this.aiTable(), this.field(), this.record()) as GridCellPath;\n return AITableQueries.getFieldValue(this.aiTable(), path);\n })();\n }\n\n updateFieldValue() {\n const path = AITableQueries.findPath(this.aiTable(), this.field(), this.record()) as GridCellPath;\n Actions.updateFieldValue(this.aiTable(), this.modelValue, path);\n }\n\n closePopover() {\n this.thyPopoverRef.close();\n }\n}\n","import { NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThySelect } from 'ngx-tethys/select';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\nimport { ThyTag } from 'ngx-tethys/tag';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyOption } from 'ngx-tethys/shared';\nimport { AITableSelectOption, AITableField } from '../../../core';\n\nexport interface AITableSingleSelectField extends AITableField {\n options: AITableSelectOption[];\n}\n\n@Component({\n selector: 'single-select-cell-editor',\n template: `<thy-select [(ngModel)]=\"modelValue\" [thyAutoExpand]=\"true\" (thyOnExpandStatusChange)=\"updateValue($event)\">\n <thy-option *ngFor=\"let option of selectOptions()\" [thyValue]=\"option.id\" [thyLabelText]=\"option.name\"> </thy-option>\n </thy-select> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block h-100'\n },\n imports: [NgIf, NgForOf, FormsModule, ThySelect, ThyOption, ThyTag, ThyIcon]\n})\nexport class SingleSelectCellEditorComponent extends AbstractEditCellEditor<string, AITableSingleSelectField> {\n selectOptions = computed(() => {\n return this.field().options;\n });\n\n constructor() {\n super();\n }\n\n updateValue(value: boolean) {\n if (!value) {\n this.updateFieldValue();\n this.closePopover();\n }\n }\n}\n","import { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyAutofocusDirective, ThyEnterDirective } from 'ngx-tethys/shared';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\n\n@Component({\n selector: 'text-cell-editor',\n template: `<input\n thyInput\n [thyAutofocus]=\"true\"\n [(ngModel)]=\"modelValue\"\n (thyEnter)=\"updateValue()\"\n (blur)=\"updateValue()\"\n placeholder=\"\"\n /> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, FormsModule, ThyAutofocusDirective, ThyInputDirective, ThyEnterDirective]\n})\nexport class TextCellEditorComponent extends AbstractEditCellEditor<string> {\n updateValue() {\n this.updateFieldValue();\n this.closePopover();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInputNumber } from 'ngx-tethys/input-number';\nimport { ThyAutofocusDirective, ThyEnterDirective } from 'ngx-tethys/shared';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\n\n@Component({\n selector: 'number-cell-editor',\n template: `<thy-input-number\n class=\"h-100\"\n [thyAutoFocus]=\"true\"\n [(ngModel)]=\"modelValue\"\n (thyEnter)=\"updateValue()\"\n (thyBlur)=\"updateValue()\"\n placeholder=\"\"\n /> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, ThyAutofocusDirective, ThyEnterDirective, ThyInputNumber]\n})\nexport class NumberCellEditorComponent extends AbstractEditCellEditor<number> {\n updateValue() {\n this.updateFieldValue();\n this.closePopover();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DateEntry, ThyDatePicker } from 'ngx-tethys/date-picker';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\nimport { ThyTimePickerModule } from 'ngx-tethys/time-picker';\n\n@Component({\n selector: 'date-time-cell-editor',\n template: `\n <thy-date-picker\n class=\"h-100\"\n thyTimestampPrecision=\"milliseconds\"\n thyPlaceHolder=\"选择时间\"\n [(ngModel)]=\"modelValue\"\n (ngModelChange)=\"updateValue()\"\n (thyOpenChange)=\"thyOpenChange($event)\"\n [thyAllowClear]=\"true\"\n [thyShowShortcut]=\"true\"\n [thyHasBackdrop]=\"false\"\n [thyShowTime]=\"dateShowTime()\"\n [thyOpen]=\"true\"\n [thyFormat]=\"dateFormat\"\n >\n </thy-date-picker>\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, ThyDatePicker, ThyTimePickerModule],\n host: {\n class: 'date-time-cell-editor'\n }\n})\nexport class DateTimeCellEditorComponent extends AbstractEditCellEditor<DateEntry> {\n dateShowTime = input<boolean>(false);\n\n dateFormat = computed(() => {\n return this.dateShowTime() ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n })();\n\n override ngOnInit(): void {\n super.ngOnInit();\n if (!this.modelValue && this.dateShowTime()) {\n this.modelValue = {\n date: 0,\n with_time: 1\n };\n }\n }\n\n updateValue() {\n this.updateFieldValue();\n this.closePopover();\n }\n\n thyOpenChange(isOpen: Boolean) {\n if (!isOpen) {\n this.closePopover();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\nimport { ThyRate } from 'ngx-tethys/rate';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\n@Component({\n selector: 'rating-cell-editor',\n template: ` <thy-rate [(ngModel)]=\"modelValue\" (ngModelChange)=\"updateValue()\"></thy-rate> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, ThyRate, ThyTooltipModule]\n})\nexport class RatingCellEditorComponent extends AbstractEditCellEditor<number> {\n updateValue() {\n this.updateFieldValue();\n this.closePopover();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInputNumber } from 'ngx-tethys/input-number';\nimport { ThyAutofocusDirective, ThyEnterDirective } from 'ngx-tethys/shared';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\n\n@Component({\n selector: 'link-cell-editor',\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, ThyAutofocusDirective, ThyEnterDirective, ThyInputNumber]\n})\nexport class LinkCellEditorComponent extends AbstractEditCellEditor<number> {\n updateValue() {\n this.updateFieldValue();\n this.closePopover();\n }\n}\n","import { AITableFieldType } from '../core';\nimport { SingleSelectCellEditorComponent } from '../components/cell-editors/single-select/single-select-editor.component';\nimport { TextCellEditorComponent } from '../components/cell-editors/text/text-editor.component';\nimport { NumberCellEditorComponent } from '../components/cell-editors/number/number-editor.component';\nimport { DateTimeCellEditorComponent } from '../components/cell-editors/date-time/date-time-editor.component';\nimport { RatingCellEditorComponent } from '../components/cell-editors/rating/rating-editor.component';\nimport { LinkCellEditorComponent } from '../components/cell-editors/link/number-editor.component';\n\nexport const GRID_CELL_EDITOR_MAP: Record<AITableFieldType, any> = {\n [AITableFieldType.Text]: TextCellEditorComponent,\n [AITableFieldType.SingleSelect]: SingleSelectCellEditorComponent,\n [AITableFieldType.Number]: NumberCellEditorComponent,\n [AITableFieldType.DateTime]: DateTimeCellEditorComponent,\n [AITableFieldType.Rating]: RatingCellEditorComponent,\n [AITableFieldType.Link]: LinkCellEditorComponent\n};\n","import { Injectable, signal, Signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { DBL_CLICK_EDIT_TYPE } from '../constants';\nimport { getRecordOrField } from '../utils';\nimport { AITable, AITableField, AITableFieldType, AITableRecord } from '../core';\nimport { GRID_CELL_EDITOR_MAP } from '../constants/editor';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { AITableGridCellRenderSchema } from '../types';\n\n@Injectable()\nexport class AITableGridEventService {\n aiTable!: AITable;\n\n aiFieldRenderers?: Partial<Record<AITableFieldType, AITableGridCellRenderSchema>>;\n\n takeUntilDestroyed = takeUntilDestroyed();\n\n constructor(private thyPopover: ThyPopover) {}\n\n initialize(aiTable: AITable, aiFieldRenderers?: Partial<Record<AITableFieldType, AITableGridCellRenderSchema>>) {\n this.aiTable = aiTable;\n this.aiFieldRenderers = aiFieldRenderers;\n }\n\n registerEvents(element: HTMLElement) {\n fromEvent<MouseEvent>(element, 'dblclick')\n .pipe(this.takeUntilDestroyed)\n .subscribe((event) => {\n this.dblClick(event as MouseEvent);\n });\n }\n\n private dblClick(event: MouseEvent) {\n const cellDom = (event.target as HTMLElement).closest('.grid-cell') as HTMLElement;\n const type = cellDom && cellDom.getAttribute('type')!;\n if (type && DBL_CLICK_EDIT_TYPE.includes(Number(type))) {\n this.openEdit(cellDom);\n }\n }\n\n private getEditorComponent(type: AITableFieldType) {\n if (this.aiFieldRenderers && this.aiFieldRenderers[type]) {\n return this.aiFieldRenderers[type]!.edit;\n }\n return GRID_CELL_EDITOR_MAP[type];\n }\n\n private openEdit(cellDom: HTMLElement) {\n const { x, y, width, height } = cellDom.getBoundingClientRect();\n const fieldId = cellDom.getAttribute('fieldId')!;\n const recordId = cellDom.getAttribute('recordId')!;\n const field = getRecordOrField(this.aiTable.fields, fieldId) as Signal<AITableField>;\n const record = getRecordOrField(this.aiTable.records, recordId) as Signal<AITableRecord>;\n const component = this.getEditorComponent(field().type);\n this.thyPopover.open(component, {\n origin: cellDom,\n originPosition: {\n x: x - 1,\n y: y + 1,\n width: width + 2,\n height: height + 2\n },\n width: width + 2 + 'px',\n height: height + 2 + 'px',\n placement: 'top',\n offset: -(height + 4),\n initialState: {\n field: field,\n record: record,\n aiTable: signal(this.aiTable)\n },\n panelClass: 'grid-cell-editor',\n outsideClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n animationDisabled: true\n });\n }\n}\n","import { AITableFieldType } from '../types';\nimport { helpers } from 'ngx-tethys/util';\n\nexport const BasicFieldTypes = [\n {\n type: AITableFieldType.Text,\n name: '文本',\n icon: 'font'\n },\n {\n type: AITableFieldType.SingleSelect,\n name: '单选',\n icon: 'check-circle'\n },\n {\n type: AITableFieldType.Number,\n name: '数字',\n icon: 'hashtag'\n },\n {\n type: AITableFieldType.DateTime,\n name: '日期',\n icon: 'calendar'\n },\n {\n type: AITableFieldType.Rating,\n name: '评分',\n icon: 'star-circle'\n },\n {\n type: AITableFieldType.Link,\n name: '链接',\n icon: 'link-insert'\n }\n];\n\nexport const FieldTypes = [...BasicFieldTypes];\n\nexport const FieldTypesMap = helpers.keyBy([...FieldTypes], 'type');\n","import { NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnInit, WritableSignal, computed, inject, input, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInput, ThyInputCount, ThyInputGroup, ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyConfirmValidatorDirective, ThyUniqueCheckValidator, ThyFormValidatorConfig, ThyFormModule } from 'ngx-tethys/form';\nimport {\n ThyDropdownDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective\n} from 'ngx-tethys/dropdown';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { of } from 'rxjs';\nimport { AITableField, AITableFieldType, AITableFields, idCreator } from '../../core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { FieldTypes, FieldTypesMap } from '../../core/constants/field';\nimport { ThyPopoverRef } from 'ngx-tethys/popover';\nimport { ThyListItem } from 'ngx-tethys/list';\n\n@Component({\n selector: 'field-property-editor',\n templateUrl: './field-property-editor.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgIf,\n NgForOf,\n FormsModule,\n ThyIcon,\n ThyInput,\n ThyInputGroup,\n ThyInputCount,\n ThyInputDirective,\n ThyConfirmValidatorDirective,\n ThyUniqueCheckValidator,\n ThyDropdownDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyButton,\n ThyFormModule,\n ThyListItem\n ],\n host: {\n class: 'field-property-editor d-block pl-5 pr-5 pb-5 pt-4'\n },\n styles: [\n `\n :host {\n width: 350px;\n }\n `\n ]\n})\nexport class FieldPropertyEditorComponent implements OnInit {\n fields = input.required<AITableFields>();\n\n @Input({ required: true }) confirmAction: ((field: AITableField) => void) | null = null;\n\n field: WritableSignal<AITableField> = signal({ id: idCreator(), type: AITableFieldType.Text, name: '' });\n\n fieldType = computed(() => {\n return FieldTypesMap[this.field().type];\n });\n\n fieldMaxLength = 32;\n\n validatorConfig: ThyFormValidatorConfig = {\n validationMessages: {\n fieldName: {\n required: '列名不能为空',\n thyUniqueCheck: '列名已存在'\n }\n }\n };\n\n selectableFields = FieldTypes;\n\n protected thyPopoverRef = inject(ThyPopoverRef<FieldPropertyEditorComponent>);\n\n constructor() {}\n\n ngOnInit() {}\n\n checkUniqueName = (fieldName: string) => {\n fieldName = fieldName?.trim();\n return of(!!this.fields()?.find((field) => field.name === fieldName));\n };\n\n selectFieldType(fieldType: AITableFieldType) {\n this.field.update((item) => ({ ...item, type: fieldType }));\n }\n\n addField() {\n this.confirmAction!(this.field());\n this.thyPopoverRef.close();\n }\n\n cancel() {\n this.thyPopoverRef.close();\n }\n}\n","<form thyForm name=\"createPropertyForm\" [thyFormValidatorConfig]=\"validatorConfig\" thyLayout=\"vertical\">\n <thy-form-group thyLabelRequired thyLabelText=\"表格列名\">\n <thy-input-group>\n <input\n thyInput\n thyAutofocus\n name=\"fieldName\"\n [maxlength]=\"fieldMaxLength\"\n [(ngModel)]=\"field().name\"\n required\n placeholder=\"输入列名称\"\n [thyUniqueCheck]=\"checkUniqueName\"\n />\n <ng-template #suffix>\n <thy-input-count></thy-input-count>\n </ng-template>\n </thy-input-group>\n </thy-form-group>\n <thy-form-group thyLabelText=\"列类型\">\n <div class=\"ml-n5 mr-n5\">\n <thy-list-item [thyDropdown]=\"menu\" thyTrigger=\"hover\" thyPlacement=\"right\" class=\"justify-content-between\">\n <span>\n <thy-icon [thyIconName]=\"fieldType().icon\" class=\"text-desc mr-2\"></thy-icon>\n <span>{{ fieldType().name }}</span>\n </span>\n <thy-icon thyIconName=\"angle-right\" class=\"text-desc\"></thy-icon>\n </thy-list-item>\n </div>\n </thy-form-group>\n <thy-form-group-footer thyAlign=\"right\">\n <button thyButton=\"link-secondary\" (click)=\"cancel()\" thySize=\"sm\">取消</button>\n <button thyButton=\"primary\" (thyFormSubmit)=\"addField()\" thySize=\"sm\">确定</button>\n </thy-form-group-footer>\n</form>\n\n<thy-dropdown-menu #menu>\n @for (item of selectableFields; track item.type) {\n <a thyDropdownMenuItem href=\"javascript:;\" (click)=\"selectFieldType(item.type)\">\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n</thy-dropdown-menu>\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, model, OnInit, output } from '@angular/core';\nimport { CommonModule, NgClass, NgComponentOutlet, NgForOf } from '@angular/common';\nimport { SelectOptionPipe } from './pipes/grid';\nimport { ThyTag } from 'ngx-tethys/tag';\nimport { ThyPopover, ThyPopoverModule } from 'ngx-tethys/popover';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { buildGridData } from './utils';\nimport { AITableGridCellRenderSchema, AITableRowHeight } from './types';\nimport {\n Actions,\n createAITable,\n getDefaultRecord,\n idCreator,\n AITable,\n AITableChangeOptions,\n AITableFields,\n AITableFieldType,\n AITableRecords,\n AITableField\n} from './core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { AITableGridEventService } from './services/event.service';\nimport { FieldPropertyEditorComponent } from './components/field-property-editor/field-property-editor.component';\nimport { ThyDatePickerFormatPipe } from 'ngx-tethys/date-picker';\nimport { ThyRate } from 'ngx-tethys/rate';\nimport { FormsModule } from '@angular/forms';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyTooltipModule, ThyTooltipService } from 'ngx-tethys/tooltip';\nimport { ThyStopPropagationDirective } from 'ngx-tethys/shared';\n\n@Component({\n selector: 'ai-table-grid',\n templateUrl: './grid.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ai-table-grid'\n },\n imports: [\n NgForOf,\n NgClass,\n NgComponentOutlet,\n CommonModule,\n FormsModule,\n SelectOptionPipe,\n ThyTag,\n ThyPopoverModule,\n ThyIcon,\n ThyRate,\n FieldPropertyEditorComponent,\n ThyDatePickerFormatPipe,\n ThyTooltipModule,\n ThyFlexibleText,\n ThyStopPropagationDirective\n ],\n providers: [ThyTooltipService, AITableGridEventService]\n})\nexport class AITableGridComponent implements OnInit {\n aiRecords = model.required<AITableRecords>();\n\n aiFields = model.required<AITableFields>();\n\n aiRowHeight = input<AITableRowHeight>();\n\n aiFieldRenderers = input<Partial<Record<AITableFieldType, AITableGridCellRenderSchema>>>();\n\n aiReadonly = input<boolean>();\n\n AITableFieldType = AITableFieldType;\n\n takeUntilDestroyed = takeUntilDestroyed();\n\n aiTable!: AITable;\n\n onChange = output<AITableChangeOptions>();\n\n gridData = computed(() => {\n return buildGridData(this.aiRecords(), this.aiFields());\n });\n\n constructor(\n private elementRef: ElementRef,\n private aiTableGridEventService: AITableGridEventService,\n private thyPopover: ThyPopover\n ) {}\n\n ngOnInit(): void {\n this.initAITable();\n this.aiTableGridEventService.initialize(this.aiTable, this.aiFieldRenderers());\n this.aiTableGridEventService.registerEvents(this.elementRef.nativeElement);\n }\n\n initAITable() {\n this.aiTable = createAITable(this.aiRecords, this.aiFields);\n this.aiTable.onChange = () => {\n this.onChange.emit({\n records: this.aiRecords(),\n fields: this.aiFields(),\n actions: this.aiTable.actions\n });\n };\n }\n\n addRecord() {\n Actions.addRecord(this.aiTable, getDefaultRecord(this.aiFields()), [this.aiRecords().length]);\n }\n\n addField(event: Event) {\n this.thyPopover.open(FieldPropertyEditorComponent, {\n origin: event.currentTarget as HTMLElement,\n manualClosure: true,\n placement: 'bottomLeft',\n initialState: {\n fields: this.aiFields,\n confirmAction: (field: AITableField) => {\n Actions.addField(this.aiTable, field, [this.aiFields().length]);\n }\n }\n });\n }\n}\n","<div class=\"grid-header d-flex\">\n <div class=\"grid-column-checkbox grid-cell\">\n <input type=\"checkbox\" />\n </div>\n @for (field of gridData().fields; track field.id) {\n <div class=\"grid-cell\">{{ field.name }}</div>\n }\n <div class=\"grid-column-blank cursor-pointer\" (click)=\"addField($event)\"><thy-icon thyIconName=\"plus\"></thy-icon></div>\n</div>\n<div class=\"grid-body d-flex\">\n @for (record of gridData().records; track record.id; let index = $index) {\n <div class=\"grid-row d-flex\">\n <div class=\"grid-row-index\">\n {{ index + 1 }}\n </div>\n @for (field of gridData().fields; track $index) {\n <div class=\"grid-cell\" [attr.type]=\"[field.type]\" [attr.fieldId]=\"[field.id]\" [attr.recordId]=\"[record.id]\" #cell>\n @switch (field.type) {\n @case (AITableFieldType.SingleSelect) {\n @if (record.value[field.id] | selectOption: field['options']; as selectedOption) {\n <thy-tag [thyColor]=\"selectedOption!.color!\">{{ selectedOption.name }}</thy-tag>\n }\n }\n @case (AITableFieldType.DateTime) {\n {{ record.value[field.id] | thyDatePickerFormat }}\n }\n @case (AITableFieldType.Rating) {\n <thy-rate [(ngModel)]=\"record.value[field.id]\"></thy-rate>\n }\n @case (AITableFieldType.Link) {\n <a\n class=\"d-block pl-4 pr-4\"\n thyStopPropagation\n thyFlexibleText\n [thyTooltipContent]=\"record.value[field.id]?.text\"\n [href]=\"record.value[field.id]?.url\"\n target=\"_blank\"\n >{{ record.value[field.id]?.text }}</a\n >\n }\n @default {\n {{ record.value[field.id] }}\n }\n }\n </div>\n }\n <div class=\"grid-column-blank\"></div>\n </div>\n }\n <div class=\"grid-row-insert grid-row cursor-pointer\" (click)=\"addRecord()\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n\n<div #activeBorder class=\"active-border\"></div>\n","import { FieldPath, RecordPath, AITableField, AITableRecord } from '../core';\n\nexport enum AITableRowHeight {\n Short = 1,\n Medium = 2,\n Tall = 3,\n ExtraTall = 4\n}\n\nexport interface AITableGridCellRenderSchema {\n edit: any;\n}\n\nexport interface AITableGridData {\n type: 'grid';\n fields: AITableField[];\n records: AITableRecord[];\n}\n\nexport type GridCellPath = [RecordPath, FieldPath];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.AITableGridEventService","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"ai-table-grid.mjs","sources":["../../../packages/grid/src/pipes/grid.ts","../../../packages/grid/src/utils/build.ts","../../../packages/grid/src/utils/cell.ts","../../../packages/grid/src/core/types/core.ts","../../../packages/grid/src/core/types/action.ts","../../../packages/grid/src/core/action/field.ts","../../../packages/grid/src/core/action/general.ts","../../../packages/grid/src/core/utils/id-creator.ts","../../../packages/grid/src/core/constants/field.ts","../../../packages/grid/src/core/utils/field.ts","../../../packages/grid/src/core/utils/weak-map.ts","../../../packages/grid/src/core/utils/common.ts","../../../packages/grid/src/core/utils/record.ts","../../../packages/grid/src/core/utils/queries.ts","../../../packages/grid/src/core/action/record.ts","../../../packages/grid/src/core/action/index.ts","../../../packages/grid/src/constants/grid.ts","../../../packages/grid/src/components/field-property-editor/field-property-editor.component.ts","../../../packages/grid/src/components/field-property-editor/field-property-editor.component.html","../../../packages/grid/src/services/field.service.ts","../../../packages/grid/src/constants/field.ts","../../../packages/grid/src/components/cell-editors/abstract-cell-editor.component.ts","../../../packages/grid/src/components/cell-editors/single-select/single-select-editor.component.ts","../../../packages/grid/src/components/cell-editors/text/text-editor.component.ts","../../../packages/grid/src/components/cell-editors/number/number-editor.component.ts","../../../packages/grid/src/components/cell-editors/date-time/date-time-editor.component.ts","../../../packages/grid/src/components/cell-editors/rating/rating-editor.component.ts","../../../packages/grid/src/components/cell-editors/link/number-editor.component.ts","../../../packages/grid/src/constants/editor.ts","../../../packages/grid/src/services/event.service.ts","../../../packages/grid/src/components/field-menu/field-menu.component.ts","../../../packages/grid/src/components/field-menu/field-menu.component.html","../../../packages/grid/src/grid.component.ts","../../../packages/grid/src/grid.component.html","../../../packages/grid/src/types/grid.ts","../../../packages/grid/src/ai-table-grid.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { AITableSelectOption } from '../core';;\n\n@Pipe({\n name: 'selectOption',\n standalone: true\n})\nexport class SelectOptionPipe implements PipeTransform {\n transform(id: string, options: AITableSelectOption[]) {\n return options.find((item) => item.id === id);\n }\n}\n","import { AITableFields, AITableRecords } from '../core';;\nimport { AITableGridData } from '../types';\n\nexport const buildGridData = (recordValue: AITableRecords, fieldsValue: AITableFields): AITableGridData => {\n return {\n type: 'grid',\n fields: fieldsValue,\n records: recordValue\n };\n};\n","import { computed, Signal } from '@angular/core';\nimport { AITableField, AITableFields, AITableRecord, AITableRecords } from '../core';\n\nexport function getRecordOrField(value: Signal<AITableRecords | AITableFields>, id: string): Signal<AITableField | AITableRecord> {\n return computed(() => {\n return value().find((item) => item.id === id)!;\n });\n}\n","import { WritableSignal } from '@angular/core';\nimport { AITableAction } from './action';\n\nexport enum AITableFieldType {\n // NotSupport = 0,\n Text = 1,\n Number = 2,\n SingleSelect = 3,\n // MultiSelect = 4,\n DateTime = 5,\n // Attachment = 6,\n Link = 7,\n // Email = 9,\n // Phone = 10,\n // Checkbox = 11,\n Rating = 12\n // Member = 13\n}\n\nexport enum AITableStatType {\n None = 0,\n CountAll = 1,\n Empty = 2,\n Filled = 3,\n Unique = 4,\n PercentEmpty = 5,\n PercentFilled = 6,\n PercentUnique = 7,\n Sum = 8,\n Average = 9,\n Max = 10,\n Min = 11,\n DateRangeOfDays = 12,\n DateRangeOfMonths = 13,\n Checked = 14,\n UnChecked = 15,\n PercentChecked = 16,\n PercentUnChecked = 17\n}\n\nexport interface AITableSelectOption {\n id: string;\n name: string;\n color?: string;\n}\n\nexport interface AITableField {\n id: string;\n name: string;\n type: AITableFieldType;\n width?: string;\n hidden?: boolean;\n frozen?: boolean;\n statType?: AITableStatType;\n [key: string]: AITableSelectOption[] | any;\n}\n\nexport interface AITableRecord {\n id: string;\n value: Record<string, any>;\n}\n\nexport type AITableRecords = AITableRecord[];\n\nexport type AITableFields = AITableField[];\n\nexport interface AITableValue {\n records: AITableRecords;\n fields: AITableFields;\n}\n\nexport interface AITable {\n records: WritableSignal<AITableRecords>;\n fields: WritableSignal<AITableFields>;\n actions: AITableAction[];\n onChange: () => void;\n apply: (action: AITableAction) => void;\n}\n\nexport interface AITableChangeOptions {\n records: AITableRecord[];\n fields: AITableField[];\n actions: AITableAction[];\n}\n\nexport interface AITableFieldInfo {\n type: AITableFieldType;\n name: string;\n icon: string;\n}\n","import { AITableField, AITableRecord } from './core';\n\nexport type AIRecordPath = [number];\n\nexport type AIFieldPath = [number];\n\nexport type AIFieldValuePath = [number, number];\n\nexport type Path = AIRecordPath | AIFieldPath | AIFieldValuePath;\n\nexport enum ActionName {\n UpdateFieldValue = 'update_field_value',\n AddRecord = 'add_record',\n AddField = 'add_field'\n}\n\nexport enum ExecuteType {\n Execute,\n Undo,\n Redo\n}\n\nexport type UpdateFieldValueAction = {\n type: ActionName.UpdateFieldValue;\n path: AIFieldValuePath;\n fieldValue: any;\n newFieldValue: any;\n};\n\nexport type AddRecordAction = {\n type: ActionName.AddRecord;\n path: AIRecordPath;\n record: AITableRecord;\n};\n\nexport type AddFieldAction = {\n type: ActionName.AddField;\n path: AIFieldPath;\n field: AITableField;\n};\n\nexport type AITableAction = UpdateFieldValueAction | AddRecordAction | AddFieldAction;\n","import { ActionName, AddFieldAction, AIFieldPath, AITable, AITableField } from '../types';\n\nexport function addField(aiTable: AITable, field: AITableField, path: AIFieldPath) {\n const operation: AddFieldAction = {\n type: ActionName.AddField,\n field,\n path\n };\n aiTable.apply(operation);\n}\n\nexport const FieldActions = {\n addField\n};\n","import { ActionName, AITable, AITableAction, AITableFields, AITableRecords } from '../types';\nimport { createDraft, finishDraft } from 'immer';\n\nconst apply = (aiTable: AITable, records: AITableRecords, fields: AITableFields, options: AITableAction) => {\n switch (options.type) {\n case ActionName.UpdateFieldValue: {\n const [recordIndex, fieldIndex] = options.path;\n const fieldId = aiTable.fields()[fieldIndex].id;\n records[recordIndex].value[fieldId] = options.newFieldValue;\n break;\n }\n case ActionName.AddRecord: {\n const [recordIndex] = options.path;\n records.splice(recordIndex, 0, options.record);\n break;\n }\n case ActionName.AddField: {\n const [fieldIndex] = options.path;\n const newField = options.field;\n fields.splice(fieldIndex, 0, newField);\n const newRecord = {\n [newField.id]: ''\n };\n records.forEach((item) => {\n item.value = {\n ...item.value,\n ...newRecord\n };\n });\n }\n }\n return {\n records,\n fields\n };\n};\n\nexport const GeneralActions = {\n transform(aiTable: AITable, op: AITableAction): void {\n const records = createDraft(aiTable.records());\n const fields = createDraft(aiTable.fields());\n apply(aiTable, records, fields, op);\n aiTable.fields.update(() => {\n return finishDraft(fields);\n });\n aiTable.records.update(() => {\n return finishDraft(records);\n });\n }\n};\n","export function idCreator(length = 5) {\n // remove numeral\n const $chars =\n 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz'; /**** Easily confusing characters are removed by default oOLl,9gq,Vv,Uu,I1****/\n const maxPosition = $chars.length;\n let key = '';\n for (let i = 0; i < length; i++) {\n key += $chars.charAt(Math.floor(Math.random() * maxPosition));\n }\n return key;\n}\n","import { AITableFieldInfo, AITableFieldType } from '../types';\nimport { helpers } from 'ngx-tethys/util';\n\nexport const BasicFields = [\n {\n type: AITableFieldType.Text,\n name: '文本',\n icon: 'font'\n },\n {\n type: AITableFieldType.SingleSelect,\n name: '单选',\n icon: 'check-circle'\n },\n {\n type: AITableFieldType.Number,\n name: '数字',\n icon: 'hashtag'\n },\n {\n type: AITableFieldType.DateTime,\n name: '日期',\n icon: 'calendar'\n },\n {\n type: AITableFieldType.Rating,\n name: '评分',\n icon: 'star-circle'\n },\n {\n type: AITableFieldType.Link,\n name: '链接',\n icon: 'link-insert'\n }\n];\n\nexport const Fields: AITableFieldInfo[] = [...BasicFields];\n\nexport const FieldsMap = helpers.keyBy([...BasicFields], 'type');\n","import { FieldsMap } from '../constants/field';\nimport { AITable, AITableFieldType } from '../types';\nimport { idCreator } from './id-creator';\n\nexport function getDefaultFieldValue(type: AITableFieldType) {\n return '';\n}\n\nexport function createDefaultFieldName(aiTable: AITable, type: AITableFieldType = AITableFieldType.Text) {\n const fields = aiTable.fields();\n const count = fields.filter((item) => item.type === type).length;\n return count === 0 ? FieldsMap[type].name : FieldsMap[type].name + count;\n}\n\nexport function createDefaultField(aiTable: AITable, type: AITableFieldType = AITableFieldType.Text) {\n return { id: idCreator(), type, name: createDefaultFieldName(aiTable, type) };\n}\n","import { AITable } from '../types';\n\nexport const FLUSHING = new WeakMap<AITable, boolean>();\n","import { Actions } from '../action';\nimport { AITable, AITableAction, AITableFields, AITableRecords } from '../types';\nimport { FLUSHING } from './weak-map';\nimport { WritableSignal } from '@angular/core';\n\nexport function createAITable(records: WritableSignal<AITableRecords>, fields: WritableSignal<AITableFields>): AITable {\n const aiTable: AITable = {\n records,\n fields,\n actions: [],\n onChange: () => {},\n apply: (action: AITableAction) => {\n aiTable.actions.push(action);\n Actions.transform(aiTable, action);\n\n if (!FLUSHING.get(aiTable)) {\n FLUSHING.set(aiTable, true);\n Promise.resolve().then(() => {\n FLUSHING.set(aiTable, false);\n aiTable.onChange();\n aiTable.actions = [];\n });\n }\n }\n };\n return aiTable;\n}\n","import { AITableFields, AITableRecord } from '../types';\nimport { getDefaultFieldValue } from './field';\nimport { idCreator } from './id-creator';\n\nexport function getDefaultRecord(fields: AITableFields) {\n const newRow: AITableRecord = {\n id: idCreator(),\n value: {}\n };\n fields.map((item) => {\n newRow.value[item.id] = getDefaultFieldValue(item.type);\n });\n return newRow;\n}\n","import { isUndefinedOrNull } from 'ngx-tethys/util';\nimport { Path, AITable, AITableField, AITableRecord, AIFieldValuePath, AIRecordPath, AIFieldPath } from '../types';\n\nexport const AITableQueries = {\n findPath(aiTable: AITable, field?: AITableField, record?: AITableRecord): Path {\n const recordIndex = record && aiTable.records().indexOf(record);\n const fieldIndex = field && aiTable.fields().indexOf(field);\n if (!isUndefinedOrNull(recordIndex) && recordIndex > -1 && !isUndefinedOrNull(fieldIndex) && fieldIndex > -1) {\n return [recordIndex!, fieldIndex!] as AIFieldValuePath;\n }\n if (!isUndefinedOrNull(recordIndex) && recordIndex > -1) {\n return [recordIndex] as AIRecordPath;\n }\n if (!isUndefinedOrNull(fieldIndex) && fieldIndex > -1) {\n return [fieldIndex] as AIFieldPath;\n }\n throw new Error(`Unable to find the path: ${JSON.stringify({ ...(field || {}), ...(record || {}) })}`);\n },\n getFieldValue(aiTable: AITable, path: [number, number]): any {\n if (!aiTable || !aiTable.records() || !aiTable.fields()) {\n throw new Error(`Cannot find a descendant at path [${path}]`);\n }\n const fieldId = aiTable.fields()[path[1]].id;\n return aiTable.records()[path[0]].value[fieldId];\n }\n};\n","import { ActionName, AddRecordAction, AIRecordPath, UpdateFieldValueAction, AITable, AITableRecord, AIFieldValuePath } from '../types';\nimport { AITableQueries } from '../utils';\n\nexport function updateFieldValue(aiTable: AITable, value: any, path: AIFieldValuePath) {\n const node = AITableQueries.getFieldValue(aiTable, path);\n if (node !== value) {\n const operation: UpdateFieldValueAction = {\n type: ActionName.UpdateFieldValue,\n fieldValue: node,\n newFieldValue: value,\n path\n };\n aiTable.apply(operation);\n }\n}\n\nexport function addRecord(aiTable: AITable, record: AITableRecord, path: AIRecordPath) {\n const operation: AddRecordAction = {\n type: ActionName.AddRecord,\n record,\n path\n };\n aiTable.apply(operation);\n}\n\nexport const RecordActions = {\n addRecord,\n updateFieldValue\n};\n","import { FieldActions } from './field';\nimport { GeneralActions } from './general';\nimport { RecordActions } from './record';\n\nexport const Actions = {\n ...GeneralActions,\n ...RecordActions,\n ...FieldActions\n};\n","import { AITable, AITableFieldType } from '../core';\n\nexport const DEFAULT_COLUMN_WIDTH = 200;\n\nexport const MIN_COLUMN_WIDTH = 80;\n\nexport const DBL_CLICK_EDIT_TYPE = [\n AITableFieldType.Text,\n AITableFieldType.Number,\n AITableFieldType.SingleSelect,\n AITableFieldType.DateTime\n];\n\nexport const RowHeight = {\n Short: 32,\n Medium: 57,\n Tall: 104,\n ExtraTall: 152\n};\n","import { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, TemplateRef, booleanAttribute, computed, inject, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInput, ThyInputCount, ThyInputGroup, ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyConfirmValidatorDirective, ThyUniqueCheckValidator, ThyFormValidatorConfig, ThyFormModule } from 'ngx-tethys/form';\nimport {\n ThyDropdownDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective\n} from 'ngx-tethys/dropdown';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { AITable, AITableField, AITableFieldType, Actions, Fields, FieldsMap, createDefaultFieldName } from '../../core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyPopoverRef } from 'ngx-tethys/popover';\nimport { ThyListItem } from 'ngx-tethys/list';\nimport { of } from 'rxjs';\n\n@Component({\n selector: 'ai-table-field-property-editor',\n templateUrl: './field-property-editor.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgIf,\n NgForOf,\n FormsModule,\n ThyIcon,\n ThyInput,\n ThyInputGroup,\n ThyInputCount,\n ThyInputDirective,\n ThyConfirmValidatorDirective,\n ThyUniqueCheckValidator,\n ThyDropdownDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyButton,\n ThyFormModule,\n ThyListItem,\n NgTemplateOutlet\n ],\n host: {\n class: 'field-property-editor d-block pl-5 pr-5 pb-5 pt-4'\n },\n styles: [\n `\n :host {\n width: 350px;\n }\n `\n ]\n})\nexport class AITableFieldPropertyEditor {\n aiField = model.required<AITableField>();\n\n @Input({ required: true }) aiTable!: AITable;\n\n @Input() aiExternalTemplate: TemplateRef<any> | null = null;\n\n @Input({ transform: booleanAttribute }) isUpdate!: boolean;\n\n fieldType = computed(() => {\n return FieldsMap[this.aiField().type];\n });\n\n fieldMaxLength = 32;\n\n validatorConfig: ThyFormValidatorConfig = {\n validationMessages: {\n fieldName: {\n required: '列名不能为空',\n thyUniqueCheck: '列名已存在'\n }\n }\n };\n\n selectableFields = Fields;\n\n protected thyPopoverRef = inject(ThyPopoverRef<AITableFieldPropertyEditor>);\n\n constructor() {}\n\n checkUniqueName = (fieldName: string) => {\n fieldName = fieldName?.trim();\n return of(!!this.aiTable.fields()?.find((field) => field.name === fieldName && this.aiField()?.id !== field.id));\n };\n\n selectFieldType(fieldType: AITableFieldType) {\n this.aiField.update((item) => ({ ...item, type: fieldType, name: createDefaultFieldName(this.aiTable, fieldType) }));\n }\n\n editFieldProperty() {\n if (this.isUpdate) {\n //TODO: updateField\n } else {\n Actions.addField(this.aiTable, this.aiField(), [this.aiTable.fields().length]);\n }\n this.thyPopoverRef.close();\n }\n\n cancel() {\n this.thyPopoverRef.close();\n }\n}\n","<form thyForm name=\"createPropertyForm\" [thyFormValidatorConfig]=\"validatorConfig\" thyLayout=\"vertical\">\n <thy-form-group thyLabelRequired thyLabelText=\"表格列名\">\n <thy-input-group>\n <input\n thyInput\n thyAutofocus\n name=\"fieldName\"\n [maxlength]=\"fieldMaxLength\"\n [(ngModel)]=\"aiField().name\"\n required\n placeholder=\"输入列名称\"\n [thyUniqueCheck]=\"checkUniqueName\"\n />\n <ng-template #suffix>\n <thy-input-count></thy-input-count>\n </ng-template>\n </thy-input-group>\n </thy-form-group>\n <thy-form-group thyLabelText=\"列类型\">\n <div class=\"ml-n5 mr-n5\">\n <thy-list-item [thyDropdown]=\"menu\" thyTrigger=\"hover\" thyPlacement=\"right\" class=\"justify-content-between\">\n <span>\n <thy-icon [thyIconName]=\"fieldType().icon\" class=\"text-desc mr-2\"></thy-icon>\n <span>{{ fieldType().name }}</span>\n </span>\n <thy-icon thyIconName=\"angle-right\" class=\"text-desc\"></thy-icon>\n </thy-list-item>\n </div>\n </thy-form-group>\n <ng-container *ngIf=\"aiExternalTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"aiExternalTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <!-- TODO: 内部属性渲染 -->\n </ng-template>\n <thy-form-group-footer thyAlign=\"right\">\n <button thyButton=\"link-secondary\" (click)=\"cancel()\" thySize=\"sm\">取消</button>\n <button thyButton=\"primary\" (thyFormSubmit)=\"editFieldProperty()\" thySize=\"sm\">确定</button>\n </thy-form-group-footer>\n</form>\n\n<thy-dropdown-menu #menu>\n @for (item of selectableFields; track item.type) {\n <a thyDropdownMenuItem href=\"javascript:;\" (click)=\"selectFieldType(item.type)\">\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n</thy-dropdown-menu>\n","import { ElementRef, Injectable, ModelSignal, WritableSignal } from '@angular/core';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { AITable, AITableField, AITableFields } from '../core';\nimport { AITableFieldPropertyEditor } from '../components';\nimport { AIFieldConfig } from '../types';\n\nexport const AI_TABLE_GRID_FIELD_SERVICE_MAP = new WeakMap<AITable, AITableGridFieldService>();\n\n@Injectable()\nexport class AITableGridFieldService {\n aiFieldConfig: AIFieldConfig | undefined;\n\n constructor(private thyPopover: ThyPopover) {}\n\n initAIFieldConfig(aiFieldConfig: AIFieldConfig | undefined) {\n this.aiFieldConfig = aiFieldConfig;\n }\n\n editFieldProperty(origin: HTMLElement | ElementRef<any>, aiTable: AITable, aiField: WritableSignal<AITableField>, isUpdate: boolean) {\n const component = this.aiFieldConfig?.fieldPropertyEditor ?? AITableFieldPropertyEditor;\n this.thyPopover.open(component, {\n origin: origin,\n manualClosure: true,\n placement: 'bottomLeft',\n initialState: {\n aiTable,\n aiField,\n isUpdate\n }\n });\n }\n}\n","import { AITable, AITableField } from '../core';\nimport { AITableFieldMenu } from '../types/field';\nimport { AI_TABLE_GRID_FIELD_SERVICE_MAP } from '../services/field.service';\nimport { ElementRef, WritableSignal } from '@angular/core';\n\nexport const DividerMenuItem = {\n id: 'divider'\n};\n\nexport const EditFieldPropertyItem = {\n id: 'editFieldProperty',\n name: '编辑列',\n icon: 'edit',\n exec: (aiTable: AITable, field: WritableSignal<AITableField>, origin?: HTMLElement | ElementRef<any>) => {\n const fieldService = AI_TABLE_GRID_FIELD_SERVICE_MAP.get(aiTable);\n origin && fieldService?.editFieldProperty(origin, aiTable, field, true);\n }\n};\n\nexport const DefaultFieldMenus: AITableFieldMenu[] = [EditFieldPropertyItem];\n","import { ChangeDetectionStrategy, Component, computed, inject, Input, input, OnInit } from '@angular/core';\nimport { ThyPopoverRef } from 'ngx-tethys/popover';\nimport { Actions, AIFieldValuePath, AITable, AITableField, AITableQueries, AITableRecord } from '../../core';\n\n@Component({\n selector: 'abstract-edit-cell',\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class AbstractEditCellEditor<TValue, TFieldType extends AITableField = AITableField> implements OnInit {\n field = input.required<TFieldType>();\n\n record = input.required<AITableRecord>();\n\n @Input({ required: true }) aiTable!: AITable;\n\n modelValue!: TValue;\n\n protected thyPopoverRef = inject(ThyPopoverRef<AbstractEditCellEditor<TValue>>);\n\n ngOnInit(): void {\n this.modelValue = computed(() => {\n const path = AITableQueries.findPath(this.aiTable, this.field(), this.record()) as AIFieldValuePath;\n return AITableQueries.getFieldValue(this.aiTable, path);\n })();\n }\n\n updateFieldValue() {\n const path = AITableQueries.findPath(this.aiTable, this.field(), this.record()) as AIFieldValuePath;\n Actions.updateFieldValue(this.aiTable, this.modelValue, path);\n }\n\n closePopover() {\n this.thyPopoverRef.close();\n }\n}\n","import { NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThySelect } from 'ngx-tethys/select';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\nimport { ThyTag } from 'ngx-tethys/tag';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyOption } from 'ngx-tethys/shared';\nimport { AITableSelectOption, AITableField } from '../../../core';\n\nexport interface AITableSingleSelectField extends AITableField {\n options: AITableSelectOption[];\n}\n\n@Component({\n selector: 'single-select-cell-editor',\n template: `<thy-select [(ngModel)]=\"modelValue\" [thyAutoExpand]=\"true\" (thyOnExpandStatusChange)=\"updateValue($event)\">\n <thy-option *ngFor=\"let option of selectOptions()\" [thyValue]=\"option.id\" [thyLabelText]=\"option.name\"> </thy-option>\n </thy-select> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block h-100'\n },\n imports: [NgIf, NgForOf, FormsModule, ThySelect, ThyOption, ThyTag, ThyIcon]\n})\nexport class SingleSelectCellEditorComponent extends AbstractEditCellEditor<string, AITableSingleSelectField> {\n selectOptions = computed(() => {\n return this.field().options;\n });\n\n constructor() {\n super();\n }\n\n updateValue(value: boolean) {\n if (!value) {\n this.updateFieldValue();\n this.closePopover();\n }\n }\n}\n","import { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyAutofocusDirective, ThyEnterDirective } from 'ngx-tethys/shared';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\n\n@Component({\n selector: 'text-cell-editor',\n template: `<input\n thyInput\n [thyAutofocus]=\"true\"\n [(ngModel)]=\"modelValue\"\n (thyEnter)=\"updateValue()\"\n (blur)=\"updateValue()\"\n placeholder=\"\"\n /> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, FormsModule, ThyAutofocusDirective, ThyInputDirective, ThyEnterDirective]\n})\nexport class TextCellEditorComponent extends AbstractEditCellEditor<string> {\n updateValue() {\n this.updateFieldValue();\n this.closePopover();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInputNumber } from 'ngx-tethys/input-number';\nimport { ThyAutofocusDirective, ThyEnterDirective } from 'ngx-tethys/shared';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\n\n@Component({\n selector: 'number-cell-editor',\n template: `<thy-input-number\n class=\"h-100\"\n [thyAutoFocus]=\"true\"\n [(ngModel)]=\"modelValue\"\n (thyEnter)=\"updateValue()\"\n (thyBlur)=\"updateValue()\"\n placeholder=\"\"\n /> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, ThyAutofocusDirective, ThyEnterDirective, ThyInputNumber]\n})\nexport class NumberCellEditorComponent extends AbstractEditCellEditor<number> {\n updateValue() {\n this.updateFieldValue();\n this.closePopover();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DateEntry, ThyDatePicker } from 'ngx-tethys/date-picker';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\nimport { ThyTimePickerModule } from 'ngx-tethys/time-picker';\n\n@Component({\n selector: 'date-time-cell-editor',\n template: `\n <thy-date-picker\n class=\"h-100\"\n thyTimestampPrecision=\"milliseconds\"\n thyPlaceHolder=\"选择时间\"\n [(ngModel)]=\"modelValue\"\n (ngModelChange)=\"updateValue()\"\n (thyOpenChange)=\"thyOpenChange($event)\"\n [thyAllowClear]=\"true\"\n [thyShowShortcut]=\"true\"\n [thyHasBackdrop]=\"false\"\n [thyShowTime]=\"dateShowTime()\"\n [thyOpen]=\"true\"\n [thyFormat]=\"dateFormat\"\n >\n </thy-date-picker>\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, ThyDatePicker, ThyTimePickerModule],\n host: {\n class: 'date-time-cell-editor'\n }\n})\nexport class DateTimeCellEditorComponent extends AbstractEditCellEditor<DateEntry> {\n dateShowTime = input<boolean>(false);\n\n dateFormat = computed(() => {\n return this.dateShowTime() ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n })();\n\n override ngOnInit(): void {\n super.ngOnInit();\n if (!this.modelValue && this.dateShowTime()) {\n this.modelValue = {\n date: 0,\n with_time: 1\n };\n }\n }\n\n updateValue() {\n this.updateFieldValue();\n this.closePopover();\n }\n\n thyOpenChange(isOpen: Boolean) {\n if (!isOpen) {\n this.closePopover();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\nimport { ThyRate } from 'ngx-tethys/rate';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\n@Component({\n selector: 'rating-cell-editor',\n template: ` <thy-rate [(ngModel)]=\"modelValue\" (ngModelChange)=\"updateValue()\"></thy-rate> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, ThyRate, ThyTooltipModule]\n})\nexport class RatingCellEditorComponent extends AbstractEditCellEditor<number> {\n updateValue() {\n this.updateFieldValue();\n this.closePopover();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInputNumber } from 'ngx-tethys/input-number';\nimport { ThyAutofocusDirective, ThyEnterDirective } from 'ngx-tethys/shared';\nimport { AbstractEditCellEditor } from '../abstract-cell-editor.component';\n\n@Component({\n selector: 'link-cell-editor',\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, ThyAutofocusDirective, ThyEnterDirective, ThyInputNumber]\n})\nexport class LinkCellEditorComponent extends AbstractEditCellEditor<number> {\n updateValue() {\n this.updateFieldValue();\n this.closePopover();\n }\n}\n","import { AITableFieldType } from '../core';\nimport { SingleSelectCellEditorComponent } from '../components/cell-editors/single-select/single-select-editor.component';\nimport { TextCellEditorComponent } from '../components/cell-editors/text/text-editor.component';\nimport { NumberCellEditorComponent } from '../components/cell-editors/number/number-editor.component';\nimport { DateTimeCellEditorComponent } from '../components/cell-editors/date-time/date-time-editor.component';\nimport { RatingCellEditorComponent } from '../components/cell-editors/rating/rating-editor.component';\nimport { LinkCellEditorComponent } from '../components/cell-editors/link/number-editor.component';\n\nexport const GRID_CELL_EDITOR_MAP: Record<AITableFieldType, any> = {\n [AITableFieldType.Text]: TextCellEditorComponent,\n [AITableFieldType.SingleSelect]: SingleSelectCellEditorComponent,\n [AITableFieldType.Number]: NumberCellEditorComponent,\n [AITableFieldType.DateTime]: DateTimeCellEditorComponent,\n [AITableFieldType.Rating]: RatingCellEditorComponent,\n [AITableFieldType.Link]: LinkCellEditorComponent\n};\n","import { Injectable, Signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { DBL_CLICK_EDIT_TYPE } from '../constants';\nimport { getRecordOrField } from '../utils';\nimport { AITable, AITableField, AITableFieldType, AITableRecord } from '../core';\nimport { GRID_CELL_EDITOR_MAP } from '../constants/editor';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { AITableGridCellRenderSchema } from '../types';\n\n@Injectable()\nexport class AITableGridEventService {\n aiTable!: AITable;\n\n aiFieldRenderers?: Partial<Record<AITableFieldType, AITableGridCellRenderSchema>>;\n\n takeUntilDestroyed = takeUntilDestroyed();\n\n constructor(private thyPopover: ThyPopover) {}\n\n initialize(aiTable: AITable, aiFieldRenderers?: Partial<Record<AITableFieldType, AITableGridCellRenderSchema>>) {\n this.aiTable = aiTable;\n this.aiFieldRenderers = aiFieldRenderers;\n }\n\n registerEvents(element: HTMLElement) {\n fromEvent<MouseEvent>(element, 'dblclick')\n .pipe(this.takeUntilDestroyed)\n .subscribe((event) => {\n this.dblClick(event as MouseEvent);\n });\n }\n\n private dblClick(event: MouseEvent) {\n const cellDom = (event.target as HTMLElement).closest('.grid-cell') as HTMLElement;\n const type = cellDom && cellDom.getAttribute('type')!;\n if (type && DBL_CLICK_EDIT_TYPE.includes(Number(type))) {\n this.openEdit(cellDom);\n }\n }\n\n private getEditorComponent(type: AITableFieldType) {\n if (this.aiFieldRenderers && this.aiFieldRenderers[type]) {\n return this.aiFieldRenderers[type]!.editor;\n }\n return GRID_CELL_EDITOR_MAP[type];\n }\n\n private openEdit(cellDom: HTMLElement) {\n const { x, y, width, height } = cellDom.getBoundingClientRect();\n const fieldId = cellDom.getAttribute('fieldId')!;\n const recordId = cellDom.getAttribute('recordId')!;\n const field = getRecordOrField(this.aiTable.fields, fieldId) as Signal<AITableField>;\n const record = getRecordOrField(this.aiTable.records, recordId) as Signal<AITableRecord>;\n const component = this.getEditorComponent(field().type);\n this.thyPopover.open(component, {\n origin: cellDom,\n originPosition: {\n x: x - 1,\n y: y + 1,\n width: width + 2,\n height: height + 2\n },\n width: width + 2 + 'px',\n height: height + 2 + 'px',\n placement: 'top',\n offset: -(height + 4),\n initialState: {\n field: field,\n record: record,\n aiTable: this.aiTable\n },\n panelClass: 'grid-cell-editor',\n outsideClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n animationDisabled: true\n });\n }\n}\n","import { Component, ChangeDetectionStrategy, Input, ElementRef, signal } from '@angular/core';\nimport { AITableFieldMenu } from '../../types/field';\nimport { AITableField, AITable } from '../../core';\nimport {\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuComponent\n} from 'ngx-tethys/dropdown';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyDivider } from 'ngx-tethys/divider';\n\n@Component({\n selector: 'field-menu',\n templateUrl: './field-menu.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ThyIcon,\n ThyDivider,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective\n ]\n})\nexport class FieldMenu {\n @Input({ required: true }) field!: AITableField;\n\n @Input({ required: true }) aiTable!: AITable;\n\n @Input({ required: true }) fieldMenus!: AITableFieldMenu[];\n\n @Input() origin!: HTMLElement | ElementRef<any>;\n\n execute(menu: AITableFieldMenu) {\n const field = signal({ ...this.field });\n menu.exec && menu.exec(this.aiTable, field, this.origin);\n }\n}\n","@for (menu of fieldMenus; track index; let index = $index) {\n @if (menu.id === 'divider') {\n <thy-divider [thyStyle]=\"'solid'\"></thy-divider>\n } @else {\n <a thyDropdownMenuItem href=\"javascript:;\" (click)=\"execute(menu)\">\n <thy-icon [thyIconName]=\"menu.icon!\"></thy-icon>\n <span>{{ menu.name! }}</span>\n </a>\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, input, model, OnInit, output, signal, viewChild } from '@angular/core';\nimport { CommonModule, NgClass, NgComponentOutlet, NgForOf } from '@angular/common';\nimport { SelectOptionPipe } from './pipes/grid';\nimport { ThyTag } from 'ngx-tethys/tag';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { buildGridData } from './utils';\nimport { AIFieldConfig, AITableFieldMenu, AITableRowHeight } from './types';\nimport {\n Actions,\n createAITable,\n getDefaultRecord,\n AITable,\n AITableChangeOptions,\n AITableFields,\n AITableFieldType,\n AITableRecords,\n createDefaultField\n} from './core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { AITableGridEventService } from './services/event.service';\nimport { AITableFieldPropertyEditor } from './components/field-property-editor/field-property-editor.component';\nimport { ThyDatePickerFormatPipe } from 'ngx-tethys/date-picker';\nimport { ThyRate } from 'ngx-tethys/rate';\nimport { FormsModule } from '@angular/forms';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyTooltipModule, ThyTooltipService } from 'ngx-tethys/tooltip';\nimport { ThyStopPropagationDirective } from 'ngx-tethys/shared';\nimport { FieldMenu } from './components/field-menu/field-menu.component';\nimport { ThyAction } from 'ngx-tethys/action';\nimport { ThyDropdownDirective, ThyDropdownMenuComponent } from 'ngx-tethys/dropdown';\nimport { DefaultFieldMenus } from './constants';\nimport { AI_TABLE_GRID_FIELD_SERVICE_MAP, AITableGridFieldService } from './services/field.service';\n\n@Component({\n selector: 'ai-table-grid',\n templateUrl: './grid.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ai-table-grid'\n },\n imports: [\n NgForOf,\n NgClass,\n NgComponentOutlet,\n CommonModule,\n FormsModule,\n SelectOptionPipe,\n ThyTag,\n ThyPopoverModule,\n ThyIcon,\n ThyRate,\n AITableFieldPropertyEditor,\n ThyDatePickerFormatPipe,\n ThyTooltipModule,\n ThyFlexibleText,\n ThyStopPropagationDirective,\n FieldMenu,\n ThyAction,\n ThyDropdownDirective,\n ThyDropdownMenuComponent\n ],\n providers: [ThyTooltipService, AITableGridEventService, AITableGridFieldService]\n})\nexport class AITableGrid implements OnInit {\n aiRecords = model.required<AITableRecords>();\n\n aiFields = model.required<AITableFields>();\n\n aiRowHeight = input<AITableRowHeight>();\n\n aiFieldConfig = input<AIFieldConfig>();\n\n aiReadonly = input<boolean>();\n\n AITableFieldType = AITableFieldType;\n\n takeUntilDestroyed = takeUntilDestroyed();\n\n aiTable!: AITable;\n\n onChange = output<AITableChangeOptions>();\n\n aiTableInitialized = output<AITable>();\n\n fieldMenus!: AITableFieldMenu[];\n\n gridData = computed(() => {\n return buildGridData(this.aiRecords(), this.aiFields());\n });\n\n constructor(\n private elementRef: ElementRef,\n private aiTableGridEventService: AITableGridEventService,\n private aiTableGridFieldService: AITableGridFieldService\n ) {}\n\n ngOnInit(): void {\n this.initAITable();\n this.initService();\n this.buildFieldMenus();\n }\n\n initAITable() {\n this.aiTable = createAITable(this.aiRecords, this.aiFields);\n this.aiTableInitialized.emit(this.aiTable);\n this.aiTable.onChange = () => {\n this.onChange.emit({\n records: this.aiRecords(),\n fields: this.aiFields(),\n actions: this.aiTable.actions\n });\n };\n }\n\n initService() {\n this.aiTableGridEventService.initialize(this.aiTable, this.aiFieldConfig()?.fieldPropertyEditor);\n this.aiTableGridEventService.registerEvents(this.elementRef.nativeElement);\n this.aiTableGridFieldService.initAIFieldConfig(this.aiFieldConfig());\n AI_TABLE_GRID_FIELD_SERVICE_MAP.set(this.aiTable, this.aiTableGridFieldService);\n }\n\n buildFieldMenus() {\n this.fieldMenus = this.aiFieldConfig()?.fieldMenus ?? DefaultFieldMenus;\n }\n\n addRecord() {\n Actions.addRecord(this.aiTable, getDefaultRecord(this.aiFields()), [this.aiRecords().length]);\n }\n\n addField(gridColumnBlank: HTMLElement) {\n const field = signal(createDefaultField(this.aiTable, AITableFieldType.Text));\n this.aiTableGridFieldService.editFieldProperty(gridColumnBlank, this.aiTable, field, false);\n }\n}\n","<div class=\"grid-header d-flex\">\n <div class=\"grid-column-checkbox grid-cell\">\n <input type=\"checkbox\" />\n </div>\n @for (field of gridData().fields; track field.id) {\n <div class=\"grid-cell grid-field\" #fieldAction>\n {{ field.name }}\n <a thyAction thyActiveClass=\"active\" thyIcon=\"more-vertical\" [thyDropdown]=\"fieldMenu\" href=\"javascript:;\">\n <thy-dropdown-menu #fieldMenu>\n <field-menu [origin]=\"fieldAction\" [field]=\"field\" [aiTable]=\"aiTable\" [fieldMenus]=\"fieldMenus\"></field-menu>\n </thy-dropdown-menu>\n </a>\n </div>\n }\n <div class=\"grid-column-blank cursor-pointer\" #gridColumnBlank (click)=\"addField(gridColumnBlank)\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n<div class=\"grid-body d-flex\">\n @for (record of gridData().records; track record.id; let index = $index) {\n <div class=\"grid-row d-flex\">\n <div class=\"grid-row-index\">\n {{ index + 1 }}\n </div>\n @for (field of gridData().fields; track $index) {\n <div class=\"grid-cell\" [attr.type]=\"[field.type]\" [attr.fieldId]=\"[field.id]\" [attr.recordId]=\"[record.id]\" #cell>\n @switch (field.type) {\n @case (AITableFieldType.SingleSelect) {\n @if (record.value[field.id] | selectOption: field['options']; as selectedOption) {\n <thy-tag [thyColor]=\"selectedOption!.color!\">{{ selectedOption.name }}</thy-tag>\n }\n }\n @case (AITableFieldType.DateTime) {\n {{ record.value[field.id] | thyDatePickerFormat }}\n }\n @case (AITableFieldType.Rating) {\n <thy-rate [(ngModel)]=\"record.value[field.id]\"></thy-rate>\n }\n @case (AITableFieldType.Link) {\n <a\n class=\"d-block pl-4 pr-4\"\n thyStopPropagation\n thyFlexibleText\n [thyTooltipContent]=\"record.value[field.id]?.text\"\n [href]=\"record.value[field.id]?.url\"\n target=\"_blank\"\n >{{ record.value[field.id]?.text }}</a\n >\n }\n @default {\n {{ record.value[field.id] }}\n }\n }\n </div>\n }\n <div class=\"grid-column-blank\"></div>\n </div>\n }\n <div class=\"grid-row-insert grid-row cursor-pointer\" (click)=\"addRecord()\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n\n<div #activeBorder class=\"active-border\"></div>\n","import { AITableField, AITableFieldType, AITableRecord } from '../core';\nimport { AITableFieldMenu } from './field';\n\nexport enum AITableRowHeight {\n Short = 1,\n Medium = 2,\n Tall = 3,\n ExtraTall = 4\n}\n\nexport interface AITableGridCellRenderSchema {\n editor: any;\n}\n\nexport interface AITableGridData {\n type: 'grid';\n fields: AITableField[];\n records: AITableRecord[];\n}\n\nexport interface AIFieldConfig {\n fieldRenderers?: Partial<Record<AITableFieldType, AITableGridCellRenderSchema>>;\n fieldPropertyEditor?: any;\n fieldMenus?: AITableFieldMenu[];\n}\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.AITableGridEventService","i2.AITableGridFieldService","i3"],"mappings":"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"}
@@ -1,29 +1,33 @@
1
1
  import { ElementRef, OnInit } from '@angular/core';
2
- import { ThyPopover } from 'ngx-tethys/popover';
3
- import { AITableGridCellRenderSchema, AITableRowHeight } from './types';
2
+ import { AIFieldConfig, AITableFieldMenu, AITableRowHeight } from './types';
4
3
  import { AITable, AITableChangeOptions, AITableFields, AITableFieldType, AITableRecords } from './core';
5
4
  import { AITableGridEventService } from './services/event.service';
5
+ import { AITableGridFieldService } from './services/field.service';
6
6
  import * as i0 from "@angular/core";
7
- export declare class AITableGridComponent implements OnInit {
7
+ export declare class AITableGrid implements OnInit {
8
8
  private elementRef;
9
9
  private aiTableGridEventService;
10
- private thyPopover;
10
+ private aiTableGridFieldService;
11
11
  aiRecords: import("@angular/core").ModelSignal<AITableRecords>;
12
12
  aiFields: import("@angular/core").ModelSignal<AITableFields>;
13
13
  aiRowHeight: import("@angular/core").InputSignal<AITableRowHeight | undefined>;
14
- aiFieldRenderers: import("@angular/core").InputSignal<Partial<Record<AITableFieldType, AITableGridCellRenderSchema>> | undefined>;
14
+ aiFieldConfig: import("@angular/core").InputSignal<AIFieldConfig | undefined>;
15
15
  aiReadonly: import("@angular/core").InputSignal<boolean | undefined>;
16
16
  AITableFieldType: typeof AITableFieldType;
17
17
  takeUntilDestroyed: import("rxjs").MonoTypeOperatorFunction<unknown>;
18
18
  aiTable: AITable;
19
19
  onChange: import("@angular/core").OutputEmitterRef<AITableChangeOptions>;
20
+ aiTableInitialized: import("@angular/core").OutputEmitterRef<AITable>;
21
+ fieldMenus: AITableFieldMenu[];
20
22
  gridData: import("@angular/core").Signal<import("./types").AITableGridData>;
21
- constructor(elementRef: ElementRef, aiTableGridEventService: AITableGridEventService, thyPopover: ThyPopover);
23
+ constructor(elementRef: ElementRef, aiTableGridEventService: AITableGridEventService, aiTableGridFieldService: AITableGridFieldService);
22
24
  ngOnInit(): void;
23
25
  initAITable(): void;
26
+ initService(): void;
27
+ buildFieldMenus(): void;
24
28
  addRecord(): void;
25
- addField(event: Event): void;
26
- static ɵfac: i0.ɵɵFactoryDeclaration<AITableGridComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<AITableGridComponent, "ai-table-grid", never, { "aiRecords": { "alias": "aiRecords"; "required": true; "isSignal": true; }; "aiFields": { "alias": "aiFields"; "required": true; "isSignal": true; }; "aiRowHeight": { "alias": "aiRowHeight"; "required": false; "isSignal": true; }; "aiFieldRenderers": { "alias": "aiFieldRenderers"; "required": false; "isSignal": true; }; "aiReadonly": { "alias": "aiReadonly"; "required": false; "isSignal": true; }; }, { "aiRecords": "aiRecordsChange"; "aiFields": "aiFieldsChange"; "onChange": "onChange"; }, never, never, true, never>;
29
+ addField(gridColumnBlank: HTMLElement): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<AITableGrid, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<AITableGrid, "ai-table-grid", never, { "aiRecords": { "alias": "aiRecords"; "required": true; "isSignal": true; }; "aiFields": { "alias": "aiFields"; "required": true; "isSignal": true; }; "aiRowHeight": { "alias": "aiRowHeight"; "required": false; "isSignal": true; }; "aiFieldConfig": { "alias": "aiFieldConfig"; "required": false; "isSignal": true; }; "aiReadonly": { "alias": "aiReadonly"; "required": false; "isSignal": true; }; }, { "aiRecords": "aiRecordsChange"; "aiFields": "aiFieldsChange"; "onChange": "onChange"; "aiTableInitialized": "aiTableInitialized"; }, never, never, true, never>;
28
32
  }
29
33
  //# sourceMappingURL=grid.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.component.d.ts","sourceRoot":"","sources":["../../packages/grid/src/grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,UAAU,EAAwB,MAAM,EAAU,MAAM,eAAe,CAAC;AAI/H,OAAO,EAAE,UAAU,EAAoB,MAAM,oBAAoB,CAAC;AAGlE,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAKH,OAAO,EACP,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,cAAc,EAEjB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;;AASnE,qBA2Ba,oBAAqB,YAAW,MAAM;IAwB3C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,UAAU;IAzBtB,SAAS,sDAAoC;IAE7C,QAAQ,qDAAmC;IAE3C,WAAW,oEAA6B;IAExC,gBAAgB,kHAA2E;IAE3F,UAAU,2DAAoB;IAE9B,gBAAgB,0BAAoB;IAEpC,kBAAkB,mDAAwB;IAE1C,OAAO,EAAG,OAAO,CAAC;IAElB,QAAQ,iEAAkC;IAE1C,QAAQ,oEAEL;gBAGS,UAAU,EAAE,UAAU,EACtB,uBAAuB,EAAE,uBAAuB,EAChD,UAAU,EAAE,UAAU;IAGlC,QAAQ,IAAI,IAAI;IAMhB,WAAW;IAWX,SAAS;IAIT,QAAQ,CAAC,KAAK,EAAE,KAAK;yCAlDZ,oBAAoB;2CAApB,oBAAoB;CA+DhC"}
1
+ {"version":3,"file":"grid.component.d.ts","sourceRoot":"","sources":["../../packages/grid/src/grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,UAAU,EAAgB,MAAM,EAA6B,MAAM,eAAe,CAAC;AAO1I,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAIH,OAAO,EACP,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,cAAc,EAEjB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAYnE,OAAO,EAAmC,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;;AAEpG,qBA+Ba,WAAY,YAAW,MAAM;IA4BlC,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,uBAAuB;IA7BnC,SAAS,sDAAoC;IAE7C,QAAQ,qDAAmC;IAE3C,WAAW,oEAA6B;IAExC,aAAa,iEAA0B;IAEvC,UAAU,2DAAoB;IAE9B,gBAAgB,0BAAoB;IAEpC,kBAAkB,mDAAwB;IAE1C,OAAO,EAAG,OAAO,CAAC;IAElB,QAAQ,iEAAkC;IAE1C,kBAAkB,oDAAqB;IAEvC,UAAU,EAAG,gBAAgB,EAAE,CAAC;IAEhC,QAAQ,oEAEL;gBAGS,UAAU,EAAE,UAAU,EACtB,uBAAuB,EAAE,uBAAuB,EAChD,uBAAuB,EAAE,uBAAuB;IAG5D,QAAQ,IAAI,IAAI;IAMhB,WAAW;IAYX,WAAW;IAOX,eAAe;IAIf,SAAS;IAIT,QAAQ,CAAC,eAAe,EAAE,WAAW;yCAlE5B,WAAW;2CAAX,WAAW;CAsEvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-table/grid",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.0.0",
6
6
  "@angular/core": "^18.0.0"
package/public-api.d.ts CHANGED
@@ -4,4 +4,5 @@ export * from './pipes';
4
4
  export * from './constants';
5
5
  export * from './utils';
6
6
  export * from './core';
7
+ export * from './components';
7
8
  //# sourceMappingURL=public-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../packages/grid/src/public-api.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../packages/grid/src/public-api.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { ElementRef, WritableSignal } from '@angular/core';
2
+ import { ThyPopover } from 'ngx-tethys/popover';
3
+ import { AITable, AITableField } from '../core';
4
+ import { AIFieldConfig } from '../types';
5
+ import * as i0 from "@angular/core";
6
+ export declare const AI_TABLE_GRID_FIELD_SERVICE_MAP: WeakMap<AITable, AITableGridFieldService>;
7
+ export declare class AITableGridFieldService {
8
+ private thyPopover;
9
+ aiFieldConfig: AIFieldConfig | undefined;
10
+ constructor(thyPopover: ThyPopover);
11
+ initAIFieldConfig(aiFieldConfig: AIFieldConfig | undefined): void;
12
+ editFieldProperty(origin: HTMLElement | ElementRef<any>, aiTable: AITable, aiField: WritableSignal<AITableField>, isUpdate: boolean): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<AITableGridFieldService, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<AITableGridFieldService>;
15
+ }
16
+ //# sourceMappingURL=field.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.service.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/services/field.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,cAAc,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAiB,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;;AAEzC,eAAO,MAAM,+BAA+B,2CAAkD,CAAC;AAE/F,qBACa,uBAAuB;IAGpB,OAAO,CAAC,UAAU;IAF9B,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;gBAErB,UAAU,EAAE,UAAU;IAE1C,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS;IAI1D,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO;yCAT1H,uBAAuB;6CAAvB,uBAAuB;CAsBnC"}
@@ -0,0 +1,11 @@
1
+ import { ElementRef, Signal, WritableSignal } from '@angular/core';
2
+ import { AITable, AITableField } from '../core';
3
+ export interface AITableFieldMenu {
4
+ id: string;
5
+ name?: string;
6
+ icon?: string;
7
+ exec?: (aiTable: AITable, field: WritableSignal<AITableField>, origin?: HTMLElement | ElementRef<any>) => void;
8
+ hidden?: (aiTable: AITable, field: Signal<AITableField>) => boolean;
9
+ disabled?: (aiTable: AITable, field: Signal<AITableField>) => boolean;
10
+ }
11
+ //# sourceMappingURL=field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/types/field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC/G,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC;IACpE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC;CACzE"}
package/types/grid.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { FieldPath, RecordPath, AITableField, AITableRecord } from '../core';
1
+ import { AITableField, AITableFieldType, AITableRecord } from '../core';
2
+ import { AITableFieldMenu } from './field';
2
3
  export declare enum AITableRowHeight {
3
4
  Short = 1,
4
5
  Medium = 2,
@@ -6,12 +7,16 @@ export declare enum AITableRowHeight {
6
7
  ExtraTall = 4
7
8
  }
8
9
  export interface AITableGridCellRenderSchema {
9
- edit: any;
10
+ editor: any;
10
11
  }
11
12
  export interface AITableGridData {
12
13
  type: 'grid';
13
14
  fields: AITableField[];
14
15
  records: AITableRecord[];
15
16
  }
16
- export type GridCellPath = [RecordPath, FieldPath];
17
+ export interface AIFieldConfig {
18
+ fieldRenderers?: Partial<Record<AITableFieldType, AITableGridCellRenderSchema>>;
19
+ fieldPropertyEditor?: any;
20
+ fieldMenus?: AITableFieldMenu[];
21
+ }
17
22
  //# sourceMappingURL=grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/types/grid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7E,oBAAY,gBAAgB;IACxB,KAAK,IAAI;IACT,MAAM,IAAI;IACV,IAAI,IAAI;IACR,SAAS,IAAI;CAChB;AAED,MAAM,WAAW,2BAA2B;IACxC,IAAI,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/types/grid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,oBAAY,gBAAgB;IACxB,KAAK,IAAI;IACT,MAAM,IAAI;IACV,IAAI,IAAI;IACR,SAAS,IAAI;CAChB;AAED,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAChF,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAC1B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACnC"}
package/types/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './grid';
2
+ export * from './field';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}