@ai-table/grid 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,7 +18,7 @@ export class NumberCellEditorComponent extends AbstractEditCellEditor {
18
18
  (thyEnter)="updateValue()"
19
19
  (thyBlur)="updateValue()"
20
20
  placeholder=""
21
- /> `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus", "thyStepChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ /> `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumberCellEditorComponent, decorators: [{
24
24
  type: Component,
@@ -400,7 +400,7 @@ class NumberCellEditorComponent extends AbstractEditCellEditor {
400
400
  (thyEnter)="updateValue()"
401
401
  (thyBlur)="updateValue()"
402
402
  placeholder=""
403
- /> `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus", "thyStepChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
403
+ /> `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
404
404
  }
405
405
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumberCellEditorComponent, decorators: [{
406
406
  type: Component,
@@ -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/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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-table/grid",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.0.0",
6
6
  "@angular/core": "^18.0.0"
@@ -1,7 +1,7 @@
1
1
  /* You can add global styles to this file, and also import other style files */
2
2
  @use 'ngx-tethys/styles/index.scss';
3
3
  @use 'ngx-tethys/styles/variables.scss';
4
- @use './components/cell-editors/cell-editor.scss';
4
+ @use '../components/cell-editors/cell-editor.scss';
5
5
 
6
6
  .ai-table-grid {
7
7
  display: table;