@talxis/base-controls 1.2410.3 → 1.2410.4

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.
Files changed (87) hide show
  1. package/README.md +20 -11
  2. package/dist/components/DatasetControl/DatasetControl.d.ts +3 -0
  3. package/dist/components/DatasetControl/DatasetControl.js +63 -0
  4. package/dist/components/DatasetControl/DatasetControl.js.map +1 -0
  5. package/dist/components/DatasetControl/hooks/useRerender.d.ts +1 -0
  6. package/dist/components/DatasetControl/hooks/useRerender.js +9 -0
  7. package/dist/components/DatasetControl/hooks/useRerender.js.map +1 -0
  8. package/dist/components/DatasetControl/index.d.ts +2 -0
  9. package/dist/components/DatasetControl/index.js +2 -0
  10. package/dist/components/DatasetControl/index.js.map +1 -0
  11. package/dist/components/DatasetControl/interfaces.d.ts +10 -0
  12. package/dist/components/DatasetControl/styles.d.ts +8 -0
  13. package/dist/components/DatasetControl/styles.js +17 -0
  14. package/dist/components/DatasetControl/styles.js.map +1 -0
  15. package/dist/components/DatasetControl/translations.d.ts +10 -0
  16. package/dist/components/DatasetControl/translations.js +7 -0
  17. package/dist/components/DatasetControl/translations.js.map +1 -0
  18. package/dist/components/Decimal/Decimal.js +1 -1
  19. package/dist/components/Decimal/Decimal.js.map +1 -1
  20. package/dist/components/Duration/Duration.js +1 -1
  21. package/dist/components/Duration/Duration.js.map +1 -1
  22. package/dist/components/Grid/Grid.js +9 -2
  23. package/dist/components/Grid/Grid.js.map +1 -1
  24. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +21 -46
  25. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
  26. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.d.ts +0 -1
  27. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +7 -7
  28. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js.map +1 -1
  29. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +0 -2
  30. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +0 -7
  31. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
  32. package/dist/components/Grid/core/components/AgGrid/styles.d.ts +1 -4
  33. package/dist/components/Grid/core/components/AgGrid/styles.js +6 -9
  34. package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -1
  35. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +0 -2
  36. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +1 -1
  37. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +16 -4
  38. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +1 -1
  39. package/dist/components/Grid/core/components/Component/model/Component.js +7 -2
  40. package/dist/components/Grid/core/components/Component/model/Component.js.map +1 -1
  41. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +3 -0
  42. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js.map +1 -1
  43. package/dist/components/Grid/core/constants.d.ts +1 -0
  44. package/dist/components/Grid/core/constants.js +4 -0
  45. package/dist/components/Grid/core/constants.js.map +1 -0
  46. package/dist/components/Grid/core/controllers/useGridController.d.ts +0 -2
  47. package/dist/components/Grid/core/controllers/useGridController.js +1 -17
  48. package/dist/components/Grid/core/controllers/useGridController.js.map +1 -1
  49. package/dist/components/Grid/core/model/Grid.d.ts +10 -3
  50. package/dist/components/Grid/core/model/Grid.js +45 -16
  51. package/dist/components/Grid/core/model/Grid.js.map +1 -1
  52. package/dist/components/Grid/core/services/KeyListener.d.ts +8 -0
  53. package/dist/components/Grid/core/services/KeyListener.js +22 -0
  54. package/dist/components/Grid/core/services/KeyListener.js.map +1 -0
  55. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +2 -2
  56. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js.map +1 -1
  57. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js.map +1 -1
  58. package/dist/components/Grid/interfaces.d.ts +2 -2
  59. package/dist/components/Grid/paging/components/Paging/Paging.js +7 -1
  60. package/dist/components/Grid/paging/components/Paging/Paging.js.map +1 -1
  61. package/dist/components/Grid/paging/controllers/usePagingController.d.ts +2 -1
  62. package/dist/components/Grid/paging/controllers/usePagingController.js +1 -0
  63. package/dist/components/Grid/paging/controllers/usePagingController.js.map +1 -1
  64. package/dist/components/Grid/paging/model/Paging.d.ts +2 -1
  65. package/dist/components/Grid/paging/model/Paging.js +22 -4
  66. package/dist/components/Grid/paging/model/Paging.js.map +1 -1
  67. package/dist/components/Grid/selection/controllers/useSelectionController.js +7 -3
  68. package/dist/components/Grid/selection/controllers/useSelectionController.js.map +1 -1
  69. package/dist/components/Grid/selection/model/Selection.d.ts +1 -1
  70. package/dist/components/Grid/selection/model/Selection.js +7 -4
  71. package/dist/components/Grid/selection/model/Selection.js.map +1 -1
  72. package/dist/components/Grid/sorting/Sorting.js +2 -3
  73. package/dist/components/Grid/sorting/Sorting.js.map +1 -1
  74. package/dist/components/Grid/translations.d.ts +4 -0
  75. package/dist/components/Grid/translations.js +2 -1
  76. package/dist/components/Grid/translations.js.map +1 -1
  77. package/dist/index.d.ts +24 -7
  78. package/dist/index.js +1 -1
  79. package/dist/utils/index.d.ts +0 -1
  80. package/dist/utils/index.js +0 -1
  81. package/dist/utils/index.js.map +1 -1
  82. package/package.json +3 -3
  83. package/dist/components/Grid/core/hooks/useRerender.js +0 -13
  84. package/dist/components/Grid/core/hooks/useRerender.js.map +0 -1
  85. package/dist/utils/Numeral.d.ts +0 -6
  86. package/dist/utils/Numeral.js +0 -64
  87. package/dist/utils/Numeral.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RecordUpdateService.js","sources":["../../../../../../../src/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.ts"],"sourcesContent":["import equal from \"fast-deep-equal/es6\";\nimport { cloneDeep } from \"lodash\";\nimport numeral from \"numeral\";\nimport { Numeral } from \"../../../../../../utils/Numeral\";\nimport { IEntityColumn, IEntityRecord } from \"../../../../interfaces\";\nimport { ColumnValidation } from \"../../../../validation/model/ColumnValidation\";\nimport { DataType } from \"../../../enums/DataType\";\nimport { Grid } from \"../../../model/Grid\";\nimport { GridDependency } from \"../../../model/GridDependency\";\n\nexport interface IUpdatedRecord extends Omit<IEntityRecord, 'save'> {\n columns: Map<string, IEntityColumn>,\n isValid: (columnKey: string) => boolean,\n getOriginalValue: (columnKey: string) => any;\n getOriginalFormattedValue: (columnKey: string) => any;\n getOriginalFormattedPrimaryNameValue: () => any;\n save: () => Promise<boolean>,\n clear: () => void;\n}\n\nexport class RecordUpdateService extends GridDependency {\n private _updatedRecords: Map<string, IUpdatedRecord> = new Map();\n private _internalRecordMap: Map<string, IEntityRecord> = new Map();\n\n constructor(grid: Grid) {\n super(grid);\n const updatedRecordsFromState: IUpdatedRecord[] | undefined = this._grid.state?.['__updatedRecords'];\n //@ts-ignore - getRecordId could be undefined if it comes from serialized state\n if(updatedRecordsFromState && updatedRecordsFromState?.length > 0 && updatedRecordsFromState[0].getRecordId) {\n this._updatedRecords = new Map(updatedRecordsFromState.map(x => {\n const originalClear = x.clear;\n const originalSetValue = x.setValue;\n const originalSave = x.save;\n x.clear = () => {\n this._updatedRecords.delete(x.getRecordId());\n originalClear();\n this._pcfContext.factory.requestRender();\n }\n x.save = async () => {\n const result = await originalSave();\n if(result) {\n this._updatedRecords.delete(x.getRecordId());\n }\n [...x.columns.values()].map(col => {\n this._internalRecordMap.get(x.getRecordId())?.setValue(col.name, x.getValue(col.name));\n })\n return result;\n }\n x.setValue = (columnName: string, value: any) => {\n originalSetValue(columnName, value);\n this._pcfContext.factory.requestRender();\n }\n return [x.getRecordId(), x]\n }))\n }\n }\n\n public get updatedRecords() {\n if (this._isReadOnlyChangeEditor() && this._updatedRecords.size === 0) {\n const record = this._grid.records[0];\n for (const column of this._grid.columns) {\n this.record(record.getRecordId()).setValue(column.key, record.getValue(column.key), true);\n }\n }\n return [...this._updatedRecords.values()];\n }\n\n public get isDirty() {\n return this._updatedRecords.size > 0;\n }\n\n public get hasInvalidRecords() {\n return [...this._updatedRecords.values()].find(x => {\n for(const column of x.columns.values()) {\n if(!x.isValid(column.name)) {\n return true;\n }\n }\n return false;\n }) ? true : false;\n }\n\n public record(recordId: string) {\n return {\n get: () => this._updatedRecords.get(recordId),\n setValue: (columnKey: string, value: any, doNotPropagateToDatasetRecord?: boolean) => {\n if(!doNotPropagateToDatasetRecord && this._isEqual(columnKey, this._internalRecordMap.get(recordId)!.getValue(columnKey), value)) {\n return;\n }\n const updatedRecord = this._updatedRecords.get(recordId);\n if (!updatedRecord) {\n const deepCopiedRecord = cloneDeep(this._internalRecordMap.get(recordId)!);\n this._updatedRecords.set(recordId, {\n columns: new Map([[columnKey, this._getEntityColumnByKey(columnKey)]]),\n getRecordId: () => recordId,\n getValue: (columnKey: string) => this._internalRecordMap.get(recordId)?.getValue(columnKey)!,\n getFormattedValue: (columnKey: string) => this._internalRecordMap.get(recordId)?.getFormattedValue(columnKey)!,\n getNamedReference: () => deepCopiedRecord.getNamedReference(),\n getOriginalValue: (columnKey: string) => deepCopiedRecord.getValue(columnKey),\n getOriginalFormattedValue: (columnKey: string) => deepCopiedRecord.getFormattedValue(columnKey),\n getOriginalFormattedPrimaryNameValue: () => {\n let primaryColumn = this._dataset.columns.find(x => x.isPrimary);\n if(!primaryColumn) {\n primaryColumn = this._dataset.columns[0];\n }\n let value = deepCopiedRecord.getFormattedValue(primaryColumn.name);\n if(!value) {\n value = this._grid.labels[\"no-name\"]();\n }\n return value;\n },\n setValue: (columnKey: string, value: any) => {\n this._internalRecordMap.get(recordId)?.setValue(columnKey, value);\n },\n isValid: (columnKey: string) => {\n const column = this._grid.columns.find(x => x.key === columnKey);\n if(!column) {\n return true;\n }\n const [result, message] = new ColumnValidation(this._grid, column).validate(this._internalRecordMap.get(recordId)?.getValue(columnKey)!)\n return result;\n },\n clear: () => {\n const updatedRecord = this._updatedRecords.get(recordId);\n const columns = [...updatedRecord!.columns.values()];\n this._updatedRecords.delete(recordId);\n for(const column of columns) {\n this._internalRecordMap.get(recordId)?.setValue(column.name, deepCopiedRecord.getValue(column.name));\n }\n },\n save: async () => {\n try {\n await this._internalRecordMap.get(recordId)?.save();\n this._updatedRecords.delete(recordId);\n }\n catch (err) {\n this._grid.pcfContext.navigation.openErrorDialog({\n message: 'An error occurred during saving. Some of you changes might now have been saved.',\n //@ts-ignore\n details: err.message\n })\n return false;\n }\n return true;\n }\n })\n }\n else {\n updatedRecord.columns.set(columnKey, this._getEntityColumnByKey(columnKey))\n }\n if (!doNotPropagateToDatasetRecord) {\n const updatedRecord = this._updatedRecords.get(recordId);\n updatedRecord?.setValue(columnKey, value);\n }\n }\n }\n }\n\n public async saveAll(): Promise<boolean> {\n const savePromises: Promise<boolean>[] = [];\n for (const record of this._updatedRecords.values()) {\n savePromises.push(record.save());\n }\n const result = await Promise.all(savePromises);\n return !result.find(x => x === false)\n }\n public async clearAll() {\n for (const record of this._updatedRecords.values()) {\n record.clear();\n }\n }\n\n public onDependenciesUpdated(): void {\n for (const [recordId, record] of Object.entries(this._grid.dataset.records)) {\n this._internalRecordMap.set(recordId, record);\n }\n }\n private _getEntityColumnByKey(columnKey: string) {\n const gridColumn = this._grid.columns.find(x => x.key === columnKey)!;\n return this._dataset.columns.find(x => {\n if (!gridColumn.entityAliasName) {\n return x.name === gridColumn.attributeName;\n }\n return x.name === gridColumn.attributeName && x.alias === gridColumn.entityAliasName;\n })!;\n }\n private _isReadOnlyChangeEditor() {\n return this._grid.props.parameters.ChangeEditorMode?.raw === 'read';\n }\n private _isEqual(columnKey: string, oldValue: any, newValue: any) {\n const column = this._grid.columns.find(x => x.key === columnKey);\n //skip in special case for currency\n //PCF has no info about the currency, which sometimes make it to ouput change\n if(column?.dataType === DataType.CURRENCY) {\n Numeral.currency(this._grid.pcfContext.userSettings.numberFormattingInfo);\n newValue = numeral(newValue).value();\n if(newValue === oldValue) {\n return true\n }\n\n }\n if(oldValue == newValue) {\n return true;\n }\n return equal(oldValue, newValue);\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RecordUpdateService.js","sources":["../../../../../../../src/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.ts"],"sourcesContent":["import equal from \"fast-deep-equal/es6\";\nimport { cloneDeep } from \"lodash\";\nimport numeral from \"numeral\";\nimport { IEntityColumn, IEntityRecord } from \"../../../../interfaces\";\nimport { ColumnValidation } from \"../../../../validation/model/ColumnValidation\";\nimport { DataType } from \"../../../enums/DataType\";\nimport { Grid } from \"../../../model/Grid\";\nimport { GridDependency } from \"../../../model/GridDependency\";\nimport { Numeral } from \"@talxis/client-libraries\";\n\nexport interface IUpdatedRecord extends Omit<IEntityRecord, 'save'> {\n columns: Map<string, IEntityColumn>,\n isValid: (columnKey: string) => boolean,\n getOriginalValue: (columnKey: string) => any;\n getOriginalFormattedValue: (columnKey: string) => any;\n getOriginalFormattedPrimaryNameValue: () => any;\n save: () => Promise<boolean>,\n clear: () => void;\n}\n\nexport class RecordUpdateService extends GridDependency {\n private _updatedRecords: Map<string, IUpdatedRecord> = new Map();\n private _internalRecordMap: Map<string, IEntityRecord> = new Map();\n\n constructor(grid: Grid) {\n super(grid);\n const updatedRecordsFromState: IUpdatedRecord[] | undefined = this._grid.state?.['__updatedRecords'];\n //@ts-ignore - getRecordId could be undefined if it comes from serialized state\n if(updatedRecordsFromState && updatedRecordsFromState?.length > 0 && updatedRecordsFromState[0].getRecordId) {\n this._updatedRecords = new Map(updatedRecordsFromState.map(x => {\n const originalClear = x.clear;\n const originalSetValue = x.setValue;\n const originalSave = x.save;\n x.clear = () => {\n this._updatedRecords.delete(x.getRecordId());\n originalClear();\n this._pcfContext.factory.requestRender();\n }\n x.save = async () => {\n const result = await originalSave();\n if(result) {\n this._updatedRecords.delete(x.getRecordId());\n }\n [...x.columns.values()].map(col => {\n this._internalRecordMap.get(x.getRecordId())?.setValue(col.name, x.getValue(col.name));\n })\n return result;\n }\n x.setValue = (columnName: string, value: any) => {\n originalSetValue(columnName, value);\n this._pcfContext.factory.requestRender();\n }\n return [x.getRecordId(), x]\n }))\n }\n }\n\n public get updatedRecords() {\n if (this._isReadOnlyChangeEditor() && this._updatedRecords.size === 0) {\n const record = this._grid.records[0];\n for (const column of this._grid.columns) {\n this.record(record.getRecordId()).setValue(column.key, record.getValue(column.key), true);\n }\n }\n return [...this._updatedRecords.values()];\n }\n\n public get isDirty() {\n return this._updatedRecords.size > 0;\n }\n\n public get hasInvalidRecords() {\n return [...this._updatedRecords.values()].find(x => {\n for(const column of x.columns.values()) {\n if(!x.isValid(column.name)) {\n return true;\n }\n }\n return false;\n }) ? true : false;\n }\n\n public record(recordId: string) {\n return {\n get: () => this._updatedRecords.get(recordId),\n setValue: (columnKey: string, value: any, doNotPropagateToDatasetRecord?: boolean) => {\n if(!doNotPropagateToDatasetRecord && this._isEqual(columnKey, this._internalRecordMap.get(recordId)!.getValue(columnKey), value)) {\n return;\n }\n const updatedRecord = this._updatedRecords.get(recordId);\n if (!updatedRecord) {\n const deepCopiedRecord = cloneDeep(this._internalRecordMap.get(recordId)!);\n this._updatedRecords.set(recordId, {\n columns: new Map([[columnKey, this._getEntityColumnByKey(columnKey)]]),\n getRecordId: () => recordId,\n getValue: (columnKey: string) => this._internalRecordMap.get(recordId)?.getValue(columnKey)!,\n getFormattedValue: (columnKey: string) => this._internalRecordMap.get(recordId)?.getFormattedValue(columnKey)!,\n getNamedReference: () => deepCopiedRecord.getNamedReference(),\n getOriginalValue: (columnKey: string) => deepCopiedRecord.getValue(columnKey),\n getOriginalFormattedValue: (columnKey: string) => deepCopiedRecord.getFormattedValue(columnKey),\n getOriginalFormattedPrimaryNameValue: () => {\n let primaryColumn = this._dataset.columns.find(x => x.isPrimary);\n if(!primaryColumn) {\n primaryColumn = this._dataset.columns[0];\n }\n let value = deepCopiedRecord.getFormattedValue(primaryColumn.name);\n if(!value) {\n value = this._grid.labels[\"no-name\"]();\n }\n return value;\n },\n setValue: (columnKey: string, value: any) => {\n this._internalRecordMap.get(recordId)?.setValue(columnKey, value);\n },\n isValid: (columnKey: string) => {\n const column = this._grid.columns.find(x => x.key === columnKey);\n if(!column) {\n return true;\n }\n const [result, message] = new ColumnValidation(this._grid, column).validate(this._internalRecordMap.get(recordId)?.getValue(columnKey)!)\n return result;\n },\n clear: () => {\n const updatedRecord = this._updatedRecords.get(recordId);\n const columns = [...updatedRecord!.columns.values()];\n this._updatedRecords.delete(recordId);\n for(const column of columns) {\n this._internalRecordMap.get(recordId)?.setValue(column.name, deepCopiedRecord.getValue(column.name));\n }\n },\n save: async () => {\n try {\n await this._internalRecordMap.get(recordId)?.save();\n this._updatedRecords.delete(recordId);\n }\n catch (err) {\n this._grid.pcfContext.navigation.openErrorDialog({\n message: 'An error occurred during saving. Some of you changes might now have been saved.',\n //@ts-ignore\n details: err.message\n })\n return false;\n }\n return true;\n }\n })\n }\n else {\n updatedRecord.columns.set(columnKey, this._getEntityColumnByKey(columnKey))\n }\n if (!doNotPropagateToDatasetRecord) {\n const updatedRecord = this._updatedRecords.get(recordId);\n updatedRecord?.setValue(columnKey, value);\n }\n }\n }\n }\n\n public async saveAll(): Promise<boolean> {\n const savePromises: Promise<boolean>[] = [];\n for (const record of this._updatedRecords.values()) {\n savePromises.push(record.save());\n }\n const result = await Promise.all(savePromises);\n return !result.find(x => x === false)\n }\n public async clearAll() {\n for (const record of this._updatedRecords.values()) {\n record.clear();\n }\n }\n\n public onDependenciesUpdated(): void {\n for (const [recordId, record] of Object.entries(this._grid.dataset.records)) {\n this._internalRecordMap.set(recordId, record);\n }\n }\n private _getEntityColumnByKey(columnKey: string) {\n const gridColumn = this._grid.columns.find(x => x.key === columnKey)!;\n return this._dataset.columns.find(x => {\n if (!gridColumn.entityAliasName) {\n return x.name === gridColumn.attributeName;\n }\n return x.name === gridColumn.key;\n })!;\n }\n private _isReadOnlyChangeEditor() {\n return this._grid.props.parameters.ChangeEditorMode?.raw === 'read';\n }\n private _isEqual(columnKey: string, oldValue: any, newValue: any) {\n const column = this._grid.columns.find(x => x.key === columnKey);\n //skip in special case for currency\n //PCF has no info about the currency, which sometimes make it to ouput change\n if(column?.dataType === DataType.CURRENCY) {\n Numeral.currency(this._grid.pcfContext.userSettings.numberFormattingInfo);\n newValue = numeral(newValue).value();\n if(newValue === oldValue) {\n return true\n }\n\n }\n if(oldValue == newValue) {\n return true;\n }\n return equal(oldValue, newValue);\n }\n}"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useColumnFilterConditionController.js","sources":["../../../../../src/components/Grid/filtering/controller/useColumnFilterConditionController.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { DatasetConditionOperator } from \"../../core/enums/ConditionOperator\";\nimport { useGridInstance } from \"../../core/hooks/useGridInstance\"\nimport { useRefreshCallback } from \"../../core/hooks/useRefreshCallback\";\nimport { useRerender } from \"../../core/hooks/useRerender\";\nimport { IGridColumn } from \"../../core/interfaces/IGridColumn\";\nimport { Condition } from \"../model/Condition\";\n\nexport interface IColumnFilterConditionController {\n isAppliedToDataset: boolean,\n column: IGridColumn,\n value: {\n valid: boolean;\n get: () => any;\n set: (value: any) => void;\n }\n operator: {\n get: () => DatasetConditionOperator | undefined;\n set: (operator: DatasetConditionOperator) => void;\n },\n remove: () => void;\n save: () => Promise<boolean>;\n clear: () => void;\n}\n\nexport const useColumnFilterConditionController = (column: IGridColumn): IColumnFilterConditionController | null => {\n const filtering = useGridInstance().filtering;\n const conditionPromise = useMemo(() => filtering.condition(column), []);\n const [controller, setController] = useState<IColumnFilterConditionController>();\n \n const refresh = async () => {\n const condition = await conditionPromise;\n setController(prevState => ({\n ...prevState,\n isAppliedToDataset: condition.isAppliedToDataset,\n column: condition?.column,\n operator: {\n get: () => condition.operator.get(),\n set: (operator) => condition.operator.set(operator)\n },\n value: {\n valid: condition.isValid,\n get: () => condition.value.get(),\n set: (value) => condition.value.set(value)\n },\n remove: () => condition?.remove(),\n save: () => condition?.save(),\n clear: () => condition?.clear()\n }))\n }\n useRefreshCallback(conditionPromise, refresh);\n useEffect(() => {\n (async () => {\n refresh();\n })();\n }, []);\n\n\n if(!controller) {\n return null;\n }\n return controller;\n}"],"names":[],"mappings":";;;;AAyBa,MAAA,kCAAkC,GAAG,CAAC,MAAmB,KAA6C;AAC/G,IAAA,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,SAAS,CAAC;AAC9C,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,EAAoC,CAAC;AAEjF,IAAA,MAAM,OAAO,GAAG,YAAW;AACvB,QAAA,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;AACzC,QAAA,aAAa,CAAC,SAAS,KAAK;AACxB,YAAA,GAAG,SAAS;YACZ,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,MAAM,EAAE,SAAS,EAAE,MAAM;AACzB,YAAA,QAAQ,EAAE;gBACN,GAAG,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;AACnC,gBAAA,GAAG,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtD,aAAA;AACD,YAAA,KAAK,EAAE;gBACH,KAAK,EAAE,SAAS,CAAC,OAAO;gBACxB,GAAG,EAAE,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;AAChC,gBAAA,GAAG,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7C,aAAA;AACD,YAAA,MAAM,EAAE,MAAM,SAAS,EAAE,MAAM,EAAE;AACjC,YAAA,IAAI,EAAE,MAAM,SAAS,EAAE,IAAI,EAAE;AAC7B,YAAA,KAAK,EAAE,MAAM,SAAS,EAAE,KAAK,EAAE;AAClC,SAAA,CAAC,CAAC,CAAA;AACP,KAAC,CAAA;AACD,IAAA,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC9C,SAAS,CAAC,MAAK;QACX,CAAC,YAAW;AACR,YAAA,OAAO,EAAE,CAAC;SACb,GAAG,CAAC;KACR,EAAE,EAAE,CAAC,CAAC;IAGP,IAAG,CAAC,UAAU,EAAE;AACZ,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACD,IAAA,OAAO,UAAU,CAAC;AACtB;;;;"}
1
+ {"version":3,"file":"useColumnFilterConditionController.js","sources":["../../../../../src/components/Grid/filtering/controller/useColumnFilterConditionController.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { DatasetConditionOperator } from \"../../core/enums/ConditionOperator\";\nimport { useGridInstance } from \"../../core/hooks/useGridInstance\"\nimport { useRefreshCallback } from \"../../core/hooks/useRefreshCallback\";\nimport { IGridColumn } from \"../../core/interfaces/IGridColumn\";\n\nexport interface IColumnFilterConditionController {\n isAppliedToDataset: boolean,\n column: IGridColumn,\n value: {\n valid: boolean;\n get: () => any;\n set: (value: any) => void;\n }\n operator: {\n get: () => DatasetConditionOperator | undefined;\n set: (operator: DatasetConditionOperator) => void;\n },\n remove: () => void;\n save: () => Promise<boolean>;\n clear: () => void;\n}\n\nexport const useColumnFilterConditionController = (column: IGridColumn): IColumnFilterConditionController | null => {\n const filtering = useGridInstance().filtering;\n const conditionPromise = useMemo(() => filtering.condition(column), []);\n const [controller, setController] = useState<IColumnFilterConditionController>();\n \n const refresh = async () => {\n const condition = await conditionPromise;\n setController(prevState => ({\n ...prevState,\n isAppliedToDataset: condition.isAppliedToDataset,\n column: condition?.column,\n operator: {\n get: () => condition.operator.get(),\n set: (operator) => condition.operator.set(operator)\n },\n value: {\n valid: condition.isValid,\n get: () => condition.value.get(),\n set: (value) => condition.value.set(value)\n },\n remove: () => condition?.remove(),\n save: () => condition?.save(),\n clear: () => condition?.clear()\n }))\n }\n useRefreshCallback(conditionPromise, refresh);\n useEffect(() => {\n (async () => {\n refresh();\n })();\n }, []);\n\n\n if(!controller) {\n return null;\n }\n return controller;\n}"],"names":[],"mappings":";;;;AAuBa,MAAA,kCAAkC,GAAG,CAAC,MAAmB,KAA6C;AAC/G,IAAA,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,SAAS,CAAC;AAC9C,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,EAAoC,CAAC;AAEjF,IAAA,MAAM,OAAO,GAAG,YAAW;AACvB,QAAA,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;AACzC,QAAA,aAAa,CAAC,SAAS,KAAK;AACxB,YAAA,GAAG,SAAS;YACZ,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,MAAM,EAAE,SAAS,EAAE,MAAM;AACzB,YAAA,QAAQ,EAAE;gBACN,GAAG,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;AACnC,gBAAA,GAAG,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtD,aAAA;AACD,YAAA,KAAK,EAAE;gBACH,KAAK,EAAE,SAAS,CAAC,OAAO;gBACxB,GAAG,EAAE,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;AAChC,gBAAA,GAAG,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7C,aAAA;AACD,YAAA,MAAM,EAAE,MAAM,SAAS,EAAE,MAAM,EAAE;AACjC,YAAA,IAAI,EAAE,MAAM,SAAS,EAAE,IAAI,EAAE;AAC7B,YAAA,KAAK,EAAE,MAAM,SAAS,EAAE,KAAK,EAAE;AAClC,SAAA,CAAC,CAAC,CAAA;AACP,KAAC,CAAA;AACD,IAAA,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC9C,SAAS,CAAC,MAAK;QACX,CAAC,YAAW;AACR,YAAA,OAAO,EAAE,CAAC;SACb,GAAG,CAAC;KACR,EAAE,EAAE,CAAC,CAAC;IAGP,IAAG,CAAC,UAAU,EAAE;AACZ,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACD,IAAA,OAAO,UAAU,CAAC;AACtB;;;;"}
@@ -23,9 +23,9 @@ export interface IGridParameters extends IParameters {
23
23
  EnableSorting?: Omit<ITwoOptionsProperty, 'attributes'>;
24
24
  EnableNavigation?: Omit<ITwoOptionsProperty, 'attributes'>;
25
25
  EnableOptionSetColors?: Omit<ITwoOptionsProperty, 'attributes'>;
26
- UseContainerAsHeight?: Omit<ITwoOptionsProperty, 'attributes'>;
26
+ Height?: IStringProperty;
27
27
  InlineRibbonButtonIds?: IStringProperty;
28
- SelectableRows?: ComponentFramework.PropertyTypes.EnumProperty<"none" | "single" | "multiple">;
28
+ SelectableRows?: Omit<ComponentFramework.PropertyTypes.EnumProperty<"none" | "single" | "multiple">, 'type'>;
29
29
  Grid: IDatasetProperty;
30
30
  }
31
31
  export interface IGridOutputs extends IOutputs {
@@ -20,7 +20,13 @@ const Paging = () => {
20
20
  };
21
21
  });
22
22
  };
23
- return (jsxs("div", { className: styles.root, children: [jsx("div", { className: styles.pageSizeBtnWrapper, children: jsx(CommandBarButton, { text: labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder, recordcount: paging.totalResultCount >= 0 ? paging.totalResultCount : "5000+" }), menuProps: {
23
+ const getPagingLabel = () => {
24
+ if (paging.totalResultCount === undefined) {
25
+ return labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder });
26
+ }
27
+ return `${labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder })} ${labels['paging-pages-totalcount']({ recordcount: paging.formattedTotalResultCount })}`;
28
+ };
29
+ return (jsxs("div", { className: styles.root, children: [jsx("div", { className: styles.pageSizeBtnWrapper, children: jsx(CommandBarButton, { text: getPagingLabel(), menuProps: {
24
30
  items: [
25
31
  {
26
32
  key: 'header',
@@ -1 +1 @@
1
- {"version":3,"file":"Paging.js","sources":["../../../../../../src/components/Grid/paging/components/Paging/Paging.tsx"],"sourcesContent":["import { ComboBox, CommandBarButton, ContextualMenuItemType, IComboBoxOption, IContextualMenuItem, useTheme } from '@fluentui/react';\nimport { CommandBar } from '@fluentui/react';\nimport React from 'react';\nimport { useGridInstance } from '../../../core/hooks/useGridInstance';\nimport { usePagingController } from '../../controllers/usePagingController';\nimport { getPagingStyles } from './styles';\n\nexport const Paging = () => {\n const labels = useGridInstance().labels;\n const paging = usePagingController();\n const styles = getPagingStyles(useTheme());\n\n const getPageSizeOptions = (): IContextualMenuItem[] => {\n const sizes = ['25', '50', '75', '100', '250'];\n return sizes.map(size => {\n return {\n key: size,\n text: size,\n checked: parseInt(size) === paging.pageSize,\n className: styles.pageSizeOption,\n onClick: () => paging.setPageSize(parseInt(size))\n }\n })\n }\n return (\n <div className={styles.root}>\n <div className={styles.pageSizeBtnWrapper}>\n <CommandBarButton\n text={labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder, recordcount: paging.totalResultCount >= 0 ? paging.totalResultCount : \"5000+\" })}\n menuProps={{\n items: [\n {\n key: 'header',\n itemType: ContextualMenuItemType.Header,\n text: 'Počet záznamů na stránce',\n },\n {\n key: 'divider',\n itemType: ContextualMenuItemType.Divider,\n },\n ...getPageSizeOptions()\n ]\n }}\n />\n </div>\n <CommandBar\n className={styles.pagination}\n items={[]}\n farItems={[{\n key: 'FirstPage',\n iconOnly: true,\n iconProps: { iconName: 'DoubleChevronLeft' },\n disabled: !paging.hasPreviousPage,\n onClick: () => paging.reset()\n }, {\n key: 'PreviousPage',\n iconOnly: true,\n iconProps: { iconName: 'Back' },\n disabled: !paging.hasPreviousPage,\n onClick: () => paging.loadPreviousPage()\n }, {\n key: 'CurrentPage',\n text: `${labels['paging-page']()} ${paging.pageNumber.toString()}`,\n className: styles.currentPageBtn,\n disabled: true,\n }, {\n key: 'NextPage',\n iconOnly: true,\n iconProps: { iconName: 'Forward' },\n disabled: !paging.hasNextPage,\n onClick: () => paging.loadNextPage()\n }]}\n />\n </div>\n )\n}"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Paging.js","sources":["../../../../../../src/components/Grid/paging/components/Paging/Paging.tsx"],"sourcesContent":["import { ComboBox, CommandBarButton, ContextualMenuItemType, IComboBoxOption, IContextualMenuItem, useTheme } from '@fluentui/react';\nimport { CommandBar } from '@fluentui/react';\nimport React from 'react';\nimport { useGridInstance } from '../../../core/hooks/useGridInstance';\nimport { usePagingController } from '../../controllers/usePagingController';\nimport { getPagingStyles } from './styles';\n\nexport const Paging = () => {\n const labels = useGridInstance().labels;\n const paging = usePagingController();\n const styles = getPagingStyles(useTheme());\n\n const getPageSizeOptions = (): IContextualMenuItem[] => {\n const sizes = ['25', '50', '75', '100', '250'];\n return sizes.map(size => {\n return {\n key: size,\n text: size,\n checked: parseInt(size) === paging.pageSize,\n className: styles.pageSizeOption,\n onClick: () => paging.setPageSize(parseInt(size))\n }\n })\n }\n const getPagingLabel = () => {\n if(paging.totalResultCount === undefined) {\n return labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder})\n }\n return `${labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder})} ${labels['paging-pages-totalcount']({recordcount: paging.formattedTotalResultCount})}`\n }\n return (\n <div className={styles.root}>\n <div className={styles.pageSizeBtnWrapper}>\n <CommandBarButton\n text={getPagingLabel()}\n menuProps={{\n items: [\n {\n key: 'header',\n itemType: ContextualMenuItemType.Header,\n text: 'Počet záznamů na stránce',\n },\n {\n key: 'divider',\n itemType: ContextualMenuItemType.Divider,\n },\n ...getPageSizeOptions()\n ]\n }}\n />\n </div>\n <CommandBar\n className={styles.pagination}\n items={[]}\n farItems={[{\n key: 'FirstPage',\n iconOnly: true,\n iconProps: { iconName: 'DoubleChevronLeft' },\n disabled: !paging.hasPreviousPage,\n onClick: () => paging.reset()\n }, {\n key: 'PreviousPage',\n iconOnly: true,\n iconProps: { iconName: 'Back' },\n disabled: !paging.hasPreviousPage,\n onClick: () => paging.loadPreviousPage()\n }, {\n key: 'CurrentPage',\n text: `${labels['paging-page']()} ${paging.pageNumber.toString()}`,\n className: styles.currentPageBtn,\n disabled: true,\n }, {\n key: 'NextPage',\n iconOnly: true,\n iconProps: { iconName: 'Forward' },\n disabled: !paging.hasNextPage,\n onClick: () => paging.loadNextPage()\n }]}\n />\n </div>\n )\n}"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -6,7 +6,8 @@ interface IPagingController {
6
6
  hasPreviousPage: boolean;
7
7
  hasNextPage: boolean;
8
8
  pageFirstRecordOrder: number;
9
- pageLastRecordOrder: number;
9
+ pageLastRecordOrder: string;
10
+ formattedTotalResultCount: string;
10
11
  loadNextPage: () => void;
11
12
  loadPreviousPage: () => void;
12
13
  loadExactPage: (pageNumber: number) => void;
@@ -6,6 +6,7 @@ const usePagingController = () => {
6
6
  pageNumber: paging.pageNumber,
7
7
  pageSize: paging.pageSize,
8
8
  totalResultCount: paging.totalResultCount,
9
+ formattedTotalResultCount: paging.formattedTotalResultCount,
9
10
  hasPreviousPage: paging.hasPreviousPage,
10
11
  hasNextPage: paging.hasNextPage,
11
12
  pageFirstRecordOrder: paging.pageFirstRecordOrder,
@@ -1 +1 @@
1
- {"version":3,"file":"usePagingController.js","sources":["../../../../../src/components/Grid/paging/controllers/usePagingController.ts"],"sourcesContent":["import { useGridInstance } from \"../../core/hooks/useGridInstance\"\n\ninterface IPagingController {\n isEnabled: boolean,\n pageNumber: number,\n pageSize: number,\n totalResultCount: number,\n hasPreviousPage: boolean,\n hasNextPage: boolean,\n pageFirstRecordOrder: number,\n pageLastRecordOrder: number,\n loadNextPage: () => void,\n loadPreviousPage: () => void,\n loadExactPage: (pageNumber: number) => void,\n setPageSize: (pageSize: number) => void,\n reset: () => void\n}\n\nexport const usePagingController = (): IPagingController => {\n const paging = useGridInstance().paging;\n return {\n pageNumber: paging.pageNumber,\n pageSize: paging.pageSize,\n totalResultCount: paging.totalResultCount,\n hasPreviousPage: paging.hasPreviousPage,\n hasNextPage: paging.hasNextPage,\n pageFirstRecordOrder: paging.pageFirstRecordOrder,\n pageLastRecordOrder: paging.pageLastRecordOrder,\n isEnabled: paging.isEnabled,\n loadExactPage: (pageNumber: number) => paging.loadExactPage(pageNumber),\n loadNextPage: () => paging.loadNextPage(),\n loadPreviousPage: () => paging.loadPreviousPage(),\n setPageSize: (pageSize) => paging.setPageSize(pageSize),\n reset: () => paging.reset()\n }\n}"],"names":[],"mappings":";;AAkBO,MAAM,mBAAmB,GAAG,MAAwB;AACvD,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC,MAAM,CAAC;IACxC,OAAO;QACH,UAAU,EAAE,MAAM,CAAC,UAAU;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,CAAC,UAAkB,KAAK,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;AACvE,QAAA,YAAY,EAAE,MAAM,MAAM,CAAC,YAAY,EAAE;AACzC,QAAA,gBAAgB,EAAE,MAAM,MAAM,CAAC,gBAAgB,EAAE;QACjD,WAAW,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;AACvD,QAAA,KAAK,EAAE,MAAM,MAAM,CAAC,KAAK,EAAE;KAClC,CAAA;AACL;;;;"}
1
+ {"version":3,"file":"usePagingController.js","sources":["../../../../../src/components/Grid/paging/controllers/usePagingController.ts"],"sourcesContent":["import { useGridInstance } from \"../../core/hooks/useGridInstance\"\n\ninterface IPagingController {\n isEnabled: boolean,\n pageNumber: number,\n pageSize: number,\n totalResultCount: number,\n hasPreviousPage: boolean,\n hasNextPage: boolean,\n pageFirstRecordOrder: number,\n pageLastRecordOrder: string\n formattedTotalResultCount: string,\n loadNextPage: () => void,\n loadPreviousPage: () => void,\n loadExactPage: (pageNumber: number) => void,\n setPageSize: (pageSize: number) => void,\n reset: () => void\n}\n\nexport const usePagingController = (): IPagingController => {\n const paging = useGridInstance().paging;\n return {\n pageNumber: paging.pageNumber,\n pageSize: paging.pageSize,\n totalResultCount: paging.totalResultCount,\n formattedTotalResultCount: paging.formattedTotalResultCount,\n hasPreviousPage: paging.hasPreviousPage,\n hasNextPage: paging.hasNextPage,\n pageFirstRecordOrder: paging.pageFirstRecordOrder,\n pageLastRecordOrder: paging.pageLastRecordOrder,\n isEnabled: paging.isEnabled,\n loadExactPage: (pageNumber: number) => paging.loadExactPage(pageNumber),\n loadNextPage: () => paging.loadNextPage(),\n loadPreviousPage: () => paging.loadPreviousPage(),\n setPageSize: (pageSize) => paging.setPageSize(pageSize),\n reset: () => paging.reset()\n }\n}"],"names":[],"mappings":";;AAmBO,MAAM,mBAAmB,GAAG,MAAwB;AACvD,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC,MAAM,CAAC;IACxC,OAAO;QACH,UAAU,EAAE,MAAM,CAAC,UAAU;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;QAC3D,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,CAAC,UAAkB,KAAK,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;AACvE,QAAA,YAAY,EAAE,MAAM,MAAM,CAAC,YAAY,EAAE;AACzC,QAAA,gBAAgB,EAAE,MAAM,MAAM,CAAC,gBAAgB,EAAE;QACjD,WAAW,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;AACvD,QAAA,KAAK,EAAE,MAAM,MAAM,CAAC,KAAK,EAAE;KAClC,CAAA;AACL;;;;"}
@@ -6,7 +6,8 @@ export declare class Paging extends GridDependency {
6
6
  get hasPreviousPage(): boolean;
7
7
  get hasNextPage(): boolean;
8
8
  get pageFirstRecordOrder(): number;
9
- get pageLastRecordOrder(): number;
9
+ get formattedTotalResultCount(): string;
10
+ get pageLastRecordOrder(): string;
10
11
  get isEnabled(): boolean;
11
12
  loadNextPage(): void;
12
13
  loadPreviousPage(): void;
@@ -17,14 +17,32 @@ class Paging extends GridDependency {
17
17
  return this._dataset.paging.hasNextPage;
18
18
  }
19
19
  get pageFirstRecordOrder() {
20
+ if (this._dataset.sortedRecordIds.length === 0) {
21
+ return 0;
22
+ }
20
23
  return (this.pageNumber - 1) * this.pageSize + (this.totalResultCount === 0 ? 0 : 1);
21
24
  }
25
+ get formattedTotalResultCount() {
26
+ if (this.totalResultCount === undefined) {
27
+ return '';
28
+ }
29
+ if (this.totalResultCount === -1) {
30
+ return '5000+';
31
+ }
32
+ return this.totalResultCount.toString();
33
+ }
22
34
  get pageLastRecordOrder() {
23
- const size = this.pageNumber * this.pageSize;
24
- if (size > this.totalResultCount && this.totalResultCount !== -1) {
25
- return this.totalResultCount;
35
+ const count = this.pageNumber * this.pageSize;
36
+ if (this.totalResultCount === undefined) {
37
+ if (this.hasNextPage) {
38
+ return `${count}+`;
39
+ }
40
+ return `${count - this.pageSize + this._dataset.sortedRecordIds.length}`;
41
+ }
42
+ if (count > this.totalResultCount && this.totalResultCount !== -1) {
43
+ return this.totalResultCount.toString();
26
44
  }
27
- return size;
45
+ return count.toString();
28
46
  }
29
47
  get isEnabled() {
30
48
  return this._grid.parameters.EnablePagination?.raw !== false;
@@ -1 +1 @@
1
- {"version":3,"file":"Paging.js","sources":["../../../../../src/components/Grid/paging/model/Paging.ts"],"sourcesContent":["import { GridDependency } from \"../../core/model/GridDependency\";\n\nexport class Paging extends GridDependency {\n\n public get pageNumber() {\n return this._dataset.paging.pageNumber;\n }\n public get pageSize() {\n return this._dataset.paging.pageSize;\n }\n public get totalResultCount() {\n return this._dataset.paging.totalResultCount;\n }\n public get hasPreviousPage() {\n return this._dataset.paging.hasPreviousPage;\n }\n public get hasNextPage() {\n return this._dataset.paging.hasNextPage;\n }\n public get pageFirstRecordOrder() {\n return (this.pageNumber - 1) * this.pageSize + (this.totalResultCount === 0 ? 0 : 1);\n }\n\n public get pageLastRecordOrder() {\n const size = this.pageNumber * this.pageSize;\n if(size > this.totalResultCount && this.totalResultCount !== -1) {\n return this.totalResultCount;\n } \n return size;\n }\n\n public get isEnabled() {\n return this._grid.parameters.EnablePagination?.raw !== false\n }\n\n public loadNextPage() {\n this.loadExactPage(this.pageNumber + 1)\n }\n public loadPreviousPage() {\n this.loadExactPage(this.pageNumber - 1);\n }\n public loadExactPage(pageNumber: number) {\n this._dataset.paging.loadExactPage(pageNumber);\n }\n public setPageSize(pageSize: number) {\n this._dataset.paging.setPageSize(pageSize);\n this._dataset.refresh();\n //in Power Apps the new page size can sometimes come only after second refresh #smh\n //@ts-ignore - Portal types\n if (!window.TALXIS?.Portal) {\n this._dataset.refresh()\n }\n }\n public reset() {\n this._dataset.paging.reset();\n }\n}"],"names":[],"mappings":";;AAEM,MAAO,MAAO,SAAQ,cAAc,CAAA;AAEtC,IAAA,IAAW,UAAU,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;KAC1C;AACD,IAAA,IAAW,QAAQ,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;KACxC;AACD,IAAA,IAAW,gBAAgB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC;KAChD;AACD,IAAA,IAAW,eAAe,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC;KAC/C;AACD,IAAA,IAAW,WAAW,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;KAC3C;AACD,IAAA,IAAW,oBAAoB,GAAA;QAC3B,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KACxF;AAED,IAAA,IAAW,mBAAmB,GAAA;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC7C,QAAA,IAAG,IAAI,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,EAAE;YAC7D,OAAO,IAAI,CAAC,gBAAgB,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,EAAE,GAAG,KAAK,KAAK,CAAA;KAC/D;IAEM,YAAY,GAAA;QACf,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;KAC1C;IACM,gBAAgB,GAAA;QACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;KAC3C;AACM,IAAA,aAAa,CAAC,UAAkB,EAAA;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;KAClD;AACM,IAAA,WAAW,CAAC,QAAgB,EAAA;QAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;;;AAGxB,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;AAC1B,SAAA;KACJ;IACM,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KAChC;AACJ;;;;"}
1
+ {"version":3,"file":"Paging.js","sources":["../../../../../src/components/Grid/paging/model/Paging.ts"],"sourcesContent":["import { GridDependency } from \"../../core/model/GridDependency\";\n\nexport class Paging extends GridDependency {\n\n public get pageNumber() {\n return this._dataset.paging.pageNumber;\n }\n public get pageSize() {\n return this._dataset.paging.pageSize;\n }\n public get totalResultCount() {\n return this._dataset.paging.totalResultCount;\n }\n public get hasPreviousPage() {\n return this._dataset.paging.hasPreviousPage;\n }\n public get hasNextPage() {\n return this._dataset.paging.hasNextPage;\n }\n public get pageFirstRecordOrder() {\n if(this._dataset.sortedRecordIds.length === 0) {\n return 0;\n }\n return (this.pageNumber - 1) * this.pageSize + (this.totalResultCount === 0 ? 0 : 1);\n }\n public get formattedTotalResultCount(): string {\n if(this.totalResultCount === undefined) {\n return '';\n }\n if(this.totalResultCount === -1) {\n return '5000+';\n }\n return this.totalResultCount.toString();\n }\n public get pageLastRecordOrder(): string {\n const count = this.pageNumber * this.pageSize;\n if(this.totalResultCount === undefined) {\n if(this.hasNextPage) {\n return `${count}+`;\n }\n return `${count - this.pageSize + this._dataset.sortedRecordIds.length}`\n\n }\n if(count > this.totalResultCount && this.totalResultCount !== -1) {\n return this.totalResultCount.toString();\n } \n return count.toString();\n }\n\n public get isEnabled() {\n return this._grid.parameters.EnablePagination?.raw !== false\n }\n\n public loadNextPage() {\n this.loadExactPage(this.pageNumber + 1)\n }\n public loadPreviousPage() {\n this.loadExactPage(this.pageNumber - 1);\n }\n public loadExactPage(pageNumber: number) {\n this._dataset.paging.loadExactPage(pageNumber);\n }\n public setPageSize(pageSize: number) {\n this._dataset.paging.setPageSize(pageSize);\n this._dataset.refresh();\n //in Power Apps the new page size can sometimes come only after second refresh #smh\n //@ts-ignore - Portal types\n if (!window.TALXIS?.Portal) {\n this._dataset.refresh()\n }\n }\n public reset() {\n this._dataset.paging.reset();\n }\n}"],"names":[],"mappings":"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"}
@@ -3,13 +3,17 @@ import { useGridInstance } from '../../core/hooks/useGridInstance.js';
3
3
  const useSelectionController = () => {
4
4
  const grid = useGridInstance();
5
5
  const selection = grid.selection;
6
+ const renderDecorator = async (fn) => {
7
+ await fn();
8
+ grid.pcfContext.factory.requestRender();
9
+ };
6
10
  return {
7
11
  type: selection.type,
8
12
  selectedRecordIds: selection.selectedRecordIds,
9
13
  allRecordsSelected: selection.allRecordsSelected,
10
- toggle: (record, state) => selection.toggle(record, state),
11
- clear: () => selection.clear(),
12
- selectAll: () => selection.selectAll()
14
+ toggle: (record, state) => renderDecorator(() => selection.toggle(record, state)),
15
+ clear: () => renderDecorator(() => selection.clear()),
16
+ selectAll: () => renderDecorator(() => selection.selectAll()),
13
17
  };
14
18
  };
15
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectionController.js","sources":["../../../../../src/components/Grid/selection/controllers/useSelectionController.ts"],"sourcesContent":["import { useGridInstance } from \"../../core/hooks/useGridInstance\";\nimport { IEntityRecord } from \"../../interfaces\";\n\ninterface ISelectionController {\n type: \"multiple\" | \"single\" | undefined;\n selectedRecordIds: string[],\n allRecordsSelected: boolean;\n toggle: (record: IEntityRecord, state: boolean) => void;\n clear: () => void,\n selectAll: () => void\n}\n\nexport const useSelectionController = (): ISelectionController => {\n const grid = useGridInstance();\n const selection = grid.selection;\n\n return {\n type: selection.type,\n selectedRecordIds: selection.selectedRecordIds,\n allRecordsSelected: selection.allRecordsSelected,\n toggle: (record: IEntityRecord, state: boolean) => selection.toggle(record, state),\n clear: () => selection.clear(),\n selectAll: () => selection.selectAll()\n }\n}"],"names":[],"mappings":";;AAYO,MAAM,sBAAsB,GAAG,MAA2B;AAC7D,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAEjC,OAAO;QACH,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;QAC9C,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;AAChD,QAAA,MAAM,EAAE,CAAC,MAAqB,EAAE,KAAc,KAAK,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;AAClF,QAAA,KAAK,EAAE,MAAM,SAAS,CAAC,KAAK,EAAE;AAC9B,QAAA,SAAS,EAAE,MAAM,SAAS,CAAC,SAAS,EAAE;KACzC,CAAA;AACL;;;;"}
1
+ {"version":3,"file":"useSelectionController.js","sources":["../../../../../src/components/Grid/selection/controllers/useSelectionController.ts"],"sourcesContent":["import { useGridInstance } from \"../../core/hooks/useGridInstance\";\nimport { IEntityRecord } from \"../../interfaces\";\n\ninterface ISelectionController {\n type: \"multiple\" | \"single\" | undefined;\n selectedRecordIds: string[];\n allRecordsSelected: boolean;\n toggle: (record: IEntityRecord, state: boolean) => void;\n clear: () => void;\n selectAll: () => void;\n}\n\nexport const useSelectionController = (): ISelectionController => {\n const grid = useGridInstance();\n const selection = grid.selection;\n\n const renderDecorator = async (fn: () => void | Promise<void>) => {\n await fn();\n grid.pcfContext.factory.requestRender();\n };\n\n return {\n type: selection.type,\n selectedRecordIds: selection.selectedRecordIds,\n allRecordsSelected: selection.allRecordsSelected,\n toggle: (record: IEntityRecord, state: boolean) => renderDecorator(() => selection.toggle(record, state)),\n clear: () => renderDecorator(() => selection.clear()),\n selectAll: () => renderDecorator(() => selection.selectAll()),\n };\n};\n"],"names":[],"mappings":";;AAYO,MAAM,sBAAsB,GAAG,MAA2B;AAC7D,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAEjC,IAAA,MAAM,eAAe,GAAG,OAAO,EAA8B,KAAI;QAC7D,MAAM,EAAE,EAAE,CAAC;AACX,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;AAC5C,KAAC,CAAC;IAEF,OAAO;QACH,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;QAC9C,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;QAChD,MAAM,EAAE,CAAC,MAAqB,EAAE,KAAc,KAAK,eAAe,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzG,QAAA,KAAK,EAAE,MAAM,eAAe,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;AACrD,QAAA,SAAS,EAAE,MAAM,eAAe,CAAC,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC;KAChE,CAAC;AACN;;;;"}
@@ -3,7 +3,7 @@ import { GridDependency } from "../../core/model/GridDependency";
3
3
  export declare class Selection extends GridDependency {
4
4
  private _selectedRecordIdsSet;
5
5
  private debounceTimer;
6
- toggle(record: ComponentFramework.PropertyHelper.DataSetApi.EntityRecord, newState: boolean, clearExistingSelection?: boolean, disableDebounce?: boolean): void;
6
+ toggle(record: ComponentFramework.PropertyHelper.DataSetApi.EntityRecord, newState: boolean, clearExistingSelection?: boolean, disableDebounce?: boolean): Promise<void>;
7
7
  get selectedRecordIds(): string[];
8
8
  get allRecordsSelected(): boolean;
9
9
  get type(): "single" | "multiple" | undefined;
@@ -6,7 +6,7 @@ class Selection extends GridDependency {
6
6
  this._selectedRecordIdsSet = new Set();
7
7
  this.debounceTimer = null;
8
8
  }
9
- toggle(record, newState, clearExistingSelection, disableDebounce) {
9
+ async toggle(record, newState, clearExistingSelection, disableDebounce) {
10
10
  const recordId = record.getRecordId();
11
11
  if (!this.debounceTimer) {
12
12
  this._selectedRecordIdsSet = new Set(this.selectedRecordIds);
@@ -30,9 +30,12 @@ class Selection extends GridDependency {
30
30
  this._setSelectedRecords();
31
31
  return;
32
32
  }
33
- this.debounceTimer = setTimeout(() => {
34
- this._setSelectedRecords();
35
- }, 0);
33
+ return new Promise((resolve) => {
34
+ this.debounceTimer = setTimeout(() => {
35
+ this._setSelectedRecords();
36
+ resolve();
37
+ }, 0);
38
+ });
36
39
  }
37
40
  get selectedRecordIds() {
38
41
  return this._dataset.getSelectedRecordIds();
@@ -1 +1 @@
1
- {"version":3,"file":"Selection.js","sources":["../../../../../src/components/Grid/selection/model/Selection.ts"],"sourcesContent":["import { GridDependency } from \"../../core/model/GridDependency\";\n\nexport class Selection extends GridDependency {\n private _selectedRecordIdsSet: Set<string> = new Set<string>();\n private debounceTimer: ReturnType<typeof setTimeout> | null = null;\n\n public toggle(record: ComponentFramework.PropertyHelper.DataSetApi.EntityRecord, newState: boolean, clearExistingSelection?: boolean, disableDebounce?: boolean) {\n const recordId = record.getRecordId();\n if(!this.debounceTimer) {\n this._selectedRecordIdsSet = new Set(this.selectedRecordIds);\n }\n if (clearExistingSelection) {\n this._selectedRecordIdsSet.clear();\n }\n if (newState === false) {\n this._selectedRecordIdsSet.delete(recordId);\n }\n else {\n if (this.type === 'single') {\n this._selectedRecordIdsSet.clear();\n }\n this._selectedRecordIdsSet.add(recordId);\n }\n\n if (this.debounceTimer !== null) {\n clearTimeout(this.debounceTimer);\n }\n if(disableDebounce) {\n this._setSelectedRecords();\n return;\n }\n this.debounceTimer = setTimeout(() => {\n this._setSelectedRecords();\n }, 0);\n }\n public get selectedRecordIds() {\n return this._dataset.getSelectedRecordIds();\n }\n public get allRecordsSelected() {\n return this.selectedRecordIds.length === this._dataset.sortedRecordIds.length;\n }\n public get type() {\n switch(this._grid.props.parameters.SelectableRows?.raw) {\n case undefined:\n case null: {\n return 'multiple'\n }\n case 'none': {\n return undefined;\n }\n default: return this._grid.props.parameters.SelectableRows?.raw;\n }\n }\n\n public clear() {\n this._grid.dataset.setSelectedRecordIds([]);\n }\n public selectAll() {\n this._grid.dataset.setSelectedRecordIds(this._dataset.sortedRecordIds)\n }\n private _setSelectedRecords() {\n this._grid.dataset.setSelectedRecordIds([...this._selectedRecordIdsSet.values()]);\n this.debounceTimer = null; // Reset debounce timer after execution\n this._selectedRecordIdsSet = new Set();\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Selection.js","sources":["../../../../../src/components/Grid/selection/model/Selection.ts"],"sourcesContent":["import { GridDependency } from \"../../core/model/GridDependency\";\n\nexport class Selection extends GridDependency {\n private _selectedRecordIdsSet: Set<string> = new Set<string>();\n private debounceTimer: ReturnType<typeof setTimeout> | null = null;\n\n public async toggle(record: ComponentFramework.PropertyHelper.DataSetApi.EntityRecord, newState: boolean, clearExistingSelection?: boolean, disableDebounce?: boolean): Promise<void> {\n const recordId = record.getRecordId();\n if(!this.debounceTimer) {\n this._selectedRecordIdsSet = new Set(this.selectedRecordIds);\n }\n if (clearExistingSelection) {\n this._selectedRecordIdsSet.clear();\n }\n if (newState === false) {\n this._selectedRecordIdsSet.delete(recordId);\n }\n else {\n if (this.type === 'single') {\n this._selectedRecordIdsSet.clear();\n }\n this._selectedRecordIdsSet.add(recordId);\n }\n\n if (this.debounceTimer !== null) {\n clearTimeout(this.debounceTimer);\n }\n if(disableDebounce) {\n this._setSelectedRecords();\n return;\n }\n return new Promise((resolve) => {\n this.debounceTimer = setTimeout(() => {\n this._setSelectedRecords();\n resolve();\n }, 0);\n })\n }\n public get selectedRecordIds() {\n return this._dataset.getSelectedRecordIds();\n }\n public get allRecordsSelected() {\n return this.selectedRecordIds.length === this._dataset.sortedRecordIds.length;\n }\n public get type() {\n switch(this._grid.props.parameters.SelectableRows?.raw) {\n case undefined:\n case null: {\n return 'multiple'\n }\n case 'none': {\n return undefined;\n }\n default: return this._grid.props.parameters.SelectableRows?.raw;\n }\n }\n\n public clear() {\n this._grid.dataset.setSelectedRecordIds([]);\n }\n public selectAll() {\n this._grid.dataset.setSelectedRecordIds(this._dataset.sortedRecordIds)\n }\n private _setSelectedRecords() {\n this._grid.dataset.setSelectedRecordIds([...this._selectedRecordIdsSet.values()]);\n this.debounceTimer = null; // Reset debounce timer after execution\n this._selectedRecordIdsSet = new Set();\n }\n}"],"names":[],"mappings":";;AAEM,MAAO,SAAU,SAAQ,cAAc,CAAA;AAA7C,IAAA,WAAA,GAAA;;AACY,QAAA,IAAA,CAAA,qBAAqB,GAAgB,IAAI,GAAG,EAAU,CAAC;QACvD,IAAa,CAAA,aAAA,GAAyC,IAAI,CAAC;KAgEtE;IA9DU,MAAM,MAAM,CAAC,MAAiE,EAAE,QAAiB,EAAE,sBAAgC,EAAE,eAAyB,EAAA;AACjK,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;AACtC,QAAA,IAAG,CAAC,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAChE,SAAA;AACD,QAAA,IAAI,sBAAsB,EAAE;AACxB,YAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;AACtC,SAAA;QACD,IAAI,QAAQ,KAAK,KAAK,EAAE;AACpB,YAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/C,SAAA;AACI,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACxB,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;AACtC,aAAA;AACD,YAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC5C,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;AAC7B,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpC,SAAA;AACD,QAAA,IAAG,eAAe,EAAE;YAChB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,OAAO;AACV,SAAA;AACD,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC3B,YAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;gBACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,gBAAA,OAAO,EAAE,CAAC;aACb,EAAE,CAAC,CAAC,CAAC;AACV,SAAC,CAAC,CAAA;KACL;AACD,IAAA,IAAW,iBAAiB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;KAC/C;AACD,IAAA,IAAW,kBAAkB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC;KACjF;AACD,IAAA,IAAW,IAAI,GAAA;QACX,QAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG;AAClD,YAAA,KAAK,SAAS,CAAC;YACf,KAAK,IAAI,EAAE;AACP,gBAAA,OAAO,UAAU,CAAA;AACpB,aAAA;YACD,KAAK,MAAM,EAAE;AACT,gBAAA,OAAO,SAAS,CAAC;AACpB,aAAA;AACD,YAAA,SAAS,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC;AACnE,SAAA;KACJ;IAEM,KAAK,GAAA;QACR,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;KAC/C;IACM,SAAS,GAAA;AACZ,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;KACzE;IACO,mBAAmB,GAAA;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAAE,CAAC;KAC1C;AACJ;;;;"}
@@ -6,9 +6,8 @@ class Sorting extends GridDependency {
6
6
  value: this._dataset.sorting.find(x => x.name === column.key),
7
7
  sort: (direction) => {
8
8
  const sortMap = new Map(this._dataset.sorting.map(x => [x.name, x]));
9
- //sorting across multiple columns is currently not supported in Portal
10
- //@ts-ignore - types
11
- if (window.TALXIS?.Portal) {
9
+ //TODO: have explicit parameter to always do multisort?
10
+ if (this._grid.keyHoldListener.getHeldKey() !== 'Shift') {
12
11
  sortMap.clear();
13
12
  }
14
13
  sortMap.set(column.key, {
@@ -1 +1 @@
1
- {"version":3,"file":"Sorting.js","sources":["../../../../src/components/Grid/sorting/Sorting.ts"],"sourcesContent":["import { IGridColumn } from \"../core/interfaces/IGridColumn\";\nimport { GridDependency } from \"../core/model/GridDependency\";\nexport class Sorting extends GridDependency {\n public get(column: IGridColumn) {\n return {\n value: this._dataset.sorting.find(x => x.name === column.key),\n sort: (direction: ComponentFramework.PropertyHelper.DataSetApi.Types.SortDirection) => {\n const sortMap: Map<string, ComponentFramework.PropertyHelper.DataSetApi.SortStatus> = new Map(this._dataset.sorting.map(x => [x.name, x]));\n //sorting across multiple columns is currently not supported in Portal\n //@ts-ignore - types\n if(window.TALXIS?.Portal) {\n sortMap.clear();\n }\n sortMap.set(column.key, {\n name: column.key,\n sortDirection: direction\n })\n //Power Apps only allows setting of sorting like this - https://stackoverflow.com/questions/1232040/how-do-i-empty-an-array-in-javascript\n //this is so stupid\n while (this._dataset.sorting.length) {\n this._dataset.sorting.pop()\n }\n for (const sort of sortMap.values()) {\n this._dataset.sorting.push(sort);\n }\n this._dataset.refresh();\n }\n }\n }\n}"],"names":[],"mappings":";;AAEM,MAAO,OAAQ,SAAQ,cAAc,CAAA;AAChC,IAAA,GAAG,CAAC,MAAmB,EAAA;QAC1B,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC;AAC7D,YAAA,IAAI,EAAE,CAAC,SAA2E,KAAI;gBAClF,MAAM,OAAO,GAAyE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;;AAG3I,gBAAA,IAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;oBACtB,OAAO,CAAC,KAAK,EAAE,CAAC;AACnB,iBAAA;AACD,gBAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;oBACpB,IAAI,EAAE,MAAM,CAAC,GAAG;AAChB,oBAAA,aAAa,EAAE,SAAS;AAC3B,iBAAA,CAAC,CAAA;;;AAGF,gBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;AACjC,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;AAC9B,iBAAA;AACD,gBAAA,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;oBACjC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,iBAAA;AACD,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aAC3B;SACJ,CAAA;KACJ;AACJ;;;;"}
1
+ {"version":3,"file":"Sorting.js","sources":["../../../../src/components/Grid/sorting/Sorting.ts"],"sourcesContent":["import { IGridColumn } from \"../core/interfaces/IGridColumn\";\nimport { GridDependency } from \"../core/model/GridDependency\";\nexport class Sorting extends GridDependency {\n public get(column: IGridColumn) {\n return {\n value: this._dataset.sorting.find(x => x.name === column.key),\n sort: (direction: ComponentFramework.PropertyHelper.DataSetApi.Types.SortDirection) => {\n const sortMap: Map<string, ComponentFramework.PropertyHelper.DataSetApi.SortStatus> = new Map(this._dataset.sorting.map(x => [x.name, x]));\n //TODO: have explicit parameter to always do multisort?\n if(this._grid.keyHoldListener.getHeldKey() !== 'Shift') {\n sortMap.clear();\n }\n sortMap.set(column.key, {\n name: column.key,\n sortDirection: direction\n })\n //Power Apps only allows setting of sorting like this - https://stackoverflow.com/questions/1232040/how-do-i-empty-an-array-in-javascript\n //this is so stupid\n while (this._dataset.sorting.length) {\n this._dataset.sorting.pop()\n }\n for (const sort of sortMap.values()) {\n this._dataset.sorting.push(sort);\n }\n this._dataset.refresh();\n }\n }\n }\n}"],"names":[],"mappings":";;AAEM,MAAO,OAAQ,SAAQ,cAAc,CAAA;AAChC,IAAA,GAAG,CAAC,MAAmB,EAAA;QAC1B,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC;AAC7D,YAAA,IAAI,EAAE,CAAC,SAA2E,KAAI;gBAClF,MAAM,OAAO,GAAyE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;gBAE3I,IAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,OAAO,EAAE;oBACpD,OAAO,CAAC,KAAK,EAAE,CAAC;AACnB,iBAAA;AACD,gBAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;oBACpB,IAAI,EAAE,MAAM,CAAC,GAAG;AAChB,oBAAA,aAAa,EAAE,SAAS;AAC3B,iBAAA,CAAC,CAAA;;;AAGF,gBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;AACjC,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;AAC9B,iBAAA;AACD,gBAAA,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;oBACjC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,iBAAA;AACD,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aAC3B;SACJ,CAAA;KACJ;AACJ;;;;"}
@@ -251,6 +251,10 @@ export declare const gridTranslations: {
251
251
  1029: string;
252
252
  1033: string;
253
253
  };
254
+ "paging-pages-totalcount": {
255
+ 1029: string;
256
+ 1033: string;
257
+ };
254
258
  norecordsfound: {
255
259
  1029: string;
256
260
  1033: string;
@@ -61,7 +61,8 @@ const gridTranslations = {
61
61
  "paging-page": { 1029: "Strana", 1033: "Page" },
62
62
  "paging-nextpage": { 1029: "Další", 1033: "Next" },
63
63
  "paging-lastpage": { 1029: "Poslední strana", 1033: "Last page" },
64
- "paging-pages": { 1029: "{{start}} - {{end}} z {{recordcount}}", 1033: "{{start}} - {{end}} of {{recordcount}}" },
64
+ "paging-pages": { 1029: "{{start}} - {{end}}", 1033: "{{start}} - {{end}}" },
65
+ "paging-pages-totalcount": { 1029: "z {{recordcount}}", 1033: "of {{recordcount}}" },
65
66
  "norecordsfound": { 1029: 'Nenašli jsme nic, co by se zde dalo zobrazit.', 1033: 'No records found.' },
66
67
  "saving-changenotification": { 1029: "Počet upravených záznamů: <b>{{numOfChanges}}</b>. Klikněte <u>zde</u> pro jejich zobrazení.", 1033: "Number of updated records: <b>{{numOfChanges}}</b>. Click <u>here</u> to review." },
67
68
  "saving-save": { 1029: "Uložit", 1033: "Save" },
@@ -1 +1 @@
1
- {"version":3,"file":"translations.js","sources":["../../../src/components/Grid/translations.ts"],"sourcesContent":["export const gridTranslations = {\n \"condition-none\": { 1029: \"Žádná\", 1033: \"None\" },\n \"condition-equal\": { 1029: \"Je rovno\", 1033: \"Equals\" },\n \"condition-notequal\": { 1029: \"Není rovno\", 1033: \"Does not equal\" },\n \"condition-greaterthan\": { 1029: \"Větší než\", 1033: \"Greater than\" },\n \"condition-lessthan\": { 1029: \"Menší než\", 1033: \"Less than\" },\n \"condition-greaterequal\": { 1029: \"Větší než nebo rovno\", 1033: \"Greater than or equal to\" },\n \"condition-lessequal\": { 1029: \"Menší než nebo rovno\", 1033: \"Less than or equal to\" },\n \"condition-like\": { 1029: \"Obsahuje\", 1033: \"Contains\" },\n \"condition-notlike\": { 1029: \"Neobsahuje\", 1033: \"Does not contain\" },\n \"condition-null\": { 1029: \"Neobsahuje data\", 1033: \"Does not contain data\" },\n \"condition-notnull\": { 1029: \"Obsahuje data\", 1033: \"Contains data\" },\n \"condition-beginwith\": { 1029: \"Začíná na\", 1033: \"Begins with\" },\n \"condition-doesnotbeginwith\": { 1029: \"Nezačíná na\", 1033: \"Does not begin with\" },\n \"condition-endswith\": { 1029: \"Končí na\", 1033: \"Ends with\" },\n \"condition-doesnotendwith\": { 1029: \"Nekončí na\", 1033: \"Does not end with\" },\n \"condition-yesterday\": { 1029: \"Včera\", 1033: \"Yesterday\" },\n \"condition-today\": { 1029: \"Dneska\", 1033: \"Today\" },\n \"condition-tomorrow\": { 1029: \"Zítra\", 1033: \"Tomorrow\" },\n \"condition-last7days\": { 1029: \"Posledních 7 dnů\", 1033: \"Last 7 days\" },\n \"condition-next7days\": { 1029: \"Příštích 7 dnů\", 1033: \"Next 7 days\" },\n \"condition-lastweek\": { 1029: \"Minulý týden\", 1033: \"Last week\" },\n \"condition-thisweek\": { 1029: \"Tento týden\", 1033: \"This week\" },\n \"condition-lastmonth\": { 1029: \"Minulý měsíc\", 1033: \"Last month\" },\n \"condition-thismonth\": { 1029: \"Tento měsíc\", 1033: \"This month\" },\n \"condition-on\": { 1029: \"V den\", 1033: \"On\" },\n \"condition-onorbefore\": { 1029: \"Před dnem (včetně)\", 1033: \"On or before\" },\n \"condition-onorafter\": { 1029: \"Po dni (včetně)\", 1033: \"On or after\" },\n \"condition-lastyear\": { 1029: \"Poslední rok\", 1033: \"Last year\" },\n \"condition-thisyear\": { 1029: \"Tento rok\", 1033: \"This year\" },\n \"condition-lastxdays\": { 1029: \"Posledních X dnů\", 1033: \"Last X days\" },\n \"condition-nextxdays\": { 1029: \"Příštích X dnů\", 1033: \"Next X days\" },\n \"condition-lastxmonths\": { 1029: \"Posledních X měsíců\", 1033: \"Last X months\" },\n \"condition-nextxmonths\": { 1029: \"Příštích X měsíců\", 1033: \"Next X months\" },\n \"condition-contains\": { 1029: \"Obsahuje\", 1033: \"Contains\" },\n \"condition-infiscalperiodandyear\": { 1029: \"Toto fiskální období a rok\", 1033: \"In fiscal period and year\" },\n \"condition-above\": { 1029: \"Nad\", 1033: \"Above\" },\n \"condition-under\": { 1029: \"Pod\", 1033: \"Under\" },\n \"condition-notunder\": { 1029: \"Není pod\", 1033: \"Not under\" },\n \"condition-aboveorequal\": { 1029: \"Je nad nebo se rovná\", 1033: \"Above or equal\" },\n \"condition-underorequal\": { 1029: \"Je pod nebo se rovná\", 1033: \"Under or equal\" },\n \"condition-containvalues\": { 1029: \"Obsahuje hodnoty\", 1033: \"Contain values\" },\n \"condition-doesnotcontainvalues\": { 1029: \"Neobsahuje hodnoty\", 1033: \"Does not contain values\" },\n \"filtermenu-filterby\": { 1029: \"Filtrovat podle\", 1033: \"Filter By\" },\n \"filtermenu-applybutton\": { 1029: \"Použít\", 1033: \"Apply\" },\n \"filtermenu-clearbutton\": { 1029: \"Vymazat\", 1033: \"Clear\" },\n \"filtersortmenu-sorttext-a-z\": { 1029: \"Seřadit od A do Z\", 1033: \"Sort A to Z\" },\n \"filtersortmenu-sorttext-z-a\": { 1029: \"Seřadit od Z do A\", 1033: \"Sort Z to A\" },\n \"filtersortmenu-sortdate-a-z\": { 1029: \"Seřadit od nejstarších\", 1033: \"Sort older to newer\" },\n \"filtersortmenu-sortdate-z-a\": { 1029: \"Seřadit od nejnovějších\", 1033: \"Sort newer to older\" },\n \"filtersortmenu-sortnumber-a-z\": { 1029: \"Seřadit od nejmenších\", 1033: \"Sort smaller to larger\" },\n \"filtersortmenu-sortnumber-z-a\": { 1029: \"Seřadit od největších\", 1033: \"Sort larger to smaller\" },\n \"filtersortmenu-sorttwooption-a-z\": { 1029: \"Seřadit od nejmenších\", 1033: \"No to Yes\" },\n \"filtersortmenu-sorttwooption-z-a\": { 1029: \"Seřadit od největších\", 1033: \"Yes to No\" },\n \"filtersortmenu-sorttwooption-joint\": { 1029: \"až\", 1033: \"to\" },\n \"filtersortmenu-filterby\": { 1029: \"Filtrovat podle\", 1033: \"Filter by\" },\n \"filtersortmenu-clearfilter\": { 1029: \"Vymazat filtr\", 1033: \"Clear filter\" },\n \"paging-of\": { 1029: \"z\", 1033: \"of\" },\n \"paging-firstpage\": { 1029: \"První strana\", 1033: \"First page\" },\n \"paging-previouspage\": { 1029: \"Předchozí\", 1033: \"Previous\" },\n \"paging-page\": { 1029: \"Strana\", 1033: \"Page\" },\n \"paging-nextpage\": { 1029: \"Další\", 1033: \"Next\" },\n \"paging-lastpage\": { 1029: \"Poslední strana\", 1033: \"Last page\" },\n \"paging-pages\": {1029: \"{{start}} - {{end}} z {{recordcount}}\", 1033: \"{{start}} - {{end}} of {{recordcount}}\"},\n \"norecordsfound\": {1029: 'Nenašli jsme nic, co by se zde dalo zobrazit.', 1033: 'No records found.'},\n \"saving-changenotification\": {1029: \"Počet upravených záznamů: <b>{{numOfChanges}}</b>. Klikněte <u>zde</u> pro jejich zobrazení.\", 1033: \"Number of updated records: <b>{{numOfChanges}}</b>. Click <u>here</u> to review.\"},\n \"saving-save\": {1029: \"Uložit\", 1033: \"Save\"},\n \"saving-saving\": {1029: \"Ukládání...\", 1033: \"Saving...\"},\n \"saving-changepreview-title\": {1033: 'Number of updated rows: {{numOfChanges}}', 1029: 'Počet upravených záznamů: {{numOfChanges}}'},\n \"saving-validation-error\": {1029: 'Pro uložení záznamu je nutné opravit chybové hodnoty následujících sloupců: <b>{{columnDisplayNames}}</b>', 1033: 'Folowing columns have validation errors: <b>{{columnDisplayNames}}</b>'},\n \"validation-input-value\": {1029: 'Zadejte hodnotu', 1033: 'Please enter value.'},\n \"validation-email\": {1029: 'Neplatný formát emailové adresy.', 1033: 'Invalid Email address format.'},\n \"validation-url\": {1029: 'Neplatný formát webové adresy.', 1033: 'Invalid URL format.'},\n \"validation-date\": {1029: 'Neplatný formát datumu.', 1033: 'Invalid Date format.'},\n \"validation-number\": {1029: 'Neplatný formát čísla.', 1033: 'Invalid Number format.'},\n \"no-name\": {1029: '(Bez názvu)', 1033: '(No Name)'},\n \"download\": {1029: 'Stáhnout', 1033: 'Download'},\n};\n \n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translations.js","sources":["../../../src/components/Grid/translations.ts"],"sourcesContent":["export const gridTranslations = {\n \"condition-none\": { 1029: \"Žádná\", 1033: \"None\" },\n \"condition-equal\": { 1029: \"Je rovno\", 1033: \"Equals\" },\n \"condition-notequal\": { 1029: \"Není rovno\", 1033: \"Does not equal\" },\n \"condition-greaterthan\": { 1029: \"Větší než\", 1033: \"Greater than\" },\n \"condition-lessthan\": { 1029: \"Menší než\", 1033: \"Less than\" },\n \"condition-greaterequal\": { 1029: \"Větší než nebo rovno\", 1033: \"Greater than or equal to\" },\n \"condition-lessequal\": { 1029: \"Menší než nebo rovno\", 1033: \"Less than or equal to\" },\n \"condition-like\": { 1029: \"Obsahuje\", 1033: \"Contains\" },\n \"condition-notlike\": { 1029: \"Neobsahuje\", 1033: \"Does not contain\" },\n \"condition-null\": { 1029: \"Neobsahuje data\", 1033: \"Does not contain data\" },\n \"condition-notnull\": { 1029: \"Obsahuje data\", 1033: \"Contains data\" },\n \"condition-beginwith\": { 1029: \"Začíná na\", 1033: \"Begins with\" },\n \"condition-doesnotbeginwith\": { 1029: \"Nezačíná na\", 1033: \"Does not begin with\" },\n \"condition-endswith\": { 1029: \"Končí na\", 1033: \"Ends with\" },\n \"condition-doesnotendwith\": { 1029: \"Nekončí na\", 1033: \"Does not end with\" },\n \"condition-yesterday\": { 1029: \"Včera\", 1033: \"Yesterday\" },\n \"condition-today\": { 1029: \"Dneska\", 1033: \"Today\" },\n \"condition-tomorrow\": { 1029: \"Zítra\", 1033: \"Tomorrow\" },\n \"condition-last7days\": { 1029: \"Posledních 7 dnů\", 1033: \"Last 7 days\" },\n \"condition-next7days\": { 1029: \"Příštích 7 dnů\", 1033: \"Next 7 days\" },\n \"condition-lastweek\": { 1029: \"Minulý týden\", 1033: \"Last week\" },\n \"condition-thisweek\": { 1029: \"Tento týden\", 1033: \"This week\" },\n \"condition-lastmonth\": { 1029: \"Minulý měsíc\", 1033: \"Last month\" },\n \"condition-thismonth\": { 1029: \"Tento měsíc\", 1033: \"This month\" },\n \"condition-on\": { 1029: \"V den\", 1033: \"On\" },\n \"condition-onorbefore\": { 1029: \"Před dnem (včetně)\", 1033: \"On or before\" },\n \"condition-onorafter\": { 1029: \"Po dni (včetně)\", 1033: \"On or after\" },\n \"condition-lastyear\": { 1029: \"Poslední rok\", 1033: \"Last year\" },\n \"condition-thisyear\": { 1029: \"Tento rok\", 1033: \"This year\" },\n \"condition-lastxdays\": { 1029: \"Posledních X dnů\", 1033: \"Last X days\" },\n \"condition-nextxdays\": { 1029: \"Příštích X dnů\", 1033: \"Next X days\" },\n \"condition-lastxmonths\": { 1029: \"Posledních X měsíců\", 1033: \"Last X months\" },\n \"condition-nextxmonths\": { 1029: \"Příštích X měsíců\", 1033: \"Next X months\" },\n \"condition-contains\": { 1029: \"Obsahuje\", 1033: \"Contains\" },\n \"condition-infiscalperiodandyear\": { 1029: \"Toto fiskální období a rok\", 1033: \"In fiscal period and year\" },\n \"condition-above\": { 1029: \"Nad\", 1033: \"Above\" },\n \"condition-under\": { 1029: \"Pod\", 1033: \"Under\" },\n \"condition-notunder\": { 1029: \"Není pod\", 1033: \"Not under\" },\n \"condition-aboveorequal\": { 1029: \"Je nad nebo se rovná\", 1033: \"Above or equal\" },\n \"condition-underorequal\": { 1029: \"Je pod nebo se rovná\", 1033: \"Under or equal\" },\n \"condition-containvalues\": { 1029: \"Obsahuje hodnoty\", 1033: \"Contain values\" },\n \"condition-doesnotcontainvalues\": { 1029: \"Neobsahuje hodnoty\", 1033: \"Does not contain values\" },\n \"filtermenu-filterby\": { 1029: \"Filtrovat podle\", 1033: \"Filter By\" },\n \"filtermenu-applybutton\": { 1029: \"Použít\", 1033: \"Apply\" },\n \"filtermenu-clearbutton\": { 1029: \"Vymazat\", 1033: \"Clear\" },\n \"filtersortmenu-sorttext-a-z\": { 1029: \"Seřadit od A do Z\", 1033: \"Sort A to Z\" },\n \"filtersortmenu-sorttext-z-a\": { 1029: \"Seřadit od Z do A\", 1033: \"Sort Z to A\" },\n \"filtersortmenu-sortdate-a-z\": { 1029: \"Seřadit od nejstarších\", 1033: \"Sort older to newer\" },\n \"filtersortmenu-sortdate-z-a\": { 1029: \"Seřadit od nejnovějších\", 1033: \"Sort newer to older\" },\n \"filtersortmenu-sortnumber-a-z\": { 1029: \"Seřadit od nejmenších\", 1033: \"Sort smaller to larger\" },\n \"filtersortmenu-sortnumber-z-a\": { 1029: \"Seřadit od největších\", 1033: \"Sort larger to smaller\" },\n \"filtersortmenu-sorttwooption-a-z\": { 1029: \"Seřadit od nejmenších\", 1033: \"No to Yes\" },\n \"filtersortmenu-sorttwooption-z-a\": { 1029: \"Seřadit od největších\", 1033: \"Yes to No\" },\n \"filtersortmenu-sorttwooption-joint\": { 1029: \"až\", 1033: \"to\" },\n \"filtersortmenu-filterby\": { 1029: \"Filtrovat podle\", 1033: \"Filter by\" },\n \"filtersortmenu-clearfilter\": { 1029: \"Vymazat filtr\", 1033: \"Clear filter\" },\n \"paging-of\": { 1029: \"z\", 1033: \"of\" },\n \"paging-firstpage\": { 1029: \"První strana\", 1033: \"First page\" },\n \"paging-previouspage\": { 1029: \"Předchozí\", 1033: \"Previous\" },\n \"paging-page\": { 1029: \"Strana\", 1033: \"Page\" },\n \"paging-nextpage\": { 1029: \"Další\", 1033: \"Next\" },\n \"paging-lastpage\": { 1029: \"Poslední strana\", 1033: \"Last page\" },\n \"paging-pages\": {1029: \"{{start}} - {{end}}\", 1033: \"{{start}} - {{end}}\"},\n \"paging-pages-totalcount\": {1029: \"z {{recordcount}}\", 1033: \"of {{recordcount}}\"},\n \"norecordsfound\": {1029: 'Nenašli jsme nic, co by se zde dalo zobrazit.', 1033: 'No records found.'},\n \"saving-changenotification\": {1029: \"Počet upravených záznamů: <b>{{numOfChanges}}</b>. Klikněte <u>zde</u> pro jejich zobrazení.\", 1033: \"Number of updated records: <b>{{numOfChanges}}</b>. Click <u>here</u> to review.\"},\n \"saving-save\": {1029: \"Uložit\", 1033: \"Save\"},\n \"saving-saving\": {1029: \"Ukládání...\", 1033: \"Saving...\"},\n \"saving-changepreview-title\": {1033: 'Number of updated rows: {{numOfChanges}}', 1029: 'Počet upravených záznamů: {{numOfChanges}}'},\n \"saving-validation-error\": {1029: 'Pro uložení záznamu je nutné opravit chybové hodnoty následujících sloupců: <b>{{columnDisplayNames}}</b>', 1033: 'Folowing columns have validation errors: <b>{{columnDisplayNames}}</b>'},\n \"validation-input-value\": {1029: 'Zadejte hodnotu', 1033: 'Please enter value.'},\n \"validation-email\": {1029: 'Neplatný formát emailové adresy.', 1033: 'Invalid Email address format.'},\n \"validation-url\": {1029: 'Neplatný formát webové adresy.', 1033: 'Invalid URL format.'},\n \"validation-date\": {1029: 'Neplatný formát datumu.', 1033: 'Invalid Date format.'},\n \"validation-number\": {1029: 'Neplatný formát čísla.', 1033: 'Invalid Number format.'},\n \"no-name\": {1029: '(Bez názvu)', 1033: '(No Name)'},\n \"download\": {1029: 'Stáhnout', 1033: 'Download'},\n};\n \n"],"names":[],"mappings":"AAAa,MAAA,gBAAgB,GAAG;IAC5B,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACjD,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvD,oBAAoB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE;IACpE,uBAAuB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE;IACpE,oBAAoB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE;IAC9D,wBAAwB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,0BAA0B,EAAE;IAC5F,qBAAqB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,uBAAuB,EAAE;IACtF,gBAAgB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;IACxD,mBAAmB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE;IACrE,gBAAgB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,uBAAuB,EAAE;IAC5E,mBAAmB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;IACrE,qBAAqB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE;IACjE,4BAA4B,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE;IAClF,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE;IAC7D,0BAA0B,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;IAC7E,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;IAC3D,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;IACpD,oBAAoB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;IACzD,qBAAqB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE;IACxE,qBAAqB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE;IACtE,oBAAoB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE;IACjE,oBAAoB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE;IAChE,qBAAqB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE;IACnE,qBAAqB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE;IAClE,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7C,sBAAsB,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc,EAAE;IAC5E,qBAAqB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE;IACvE,oBAAoB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE;IACjE,oBAAoB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE;IAC9D,qBAAqB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE;IACxE,qBAAqB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE;IACtE,uBAAuB,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,eAAe,EAAE;IAC/E,uBAAuB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,eAAe,EAAE;IAC7E,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;IAC5D,iCAAiC,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,2BAA2B,EAAE;IAC5G,iBAAiB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,iBAAiB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE;IAC7D,wBAAwB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAClF,wBAAwB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAClF,yBAAyB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAC/E,gCAAgC,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACjG,qBAAqB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE;IACrE,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,wBAAwB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5D,6BAA6B,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,aAAa,EAAE;IACjF,6BAA6B,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,aAAa,EAAE;IACjF,6BAA6B,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,qBAAqB,EAAE;IAC9F,6BAA6B,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,qBAAqB,EAAE;IAC/F,+BAA+B,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,wBAAwB,EAAE;IAClG,+BAA+B,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,wBAAwB,EAAE;IAClG,kCAAkC,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,WAAW,EAAE;IACxF,kCAAkC,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,WAAW,EAAE;IACxF,oCAAoC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;IAChE,yBAAyB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE;IACzE,4BAA4B,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE;IAC7E,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;IACtC,kBAAkB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE;IAChE,qBAAqB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;IAC9D,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAC/C,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAClD,iBAAiB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE;IACjE,cAAc,EAAE,EAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,EAAC;IAC1E,yBAAyB,EAAE,EAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,oBAAoB,EAAC;IAClF,gBAAgB,EAAE,EAAC,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,mBAAmB,EAAC;IACpG,2BAA2B,EAAE,EAAC,IAAI,EAAE,8FAA8F,EAAE,IAAI,EAAE,kFAAkF,EAAC;IAC7N,aAAa,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAC;IAC7C,eAAe,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAC;IACzD,4BAA4B,EAAE,EAAC,IAAI,EAAE,0CAA0C,EAAE,IAAI,EAAE,4CAA4C,EAAC;IACpI,yBAAyB,EAAE,EAAC,IAAI,EAAE,2GAA2G,EAAE,IAAI,EAAE,wEAAwE,EAAC;IAC9N,wBAAwB,EAAG,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,qBAAqB,EAAC;IACjF,kBAAkB,EAAG,EAAC,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,+BAA+B,EAAC;IACtG,gBAAgB,EAAG,EAAC,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,qBAAqB,EAAC;IACxF,iBAAiB,EAAE,EAAC,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,sBAAsB,EAAC;IAClF,mBAAmB,EAAE,EAAC,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,wBAAwB,EAAC;IACrF,SAAS,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAC;IACnD,UAAU,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAC;;;;;"}
package/dist/index.d.ts CHANGED
@@ -279,6 +279,10 @@ declare const gridTranslations: {
279
279
  1029: string;
280
280
  1033: string;
281
281
  };
282
+ "paging-pages-totalcount": {
283
+ 1029: string;
284
+ 1033: string;
285
+ };
282
286
  norecordsfound: {
283
287
  1029: string;
284
288
  1033: string;
@@ -352,9 +356,9 @@ interface IGridParameters extends IParameters$1 {
352
356
  EnableSorting?: Omit<ITwoOptionsProperty, 'attributes'>;
353
357
  EnableNavigation?: Omit<ITwoOptionsProperty, 'attributes'>;
354
358
  EnableOptionSetColors?: Omit<ITwoOptionsProperty, 'attributes'>;
355
- UseContainerAsHeight?: Omit<ITwoOptionsProperty, 'attributes'>;
359
+ Height?: IStringProperty;
356
360
  InlineRibbonButtonIds?: IStringProperty;
357
- SelectableRows?: ComponentFramework.PropertyTypes.EnumProperty<"none" | "single" | "multiple">;
361
+ SelectableRows?: Omit<ComponentFramework.PropertyTypes.EnumProperty<"none" | "single" | "multiple">, 'type'>;
358
362
  Grid: IDatasetProperty;
359
363
  }
360
364
  interface IGridOutputs extends IOutputs$1 {
@@ -856,10 +860,23 @@ interface ITwoOptionsOutputs extends IOutputs$1 {
856
860
 
857
861
  declare const TwoOptions: (props: ITwoOptions) => JSX.Element;
858
862
 
859
- declare class Numeral {
860
- static decimal(formatting: ComponentFramework.UserSettingApi.NumberFormattingInfo): void;
861
- static currency(formatting: ComponentFramework.UserSettingApi.NumberFormattingInfo): void;
862
- private static get _locales();
863
+ declare const datasetControlTranslations: {
864
+ search: {
865
+ 1029: string;
866
+ 1033: string;
867
+ };
868
+ records: {
869
+ 1029: string;
870
+ 1033: string;
871
+ };
872
+ };
873
+
874
+ interface IDatasetControl extends IControl<IGridParameters, IGridOutputs, Partial<ITranslation<typeof datasetControlTranslations & typeof gridTranslations>>, any & {
875
+ onDatasetInit: () => void;
876
+ }> {
877
+ EnableQuickFind?: Omit<ITwoOptionsProperty, 'attributes'>;
863
878
  }
864
879
 
865
- export { DateTime, Decimal, Duration, Grid, IControl, IControlController, IDatasetProperty, IDateTime, IDateTimeOutputs, IDateTimeParameters, IDateTimeProperty, IDecimal, IDecimalNumberProperty, IDecimalOutputs, IDecimalParameters, IDefaultTranslations, IDuration, IDurationOutputs, IDurationParameters, IEntity, IEntityColumn, IEntityRecord, IGrid, IGridOutputs, IGridParameters, ILayout, ILookup, ILookupOutputs, ILookupParameters, ILookupProperty, IMetadata, IMultiSelectOptionSet, IMultiSelectOptionSetOutputs, IMultiSelectOptionSetParameters, IMultiSelectOptionSetProperty, IOptionSet, IOptionSetOutputs, IOptionSetParameters, IOptionSetProperty, IOutputs, IParameters$1 as IParameters, IProperty, IStringProperty, ITextField, ITextFieldOutputs, ITextFieldParameters, ITranslation, ITranslations, ITwoOptions, ITwoOptionsOutputs, ITwoOptionsParameters, ITwoOptionsProperty, IWholeNumberProperty, Lookup, MultiSelectOptionSet, Numeral, OptionSet, TextField, TwoOptions, useControl, useControlSizing, useControlTheme, useDateTime, useFocusIn, useInputBasedControl, useLookup, useMouseOver };
880
+ declare const DatasetControl: (props: IDatasetControl) => JSX.Element;
881
+
882
+ export { DatasetControl, DateTime, Decimal, Duration, Grid, IControl, IControlController, IDatasetControl, IDatasetProperty, IDateTime, IDateTimeOutputs, IDateTimeParameters, IDateTimeProperty, IDecimal, IDecimalNumberProperty, IDecimalOutputs, IDecimalParameters, IDefaultTranslations, IDuration, IDurationOutputs, IDurationParameters, IEntity, IEntityColumn, IEntityRecord, IGrid, IGridOutputs, IGridParameters, ILayout, ILookup, ILookupOutputs, ILookupParameters, ILookupProperty, IMetadata, IMultiSelectOptionSet, IMultiSelectOptionSetOutputs, IMultiSelectOptionSetParameters, IMultiSelectOptionSetProperty, IOptionSet, IOptionSetOutputs, IOptionSetParameters, IOptionSetProperty, IOutputs, IParameters$1 as IParameters, IProperty, IStringProperty, ITextField, ITextFieldOutputs, ITextFieldParameters, ITranslation, ITranslations, ITwoOptions, ITwoOptionsOutputs, ITwoOptionsParameters, ITwoOptionsProperty, IWholeNumberProperty, Lookup, MultiSelectOptionSet, OptionSet, TextField, TwoOptions, useControl, useControlSizing, useControlTheme, useDateTime, useFocusIn, useInputBasedControl, useLookup, useMouseOver };
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export { Numeral } from './utils/Numeral.js';
2
1
  export { useControl } from './hooks/useControl.js';
3
2
  export { useControlSizing } from './hooks/useControlSizing.js';
4
3
  export { useFocusIn } from './hooks/useFocusIn.js';
@@ -16,4 +15,5 @@ export { MultiSelectOptionSet } from './components/MultiSelectOptionSet/MultiSel
16
15
  export { OptionSet } from './components/OptionSet/OptionSet.js';
17
16
  export { TextField } from './components/TextField/TextField.js';
18
17
  export { TwoOptions } from './components/TwoOptions/TwoOptions.js';
18
+ export { DatasetControl } from './components/DatasetControl/DatasetControl.js';
19
19
  //# sourceMappingURL=index.js.map
@@ -1,2 +1 @@
1
- export * from './Numeral';
2
1
  export * from './Theme';
@@ -1,3 +1,2 @@
1
- export { Numeral } from './Numeral.js';
2
1
  export { getControlTheme, normalizeComponentStyling } from './Theme.js';
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}