@ai-table/grid 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- package/components/cell-editors/select/select-editor.component.d.ts +15 -0
- package/components/cell-editors/select/select-editor.component.d.ts.map +1 -0
- package/components/field-menu/field-menu.component.d.ts +6 -6
- package/components/field-menu/field-menu.component.d.ts.map +1 -1
- package/components/field-property-editor/field-property-editor.component.d.ts +2 -1
- package/components/field-property-editor/field-property-editor.component.d.ts.map +1 -1
- package/constants/editor.d.ts +1 -1
- package/constants/editor.d.ts.map +1 -1
- package/constants/field.d.ts +10 -4
- package/constants/field.d.ts.map +1 -1
- package/core/action/field.d.ts +6 -0
- package/core/action/field.d.ts.map +1 -1
- package/core/action/general.d.ts.map +1 -1
- package/core/action/index.d.ts +5 -0
- package/core/action/index.d.ts.map +1 -1
- package/core/action/record.d.ts +4 -0
- package/core/action/record.d.ts.map +1 -1
- package/core/constants/field.d.ts +2 -0
- package/core/constants/field.d.ts.map +1 -1
- package/core/types/action.d.ts +31 -2
- package/core/types/action.d.ts.map +1 -1
- package/core/types/core.d.ts +31 -10
- package/core/types/core.d.ts.map +1 -1
- package/core/utils/common.d.ts +2 -1
- package/core/utils/common.d.ts.map +1 -1
- package/core/utils/queries.d.ts +3 -1
- package/core/utils/queries.d.ts.map +1 -1
- package/esm2022/components/cell-editors/select/select-editor.component.mjs +46 -0
- package/esm2022/components/field-menu/field-menu.component.mjs +6 -5
- package/esm2022/components/field-property-editor/field-property-editor.component.mjs +8 -5
- package/esm2022/constants/editor.mjs +8 -8
- package/esm2022/constants/field.mjs +15 -3
- package/esm2022/constants/grid.mjs +5 -5
- package/esm2022/core/action/field.mjs +43 -2
- package/esm2022/core/action/general.mjs +68 -14
- package/esm2022/core/action/record.mjs +22 -5
- package/esm2022/core/constants/field.mjs +19 -13
- package/esm2022/core/types/action.mjs +6 -1
- package/esm2022/core/types/core.mjs +11 -14
- package/esm2022/core/types/index.mjs +1 -1
- package/esm2022/core/utils/common.mjs +10 -1
- package/esm2022/core/utils/field.mjs +3 -3
- package/esm2022/core/utils/queries.mjs +36 -6
- package/esm2022/core/utils/record.mjs +3 -3
- package/esm2022/grid.component.mjs +40 -11
- package/esm2022/pipes/grid.mjs +1 -2
- package/esm2022/services/event.service.mjs +10 -3
- package/esm2022/services/selection.servive.mjs +64 -0
- package/esm2022/types/field.mjs +1 -1
- package/esm2022/types/grid.mjs +1 -1
- package/esm2022/utils/build.mjs +13 -5
- package/fesm2022/ai-table-grid.mjs +454 -182
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/grid.component.d.ts +13 -6
- package/grid.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/pipes/grid.d.ts.map +1 -1
- package/services/event.service.d.ts +2 -0
- package/services/event.service.d.ts.map +1 -1
- package/services/selection.servive.d.ts +16 -0
- package/services/selection.servive.d.ts.map +1 -0
- package/styles/styles.scss +70 -3
- package/types/field.d.ts +3 -3
- package/types/field.d.ts.map +1 -1
- package/types/grid.d.ts +7 -2
- package/types/grid.d.ts.map +1 -1
- package/utils/build.d.ts +2 -2
- package/utils/build.d.ts.map +1 -1
- package/components/cell-editors/single-select/single-select-editor.component.d.ts +0 -14
- package/components/cell-editors/single-select/single-select-editor.component.d.ts.map +0 -1
- package/esm2022/components/cell-editors/single-select/single-select-editor.component.mjs +0 -44
@@ -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/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
|
+
{"version":3,"file":"ai-table-grid.mjs","sources":["../../../packages/grid/src/pipes/grid.ts","../../../packages/grid/src/core/types/core.ts","../../../packages/grid/src/core/types/action.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/field.ts","../../../packages/grid/src/core/action/general.ts","../../../packages/grid/src/core/action/record.ts","../../../packages/grid/src/core/action/index.ts","../../../packages/grid/src/utils/build.ts","../../../packages/grid/src/utils/cell.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/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/components/cell-editors/select/select-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/services/selection.servive.ts","../../../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 { WritableSignal } from '@angular/core';\nimport { AITableAction } from './action';\nimport { AITableSelection } from '../../types';\nimport { Id } from 'ngx-tethys/types';\n\nexport enum AITableFieldType {\n text = 'text', // 包含多行文本\n richText = 'rich_text', // 包含多行文本\n select = 'select', // 包含单选和多选\n number = 'number',\n date = 'date',\n member = 'member', // 包含单个和多个\n // cascadeSelect = \"cascade_select\", // 包含单选和多选,参数复杂后续再进行设计\n progress = 'progress',\n rate = 'rate',\n link = 'link'\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<T = unknown> {\n id: string;\n name: string;\n type: AITableFieldType;\n icon?: string;\n width?: number;\n hidden?: boolean;\n frozen?: boolean;\n statType?: AITableStatType;\n isMultiple?: boolean;\n [key: string]: T | any;\n}\n\nexport type TextFieldValue = string;\n\nexport type SelectFieldValue = Id[]; // 数字\n\nexport type NumberFieldValue = number;\n\nexport type DateFieldValue = { timestamp: number }; // 时间戳\n\nexport type MemberFieldValue = Id[];\n\nexport type ProgressFieldValue = number; // [0,1]\n\nexport type RateFieldValue = 1 | 2 | 3 | 4 | 5;\n\nexport type FieldValue =\n | TextFieldValue\n | SelectFieldValue\n | NumberFieldValue\n | DateFieldValue\n | MemberFieldValue\n | ProgressFieldValue\n | RateFieldValue\n | any;\n\nexport interface AITableRecord {\n id: string;\n checked?: boolean;\n values: Record<string, FieldValue>;\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 selection: WritableSignal<AITableSelection>;\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 width: number;\n}\n\nexport type AIPlugin = (aiTable: AITable) => AITable;\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 MoveField = 'move_field',\n MoveRecord = 'move_record',\n RemoveField = 'remove_field',\n RemoveRecord = 'remove_record',\n SetField = 'set_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 MoveFieldAction = {\n type: ActionName.MoveField;\n path: AIFieldPath;\n newPath: AIFieldPath;\n};\n\nexport type MoveRecordAction = {\n type: ActionName.MoveRecord;\n path: AIRecordPath;\n newPath: AIRecordPath;\n};\n\nexport type RemoveFieldAction = {\n type: ActionName.RemoveField;\n path: AIFieldPath;\n};\n\nexport type RemoveRecordAction = {\n type: ActionName.RemoveRecord;\n path: AIRecordPath;\n};\n\nexport type SetFieldAction = {\n type: ActionName.SetField;\n path: AIFieldPath;\n field: Partial<AITableField>;\n newField: Partial<AITableField>;\n};\n\nexport type AITableAction =\n | UpdateFieldValueAction\n | AddRecordAction\n | AddFieldAction\n | RemoveRecordAction\n | RemoveFieldAction\n | SetFieldAction\n | MoveFieldAction\n | MoveRecordAction;\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 width: 300\n },\n {\n type: AITableFieldType.select,\n name: '单选',\n icon: 'check-circle',\n width: 200\n },\n {\n type: AITableFieldType.number,\n name: '数字',\n icon: 'hashtag',\n width: 200\n },\n {\n type: AITableFieldType.date,\n name: '日期',\n icon: 'calendar',\n width: 200\n },\n {\n type: AITableFieldType.rate,\n name: '评分',\n icon: 'star-circle',\n width: 200\n },\n {\n type: AITableFieldType.link,\n name: '链接',\n icon: 'link-insert',\n width: 300\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, Path } from '../types';\nimport { FLUSHING } from './weak-map';\nimport { WritableSignal, signal } 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 selection: signal({\n selectedRecords: new Map(),\n selectedFields: new Map(),\n selectedCells: new Map()\n }),\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\nexport function isPathEqual(path: Path, another: Path): boolean {\n return path.length === another.length && path.every((n, i) => n === another[i]);\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 values: {}\n };\n fields.map((item) => {\n newRow.values[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(`can not find the path: ${JSON.stringify({ ...(field || {}), ...(record || {}) })}`);\n },\n getFieldValue(aiTable: AITable, path: [number, number]): any {\n if (!aiTable) {\n throw new Error(`aiTable does not exist`);\n }\n if (!aiTable.records()) {\n throw new Error(`aiTable has no records`);\n }\n if (!aiTable.fields()) {\n throw new Error(`aiTable has no fields`);\n }\n if (!path) {\n throw new Error(`path does not exist as path [${path}]`);\n }\n\n const field = aiTable.fields()[path[1]];\n if (!field) {\n throw new Error(`can not find field at path [${path}]`);\n }\n return aiTable.records()[path[0]].values[field.id];\n },\n\n getField(aiTable: AITable, path: AIFieldPath): AITableField {\n if (!aiTable) {\n throw new Error(`aiTable does not exist`);\n }\n if (!path) {\n throw new Error(`path does not exist as path [${path}]`);\n }\n return aiTable.fields()[path[0]];\n },\n\n getRecord(aiTable: AITable, path: AIRecordPath): AITableRecord {\n if (!aiTable) {\n throw new Error(`aiTable does not exist`);\n }\n if (!path) {\n throw new Error(`path does not exist as path [${path}]`);\n }\n return aiTable.records()[path[0]];\n }\n};\n","import {\n ActionName,\n AddFieldAction,\n AIFieldPath,\n AITable,\n AITableField,\n MoveFieldAction,\n RemoveFieldAction,\n SetFieldAction\n} from '../types';\nimport { AITableQueries } from '../utils';\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 function moveField(aiTable: AITable, path: AIFieldPath, newPath: AIFieldPath) {\n const operation: MoveFieldAction = {\n type: ActionName.MoveField,\n path,\n newPath\n };\n aiTable.apply(operation);\n}\n\nexport function removeField(aiTable: AITable, path: AIFieldPath) {\n const operation: RemoveFieldAction = {\n type: ActionName.RemoveField,\n path\n };\n aiTable.apply(operation);\n}\n\nexport function setField(aiTable: AITable, value: Partial<AITableField>, path: AIFieldPath) {\n const field = AITableQueries.getField(aiTable, path);\n if (field) {\n const oldField: Partial<AITableField> = {};\n const newField: Partial<AITableField> = {};\n for (const k in value) {\n if (field[k] !== value[k]) {\n if (field.hasOwnProperty(k)) {\n oldField[k] = field[k];\n }\n newField[k] = value[k];\n }\n }\n\n const operation: SetFieldAction = {\n type: ActionName.SetField,\n field: oldField,\n newField,\n path\n };\n\n aiTable.apply(operation);\n }\n}\n\nexport const FieldActions = {\n addField,\n moveField,\n removeField,\n setField\n};\n","import { ActionName, AITable, AITableAction, AITableFields, AITableRecords } from '../types';\nimport { createDraft, finishDraft } from 'immer';\nimport { isPathEqual } from '../utils';\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 if (fieldIndex > -1 && recordIndex > -1) {\n const fieldId = aiTable.fields()[fieldIndex].id;\n records[recordIndex].values[fieldId] = options.newFieldValue;\n }\n break;\n }\n case ActionName.AddRecord: {\n const [recordIndex] = options.path;\n if (recordIndex > -1) {\n records.splice(recordIndex, 0, options.record);\n }\n break;\n }\n case ActionName.AddField: {\n const [fieldIndex] = options.path;\n if (fieldIndex > -1) {\n const newField = options.field;\n fields.splice(fieldIndex, 0, newField);\n const newRecord = {\n [newField.id]: ''\n };\n records.forEach((item) => {\n item.values = {\n ...item.values,\n ...newRecord\n };\n });\n }\n\n break;\n }\n case ActionName.MoveRecord: {\n if (isPathEqual(options.path, options.newPath)) {\n return;\n }\n const record = records[options.path[0]];\n records.splice(options.path[0], 1);\n records.splice(options.newPath[0], 0, record);\n break;\n }\n case ActionName.MoveField: {\n if (isPathEqual(options.path, options.newPath)) {\n return;\n }\n const field = fields[options.path[0]];\n fields.splice(options.path[0], 1);\n fields.splice(options.newPath[0], 0, field);\n\n break;\n }\n case ActionName.RemoveField: {\n const [fieldIndex] = options.path;\n if (fieldIndex > -1) {\n const fieldId = aiTable.fields()[fieldIndex].id;\n fields.splice(fieldIndex, 1);\n records.forEach((item) => {\n delete item.values[fieldId];\n });\n }\n break;\n }\n case ActionName.RemoveRecord: {\n const [recordIndex] = options.path;\n if (recordIndex > -1) {\n records.splice(recordIndex, 1);\n }\n break;\n }\n\n case ActionName.SetField: {\n const [fieldIndex] = options.path;\n if (fieldIndex > -1) {\n fields.splice(fieldIndex, 1, {\n ...fields[fieldIndex],\n ...options.newField\n });\n }\n break;\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","import {\n ActionName,\n AddRecordAction,\n AIRecordPath,\n UpdateFieldValueAction,\n AITable,\n AITableRecord,\n AIFieldValuePath,\n MoveRecordAction,\n RemoveRecordAction\n} from '../types';\nimport { AITableQueries } from '../utils';\n\nexport function updateFieldValue(aiTable: AITable, value: any, path: AIFieldValuePath) {\n const field = AITableQueries.getFieldValue(aiTable, path);\n if (field !== value) {\n const operation: UpdateFieldValueAction = {\n type: ActionName.UpdateFieldValue,\n fieldValue: field,\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 function moveRecord(aiTable: AITable, path: AIRecordPath, newPath: AIRecordPath) {\n const operation: MoveRecordAction = {\n type: ActionName.MoveRecord,\n path,\n newPath\n };\n aiTable.apply(operation);\n}\n\nexport function removeRecord(aiTable: AITable, path: AIRecordPath) {\n const operation: RemoveRecordAction = {\n type: ActionName.RemoveRecord,\n path\n };\n aiTable.apply(operation);\n}\n\nexport const RecordActions = {\n addRecord,\n updateFieldValue,\n moveRecord,\n removeRecord\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 { AITableFields, AITableRecords, FieldsMap } from '../core';\nimport { AITableGridData, AITableSelection } from '../types';\n\nexport const buildGridData = (recordValue: AITableRecords, fieldsValue: AITableFields, selection: AITableSelection): AITableGridData => {\n return {\n type: 'grid',\n fields: fieldsValue.map(item=>{\n return {\n ...item,\n icon: item.icon || FieldsMap[item.type].icon,\n width: item.width || FieldsMap[item.type].width\n }\n }),\n records: recordValue.map((item) => {\n return { ...item, checked: selection.selectedRecords.has(item.id) };\n })\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 { 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.select,\n AITableFieldType.date\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';\nimport { ThyAutofocusDirective } from 'ngx-tethys/shared';\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 ThyAutofocusDirective\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 const path = this.aiTable.fields().findIndex((item) => item.id === this.aiField().id);\n Actions.setField(this.aiTable, this.aiField(), [path]);\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]=\"true\"\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 { Actions, AIFieldPath, AITable, AITableField, AITableQueries } from '../core';\nimport { AI_TABLE_GRID_FIELD_SERVICE_MAP } from '../services/field.service';\nimport { ElementRef, signal, Signal, WritableSignal } from '@angular/core';\nimport { AITableFieldMenuItem } from '../types';\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: Signal<AITableField>, origin?: HTMLElement | ElementRef<any>) => {\n const fieldService = AI_TABLE_GRID_FIELD_SERVICE_MAP.get(aiTable);\n const copyField: WritableSignal<AITableField> = signal(JSON.parse(JSON.stringify(field())));\n origin && fieldService?.editFieldProperty(origin, aiTable, copyField, true);\n }\n};\n\nexport const RemoveFieldItem = {\n id: 'removeField',\n name: '删除列',\n icon: 'trash',\n exec: (aiTable: AITable, field: Signal<AITableField>) => {\n const path = AITableQueries.findPath(aiTable, field()) as AIFieldPath;\n Actions.removeField(aiTable, path);\n }\n};\n\nexport const DefaultFieldMenus: AITableFieldMenuItem[] = [EditFieldPropertyItem, RemoveFieldItem];\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 { 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 { NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, Input } 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<AITableSelectOption> {\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 SelectCellEditorComponent extends AbstractEditCellEditor<string, AITableSingleSelectField> {\n @Input() isMultiple!: boolean;\n\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 { AITableFieldType } from '../core';\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';\nimport { SelectCellEditorComponent } from '../components/cell-editors/select/select-editor.component';\n\nexport const GRID_CELL_EDITOR_MAP: Partial<Record<AITableFieldType, any>> = {\n [AITableFieldType.text]: TextCellEditorComponent,\n [AITableFieldType.select]: SelectCellEditorComponent,\n [AITableFieldType.number]: NumberCellEditorComponent,\n [AITableFieldType.date]: DateTimeCellEditorComponent,\n [AITableFieldType.rate]: RatingCellEditorComponent,\n [AITableFieldType.link]: LinkCellEditorComponent\n};\n","import { Injectable, Signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, Subject } 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 mousedownEvent$ = new Subject<MouseEvent>();\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 fromEvent<MouseEvent>(element, 'mousedown')\n .pipe(this.takeUntilDestroyed)\n .subscribe((event) => {\n this.mousedownEvent$.next(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')! as AITableFieldType;\n if (type && DBL_CLICK_EDIT_TYPE.includes(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 minWidth: width,\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 { AITableFieldMenuItem } from '../../types/field';\nimport { AITable, AITableField } 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';\nimport { getRecordOrField } from '../../utils';\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 }) fieldId!: string;\n\n @Input({ required: true }) aiTable!: AITable;\n\n @Input({ required: true }) fieldMenus!: AITableFieldMenuItem[];\n\n @Input() origin!: HTMLElement | ElementRef<any>;\n\n execute(menu: AITableFieldMenuItem) {\n const field = getRecordOrField(this.aiTable.fields, this.fieldId) as Signal<AITableField>;\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 { Injectable } from '@angular/core';\nimport { AITable } from '../core';\n\n@Injectable()\nexport class AITableGridSelectionService {\n aiTable!: AITable;\n\n constructor() {}\n\n initialize(aiTable: AITable) {\n this.aiTable = aiTable;\n }\n\n clearSelection() {\n this.aiTable.selection.set({\n selectedRecords: new Map(),\n selectedFields: new Map(),\n selectedCells: new Map()\n });\n }\n\n selectCell(recordId: string, fieldId: string) {\n this.clearSelection();\n this.aiTable.selection().selectedCells.set(recordId, { [fieldId]: true });\n }\n\n selectField(fieldId: string) {\n this.clearSelection();\n this.aiTable.selection().selectedFields.set(fieldId, true);\n }\n\n selectRecord(recordId: string) {\n if (this.aiTable.selection().selectedRecords.has(recordId)) {\n this.aiTable.selection().selectedRecords.delete(recordId);\n } else {\n this.aiTable.selection().selectedRecords.set(recordId, true);\n }\n this.aiTable.selection.set({\n selectedRecords: this.aiTable.selection().selectedRecords,\n selectedFields: new Map(),\n selectedCells: new Map()\n });\n }\n\n toggleSelectAll(checked: boolean) {\n this.clearSelection();\n if (checked) {\n this.aiTable.records().forEach((item) => {\n this.selectRecord(item.id);\n });\n }\n }\n\n updateSelect(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const cellDom = target.closest('.grid-cell');\n const colDom = target.closest('.grid-field');\n if (cellDom) {\n const fieldId = cellDom.getAttribute('fieldId');\n const recordId = cellDom.getAttribute('recordId');\n fieldId && recordId && this.selectCell(recordId, fieldId);\n }\n if (colDom) {\n const fieldId = colDom.getAttribute('fieldId');\n fieldId && this.selectField(fieldId);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, input, model, NgZone, OnInit, output, signal } 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, AITableFieldMenuItem, AITableRowHeight } from './types';\nimport {\n Actions,\n createAITable,\n getDefaultRecord,\n AITable,\n AITableChangeOptions,\n AITableFields,\n AITableFieldType,\n AITableRecords,\n createDefaultField,\n AIPlugin\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 { ThyCheckboxModule } from 'ngx-tethys/checkbox';\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';\nimport { AITableGridSelectionService } from './services/selection.servive';\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 ThyCheckboxModule\n ],\n providers: [ThyTooltipService, AITableGridEventService, AITableGridFieldService, AITableGridSelectionService]\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 aiPlugins = input<AIPlugin[]>();\n\n AITableFieldType = AITableFieldType;\n\n takeUntilDestroyed = takeUntilDestroyed();\n\n aiTable!: AITable;\n\n get isSelectedAll() {\n return this.aiTable.selection().selectedRecords.size === this.aiRecords().length;\n }\n\n onChange = output<AITableChangeOptions>();\n\n aiTableInitialized = output<AITable>();\n\n fieldMenus!: AITableFieldMenuItem[];\n\n gridData = computed(() => {\n return buildGridData(this.aiRecords(), this.aiFields(), this.aiTable.selection());\n });\n\n constructor(\n private elementRef: ElementRef,\n private aiTableGridEventService: AITableGridEventService,\n public aiTableGridSelectionService: AITableGridSelectionService,\n private aiTableGridFieldService: AITableGridFieldService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.initAITable();\n this.initService();\n this.buildFieldMenus();\n this.ngZone.runOutsideAngular(() => {\n this.aiTableGridEventService.mousedownEvent$.pipe(this.takeUntilDestroyed).subscribe((event) => {\n if ((event as MouseEvent)?.target) {\n this.aiTableGridSelectionService.updateSelect(event as MouseEvent);\n }\n });\n });\n }\n\n initAITable() {\n this.aiTable = createAITable(this.aiRecords, this.aiFields);\n this.aiPlugins()?.forEach((plugin) => {\n this.aiTable = plugin(this.aiTable);\n });\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.aiTableGridSelectionService.initialize(this.aiTable);\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 selectRecord(recordId: string) {\n this.aiTableGridSelectionService.selectRecord(recordId);\n }\n\n toggleSelectAll(checked: boolean) {\n this.aiTableGridSelectionService.toggleSelectAll(checked);\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 <label thyCheckbox thyLabelText=\"\" [ngModel]=\"isSelectedAll\" (ngModelChange)=\"toggleSelectAll($event)\"></label>\n </div>\n @for (field of gridData().fields; track field.id) {\n <div\n class=\"grid-cell grid-field\"\n #fieldAction\n [attr.fieldId]=\"field.id\"\n [ngClass]=\"{ highlight: aiTable.selection().selectedFields.has(field.id) }\"\n [ngStyle]=\"{ width: field.width + 'px' }\"\n >\n <span class=\"text-truncate\">\n <thy-icon [thyIconName]=\"field.icon!\" class=\"mr-2 text-muted\"></thy-icon>\n <span>{{ field.name }}</span>\n </span>\n <a\n class=\"grid-field-action\"\n thyAction\n thyActiveClass=\"active\"\n thyIcon=\"more-vertical\"\n [thyDropdown]=\"fieldMenu\"\n href=\"javascript:;\"\n >\n <thy-dropdown-menu #fieldMenu>\n <field-menu [origin]=\"fieldAction\" [fieldId]=\"field.id\" [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\" [ngClass]=\"{ highlight: aiTable.selection().selectedRecords.has(record.id) }\">\n <div class=\"grid-row-index\">\n <label\n [ngClass]=\"record.checked ? 'checked-box' : 'unchecked-box'\"\n thyCheckbox\n thyLabelText=\"\"\n [ngModel]=\"record.checked\"\n (ngModelChange)=\"selectRecord(record.id)\"\n ></label>\n <span [ngClass]=\"record.checked ? 'grid-row-no-number' : 'grid-row-number'\"> {{ index + 1 }} </span>\n </div>\n @for (field of gridData().fields; track $index) {\n <div\n class=\"grid-cell\"\n [ngClass]=\"{\n highlight: aiTable.selection().selectedCells.has(record.id) || aiTable.selection().selectedFields.has(field.id),\n selected: aiTable.selection().selectedCells.get(record.id)?.hasOwnProperty(field.id)\n }\"\n [attr.type]=\"[field.type]\"\n [attr.fieldId]=\"[field.id]\"\n [attr.recordId]=\"[record.id]\"\n [ngStyle]=\"{ width: field.width + 'px' }\"\n #cell\n >\n @switch (field.type) {\n @case (AITableFieldType.select) {\n @if (!field.isMultiple && record.values[field.id] | selectOption: field['options']; as selectedOption) {\n <thy-tag [thyColor]=\"selectedOption!.color!\">{{ selectedOption.name }}</thy-tag>\n }\n }\n @case (AITableFieldType.date) {\n {{ record.values[field.id] | thyDatePickerFormat }}\n }\n @case (AITableFieldType.rate) {\n <thy-rate [(ngModel)]=\"record.values[field.id]\"></thy-rate>\n }\n @case (AITableFieldType.link) {\n <a\n class=\"d-block\"\n thyStopPropagation\n thyFlexibleText\n [thyTooltipContent]=\"record.values[field.id]?.text\"\n [href]=\"record.values[field.id]?.url\"\n target=\"_blank\"\n >{{ record.values[field.id]?.text }}</a\n >\n }\n @default {\n <span class=\"text-truncate\"> {{ record.values[field.id] }}</span>\n }\n }\n <div class=\"autofill-container\"></div>\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 { AITableFieldMenuItem } 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 AITableSelection {\n selectedRecords: Map<string, boolean>;\n selectedFields: Map<string, boolean>;\n selectedCells: Map<string, {}>;\n}\nexport interface AIFieldConfig {\n fieldRenderers?: Partial<Record<AITableFieldType, AITableGridCellRenderSchema>>;\n fieldPropertyEditor?: any;\n fieldMenus?: AITableFieldMenuItem[];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.AITableGridEventService","i2.AITableGridSelectionService","i3.AITableGridFieldService","i5"],"mappings":"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"}
|
package/grid.component.d.ts
CHANGED
@@ -1,33 +1,40 @@
|
|
1
|
-
import { ElementRef, OnInit } from '@angular/core';
|
2
|
-
import { AIFieldConfig,
|
3
|
-
import { AITable, AITableChangeOptions, AITableFields, AITableFieldType, AITableRecords } from './core';
|
1
|
+
import { ElementRef, NgZone, OnInit } from '@angular/core';
|
2
|
+
import { AIFieldConfig, AITableFieldMenuItem, AITableRowHeight } from './types';
|
3
|
+
import { AITable, AITableChangeOptions, AITableFields, AITableFieldType, AITableRecords, AIPlugin } from './core';
|
4
4
|
import { AITableGridEventService } from './services/event.service';
|
5
5
|
import { AITableGridFieldService } from './services/field.service';
|
6
|
+
import { AITableGridSelectionService } from './services/selection.servive';
|
6
7
|
import * as i0 from "@angular/core";
|
7
8
|
export declare class AITableGrid implements OnInit {
|
8
9
|
private elementRef;
|
9
10
|
private aiTableGridEventService;
|
11
|
+
aiTableGridSelectionService: AITableGridSelectionService;
|
10
12
|
private aiTableGridFieldService;
|
13
|
+
private ngZone;
|
11
14
|
aiRecords: import("@angular/core").ModelSignal<AITableRecords>;
|
12
15
|
aiFields: import("@angular/core").ModelSignal<AITableFields>;
|
13
16
|
aiRowHeight: import("@angular/core").InputSignal<AITableRowHeight | undefined>;
|
14
17
|
aiFieldConfig: import("@angular/core").InputSignal<AIFieldConfig | undefined>;
|
15
18
|
aiReadonly: import("@angular/core").InputSignal<boolean | undefined>;
|
19
|
+
aiPlugins: import("@angular/core").InputSignal<AIPlugin[] | undefined>;
|
16
20
|
AITableFieldType: typeof AITableFieldType;
|
17
21
|
takeUntilDestroyed: import("rxjs").MonoTypeOperatorFunction<unknown>;
|
18
22
|
aiTable: AITable;
|
23
|
+
get isSelectedAll(): boolean;
|
19
24
|
onChange: import("@angular/core").OutputEmitterRef<AITableChangeOptions>;
|
20
25
|
aiTableInitialized: import("@angular/core").OutputEmitterRef<AITable>;
|
21
|
-
fieldMenus:
|
26
|
+
fieldMenus: AITableFieldMenuItem[];
|
22
27
|
gridData: import("@angular/core").Signal<import("./types").AITableGridData>;
|
23
|
-
constructor(elementRef: ElementRef, aiTableGridEventService: AITableGridEventService, aiTableGridFieldService: AITableGridFieldService);
|
28
|
+
constructor(elementRef: ElementRef, aiTableGridEventService: AITableGridEventService, aiTableGridSelectionService: AITableGridSelectionService, aiTableGridFieldService: AITableGridFieldService, ngZone: NgZone);
|
24
29
|
ngOnInit(): void;
|
25
30
|
initAITable(): void;
|
26
31
|
initService(): void;
|
27
32
|
buildFieldMenus(): void;
|
28
33
|
addRecord(): void;
|
34
|
+
selectRecord(recordId: string): void;
|
35
|
+
toggleSelectAll(checked: boolean): void;
|
29
36
|
addField(gridColumnBlank: HTMLElement): void;
|
30
37
|
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>;
|
38
|
+
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; }; "aiPlugins": { "alias": "aiPlugins"; "required": false; "isSignal": true; }; }, { "aiRecords": "aiRecordsChange"; "aiFields": "aiFieldsChange"; "onChange": "onChange"; "aiTableInitialized": "aiTableInitialized"; }, never, never, true, never>;
|
32
39
|
}
|
33
40
|
//# sourceMappingURL=grid.component.d.ts.map
|
package/grid.component.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"grid.component.d.ts","sourceRoot":"","sources":["../../packages/grid/src/grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,UAAU,EAAgB,MAAM,
|
1
|
+
{"version":3,"file":"grid.component.d.ts","sourceRoot":"","sources":["../../packages/grid/src/grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,UAAU,EAAgB,MAAM,EAAE,MAAM,EAAkB,MAAM,eAAe,CAAC;AAOvI,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAIH,OAAO,EACP,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,cAAc,EAEd,QAAQ,EACX,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAanE,OAAO,EAAmC,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACpG,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;;AAE3E,qBAgCa,WAAY,YAAW,MAAM;IAkClC,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,uBAAuB;IACxB,2BAA2B,EAAE,2BAA2B;IAC/D,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,MAAM;IArClB,SAAS,sDAAoC;IAE7C,QAAQ,qDAAmC;IAE3C,WAAW,oEAA6B;IAExC,aAAa,iEAA0B;IAEvC,UAAU,2DAAoB;IAE9B,SAAS,8DAAuB;IAEhC,gBAAgB,0BAAoB;IAEpC,kBAAkB,mDAAwB;IAE1C,OAAO,EAAG,OAAO,CAAC;IAElB,IAAI,aAAa,YAEhB;IAED,QAAQ,iEAAkC;IAE1C,kBAAkB,oDAAqB;IAEvC,UAAU,EAAG,oBAAoB,EAAE,CAAC;IAEpC,QAAQ,oEAEL;gBAGS,UAAU,EAAE,UAAU,EACtB,uBAAuB,EAAE,uBAAuB,EACjD,2BAA2B,EAAE,2BAA2B,EACvD,uBAAuB,EAAE,uBAAuB,EAChD,MAAM,EAAE,MAAM;IAG1B,QAAQ,IAAI,IAAI;IAahB,WAAW;IAeX,WAAW;IAQX,eAAe;IAIf,SAAS;IAIT,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,eAAe,CAAC,OAAO,EAAE,OAAO;IAIhC,QAAQ,CAAC,eAAe,EAAE,WAAW;yCA7F5B,WAAW;2CAAX,WAAW;CAiGvB"}
|
package/package.json
CHANGED
package/pipes/grid.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/pipes/grid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,
|
1
|
+
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/pipes/grid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;;AAE9C,qBAIa,gBAAiB,YAAW,aAAa;IAClD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE;yCAD3C,gBAAgB;uCAAhB,gBAAgB;CAI5B"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { Subject } from 'rxjs';
|
1
2
|
import { AITable, AITableFieldType } from '../core';
|
2
3
|
import { ThyPopover } from 'ngx-tethys/popover';
|
3
4
|
import { AITableGridCellRenderSchema } from '../types';
|
@@ -7,6 +8,7 @@ export declare class AITableGridEventService {
|
|
7
8
|
aiTable: AITable;
|
8
9
|
aiFieldRenderers?: Partial<Record<AITableFieldType, AITableGridCellRenderSchema>>;
|
9
10
|
takeUntilDestroyed: import("rxjs").MonoTypeOperatorFunction<unknown>;
|
11
|
+
mousedownEvent$: Subject<MouseEvent>;
|
10
12
|
constructor(thyPopover: ThyPopover);
|
11
13
|
initialize(aiTable: AITable, aiFieldRenderers?: Partial<Record<AITableFieldType, AITableGridCellRenderSchema>>): void;
|
12
14
|
registerEvents(element: HTMLElement): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"event.service.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/services/event.service.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"event.service.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/services/event.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,OAAO,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,EAAE,OAAO,EAAgB,gBAAgB,EAAiB,MAAM,SAAS,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;;AAEvD,qBACa,uBAAuB;IASpB,OAAO,CAAC,UAAU;IAR9B,OAAO,EAAG,OAAO,CAAC;IAElB,gBAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAElF,kBAAkB,mDAAwB;IAE1C,eAAe,sBAA6B;gBAExB,UAAU,EAAE,UAAU;IAE1C,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC;IAK9G,cAAc,CAAC,OAAO,EAAE,WAAW;IAcnC,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,QAAQ;yCA7CP,uBAAuB;6CAAvB,uBAAuB;CA6EnC"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { AITable } from '../core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export declare class AITableGridSelectionService {
|
4
|
+
aiTable: AITable;
|
5
|
+
constructor();
|
6
|
+
initialize(aiTable: AITable): void;
|
7
|
+
clearSelection(): void;
|
8
|
+
selectCell(recordId: string, fieldId: string): void;
|
9
|
+
selectField(fieldId: string): void;
|
10
|
+
selectRecord(recordId: string): void;
|
11
|
+
toggleSelectAll(checked: boolean): void;
|
12
|
+
updateSelect(event: MouseEvent): void;
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AITableGridSelectionService, never>;
|
14
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AITableGridSelectionService>;
|
15
|
+
}
|
16
|
+
//# sourceMappingURL=selection.servive.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"selection.servive.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/services/selection.servive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;;AAElC,qBACa,2BAA2B;IACpC,OAAO,EAAG,OAAO,CAAC;;IAIlB,UAAU,CAAC,OAAO,EAAE,OAAO;IAI3B,cAAc;IAQd,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAK5C,WAAW,CAAC,OAAO,EAAE,MAAM;IAK3B,YAAY,CAAC,QAAQ,EAAE,MAAM;IAa7B,eAAe,CAAC,OAAO,EAAE,OAAO;IAShC,YAAY,CAAC,KAAK,EAAE,UAAU;yCAjDrB,2BAA2B;6CAA3B,2BAA2B;CA+DvC"}
|