@coolon/angular-ui-powerups 12.4.0-alpha.66 → 12.4.0-alpha.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/coolon-angular-ui-powerups.umd.js +7 -4
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/components/tables/abstract-table-model.js +5 -2
- package/esm2015/lib/components/tables/abstract-table-model.js.map +1 -1
- package/esm2015/lib/components/tables/abstract-table-model.metadata.json +1 -1
- package/esm2015/lib/components/tables/table/column-model.js.map +1 -1
- package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.js +2 -2
- package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -1
- package/esm2015/lib/components/tables/table/text-search-predicate.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +7 -4
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/tables/abstract-table-model.d.ts +2 -1
- package/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.d.ts +1 -1
- package/lib/components/tables/table/text-search-predicate.d.ts +1 -1
- package/package.json +1 -1
|
@@ -35,8 +35,11 @@ export class AbstractTableModel extends GarbageCollector {
|
|
|
35
35
|
this.lastVisibleColumn = chain(this._columnList).last();
|
|
36
36
|
this.rowSelectionDisabledOnAllColumns = chain(this._columnList).select(column => column.isRowSelectionEnabled()).count().equals(0);
|
|
37
37
|
}
|
|
38
|
-
findMatchingColumns(row,
|
|
39
|
-
return this.columns.value.filter(c => c.isTextMatch(row,
|
|
38
|
+
findMatchingColumns(row, regex) {
|
|
39
|
+
return this.columns.value.filter(c => c.isTextMatch(row, regex));
|
|
40
|
+
}
|
|
41
|
+
hasMatchingColumn(row, regex) {
|
|
42
|
+
return !!this.columns.value.find(c => c.isTextMatch(row, regex));
|
|
40
43
|
}
|
|
41
44
|
setDataSource(sourceOfTruth) {
|
|
42
45
|
this._dataSource.setDelegate(sourceOfTruth);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-table-model.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/abstract-table-model.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComponentType } from '@angular/cdk/overlay';\nimport {\n assert,\n BooleanValueModelChain,\n DelegatingListModel,\n DirtyTrackingForm,\n Disposable,\n Dsl,\n EventListenerList,\n GarbageCollector,\n lang,\n ListModel,\n ListModelChain,\n MapModelChain,\n MutableListModel,\n SelectionModel,\n TrackExternal,\n Types,\n UnaryCommand,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { ColumnListModel } from './column-list-model';\nimport { CellRenderer } from './table/cell-renderer';\nimport {\n CellRendererOptions,\n ColumnModel,\n CustomTemplateColumnModel,\n CustomValueColumnModel,\n EditorControlColumnModel,\n ListPropertyColumnModel,\n OnComponentInit,\n PropertyColumnModel,\n SelectionColumnModel\n} from './table/column-model';\nimport { ColumnTextProperties } from './table/column-text-properties';\nimport { EditSession } from './table/edit-session';\n\n// export type StringPropertiesOf<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];\n// export type NumberPropertiesOf<T> = { [K in keyof T]: T[K] extends number ? K : never }[keyof T];\n\nclass RowClass<Row> {\n constructor(readonly className: string,\n readonly matches: (row: Row) => boolean) {\n }\n}\n\n\nexport class AbstractTableModel<Row> extends GarbageCollector {\n\n private readonly _dataSource = this.registerDisposable(new DelegatingListModel<Row>());\n readonly dataSource: ListModelChain<Row>;\n\n private readonly _columnList = this.registerDisposable(new ColumnListModel<Row>());\n\n private _editorSessions = new MutableListModel<EditSession<Row>>();\n private readonly _rowsBeingEdited: MutableListModel<Row>;\n private readonly rowClassNamePredicates: RowClass<Row>[] = [];\n\n private _columnTextPropertiesLookup: { [columnName: string]: ColumnTextProperties };\n\n private saveCommand: UnaryCommand<DirtyTrackingForm<Row>, boolean>;\n private _editorSessionByRowId: MapModelChain<any, EditSession<Row>>;\n\n readonly editing: BooleanValueModelChain;\n readonly firstEditableColumn: ValueModelChain<ColumnModel<Row>>;\n private selectionColumnModel: SelectionColumnModel<Row>;\n private rowSelectionDisabledOnAllColumns: BooleanValueModelChain;\n private readonly rowClickListeners = new EventListenerList<(row: Row) => void>();\n readonly firstVisibleColumn: ValueModel<ColumnModel<Row>>;\n readonly lastVisibleColumn: ValueModel<ColumnModel<Row>>;\n\n private _createForm: (row: Row) => DirtyTrackingForm<Row> = (row) => new DirtyTrackingForm<Row>();\n\n public constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this._rowsBeingEdited = new MutableListModel<Row>([], {\n identifiedWith: row => this.identityOf(row)\n });\n this._editorSessionByRowId = chain(this._editorSessions).indexBy('rowId');\n this.editing = chain(this._editorSessions).count().isGreaterThan(0);\n this.dataSource = chain(this._dataSource).replaceAll(this.rowsBeingEdited);\n\n this.firstEditableColumn = chain(this.columns).select(c => c.hasEditorPortal()).first();\n this.firstVisibleColumn = chain(this._columnList).first();\n this.lastVisibleColumn = chain(this._columnList).last();\n\n this.rowSelectionDisabledOnAllColumns = chain(this._columnList).select(column => column.isRowSelectionEnabled()).count().equals(0);\n }\n\n findMatchingColumns(row: Row, text: string): ColumnModel<Row>[] {\n return this.columns.value.filter(c => c.isTextMatch(row, text));\n }\n\n protected setDataSource(sourceOfTruth: ListModel<Row>) {\n this._dataSource.setDelegate(sourceOfTruth);\n }\n\n identityOf(row: Row): any {\n return this._dataSource.identityOf(row);\n }\n\n get rowsBeingEdited(): ListModel<Row> {\n return this._rowsBeingEdited.readonly;\n }\n\n readonly trackBy = (index: number, item: Row) => {\n return this.identityOf ? this.identityOf(item) : index;\n };\n\n get columns(): ListModel<ColumnModel<Row>> {\n return this._columnList.allColumns;\n }\n\n get visibleColumns(): ListModel<ColumnModel<Row>> {\n return this._columnList.readonly;\n }\n\n pluck<P extends Types.ValuePropertiesOf<Row>>(property: P, options?: { columnId: string }): PropertyColumnModel<Row, P> {\n const columnId = options?.columnId || property.toString();\n return this.addColumn(new PropertyColumnModel<Row, P>(columnId, property, () => this.getColumnTextProperties(columnId)));\n }\n\n pluckList<P extends Types.ArrayPropertiesOf<Row>>(property: P, options?: { columnId: string }): ListPropertyColumnModel<Row, P> {\n const columnId = options?.columnId || property.toString();\n return this.addColumn(new ListPropertyColumnModel<Row, P>(columnId, property, () => this.getColumnTextProperties(columnId)));\n }\n\n protected _addSelectionColumn(selectionModel?: SelectionModel<Row>, visible?: ValueModel<boolean> | boolean): SelectionColumnModel<Row> {\n assert.isNil(this.selectionColumnModel);\n const columnId = 'selection-column';\n this.selectionColumnModel = new SelectionColumnModel<Row>(columnId, () => this.getColumnTextProperties(columnId), selectionModel);\n this.addRowClass('aup-row-selected', row => this.selectionColumnModel.isSelected(row));\n const selectionColumnModel = this.addColumn(this.selectionColumnModel, 0);\n if (!_.isNil(visible)) {\n selectionColumnModel.visibleWhile(visible instanceof ValueModel ? visible : ValueModel.constant(visible));\n }\n return selectionColumnModel;\n }\n\n addEditControls(saveCommand: UnaryCommand<DirtyTrackingForm<Row>, boolean>): EditorControlColumnModel<Row> {\n this.saveCommand = saveCommand;\n const columnId = 'editControls';\n return this.addColumn(new EditorControlColumnModel<Row>(columnId, saveCommand, () => this.getColumnTextProperties(columnId)));\n }\n\n addCustomColumn<V>(columnId: string, dataAccessor: (row: Row) => V): CustomValueColumnModel<Row, V> {\n return this.addColumn(new CustomValueColumnModel<Row, V>(columnId, () => this.getColumnTextProperties(columnId), dataAccessor));\n }\n\n addComponentColumn<C extends CellRenderer<Partial<Row>>>(columnId: string, component: ComponentType<C>, onInit?: OnComponentInit<C>): CustomValueColumnModel<Row, Row>\n addComponentColumn<C extends CellRenderer<Partial<Row>>>(columnId: string, component: ComponentType<C>, options?: CellRendererOptions<Row, C>): CustomValueColumnModel<Row, Row>\n addComponentColumn<C extends CellRenderer<Partial<Row>>>(columnId: string, component: ComponentType<C>, onComponentInitOrOptions?: OnComponentInit<C> | CellRendererOptions<Row, C>): CustomValueColumnModel<Row, Row> {\n return this.addColumn(new CustomValueColumnModel<Row, Row>(columnId, () => this.getColumnTextProperties(columnId), row => row)).cellRenderer(component, onComponentInitOrOptions);\n }\n\n addTemplateColumn<V>(columnId: string): CustomTemplateColumnModel<Row> {\n return this.addColumn(new CustomTemplateColumnModel<Row>(columnId, () => this.getColumnTextProperties(columnId)));\n }\n\n addRowClass(className: string, predicate: (row: Row) => boolean) {\n this.rowClassNamePredicates.push(new RowClass<Row>(className, predicate));\n }\n\n getRowClasses(row: Row): string[] {\n const classNames: string[] = [];\n this.rowClassNamePredicates.forEach(i => {\n if (i.matches(row)) {\n classNames.push(i.className);\n }\n });\n return classNames;\n }\n\n useFormFactory(factory: (row: Row) => DirtyTrackingForm<Row>): this {\n this._createForm = factory;\n return this;\n }\n\n protected addColumn<C extends ColumnModel<Row>>(column: C, index?: number): C {\n return this._columnList.addColumn(column, index);\n }\n\n // removeColumn(column: ColumnModel<Row>) {\n //\n // }\n\n columnTextProperties(columnTextProperties: { [columnName: string]: ColumnTextProperties }) {\n this._columnTextPropertiesLookup = columnTextProperties;\n }\n\n getColumnTextProperties(columnId: string): ColumnTextProperties {\n return this._columnTextPropertiesLookup ? this._columnTextPropertiesLookup[columnId] : undefined;\n }\n\n startEditSession(row: Row): EditSession<Row> {\n const rowId = this.identityOf(row);\n if (this._rowsBeingEdited.query().indexOf(row) > -1) {\n return lang.illegalState(`Row with id=${rowId} already being edited`);\n } else {\n const editSession = new EditSession<Row>(rowId, row, this._createForm(row), this.saveCommand);\n const { when } = Dsl.disposeWith(editSession);\n when(editSession.liveRowValue).changes((editedValue) => {\n this._rowsBeingEdited.replaceOrPush(editedValue);\n }, { initialValue: 'triggerChangeUnlessNil' });\n\n this._editorSessions.push(editSession);\n editSession.onDispose(() => {\n this._rowsBeingEdited.remove(editSession.liveRowValue.value);\n this._editorSessions.remove(editSession);\n });\n return editSession;\n }\n }\n\n getEditSessionFor(row: Row): EditSession<Row> {\n return this._editorSessionByRowId.get(this.identityOf(row));\n }\n\n cancelAllEditorSessions() {\n this._editorSessions.runInTransaction((draft) => {\n this._rowsBeingEdited.runInTransaction(() => {\n draft.value.forEach(session => session.dispose());\n });\n });\n }\n\n isRowSelectionEnabledFor(column: ColumnModel<Row>): boolean {\n return this.isRowSelectionEnabled() && column.isRowSelectionEnabled();\n }\n\n isRowSelectionEnabled() {\n return this.hasUserSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;\n }\n\n hasUserSelectionModel() {\n return !!this.selectionColumnModel?.selectionModel.getDelegate();\n }\n\n getSelectionModel(): SelectionModel<Row> | undefined {\n return this.selectionColumnModel?.selectionModel;\n }\n\n isHoverEnabled(): boolean {\n return this.isRowSelectionEnabled() || this.rowClickListeners.listenerCount > 0;\n }\n\n isCursorEnabled(column: ColumnModel<Row>) {\n return this.isRowSelectionEnabledFor(column) || this.rowClickListeners.listenerCount > 0;\n }\n\n selectRow(row: Row) {\n this.selectionColumnModel?.selectRow(row);\n }\n\n onRowClicked(callback: (row: Row) => void): Disposable {\n return this.rowClickListeners.add(callback);\n }\n\n _notifyCellClicked(columnModel: ColumnModel<Row>, row: Row) {\n if (this.isRowSelectionEnabledFor(columnModel)) {\n this.selectRow(row);\n }\n this.rowClickListeners.fire(l => l(row));\n }\n}\n\n\nTrackExternal.oneTimeBinding(AbstractTableModel);\n"]}
|
|
1
|
+
{"version":3,"file":"abstract-table-model.js","sourceRoot":"","sources":["../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/abstract-table-model.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EAEN,mBAAmB,EACnB,iBAAiB,EAEjB,GAAG,EACH,iBAAiB,EACjB,gBAAgB,EAChB,IAAI,EAIJ,gBAAgB,EAEhB,aAAa,EAGb,UAAU,EAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAGL,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EAEvB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,oGAAoG;AACpG,oGAAoG;AAEpG,MAAM,QAAQ;IACZ,YAAqB,SAAiB,EACjB,OAA8B;QAD9B,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAuB;IACnD,CAAC;CACF;AAGD,MAAM,OAAO,kBAAwB,SAAQ,gBAAgB;IA0B3D;QACE,KAAK,EAAE,CAAC;QAzBO,gBAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,mBAAmB,EAAO,CAAC,CAAC;QAGtE,gBAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,eAAe,EAAO,CAAC,CAAC;QAE3E,oBAAe,GAAG,IAAI,gBAAgB,EAAoB,CAAC;QAElD,2BAAsB,GAAoB,EAAE,CAAC;QAW7C,sBAAiB,GAAG,IAAI,iBAAiB,EAAsB,CAAC;QAIzE,gBAAW,GAAyC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,iBAAiB,EAAO,CAAC;QAuCzF,YAAO,GAAG,CAAC,KAAa,EAAE,IAAS,EAAE,EAAE;YAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACzD,CAAC,CAAC;QArCA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAM,EAAE,EAAE;YACpD,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;SAC5C,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE3E,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACxF,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1D,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;QAExD,IAAI,CAAC,gCAAgC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrI,CAAC;IAED,mBAAmB,CAAC,GAAQ,EAAE,KAAa;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,iBAAiB,CAAC,GAAQ,EAAE,KAAa;QACvC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAES,aAAa,CAAC,aAA6B;QACnD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,GAAQ;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IACxC,CAAC;IAMD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED,KAAK,CAAyC,QAAW,EAAE,OAA8B;QACvF,MAAM,QAAQ,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAS,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3H,CAAC;IAED,SAAS,CAAyC,QAAW,EAAE,OAA8B;QAC3F,MAAM,QAAQ,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAS,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/H,CAAC;IAES,mBAAmB,CAAC,cAAoC,EAAE,OAAuC;QACzG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QACpC,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAM,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;QAClI,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACvF,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACrB,oBAAoB,CAAC,YAAY,CAAC,OAAO,YAAY,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;SAC3G;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,eAAe,CAAC,WAA0D;QACxE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,MAAM,QAAQ,GAAG,cAAc,CAAC;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAM,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChI,CAAC;IAED,eAAe,CAAI,QAAgB,EAAE,YAA6B;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAS,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAClI,CAAC;IAID,kBAAkB,CAAuC,QAAgB,EAAE,SAA2B,EAAE,wBAA2E;QACjL,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAW,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;IACpL,CAAC;IAED,iBAAiB,CAAI,QAAgB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,yBAAyB,CAAM,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpH,CAAC;IAED,WAAW,CAAC,SAAiB,EAAE,SAAgC;QAC7D,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAM,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,aAAa,CAAC,GAAQ;QACpB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACtC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAClB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aAC9B;QACH,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,cAAc,CAAC,OAA6C;QAC1D,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAES,SAAS,CAA6B,MAAS,EAAE,KAAc;QACvE,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,2CAA2C;IAC3C,EAAE;IACF,IAAI;IAEJ,oBAAoB,CAAC,oBAAoE;QACvF,IAAI,CAAC,2BAA2B,GAAG,oBAAoB,CAAC;IAC1D,CAAC;IAED,uBAAuB,CAAC,QAAgB;QACtC,OAAO,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,CAAC;IAED,gBAAgB,CAAC,GAAQ;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;YACnD,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,KAAK,uBAAuB,CAAC,CAAC;SACvE;aAAM;YACL,MAAM,WAAW,GAAG,IAAI,WAAW,CAAM,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9F,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;gBACrD,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC,EAAE,EAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAE/C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE;gBACzB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC7D,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,OAAO,WAAW,CAAC;SACpB;IACH,CAAC;IAED,iBAAiB,CAAC,GAAQ;QACxB,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9C,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,EAAE;gBAC1C,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB,CAAC,MAAwB;QAC/C,OAAO,IAAI,CAAC,qBAAqB,EAAE,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;IACxE,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC;IACtF,CAAC;IAED,qBAAqB;;QACnB,OAAO,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,oBAAoB,0CAAE,cAAc,CAAC,WAAW,EAAE,CAAA,CAAC;IACnE,CAAC;IAED,iBAAiB;;QACf,OAAO,MAAA,IAAI,CAAC,oBAAoB,0CAAE,cAAc,CAAC;IACnD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,CAAC,CAAC;IAClF,CAAC;IAED,eAAe,CAAC,MAAwB;QACtC,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,CAAC,CAAC;IAC3F,CAAC;IAED,SAAS,CAAC,GAAQ;;QAChB,MAAA,IAAI,CAAC,oBAAoB,0CAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY,CAAC,QAA4B;QACvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,kBAAkB,CAAC,WAA6B,EAAE,GAAQ;QACxD,IAAI,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SACrB;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;CACF;AAGD,aAAa,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC","sourcesContent":["import { ComponentType } from '@angular/cdk/overlay';\nimport {\n assert,\n BooleanValueModelChain,\n DelegatingListModel,\n DirtyTrackingForm,\n Disposable,\n Dsl,\n EventListenerList,\n GarbageCollector,\n lang,\n ListModel,\n ListModelChain,\n MapModelChain,\n MutableListModel,\n SelectionModel,\n TrackExternal,\n Types,\n UnaryCommand,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { ColumnListModel } from './column-list-model';\nimport { CellRenderer } from './table/cell-renderer';\nimport {\n CellRendererOptions,\n ColumnModel,\n CustomTemplateColumnModel,\n CustomValueColumnModel,\n EditorControlColumnModel,\n ListPropertyColumnModel,\n OnComponentInit,\n PropertyColumnModel,\n SelectionColumnModel\n} from './table/column-model';\nimport { ColumnTextProperties } from './table/column-text-properties';\nimport { EditSession } from './table/edit-session';\n\n// export type StringPropertiesOf<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];\n// export type NumberPropertiesOf<T> = { [K in keyof T]: T[K] extends number ? K : never }[keyof T];\n\nclass RowClass<Row> {\n constructor(readonly className: string,\n readonly matches: (row: Row) => boolean) {\n }\n}\n\n\nexport class AbstractTableModel<Row> extends GarbageCollector {\n\n private readonly _dataSource = this.registerDisposable(new DelegatingListModel<Row>());\n readonly dataSource: ListModelChain<Row>;\n\n private readonly _columnList = this.registerDisposable(new ColumnListModel<Row>());\n\n private _editorSessions = new MutableListModel<EditSession<Row>>();\n private readonly _rowsBeingEdited: MutableListModel<Row>;\n private readonly rowClassNamePredicates: RowClass<Row>[] = [];\n\n private _columnTextPropertiesLookup: { [columnName: string]: ColumnTextProperties };\n\n private saveCommand: UnaryCommand<DirtyTrackingForm<Row>, boolean>;\n private _editorSessionByRowId: MapModelChain<any, EditSession<Row>>;\n\n readonly editing: BooleanValueModelChain;\n readonly firstEditableColumn: ValueModelChain<ColumnModel<Row>>;\n private selectionColumnModel: SelectionColumnModel<Row>;\n private rowSelectionDisabledOnAllColumns: BooleanValueModelChain;\n private readonly rowClickListeners = new EventListenerList<(row: Row) => void>();\n readonly firstVisibleColumn: ValueModel<ColumnModel<Row>>;\n readonly lastVisibleColumn: ValueModel<ColumnModel<Row>>;\n\n private _createForm: (row: Row) => DirtyTrackingForm<Row> = (row) => new DirtyTrackingForm<Row>();\n\n public constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this._rowsBeingEdited = new MutableListModel<Row>([], {\n identifiedWith: row => this.identityOf(row)\n });\n this._editorSessionByRowId = chain(this._editorSessions).indexBy('rowId');\n this.editing = chain(this._editorSessions).count().isGreaterThan(0);\n this.dataSource = chain(this._dataSource).replaceAll(this.rowsBeingEdited);\n\n this.firstEditableColumn = chain(this.columns).select(c => c.hasEditorPortal()).first();\n this.firstVisibleColumn = chain(this._columnList).first();\n this.lastVisibleColumn = chain(this._columnList).last();\n\n this.rowSelectionDisabledOnAllColumns = chain(this._columnList).select(column => column.isRowSelectionEnabled()).count().equals(0);\n }\n\n findMatchingColumns(row: Row, regex: RegExp): ColumnModel<Row>[] {\n return this.columns.value.filter(c => c.isTextMatch(row, regex));\n }\n\n hasMatchingColumn(row: Row, regex: RegExp): boolean {\n return !!this.columns.value.find(c => c.isTextMatch(row, regex));\n }\n\n protected setDataSource(sourceOfTruth: ListModel<Row>) {\n this._dataSource.setDelegate(sourceOfTruth);\n }\n\n identityOf(row: Row): any {\n return this._dataSource.identityOf(row);\n }\n\n get rowsBeingEdited(): ListModel<Row> {\n return this._rowsBeingEdited.readonly;\n }\n\n readonly trackBy = (index: number, item: Row) => {\n return this.identityOf ? this.identityOf(item) : index;\n };\n\n get columns(): ListModel<ColumnModel<Row>> {\n return this._columnList.allColumns;\n }\n\n get visibleColumns(): ListModel<ColumnModel<Row>> {\n return this._columnList.readonly;\n }\n\n pluck<P extends Types.ValuePropertiesOf<Row>>(property: P, options?: { columnId: string }): PropertyColumnModel<Row, P> {\n const columnId = options?.columnId || property.toString();\n return this.addColumn(new PropertyColumnModel<Row, P>(columnId, property, () => this.getColumnTextProperties(columnId)));\n }\n\n pluckList<P extends Types.ArrayPropertiesOf<Row>>(property: P, options?: { columnId: string }): ListPropertyColumnModel<Row, P> {\n const columnId = options?.columnId || property.toString();\n return this.addColumn(new ListPropertyColumnModel<Row, P>(columnId, property, () => this.getColumnTextProperties(columnId)));\n }\n\n protected _addSelectionColumn(selectionModel?: SelectionModel<Row>, visible?: ValueModel<boolean> | boolean): SelectionColumnModel<Row> {\n assert.isNil(this.selectionColumnModel);\n const columnId = 'selection-column';\n this.selectionColumnModel = new SelectionColumnModel<Row>(columnId, () => this.getColumnTextProperties(columnId), selectionModel);\n this.addRowClass('aup-row-selected', row => this.selectionColumnModel.isSelected(row));\n const selectionColumnModel = this.addColumn(this.selectionColumnModel, 0);\n if (!_.isNil(visible)) {\n selectionColumnModel.visibleWhile(visible instanceof ValueModel ? visible : ValueModel.constant(visible));\n }\n return selectionColumnModel;\n }\n\n addEditControls(saveCommand: UnaryCommand<DirtyTrackingForm<Row>, boolean>): EditorControlColumnModel<Row> {\n this.saveCommand = saveCommand;\n const columnId = 'editControls';\n return this.addColumn(new EditorControlColumnModel<Row>(columnId, saveCommand, () => this.getColumnTextProperties(columnId)));\n }\n\n addCustomColumn<V>(columnId: string, dataAccessor: (row: Row) => V): CustomValueColumnModel<Row, V> {\n return this.addColumn(new CustomValueColumnModel<Row, V>(columnId, () => this.getColumnTextProperties(columnId), dataAccessor));\n }\n\n addComponentColumn<C extends CellRenderer<Partial<Row>>>(columnId: string, component: ComponentType<C>, onInit?: OnComponentInit<C>): CustomValueColumnModel<Row, Row>\n addComponentColumn<C extends CellRenderer<Partial<Row>>>(columnId: string, component: ComponentType<C>, options?: CellRendererOptions<Row, C>): CustomValueColumnModel<Row, Row>\n addComponentColumn<C extends CellRenderer<Partial<Row>>>(columnId: string, component: ComponentType<C>, onComponentInitOrOptions?: OnComponentInit<C> | CellRendererOptions<Row, C>): CustomValueColumnModel<Row, Row> {\n return this.addColumn(new CustomValueColumnModel<Row, Row>(columnId, () => this.getColumnTextProperties(columnId), row => row)).cellRenderer(component, onComponentInitOrOptions);\n }\n\n addTemplateColumn<V>(columnId: string): CustomTemplateColumnModel<Row> {\n return this.addColumn(new CustomTemplateColumnModel<Row>(columnId, () => this.getColumnTextProperties(columnId)));\n }\n\n addRowClass(className: string, predicate: (row: Row) => boolean) {\n this.rowClassNamePredicates.push(new RowClass<Row>(className, predicate));\n }\n\n getRowClasses(row: Row): string[] {\n const classNames: string[] = [];\n this.rowClassNamePredicates.forEach(i => {\n if (i.matches(row)) {\n classNames.push(i.className);\n }\n });\n return classNames;\n }\n\n useFormFactory(factory: (row: Row) => DirtyTrackingForm<Row>): this {\n this._createForm = factory;\n return this;\n }\n\n protected addColumn<C extends ColumnModel<Row>>(column: C, index?: number): C {\n return this._columnList.addColumn(column, index);\n }\n\n // removeColumn(column: ColumnModel<Row>) {\n //\n // }\n\n columnTextProperties(columnTextProperties: { [columnName: string]: ColumnTextProperties }) {\n this._columnTextPropertiesLookup = columnTextProperties;\n }\n\n getColumnTextProperties(columnId: string): ColumnTextProperties {\n return this._columnTextPropertiesLookup ? this._columnTextPropertiesLookup[columnId] : undefined;\n }\n\n startEditSession(row: Row): EditSession<Row> {\n const rowId = this.identityOf(row);\n if (this._rowsBeingEdited.query().indexOf(row) > -1) {\n return lang.illegalState(`Row with id=${rowId} already being edited`);\n } else {\n const editSession = new EditSession<Row>(rowId, row, this._createForm(row), this.saveCommand);\n const { when } = Dsl.disposeWith(editSession);\n when(editSession.liveRowValue).changes((editedValue) => {\n this._rowsBeingEdited.replaceOrPush(editedValue);\n }, { initialValue: 'triggerChangeUnlessNil' });\n\n this._editorSessions.push(editSession);\n editSession.onDispose(() => {\n this._rowsBeingEdited.remove(editSession.liveRowValue.value);\n this._editorSessions.remove(editSession);\n });\n return editSession;\n }\n }\n\n getEditSessionFor(row: Row): EditSession<Row> {\n return this._editorSessionByRowId.get(this.identityOf(row));\n }\n\n cancelAllEditorSessions() {\n this._editorSessions.runInTransaction((draft) => {\n this._rowsBeingEdited.runInTransaction(() => {\n draft.value.forEach(session => session.dispose());\n });\n });\n }\n\n isRowSelectionEnabledFor(column: ColumnModel<Row>): boolean {\n return this.isRowSelectionEnabled() && column.isRowSelectionEnabled();\n }\n\n isRowSelectionEnabled() {\n return this.hasUserSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;\n }\n\n hasUserSelectionModel() {\n return !!this.selectionColumnModel?.selectionModel.getDelegate();\n }\n\n getSelectionModel(): SelectionModel<Row> | undefined {\n return this.selectionColumnModel?.selectionModel;\n }\n\n isHoverEnabled(): boolean {\n return this.isRowSelectionEnabled() || this.rowClickListeners.listenerCount > 0;\n }\n\n isCursorEnabled(column: ColumnModel<Row>) {\n return this.isRowSelectionEnabledFor(column) || this.rowClickListeners.listenerCount > 0;\n }\n\n selectRow(row: Row) {\n this.selectionColumnModel?.selectRow(row);\n }\n\n onRowClicked(callback: (row: Row) => void): Disposable {\n return this.rowClickListeners.add(callback);\n }\n\n _notifyCellClicked(columnModel: ColumnModel<Row>, row: Row) {\n if (this.isRowSelectionEnabledFor(columnModel)) {\n this.selectRow(row);\n }\n this.rowClickListeners.fire(l => l(row));\n }\n}\n\n\nTrackExternal.oneTimeBinding(AbstractTableModel);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"AbstractTableModel":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":49,"character":45},"arity":1,"members":{"__ctor__":[{"__symbolic":"constructor"}],"findMatchingColumns":[{"__symbolic":"method"}],"setDataSource":[{"__symbolic":"method"}],"identityOf":[{"__symbolic":"method"}],"pluck":[{"__symbolic":"method"}],"pluckList":[{"__symbolic":"method"}],"_addSelectionColumn":[{"__symbolic":"method"}],"addEditControls":[{"__symbolic":"method"}],"addCustomColumn":[{"__symbolic":"method"}],"addComponentColumn":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"addTemplateColumn":[{"__symbolic":"method"}],"addRowClass":[{"__symbolic":"method"}],"getRowClasses":[{"__symbolic":"method"}],"useFormFactory":[{"__symbolic":"method"}],"addColumn":[{"__symbolic":"method"}],"columnTextProperties":[{"__symbolic":"method"}],"getColumnTextProperties":[{"__symbolic":"method"}],"startEditSession":[{"__symbolic":"method"}],"getEditSessionFor":[{"__symbolic":"method"}],"cancelAllEditorSessions":[{"__symbolic":"method"}],"isRowSelectionEnabledFor":[{"__symbolic":"method"}],"isRowSelectionEnabled":[{"__symbolic":"method"}],"hasUserSelectionModel":[{"__symbolic":"method"}],"getSelectionModel":[{"__symbolic":"method"}],"isHoverEnabled":[{"__symbolic":"method"}],"isCursorEnabled":[{"__symbolic":"method"}],"selectRow":[{"__symbolic":"method"}],"onRowClicked":[{"__symbolic":"method"}],"_notifyCellClicked":[{"__symbolic":"method"}]}}}}]
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"AbstractTableModel":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":49,"character":45},"arity":1,"members":{"__ctor__":[{"__symbolic":"constructor"}],"findMatchingColumns":[{"__symbolic":"method"}],"hasMatchingColumn":[{"__symbolic":"method"}],"setDataSource":[{"__symbolic":"method"}],"identityOf":[{"__symbolic":"method"}],"pluck":[{"__symbolic":"method"}],"pluckList":[{"__symbolic":"method"}],"_addSelectionColumn":[{"__symbolic":"method"}],"addEditControls":[{"__symbolic":"method"}],"addCustomColumn":[{"__symbolic":"method"}],"addComponentColumn":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"addTemplateColumn":[{"__symbolic":"method"}],"addRowClass":[{"__symbolic":"method"}],"getRowClasses":[{"__symbolic":"method"}],"useFormFactory":[{"__symbolic":"method"}],"addColumn":[{"__symbolic":"method"}],"columnTextProperties":[{"__symbolic":"method"}],"getColumnTextProperties":[{"__symbolic":"method"}],"startEditSession":[{"__symbolic":"method"}],"getEditSessionFor":[{"__symbolic":"method"}],"cancelAllEditorSessions":[{"__symbolic":"method"}],"isRowSelectionEnabledFor":[{"__symbolic":"method"}],"isRowSelectionEnabled":[{"__symbolic":"method"}],"hasUserSelectionModel":[{"__symbolic":"method"}],"getSelectionModel":[{"__symbolic":"method"}],"isHoverEnabled":[{"__symbolic":"method"}],"isCursorEnabled":[{"__symbolic":"method"}],"selectRow":[{"__symbolic":"method"}],"onRowClicked":[{"__symbolic":"method"}],"_notifyCellClicked":[{"__symbolic":"method"}]}}}}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-model.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/table/column-model.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComponentType } from '@angular/cdk/overlay';\nimport { TemplateRef, ViewContainerRef } from '@angular/core';\nimport {\n Command,\n DelegatingSelectionModel,\n DelegatingValueModel,\n DirtyTrackingForm,\n GarbageCollector,\n MultipleSelectionModel,\n SelectionModel,\n Types,\n UnaryCommand,\n Validator,\n ValueModel\n} from '@coolon/pectin';\nimport { assert, Stringy } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport _ from 'lodash';\nimport { CellEditorComponent, CellListEditorComponent } from './cell-editors';\nimport {\n CellEditorPortalRef,\n CellHeaderPortalRef,\n CellRendererPortalRef,\n ComponentCellRendererPortalRef,\n TemplateCellRendererPortalRef\n} from './cell-portal-ref';\nimport { CellRenderer } from './cell-renderer';\nimport { ColumnTextProperties } from './column-text-properties';\nimport { DefaultCellRendererComponent } from './default-cell-renderer/default-cell-renderer.component';\nimport { DefaultHeaderCellRendererComponent } from './default-header-cell-renderer/default-header-cell-renderer.component';\nimport { EditRowControls } from './edit-row-controls/edit-row-controls.component';\nimport { EditSession } from './edit-session';\nimport { MutableCellRenderer } from './mutable-cell-renderer';\nimport { SelectCellRendererComponent } from './select-cell-renderer/select-cell-renderer.component';\nimport { SelectHeaderCellRendererComponent } from './select-header-cell-renderer/select-header-cell-renderer.component';\nimport { TableCellRendererComponent } from './table-cell-renderer/table-cell-renderer.component';\nimport { TableHeaderCellRendererComponent } from './table-header-cell-renderer/table-header-cell-renderer.component';\nimport { TextSearchPredicate } from './text-search-predicate';\n\n\nconst noop = () => {\n};\n\nexport interface RowData<Row> {\n row: Row;\n editSession?: EditSession<Row>;\n editRowCommand: Command<void>;\n}\n\nconst CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol('aup-cell-renderer:row-data-cache');\n\nexport type OnComponentInit<C> = (component: C) => void;\n\nexport interface CellRendererOptions<Row, E> {\n onComponentInit?: (component: E) => void;\n onRowUpdate?: (component: E, row: Row) => void;\n}\n\n\nexport interface MutableCellRendererOptions<Row, E, P extends keyof Row> extends CellRendererOptions<Row, E> {\n onValueEdit: (row: Row, is: Row[P], was: Row[P]) => void;\n}\n\nconst DEFAULT_TEXT_SEARCH_PREDICATE: TextSearchPredicate<unknown> = (row: unknown, text: string) => false;\n\nexport class ColumnModel<Row> extends GarbageCollector {\n\n private _columnTextProperties: ColumnTextProperties;\n\n private _columnHeaderPortalRef: CellHeaderPortalRef<Row, any>;\n private _cellRendererPortalRef: CellRendererPortalRef<Row, any>;\n private _cellEditorPortalRef: CellEditorPortalRef<Row, any>;\n\n private _enableRowSelection = true;\n private _flex = false;\n\n private _defaultVisibility = this.registerDisposable(new DelegatingValueModel<boolean>().withDefault(true));\n private _visible = this.registerDisposable(new DelegatingValueModel<boolean>().withDefault(this._defaultVisibility));\n readonly dasherisedColumnId: string;\n protected _columnModelTextSearchPredicate: TextSearchPredicate<Row> = undefined;\n protected _cellRendererTextSearchPredicate: TextSearchPredicate<Row> = undefined;\n\n constructor(readonly columnId: string, private textPropertiesProvider: ColumnModel.TextPropertiesProvider) {\n super();\n this.installHeaderRenderer();\n this.dasherisedColumnId = Stringy.from(columnId).dasherize().toString();\n }\n\n protected installHeaderRenderer() {\n this.cellHeaderRenderer(DefaultHeaderCellRendererComponent, (component, column) => {\n component.headerText = column.getHeaderText();\n });\n }\n\n @Memoize()\n getHeaderText(): string {\n return this.getColumnTextProperties()?.headerText() || this.getDefaultHeaderText();\n }\n\n isVisible() {\n return this.visible.value;\n }\n\n get visible() {\n return this._visible.readonly;\n }\n\n visibleWhile(visible: ValueModel<boolean>): this {\n this._visible.setDelegate(visible);\n return this;\n }\n\n protected setDefaultVisibility(visible: ValueModel<boolean>) {\n this._defaultVisibility.setDelegate(visible);\n }\n\n protected getDefaultHeaderText() {\n return this.columnId;\n }\n\n get isTextMatch(): TextSearchPredicate<Row> {\n return this._columnModelTextSearchPredicate || this._cellRendererTextSearchPredicate || DEFAULT_TEXT_SEARCH_PREDICATE;\n }\n\n /**\n * Sets the predicate to use when checking if the specified row is a text match for this column.\n * @param predicate\n */\n useTextSearchPredicate(predicate: TextSearchPredicate<Row>):this {\n this._columnModelTextSearchPredicate = predicate;\n return this;\n }\n\n @Memoize()\n getColumnTextProperties(): ColumnTextProperties {\n return this._columnTextProperties || this.textPropertiesProvider();\n }\n\n /**\n * @deprecated use #columnTextProperties instead\n * @param columnTextProperties\n */\n textProperties(columnTextProperties: ColumnTextProperties): this {\n return this.columnTextProperties(columnTextProperties);\n }\n\n columnTextProperties(columnTextProperties: ColumnTextProperties): this {\n this._columnTextProperties = columnTextProperties;\n return this;\n }\n\n protected configureHeaderRenderer<C>(config: CellHeaderPortalRef<Row, any>): void {\n this._columnHeaderPortalRef = config;\n }\n\n protected configureCellRenderer<C>(config: CellRendererPortalRef<Row, any>): void {\n this._cellRendererPortalRef = config;\n }\n\n protected configureCellEditor<E>(cellEditor: CellEditorPortalRef<Row, E>): void {\n this._cellEditorPortalRef = cellEditor;\n }\n\n cellHeaderRenderer<C>(componentType: ComponentType<C>, initialiser: (component: C, column: ColumnModel<Row>) => void): this {\n this.configureHeaderRenderer(new CellHeaderPortalRef<Row, C>(componentType, initialiser));\n return this;\n }\n\n flex(flex = true) {\n this._flex = flex;\n }\n\n isFlex() {\n return this._flex;\n }\n\n hasEditorPortal() {\n return !!this._cellEditorPortalRef;\n }\n\n attachHeaderCell(host: any) {\n this._columnHeaderPortalRef.initialiseHost(host, this);\n }\n\n attachCell(host: any) {\n this._cellRendererPortalRef.initialiseHost(host, this);\n if (this.hasEditorPortal()) {\n this._cellEditorPortalRef.initialiseHost(host, this);\n }\n }\n\n onHeaderAttached(host: TableHeaderCellRendererComponent, component: any) {\n this._columnHeaderPortalRef.onPortalAttached(host, component);\n }\n\n onRendererAttached(host: TableCellRendererComponent<Row>, component: any) {\n this._cellRendererPortalRef.onPortalAttached(host, component);\n if (_.isFunction(component.matches)) {\n this._cellRendererTextSearchPredicate = (row, text) => component.matches(row, text);\n } else {\n this._cellRendererTextSearchPredicate = undefined;\n }\n }\n\n // @Trace()\n onEditorAttached(host: TableCellRendererComponent<Row>, component: any) {\n this._cellEditorPortalRef.onPortalAttached(host, component);\n }\n\n updatePortalContent(host: TableCellRendererComponent<Row>) {\n this._cellRendererPortalRef.pushState(host);\n }\n\n protected _selectRowOnClick(selectRowOnClick: boolean): this {\n this._enableRowSelection = selectRowOnClick;\n return this;\n }\n\n isRowSelectionEnabled(): boolean {\n return this._enableRowSelection;\n }\n}\n\nexport namespace ColumnModel {\n export type TextPropertiesProvider = () => ColumnTextProperties\n}\n\n\nexport class PropertyColumnModel<Row, P extends Types.ValuePropertiesOf<Row>> extends ColumnModel<Row> {\n\n private _format: (value: Row[P]) => any = (value) => value;\n\n constructor(id: string, readonly property: P, defaults: ColumnModel.TextPropertiesProvider) {\n super(id, defaults);\n this.cellRenderer(DefaultCellRendererComponent);\n }\n\n cellRenderer<E extends CellRenderer<Row[P]>>(componentType: ComponentType<E>, options?: CellRendererOptions<Row, E>): this\n cellRenderer<E extends CellRenderer<Row[P]>>(componentType: ComponentType<E>, onComponentInit?: OnComponentInit<E>): this\n cellRenderer<E extends CellRenderer<Row[P]>>(componentType: ComponentType<E>, onComponentInitOrOptions?: CellRendererOptions<Row, E> | OnComponentInit<E>): this {\n this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {\n if (firstTime) {\n if (_.isFunction(onComponentInitOrOptions)) {\n onComponentInitOrOptions(component);\n } else {\n if (_.isFunction(onComponentInitOrOptions?.onComponentInit)) {\n onComponentInitOrOptions.onComponentInit(component);\n }\n }\n }\n component.value = this._format(rowData.row[this.property]);\n }));\n return this;\n }\n\n liveEditCellRenderer<E extends MutableCellRenderer<Row[P]>>(componentType: ComponentType<E>, options: MutableCellRendererOptions<Row, E, P>): this {\n return this.mutableCellRenderer(componentType, options);\n }\n\n /**\n * Deprecated. Use #liveEditCellRenderer instead.\n * @param componentType\n * @param options\n */\n mutableCellRenderer<E extends MutableCellRenderer<Row[P]>>(componentType: ComponentType<E>, options: MutableCellRendererOptions<Row, E, P>): this {\n\n this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {\n\n // keep a local copy most recent row value so it's available to teh\n // edit callback without having to add/remove subscribers all the time.\n component[CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;\n let disableEditCallback = false;\n\n if (firstTime) {\n if (_.isFunction(options?.onComponentInit)) {\n options.onComponentInit(component);\n }\n // install our edit callback\n component.onValueEdited((is, was) => {\n if (!disableEditCallback) {\n options.onValueEdit(component[CELL_RENDERER_COMPONENT_ROW_CACHE], is, was);\n }\n });\n\n }\n\n // now push the value the component and disable the callback just incase the component misbehaves\n // and fires a value change during the operation.\n disableEditCallback = true;\n component.value = rowData.row[this.property];\n disableEditCallback = false;\n\n if (!_.isFunction(options) && _.isFunction(options?.onRowUpdate)) {\n options.onRowUpdate(component, rowData.row);\n }\n\n }));\n return this;\n }\n\n cellEditor<E extends CellEditorComponent<Row[P]>>(editor: ComponentType<E>, validators?: Validator<Row[P]>[], initialiseComponent?: (component: E) => void): this\n cellEditor<E extends CellEditorComponent<Row[P]>>(editor: ComponentType<E>, initialiseComponent?: (component: E) => void): this\n cellEditor<E extends CellEditorComponent<Row[P]>>(editor: ComponentType<E>, validatorsOrInitialiser?: Validator<Row[P]>[] | ((component: E) => void), onComponentInit?: (component: E) => void): this {\n const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;\n const initialiser = _.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;\n this.configureCellEditor(new CellEditorPortalRef(editor, (component: E, editSession: EditSession<Row>) => {\n const formValueModel = editSession.form.pluck(this.property);\n if (validators) {\n formValueModel.validateUsing(validators);\n }\n component.valueModel = formValueModel;\n if (initialiser) {\n initialiser(component);\n }\n }));\n return this;\n }\n\n format(formatter: (value: Row[P]) => any): this {\n assert.isFunction(formatter);\n this._format = formatter;\n return this;\n }\n\n public selectRowOnClick(selectOnRowClick: boolean): this {\n return this._selectRowOnClick(selectOnRowClick);\n }\n\n}\n\nexport class ListPropertyColumnModel<Row, P extends Types.ArrayPropertiesOf<Row>> extends ColumnModel<Row> {\n\n private _format: (value: Types.ArrayElementType<Row, P>[]) => any = (value) => value.map(v => v?.toString()).join(', ');\n\n constructor(id: string, readonly property: P, defaults: ColumnModel.TextPropertiesProvider) {\n super(id, defaults);\n this.cellRenderer(DefaultCellRendererComponent);\n }\n\n cellRenderer(componentType: ComponentType<{ value: Types.ArrayElementType<Row, P>[] }>): this {\n this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData) => {\n component.value = this._format(rowData.row[this.property]);\n }));\n return this;\n }\n\n cellEditor<C extends CellListEditorComponent<Types.ArrayElementType<Row, P>>>(editor: ComponentType<C>, validators?: Validator<Types.ArrayElementType<Row, P>[]>[], initialiseComponent?: (component: C) => void): this\n cellEditor<C extends CellListEditorComponent<Types.ArrayElementType<Row, P>>>(editor: ComponentType<C>, initialiseComponent?: (component: C) => void): this\n cellEditor<C extends CellListEditorComponent<Types.ArrayElementType<Row, P>>>(editor: ComponentType<C>, validatorsOrInitialiser?: Validator<Types.ArrayElementType<Row, P>[]>[] | ((component: C) => void), initialiseComponent?: (component: C) => void): this {\n const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;\n const initialiser = _.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;\n\n this.configureCellEditor(new CellEditorPortalRef(editor, (component: C, editSession: EditSession<Row>) => {\n const formListModel = editSession.form.pluckList(this.property);\n if (validators) {\n formListModel.validateUsing(validators);\n }\n component.listModel = formListModel;\n if (initialiser) {\n initialiser(component);\n }\n }));\n return this;\n }\n\n format(formatter: (value: Types.ArrayElementType<Row, P>[]) => any): this {\n assert.isFunction(formatter);\n this._format = formatter;\n return this;\n }\n\n public selectRowOnClick(selectRowOnClick: boolean): this {\n return this._selectRowOnClick(selectRowOnClick);\n }\n\n}\n\nexport class CustomValueColumnModel<Row, V> extends ColumnModel<Row> {\n\n constructor(columnId: string, defaults: ColumnModel.TextPropertiesProvider, private getValue: (row: Row) => V) {\n super(columnId, defaults);\n this.cellRenderer(DefaultCellRendererComponent);\n }\n\n cellRenderer<C extends { value: Partial<V> }>(componentType: ComponentType<C>, onComponentInitOrOptions?: CellRendererOptions<Row, C> | OnComponentInit<C>): this {\n this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {\n if (firstTime) {\n if (_.isFunction(onComponentInitOrOptions)) {\n onComponentInitOrOptions(component);\n } else {\n if (_.isFunction(onComponentInitOrOptions?.onComponentInit)) {\n onComponentInitOrOptions.onComponentInit(component);\n }\n }\n }\n component.value = this.getValue(rowData.row);\n\n if (!_.isFunction(onComponentInitOrOptions) && _.isFunction(onComponentInitOrOptions?.onRowUpdate)) {\n onComponentInitOrOptions.onRowUpdate(component, rowData.row);\n }\n }));\n return this;\n }\n\n public selectRowOnClick(selectOnRowClick: boolean): this {\n return this._selectRowOnClick(selectOnRowClick);\n }\n\n}\n\nexport class EditorControlColumnModel<Row> extends ColumnModel<Row> {\n\n constructor(columnId: string, saveCommand: UnaryCommand<DirtyTrackingForm<Row>, boolean>, defaults: ColumnModel.TextPropertiesProvider) {\n super(columnId, defaults);\n this.cellRenderer(EditRowControls);\n }\n\n cellRenderer(componentType: ComponentType<{ row: Row, editSession: EditSession<Row>, editRowCommand: Command<void> }>): this {\n this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData: RowData<Row>) => {\n component.row = rowData.row;\n component.editSession = rowData.editSession;\n component.editRowCommand = rowData.editRowCommand;\n }));\n return this;\n }\n\n protected getDefaultHeaderText(): string {\n return '';\n }\n}\n\nexport class CustomTemplateColumnModel<Row> extends ColumnModel<Row> {\n private readonly config = new TemplateCellRendererPortalRef<Row>();\n\n constructor(columnId: string, defaults: ColumnModel.TextPropertiesProvider) {\n super(columnId, defaults);\n this.configureCellRenderer(this.config);\n }\n\n setTemplate(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef, fillCell: boolean, padChild: boolean) {\n this.config.registerPortal(templateRef, viewContainer, fillCell, padChild);\n }\n\n public selectRowOnClick(selectOnRowClick: boolean): this {\n return this._selectRowOnClick(selectOnRowClick);\n }\n\n}\n\nexport class SelectionColumnModel<Row> extends ColumnModel<Row> {\n\n private _enableHeaderControls = true;\n readonly selectionModel = DelegatingSelectionModel.createDelegate<Row, unknown>();\n\n constructor(columnId: string, defaults: ColumnModel.TextPropertiesProvider, selectionModel: SelectionModel<Row>) {\n super(columnId, defaults);\n this._selectRowOnClick(false);\n this.cellHeaderRenderer(SelectHeaderCellRendererComponent, (component) => {\n component.selectionModel = this.selectionModel;\n component.enableHeaderControls = this._enableHeaderControls;\n });\n this.configureCellRenderer(new ComponentCellRendererPortalRef(SelectCellRendererComponent, (component, rowData: RowData<Row>) => {\n component.row = rowData.row;\n component.selectionModel = this.selectionModel;\n }));\n this.setSelectionModel(selectionModel);\n }\n\n setSelectionModel(selectionModel: SelectionModel<Row>) {\n this.selectionModel.setDelegate(selectionModel);\n this.setDefaultVisibility(selectionModel instanceof MultipleSelectionModel ? ValueModel.TRUE : ValueModel.FALSE);\n }\n\n protected getDefaultHeaderText(): string {\n return '';\n }\n\n enableHeaderControls(enable: boolean): this {\n this._enableHeaderControls = enable;\n return this;\n }\n\n selectRow(row: Row) {\n this.selectionModel.selectCommand.execute(row);\n }\n\n isSelected(row: Row) {\n return this.selectionModel.isSelected(row);\n }\n}\n\n\n"]}
|
|
1
|
+
{"version":3,"file":"column-model.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/table/column-model.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComponentType } from '@angular/cdk/overlay';\nimport { TemplateRef, ViewContainerRef } from '@angular/core';\nimport {\n Command,\n DelegatingSelectionModel,\n DelegatingValueModel,\n DirtyTrackingForm,\n GarbageCollector,\n MultipleSelectionModel,\n SelectionModel,\n Types,\n UnaryCommand,\n Validator,\n ValueModel\n} from '@coolon/pectin';\nimport { assert, Stringy } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport _ from 'lodash';\nimport { CellEditorComponent, CellListEditorComponent } from './cell-editors';\nimport {\n CellEditorPortalRef,\n CellHeaderPortalRef,\n CellRendererPortalRef,\n ComponentCellRendererPortalRef,\n TemplateCellRendererPortalRef\n} from './cell-portal-ref';\nimport { CellRenderer } from './cell-renderer';\nimport { ColumnTextProperties } from './column-text-properties';\nimport { DefaultCellRendererComponent } from './default-cell-renderer/default-cell-renderer.component';\nimport { DefaultHeaderCellRendererComponent } from './default-header-cell-renderer/default-header-cell-renderer.component';\nimport { EditRowControls } from './edit-row-controls/edit-row-controls.component';\nimport { EditSession } from './edit-session';\nimport { MutableCellRenderer } from './mutable-cell-renderer';\nimport { SelectCellRendererComponent } from './select-cell-renderer/select-cell-renderer.component';\nimport { SelectHeaderCellRendererComponent } from './select-header-cell-renderer/select-header-cell-renderer.component';\nimport { TableCellRendererComponent } from './table-cell-renderer/table-cell-renderer.component';\nimport { TableHeaderCellRendererComponent } from './table-header-cell-renderer/table-header-cell-renderer.component';\nimport { TextSearchPredicate } from './text-search-predicate';\n\n\nconst noop = () => {\n};\n\nexport interface RowData<Row> {\n row: Row;\n editSession?: EditSession<Row>;\n editRowCommand: Command<void>;\n}\n\nconst CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol('aup-cell-renderer:row-data-cache');\n\nexport type OnComponentInit<C> = (component: C) => void;\n\nexport interface CellRendererOptions<Row, E> {\n onComponentInit?: (component: E) => void;\n onRowUpdate?: (component: E, row: Row) => void;\n}\n\n\nexport interface MutableCellRendererOptions<Row, E, P extends keyof Row> extends CellRendererOptions<Row, E> {\n onValueEdit: (row: Row, is: Row[P], was: Row[P]) => void;\n}\n\nconst DEFAULT_TEXT_SEARCH_PREDICATE: TextSearchPredicate<unknown> = (row: unknown, text: RegExp) => false;\n\nexport class ColumnModel<Row> extends GarbageCollector {\n\n private _columnTextProperties: ColumnTextProperties;\n\n private _columnHeaderPortalRef: CellHeaderPortalRef<Row, any>;\n private _cellRendererPortalRef: CellRendererPortalRef<Row, any>;\n private _cellEditorPortalRef: CellEditorPortalRef<Row, any>;\n\n private _enableRowSelection = true;\n private _flex = false;\n\n private _defaultVisibility = this.registerDisposable(new DelegatingValueModel<boolean>().withDefault(true));\n private _visible = this.registerDisposable(new DelegatingValueModel<boolean>().withDefault(this._defaultVisibility));\n readonly dasherisedColumnId: string;\n protected _columnModelTextSearchPredicate: TextSearchPredicate<Row> = undefined;\n protected _cellRendererTextSearchPredicate: TextSearchPredicate<Row> = undefined;\n\n constructor(readonly columnId: string, private textPropertiesProvider: ColumnModel.TextPropertiesProvider) {\n super();\n this.installHeaderRenderer();\n this.dasherisedColumnId = Stringy.from(columnId).dasherize().toString();\n }\n\n protected installHeaderRenderer() {\n this.cellHeaderRenderer(DefaultHeaderCellRendererComponent, (component, column) => {\n component.headerText = column.getHeaderText();\n });\n }\n\n @Memoize()\n getHeaderText(): string {\n return this.getColumnTextProperties()?.headerText() || this.getDefaultHeaderText();\n }\n\n isVisible() {\n return this.visible.value;\n }\n\n get visible() {\n return this._visible.readonly;\n }\n\n visibleWhile(visible: ValueModel<boolean>): this {\n this._visible.setDelegate(visible);\n return this;\n }\n\n protected setDefaultVisibility(visible: ValueModel<boolean>) {\n this._defaultVisibility.setDelegate(visible);\n }\n\n protected getDefaultHeaderText() {\n return this.columnId;\n }\n\n get isTextMatch(): TextSearchPredicate<Row> {\n return this._columnModelTextSearchPredicate || this._cellRendererTextSearchPredicate || DEFAULT_TEXT_SEARCH_PREDICATE;\n }\n\n /**\n * Sets the predicate to use when checking if the specified row is a text match for this column.\n * @param predicate\n */\n useTextSearchPredicate(predicate: TextSearchPredicate<Row>):this {\n this._columnModelTextSearchPredicate = predicate;\n return this;\n }\n\n @Memoize()\n getColumnTextProperties(): ColumnTextProperties {\n return this._columnTextProperties || this.textPropertiesProvider();\n }\n\n /**\n * @deprecated use #columnTextProperties instead\n * @param columnTextProperties\n */\n textProperties(columnTextProperties: ColumnTextProperties): this {\n return this.columnTextProperties(columnTextProperties);\n }\n\n columnTextProperties(columnTextProperties: ColumnTextProperties): this {\n this._columnTextProperties = columnTextProperties;\n return this;\n }\n\n protected configureHeaderRenderer<C>(config: CellHeaderPortalRef<Row, any>): void {\n this._columnHeaderPortalRef = config;\n }\n\n protected configureCellRenderer<C>(config: CellRendererPortalRef<Row, any>): void {\n this._cellRendererPortalRef = config;\n }\n\n protected configureCellEditor<E>(cellEditor: CellEditorPortalRef<Row, E>): void {\n this._cellEditorPortalRef = cellEditor;\n }\n\n cellHeaderRenderer<C>(componentType: ComponentType<C>, initialiser: (component: C, column: ColumnModel<Row>) => void): this {\n this.configureHeaderRenderer(new CellHeaderPortalRef<Row, C>(componentType, initialiser));\n return this;\n }\n\n flex(flex = true) {\n this._flex = flex;\n }\n\n isFlex() {\n return this._flex;\n }\n\n hasEditorPortal() {\n return !!this._cellEditorPortalRef;\n }\n\n attachHeaderCell(host: any) {\n this._columnHeaderPortalRef.initialiseHost(host, this);\n }\n\n attachCell(host: any) {\n this._cellRendererPortalRef.initialiseHost(host, this);\n if (this.hasEditorPortal()) {\n this._cellEditorPortalRef.initialiseHost(host, this);\n }\n }\n\n onHeaderAttached(host: TableHeaderCellRendererComponent, component: any) {\n this._columnHeaderPortalRef.onPortalAttached(host, component);\n }\n\n onRendererAttached(host: TableCellRendererComponent<Row>, component: any) {\n this._cellRendererPortalRef.onPortalAttached(host, component);\n if (_.isFunction(component.matches)) {\n this._cellRendererTextSearchPredicate = (row, text) => component.matches(row, text);\n } else {\n this._cellRendererTextSearchPredicate = undefined;\n }\n }\n\n // @Trace()\n onEditorAttached(host: TableCellRendererComponent<Row>, component: any) {\n this._cellEditorPortalRef.onPortalAttached(host, component);\n }\n\n updatePortalContent(host: TableCellRendererComponent<Row>) {\n this._cellRendererPortalRef.pushState(host);\n }\n\n protected _selectRowOnClick(selectRowOnClick: boolean): this {\n this._enableRowSelection = selectRowOnClick;\n return this;\n }\n\n isRowSelectionEnabled(): boolean {\n return this._enableRowSelection;\n }\n}\n\nexport namespace ColumnModel {\n export type TextPropertiesProvider = () => ColumnTextProperties\n}\n\n\nexport class PropertyColumnModel<Row, P extends Types.ValuePropertiesOf<Row>> extends ColumnModel<Row> {\n\n private _format: (value: Row[P]) => any = (value) => value;\n\n constructor(id: string, readonly property: P, defaults: ColumnModel.TextPropertiesProvider) {\n super(id, defaults);\n this.cellRenderer(DefaultCellRendererComponent);\n }\n\n cellRenderer<E extends CellRenderer<Row[P]>>(componentType: ComponentType<E>, options?: CellRendererOptions<Row, E>): this\n cellRenderer<E extends CellRenderer<Row[P]>>(componentType: ComponentType<E>, onComponentInit?: OnComponentInit<E>): this\n cellRenderer<E extends CellRenderer<Row[P]>>(componentType: ComponentType<E>, onComponentInitOrOptions?: CellRendererOptions<Row, E> | OnComponentInit<E>): this {\n this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {\n if (firstTime) {\n if (_.isFunction(onComponentInitOrOptions)) {\n onComponentInitOrOptions(component);\n } else {\n if (_.isFunction(onComponentInitOrOptions?.onComponentInit)) {\n onComponentInitOrOptions.onComponentInit(component);\n }\n }\n }\n component.value = this._format(rowData.row[this.property]);\n }));\n return this;\n }\n\n liveEditCellRenderer<E extends MutableCellRenderer<Row[P]>>(componentType: ComponentType<E>, options: MutableCellRendererOptions<Row, E, P>): this {\n return this.mutableCellRenderer(componentType, options);\n }\n\n /**\n * Deprecated. Use #liveEditCellRenderer instead.\n * @param componentType\n * @param options\n */\n mutableCellRenderer<E extends MutableCellRenderer<Row[P]>>(componentType: ComponentType<E>, options: MutableCellRendererOptions<Row, E, P>): this {\n\n this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {\n\n // keep a local copy most recent row value so it's available to teh\n // edit callback without having to add/remove subscribers all the time.\n component[CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;\n let disableEditCallback = false;\n\n if (firstTime) {\n if (_.isFunction(options?.onComponentInit)) {\n options.onComponentInit(component);\n }\n // install our edit callback\n component.onValueEdited((is, was) => {\n if (!disableEditCallback) {\n options.onValueEdit(component[CELL_RENDERER_COMPONENT_ROW_CACHE], is, was);\n }\n });\n\n }\n\n // now push the value the component and disable the callback just incase the component misbehaves\n // and fires a value change during the operation.\n disableEditCallback = true;\n component.value = rowData.row[this.property];\n disableEditCallback = false;\n\n if (!_.isFunction(options) && _.isFunction(options?.onRowUpdate)) {\n options.onRowUpdate(component, rowData.row);\n }\n\n }));\n return this;\n }\n\n cellEditor<E extends CellEditorComponent<Row[P]>>(editor: ComponentType<E>, validators?: Validator<Row[P]>[], initialiseComponent?: (component: E) => void): this\n cellEditor<E extends CellEditorComponent<Row[P]>>(editor: ComponentType<E>, initialiseComponent?: (component: E) => void): this\n cellEditor<E extends CellEditorComponent<Row[P]>>(editor: ComponentType<E>, validatorsOrInitialiser?: Validator<Row[P]>[] | ((component: E) => void), onComponentInit?: (component: E) => void): this {\n const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;\n const initialiser = _.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;\n this.configureCellEditor(new CellEditorPortalRef(editor, (component: E, editSession: EditSession<Row>) => {\n const formValueModel = editSession.form.pluck(this.property);\n if (validators) {\n formValueModel.validateUsing(validators);\n }\n component.valueModel = formValueModel;\n if (initialiser) {\n initialiser(component);\n }\n }));\n return this;\n }\n\n format(formatter: (value: Row[P]) => any): this {\n assert.isFunction(formatter);\n this._format = formatter;\n return this;\n }\n\n public selectRowOnClick(selectOnRowClick: boolean): this {\n return this._selectRowOnClick(selectOnRowClick);\n }\n\n}\n\nexport class ListPropertyColumnModel<Row, P extends Types.ArrayPropertiesOf<Row>> extends ColumnModel<Row> {\n\n private _format: (value: Types.ArrayElementType<Row, P>[]) => any = (value) => value.map(v => v?.toString()).join(', ');\n\n constructor(id: string, readonly property: P, defaults: ColumnModel.TextPropertiesProvider) {\n super(id, defaults);\n this.cellRenderer(DefaultCellRendererComponent);\n }\n\n cellRenderer(componentType: ComponentType<{ value: Types.ArrayElementType<Row, P>[] }>): this {\n this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData) => {\n component.value = this._format(rowData.row[this.property]);\n }));\n return this;\n }\n\n cellEditor<C extends CellListEditorComponent<Types.ArrayElementType<Row, P>>>(editor: ComponentType<C>, validators?: Validator<Types.ArrayElementType<Row, P>[]>[], initialiseComponent?: (component: C) => void): this\n cellEditor<C extends CellListEditorComponent<Types.ArrayElementType<Row, P>>>(editor: ComponentType<C>, initialiseComponent?: (component: C) => void): this\n cellEditor<C extends CellListEditorComponent<Types.ArrayElementType<Row, P>>>(editor: ComponentType<C>, validatorsOrInitialiser?: Validator<Types.ArrayElementType<Row, P>[]>[] | ((component: C) => void), initialiseComponent?: (component: C) => void): this {\n const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;\n const initialiser = _.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;\n\n this.configureCellEditor(new CellEditorPortalRef(editor, (component: C, editSession: EditSession<Row>) => {\n const formListModel = editSession.form.pluckList(this.property);\n if (validators) {\n formListModel.validateUsing(validators);\n }\n component.listModel = formListModel;\n if (initialiser) {\n initialiser(component);\n }\n }));\n return this;\n }\n\n format(formatter: (value: Types.ArrayElementType<Row, P>[]) => any): this {\n assert.isFunction(formatter);\n this._format = formatter;\n return this;\n }\n\n public selectRowOnClick(selectRowOnClick: boolean): this {\n return this._selectRowOnClick(selectRowOnClick);\n }\n\n}\n\nexport class CustomValueColumnModel<Row, V> extends ColumnModel<Row> {\n\n constructor(columnId: string, defaults: ColumnModel.TextPropertiesProvider, private getValue: (row: Row) => V) {\n super(columnId, defaults);\n this.cellRenderer(DefaultCellRendererComponent);\n }\n\n cellRenderer<C extends { value: Partial<V> }>(componentType: ComponentType<C>, onComponentInitOrOptions?: CellRendererOptions<Row, C> | OnComponentInit<C>): this {\n this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {\n if (firstTime) {\n if (_.isFunction(onComponentInitOrOptions)) {\n onComponentInitOrOptions(component);\n } else {\n if (_.isFunction(onComponentInitOrOptions?.onComponentInit)) {\n onComponentInitOrOptions.onComponentInit(component);\n }\n }\n }\n component.value = this.getValue(rowData.row);\n\n if (!_.isFunction(onComponentInitOrOptions) && _.isFunction(onComponentInitOrOptions?.onRowUpdate)) {\n onComponentInitOrOptions.onRowUpdate(component, rowData.row);\n }\n }));\n return this;\n }\n\n public selectRowOnClick(selectOnRowClick: boolean): this {\n return this._selectRowOnClick(selectOnRowClick);\n }\n\n}\n\nexport class EditorControlColumnModel<Row> extends ColumnModel<Row> {\n\n constructor(columnId: string, saveCommand: UnaryCommand<DirtyTrackingForm<Row>, boolean>, defaults: ColumnModel.TextPropertiesProvider) {\n super(columnId, defaults);\n this.cellRenderer(EditRowControls);\n }\n\n cellRenderer(componentType: ComponentType<{ row: Row, editSession: EditSession<Row>, editRowCommand: Command<void> }>): this {\n this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData: RowData<Row>) => {\n component.row = rowData.row;\n component.editSession = rowData.editSession;\n component.editRowCommand = rowData.editRowCommand;\n }));\n return this;\n }\n\n protected getDefaultHeaderText(): string {\n return '';\n }\n}\n\nexport class CustomTemplateColumnModel<Row> extends ColumnModel<Row> {\n private readonly config = new TemplateCellRendererPortalRef<Row>();\n\n constructor(columnId: string, defaults: ColumnModel.TextPropertiesProvider) {\n super(columnId, defaults);\n this.configureCellRenderer(this.config);\n }\n\n setTemplate(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef, fillCell: boolean, padChild: boolean) {\n this.config.registerPortal(templateRef, viewContainer, fillCell, padChild);\n }\n\n public selectRowOnClick(selectOnRowClick: boolean): this {\n return this._selectRowOnClick(selectOnRowClick);\n }\n\n}\n\nexport class SelectionColumnModel<Row> extends ColumnModel<Row> {\n\n private _enableHeaderControls = true;\n readonly selectionModel = DelegatingSelectionModel.createDelegate<Row, unknown>();\n\n constructor(columnId: string, defaults: ColumnModel.TextPropertiesProvider, selectionModel: SelectionModel<Row>) {\n super(columnId, defaults);\n this._selectRowOnClick(false);\n this.cellHeaderRenderer(SelectHeaderCellRendererComponent, (component) => {\n component.selectionModel = this.selectionModel;\n component.enableHeaderControls = this._enableHeaderControls;\n });\n this.configureCellRenderer(new ComponentCellRendererPortalRef(SelectCellRendererComponent, (component, rowData: RowData<Row>) => {\n component.row = rowData.row;\n component.selectionModel = this.selectionModel;\n }));\n this.setSelectionModel(selectionModel);\n }\n\n setSelectionModel(selectionModel: SelectionModel<Row>) {\n this.selectionModel.setDelegate(selectionModel);\n this.setDefaultVisibility(selectionModel instanceof MultipleSelectionModel ? ValueModel.TRUE : ValueModel.FALSE);\n }\n\n protected getDefaultHeaderText(): string {\n return '';\n }\n\n enableHeaderControls(enable: boolean): this {\n this._enableHeaderControls = enable;\n return this;\n }\n\n selectRow(row: Row) {\n this.selectionModel.selectCommand.execute(row);\n }\n\n isSelected(row: Row) {\n return this.selectionModel.isSelected(row);\n }\n}\n\n\n"]}
|
package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.js
CHANGED
|
@@ -8,8 +8,8 @@ export class DefaultCellRendererComponent {
|
|
|
8
8
|
get value() {
|
|
9
9
|
return this._value;
|
|
10
10
|
}
|
|
11
|
-
matches(row,
|
|
12
|
-
return row.toString()
|
|
11
|
+
matches(row, regex) {
|
|
12
|
+
return regex.test(row.toString());
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
DefaultCellRendererComponent.decorators = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-cell-renderer.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AASjD,MAAM,OAAO,4BAA4B;IAgBvC;IACA,CAAC;IAdD,IACI,KAAK,CAAC,KAAQ;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,GAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"default-cell-renderer.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AASjD,MAAM,OAAO,4BAA4B;IAgBvC;IACA,CAAC;IAdD,IACI,KAAK,CAAC,KAAQ;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,GAAM,EAAE,KAAa;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpC,CAAC;;;YAnBF,SAAS,SAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,+DAAqD;;aAEtD;;;;oBAIE,KAAK","sourcesContent":["import { Component, Input } from '@angular/core';\nimport { CellRenderer } from '../cell-renderer';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'aup-default-cell-renderer',\n templateUrl: './default-cell-renderer.component.html',\n styleUrls: ['./default-cell-renderer.component.scss']\n})\nexport class DefaultCellRendererComponent<T> implements CellRenderer<T>{\n private _value: T;\n\n @Input()\n set value(value: T) {\n this._value = value;\n }\n\n get value(): T {\n return this._value;\n }\n\n matches(row: T, regex: RegExp): boolean {\n return regex.test(row.toString());\n }\n\n constructor() {\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-search-predicate.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/table/text-search-predicate.ts"],"names":[],"mappings":"","sourcesContent":["export type TextSearchPredicate<T> = (row: T,
|
|
1
|
+
{"version":3,"file":"text-search-predicate.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/table/text-search-predicate.ts"],"names":[],"mappings":"","sourcesContent":["export type TextSearchPredicate<T> = (row: T, matcher: RegExp) => boolean;\n"]}
|
|
@@ -2314,8 +2314,8 @@ class DefaultCellRendererComponent {
|
|
|
2314
2314
|
get value() {
|
|
2315
2315
|
return this._value;
|
|
2316
2316
|
}
|
|
2317
|
-
matches(row,
|
|
2318
|
-
return row.toString()
|
|
2317
|
+
matches(row, regex) {
|
|
2318
|
+
return regex.test(row.toString());
|
|
2319
2319
|
}
|
|
2320
2320
|
}
|
|
2321
2321
|
DefaultCellRendererComponent.decorators = [
|
|
@@ -3069,8 +3069,11 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3069
3069
|
this.lastVisibleColumn = chain(this._columnList).last();
|
|
3070
3070
|
this.rowSelectionDisabledOnAllColumns = chain(this._columnList).select(column => column.isRowSelectionEnabled()).count().equals(0);
|
|
3071
3071
|
}
|
|
3072
|
-
findMatchingColumns(row,
|
|
3073
|
-
return this.columns.value.filter(c => c.isTextMatch(row,
|
|
3072
|
+
findMatchingColumns(row, regex) {
|
|
3073
|
+
return this.columns.value.filter(c => c.isTextMatch(row, regex));
|
|
3074
|
+
}
|
|
3075
|
+
hasMatchingColumn(row, regex) {
|
|
3076
|
+
return !!this.columns.value.find(c => c.isTextMatch(row, regex));
|
|
3074
3077
|
}
|
|
3075
3078
|
setDataSource(sourceOfTruth) {
|
|
3076
3079
|
this._dataSource.setDelegate(sourceOfTruth);
|