@talxis/base-controls 1.2510.1 → 1.2512.2
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/DatasetControl/DatasetControl.d.ts +2 -2
- package/dist/components/DatasetControl/DatasetControl.js +78 -57
- package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
- package/dist/components/DatasetControl/DatasetControlModel.d.ts +16 -0
- package/dist/components/DatasetControl/DatasetControlModel.js +32 -0
- package/dist/components/DatasetControl/DatasetControlModel.js.map +1 -0
- package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.d.ts +3 -0
- package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js +166 -0
- package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js.map +1 -0
- package/dist/components/DatasetControl/Filtering/DatasetColumnFilteringModel.d.ts +15 -0
- package/dist/components/DatasetControl/Filtering/DatasetColumnFilteringModel.js +59 -0
- package/dist/components/DatasetControl/Filtering/DatasetColumnFilteringModel.js.map +1 -0
- package/dist/components/DatasetControl/Filtering/interfaces.d.ts +31 -0
- package/dist/components/DatasetControl/Filtering/styles.d.ts +16 -0
- package/dist/components/DatasetControl/Filtering/styles.js +23 -0
- package/dist/components/DatasetControl/Filtering/styles.js.map +1 -0
- package/dist/components/DatasetControl/Filtering/translations.d.ts +154 -0
- package/dist/components/DatasetControl/Filtering/translations.js +43 -0
- package/dist/components/DatasetControl/Filtering/translations.js.map +1 -0
- package/dist/components/DatasetControl/Header/Header.d.ts +5 -0
- package/dist/components/DatasetControl/Header/Header.js +79 -0
- package/dist/components/DatasetControl/Header/Header.js.map +1 -0
- package/dist/components/DatasetControl/Header/styles.d.ts +19 -0
- package/dist/components/DatasetControl/Header/styles.js +26 -0
- package/dist/components/DatasetControl/Header/styles.js.map +1 -0
- package/dist/components/DatasetControl/Pagination/Pagination.d.ts +5 -0
- package/dist/components/DatasetControl/Pagination/Pagination.js +93 -0
- package/dist/components/DatasetControl/Pagination/Pagination.js.map +1 -0
- package/dist/components/DatasetControl/Pagination/PaginationModel.d.ts +10 -0
- package/dist/components/DatasetControl/Pagination/PaginationModel.js +45 -0
- package/dist/components/DatasetControl/Pagination/PaginationModel.js.map +1 -0
- package/dist/components/DatasetControl/Pagination/styles.d.ts +23 -0
- package/dist/components/DatasetControl/Pagination/styles.js +29 -0
- package/dist/components/DatasetControl/Pagination/styles.js.map +1 -0
- package/dist/components/DatasetControl/QuickFind/QuickFind.d.ts +4 -12
- package/dist/components/DatasetControl/QuickFind/QuickFind.js +37 -32
- package/dist/components/DatasetControl/QuickFind/QuickFind.js.map +1 -1
- package/dist/components/DatasetControl/QuickFind/styles.d.ts +1 -1
- package/dist/components/DatasetControl/QuickFind/styles.js +2 -2
- package/dist/components/DatasetControl/QuickFind/styles.js.map +1 -1
- package/dist/components/DatasetControl/index.d.ts +0 -1
- package/dist/components/DatasetControl/index.js +0 -2
- package/dist/components/DatasetControl/index.js.map +1 -1
- package/dist/components/DatasetControl/interfaces.d.ts +68 -23
- package/dist/components/DatasetControl/styles.d.ts +4 -11
- package/dist/components/DatasetControl/styles.js +5 -11
- package/dist/components/DatasetControl/styles.js.map +1 -1
- package/dist/components/DatasetControl/translations.d.ts +44 -0
- package/dist/components/DatasetControl/translations.js +15 -1
- package/dist/components/DatasetControl/translations.js.map +1 -1
- package/dist/components/DatasetControl/useModel.d.ts +4 -0
- package/dist/components/DatasetControl/useModel.js +9 -0
- package/dist/components/DatasetControl/useModel.js.map +1 -0
- package/dist/components/Grid/{core/components/Cell → cells/cell}/Cell.d.ts +3 -3
- package/dist/components/Grid/cells/cell/Cell.js +231 -0
- package/dist/components/Grid/cells/cell/Cell.js.map +1 -0
- package/dist/components/Grid/cells/cell/content/CellContent.d.ts +3 -0
- package/dist/components/Grid/{core/components/Cell/CellContent → cells/cell/content}/CellContent.js +44 -35
- package/dist/components/Grid/cells/cell/content/CellContent.js.map +1 -0
- package/dist/components/Grid/{core/components/Cell/CellContent → cells/cell/content}/styles.d.ts +4 -1
- package/dist/components/Grid/{core/components/Cell/CellContent → cells/cell/content}/styles.js +8 -3
- package/dist/components/Grid/cells/cell/content/styles.js.map +1 -0
- package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/Notifications.d.ts +1 -1
- package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/Notifications.js +5 -5
- package/dist/components/Grid/cells/cell/notifications/Notifications.js.map +1 -0
- package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/styles.js +1 -1
- package/dist/components/Grid/cells/cell/notifications/styles.js.map +1 -0
- package/dist/components/Grid/{core/components/Cell → cells/cell}/styles.d.ts +12 -6
- package/dist/components/Grid/{core/components/Cell → cells/cell}/styles.js +14 -20
- package/dist/components/Grid/cells/cell/styles.js.map +1 -0
- package/dist/components/Grid/cells/selection-cell/SelectionCell.d.ts +8 -0
- package/dist/components/Grid/cells/selection-cell/SelectionCell.js +78 -0
- package/dist/components/Grid/cells/selection-cell/SelectionCell.js.map +1 -0
- package/dist/components/Grid/cells/selection-cell/SelectionCellModel.d.ts +7 -0
- package/dist/components/Grid/cells/selection-cell/record-save-error-callout/RecordSaveErrorCallout.d.ts +11 -0
- package/dist/components/Grid/cells/selection-cell/record-save-error-callout/RecordSaveErrorCallout.js +19 -0
- package/dist/components/Grid/cells/selection-cell/record-save-error-callout/RecordSaveErrorCallout.js.map +1 -0
- package/dist/components/Grid/cells/selection-cell/record-save-error-callout/styles.d.ts +17 -0
- package/dist/components/Grid/cells/selection-cell/record-save-error-callout/styles.js +24 -0
- package/dist/components/Grid/cells/selection-cell/record-save-error-callout/styles.js.map +1 -0
- package/dist/components/Grid/cells/selection-cell/styles.d.ts +27 -0
- package/dist/components/Grid/cells/selection-cell/styles.js +33 -0
- package/dist/components/Grid/cells/selection-cell/styles.js.map +1 -0
- package/dist/components/Grid/{core/components/ColumnHeader → column-headers/column-header}/ColumnHeader.d.ts +1 -1
- package/dist/components/Grid/column-headers/column-header/ColumnHeader.js +88 -0
- package/dist/components/Grid/column-headers/column-header/ColumnHeader.js.map +1 -0
- package/dist/components/Grid/{sorting/components/SortingContextualMenu/SortingContextualMenu.d.ts → column-headers/column-header/ColumnHeaderContextualMenu.d.ts} +3 -3
- package/dist/components/Grid/column-headers/column-header/ColumnHeaderContextualMenu.js +115 -0
- package/dist/components/Grid/column-headers/column-header/ColumnHeaderContextualMenu.js.map +1 -0
- package/dist/components/Grid/{filtering/components/FilterCallout → column-headers/column-header}/FilterCallout.d.ts +1 -1
- package/dist/components/Grid/column-headers/column-header/FilterCallout.js +107 -0
- package/dist/components/Grid/column-headers/column-header/FilterCallout.js.map +1 -0
- package/dist/components/Grid/column-headers/column-header/styles.d.ts +84 -0
- package/dist/components/Grid/{filtering/components/FilterCallout → column-headers/column-header}/styles.js +20 -11
- package/dist/components/Grid/column-headers/column-header/styles.js.map +1 -0
- package/dist/components/Grid/column-headers/record-selection-checkbox/RecordSelectionCheckbox.d.ts +2 -0
- package/dist/components/Grid/column-headers/record-selection-checkbox/RecordSelectionCheckbox.js +45 -0
- package/dist/components/Grid/column-headers/record-selection-checkbox/RecordSelectionCheckbox.js.map +1 -0
- package/dist/components/Grid/{core/components/ColumnHeader/components/GlobalCheckbox → column-headers/record-selection-checkbox}/styles.d.ts +1 -3
- package/dist/components/Grid/{core/components/ColumnHeader/components/GlobalCheckbox → column-headers/record-selection-checkbox}/styles.js +1 -2
- package/dist/components/Grid/column-headers/record-selection-checkbox/styles.js.map +1 -0
- package/dist/components/Grid/errors/FullWidthCellRendererError/FullWidthCellRendererError.d.ts +6 -0
- package/dist/components/Grid/errors/FullWidthCellRendererError/FullWidthCellRendererError.js +15 -0
- package/dist/components/Grid/errors/FullWidthCellRendererError/FullWidthCellRendererError.js.map +1 -0
- package/dist/components/Grid/errors/FullWidthCellRendererError/styles.d.ts +6 -0
- package/dist/components/Grid/errors/FullWidthCellRendererError/styles.js +13 -0
- package/dist/components/Grid/errors/FullWidthCellRendererError/styles.js.map +1 -0
- package/dist/components/Grid/{core/components/AgGrid/AgGrid.d.ts → grid/Grid.d.ts} +2 -2
- package/dist/components/Grid/grid/Grid.js +64 -0
- package/dist/components/Grid/grid/Grid.js.map +1 -0
- package/dist/components/Grid/grid/GridContext.d.ts +3 -0
- package/dist/components/Grid/grid/GridContext.js.map +1 -0
- package/dist/components/Grid/grid/GridModel.d.ts +110 -0
- package/dist/components/Grid/grid/GridModel.js +767 -0
- package/dist/components/Grid/grid/GridModel.js.map +1 -0
- package/dist/components/Grid/{core/components/AgGrid/model/Comparator.d.ts → grid/ValueComparator.d.ts} +1 -1
- package/dist/components/Grid/{core/components/AgGrid/model/Comparator.js → grid/ValueComparator.js} +7 -1
- package/dist/components/Grid/grid/ValueComparator.js.map +1 -0
- package/dist/components/Grid/{core/components/AgGrid/context.d.ts → grid/ag-grid/AgGridContext.d.ts} +2 -2
- package/dist/components/Grid/{core/components/AgGrid/context.js → grid/ag-grid/AgGridContext.js} +1 -1
- package/dist/components/Grid/grid/ag-grid/AgGridContext.js.map +1 -0
- package/dist/components/Grid/grid/ag-grid/AgGridModel.d.ts +90 -0
- package/dist/components/Grid/grid/ag-grid/AgGridModel.js +657 -0
- package/dist/components/Grid/grid/ag-grid/AgGridModel.js.map +1 -0
- package/dist/components/Grid/grid/ag-grid/ServerSideDatasource.d.ts +7 -0
- package/dist/components/Grid/grid/ag-grid/ServerSideDatasource.js +38 -0
- package/dist/components/Grid/grid/ag-grid/ServerSideDatasource.js.map +1 -0
- package/dist/components/Grid/grid/ag-grid/useAgGridInstance.d.ts +2 -0
- package/dist/components/Grid/grid/ag-grid/useAgGridInstance.js +9 -0
- package/dist/components/Grid/grid/ag-grid/useAgGridInstance.js.map +1 -0
- package/dist/components/Grid/{core/components/AgGrid → grid}/styles.d.ts +24 -4
- package/dist/components/Grid/{core/components/AgGrid → grid}/styles.js +37 -6
- package/dist/components/Grid/grid/styles.js.map +1 -0
- package/dist/components/Grid/grid/useGridInstance.d.ts +2 -0
- package/dist/components/Grid/{core/hooks → grid}/useGridInstance.js +2 -2
- package/dist/components/Grid/grid/useGridInstance.js.map +1 -0
- package/dist/components/Grid/index.d.ts +1 -1
- package/dist/components/Grid/index.js +1 -1
- package/dist/components/Grid/interfaces.d.ts +10 -1
- package/dist/components/Grid/loading/full-row/FullRowLoading.d.ts +3 -0
- package/dist/components/Grid/loading/full-row/FullRowLoading.js +33 -0
- package/dist/components/Grid/loading/full-row/FullRowLoading.js.map +1 -0
- package/dist/components/Grid/loading/full-row/styles.d.ts +9 -0
- package/dist/components/Grid/loading/full-row/styles.js +16 -0
- package/dist/components/Grid/loading/full-row/styles.js.map +1 -0
- package/dist/components/Grid/overlays/empty-records/EmptyRecordsOverlay.js +13 -0
- package/dist/components/Grid/overlays/empty-records/EmptyRecordsOverlay.js.map +1 -0
- package/dist/components/Grid/{core/components/AgGrid/components/EmptyRecordsOverlay → overlays/empty-records}/styles.d.ts +1 -1
- package/dist/components/Grid/{core/components/AgGrid/components/EmptyRecordsOverlay → overlays/empty-records}/styles.js +1 -1
- package/dist/components/Grid/overlays/empty-records/styles.js.map +1 -0
- package/dist/components/Grid/overlays/loading/LoadingOverlay.js.map +1 -0
- package/dist/components/Grid/translations.d.ts +21 -177
- package/dist/components/Grid/translations.js +6 -48
- package/dist/components/Grid/translations.js.map +1 -1
- package/dist/components/GridCellRenderer/GridCellRenderer.js +99 -282
- package/dist/components/GridCellRenderer/GridCellRenderer.js.map +1 -1
- package/dist/components/GridCellRenderer/GridCellRendererModel.d.ts +51 -0
- package/dist/components/GridCellRenderer/GridCellRendererModel.js +211 -0
- package/dist/components/GridCellRenderer/GridCellRendererModel.js.map +1 -0
- package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/ColorfulOptionSetValueRenderer.d.ts +9 -0
- package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/ColorfulOptionSetValueRenderer.js +53 -0
- package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/ColorfulOptionSetValueRenderer.js.map +1 -0
- package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/styles.d.ts +20 -0
- package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/styles.js +29 -0
- package/dist/components/GridCellRenderer/ValueRenderer/ColorfulOptionSetValueRenderer/styles.js.map +1 -0
- package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.d.ts +7 -0
- package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.js +76 -0
- package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.js.map +1 -0
- package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/styles.d.ts +18 -0
- package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/styles.js +25 -0
- package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/styles.js.map +1 -0
- package/dist/components/GridCellRenderer/ValueRenderer/ValueRenderer.d.ts +3 -0
- package/dist/components/GridCellRenderer/ValueRenderer/ValueRenderer.js +52 -0
- package/dist/components/GridCellRenderer/ValueRenderer/ValueRenderer.js.map +1 -0
- package/dist/components/GridCellRenderer/ValueRenderer/styles.d.ts +1666 -0
- package/dist/components/GridCellRenderer/ValueRenderer/styles.js +31 -0
- package/dist/components/GridCellRenderer/ValueRenderer/styles.js.map +1 -0
- package/dist/components/GridCellRenderer/interfaces.d.ts +53 -42
- package/dist/components/GridCellRenderer/properties/Email.d.ts +5 -0
- package/dist/components/GridCellRenderer/properties/Email.js +15 -0
- package/dist/components/GridCellRenderer/properties/Email.js.map +1 -0
- package/dist/components/GridCellRenderer/properties/File.d.ts +19 -0
- package/dist/components/GridCellRenderer/properties/File.js +99 -0
- package/dist/components/GridCellRenderer/properties/File.js.map +1 -0
- package/dist/components/GridCellRenderer/properties/Image.d.ts +4 -0
- package/dist/components/GridCellRenderer/properties/Image.js +15 -0
- package/dist/components/GridCellRenderer/properties/Image.js.map +1 -0
- package/dist/components/GridCellRenderer/properties/Lookup.d.ts +5 -0
- package/dist/components/GridCellRenderer/properties/Lookup.js +16 -0
- package/dist/components/GridCellRenderer/properties/Lookup.js.map +1 -0
- package/dist/components/GridCellRenderer/properties/MultiSelectOptionSet.d.ts +5 -0
- package/dist/components/GridCellRenderer/properties/MultiSelectOptionSet.js +11 -0
- package/dist/components/GridCellRenderer/properties/MultiSelectOptionSet.js.map +1 -0
- package/dist/components/GridCellRenderer/properties/MultilineText.d.ts +4 -0
- package/dist/components/GridCellRenderer/properties/MultilineText.js +10 -0
- package/dist/components/GridCellRenderer/properties/MultilineText.js.map +1 -0
- package/dist/components/GridCellRenderer/properties/OptionSet.d.ts +5 -0
- package/dist/components/GridCellRenderer/properties/OptionSet.js +11 -0
- package/dist/components/GridCellRenderer/properties/OptionSet.js.map +1 -0
- package/dist/components/GridCellRenderer/properties/OptionSetBase.d.ts +7 -0
- package/dist/components/GridCellRenderer/properties/OptionSetBase.js +19 -0
- package/dist/components/GridCellRenderer/properties/OptionSetBase.js.map +1 -0
- package/dist/components/GridCellRenderer/properties/Phone.d.ts +9 -0
- package/dist/components/GridCellRenderer/properties/Phone.js +15 -0
- package/dist/components/GridCellRenderer/properties/Phone.js.map +1 -0
- package/dist/components/GridCellRenderer/properties/Property.d.ts +19 -0
- package/dist/components/GridCellRenderer/properties/Property.js +59 -0
- package/dist/components/GridCellRenderer/properties/Property.js.map +1 -0
- package/dist/components/GridCellRenderer/properties/TwoOptions.d.ts +5 -0
- package/dist/components/GridCellRenderer/properties/TwoOptions.js +11 -0
- package/dist/components/GridCellRenderer/properties/TwoOptions.js.map +1 -0
- package/dist/components/GridCellRenderer/properties/Url.d.ts +5 -0
- package/dist/components/GridCellRenderer/properties/Url.js +15 -0
- package/dist/components/GridCellRenderer/properties/Url.js.map +1 -0
- package/dist/components/GridCellRenderer/styles.d.ts +34 -60
- package/dist/components/GridCellRenderer/styles.js +69 -77
- package/dist/components/GridCellRenderer/styles.js.map +1 -1
- package/dist/components/GridCellRenderer/translations.d.ts +1 -1
- package/dist/components/GridCellRenderer/translations.js +30 -32
- package/dist/components/GridCellRenderer/translations.js.map +1 -1
- package/dist/components/GridCellRenderer/useModel.d.ts +4 -0
- package/dist/components/GridCellRenderer/useModel.js +9 -0
- package/dist/components/GridCellRenderer/useModel.js.map +1 -0
- package/dist/components/GridColumnHeader/GridColumnHeader.d.ts +3 -0
- package/dist/components/GridColumnHeader/GridColumnHeader.js +134 -0
- package/dist/components/GridColumnHeader/GridColumnHeader.js.map +1 -0
- package/dist/components/GridColumnHeader/GridColumnHeaderModel.d.ts +26 -0
- package/dist/components/GridColumnHeader/GridColumnHeaderModel.js +85 -0
- package/dist/components/GridColumnHeader/GridColumnHeaderModel.js.map +1 -0
- package/dist/components/GridColumnHeader/interfaces.d.ts +48 -0
- package/dist/components/GridColumnHeader/styles.d.ts +37 -0
- package/dist/components/GridColumnHeader/styles.js +55 -0
- package/dist/components/GridColumnHeader/styles.js.map +1 -0
- package/dist/components/GridColumnHeader/translations.d.ts +26 -0
- package/dist/components/GridColumnHeader/translations.js +29 -0
- package/dist/components/GridColumnHeader/translations.js.map +1 -0
- package/dist/components/GridInlineRibbon/GridInlineRibbon.d.ts +3 -0
- package/dist/components/GridInlineRibbon/GridInlineRibbon.js +113 -0
- package/dist/components/GridInlineRibbon/GridInlineRibbon.js.map +1 -0
- package/dist/components/GridInlineRibbon/GridInlineRibbonModel.d.ts +25 -0
- package/dist/components/GridInlineRibbon/GridInlineRibbonModel.js +49 -0
- package/dist/components/GridInlineRibbon/GridInlineRibbonModel.js.map +1 -0
- package/dist/components/GridInlineRibbon/index.d.ts +2 -0
- package/dist/components/GridInlineRibbon/index.js +2 -0
- package/dist/components/GridInlineRibbon/interfaces.d.ts +28 -0
- package/dist/components/GridInlineRibbon/styles.d.ts +22 -0
- package/dist/components/GridInlineRibbon/styles.js +29 -0
- package/dist/components/GridInlineRibbon/styles.js.map +1 -0
- package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +2 -2
- package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -1
- package/dist/components/NestedControlRenderer/NestedControl.d.ts +2 -0
- package/dist/components/NestedControlRenderer/NestedControl.js +5 -2
- package/dist/components/NestedControlRenderer/NestedControl.js.map +1 -1
- package/dist/components/NestedControlRenderer/NestedControlRenderer.js +19 -6
- package/dist/components/NestedControlRenderer/NestedControlRenderer.js.map +1 -1
- package/dist/components/NestedControlRenderer/index.d.ts +1 -0
- package/dist/components/NestedControlRenderer/interfaces.d.ts +4 -0
- package/dist/components/NestedControlRenderer/properties/FileProperty.js +1 -1
- package/dist/components/NestedControlRenderer/properties/FileProperty.js.map +1 -1
- package/dist/components/OptionSet/OptionSet.js +5 -4
- package/dist/components/OptionSet/OptionSet.js.map +1 -1
- package/dist/components/Ribbon/Ribbon.d.ts +3 -0
- package/dist/components/Ribbon/Ribbon.js +118 -0
- package/dist/components/Ribbon/Ribbon.js.map +1 -0
- package/dist/components/Ribbon/RibbonModel.d.ts +17 -0
- package/dist/components/Ribbon/RibbonModel.js +74 -0
- package/dist/components/Ribbon/RibbonModel.js.map +1 -0
- package/dist/components/Ribbon/interfaces.d.ts +24 -0
- package/dist/components/Ribbon/styles.d.ts +16 -0
- package/dist/components/Ribbon/styles.js +23 -0
- package/dist/components/Ribbon/styles.js.map +1 -0
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +2 -3
- package/dist/components/index.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useControl.d.ts +1 -0
- package/dist/hooks/useControl.js +1 -0
- package/dist/hooks/useControl.js.map +1 -1
- package/dist/hooks/useEventEmitter.d.ts +2 -0
- package/dist/hooks/useEventEmitter.js +23 -0
- package/dist/hooks/useEventEmitter.js.map +1 -0
- package/dist/hooks/useInputBasedControl.js +2 -1
- package/dist/hooks/useInputBasedControl.js.map +1 -1
- package/dist/index.d.ts +508 -522
- package/dist/index.js +3 -3
- package/dist/interfaces/property.d.ts +1 -1
- package/dist/utils/BaseControls.d.ts +4 -1
- package/dist/utils/BaseControls.js +13 -1
- package/dist/utils/BaseControls.js.map +1 -1
- package/dist/utils/dataset/adapters/DatasetAdapter.d.ts +51 -40
- package/dist/utils/dataset/adapters/DatasetAdapter.js +221 -160
- package/dist/utils/dataset/adapters/DatasetAdapter.js.map +1 -1
- package/dist/utils/dataset/adapters/VirtualDatasetAdapter.d.ts +60 -28
- package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js +183 -119
- package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
- package/dist/utils/dataset-control/DatasetControl.d.ts +69 -0
- package/dist/utils/dataset-control/DatasetControl.js +171 -0
- package/dist/utils/dataset-control/DatasetControl.js.map +1 -0
- package/dist/utils/dataset-control/index.d.ts +1 -0
- package/dist/utils/dataset-control/index.js +2 -0
- package/dist/utils/theme/components/ThemeWrapper.d.ts +1 -1
- package/dist/utils/theme/components/ThemeWrapper.js.map +1 -1
- package/dist/utils/theme/hooks/useControlTheme.js +2 -1
- package/dist/utils/theme/hooks/useControlTheme.js.map +1 -1
- package/package.json +8 -4
- package/dist/components/DatasetControl/Paging/DatasetPaging.d.ts +0 -3
- package/dist/components/DatasetControl/Paging/DatasetPaging.js +0 -69
- package/dist/components/DatasetControl/Paging/DatasetPaging.js.map +0 -1
- package/dist/components/DatasetControl/Paging/Paging.d.ts +0 -26
- package/dist/components/DatasetControl/Paging/Paging.js +0 -80
- package/dist/components/DatasetControl/Paging/Paging.js.map +0 -1
- package/dist/components/DatasetControl/Paging/index.d.ts +0 -3
- package/dist/components/DatasetControl/Paging/index.js +0 -3
- package/dist/components/DatasetControl/Paging/index.js.map +0 -1
- package/dist/components/DatasetControl/Paging/interfaces.d.ts +0 -16
- package/dist/components/DatasetControl/Paging/styles.d.ts +0 -35
- package/dist/components/DatasetControl/Paging/styles.js +0 -41
- package/dist/components/DatasetControl/Paging/styles.js.map +0 -1
- package/dist/components/DatasetControl/Paging/translations.d.ts +0 -38
- package/dist/components/DatasetControl/Paging/translations.js +0 -14
- package/dist/components/DatasetControl/Paging/translations.js.map +0 -1
- package/dist/components/Grid/Grid.d.ts +0 -3
- package/dist/components/Grid/Grid.js +0 -37
- package/dist/components/Grid/Grid.js.map +0 -1
- package/dist/components/Grid/GridContext.d.ts +0 -3
- package/dist/components/Grid/GridContext.js.map +0 -1
- package/dist/components/Grid/aggregation/Aggregation.d.ts +0 -18
- package/dist/components/Grid/aggregation/Aggregation.js +0 -129
- package/dist/components/Grid/aggregation/Aggregation.js.map +0 -1
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js +0 -203
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +0 -1
- package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js +0 -12
- package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js.map +0 -1
- package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js.map +0 -1
- package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js.map +0 -1
- package/dist/components/Grid/core/components/AgGrid/context.js.map +0 -1
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +0 -52
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +0 -343
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +0 -1
- package/dist/components/Grid/core/components/AgGrid/model/Comparator.js.map +0 -1
- package/dist/components/Grid/core/components/AgGrid/styles.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/Cell.js +0 -158
- package/dist/components/Grid/core/components/Cell/Cell.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/CellContent/CellContent.d.ts +0 -8
- package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/CellContent/styles.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/Notifications/Notifications.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/Notifications/styles.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/styles.js.map +0 -1
- package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +0 -61
- package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +0 -1
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.d.ts +0 -2
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +0 -50
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js.map +0 -1
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js.map +0 -1
- package/dist/components/Grid/core/components/ColumnHeader/styles.d.ts +0 -42
- package/dist/components/Grid/core/components/ColumnHeader/styles.js +0 -48
- package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +0 -1
- package/dist/components/Grid/core/components/Dialog/Constants.d.ts +0 -2
- package/dist/components/Grid/core/components/Dialog/Constants.js +0 -9
- package/dist/components/Grid/core/components/Dialog/Constants.js.map +0 -1
- package/dist/components/Grid/core/components/Dialog/Styles.d.ts +0 -2
- package/dist/components/Grid/core/components/Dialog/Styles.js +0 -61
- package/dist/components/Grid/core/components/Dialog/Styles.js.map +0 -1
- package/dist/components/Grid/core/components/Dialog/index.d.ts +0 -4
- package/dist/components/Grid/core/components/Dialog/index.js +0 -16
- package/dist/components/Grid/core/components/Dialog/index.js.map +0 -1
- package/dist/components/Grid/core/components/Dialog/interfaces/index.d.ts +0 -6
- package/dist/components/Grid/core/components/Dialog/interfaces/index.js +0 -2
- package/dist/components/Grid/core/components/Save/Save.d.ts +0 -2
- package/dist/components/Grid/core/components/Save/Save.js +0 -59
- package/dist/components/Grid/core/components/Save/Save.js.map +0 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.d.ts +0 -7
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +0 -73
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +0 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.d.ts +0 -11
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +0 -231
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +0 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.d.ts +0 -39
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js +0 -45
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js.map +0 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.d.ts +0 -31
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js +0 -37
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js.map +0 -1
- package/dist/components/Grid/core/components/Save/styles.d.ts +0 -35
- package/dist/components/Grid/core/components/Save/styles.js +0 -42
- package/dist/components/Grid/core/components/Save/styles.js.map +0 -1
- package/dist/components/Grid/core/controllers/useGridController.d.ts +0 -7
- package/dist/components/Grid/core/controllers/useGridController.js +0 -29
- package/dist/components/Grid/core/controllers/useGridController.js.map +0 -1
- package/dist/components/Grid/core/enums/ConditionOperator.d.ts +0 -48
- package/dist/components/Grid/core/enums/ConditionOperator.js +0 -52
- package/dist/components/Grid/core/enums/ConditionOperator.js.map +0 -1
- package/dist/components/Grid/core/enums/DataType.d.ts +0 -25
- package/dist/components/Grid/core/enums/DataType.js +0 -30
- package/dist/components/Grid/core/enums/DataType.js.map +0 -1
- package/dist/components/Grid/core/hooks/useGridInstance.d.ts +0 -2
- package/dist/components/Grid/core/hooks/useGridInstance.js.map +0 -1
- package/dist/components/Grid/core/hooks/useRefreshCallback.d.ts +0 -2
- package/dist/components/Grid/core/hooks/useRefreshCallback.js +0 -20
- package/dist/components/Grid/core/hooks/useRefreshCallback.js.map +0 -1
- package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +0 -13
- package/dist/components/Grid/core/interfaces/IGridContext.d.ts +0 -4
- package/dist/components/Grid/core/model/Grid.d.ts +0 -83
- package/dist/components/Grid/core/model/Grid.js +0 -528
- package/dist/components/Grid/core/model/Grid.js.map +0 -1
- package/dist/components/Grid/core/model/GridDependency.d.ts +0 -13
- package/dist/components/Grid/core/model/GridDependency.js +0 -28
- package/dist/components/Grid/core/model/GridDependency.js.map +0 -1
- package/dist/components/Grid/core/services/KeyListener.d.ts +0 -12
- package/dist/components/Grid/core/services/KeyListener.js +0 -31
- package/dist/components/Grid/core/services/KeyListener.js.map +0 -1
- package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js +0 -59
- package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js.map +0 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.d.ts +0 -7
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +0 -56
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js.map +0 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.d.ts +0 -7
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +0 -73
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +0 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.d.ts +0 -7
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.js +0 -90
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValueBetween.js.map +0 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +0 -48
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +0 -146
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +0 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.d.ts +0 -11
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.js +0 -53
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.js.map +0 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.d.ts +0 -9
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.js +0 -31
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.js.map +0 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.d.ts +0 -10
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.js +0 -294
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.js.map +0 -1
- package/dist/components/Grid/filtering/components/FilterCallout/styles.d.ts +0 -35
- package/dist/components/Grid/filtering/components/FilterCallout/styles.js.map +0 -1
- package/dist/components/Grid/filtering/constants.d.ts +0 -5
- package/dist/components/Grid/filtering/constants.js +0 -53
- package/dist/components/Grid/filtering/constants.js.map +0 -1
- package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.d.ts +0 -21
- package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js +0 -44
- package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js.map +0 -1
- package/dist/components/Grid/filtering/model/Condition.d.ts +0 -49
- package/dist/components/Grid/filtering/model/Condition.js +0 -351
- package/dist/components/Grid/filtering/model/Condition.js.map +0 -1
- package/dist/components/Grid/filtering/model/Filtering.d.ts +0 -11
- package/dist/components/Grid/filtering/model/Filtering.js +0 -78
- package/dist/components/Grid/filtering/model/Filtering.js.map +0 -1
- package/dist/components/Grid/filtering/utils/FilteringUtilts.d.ts +0 -34
- package/dist/components/Grid/filtering/utils/FilteringUtilts.js +0 -195
- package/dist/components/Grid/filtering/utils/FilteringUtilts.js.map +0 -1
- package/dist/components/Grid/selection/model/Selection.d.ts +0 -12
- package/dist/components/Grid/selection/model/Selection.js +0 -55
- package/dist/components/Grid/selection/model/Selection.js.map +0 -1
- package/dist/components/Grid/sorting/Sorting.d.ts +0 -10
- package/dist/components/Grid/sorting/Sorting.js +0 -31
- package/dist/components/Grid/sorting/Sorting.js.map +0 -1
- package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +0 -157
- package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +0 -1
- package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.d.ts +0 -9
- package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js +0 -15
- package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js.map +0 -1
- package/dist/components/Grid/sorting/controllers/useColumnSortingController.d.ts +0 -9
- package/dist/components/Grid/sorting/controllers/useColumnSortingController.js +0 -22
- package/dist/components/Grid/sorting/controllers/useColumnSortingController.js.map +0 -1
- package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.d.ts +0 -2
- package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js +0 -11
- package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js.map +0 -1
- package/dist/components/GridCellRenderer/DefaultContentRenderer/index.d.ts +0 -1
- package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js +0 -2
- package/dist/components/GridCellRenderer/OptionSet/OptionSet.d.ts +0 -5
- package/dist/components/GridCellRenderer/OptionSet/OptionSet.js +0 -75
- package/dist/components/GridCellRenderer/OptionSet/OptionSet.js.map +0 -1
- package/dist/components/GridCellRenderer/OptionSet/index.d.ts +0 -1
- package/dist/components/GridCellRenderer/OptionSet/index.js +0 -2
- package/dist/components/GridCellRenderer/OptionSet/index.js.map +0 -1
- package/dist/components/GridCellRenderer/OptionSet/styles.d.ts +0 -20
- package/dist/components/GridCellRenderer/OptionSet/styles.js +0 -29
- package/dist/components/GridCellRenderer/OptionSet/styles.js.map +0 -1
- package/dist/components/GridCellRenderer/RecordCommands/Icon.d.ts +0 -7
- package/dist/components/GridCellRenderer/RecordCommands/Icon.js +0 -32
- package/dist/components/GridCellRenderer/RecordCommands/Icon.js.map +0 -1
- package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.d.ts +0 -13
- package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.js +0 -103
- package/dist/components/GridCellRenderer/RecordCommands/RecordCommands.js.map +0 -1
- package/dist/components/GridCellRenderer/RecordCommands/styles.d.ts +0 -13
- package/dist/components/GridCellRenderer/RecordCommands/styles.js +0 -32
- package/dist/components/GridCellRenderer/RecordCommands/styles.js.map +0 -1
- package/dist/components/GridCellRenderer/useComponentProps.d.ts +0 -6
- package/dist/components/GridCellRenderer/useComponentProps.js +0 -10
- package/dist/components/GridCellRenderer/useComponentProps.js.map +0 -1
- /package/dist/components/Grid/{core/components/Cell/Notifications → cells/cell/notifications}/styles.d.ts +0 -0
- /package/dist/components/Grid/{GridContext.js → grid/GridContext.js} +0 -0
- /package/dist/components/Grid/{core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.d.ts → overlays/empty-records/EmptyRecordsOverlay.d.ts} +0 -0
- /package/dist/components/Grid/{core/components/AgGrid/components/LoadingOverlay → overlays/loading}/LoadingOverlay.d.ts +0 -0
- /package/dist/components/Grid/{core/components/AgGrid/components/LoadingOverlay → overlays/loading}/LoadingOverlay.js +0 -0
- /package/dist/components/{Grid/core/components/Dialog/interfaces → GridInlineRibbon}/index.js.map +0 -0
- /package/dist/{components/GridCellRenderer/DefaultContentRenderer → utils/dataset-control}/index.js.map +0 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useRerender, getClassNames, CommandBar } from '@talxis/react-components';
|
|
3
|
+
import { useRef, useMemo } from 'react';
|
|
4
|
+
import { getRibbonStyles } from './styles.js';
|
|
5
|
+
import { ThemeProvider, Shimmer, getIcon } from '@fluentui/react';
|
|
6
|
+
import { RibbonModel } from './RibbonModel.js';
|
|
7
|
+
import { useEventEmitter } from '../../hooks/useEventEmitter.js';
|
|
8
|
+
import { useControl } from '../../hooks/useControl.js';
|
|
9
|
+
|
|
10
|
+
const fluentIconMap = {
|
|
11
|
+
'Activate': 'ActivateOrders',
|
|
12
|
+
'DeActivate': 'DeactivateOrders',
|
|
13
|
+
'ExportToExcel': 'ExcelDocument',
|
|
14
|
+
'ConnectionToOther': 'Assign',
|
|
15
|
+
'EmailLink': 'Link',
|
|
16
|
+
'Flows': 'Dataflows',
|
|
17
|
+
'RunReport': 'CRMReport',
|
|
18
|
+
'Report': 'CRMReport',
|
|
19
|
+
'Remove': 'Delete',
|
|
20
|
+
'WordTemplates': 'WordDocument',
|
|
21
|
+
'DocumentTemplates': 'ExcelDocument',
|
|
22
|
+
'New': 'Add',
|
|
23
|
+
};
|
|
24
|
+
const Ribbon = (props) => {
|
|
25
|
+
const { theme, className } = useControl('Ribbon', props, {});
|
|
26
|
+
const propsRef = useRef(props);
|
|
27
|
+
propsRef.current = props;
|
|
28
|
+
const model = useMemo(() => new RibbonModel(() => propsRef.current), []);
|
|
29
|
+
const commands = props.parameters.Commands?.raw ?? [];
|
|
30
|
+
const styles = useMemo(() => getRibbonStyles(), []);
|
|
31
|
+
const rerender = useRerender();
|
|
32
|
+
const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);
|
|
33
|
+
useEventEmitter(model, ['onBeforeCommandExecuted', 'onCommandExecutionFinished'], () => rerender());
|
|
34
|
+
const componentProps = onOverrideComponentProps({
|
|
35
|
+
onRender: (props, defaultRender) => defaultRender(props),
|
|
36
|
+
});
|
|
37
|
+
const getIconName = (iconName) => {
|
|
38
|
+
const iconType = model.getIconType(iconName);
|
|
39
|
+
switch (iconType) {
|
|
40
|
+
case 'none': {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
case 'url': {
|
|
44
|
+
return iconName;
|
|
45
|
+
}
|
|
46
|
+
case 'fluent': {
|
|
47
|
+
if (fluentIconMap[iconName]) {
|
|
48
|
+
return fluentIconMap[iconName];
|
|
49
|
+
}
|
|
50
|
+
if (getIcon(iconName)) {
|
|
51
|
+
return iconName;
|
|
52
|
+
}
|
|
53
|
+
return 'Puzzle';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const getCommandBarItems = () => {
|
|
58
|
+
const result = [];
|
|
59
|
+
commands.map(command => {
|
|
60
|
+
if (!command.shouldBeVisible) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const iconName = getIconName(command.icon);
|
|
64
|
+
const iconUrl = model.getIconUrl(iconName);
|
|
65
|
+
result.push({
|
|
66
|
+
key: command.commandId,
|
|
67
|
+
text: command.label,
|
|
68
|
+
disabled: model.isCommandDisabled(command),
|
|
69
|
+
className: styles.commandBtnRoot,
|
|
70
|
+
["data-id"]: command?.commandButtonId,
|
|
71
|
+
["data-command"]: command?.commandId,
|
|
72
|
+
title: command?.tooltip,
|
|
73
|
+
iconProps: iconName !== null ? {
|
|
74
|
+
iconName: !iconUrl ? iconName : undefined,
|
|
75
|
+
imageProps: iconUrl ? {
|
|
76
|
+
src: iconUrl
|
|
77
|
+
} : undefined
|
|
78
|
+
} : undefined,
|
|
79
|
+
onClick: () => { model.executeCommand(command); }
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
return result;
|
|
83
|
+
};
|
|
84
|
+
return componentProps.onRender({
|
|
85
|
+
container: {
|
|
86
|
+
theme: theme,
|
|
87
|
+
className: getClassNames([className, styles.container])
|
|
88
|
+
},
|
|
89
|
+
isLoading: model.isLoading(),
|
|
90
|
+
onRenderCommandBar: (props, defaultRender) => defaultRender(props),
|
|
91
|
+
onRenderLoading: (props, defaultRender) => defaultRender(props)
|
|
92
|
+
}, (props) => {
|
|
93
|
+
return jsx(ThemeProvider, { ...props.container, children: (() => {
|
|
94
|
+
if (props.isLoading) {
|
|
95
|
+
return props.onRenderLoading({
|
|
96
|
+
styles: {
|
|
97
|
+
root: styles.shimmerRoot,
|
|
98
|
+
shimmerWrapper: styles.shimmerWrapper
|
|
99
|
+
}
|
|
100
|
+
}, (props) => {
|
|
101
|
+
return jsx(Shimmer, { ...props });
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
return props.onRenderCommandBar({
|
|
106
|
+
theme: theme,
|
|
107
|
+
items: getCommandBarItems(),
|
|
108
|
+
contextualMenuTheme: propsRef.current.context.fluentDesignLanguage?.applicationTheme ?? theme
|
|
109
|
+
}, (props) => {
|
|
110
|
+
return jsx(CommandBar, { ...props });
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
})() });
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export { Ribbon };
|
|
118
|
+
//# sourceMappingURL=Ribbon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Ribbon.js","sources":["../../../src/components/Ribbon/Ribbon.tsx"],"sourcesContent":["import { CommandBar, getClassNames, ICommandBarItemProps, useRerender } from \"@talxis/react-components\";\nimport { useControl } from \"../../hooks\"\nimport { IRibbon } from \"./interfaces\"\nimport { useMemo, useRef } from \"react\";\nimport { getRibbonStyles } from \"./styles\";\nimport { getIcon, Shimmer, ThemeProvider } from \"@fluentui/react\";\nimport { IRibbonModelEvents, RibbonModel } from \"./RibbonModel\";\nimport { useEventEmitter } from \"../../hooks/useEventEmitter\";\n\nconst fluentIconMap: { [key: string]: string } = {\n 'Activate': 'ActivateOrders',\n 'DeActivate': 'DeactivateOrders',\n 'ExportToExcel': 'ExcelDocument',\n 'ConnectionToOther': 'Assign',\n 'EmailLink': 'Link',\n 'Flows': 'Dataflows',\n 'RunReport': 'CRMReport',\n 'Report': 'CRMReport',\n 'Remove': 'Delete',\n 'WordTemplates': 'WordDocument',\n 'DocumentTemplates': 'ExcelDocument',\n 'New': 'Add',\n}\n\nexport const Ribbon = (props: IRibbon) => {\n const { theme, className } = useControl('Ribbon', props, {});\n const propsRef = useRef<IRibbon>(props);\n propsRef.current = props;\n const model = useMemo(() => new RibbonModel(() => propsRef.current), [])\n const commands = props.parameters.Commands?.raw ?? [];\n const styles = useMemo(() => getRibbonStyles(), []);\n const rerender = useRerender();\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n useEventEmitter<IRibbonModelEvents>(model, ['onBeforeCommandExecuted', 'onCommandExecutionFinished'], () => rerender())\n const componentProps = onOverrideComponentProps({\n onRender: (props, defaultRender) => defaultRender(props),\n })\n\n const getIconName = (iconName?: string): string | undefined => {\n const iconType = model.getIconType(iconName);\n switch (iconType) {\n case 'none': {\n return undefined;\n }\n case 'url': {\n return iconName;\n }\n case 'fluent': {\n if (fluentIconMap[iconName!]) {\n return fluentIconMap[iconName!];\n }\n if (getIcon(iconName)) {\n return iconName!;\n }\n return 'Puzzle';\n }\n }\n }\n\n const getCommandBarItems = (): ICommandBarItemProps[] => {\n const result: ICommandBarItemProps[] = [];\n commands.map(command => {\n if (!command.shouldBeVisible) {\n return;\n }\n const iconName = getIconName(command.icon);\n const iconUrl = model.getIconUrl(iconName);\n result.push({\n key: command.commandId,\n text: command.label,\n disabled: model.isCommandDisabled(command),\n className: styles.commandBtnRoot,\n [\"data-id\"]: command?.commandButtonId,\n [\"data-command\"]: command?.commandId,\n title: command?.tooltip,\n iconProps: iconName !== null ? {\n iconName: !iconUrl ? iconName : undefined,\n imageProps: iconUrl ? {\n src: iconUrl\n } : undefined\n } : undefined,\n onClick: () => { model.executeCommand(command) }\n })\n })\n return result;\n }\n\n return componentProps.onRender({\n container: {\n theme: theme,\n className: getClassNames([className, styles.container])\n },\n isLoading: model.isLoading(),\n onRenderCommandBar: (props, defaultRender) => defaultRender(props),\n onRenderLoading: (props, defaultRender) => defaultRender(props)\n }, (props) => {\n return <ThemeProvider {...props.container}>\n {(() => {\n if (props.isLoading) {\n return props.onRenderLoading({\n styles: {\n root: styles.shimmerRoot,\n shimmerWrapper: styles.shimmerWrapper\n }\n }, (props) => {\n return <Shimmer {...props} />\n })\n }\n else {\n return props.onRenderCommandBar({\n theme: theme,\n items: getCommandBarItems(),\n contextualMenuTheme: propsRef.current.context.fluentDesignLanguage?.applicationTheme ?? theme\n }, (props) => {\n return <CommandBar {...props} />\n })\n }\n })()}\n </ThemeProvider>\n })\n\n}"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EventEmitter, ICommand } from "@talxis/client-libraries";
|
|
2
|
+
import { IRibbon } from "./interfaces";
|
|
3
|
+
export interface IRibbonModelEvents {
|
|
4
|
+
onBeforeCommandExecuted: () => void;
|
|
5
|
+
onCommandExecutionFinished: () => void;
|
|
6
|
+
}
|
|
7
|
+
export declare class RibbonModel extends EventEmitter<IRibbonModelEvents> {
|
|
8
|
+
private _getProps;
|
|
9
|
+
private _pendingActionsSet;
|
|
10
|
+
private _client;
|
|
11
|
+
constructor(getProps: () => IRibbon);
|
|
12
|
+
executeCommand(command: ICommand): Promise<void>;
|
|
13
|
+
isLoading(): boolean;
|
|
14
|
+
isCommandDisabled(command: ICommand): boolean;
|
|
15
|
+
getIconUrl(iconName?: string): string | null;
|
|
16
|
+
getIconType(iconName?: string): 'url' | 'fluent' | 'none';
|
|
17
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { EventEmitter, Client } from '@talxis/client-libraries';
|
|
2
|
+
|
|
3
|
+
class RibbonModel extends EventEmitter {
|
|
4
|
+
constructor(getProps) {
|
|
5
|
+
super();
|
|
6
|
+
this._pendingActionsSet = new Set();
|
|
7
|
+
this._client = new Client();
|
|
8
|
+
this._getProps = getProps;
|
|
9
|
+
}
|
|
10
|
+
async executeCommand(command) {
|
|
11
|
+
this._pendingActionsSet.add(command.commandId);
|
|
12
|
+
this.dispatchEvent('onBeforeCommandExecuted');
|
|
13
|
+
try {
|
|
14
|
+
await command.execute();
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
console.error(err);
|
|
18
|
+
}
|
|
19
|
+
finally {
|
|
20
|
+
this._pendingActionsSet.delete(command.commandId);
|
|
21
|
+
this.dispatchEvent('onCommandExecutionFinished');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
isLoading() {
|
|
25
|
+
return this._getProps().parameters.Loading?.raw ?? false;
|
|
26
|
+
}
|
|
27
|
+
isCommandDisabled(command) {
|
|
28
|
+
if (this._getProps().context.mode.isControlDisabled) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
if (!command.canExecute) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
if (this._pendingActionsSet.has(command.commandId)) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
getIconUrl(iconName) {
|
|
40
|
+
if (!iconName) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
if (this._client.isTalxisPortal()) {
|
|
44
|
+
if (iconName.startsWith('https://')) {
|
|
45
|
+
return iconName;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
const webResourceName = iconName.split('$webresource:')[1];
|
|
53
|
+
if (!webResourceName) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return `https://${window.location.host}${window.Xrm.Utility.getGlobalContext().getWebResourceUrl(webResourceName)}`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
getIconType(iconName) {
|
|
60
|
+
if (!iconName) {
|
|
61
|
+
return 'none';
|
|
62
|
+
}
|
|
63
|
+
if (!this._client.isTalxisPortal() && iconName.startsWith('$')) {
|
|
64
|
+
return 'url';
|
|
65
|
+
}
|
|
66
|
+
if (this._client.isTalxisPortal() && iconName.startsWith('https://')) {
|
|
67
|
+
return 'url';
|
|
68
|
+
}
|
|
69
|
+
return 'fluent';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { RibbonModel };
|
|
74
|
+
//# sourceMappingURL=RibbonModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RibbonModel.js","sources":["../../../src/components/Ribbon/RibbonModel.ts"],"sourcesContent":["import { Client, EventEmitter, ICommand } from \"@talxis/client-libraries\";\nimport { IRibbon } from \"./interfaces\";\n\n\nexport interface IRibbonModelEvents {\n onBeforeCommandExecuted: () => void;\n onCommandExecutionFinished: () => void\n}\n\nexport class RibbonModel extends EventEmitter<IRibbonModelEvents> {\n private _getProps: () => IRibbon;\n private _pendingActionsSet: Set<string> = new Set<string>();\n private _client: Client = new Client();\n constructor(getProps: () => IRibbon) {\n super();\n this._getProps = getProps;\n }\n\n public async executeCommand(command: ICommand) {\n this._pendingActionsSet.add(command.commandId);\n this.dispatchEvent('onBeforeCommandExecuted');\n try {\n await command.execute();\n }\n catch (err) {\n console.error(err);\n }\n finally {\n this._pendingActionsSet.delete(command.commandId);\n this.dispatchEvent('onCommandExecutionFinished');\n }\n }\n\n public isLoading(): boolean {\n return this._getProps().parameters.Loading?.raw ?? false;\n }\n\n public isCommandDisabled(command: ICommand): boolean {\n if (this._getProps().context.mode.isControlDisabled) {\n return true;\n }\n if (!command.canExecute) {\n return true;\n }\n if (this._pendingActionsSet.has(command.commandId)) {\n return true;\n }\n return false;\n }\n\n public getIconUrl(iconName?: string): string | null {\n if (!iconName) {\n return null;\n }\n if (this._client.isTalxisPortal()) {\n if(iconName.startsWith('https://')) {\n return iconName;\n }\n else {\n return null;\n }\n }\n else {\n const webResourceName = iconName.split('$webresource:')[1];\n if (!webResourceName) {\n return null;\n }\n return `https://${window.location.host}${window.Xrm.Utility.getGlobalContext().getWebResourceUrl(webResourceName)}`\n }\n }\n\n public getIconType(iconName?: string): 'url' | 'fluent' | 'none' {\n if (!iconName) {\n return 'none'\n }\n if (!this._client.isTalxisPortal() && iconName.startsWith('$')) {\n return 'url';\n }\n if (this._client.isTalxisPortal() && iconName.startsWith('https://')) {\n return 'url';\n }\n return 'fluent';\n }\n}"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ICommand } from "@talxis/client-libraries";
|
|
3
|
+
import { IControl } from "../../interfaces/context";
|
|
4
|
+
import { ICommandBarProps } from "@talxis/react-components";
|
|
5
|
+
import { ITwoOptionsProperty } from "../../interfaces";
|
|
6
|
+
import { IShimmerProps, ThemeProviderProps } from "@fluentui/react";
|
|
7
|
+
export interface IRibbon extends IControl<IRibbonParameters, any, any, IRibbonComponentProps> {
|
|
8
|
+
}
|
|
9
|
+
export interface IRibbonParameters {
|
|
10
|
+
Commands: {
|
|
11
|
+
raw: ICommand[];
|
|
12
|
+
};
|
|
13
|
+
Loading: Omit<ITwoOptionsProperty, 'attributes'>;
|
|
14
|
+
}
|
|
15
|
+
export interface IRibbonComponentProps {
|
|
16
|
+
onRender: (props: IComponentProps, defaultRender: (props: IComponentProps) => React.ReactElement) => React.ReactElement;
|
|
17
|
+
}
|
|
18
|
+
interface IComponentProps {
|
|
19
|
+
container: ThemeProviderProps;
|
|
20
|
+
isLoading: boolean;
|
|
21
|
+
onRenderLoading: (props: IShimmerProps, defaultRender: (props: IShimmerProps) => React.ReactElement) => React.ReactElement;
|
|
22
|
+
onRenderCommandBar: (props: ICommandBarProps, defaultRender: (props: ICommandBarProps) => React.ReactElement) => React.ReactElement;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const getRibbonStyles: () => import("@fluentui/react").IProcessedStyleSet<{
|
|
2
|
+
container: {
|
|
3
|
+
flex: number;
|
|
4
|
+
};
|
|
5
|
+
shimmerRoot: {
|
|
6
|
+
width: string;
|
|
7
|
+
};
|
|
8
|
+
shimmerWrapper: {
|
|
9
|
+
height: number;
|
|
10
|
+
};
|
|
11
|
+
commandBtnRoot: {
|
|
12
|
+
img: {
|
|
13
|
+
width: number;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { mergeStyleSets } from '@fluentui/react';
|
|
2
|
+
|
|
3
|
+
const getRibbonStyles = () => {
|
|
4
|
+
return mergeStyleSets({
|
|
5
|
+
container: {
|
|
6
|
+
flex: 1,
|
|
7
|
+
},
|
|
8
|
+
shimmerRoot: {
|
|
9
|
+
width: '100%',
|
|
10
|
+
},
|
|
11
|
+
shimmerWrapper: {
|
|
12
|
+
height: 44
|
|
13
|
+
},
|
|
14
|
+
commandBtnRoot: {
|
|
15
|
+
'img': {
|
|
16
|
+
width: 18
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { getRibbonStyles };
|
|
23
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../src/components/Ribbon/styles.ts"],"sourcesContent":["import { mergeStyleSets } from \"@fluentui/react\"\n\nexport const getRibbonStyles = () => {\n return mergeStyleSets({\n container: {\n flex: 1,\n },\n shimmerRoot: {\n width: '100%',\n },\n shimmerWrapper: {\n height: 44\n },\n commandBtnRoot: {\n 'img': {\n width: 18\n }\n }\n })\n}"],"names":[],"mappings":";;AAEO,MAAM,eAAe,GAAG,MAAK;AAChC,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,SAAS,EAAE;AACP,YAAA,IAAI,EAAE,CAAC;AACV,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,KAAK,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,cAAc,EAAE;AACZ,YAAA,MAAM,EAAE,EAAE;AACb,SAAA;AACD,QAAA,cAAc,EAAE;AACZ,YAAA,KAAK,EAAE;AACH,gBAAA,KAAK,EAAE,EAAE;AACZ,aAAA;AACJ,SAAA;AACJ,KAAA,CAAC,CAAA;AACN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.js","sources":["../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import { TextField as TextFieldBase } from \"@talxis/react-components\";\nimport { useInputBasedControl } from '../../hooks/useInputBasedControl';\nimport { ITextField, ITextFieldOutputs, ITextFieldParameters } from './interfaces';\nimport { ICommandBarItemProps, ThemeProvider } from '@fluentui/react';\nimport { DataTypes } from \"@talxis/client-libraries\";\
|
|
1
|
+
{"version":3,"file":"TextField.js","sources":["../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import { TextField as TextFieldBase } from \"@talxis/react-components\";\nimport { useInputBasedControl } from '../../hooks/useInputBasedControl';\nimport { ITextField, ITextFieldOutputs, ITextFieldParameters } from './interfaces';\nimport { ICommandBarItemProps, ThemeProvider } from '@fluentui/react';\nimport { DataTypes } from \"@talxis/client-libraries\";\n\nexport const TextField = (props: ITextField) => {\n const context = props.context;\n const parameters = props.parameters;\n const boundValue = parameters.value;\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n const { value, sizing, theme, setValue, onNotifyOutputChanged } = useInputBasedControl<string | undefined, ITextFieldParameters, ITextFieldOutputs, any>('TextField', props);\n\n const getInputType = () => {\n switch (boundValue.type) {\n case 'SingleLine.Email': {\n return 'email';\n }\n case 'SingleLine.URL': {\n return 'url';\n }\n case 'SingleLine.Phone': {\n return 'tel';\n }\n }\n return \"text\";\n }\n const getSuffixItems = (): ICommandBarItemProps[] | undefined => {\n if (parameters.EnableTypeSuffix?.raw === false) {\n return undefined;\n }\n const disabled = boundValue.error || !boundValue.raw\n switch (boundValue.type) {\n case 'SingleLine.Email': {\n return [{\n key: 'sendMail',\n disabled: disabled,\n iconProps: {\n iconName: 'Mail'\n },\n href: `mailto:${boundValue.raw}`\n }]\n }\n case 'SingleLine.Phone': {\n return [{\n key: 'call',\n disabled: disabled,\n iconProps: {\n iconName: 'Phone'\n },\n href: `tel:${boundValue.raw}`\n }]\n }\n case 'SingleLine.URL': {\n return [{\n key: 'goToPage',\n disabled: disabled,\n iconProps: {\n iconName: 'Globe'\n },\n target: '_blank',\n href: boundValue.raw!\n }]\n }\n }\n return undefined;\n }\n\n const isTextArea = (() => {\n switch(parameters.value.type) {\n case DataTypes.Multiple:\n case DataTypes.SingleLineTextArea: {\n return true;\n }\n }\n return false;\n })()\n\n const componentProps = onOverrideComponentProps({\n readOnly: context.mode.isControlDisabled,\n resizable: false,\n type: getInputType(),\n multiline: isTextArea,\n autoFocus: parameters.AutoFocus?.raw,\n styles: {\n fieldGroup: {\n height: sizing.height,\n width: sizing.width\n }\n },\n errorMessage: boundValue.errorMessage,\n hideErrorMessage: !parameters.ShowErrorMessage?.raw,\n suffixItems: getSuffixItems(),\n deleteButtonProps: parameters.EnableDeleteButton?.raw === true ? {\n key: 'delete',\n showOnlyOnHover: true,\n iconProps: {\n iconName: 'Cancel'\n },\n onClick: () => setValue(undefined)\n } : undefined,\n clickToCopyProps: parameters.EnableCopyButton?.raw === true ? {\n key: 'copy',\n showOnlyOnHover: true,\n iconProps: {\n iconName: 'Copy'\n }\n } : undefined,\n value: value ?? \"\",\n onBlur: () => {\n onNotifyOutputChanged({\n value: value ?? undefined\n });\n },\n onChange: (e, value) => {\n setValue(value);\n }\n })\n return (\n <ThemeProvider style={isTextArea ? { height: '100%' } : undefined} applyTo=\"none\" theme={theme}>\n <TextFieldBase {...componentProps} />\n </ThemeProvider>\n );\n};"],"names":["_jsx","TextFieldBase"],"mappings":";;;;;;AAMa,MAAA,SAAS,GAAG,CAAC,KAAiB,KAAI;AAC3C,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9B,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AACpC,IAAA,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;AACpC,IAAA,MAAM,wBAAwB,GAAG,KAAK,CAAC,wBAAwB,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AACtF,IAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,qBAAqB,EAAE,GAAG,oBAAoB,CAAmE,WAAW,EAAE,KAAK,CAAC,CAAC;IAE7K,MAAM,YAAY,GAAG,MAAK;QACtB,QAAQ,UAAU,CAAC,IAAI;YACnB,KAAK,kBAAkB,EAAE;AACrB,gBAAA,OAAO,OAAO,CAAC;AAClB,aAAA;YACD,KAAK,gBAAgB,EAAE;AACnB,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;YACD,KAAK,kBAAkB,EAAE;AACrB,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;AAClB,KAAC,CAAA;IACD,MAAM,cAAc,GAAG,MAAyC;AAC5D,QAAA,IAAI,UAAU,CAAC,gBAAgB,EAAE,GAAG,KAAK,KAAK,EAAE;AAC5C,YAAA,OAAO,SAAS,CAAC;AACpB,SAAA;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAA;QACpD,QAAQ,UAAU,CAAC,IAAI;YACnB,KAAK,kBAAkB,EAAE;AACrB,gBAAA,OAAO,CAAC;AACJ,wBAAA,GAAG,EAAE,UAAU;AACf,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,SAAS,EAAE;AACP,4BAAA,QAAQ,EAAE,MAAM;AACnB,yBAAA;AACD,wBAAA,IAAI,EAAE,CAAA,OAAA,EAAU,UAAU,CAAC,GAAG,CAAE,CAAA;AACnC,qBAAA,CAAC,CAAA;AACL,aAAA;YACD,KAAK,kBAAkB,EAAE;AACrB,gBAAA,OAAO,CAAC;AACJ,wBAAA,GAAG,EAAE,MAAM;AACX,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,SAAS,EAAE;AACP,4BAAA,QAAQ,EAAE,OAAO;AACpB,yBAAA;AACD,wBAAA,IAAI,EAAE,CAAA,IAAA,EAAO,UAAU,CAAC,GAAG,CAAE,CAAA;AAChC,qBAAA,CAAC,CAAA;AACL,aAAA;YACD,KAAK,gBAAgB,EAAE;AACnB,gBAAA,OAAO,CAAC;AACJ,wBAAA,GAAG,EAAE,UAAU;AACf,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,SAAS,EAAE;AACP,4BAAA,QAAQ,EAAE,OAAO;AACpB,yBAAA;AACD,wBAAA,MAAM,EAAE,QAAQ;wBAChB,IAAI,EAAE,UAAU,CAAC,GAAI;AACxB,qBAAA,CAAC,CAAA;AACL,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;AACrB,KAAC,CAAA;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,MAAK;AACrB,QAAA,QAAO,UAAU,CAAC,KAAK,CAAC,IAAI;YACxB,KAAK,SAAS,CAAC,QAAQ,CAAC;AACxB,YAAA,KAAK,SAAS,CAAC,kBAAkB,EAAE;AAC/B,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB,GAAG,CAAA;IAEJ,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAC5C,QAAA,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB;AACxC,QAAA,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,YAAY,EAAE;AACpB,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,GAAG;AACpC,QAAA,MAAM,EAAE;AACJ,YAAA,UAAU,EAAE;gBACR,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;AACtB,aAAA;AACJ,SAAA;QACD,YAAY,EAAE,UAAU,CAAC,YAAY;AACrC,QAAA,gBAAgB,EAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE,GAAG;QACnD,WAAW,EAAE,cAAc,EAAE;QAC7B,iBAAiB,EAAE,UAAU,CAAC,kBAAkB,EAAE,GAAG,KAAK,IAAI,GAAG;AAC7D,YAAA,GAAG,EAAE,QAAQ;AACb,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,SAAS,EAAE;AACP,gBAAA,QAAQ,EAAE,QAAQ;AACrB,aAAA;AACD,YAAA,OAAO,EAAE,MAAM,QAAQ,CAAC,SAAS,CAAC;SACrC,GAAG,SAAS;QACb,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,EAAE,GAAG,KAAK,IAAI,GAAG;AAC1D,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,SAAS,EAAE;AACP,gBAAA,QAAQ,EAAE,MAAM;AACnB,aAAA;SACJ,GAAG,SAAS;QACb,KAAK,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,EAAE,MAAK;AACT,YAAA,qBAAqB,CAAC;gBAClB,KAAK,EAAE,KAAK,IAAI,SAAS;AAC5B,aAAA,CAAC,CAAC;SACN;AACD,QAAA,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAI;YACnB,QAAQ,CAAC,KAAK,CAAC,CAAC;SACnB;AACJ,KAAA,CAAC,CAAA;AACF,IAAA,QACIA,GAAA,CAAC,aAAa,EAAA,EAAC,KAAK,EAAE,UAAU,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,OAAO,EAAC,MAAM,EAAC,KAAK,EAAE,KAAK,EAC1F,QAAA,EAAAA,GAAA,CAACC,WAAa,EAAK,EAAA,GAAA,cAAc,EAAI,CAAA,EAAA,CACzB,EAClB;AACN;;;;"}
|
package/dist/components/index.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
export { DatasetControl } from './DatasetControl/DatasetControl.js';
|
|
2
|
-
export { DatasetPaging } from './DatasetControl/Paging/DatasetPaging.js';
|
|
3
|
-
export { Paging } from './DatasetControl/Paging/Paging.js';
|
|
4
2
|
export { DateTime } from './DateTime/DateTime.js';
|
|
5
3
|
export { useDateTime } from './DateTime/hooks/useDateTime.js';
|
|
6
4
|
export { Decimal } from './Decimal/Decimal.js';
|
|
7
|
-
export { Grid } from './Grid/Grid.js';
|
|
5
|
+
export { Grid } from './Grid/grid/Grid.js';
|
|
8
6
|
export { GridCellRenderer } from './GridCellRenderer/GridCellRenderer.js';
|
|
9
7
|
export { Lookup } from './Lookup/Lookup.js';
|
|
10
8
|
export { useLookup } from './Lookup/hooks/useLookup.js';
|
|
@@ -14,4 +12,5 @@ export { OptionSet } from './OptionSet/OptionSet.js';
|
|
|
14
12
|
export { TextField } from './TextField/TextField.js';
|
|
15
13
|
export { TwoOptions } from './TwoOptions/TwoOptions.js';
|
|
16
14
|
export { Duration } from './Duration/Duration.js';
|
|
15
|
+
export { GridInlineRibbon } from './GridInlineRibbon/GridInlineRibbon.js';
|
|
17
16
|
//# 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":";;;;;;;;;;;;;;"}
|
package/dist/hooks/index.d.ts
CHANGED
package/dist/hooks/index.js
CHANGED
|
@@ -4,5 +4,6 @@ export { useFocusIn } from './useFocusIn.js';
|
|
|
4
4
|
export { useInputBasedControl } from './useInputBasedControl.js';
|
|
5
5
|
export { useMouseOver } from './useMouseOver.js';
|
|
6
6
|
export { useControlLabels } from './useControlLabels.js';
|
|
7
|
+
export { useEventEmitter } from './useEventEmitter.js';
|
|
7
8
|
export { useControlTheme } from '../utils/theme/hooks/useControlTheme.js';
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
package/dist/hooks/useControl.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useControl.js","sources":["../../src/hooks/useControl.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { IControl, IOutputs, IParameters } from \"../interfaces\";\nimport { useControlTheme } from \"../utils/theme/hooks/useControlTheme\";\nimport { useControlSizing } from \"./useControlSizing\";\nimport deepEqual from 'fast-deep-equal/es6';\nimport { ITheme } from \"@talxis/react-components\";\nimport dayjs from \"dayjs\";\nimport { IDefaultTranslations, ITranslation, useControlLabels } from \"./useControlLabels\";\n\nexport interface IControlController<TTranslations, TOutputs> {\n labels: Required<ITranslation<TTranslations>>,\n sizing: {\n width?: number,\n height?: number\n },\n theme: ITheme;\n onNotifyOutputChanged: (outputs: TOutputs) => void,\n}\n/**\n * Provides automatic checking if the given outputs are different from the provided inputs. Use the provided method any time you want\n * to notify the framework that you wish to write changes. The hook will notify the framework only if the provided output differs from the current inputs.\n */\nexport const useControl = <TParameters extends IParameters, TOutputs extends IOutputs, TTranslations>(name: string, props: IControl<TParameters, TOutputs, TTranslations, any>, defaultTranslations?: IDefaultTranslations): IControlController<TTranslations, TOutputs> => {\n const context = props.context;\n const parametersRef = useRef<TParameters>(props.parameters);\n const sizing = useControlSizing(props.context.mode);\n const labels = useControlLabels({\n languageId: context.userSettings.languageId,\n translations: props.translations,\n defaultTranslations\n });\n\n useEffect(() => {\n parametersRef.current = props.parameters;\n }, [props.parameters]);\n\n const onNotifyOutputChanged = (outputs: TOutputs) => {\n let isDirty = false;\n for (let [key, outputValue] of Object.entries(outputs)) {\n let parameterValue = parametersRef.current[key]?.raw;\n if(parameterValue instanceof Date) {\n parameterValue = dayjs(parameterValue).startOf('minute').toDate();\n }\n if (!deepEqual(parameterValue, outputValue)) {\n if (outputValue === null) {\n outputValue = undefined;\n //@ts-ignore\n outputs[key] = undefined;\n }\n if (outputValue === \"\") {\n outputValue = undefined\n //@ts-ignore\n outputs[key] = undefined;\n }\n if (parameterValue === null) {\n parameterValue = undefined;\n }\n if (parameterValue === outputValue) {\n continue\n }\n isDirty = true;\n break;\n }\n }\n if (!isDirty) {\n return;\n }\n //console.log(`Change detected, triggering notifyOutputChanged on control ${name}.`);\n props.onNotifyOutputChanged?.(outputs);\n };\n \n return {\n labels,\n sizing,\n theme: useControlTheme(context.fluentDesignLanguage),\n onNotifyOutputChanged\n }\n};\n"],"names":[],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"useControl.js","sources":["../../src/hooks/useControl.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { IControl, IOutputs, IParameters } from \"../interfaces\";\nimport { useControlTheme } from \"../utils/theme/hooks/useControlTheme\";\nimport { useControlSizing } from \"./useControlSizing\";\nimport deepEqual from 'fast-deep-equal/es6';\nimport { ITheme } from \"@talxis/react-components\";\nimport dayjs from \"dayjs\";\nimport { IDefaultTranslations, ITranslation, useControlLabels } from \"./useControlLabels\";\n\nexport interface IControlController<TTranslations, TOutputs> {\n labels: Required<ITranslation<TTranslations>>,\n sizing: {\n width?: number,\n height?: number\n },\n className: string;\n theme: ITheme;\n onNotifyOutputChanged: (outputs: TOutputs) => void,\n}\n/**\n * Provides automatic checking if the given outputs are different from the provided inputs. Use the provided method any time you want\n * to notify the framework that you wish to write changes. The hook will notify the framework only if the provided output differs from the current inputs.\n */\nexport const useControl = <TParameters extends IParameters, TOutputs extends IOutputs, TTranslations>(name: string, props: IControl<TParameters, TOutputs, TTranslations, any>, defaultTranslations?: IDefaultTranslations): IControlController<TTranslations, TOutputs> => {\n const context = props.context;\n const parametersRef = useRef<TParameters>(props.parameters);\n const sizing = useControlSizing(props.context.mode);\n const labels = useControlLabels({\n languageId: context.userSettings.languageId,\n translations: props.translations,\n defaultTranslations\n });\n\n useEffect(() => {\n parametersRef.current = props.parameters;\n }, [props.parameters]);\n\n const onNotifyOutputChanged = (outputs: TOutputs) => {\n let isDirty = false;\n for (let [key, outputValue] of Object.entries(outputs)) {\n let parameterValue = parametersRef.current[key]?.raw;\n if(parameterValue instanceof Date) {\n parameterValue = dayjs(parameterValue).startOf('minute').toDate();\n }\n if (!deepEqual(parameterValue, outputValue)) {\n if (outputValue === null) {\n outputValue = undefined;\n //@ts-ignore\n outputs[key] = undefined;\n }\n if (outputValue === \"\") {\n outputValue = undefined\n //@ts-ignore\n outputs[key] = undefined;\n }\n if (parameterValue === null) {\n parameterValue = undefined;\n }\n if (parameterValue === outputValue) {\n continue\n }\n isDirty = true;\n break;\n }\n }\n if (!isDirty) {\n return;\n }\n //console.log(`Change detected, triggering notifyOutputChanged on control ${name}.`);\n props.onNotifyOutputChanged?.(outputs);\n };\n \n return {\n className: `talxis__baseControl__${name}`,\n labels,\n sizing,\n theme: useControlTheme(context.fluentDesignLanguage),\n onNotifyOutputChanged\n }\n};\n"],"names":[],"mappings":";;;;;;;AAmBA;;;AAGG;AACU,MAAA,UAAU,GAAG,CAA4E,IAAY,EAAE,KAA0D,EAAE,mBAA0C,KAAiD;AACvQ,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,MAAM,aAAa,GAAG,MAAM,CAAc,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAC5B,QAAA,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU;QAC3C,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,mBAAmB;AACtB,KAAA,CAAC,CAAC;IAEH,SAAS,CAAC,MAAK;AACX,QAAA,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC;AAC7C,KAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AAEvB,IAAA,MAAM,qBAAqB,GAAG,CAAC,OAAiB,KAAI;QAChD,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,QAAA,KAAK,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACpD,IAAI,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;YACrD,IAAG,cAAc,YAAY,IAAI,EAAE;AAC/B,gBAAA,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AACrE,aAAA;AACD,YAAA,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE;gBACzC,IAAI,WAAW,KAAK,IAAI,EAAE;oBACtB,WAAW,GAAG,SAAS,CAAC;;AAExB,oBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC5B,iBAAA;gBACD,IAAI,WAAW,KAAK,EAAE,EAAE;oBACpB,WAAW,GAAG,SAAS,CAAA;;AAEvB,oBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC5B,iBAAA;gBACD,IAAI,cAAc,KAAK,IAAI,EAAE;oBACzB,cAAc,GAAG,SAAS,CAAC;AAC9B,iBAAA;gBACD,IAAI,cAAc,KAAK,WAAW,EAAE;oBAChC,SAAQ;AACX,iBAAA;gBACD,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;AACT,aAAA;AACJ,SAAA;QACD,IAAI,CAAC,OAAO,EAAE;YACV,OAAO;AACV,SAAA;;AAED,QAAA,KAAK,CAAC,qBAAqB,GAAG,OAAO,CAAC,CAAC;AAC3C,KAAC,CAAC;IAEF,OAAO;QACH,SAAS,EAAE,CAAwB,qBAAA,EAAA,IAAI,CAAE,CAAA;QACzC,MAAM;QACN,MAAM;AACN,QAAA,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACpD,qBAAqB;KACxB,CAAA;AACL;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useRef, useCallback, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
const useEventEmitter = (emitter, event, callback) => {
|
|
4
|
+
const callbackRef = useRef(callback);
|
|
5
|
+
callbackRef.current = callback;
|
|
6
|
+
const memoizedCallback = useCallback((...args) => {
|
|
7
|
+
callbackRef.current(...args);
|
|
8
|
+
}, []);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const events = Array.isArray(event) ? event : [event];
|
|
11
|
+
events.map(event => {
|
|
12
|
+
emitter.addEventListener(event, memoizedCallback);
|
|
13
|
+
});
|
|
14
|
+
return () => {
|
|
15
|
+
events.map(event => {
|
|
16
|
+
emitter.removeEventListener(event, memoizedCallback);
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
}, []);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { useEventEmitter };
|
|
23
|
+
//# sourceMappingURL=useEventEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEventEmitter.js","sources":["../../src/hooks/useEventEmitter.ts"],"sourcesContent":["import { IEventEmitter } from \"@talxis/client-libraries\";\nimport { useCallback, useEffect, useRef } from \"react\";\n\nexport const useEventEmitter = <T extends { [K in keyof T]: (...args: any[]) => any }>(emitter: IEventEmitter<T>, event: keyof T | (keyof T)[], callback: T[keyof T]) => {\n const callbackRef = useRef(callback);\n callbackRef.current = callback;\n\n const memoizedCallback = useCallback((...args) => {\n callbackRef.current(...args);\n }, []);\n\n useEffect(() => {\n const events = Array.isArray(event) ? event : [event];\n events.map(event => {\n emitter.addEventListener(event, memoizedCallback as T[keyof T]);\n })\n return () => {\n events.map(event => {\n emitter.removeEventListener(event, memoizedCallback as T[keyof T]);\n })\n };\n }, []);\n};"],"names":[],"mappings":";;AAGa,MAAA,eAAe,GAAG,CAAwD,OAAyB,EAAE,KAA4B,EAAE,QAAoB,KAAI;AACpK,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrC,IAAA,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,GAAG,IAAI,KAAI;AAC7C,QAAA,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;KAChC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,MAAK;AACX,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,QAAA,MAAM,CAAC,GAAG,CAAC,KAAK,IAAG;AACf,YAAA,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAA8B,CAAC,CAAC;AACpE,SAAC,CAAC,CAAA;AACF,QAAA,OAAO,MAAK;AACR,YAAA,MAAM,CAAC,GAAG,CAAC,KAAK,IAAG;AACf,gBAAA,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,gBAA8B,CAAC,CAAC;AACvE,aAAC,CAAC,CAAA;AACN,SAAC,CAAC;KACL,EAAE,EAAE,CAAC,CAAC;AACX;;;;"}
|
|
@@ -6,7 +6,7 @@ const useInputBasedControl = (name, props, options) => {
|
|
|
6
6
|
const rawValue = props.parameters.value.raw;
|
|
7
7
|
const [value, setValue] = useState(formatter?.(rawValue) ?? rawValue);
|
|
8
8
|
const valueRef = useRef(rawValue);
|
|
9
|
-
const { labels, sizing, theme, onNotifyOutputChanged } = useControl(name, props, options?.defaultTranslations);
|
|
9
|
+
const { labels, sizing, theme, className, onNotifyOutputChanged } = useControl(name, props, options?.defaultTranslations);
|
|
10
10
|
useEffect(() => {
|
|
11
11
|
const formattedValue = formatter?.(rawValue);
|
|
12
12
|
setValue(formattedValue ?? rawValue);
|
|
@@ -23,6 +23,7 @@ const useInputBasedControl = (name, props, options) => {
|
|
|
23
23
|
};
|
|
24
24
|
}, []);
|
|
25
25
|
return {
|
|
26
|
+
className: className,
|
|
26
27
|
value,
|
|
27
28
|
labels,
|
|
28
29
|
sizing,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInputBasedControl.js","sources":["../../src/hooks/useInputBasedControl.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { IControl, IOutputs } from \"../interfaces/context\";\nimport { IControlController, useControl } from \"./useControl\";\nimport { IInputParameters } from \"../interfaces/parameters\";\nimport { IDefaultTranslations } from \"./useControlLabels\";\n\n/**\n * Description\n * @param {any} value:any\n * @returns {any}\n */\ninterface IControlOptions {\n defaultTranslations?: IDefaultTranslations;\n /**\n * Formatting function that will format the bound value every time a new one comes from the props.\n */\n formatter?: (value: any) => any,\n valueExtractor?: (value: any) => any\n}\n\n/**\n * Use when working with components that need to store value changes internally before triggering `notifyOutputChanged`.\n * An example of this is a standard Decimal component - we do not want to trigger `notifyOutputChanged` on every value change,\n * since this would trigger decimal validation on every keystroke which would result in a bad UX. In this case, the `notifyOutputChanged` should\n * be triggered when the user looses focus on the component (`onBlur` event).\n * @returns {[]} The hook returns an array with three props. First `value` prop is a value that will will always be in sync with the value that comes from the `value` parameter. \n * Use this for displaying the up-to-date value to the user.\n * Second prop contains the translations for this component.\n * \n * Third prop is a method that can be used to change the current value. The new value will get propagated to the `value` variable returned from this hook. This method wont propagate the value to the framework.\n * \n * The last prop is a method that will notify the framework that you wish to write changes. \n * The method will notify the framework only if the provided output differs from the current inputs.\n */\n\ninterface IInputBasedControlController<TValue, TTranslations, TOutputs> extends IControlController<TTranslations, TOutputs> {\n value: TValue,\n setValue: (value: TValue) => void\n}\n\nexport const useInputBasedControl = <TValue, TParameters extends IInputParameters, TOutputs extends IOutputs, TTranslations>(name: string, props: IControl<TParameters, TOutputs, TTranslations, any>, options?: IControlOptions): IInputBasedControlController<TValue, TTranslations, TOutputs> => {\n const { formatter, valueExtractor } = { ...options };\n const rawValue = props.parameters.value.raw;\n const [value, setValue] = useState<TValue>(formatter?.(rawValue) ?? rawValue);\n const valueRef = useRef<TValue>(rawValue);\n const { labels, sizing, theme, onNotifyOutputChanged } = useControl(name, props, options?.defaultTranslations);\n\n useEffect(() => {\n const formattedValue = formatter?.(rawValue);\n setValue(formattedValue ?? rawValue);\n //console.log(`Updating component ${name} with new value: ${formattedValue ?? rawValue}`);\n }, [rawValue]);\n\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n useEffect(() => {\n return () => {\n onNotifyOutputChanged({\n value: valueExtractor?.(valueRef.current) ?? valueRef.current\n } as any);\n };\n }, []);\n return {\n value,\n labels,\n sizing,\n theme,\n onNotifyOutputChanged,\n setValue\n }\n};"],"names":[],"mappings":";;;AAwCa,MAAA,oBAAoB,GAAG,CAAyF,IAAY,EAAE,KAA0D,EAAE,OAAyB,KAAmE;IAC/R,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5C,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAS,SAAS,GAAG,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC;AAC9E,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAS,QAAQ,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useInputBasedControl.js","sources":["../../src/hooks/useInputBasedControl.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { IControl, IOutputs } from \"../interfaces/context\";\nimport { IControlController, useControl } from \"./useControl\";\nimport { IInputParameters } from \"../interfaces/parameters\";\nimport { IDefaultTranslations } from \"./useControlLabels\";\n\n/**\n * Description\n * @param {any} value:any\n * @returns {any}\n */\ninterface IControlOptions {\n defaultTranslations?: IDefaultTranslations;\n /**\n * Formatting function that will format the bound value every time a new one comes from the props.\n */\n formatter?: (value: any) => any,\n valueExtractor?: (value: any) => any\n}\n\n/**\n * Use when working with components that need to store value changes internally before triggering `notifyOutputChanged`.\n * An example of this is a standard Decimal component - we do not want to trigger `notifyOutputChanged` on every value change,\n * since this would trigger decimal validation on every keystroke which would result in a bad UX. In this case, the `notifyOutputChanged` should\n * be triggered when the user looses focus on the component (`onBlur` event).\n * @returns {[]} The hook returns an array with three props. First `value` prop is a value that will will always be in sync with the value that comes from the `value` parameter. \n * Use this for displaying the up-to-date value to the user.\n * Second prop contains the translations for this component.\n * \n * Third prop is a method that can be used to change the current value. The new value will get propagated to the `value` variable returned from this hook. This method wont propagate the value to the framework.\n * \n * The last prop is a method that will notify the framework that you wish to write changes. \n * The method will notify the framework only if the provided output differs from the current inputs.\n */\n\ninterface IInputBasedControlController<TValue, TTranslations, TOutputs> extends IControlController<TTranslations, TOutputs> {\n value: TValue,\n setValue: (value: TValue) => void\n}\n\nexport const useInputBasedControl = <TValue, TParameters extends IInputParameters, TOutputs extends IOutputs, TTranslations>(name: string, props: IControl<TParameters, TOutputs, TTranslations, any>, options?: IControlOptions): IInputBasedControlController<TValue, TTranslations, TOutputs> => {\n const { formatter, valueExtractor } = { ...options };\n const rawValue = props.parameters.value.raw;\n const [value, setValue] = useState<TValue>(formatter?.(rawValue) ?? rawValue);\n const valueRef = useRef<TValue>(rawValue);\n const { labels, sizing, theme, className, onNotifyOutputChanged } = useControl(name, props, options?.defaultTranslations);\n\n useEffect(() => {\n const formattedValue = formatter?.(rawValue);\n setValue(formattedValue ?? rawValue);\n //console.log(`Updating component ${name} with new value: ${formattedValue ?? rawValue}`);\n }, [rawValue]);\n\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n useEffect(() => {\n return () => {\n onNotifyOutputChanged({\n value: valueExtractor?.(valueRef.current) ?? valueRef.current\n } as any);\n };\n }, []);\n return {\n className: className,\n value,\n labels,\n sizing,\n theme,\n onNotifyOutputChanged,\n setValue\n }\n};"],"names":[],"mappings":";;;AAwCa,MAAA,oBAAoB,GAAG,CAAyF,IAAY,EAAE,KAA0D,EAAE,OAAyB,KAAmE;IAC/R,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5C,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAS,SAAS,GAAG,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC;AAC9E,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAS,QAAQ,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAE1H,SAAS,CAAC,MAAK;AACX,QAAA,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;AAC7C,QAAA,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,CAAC;;AAEzC,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,SAAS,CAAC,MAAK;AACX,QAAA,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;AAC7B,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,SAAS,CAAC,MAAK;AACX,QAAA,OAAO,MAAK;AACR,YAAA,qBAAqB,CAAC;gBAClB,KAAK,EAAE,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO;AACzD,aAAA,CAAC,CAAC;AACd,SAAC,CAAC;KACL,EAAE,EAAE,CAAC,CAAC;IACP,OAAO;AACH,QAAA,SAAS,EAAE,SAAS;QACpB,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,qBAAqB;QACrB,QAAQ;KACX,CAAA;AACL;;;;"}
|