@talxis/base-controls 1.2605.2-alpha → 1.2606.3
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/dist/components/Duration/Duration.js +8 -3
- package/dist/components/Duration/Duration.js.map +1 -1
- package/dist/components/Duration/interfaces.d.ts +1 -0
- package/dist/components/Grid/cells/cell/Cell.js +2 -6
- package/dist/components/Grid/cells/cell/Cell.js.map +1 -1
- package/dist/components/Grid/column-headers/column-header/ColumnHeader.js +1 -1
- package/dist/components/Grid/column-headers/column-header/ColumnHeader.js.map +1 -1
- package/dist/components/Grid/grid/ag-grid/AgGridModel.js +1 -1
- package/dist/components/Grid/grid/ag-grid/AgGridModel.js.map +1 -1
- package/dist/components/Lookup/components/TargetSelector.js +1 -1
- package/dist/components/Lookup/components/TargetSelector.js.map +1 -1
- package/dist/components/Lookup/hooks/useLookup.d.ts +4 -0
- package/dist/components/Lookup/translations.d.ts +4 -0
- package/dist/components/Lookup/translations.js +4 -0
- package/dist/components/Lookup/translations.js.map +1 -1
- package/dist/components/TaskGrid/TaskGrid.js +2 -2
- package/dist/components/TaskGrid/TaskGrid.js.map +1 -1
- package/dist/components/TaskGrid/TaskGridDatasetControl.d.ts +2 -0
- package/dist/components/TaskGrid/TaskGridDatasetControl.js +42 -28
- package/dist/components/TaskGrid/TaskGridDatasetControl.js.map +1 -1
- package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js +3 -0
- package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.js +6 -3
- package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js +2 -4
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.d.ts +0 -6
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.js +0 -6
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js +10 -5
- package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/group-cell/styles.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/group-cell/styles.js +3 -0
- package/dist/components/TaskGrid/components/grid/group-cell/styles.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.d.ts +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.js +3 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.d.ts +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.js +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/components/components.d.ts +11 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/components.js +17 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/components.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/index.d.ts +1 -10
- package/dist/components/TaskGrid/components/grid/lookup-many/components/index.js +1 -14
- package/dist/components/TaskGrid/components/grid/lookup-many/components/index.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/Menu.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/Menu.js +10 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/Menu.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.d.ts +5 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.js +3 -2
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/PeopleLookupMany.js +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/PeopleLookupMany.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/components.d.ts +2 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/components.js +15 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/components.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.d.ts +1 -2
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.js +1 -12
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/MultiValueContainer.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/MultiValueContainer.js +12 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/MultiValueContainer.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/styles.d.ts +9 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/styles.js +18 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/MultiValueLabel.js +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/MultiValueLabel.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.d.ts +1 -1
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.js +3 -2
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.js.map +1 -1
- package/dist/components/TaskGrid/components/header/Header.d.ts +1 -1
- package/dist/components/TaskGrid/components/header/Header.js +58 -44
- package/dist/components/TaskGrid/components/header/Header.js.map +1 -1
- package/dist/components/TaskGrid/extensions/dataverse/DataverseCustomColumnsStrategy.d.ts +12 -6
- package/dist/components/TaskGrid/extensions/dataverse/DataverseCustomColumnsStrategy.js +23 -20
- package/dist/components/TaskGrid/extensions/dataverse/DataverseCustomColumnsStrategy.js.map +1 -1
- package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.d.ts +3 -3
- package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.js +4 -5
- package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.js.map +1 -1
- package/dist/components/TaskGrid/extensions/dataverse/DataverseSavedQueryStrategy.js +15 -15
- package/dist/components/TaskGrid/extensions/dataverse/DataverseSavedQueryStrategy.js.map +1 -1
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.d.ts +27 -25
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.js +68 -29
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.js.map +1 -1
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.d.ts +19 -17
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.js +119 -74
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.js.map +1 -1
- package/dist/components/TaskGrid/extensions/dataverse/index.js +1 -1
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.d.ts +18 -2
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.js +80 -17
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.js.map +1 -1
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.js +10 -4
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.js.map +1 -1
- package/dist/components/TaskGrid/interfaces.d.ts +36 -22
- package/dist/components/TaskGrid/providers/custom-columns/CustomColumnsDataProvider.d.ts +7 -1
- package/dist/components/TaskGrid/providers/custom-columns/CustomColumnsDataProvider.js +3 -0
- package/dist/components/TaskGrid/providers/custom-columns/CustomColumnsDataProvider.js.map +1 -1
- package/dist/components/TaskGrid/providers/saved-query/SavedQueryDataProvider.d.ts +1 -1
- package/dist/components/TaskGrid/providers/saved-query/SavedQueryDataProvider.js +9 -26
- package/dist/components/TaskGrid/providers/saved-query/SavedQueryDataProvider.js.map +1 -1
- package/dist/components/TaskGrid/providers/task/TaskDataProvider.d.ts +13 -20
- package/dist/components/TaskGrid/providers/task/TaskDataProvider.js +30 -22
- package/dist/components/TaskGrid/providers/task/TaskDataProvider.js.map +1 -1
- package/dist/components/TaskGrid/providers/task/record-tree/RecordTree.d.ts +8 -0
- package/dist/components/TaskGrid/providers/task/record-tree/RecordTree.js.map +1 -1
- package/dist/index.d.ts +69 -42
- package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
- package/package.json +4 -4
- package/dist/components/TaskGrid/extensions/LexoRank.d.ts +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordTree.js","sources":["../../../../../../src/components/TaskGrid/providers/task/record-tree/RecordTree.ts"],"sourcesContent":["import { IRecord, MemoryDataProvider } from \"@talxis/client-libraries\";\nimport { ITaskDataProvider } from \"../TaskDataProvider\";\nimport { patchDataBuilderPrepare } from \"./patchDataBuilderPrepare\";\n\ninterface ITreeNode {\n directChildren: IRecord[];\n allChildren: IRecord[];\n pathIds: string[];\n pathStrings: string[];\n index: number;\n parent?: IRecord;\n}\n\ninterface IRecordTreeParameters {\n taskDataProvider: ITaskDataProvider;\n}\n\nexport interface IRecordTree {\n build(): Map<string, ITreeNode>\n getNodeMap(): Map<string, ITreeNode>;\n getNode(recordId: string | null): ITreeNode;\n getTotalCount(): number;\n isFlat(): boolean;\n hasChildren(recordId: string): boolean;\n getMatchingRecords(): { [recordId: string]: IRecord };\n getSortedIds(): string[];\n}\n\nexport class RecordTree implements IRecordTree {\n private _nodeMap: Map<string, ITreeNode> = new Map();\n private _sortingMap: { [recordId: string]: number } = {};\n private _matchingRecordsMap: { [recordId: string]: IRecord } = {};\n private _isFlat: boolean = false;\n private _totalUniqueRecords: number = 0;\n private _sortedRecordIds: string[] = [];\n private _records: IRecord[] = [];\n private _recordsMap: { [recordId: string]: IRecord } = {};\n private _taskDataProvider: ITaskDataProvider;\n\n constructor(parameters: IRecordTreeParameters) {\n this._taskDataProvider = parameters.taskDataProvider;\n }\n\n public getNodeMap(): Map<string, ITreeNode> {\n return this._nodeMap;\n }\n public getTotalCount(): number {\n return this._totalUniqueRecords;\n }\n public isFlat(): boolean {\n return this._isFlat;\n }\n public getMatchingRecords(): { [recordId: string]: IRecord } {\n return this._matchingRecordsMap;\n }\n public getNode(recordId: string | null): ITreeNode {\n return this._nodeMap.get(recordId as any)!;\n }\n\n public hasChildren(recordId: string): boolean {\n const children = this._nodeMap.get(recordId)?.directChildren;\n if (children && children.length > 0) {\n return true;\n }\n return false;\n }\n\n public getSortedIds(): string[] {\n return this._sortedRecordIds;\n }\n\n public build(): Map<string, ITreeNode> {\n this._records = this._taskDataProvider.getAllRecords();\n this._recordsMap = this._taskDataProvider.getRecordsMap();\n // Clear existing record tree map and flat sorted array\n this._nodeMap.clear();\n this._patchRecordPaths();\n this._buildSortingMap();\n this._buildMatchingRecords();\n\n // Create reusable sort function\n const sortByIndex = (a: IRecord, b: IRecord): number => {\n const indexA = this._sortingMap[a.getRecordId()] ?? Number.MAX_SAFE_INTEGER;\n const indexB = this._sortingMap[b.getRecordId()] ?? Number.MAX_SAFE_INTEGER;\n return indexA - indexB;\n };\n\n const records = this._records;\n const recordsMap = this._recordsMap;\n\n const parentToDirectChildren = new Map<string, IRecord[]>();\n const topLevelRecords: IRecord[] = [];\n\n for (const record of records) {\n const parentRef = record.getValue(this._getNativeColumns().parentId);\n const parentId = parentRef?.[0]?.id?.guid;\n\n if (parentId && recordsMap[parentId]) {\n if (!parentToDirectChildren.has(parentId)) {\n parentToDirectChildren.set(parentId, []);\n }\n parentToDirectChildren.get(parentId)!.push(record);\n }\n else {\n topLevelRecords.push(record);\n }\n }\n\n topLevelRecords.sort(sortByIndex);\n for (const [, children] of parentToDirectChildren) {\n children.sort(sortByIndex);\n }\n\n const hasMatchingDescendantCache = new Map<string, boolean>();\n const calculateHasMatchingDescendant = (recordId: string): boolean => {\n if (hasMatchingDescendantCache.has(recordId)) {\n return hasMatchingDescendantCache.get(recordId)!;\n }\n\n if (this._matchingRecordsMap[recordId]) {\n hasMatchingDescendantCache.set(recordId, true);\n return true;\n }\n\n // Set false sentinel before recursing to break circular reference cycles\n hasMatchingDescendantCache.set(recordId, false);\n const directChildren = parentToDirectChildren.get(recordId) || [];\n const hasMatching = directChildren.some(child =>\n calculateHasMatchingDescendant(child.getRecordId())\n );\n\n hasMatchingDescendantCache.set(recordId, hasMatching);\n return hasMatching;\n };\n\n for (const record of records) {\n calculateHasMatchingDescendant(record.getRecordId());\n }\n\n const recordToAllChildren = new Map<string, IRecord[]>();\n const recordToFilteredDirectChildren = new Map<string, IRecord[]>();\n const inProgressChildren = new Set<string>();\n\n const getAllChildren = (recordId: string): IRecord[] => {\n if (recordToAllChildren.has(recordId)) {\n return recordToAllChildren.get(recordId)!;\n }\n\n // Break circular reference cycles\n if (inProgressChildren.has(recordId)) {\n console.warn(`Circular reference detected: record \"${recordsMap[recordId]?.getNamedReference().name}\" (${recordId}) was encountered twice during tree traversal. All records involved in this cycle and their descendants will be missing from the tree.`);\n return [];\n }\n inProgressChildren.add(recordId);\n\n const directChildren = parentToDirectChildren.get(recordId) || [];\n const allChildren: IRecord[] = [];\n\n const filteredDirectChildren: IRecord[] = [];\n\n for (const child of directChildren) {\n if (hasMatchingDescendantCache.get(child.getRecordId())) {\n filteredDirectChildren.push(child);\n allChildren.push(child);\n allChildren.push(...getAllChildren(child.getRecordId()));\n }\n }\n\n recordToFilteredDirectChildren.set(recordId, filteredDirectChildren);\n recordToAllChildren.set(recordId, allChildren);\n inProgressChildren.delete(recordId);\n return allChildren;\n };\n\n const filteredTopLevelRecords: IRecord[] = [];\n const allRecordsWithMatching: IRecord[] = [];\n\n for (const record of topLevelRecords) {\n if (hasMatchingDescendantCache.get(record.getRecordId())) {\n filteredTopLevelRecords.push(record);\n }\n }\n\n for (const record of records) {\n if (hasMatchingDescendantCache.get(record.getRecordId())) {\n allRecordsWithMatching.push(record);\n }\n getAllChildren(record.getRecordId());\n }\n\n allRecordsWithMatching.sort(sortByIndex);\n \n for (const record of records) {\n const recordId = record.getRecordId();\n const isTopLevel = !record.getValue(this._getNativeColumns().parentId);\n\n const allChildren = getAllChildren(recordId);\n const filteredDirectChildren = recordToFilteredDirectChildren.get(recordId) || [];\n\n let parentRecord: IRecord | undefined = undefined;\n\n let index = -1;\n\n if (!isTopLevel) {\n const parentRef = record.getValue(this._getNativeColumns().parentId);\n const parentId = parentRef?.[0]?.id?.guid;\n if (parentId) {\n parentRecord = recordsMap[parentId];\n const parentFilteredChildren = recordToFilteredDirectChildren.get(parentId) || [];\n index = parentFilteredChildren.findIndex(sibling => sibling.getRecordId() === recordId);\n }\n } else {\n index = filteredTopLevelRecords.findIndex(topRecord => topRecord.getRecordId() === recordId);\n }\n\n let pathIds: string[] = [];\n let pathStrings: string[] = [];\n const pathCache = new Map<string, { pathIds: string[], pathStrings: string[] }>();\n if (pathCache.has(recordId)) {\n const cached = pathCache.get(recordId)!;\n pathIds = cached.pathIds;\n pathStrings = cached.pathStrings;\n }\n else {\n const pathIdParts: string[] = [];\n const pathStringParts: string[] = [];\n let currentRecord: IRecord | null = record;\n const visited = new Set<string>();\n\n while (currentRecord) {\n const currentId = currentRecord.getRecordId();\n if (visited.has(currentId)) break;\n visited.add(currentId);\n\n pathIdParts.unshift(currentRecord.getRecordId());\n pathStringParts.unshift(currentRecord.getNamedReference().name);\n const parentRef: ComponentFramework.EntityReference[] = currentRecord.getValue(this._getNativeColumns().parentId);\n const parentId = parentRef?.[0]?.id?.guid;\n currentRecord = parentId ? recordsMap[parentId] : null;\n }\n\n pathIds = pathIdParts;\n pathStrings = pathStringParts;\n pathCache.set(recordId, { pathIds, pathStrings });\n }\n\n this._nodeMap.set(recordId, {\n directChildren: filteredDirectChildren,\n allChildren: allChildren,\n pathIds,\n pathStrings,\n parent: parentRecord,\n index\n });\n }\n this._isFlat = filteredTopLevelRecords.every(record => this._nodeMap.get(record.getRecordId())!.directChildren.length === 0);\n const rootTaskId = this._getTaskDataProvider().getRootTaskId();\n if (!rootTaskId) {\n if (this._getTaskDataProvider().isFlatListEnabled()) {\n const directlyMatchingRecords: IRecord[] = allRecordsWithMatching.filter(r => this._matchingRecordsMap[r.getRecordId()]);\n this._nodeMap.set(null as any, {\n directChildren: directlyMatchingRecords,\n allChildren: directlyMatchingRecords,\n pathIds: [],\n pathStrings: [],\n index: -1\n });\n this._totalUniqueRecords = directlyMatchingRecords.length;\n this._sortedRecordIds = directlyMatchingRecords.map(r => r.getRecordId());\n }\n else {\n this._nodeMap.set(null as any, {\n directChildren: filteredTopLevelRecords,\n allChildren: allRecordsWithMatching,\n pathIds: [],\n pathStrings: [],\n index: -1\n });\n this._totalUniqueRecords = allRecordsWithMatching.length;\n this._sortedRecordIds = allRecordsWithMatching.map(r => r.getRecordId());\n }\n }\n else {\n const topLevelNode = this._nodeMap.get(rootTaskId);\n if (this._getTaskDataProvider().isFlatListEnabled()) {\n const directlyMatchingRecords: IRecord[] = topLevelNode?.allChildren.filter(r => this._matchingRecordsMap[r.getRecordId()]) || [];\n topLevelNode!.directChildren = directlyMatchingRecords;\n topLevelNode!.allChildren = directlyMatchingRecords;\n }\n this._nodeMap.set(null as any, topLevelNode!);\n this._totalUniqueRecords = topLevelNode!.allChildren.length;\n this._sortedRecordIds = topLevelNode!.allChildren.map(r => r.getRecordId());\n }\n return this._nodeMap;\n }\n\n\n private _buildMatchingRecords() {\n this._matchingRecordsMap = {};\n const provider = this._createBaseProvider();\n provider.onGetQuickFindColumns = () => this._getTaskDataProvider().getQuickFindColumns();\n provider.setFiltering(this._getTaskDataProvider().getFiltering());\n provider.setSearchQuery(this._getTaskDataProvider().getSearchQuery());\n provider.refreshSync();\n this._matchingRecordsMap = provider.getRecordsMap();\n }\n\n private _buildSortingMap() {\n this._sortingMap = {};\n let index = -1;\n const provider = this._createBaseProvider();\n provider.addEventListener('onRecordLoaded', (record) => {\n this._sortingMap[record.getRecordId()] = ++index;\n });\n provider.refreshSync();\n }\n\n private _createBaseProvider(): MemoryDataProvider {\n const taskDataProvider = this._getTaskDataProvider();\n const provider = new MemoryDataProvider({\n dataSource: taskDataProvider.getDataSource(),\n metadata: taskDataProvider.getMetadata()\n });\n patchDataBuilderPrepare({ provider, records: this._records });\n provider.getPaging().setPageSize(taskDataProvider.getDataSource().length);\n provider.setSorting(taskDataProvider.getSorting());\n provider.setColumns(taskDataProvider.getColumns());\n return provider;\n }\n\n private _buildPathForRecord(recordId: string): string[] {\n const path: string[] = [];\n const recordsMap = this._recordsMap;\n const parentIdName = this._getNativeColumns().parentId;\n let record: IRecord | undefined = recordsMap[recordId];\n const visited = new Set<string>();\n while (record) {\n const currentId = record.getRecordId();\n if (visited.has(currentId)) break;\n visited.add(currentId);\n path.unshift(record.getNamedReference().name);\n const parentId: string = record?.getValue(parentIdName)?.[0]?.id?.guid;\n record = recordsMap[parentId];\n }\n return path;\n }\n\n private _patchRecordPaths() {\n if(!this._getTaskDataProvider().getColumnsMap()[this._getNativeColumns().path]) return;\n for (const record of this._records) {\n const path = this._buildPathForRecord(record.getRecordId());\n const field = record.getField(this._getNativeColumns().path);\n const pathString = path.join('/');\n //@ts-ignore\n field._originalValue = pathString;\n //@ts-ignore\n field._currentValue = pathString;\n }\n }\n\n private _getNativeColumns(): ReturnType<ITaskDataProvider['getNativeColumns']> {\n return this._getTaskDataProvider().getNativeColumns();\n }\n\n private _getTaskDataProvider(): ITaskDataProvider {\n const provider = this._taskDataProvider;\n if (!provider) {\n throw new Error('TaskDataProvider dependency not provided!');\n }\n return provider;\n }\n}"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RecordTree.js","sources":["../../../../../../src/components/TaskGrid/providers/task/record-tree/RecordTree.ts"],"sourcesContent":["import { IRecord, MemoryDataProvider } from \"@talxis/client-libraries\";\nimport { ITaskDataProvider } from \"../TaskDataProvider\";\nimport { patchDataBuilderPrepare } from \"./patchDataBuilderPrepare\";\n\ninterface ITreeNode {\n directChildren: IRecord[];\n allChildren: IRecord[];\n pathIds: string[];\n pathStrings: string[];\n index: number;\n parent?: IRecord;\n}\n\ninterface IRecordTreeParameters {\n taskDataProvider: ITaskDataProvider;\n}\n\nexport interface IRecordTree {\n /** Builds (or rebuilds) the node map from the current provider records. Returns the resulting map keyed by record id. */\n build(): Map<string, ITreeNode>\n /** Returns the current node map keyed by record id without triggering a rebuild. */\n getNodeMap(): Map<string, ITreeNode>;\n /** Returns the tree node for the given record id. Pass `null` to get the virtual root node. */\n getNode(recordId: string | null): ITreeNode;\n /** Returns the total number of unique records in the tree. */\n getTotalCount(): number;\n /** Returns `true` when the tree is in flat-list mode (no parent-child hierarchy). */\n isFlat(): boolean;\n /** Returns `true` when the record with the given id has at least one direct child. */\n hasChildren(recordId: string): boolean;\n /** Returns a map of records that match the current search/filter, keyed by record id. */\n getMatchingRecords(): { [recordId: string]: IRecord };\n /** Returns record ids in their computed display order (depth-first, stack-rank sorted). */\n getSortedIds(): string[];\n}\n\nexport class RecordTree implements IRecordTree {\n private _nodeMap: Map<string, ITreeNode> = new Map();\n private _sortingMap: { [recordId: string]: number } = {};\n private _matchingRecordsMap: { [recordId: string]: IRecord } = {};\n private _isFlat: boolean = false;\n private _totalUniqueRecords: number = 0;\n private _sortedRecordIds: string[] = [];\n private _records: IRecord[] = [];\n private _recordsMap: { [recordId: string]: IRecord } = {};\n private _taskDataProvider: ITaskDataProvider;\n\n constructor(parameters: IRecordTreeParameters) {\n this._taskDataProvider = parameters.taskDataProvider;\n }\n\n public getNodeMap(): Map<string, ITreeNode> {\n return this._nodeMap;\n }\n public getTotalCount(): number {\n return this._totalUniqueRecords;\n }\n public isFlat(): boolean {\n return this._isFlat;\n }\n public getMatchingRecords(): { [recordId: string]: IRecord } {\n return this._matchingRecordsMap;\n }\n public getNode(recordId: string | null): ITreeNode {\n return this._nodeMap.get(recordId as any)!;\n }\n\n public hasChildren(recordId: string): boolean {\n const children = this._nodeMap.get(recordId)?.directChildren;\n if (children && children.length > 0) {\n return true;\n }\n return false;\n }\n\n public getSortedIds(): string[] {\n return this._sortedRecordIds;\n }\n\n public build(): Map<string, ITreeNode> {\n this._records = this._taskDataProvider.getAllRecords();\n this._recordsMap = this._taskDataProvider.getRecordsMap();\n // Clear existing record tree map and flat sorted array\n this._nodeMap.clear();\n this._patchRecordPaths();\n this._buildSortingMap();\n this._buildMatchingRecords();\n\n // Create reusable sort function\n const sortByIndex = (a: IRecord, b: IRecord): number => {\n const indexA = this._sortingMap[a.getRecordId()] ?? Number.MAX_SAFE_INTEGER;\n const indexB = this._sortingMap[b.getRecordId()] ?? Number.MAX_SAFE_INTEGER;\n return indexA - indexB;\n };\n\n const records = this._records;\n const recordsMap = this._recordsMap;\n\n const parentToDirectChildren = new Map<string, IRecord[]>();\n const topLevelRecords: IRecord[] = [];\n\n for (const record of records) {\n const parentRef = record.getValue(this._getNativeColumns().parentId);\n const parentId = parentRef?.[0]?.id?.guid;\n\n if (parentId && recordsMap[parentId]) {\n if (!parentToDirectChildren.has(parentId)) {\n parentToDirectChildren.set(parentId, []);\n }\n parentToDirectChildren.get(parentId)!.push(record);\n }\n else {\n topLevelRecords.push(record);\n }\n }\n\n topLevelRecords.sort(sortByIndex);\n for (const [, children] of parentToDirectChildren) {\n children.sort(sortByIndex);\n }\n\n const hasMatchingDescendantCache = new Map<string, boolean>();\n const calculateHasMatchingDescendant = (recordId: string): boolean => {\n if (hasMatchingDescendantCache.has(recordId)) {\n return hasMatchingDescendantCache.get(recordId)!;\n }\n\n if (this._matchingRecordsMap[recordId]) {\n hasMatchingDescendantCache.set(recordId, true);\n return true;\n }\n\n // Set false sentinel before recursing to break circular reference cycles\n hasMatchingDescendantCache.set(recordId, false);\n const directChildren = parentToDirectChildren.get(recordId) || [];\n const hasMatching = directChildren.some(child =>\n calculateHasMatchingDescendant(child.getRecordId())\n );\n\n hasMatchingDescendantCache.set(recordId, hasMatching);\n return hasMatching;\n };\n\n for (const record of records) {\n calculateHasMatchingDescendant(record.getRecordId());\n }\n\n const recordToAllChildren = new Map<string, IRecord[]>();\n const recordToFilteredDirectChildren = new Map<string, IRecord[]>();\n const inProgressChildren = new Set<string>();\n\n const getAllChildren = (recordId: string): IRecord[] => {\n if (recordToAllChildren.has(recordId)) {\n return recordToAllChildren.get(recordId)!;\n }\n\n // Break circular reference cycles\n if (inProgressChildren.has(recordId)) {\n console.warn(`Circular reference detected: record \"${recordsMap[recordId]?.getNamedReference().name}\" (${recordId}) was encountered twice during tree traversal. All records involved in this cycle and their descendants will be missing from the tree.`);\n return [];\n }\n inProgressChildren.add(recordId);\n\n const directChildren = parentToDirectChildren.get(recordId) || [];\n const allChildren: IRecord[] = [];\n\n const filteredDirectChildren: IRecord[] = [];\n\n for (const child of directChildren) {\n if (hasMatchingDescendantCache.get(child.getRecordId())) {\n filteredDirectChildren.push(child);\n allChildren.push(child);\n allChildren.push(...getAllChildren(child.getRecordId()));\n }\n }\n\n recordToFilteredDirectChildren.set(recordId, filteredDirectChildren);\n recordToAllChildren.set(recordId, allChildren);\n inProgressChildren.delete(recordId);\n return allChildren;\n };\n\n const filteredTopLevelRecords: IRecord[] = [];\n const allRecordsWithMatching: IRecord[] = [];\n\n for (const record of topLevelRecords) {\n if (hasMatchingDescendantCache.get(record.getRecordId())) {\n filteredTopLevelRecords.push(record);\n }\n }\n\n for (const record of records) {\n if (hasMatchingDescendantCache.get(record.getRecordId())) {\n allRecordsWithMatching.push(record);\n }\n getAllChildren(record.getRecordId());\n }\n\n allRecordsWithMatching.sort(sortByIndex);\n \n for (const record of records) {\n const recordId = record.getRecordId();\n const isTopLevel = !record.getValue(this._getNativeColumns().parentId);\n\n const allChildren = getAllChildren(recordId);\n const filteredDirectChildren = recordToFilteredDirectChildren.get(recordId) || [];\n\n let parentRecord: IRecord | undefined = undefined;\n\n let index = -1;\n\n if (!isTopLevel) {\n const parentRef = record.getValue(this._getNativeColumns().parentId);\n const parentId = parentRef?.[0]?.id?.guid;\n if (parentId) {\n parentRecord = recordsMap[parentId];\n const parentFilteredChildren = recordToFilteredDirectChildren.get(parentId) || [];\n index = parentFilteredChildren.findIndex(sibling => sibling.getRecordId() === recordId);\n }\n } else {\n index = filteredTopLevelRecords.findIndex(topRecord => topRecord.getRecordId() === recordId);\n }\n\n let pathIds: string[] = [];\n let pathStrings: string[] = [];\n const pathCache = new Map<string, { pathIds: string[], pathStrings: string[] }>();\n if (pathCache.has(recordId)) {\n const cached = pathCache.get(recordId)!;\n pathIds = cached.pathIds;\n pathStrings = cached.pathStrings;\n }\n else {\n const pathIdParts: string[] = [];\n const pathStringParts: string[] = [];\n let currentRecord: IRecord | null = record;\n const visited = new Set<string>();\n\n while (currentRecord) {\n const currentId = currentRecord.getRecordId();\n if (visited.has(currentId)) break;\n visited.add(currentId);\n\n pathIdParts.unshift(currentRecord.getRecordId());\n pathStringParts.unshift(currentRecord.getNamedReference().name);\n const parentRef: ComponentFramework.EntityReference[] = currentRecord.getValue(this._getNativeColumns().parentId);\n const parentId = parentRef?.[0]?.id?.guid;\n currentRecord = parentId ? recordsMap[parentId] : null;\n }\n\n pathIds = pathIdParts;\n pathStrings = pathStringParts;\n pathCache.set(recordId, { pathIds, pathStrings });\n }\n\n this._nodeMap.set(recordId, {\n directChildren: filteredDirectChildren,\n allChildren: allChildren,\n pathIds,\n pathStrings,\n parent: parentRecord,\n index\n });\n }\n this._isFlat = filteredTopLevelRecords.every(record => this._nodeMap.get(record.getRecordId())!.directChildren.length === 0);\n const rootTaskId = this._getTaskDataProvider().getRootTaskId();\n if (!rootTaskId) {\n if (this._getTaskDataProvider().isFlatListEnabled()) {\n const directlyMatchingRecords: IRecord[] = allRecordsWithMatching.filter(r => this._matchingRecordsMap[r.getRecordId()]);\n this._nodeMap.set(null as any, {\n directChildren: directlyMatchingRecords,\n allChildren: directlyMatchingRecords,\n pathIds: [],\n pathStrings: [],\n index: -1\n });\n this._totalUniqueRecords = directlyMatchingRecords.length;\n this._sortedRecordIds = directlyMatchingRecords.map(r => r.getRecordId());\n }\n else {\n this._nodeMap.set(null as any, {\n directChildren: filteredTopLevelRecords,\n allChildren: allRecordsWithMatching,\n pathIds: [],\n pathStrings: [],\n index: -1\n });\n this._totalUniqueRecords = allRecordsWithMatching.length;\n this._sortedRecordIds = allRecordsWithMatching.map(r => r.getRecordId());\n }\n }\n else {\n const topLevelNode = this._nodeMap.get(rootTaskId);\n if (this._getTaskDataProvider().isFlatListEnabled()) {\n const directlyMatchingRecords: IRecord[] = topLevelNode?.allChildren.filter(r => this._matchingRecordsMap[r.getRecordId()]) || [];\n topLevelNode!.directChildren = directlyMatchingRecords;\n topLevelNode!.allChildren = directlyMatchingRecords;\n }\n this._nodeMap.set(null as any, topLevelNode!);\n this._totalUniqueRecords = topLevelNode!.allChildren.length;\n this._sortedRecordIds = topLevelNode!.allChildren.map(r => r.getRecordId());\n }\n return this._nodeMap;\n }\n\n\n private _buildMatchingRecords() {\n this._matchingRecordsMap = {};\n const provider = this._createBaseProvider();\n provider.onGetQuickFindColumns = () => this._getTaskDataProvider().getQuickFindColumns();\n provider.setFiltering(this._getTaskDataProvider().getFiltering());\n provider.setSearchQuery(this._getTaskDataProvider().getSearchQuery());\n provider.refreshSync();\n this._matchingRecordsMap = provider.getRecordsMap();\n }\n\n private _buildSortingMap() {\n this._sortingMap = {};\n let index = -1;\n const provider = this._createBaseProvider();\n provider.addEventListener('onRecordLoaded', (record) => {\n this._sortingMap[record.getRecordId()] = ++index;\n });\n provider.refreshSync();\n }\n\n private _createBaseProvider(): MemoryDataProvider {\n const taskDataProvider = this._getTaskDataProvider();\n const provider = new MemoryDataProvider({\n dataSource: taskDataProvider.getDataSource(),\n metadata: taskDataProvider.getMetadata()\n });\n patchDataBuilderPrepare({ provider, records: this._records });\n provider.getPaging().setPageSize(taskDataProvider.getDataSource().length);\n provider.setSorting(taskDataProvider.getSorting());\n provider.setColumns(taskDataProvider.getColumns());\n return provider;\n }\n\n private _buildPathForRecord(recordId: string): string[] {\n const path: string[] = [];\n const recordsMap = this._recordsMap;\n const parentIdName = this._getNativeColumns().parentId;\n let record: IRecord | undefined = recordsMap[recordId];\n const visited = new Set<string>();\n while (record) {\n const currentId = record.getRecordId();\n if (visited.has(currentId)) break;\n visited.add(currentId);\n path.unshift(record.getNamedReference().name);\n const parentId: string = record?.getValue(parentIdName)?.[0]?.id?.guid;\n record = recordsMap[parentId];\n }\n return path;\n }\n\n private _patchRecordPaths() {\n if(!this._getTaskDataProvider().getColumnsMap()[this._getNativeColumns().path]) return;\n for (const record of this._records) {\n const path = this._buildPathForRecord(record.getRecordId());\n const field = record.getField(this._getNativeColumns().path);\n const pathString = path.join('/');\n //@ts-ignore\n field._originalValue = pathString;\n //@ts-ignore\n field._currentValue = pathString;\n }\n }\n\n private _getNativeColumns(): ReturnType<ITaskDataProvider['getNativeColumns']> {\n return this._getTaskDataProvider().getNativeColumns();\n }\n\n private _getTaskDataProvider(): ITaskDataProvider {\n const provider = this._taskDataProvider;\n if (!provider) {\n throw new Error('TaskDataProvider dependency not provided!');\n }\n return provider;\n }\n}"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="@types/powerapps-component-framework" />
|
|
2
2
|
/// <reference types="react" />
|
|
3
3
|
import { ITheme, ICommandBarProps, ITextFieldProps, ICalloutProps as ICalloutProps$1, IDatePickerProps, ITagPickerProps, IComboBoxProps } from '@talxis/react-components';
|
|
4
|
-
import { DeepPartial, DataType, IDataset, IEventEmitter, IColumn, IAvailableRelatedColumn, IInterceptor, ICommand, AggregationFunction, IRecord, IRawRecord,
|
|
4
|
+
import { DeepPartial, DataType, IDataset, IEventEmitter, IColumn, IAvailableRelatedColumn, IInterceptor, ICommand, AggregationFunction, IRecord, IRawRecord, IRecordSaveOperationResult, IAvailableColumnOptions, IDataProvider, Dataset } from '@talxis/client-libraries';
|
|
5
5
|
import { ITheme as ITheme$1, ThemeProviderProps, IShimmerProps, IButtonProps, IMessageBarProps, ITextProps, ILabelProps, IIconProps, ILinkProps, IImageProps, ISpinnerProps, IMessageBar, IToggleProps } from '@fluentui/react';
|
|
6
6
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
7
7
|
import * as React$1 from 'react';
|
|
@@ -895,6 +895,10 @@ declare const lookupTranslations: {
|
|
|
895
895
|
1033: string;
|
|
896
896
|
1029: string;
|
|
897
897
|
};
|
|
898
|
+
all: {
|
|
899
|
+
1033: string;
|
|
900
|
+
1029: string;
|
|
901
|
+
};
|
|
898
902
|
};
|
|
899
903
|
|
|
900
904
|
interface ILookup extends IControl<ILookupParameters, ILookupOutputs, Partial<ITranslations<typeof lookupTranslations>>, ITagPickerProps> {
|
|
@@ -1001,6 +1005,10 @@ declare const useLookup: (props: ILookup) => [ComponentFramework.LookupValue[],
|
|
|
1001
1005
|
1033: string;
|
|
1002
1006
|
1029: string;
|
|
1003
1007
|
};
|
|
1008
|
+
all: {
|
|
1009
|
+
1033: string;
|
|
1010
|
+
1029: string;
|
|
1011
|
+
};
|
|
1004
1012
|
}>>>, {
|
|
1005
1013
|
create: (entityName: string) => void;
|
|
1006
1014
|
select: (record: ComponentFramework.LookupValue[] | undefined) => void;
|
|
@@ -1314,6 +1322,7 @@ interface IDuration extends IControl<IDurationParameters, IDurationOutputs, Part
|
|
|
1314
1322
|
}
|
|
1315
1323
|
interface IDurationParameters extends IInputParameters {
|
|
1316
1324
|
value: IWholeNumberProperty;
|
|
1325
|
+
HoursPerDay?: Omit<IWholeNumberProperty, 'attributes'>;
|
|
1317
1326
|
}
|
|
1318
1327
|
interface IDurationOutputs extends IOutputs$1 {
|
|
1319
1328
|
value?: number;
|
|
@@ -1442,15 +1451,23 @@ interface ITreeNode {
|
|
|
1442
1451
|
parent?: IRecord;
|
|
1443
1452
|
}
|
|
1444
1453
|
interface IRecordTree {
|
|
1454
|
+
/** Builds (or rebuilds) the node map from the current provider records. Returns the resulting map keyed by record id. */
|
|
1445
1455
|
build(): Map<string, ITreeNode>;
|
|
1456
|
+
/** Returns the current node map keyed by record id without triggering a rebuild. */
|
|
1446
1457
|
getNodeMap(): Map<string, ITreeNode>;
|
|
1458
|
+
/** Returns the tree node for the given record id. Pass `null` to get the virtual root node. */
|
|
1447
1459
|
getNode(recordId: string | null): ITreeNode;
|
|
1460
|
+
/** Returns the total number of unique records in the tree. */
|
|
1448
1461
|
getTotalCount(): number;
|
|
1462
|
+
/** Returns `true` when the tree is in flat-list mode (no parent-child hierarchy). */
|
|
1449
1463
|
isFlat(): boolean;
|
|
1464
|
+
/** Returns `true` when the record with the given id has at least one direct child. */
|
|
1450
1465
|
hasChildren(recordId: string): boolean;
|
|
1466
|
+
/** Returns a map of records that match the current search/filter, keyed by record id. */
|
|
1451
1467
|
getMatchingRecords(): {
|
|
1452
1468
|
[recordId: string]: IRecord;
|
|
1453
1469
|
};
|
|
1470
|
+
/** Returns record ids in their computed display order (depth-first, stack-rank sorted). */
|
|
1454
1471
|
getSortedIds(): string[];
|
|
1455
1472
|
}
|
|
1456
1473
|
|
|
@@ -1470,6 +1487,8 @@ interface ICustomColumnsStrategy {
|
|
|
1470
1487
|
onGetRawRecords: () => Promise<IRawRecord[]>;
|
|
1471
1488
|
/** Fetches a single raw record by its ID. */
|
|
1472
1489
|
onGetRawRecord: (recordId: string) => Promise<IRawRecord>;
|
|
1490
|
+
/** Persists a cell value for a custom column on the given record. */
|
|
1491
|
+
onSaveValue: (regardingRecordId: string, column: IColumn, value: any) => Promise<IRecordSaveOperationResult>;
|
|
1473
1492
|
}
|
|
1474
1493
|
/** Manages the lifecycle of dynamic (user-defined) columns and wraps the strategy with error handling. */
|
|
1475
1494
|
interface ICustomColumnsDataProvider {
|
|
@@ -1485,10 +1504,13 @@ interface ICustomColumnsDataProvider {
|
|
|
1485
1504
|
refresh: () => Promise<IColumn[]>;
|
|
1486
1505
|
/** Returns the currently cached list of custom columns. */
|
|
1487
1506
|
getColumns: () => IColumn[];
|
|
1507
|
+
/** Persists a cell value for a custom column on the given record. */
|
|
1508
|
+
saveValue: (regardingRecordId: string, column: IColumn, value: any) => Promise<IRecordSaveOperationResult>;
|
|
1488
1509
|
/** Returns the underlying strategy cast to the given type for strategy-specific operations. */
|
|
1489
1510
|
getStrategy<T extends ICustomColumnsStrategy>(): T;
|
|
1490
1511
|
/** Returns `true` when the given column name is a custom (dynamic) column. */
|
|
1491
1512
|
isCustomColumn: (columnName: string) => boolean;
|
|
1513
|
+
/** Disposes event listeners and releases all resources held by the provider. */
|
|
1492
1514
|
destroy: () => void;
|
|
1493
1515
|
}
|
|
1494
1516
|
interface ICustomColumnsDataProviderEvents {
|
|
@@ -1571,6 +1593,7 @@ interface ISavedQueryDataProvider {
|
|
|
1571
1593
|
deleteUserQueries: (queryIds: string[]) => Promise<IDeletedUserQueriesResult>;
|
|
1572
1594
|
/** Fetches system and user queries from the strategy and sets the initial active query. */
|
|
1573
1595
|
refresh: () => Promise<void>;
|
|
1596
|
+
/** Disposes event listeners and releases all resources held by the provider. */
|
|
1574
1597
|
destroy: () => void;
|
|
1575
1598
|
}
|
|
1576
1599
|
|
|
@@ -1586,7 +1609,7 @@ type IDeleteTasksResult = {
|
|
|
1586
1609
|
deletedTaskIds: string[];
|
|
1587
1610
|
errors: IFailedRecord[];
|
|
1588
1611
|
};
|
|
1589
|
-
type
|
|
1612
|
+
type IOpenDatasetItemsResult = {
|
|
1590
1613
|
success: true;
|
|
1591
1614
|
updatedRecords: IRawRecord[];
|
|
1592
1615
|
} | {
|
|
@@ -1610,8 +1633,6 @@ interface ITaskDataProviderStrategy {
|
|
|
1610
1633
|
onGetAvailableColumns: (options?: IAvailableColumnOptions) => Promise<IColumn[]>;
|
|
1611
1634
|
/** Returns linked-entity columns that can be used for filtering and sorting. */
|
|
1612
1635
|
onGetAvailableRelatedColumns: () => Promise<IAvailableRelatedColumn[]>;
|
|
1613
|
-
/** Returns the attribute names that are searched when the user types in the quick-find input. */
|
|
1614
|
-
onGetQuickFindColumns: () => string[];
|
|
1615
1636
|
/** @returns The created task raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */
|
|
1616
1637
|
onCreateTask(parentTaskId?: string): Promise<IRawRecord | null>;
|
|
1617
1638
|
/**
|
|
@@ -1625,21 +1646,16 @@ interface ITaskDataProviderStrategy {
|
|
|
1625
1646
|
/** @returns The created task raw records, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */
|
|
1626
1647
|
onCreateTasksFromTemplate(templateId: string, parentTaskId?: string): Promise<IRawRecord[] | null>;
|
|
1627
1648
|
/**
|
|
1628
|
-
*
|
|
1629
|
-
*
|
|
1630
|
-
* Throws on unexpected failure.
|
|
1649
|
+
* Opens one or more dataset items. When `isTaskEntity` is `true` the references point to task records;
|
|
1650
|
+
* when `false` they point to a related entity (e.g. a lookup target).
|
|
1631
1651
|
*/
|
|
1632
|
-
|
|
1652
|
+
onOpenDatasetItems(entityReferences: ComponentFramework.EntityReference[], isTaskEntity: boolean): Promise<IOpenDatasetItemsResult | null>;
|
|
1633
1653
|
/** Moves a task to a new position relative to another task. Returns the updated raw records, or `null` on cancellation. */
|
|
1634
1654
|
onMoveTask(movingTaskId: string, movingToTaskId: string, position: 'above' | 'below' | 'child'): Promise<IRawRecord[] | null>;
|
|
1635
1655
|
/** Persists inline cell edits for the given record. */
|
|
1636
1656
|
onRecordSave(record: IRecord): Promise<IRecordSaveOperationResult>;
|
|
1637
1657
|
/** Returns whether the given task record is currently active (non-completed). */
|
|
1638
1658
|
onIsRecordActive(recordId: string): boolean;
|
|
1639
|
-
/** Opens the record detail view. Called when a user clicks a non-subject cell. */
|
|
1640
|
-
onOpenDatasetItem(entityReference: ComponentFramework.EntityReference, context?: {
|
|
1641
|
-
columnName?: string;
|
|
1642
|
-
}): Promise<void>;
|
|
1643
1659
|
/** When provided, the task tree is scoped to the subtree of the returned task id. */
|
|
1644
1660
|
onGetRootTaskId?: () => string | undefined;
|
|
1645
1661
|
}
|
|
@@ -1652,12 +1668,10 @@ interface ITaskDataProviderEventListener {
|
|
|
1652
1668
|
onAfterTasksCreated: (records: IRawRecord[] | null, parentId?: string) => void;
|
|
1653
1669
|
onBeforeTaskMoved: () => void;
|
|
1654
1670
|
onAfterTaskMoved: (movingFromTaskId: string, movingToTaskId: string, position: 'above' | 'below' | 'child') => void;
|
|
1655
|
-
onBeforeTasksEdited: (taskIds: string[]) => void;
|
|
1656
1671
|
onTaskDataUpdated: (data: IRawRecord[]) => void;
|
|
1657
|
-
onAfterTasksEdited: (result: IEditTasksResult | null) => void;
|
|
1658
1672
|
onRecordTreeUpdated: (updatedParentIds: (string | undefined)[]) => void;
|
|
1659
|
-
|
|
1660
|
-
|
|
1673
|
+
onBeforeDatasetItemsOpened: (entityReferences: ComponentFramework.EntityReference[], isTaskEntity: boolean) => void;
|
|
1674
|
+
onAfterDatasetItemsOpened: (entityReferences: ComponentFramework.EntityReference[], isTaskEntity: boolean, result: IOpenDatasetItemsResult | null) => void;
|
|
1661
1675
|
onError: (error: any, message: string) => void;
|
|
1662
1676
|
}
|
|
1663
1677
|
/** Extended data provider interface for task records. Adds task-specific operations on top of `IDataProvider`. */
|
|
@@ -1677,11 +1691,10 @@ interface ITaskDataProvider extends IDataProvider {
|
|
|
1677
1691
|
/** Applies updated raw record data in-place and rebuilds the tree if hierarchy changed. */
|
|
1678
1692
|
updateTaskData(newData: IRawRecord[]): void;
|
|
1679
1693
|
/**
|
|
1680
|
-
*
|
|
1681
|
-
*
|
|
1682
|
-
* Throws on unexpected failure.
|
|
1694
|
+
* Opens one or more task records by id. Builds entity references from the current records map
|
|
1695
|
+
* and delegates to `strategy.onOpenDatasetItems` with `isTaskEntity: true`.
|
|
1683
1696
|
*/
|
|
1684
|
-
|
|
1697
|
+
openTaskItems(taskIds: string[]): Promise<IOpenDatasetItemsResult | null>;
|
|
1685
1698
|
/** @returns The created task raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */
|
|
1686
1699
|
createTask(parentTaskId?: string): Promise<IRawRecord | null>;
|
|
1687
1700
|
/**
|
|
@@ -1763,47 +1776,56 @@ interface INativeColumns extends IFieldMapping {
|
|
|
1763
1776
|
}
|
|
1764
1777
|
/** Feature flags that control which UI elements are rendered in the grid header and ribbon. */
|
|
1765
1778
|
interface ITaskGridParameters {
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
/** Show drag handles and allow rows to be dragged for reordering. Defaults to `true`. Automatically suppressed when flat-list mode is active or sorting by a non-stack-rank column. */
|
|
1779
|
+
agGridLicenseKey?: string;
|
|
1780
|
+
/** Show drag handles and allow rows to be dragged for reordering. Defaults to `false`. Automatically suppressed when flat-list mode is active or sorting by a non-stack-rank column. */
|
|
1769
1781
|
enableRowDragging?: boolean;
|
|
1770
|
-
/** Show the *Edit Columns* button in the ribbon. Defaults to `
|
|
1782
|
+
/** Show the *Edit Columns* button in the ribbon. Defaults to `false`. */
|
|
1771
1783
|
enableEditColumns?: boolean;
|
|
1772
|
-
/** Enable editing of tasks directly in the grid. Defaults to `
|
|
1784
|
+
/** Enable editing of tasks directly in the grid. Defaults to `false`. */
|
|
1773
1785
|
enableTaskEditing?: boolean;
|
|
1774
|
-
/** Enable creation of new tasks. Defaults to `
|
|
1786
|
+
/** Enable creation of new tasks. Defaults to `false`. */
|
|
1775
1787
|
enableTaskCreation?: boolean;
|
|
1776
|
-
/** Enable deletion of tasks. Defaults to `
|
|
1788
|
+
/** Enable deletion of tasks. Defaults to `false`. */
|
|
1777
1789
|
enableTaskDeletion?: boolean;
|
|
1778
|
-
/** Show the search / quick-find input. Defaults to `
|
|
1790
|
+
/** Show the search / quick-find input. Defaults to `false`. */
|
|
1779
1791
|
enableQuickFind?: boolean;
|
|
1780
|
-
/** Show the view-switcher dropdown. Defaults to `
|
|
1792
|
+
/** Show the view-switcher dropdown. Defaults to `false`. */
|
|
1781
1793
|
enableViewSwitcher?: boolean;
|
|
1782
|
-
/** Show the *Show hierarchy* toggle. Defaults to `
|
|
1794
|
+
/** Show the *Show hierarchy* toggle. Defaults to `false`. */
|
|
1783
1795
|
enableShowHierarchyToggle?: boolean;
|
|
1784
|
-
/** Show the *Hide inactive tasks* toggle. Defaults to `
|
|
1796
|
+
/** Show the *Hide inactive tasks* toggle. Defaults to `false`. */
|
|
1785
1797
|
enableHideInactiveTasksToggle?: boolean;
|
|
1786
|
-
/** Show the personal/system scope selector inside the Edit Columns panel. Defaults to `
|
|
1798
|
+
/** Show the personal/system scope selector inside the Edit Columns panel. Defaults to `false`. */
|
|
1787
1799
|
enableEditColumnsScopeSelector?: boolean;
|
|
1788
|
-
/** Enable user queries. Defaults to `
|
|
1800
|
+
/** Enable user queries. Defaults to `false`. */
|
|
1789
1801
|
enableUserQueries?: boolean;
|
|
1790
|
-
/** Show the query manager. Defaults to `
|
|
1802
|
+
/** Show the query manager. Defaults to `false`. */
|
|
1791
1803
|
enableQueryManager?: boolean;
|
|
1792
|
-
/** Show the "Save as new" button in the query manager. Defaults to `
|
|
1804
|
+
/** Show the "Save as new" button in the query manager. Defaults to `false`. */
|
|
1793
1805
|
enableSaveAsNewQuery?: boolean;
|
|
1794
|
-
/** Show the "Save changes" button in the query manager. Defaults to `
|
|
1806
|
+
/** Show the "Save changes" button in the query manager. Defaults to `false`. */
|
|
1795
1807
|
enableSaveQueryChanges?: boolean;
|
|
1796
|
-
/** Enable creation of custom columns. Defaults to `
|
|
1808
|
+
/** Enable creation of custom columns. Defaults to `false`. */
|
|
1797
1809
|
enableCustomColumnCreation?: boolean;
|
|
1798
|
-
/** Enable editing of custom columns. Defaults to `
|
|
1810
|
+
/** Enable editing of custom columns. Defaults to `false`. */
|
|
1799
1811
|
enableCustomColumnEditing?: boolean;
|
|
1800
|
-
/** Enable deletion of custom columns. Defaults to `
|
|
1812
|
+
/** Enable deletion of custom columns. Defaults to `false`. */
|
|
1801
1813
|
enableCustomColumnDeletion?: boolean;
|
|
1802
|
-
/** Enable inline creation of tasks. Defaults to `
|
|
1814
|
+
/** Enable inline creation of tasks. Defaults to `false`. */
|
|
1803
1815
|
enableInlineCreation?: boolean;
|
|
1816
|
+
/** Enable navigation within the grid. Defaults to `false`. */
|
|
1817
|
+
enableNavigation?: boolean;
|
|
1818
|
+
/** Enable column sorting in the grid. Defaults to `false`. */
|
|
1819
|
+
enableSorting?: boolean;
|
|
1820
|
+
/** Enable column filtering in the grid. Defaults to `false`. */
|
|
1821
|
+
enableFiltering?: boolean;
|
|
1822
|
+
/** Override the default row height in pixels. Uses the AG Grid default when omitted. */
|
|
1823
|
+
rowHeight?: number;
|
|
1804
1824
|
}
|
|
1805
1825
|
/** Available data providers injected into `ITaskDataProviderStrategy` at construction time. */
|
|
1806
1826
|
interface ITaskStrategyDeps {
|
|
1827
|
+
enableInlineCreation: boolean;
|
|
1828
|
+
enableTaskEditing: boolean;
|
|
1807
1829
|
/** Present when the consumer provided `onCreateCustomColumnsStrategy`. */
|
|
1808
1830
|
customColumnsDataProvider?: ICustomColumnsDataProvider;
|
|
1809
1831
|
/** Present when the consumer provided `onCreateTemplateDataProvider`. */
|
|
@@ -1822,14 +1844,14 @@ interface ITaskGridDescriptor {
|
|
|
1822
1844
|
onCreateTaskStrategy: (deps: ITaskStrategyDeps) => ITaskDataProviderStrategy;
|
|
1823
1845
|
/** Returns an `IDataProvider` that drives the user-query creation/update dialog. */
|
|
1824
1846
|
onCreateUserQueryDataProvider: () => IDataProvider;
|
|
1847
|
+
/** (Optional) Returns the container height as a CSS string. Falls back to a default stretch when omitted. */
|
|
1848
|
+
onGetHeight?: () => string | undefined;
|
|
1825
1849
|
/** (Optional) Returns the strategy for managing dynamic (user-defined) columns. When provided, the custom-columns feature is enabled. */
|
|
1826
1850
|
onCreateCustomColumnsStrategy?: () => ICustomColumnsStrategy | undefined;
|
|
1827
1851
|
/** (Optional) Returns an `IDataProvider` for task templates. When provided, the template-based task creation feature is enabled. */
|
|
1828
1852
|
onCreateTemplateDataProvider?: () => IDataProvider | undefined;
|
|
1829
1853
|
/** (Optional) Returns a strategy for deep customization of AG Grid column definitions, renderers, editors, and row class rules. */
|
|
1830
1854
|
onCreateGridCustomizerStrategy?: () => IGridCustomizerStrategy | undefined;
|
|
1831
|
-
/** (Optional) Returns the AG Grid Enterprise license key. */
|
|
1832
|
-
onGetAgGridLicenseKey?: () => string | undefined;
|
|
1833
1855
|
/** (Optional) Returns a stable DOM/control identifier. Auto-generated as a UUID when omitted. */
|
|
1834
1856
|
onGetControlId?: () => string;
|
|
1835
1857
|
/** (Optional) Async hook called before any data provider is created. Use for lazy loading or authentication. */
|
|
@@ -1888,6 +1910,10 @@ interface ITaskGridDatasetControl extends IDatasetControl {
|
|
|
1888
1910
|
isTaskEditingEnabled: () => boolean;
|
|
1889
1911
|
/** Returns `true` when task deletion is enabled. */
|
|
1890
1912
|
isTaskDeletingEnabled: () => boolean;
|
|
1913
|
+
/** Whether the view-switcher dropdown is visible (from `ITaskGridParameters.enableViewSwitcher`). */
|
|
1914
|
+
isViewSwitcherEnabled: () => boolean;
|
|
1915
|
+
/** Whether grid navigation is enabled (from `ITaskGridParameters.enableNavigation`). */
|
|
1916
|
+
isNavigationEnabled: () => boolean;
|
|
1891
1917
|
/** Returns `true` when a custom columns strategy was supplied through the descriptor. */
|
|
1892
1918
|
isCustomColumnsEnabled: () => boolean;
|
|
1893
1919
|
/** Whether the view manager is enabled (from `ITaskGridParameters.enableQueryManager`). */
|
|
@@ -1904,6 +1930,7 @@ interface ITaskGridDatasetControl extends IDatasetControl {
|
|
|
1904
1930
|
isCustomColumnDeletionEnabled: () => boolean;
|
|
1905
1931
|
/** Whether user queries are enabled (from `ITaskGridParameters.enableUserQueries`). */
|
|
1906
1932
|
isUserQueriesFeatureEnabled: () => boolean;
|
|
1933
|
+
/** Whether inline task creation is enabled (from `ITaskGridParameters.enableInlineCreation`). */
|
|
1907
1934
|
isInlineCreateEnabled: () => boolean;
|
|
1908
1935
|
}
|
|
1909
1936
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualDatasetAdapter.js","sources":["../../../../src/utils/dataset/adapters/VirtualDatasetAdapter.ts"],"sourcesContent":["import { mergeStyles } from \"@fluentui/react\";\nimport { Dataset, FetchXmlDataProvider, IColumn, IDataProvider, IDataset, Interceptors, IRawRecord, MemoryDataProvider } from \"@talxis/client-libraries\";\nimport { IDatasetControlParameters, IDatasetControlProps } from \"../../../components\";\nimport { DatasetControl, IDatasetControl } from \"../../dataset-control\";\n\ninterface IOutputs {\n DatasetControl?: any;\n}\n\ninterface IInputs {\n Data: ComponentFramework.PropertyTypes.StringProperty | {\n raw: IRawRecord[]\n }\n EntityMetadata: ComponentFramework.PropertyTypes.StringProperty;\n DataProvider: ComponentFramework.PropertyTypes.EnumProperty<\"Memory\" | \"FetchXml\">;\n EnableQuickFind?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n Columns?: ComponentFramework.PropertyTypes.StringProperty;\n Height?: ComponentFramework.PropertyTypes.StringProperty;\n RowHeight?: ComponentFramework.PropertyTypes.WholeNumberProperty;\n EnableEditing?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnablePagination?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableFiltering?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableSorting?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableNavigation?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableOptionSetColors?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableAggregation?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableGrouping?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableEditColumns?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableAutoSave?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableCommandBar?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableZebra?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableGroupedColumnsPinning?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnablePageSizeSwitcher?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableRecordCount?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n HomePageGridClientApiRibbonButtonId?: ComponentFramework.PropertyTypes.StringProperty;\n InlineRibbonButtonIds?: ComponentFramework.PropertyTypes.StringProperty;\n DefaultExpandedGroupLevel?: ComponentFramework.PropertyTypes.WholeNumberProperty;\n SelectableRows?: ComponentFramework.PropertyTypes.EnumProperty<\"none\" | \"single\" | \"multiple\">;\n GroupingType?: ComponentFramework.PropertyTypes.EnumProperty<\"nested\" | \"flat\">;\n IsLocalHarnessDebugMode?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n ClientApiWebresourceName?: ComponentFramework.PropertyTypes.StringProperty;\n ClientApiFunctionName?: ComponentFramework.PropertyTypes.StringProperty;\n}\n\ninterface IVirtualDatasetAdapterOptions {\n /**\n * Runs a promise that is awaited when the dataset control is initialized, before loading the first data.\n */\n onInitialize?: (dataset: IDataset) => Promise<void>;\n /**\n * If provided, this function is called when the dataset is initialized and awaited before loading first data.\n */\n CustomDataProviderClass?: new (...args: any) => IDataProvider;\n}\n\n\n/**\n * Helper class that holds boilerplate code for handling a virtual dataset in PCF, like syncing data, columns, and metadata from parameters.\n *\n */\nexport class VirtualDatasetAdapter {\n private _context!: ComponentFramework.Context<IInputs, IOutputs>;\n private _dataset!: Dataset<IDataProvider>;\n private _container!: HTMLDivElement;\n private _options?: IVirtualDatasetAdapterOptions\n private _initialized: boolean = false;\n private _state: ComponentFramework.Dictionary = {};\n private _datasetControl!: IDatasetControl;\n\n constructor(options?: IVirtualDatasetAdapterOptions) {\n this._options = options;\n }\n\n public init(context: ComponentFramework.Context<IInputs, IOutputs>, container: HTMLDivElement, state: ComponentFramework.Dictionary) {\n this._container = container;\n this._context = context;\n this._state = state ?? {};\n if (!context.parameters.Data.raw) {\n this._createDummyDatasetControl();\n return this;\n }\n const dataProvider = this._getDataProviderInstance();\n this._dataset = new Dataset(dataProvider);\n //loads parameter columns\n this._dataset.setMetadata(this._getEntityMetadata());\n this._dataset.setDataSource(context.parameters.Data.raw);\n this._datasetControl = new DatasetControl({\n state: this._state,\n //@ts-ignore - typings\n controlId: this._context.utils._customControlProperties?.controlId,\n onGetPcfContext: () => this._context,\n onGetParameters: () => this._getDatasetControlParameters()\n });\n this._datasetControl.setInterceptor('onInitialize', async (parameters, defaultAction) => {\n //preloads dataset\n await defaultAction(parameters);\n //sets columns after preload\n this._dataset.setColumns(this._getColumns());\n await this._options?.onInitialize?.(this.getDataset());\n });\n if (this._context.parameters.Height?.raw === '100%') {\n this._container.classList.add(this._getFullTabStyles());\n }\n this._initialized = true;\n }\n\n /**\n * @param {?() => void} [onRenderEmptyData] - Only called when the data parameter is set to `null`. This should usually not happen since it's a required parameter, but Power Apps can pass null in certain scenarios (for example on a form with new record).\n */\n public updateView(context: ComponentFramework.Context<IInputs, IOutputs>, onRenderComponent: (datasetControlProps: Omit<IDatasetControlProps, 'onGetControlComponent'>) => void, onRenderEmptyData?: () => void) {\n this._context = context;\n if (!context.parameters.Data.raw) {\n return onRenderEmptyData?.()\n }\n //if not yet initialized, initialize, can happen if we start without data\n if (!this._initialized) {\n this.init(context, this._container, this._state);\n }\n return onRenderComponent({\n onGetDatasetControlInstance: () => this._datasetControl\n });\n }\n\n public getDataset(): Dataset<IDataProvider> {\n return this._dataset;\n }\n\n public getDatasetControl(): IDatasetControl {\n return this._datasetControl;\n }\n\n private _isEditingEnabled(): boolean {\n return this._context.parameters.EnableEditing?.raw === 'true';\n }\n\n private _isAutoSaveEnabled(): boolean {\n return this._context.parameters.EnableAutoSave?.raw === 'true';\n }\n\n private _isCommandBarEnabled(): boolean {\n return this._context.parameters.EnableCommandBar?.raw !== 'false'\n }\n\n private _createDummyDatasetControl() {\n this._datasetControl = new DatasetControl({\n state: this._state,\n //@ts-ignore - typings\n controlId: this._context.utils._customControlProperties?.controlId,\n onGetPcfContext: () => this._context,\n onGetParameters: () => {\n return {\n ...this._getDatasetControlParameters(),\n Grid: new Dataset(new MemoryDataProvider({\n dataSource: [],\n metadata: {PrimaryIdAttribute: 'id'}\n }))\n }\n }\n });\n }\n\n private _getDatasetControlParameters(): IDatasetControlParameters {\n return {\n Grid: this.getDataset(),\n EnableEditing: {\n raw: this._isEditingEnabled()\n },\n EnableCommandBar: {\n raw: this._isCommandBarEnabled()\n },\n EnableAutoSave: {\n raw: this._isAutoSaveEnabled()\n },\n EnablePagination: {\n raw: this._context.parameters.EnablePagination?.raw !== 'false'\n },\n EnableFiltering: {\n raw: this._context.parameters.EnableFiltering?.raw !== 'false'\n },\n EnableSorting: {\n raw: this._context.parameters.EnableSorting?.raw !== 'false'\n },\n EnableNavigation: {\n raw: this._context.parameters.EnableNavigation?.raw !== 'false'\n },\n EnableOptionSetColors: {\n raw: this._context.parameters.EnableOptionSetColors?.raw === 'true'\n },\n SelectableRows: {\n raw: this._context.parameters.SelectableRows?.raw ?? 'single'\n },\n RowHeight: {\n raw: this._context.parameters.RowHeight?.raw ?? 42\n },\n //quick find is always handled by platform\n EnableQuickFind: {\n raw: this._context.parameters.EnableQuickFind?.raw === 'true'\n },\n EnableEditColumns: {\n raw: this._context.parameters.EnableEditColumns?.raw === 'true'\n },\n EnableAggregation: {\n raw: this._context.parameters.EnableAggregation?.raw === 'true',\n },\n EnableGrouping: {\n raw: this._context.parameters.EnableGrouping?.raw === 'true'\n },\n Height: {\n raw: this._context.parameters.Height?.raw ?? null\n },\n InlineRibbonButtonIds: {\n raw: this._context.parameters.InlineRibbonButtonIds?.raw ?? null\n },\n EnableZebra: {\n raw: this._context.parameters.EnableZebra?.raw !== 'false'\n },\n DefaultExpandedGroupLevel: {\n raw: this._context.parameters.DefaultExpandedGroupLevel?.raw ?? null\n },\n EnableRecordCount: {\n raw: this._context.parameters.EnableRecordCount?.raw !== 'false'\n },\n EnableGroupedColumnsPinning: {\n raw: this._context.parameters.EnableGroupedColumnsPinning?.raw !== 'false'\n },\n EnablePageSizeSwitcher: {\n raw: this._context.parameters.EnablePageSizeSwitcher?.raw !== 'false'\n },\n GroupingType: {\n raw: this._context.parameters.GroupingType?.raw ?? 'nested'\n },\n IsLocalHarnessDebugMode: this._context.parameters.IsLocalHarnessDebugMode,\n ClientApiWebresourceName: {\n raw: this._context.parameters.ClientApiWebresourceName?.raw ?? null\n },\n ClientApiFunctionName: {\n raw: this._context.parameters.ClientApiFunctionName?.raw ?? null\n }\n }\n }\n\n private _getDataProviderInstance(): IDataProvider {\n if (this._options?.CustomDataProviderClass) {\n return new this._options.CustomDataProviderClass(this._context.parameters.Data.raw);\n }\n switch (this._context.parameters.DataProvider.raw) {\n case \"FetchXml\": {\n return new FetchXmlDataProvider({\n fetchXml: this._context.parameters.Data.raw as string\n })\n }\n case 'Memory': {\n return new MemoryDataProvider({\n dataSource: this._context.parameters.Data.raw!,\n metadata: this._getEntityMetadata()\n\n });\n }\n }\n }\n\n private _getColumns() {\n try {\n const parameterColumns = this._context.parameters.Columns?.raw;\n const columns: IColumn[] = Array.isArray(parameterColumns) ? parameterColumns : JSON.parse(parameterColumns ?? \"[]\");\n return this._getMergedColumns(columns);\n }\n catch (err) {\n console.error(err);\n return this._dataset.columns;\n }\n }\n\n private _getMergedColumns(parameterColumns: IColumn[]): IColumn[] {\n const columnsMap = new Map<string, IColumn>(this._dataset.columns.map((col: IColumn) => [col.name, col]));\n const stateColumnsMap = new Map<string, IColumn>(this._state?.DatasetControlState?.columns?.map((col: IColumn) => [col.name, col]) ?? []);\n //if we have state, return it\n if (stateColumnsMap.size > 0) {\n return [...stateColumnsMap.values()];\n }\n //no state, save to load from parameters\n else {\n parameterColumns.forEach(parameterCol => {\n const col = columnsMap.get(parameterCol.name);\n if (col) {\n columnsMap.set(col.name, {\n ...col,\n ...parameterCol\n });\n } else {\n columnsMap.set(parameterCol.name, parameterCol);\n }\n });\n }\n return [...columnsMap.values()];\n }\n\n private _getEntityMetadata() {\n const parameterMetadata = this._context.parameters.EntityMetadata.raw;\n if (parameterMetadata) {\n return JSON.parse(parameterMetadata);\n }\n return {};\n }\n\n private _getFullTabStyles() {\n return mergeStyles({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1\n });\n }\n}"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VirtualDatasetAdapter.js","sources":["../../../../src/utils/dataset/adapters/VirtualDatasetAdapter.ts"],"sourcesContent":["import { mergeStyles } from \"@fluentui/react\";\nimport { Dataset, FetchXmlDataProvider, IColumn, IDataProvider, IDataset, Interceptors, IRawRecord, MemoryDataProvider } from \"@talxis/client-libraries\";\nimport { IDatasetControlParameters, IDatasetControlProps } from \"../../../components\";\nimport { DatasetControl, IDatasetControl } from \"../../dataset-control\";\n\ninterface IOutputs {\n DatasetControl?: any;\n}\n\ninterface IInputs {\n Data: ComponentFramework.PropertyTypes.StringProperty | {\n raw: IRawRecord[]\n }\n EntityMetadata: ComponentFramework.PropertyTypes.StringProperty;\n DataProvider: ComponentFramework.PropertyTypes.EnumProperty<\"Memory\" | \"FetchXml\">;\n EnableQuickFind?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n Columns?: ComponentFramework.PropertyTypes.StringProperty;\n Height?: ComponentFramework.PropertyTypes.StringProperty;\n RowHeight?: ComponentFramework.PropertyTypes.WholeNumberProperty;\n EnableEditing?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnablePagination?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableFiltering?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableSorting?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableNavigation?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableOptionSetColors?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableAggregation?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableGrouping?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableEditColumns?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableAutoSave?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableCommandBar?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableZebra?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableGroupedColumnsPinning?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnablePageSizeSwitcher?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableRecordCount?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n HomePageGridClientApiRibbonButtonId?: ComponentFramework.PropertyTypes.StringProperty;\n InlineRibbonButtonIds?: ComponentFramework.PropertyTypes.StringProperty;\n DefaultExpandedGroupLevel?: ComponentFramework.PropertyTypes.WholeNumberProperty;\n SelectableRows?: ComponentFramework.PropertyTypes.EnumProperty<\"none\" | \"single\" | \"multiple\">;\n GroupingType?: ComponentFramework.PropertyTypes.EnumProperty<\"nested\" | \"flat\">;\n IsLocalHarnessDebugMode?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n ClientApiWebresourceName?: ComponentFramework.PropertyTypes.StringProperty;\n ClientApiFunctionName?: ComponentFramework.PropertyTypes.StringProperty;\n}\n\ninterface IVirtualDatasetAdapterOptions {\n /**\n * Runs a promise that is awaited when the dataset control is initialized, before loading the first data.\n */\n onInitialize?: (dataset: IDataset) => Promise<void>;\n /**\n * If provided, this function is called when the dataset is initialized and awaited before loading first data.\n */\n CustomDataProviderClass?: new (...args: any) => IDataProvider;\n}\n\n\n/**\n * Helper class that holds boilerplate code for handling a virtual dataset in PCF, like syncing data, columns, and metadata from parameters.\n *\n */\nexport class VirtualDatasetAdapter {\n private _context!: ComponentFramework.Context<IInputs, IOutputs>;\n private _dataset!: Dataset<IDataProvider>;\n private _container!: HTMLDivElement;\n private _options?: IVirtualDatasetAdapterOptions\n private _initialized: boolean = false;\n private _state: ComponentFramework.Dictionary = {};\n private _datasetControl!: IDatasetControl;\n\n constructor(options?: IVirtualDatasetAdapterOptions) {\n this._options = options;\n }\n\n public init(context: ComponentFramework.Context<IInputs, IOutputs>, container: HTMLDivElement, state: ComponentFramework.Dictionary) {\n this._container = container;\n this._context = context;\n this._state = state ?? {};\n if (!context.parameters.Data.raw) {\n this._createDummyDatasetControl();\n return this;\n }\n const dataProvider = this._getDataProviderInstance();\n this._dataset = new Dataset(dataProvider);\n //loads parameter columns\n this._dataset.setMetadata(this._getEntityMetadata());\n this._dataset.setDataSource(context.parameters.Data.raw);\n this._datasetControl = new DatasetControl({\n state: this._state,\n //@ts-ignore - typings\n controlId: this._context.utils._customControlProperties?.controlId,\n onGetPcfContext: () => this._context,\n onGetParameters: () => this._getDatasetControlParameters()\n });\n this._datasetControl.setInterceptor('onInitialize', async (parameters, defaultAction) => {\n //preloads dataset\n await defaultAction(parameters);\n //sets columns after preload\n this._dataset.setColumns(this._getColumns());\n await this._options?.onInitialize?.(this.getDataset());\n });\n if (this._context.parameters.Height?.raw === '100%') {\n this._container.classList.add(this._getFullTabStyles());\n }\n this._initialized = true;\n }\n\n /**\n * @param {?() => void} [onRenderEmptyData] - Only called when the data parameter is set to `null`. This should usually not happen since it's a required parameter, but Power Apps can pass null in certain scenarios (for example on a form with new record).\n */\n public updateView(context: ComponentFramework.Context<IInputs, IOutputs>, onRenderComponent: (datasetControlProps: Omit<IDatasetControlProps, 'onGetControlComponent'>) => void, onRenderEmptyData?: () => void) {\n this._context = context;\n if (!context.parameters.Data.raw) {\n return onRenderEmptyData?.()\n }\n //if not yet initialized, initialize, can happen if we start without data\n if (!this._initialized) {\n this.init(context, this._container, this._state);\n }\n return onRenderComponent({\n onGetDatasetControlInstance: () => this._datasetControl\n });\n }\n\n public getDataset(): Dataset<IDataProvider> {\n return this._dataset;\n }\n\n public getDatasetControl(): IDatasetControl {\n return this._datasetControl;\n }\n\n private _isEditingEnabled(): boolean {\n return this._context.parameters.EnableEditing?.raw === 'true';\n }\n\n private _isAutoSaveEnabled(): boolean {\n return this._context.parameters.EnableAutoSave?.raw === 'true';\n }\n\n private _isCommandBarEnabled(): boolean {\n return this._context.parameters.EnableCommandBar?.raw !== 'false'\n }\n\n private _createDummyDatasetControl() {\n this._datasetControl = new DatasetControl({\n state: this._state,\n //@ts-ignore - typings\n controlId: this._context.utils._customControlProperties?.controlId,\n onGetPcfContext: () => this._context,\n onGetParameters: () => {\n return {\n ...this._getDatasetControlParameters(),\n Grid: new Dataset(new MemoryDataProvider({\n dataSource: [],\n metadata: {PrimaryIdAttribute: 'id'}\n }))\n }\n }\n });\n }\n\n private _getDatasetControlParameters(): IDatasetControlParameters {\n return {\n Grid: this.getDataset(),\n EnableEditing: {\n raw: this._isEditingEnabled()\n },\n EnableCommandBar: {\n raw: this._isCommandBarEnabled()\n },\n EnableAutoSave: {\n raw: this._isAutoSaveEnabled()\n },\n EnablePagination: {\n raw: this._context.parameters.EnablePagination?.raw !== 'false'\n },\n EnableFiltering: {\n raw: this._context.parameters.EnableFiltering?.raw !== 'false'\n },\n EnableSorting: {\n raw: this._context.parameters.EnableSorting?.raw !== 'false'\n },\n EnableNavigation: {\n raw: this._context.parameters.EnableNavigation?.raw !== 'false'\n },\n EnableOptionSetColors: {\n raw: this._context.parameters.EnableOptionSetColors?.raw === 'true'\n },\n SelectableRows: {\n raw: this._context.parameters.SelectableRows?.raw ?? 'single'\n },\n RowHeight: {\n raw: this._context.parameters.RowHeight?.raw ?? 42\n },\n //quick find is always handled by platform\n EnableQuickFind: {\n raw: this._context.parameters.EnableQuickFind?.raw === 'true'\n },\n EnableEditColumns: {\n raw: this._context.parameters.EnableEditColumns?.raw === 'true'\n },\n EnableAggregation: {\n raw: this._context.parameters.EnableAggregation?.raw === 'true',\n },\n EnableGrouping: {\n raw: this._context.parameters.EnableGrouping?.raw === 'true'\n },\n Height: {\n raw: this._context.parameters.Height?.raw ?? null\n },\n InlineRibbonButtonIds: {\n raw: this._context.parameters.InlineRibbonButtonIds?.raw ?? null\n },\n EnableZebra: {\n raw: this._context.parameters.EnableZebra?.raw !== 'false'\n },\n DefaultExpandedGroupLevel: {\n raw: this._context.parameters.DefaultExpandedGroupLevel?.raw ?? null\n },\n EnableRecordCount: {\n raw: this._context.parameters.EnableRecordCount?.raw !== 'false'\n },\n EnableGroupedColumnsPinning: {\n raw: this._context.parameters.EnableGroupedColumnsPinning?.raw !== 'false'\n },\n EnablePageSizeSwitcher: {\n raw: this._context.parameters.EnablePageSizeSwitcher?.raw !== 'false'\n },\n GroupingType: {\n raw: this._context.parameters.GroupingType?.raw ?? 'nested'\n },\n IsLocalHarnessDebugMode: this._context.parameters.IsLocalHarnessDebugMode,\n ClientApiWebresourceName: {\n raw: this._context.parameters.ClientApiWebresourceName?.raw ?? null\n },\n ClientApiFunctionName: {\n raw: this._context.parameters.ClientApiFunctionName?.raw ?? null\n }\n }\n }\n\n private _getDataProviderInstance(): IDataProvider {\n if (this._options?.CustomDataProviderClass) {\n return new this._options.CustomDataProviderClass(this._context.parameters.Data.raw);\n }\n switch (this._context.parameters.DataProvider.raw) {\n case \"FetchXml\": {\n return new FetchXmlDataProvider({\n fetchXml: this._context.parameters.Data.raw as string\n })\n }\n case 'Memory': {\n return new MemoryDataProvider({\n dataSource: this._context.parameters.Data.raw!,\n metadata: this._getEntityMetadata()\n });\n }\n }\n }\n\n private _getColumns() {\n try {\n const parameterColumns = this._context.parameters.Columns?.raw;\n const columns: IColumn[] = Array.isArray(parameterColumns) ? parameterColumns : JSON.parse(parameterColumns ?? \"[]\");\n return this._getMergedColumns(columns);\n }\n catch (err) {\n console.error(err);\n return this._dataset.columns;\n }\n }\n\n private _getMergedColumns(parameterColumns: IColumn[]): IColumn[] {\n const columnsMap = new Map<string, IColumn>(this._dataset.columns.map((col: IColumn) => [col.name, col]));\n const stateColumnsMap = new Map<string, IColumn>(this._state?.DatasetControlState?.columns?.map((col: IColumn) => [col.name, col]) ?? []);\n //if we have state, return it\n if (stateColumnsMap.size > 0) {\n return [...stateColumnsMap.values()];\n }\n //no state, save to load from parameters\n else {\n parameterColumns.forEach(parameterCol => {\n const col = columnsMap.get(parameterCol.name);\n if (col) {\n columnsMap.set(col.name, {\n ...col,\n ...parameterCol\n });\n } else {\n columnsMap.set(parameterCol.name, parameterCol);\n }\n });\n }\n return [...columnsMap.values()];\n }\n\n private _getEntityMetadata() {\n const parameterMetadata = this._context.parameters.EntityMetadata.raw;\n if (parameterMetadata) {\n return JSON.parse(parameterMetadata);\n }\n return {};\n }\n\n private _getFullTabStyles() {\n return mergeStyles({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1\n });\n }\n}"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@talxis/base-controls",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2606.3",
|
|
4
4
|
"description": "Set of React components that natively work with Power Apps Component Framework APIs.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -84,8 +84,8 @@
|
|
|
84
84
|
"@dnd-kit/sortable": "^10.0.0",
|
|
85
85
|
"@dnd-kit/utilities": "^3.2.2",
|
|
86
86
|
"@fluentui/react-migration-v8-v9": "^9.6.20",
|
|
87
|
-
"@talxis/client-libraries": "1.
|
|
88
|
-
"@talxis/client-metadata": "^0.0.
|
|
87
|
+
"@talxis/client-libraries": "1.2606.1",
|
|
88
|
+
"@talxis/client-metadata": "^0.0.4",
|
|
89
89
|
"color": "^4.2.3",
|
|
90
90
|
"dayjs": "^1.11.10",
|
|
91
91
|
"debounce": "^2.2.0",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
},
|
|
105
105
|
"peerDependencies": {
|
|
106
106
|
"@fluentui/react": "<=8.121.5",
|
|
107
|
-
"@talxis/react-components": "1.
|
|
107
|
+
"@talxis/react-components": "1.2505.2",
|
|
108
108
|
"react": "^16.8.6 || ^17.0.2",
|
|
109
109
|
"react-dom": "^16.8.6 || ^17.0.2"
|
|
110
110
|
}
|