@cratis/scene.primereact 4.5.0 → 4.7.0
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/.storybook/preview.tsx +8 -1
- package/EnumerationResolution.ts +7 -0
- package/README.md +42 -10
- package/chart/ChartGallery.stories.tsx +63 -0
- package/chart/ChartType.ts +14 -0
- package/chart/ChartTypeResolution.ts +14 -0
- package/chart/PrimeChart.tsx +62 -0
- package/chart/chartHasData.ts +22 -0
- package/chart/chartTypeChoices.ts +32 -0
- package/chart/index.ts +7 -0
- package/chart/resolveChartType.ts +61 -0
- package/chart/useChart.ts +61 -0
- package/data/DataGallery.stories.tsx +6 -0
- package/data/DataScrollerRow.tsx +35 -0
- package/data/PrimeDataScroller.tsx +84 -0
- package/data/PrimeTreeTable.tsx +145 -0
- package/data/TreeTableCheckState.ts +9 -0
- package/data/TreeTableRow.ts +22 -0
- package/data/TreeTableRowView.tsx +86 -0
- package/data/TreeTableSelectionMode.ts +10 -0
- package/data/checkboxSelection.ts +92 -0
- package/data/index.ts +4 -0
- package/data/isSerializedLegacyElement.ts +30 -0
- package/data/readableValue.ts +32 -0
- package/data/selectionKeysOf.ts +40 -0
- package/data/treeTableRows.ts +32 -0
- package/data/useIncrementalLoad.ts +36 -0
- package/data/useLoadOnReach.ts +31 -0
- package/data/useTreeGridNavigation.ts +81 -0
- package/dist/cjs/chart/ChartType.js +18 -0
- package/dist/cjs/chart/ChartType.js.map +1 -0
- package/dist/cjs/chart/PrimeChart.js +92 -0
- package/dist/cjs/chart/PrimeChart.js.map +1 -0
- package/dist/cjs/chart/chartHasData.js +24 -0
- package/dist/cjs/chart/chartHasData.js.map +1 -0
- package/dist/cjs/chart/chartTypeChoices.js +43 -0
- package/dist/cjs/chart/chartTypeChoices.js.map +1 -0
- package/dist/cjs/chart/resolveChartType.js +69 -0
- package/dist/cjs/chart/resolveChartType.js.map +1 -0
- package/dist/cjs/chart/useChart.js +62 -0
- package/dist/cjs/chart/useChart.js.map +1 -0
- package/dist/cjs/data/DataScrollerRow.js +50 -0
- package/dist/cjs/data/DataScrollerRow.js.map +1 -0
- package/dist/cjs/data/PrimeDataScroller.js +120 -0
- package/dist/cjs/data/PrimeDataScroller.js.map +1 -0
- package/dist/cjs/data/PrimeTreeTable.js +217 -0
- package/dist/cjs/data/PrimeTreeTable.js.map +1 -0
- package/dist/cjs/data/TreeTableCheckState.js +13 -0
- package/dist/cjs/data/TreeTableCheckState.js.map +1 -0
- package/dist/cjs/data/TreeTableRowView.js +76 -0
- package/dist/cjs/data/TreeTableRowView.js.map +1 -0
- package/dist/cjs/data/TreeTableSelectionMode.js +14 -0
- package/dist/cjs/data/TreeTableSelectionMode.js.map +1 -0
- package/dist/cjs/data/checkboxSelection.js +88 -0
- package/dist/cjs/data/checkboxSelection.js.map +1 -0
- package/dist/cjs/data/isSerializedLegacyElement.js +30 -0
- package/dist/cjs/data/isSerializedLegacyElement.js.map +1 -0
- package/dist/cjs/data/readableValue.js +31 -0
- package/dist/cjs/data/readableValue.js.map +1 -0
- package/dist/cjs/data/selectionKeysOf.js +40 -0
- package/dist/cjs/data/selectionKeysOf.js.map +1 -0
- package/dist/cjs/data/treeTableRows.js +42 -0
- package/dist/cjs/data/treeTableRows.js.map +1 -0
- package/dist/cjs/data/useIncrementalLoad.js +46 -0
- package/dist/cjs/data/useIncrementalLoad.js.map +1 -0
- package/dist/cjs/data/useLoadOnReach.js +42 -0
- package/dist/cjs/data/useLoadOnReach.js.map +1 -0
- package/dist/cjs/data/useTreeGridNavigation.js +75 -0
- package/dist/cjs/data/useTreeGridNavigation.js.map +1 -0
- package/dist/cjs/editor/PrimeEditor.js +96 -0
- package/dist/cjs/editor/PrimeEditor.js.map +1 -0
- package/dist/cjs/editor/QuillLoaderContext.js +10 -0
- package/dist/cjs/editor/QuillLoaderContext.js.map +1 -0
- package/dist/cjs/editor/QuillLoaderProvider.js +21 -0
- package/dist/cjs/editor/QuillLoaderProvider.js.map +1 -0
- package/dist/cjs/editor/applyHtml.js +25 -0
- package/dist/cjs/editor/applyHtml.js.map +1 -0
- package/dist/cjs/editor/characterCount.js +10 -0
- package/dist/cjs/editor/characterCount.js.map +1 -0
- package/dist/cjs/editor/htmlToPlainText.js +101 -0
- package/dist/cjs/editor/htmlToPlainText.js.map +1 -0
- package/dist/cjs/editor/renderSafeNodes.js +35 -0
- package/dist/cjs/editor/renderSafeNodes.js.map +1 -0
- package/dist/cjs/editor/safeUrls.js +44 -0
- package/dist/cjs/editor/safeUrls.js.map +1 -0
- package/dist/cjs/editor/sanitizeHtml.js +140 -0
- package/dist/cjs/editor/sanitizeHtml.js.map +1 -0
- package/dist/cjs/editor/serializeSafeNodes.js +33 -0
- package/dist/cjs/editor/serializeSafeNodes.js.map +1 -0
- package/dist/cjs/editor/toolbarLayout.js +35 -0
- package/dist/cjs/editor/toolbarLayout.js.map +1 -0
- package/dist/cjs/editor/useQuillEditor.js +137 -0
- package/dist/cjs/editor/useQuillEditor.js.map +1 -0
- package/dist/cjs/file/FileUploadContext.js +13 -0
- package/dist/cjs/file/FileUploadContext.js.map +1 -0
- package/dist/cjs/file/FileUploadHandlerProvider.js +25 -0
- package/dist/cjs/file/FileUploadHandlerProvider.js.map +1 -0
- package/dist/cjs/file/FileUploadMode.js +13 -0
- package/dist/cjs/file/FileUploadMode.js.map +1 -0
- package/dist/cjs/file/PrimeFileUpload.js +161 -0
- package/dist/cjs/file/PrimeFileUpload.js.map +1 -0
- package/dist/cjs/file/postFiles.js +31 -0
- package/dist/cjs/file/postFiles.js.map +1 -0
- package/dist/cjs/file/resolveUploadTarget.js +68 -0
- package/dist/cjs/file/resolveUploadTarget.js.map +1 -0
- package/dist/cjs/file/useUploadSession.js +62 -0
- package/dist/cjs/file/useUploadSession.js.map +1 -0
- package/dist/cjs/form/MultiStateGlyph.js +59 -0
- package/dist/cjs/form/MultiStateGlyph.js.map +1 -0
- package/dist/cjs/form/PrimeMultiStateCheckbox.js +123 -0
- package/dist/cjs/form/PrimeMultiStateCheckbox.js.map +1 -0
- package/dist/cjs/form/multiStateOptions.js +77 -0
- package/dist/cjs/form/multiStateOptions.js.map +1 -0
- package/dist/cjs/form/multiStateStates.js +32 -0
- package/dist/cjs/form/multiStateStates.js.map +1 -0
- package/dist/cjs/form/useMultiStateSelection.js +51 -0
- package/dist/cjs/form/useMultiStateSelection.js.map +1 -0
- package/dist/cjs/index.js +44 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/legacyEnumerationChoices.js +39 -0
- package/dist/cjs/legacyEnumerationChoices.js.map +1 -0
- package/dist/cjs/loadQuill/index.js +22 -0
- package/dist/cjs/loadQuill/index.js.map +1 -0
- package/dist/cjs/primeReactComponents.js +15 -0
- package/dist/cjs/primeReactComponents.js.map +1 -1
- package/dist/cjs/primeReactDescriptors.js +400 -0
- package/dist/cjs/primeReactDescriptors.js.map +1 -0
- package/dist/cjs/primeReactPackage.js +8 -0
- package/dist/cjs/primeReactPackage.js.map +1 -1
- package/dist/cjs/properties.js +11 -0
- package/dist/cjs/properties.js.map +1 -1
- package/dist/cjs/resolveEnumeration.js +55 -0
- package/dist/cjs/resolveEnumeration.js.map +1 -0
- package/dist/cjs/structurallyEqual.js +27 -0
- package/dist/cjs/structurallyEqual.js.map +1 -0
- package/dist/cjs/treeNodes.js +42 -7
- package/dist/cjs/treeNodes.js.map +1 -1
- package/dist/cjs/useResettingState.js +47 -0
- package/dist/cjs/useResettingState.js.map +1 -0
- package/dist/cjs/useStructuralValue.js +20 -0
- package/dist/cjs/useStructuralValue.js.map +1 -0
- package/dist/esm/EnumerationResolution.d.ts +9 -0
- package/dist/esm/EnumerationResolution.d.ts.map +1 -0
- package/dist/esm/EnumerationResolution.js +2 -0
- package/dist/esm/EnumerationResolution.js.map +1 -0
- package/dist/esm/chart/ChartGallery.stories.d.ts +14 -0
- package/dist/esm/chart/ChartGallery.stories.d.ts.map +1 -0
- package/dist/esm/chart/ChartGallery.stories.js +47 -0
- package/dist/esm/chart/ChartGallery.stories.js.map +1 -0
- package/dist/esm/chart/ChartType.d.ts +11 -0
- package/dist/esm/chart/ChartType.d.ts.map +1 -0
- package/dist/esm/chart/ChartType.js +16 -0
- package/dist/esm/chart/ChartType.js.map +1 -0
- package/dist/esm/chart/ChartTypeResolution.d.ts +10 -0
- package/dist/esm/chart/ChartTypeResolution.d.ts.map +1 -0
- package/dist/esm/chart/ChartTypeResolution.js +2 -0
- package/dist/esm/chart/ChartTypeResolution.js.map +1 -0
- package/dist/esm/chart/PrimeChart.d.ts +3 -0
- package/dist/esm/chart/PrimeChart.d.ts.map +1 -0
- package/dist/esm/chart/PrimeChart.js +90 -0
- package/dist/esm/chart/PrimeChart.js.map +1 -0
- package/dist/esm/chart/chartHasData.d.ts +2 -0
- package/dist/esm/chart/chartHasData.d.ts.map +1 -0
- package/dist/esm/chart/chartHasData.js +22 -0
- package/dist/esm/chart/chartHasData.js.map +1 -0
- package/dist/esm/chart/chartTypeChoices.d.ts +3 -0
- package/dist/esm/chart/chartTypeChoices.d.ts.map +1 -0
- package/dist/esm/chart/chartTypeChoices.js +41 -0
- package/dist/esm/chart/chartTypeChoices.js.map +1 -0
- package/dist/esm/chart/index.d.ts +5 -0
- package/dist/esm/chart/index.d.ts.map +1 -0
- package/dist/esm/chart/index.js +5 -0
- package/dist/esm/chart/index.js.map +1 -0
- package/dist/esm/chart/resolveChartType.d.ts +6 -0
- package/dist/esm/chart/resolveChartType.d.ts.map +1 -0
- package/dist/esm/chart/resolveChartType.js +66 -0
- package/dist/esm/chart/resolveChartType.js.map +1 -0
- package/dist/esm/chart/useChart.d.ts +4 -0
- package/dist/esm/chart/useChart.d.ts.map +1 -0
- package/dist/esm/chart/useChart.js +60 -0
- package/dist/esm/chart/useChart.js.map +1 -0
- package/dist/esm/data/DataGallery.stories.d.ts.map +1 -1
- package/dist/esm/data/DataGallery.stories.js +6 -0
- package/dist/esm/data/DataGallery.stories.js.map +1 -1
- package/dist/esm/data/DataScrollerRow.d.ts +4 -0
- package/dist/esm/data/DataScrollerRow.d.ts.map +1 -0
- package/dist/esm/data/DataScrollerRow.js +48 -0
- package/dist/esm/data/DataScrollerRow.js.map +1 -0
- package/dist/esm/data/PrimeDataScroller.d.ts +3 -0
- package/dist/esm/data/PrimeDataScroller.d.ts.map +1 -0
- package/dist/esm/data/PrimeDataScroller.js +118 -0
- package/dist/esm/data/PrimeDataScroller.js.map +1 -0
- package/dist/esm/data/PrimeTreeTable.d.ts +3 -0
- package/dist/esm/data/PrimeTreeTable.d.ts.map +1 -0
- package/dist/esm/data/PrimeTreeTable.js +215 -0
- package/dist/esm/data/PrimeTreeTable.js.map +1 -0
- package/dist/esm/data/TreeTableCheckState.d.ts +6 -0
- package/dist/esm/data/TreeTableCheckState.d.ts.map +1 -0
- package/dist/esm/data/TreeTableCheckState.js +11 -0
- package/dist/esm/data/TreeTableCheckState.js.map +1 -0
- package/dist/esm/data/TreeTableRow.d.ts +10 -0
- package/dist/esm/data/TreeTableRow.d.ts.map +1 -0
- package/dist/esm/data/TreeTableRow.js +2 -0
- package/dist/esm/data/TreeTableRow.js.map +1 -0
- package/dist/esm/data/TreeTableRowView.d.ts +21 -0
- package/dist/esm/data/TreeTableRowView.d.ts.map +1 -0
- package/dist/esm/data/TreeTableRowView.js +74 -0
- package/dist/esm/data/TreeTableRowView.js.map +1 -0
- package/dist/esm/data/TreeTableSelectionMode.d.ts +7 -0
- package/dist/esm/data/TreeTableSelectionMode.d.ts.map +1 -0
- package/dist/esm/data/TreeTableSelectionMode.js +12 -0
- package/dist/esm/data/TreeTableSelectionMode.js.map +1 -0
- package/dist/esm/data/checkboxSelection.d.ts +9 -0
- package/dist/esm/data/checkboxSelection.d.ts.map +1 -0
- package/dist/esm/data/checkboxSelection.js +85 -0
- package/dist/esm/data/checkboxSelection.js.map +1 -0
- package/dist/esm/data/index.d.ts +4 -0
- package/dist/esm/data/index.d.ts.map +1 -1
- package/dist/esm/data/index.js +4 -0
- package/dist/esm/data/index.js.map +1 -1
- package/dist/esm/data/isSerializedLegacyElement.d.ts +3 -0
- package/dist/esm/data/isSerializedLegacyElement.d.ts.map +1 -0
- package/dist/esm/data/isSerializedLegacyElement.js +27 -0
- package/dist/esm/data/isSerializedLegacyElement.js.map +1 -0
- package/dist/esm/data/readableValue.d.ts +2 -0
- package/dist/esm/data/readableValue.d.ts.map +1 -0
- package/dist/esm/data/readableValue.js +29 -0
- package/dist/esm/data/readableValue.js.map +1 -0
- package/dist/esm/data/selectionKeysOf.d.ts +2 -0
- package/dist/esm/data/selectionKeysOf.d.ts.map +1 -0
- package/dist/esm/data/selectionKeysOf.js +38 -0
- package/dist/esm/data/selectionKeysOf.js.map +1 -0
- package/dist/esm/data/treeTableRows.d.ts +6 -0
- package/dist/esm/data/treeTableRows.d.ts.map +1 -0
- package/dist/esm/data/treeTableRows.js +38 -0
- package/dist/esm/data/treeTableRows.js.map +1 -0
- package/dist/esm/data/useIncrementalLoad.d.ts +6 -0
- package/dist/esm/data/useIncrementalLoad.d.ts.map +1 -0
- package/dist/esm/data/useIncrementalLoad.js +44 -0
- package/dist/esm/data/useIncrementalLoad.js.map +1 -0
- package/dist/esm/data/useLoadOnReach.d.ts +3 -0
- package/dist/esm/data/useLoadOnReach.d.ts.map +1 -0
- package/dist/esm/data/useLoadOnReach.js +40 -0
- package/dist/esm/data/useLoadOnReach.js.map +1 -0
- package/dist/esm/data/useTreeGridNavigation.d.ts +17 -0
- package/dist/esm/data/useTreeGridNavigation.d.ts.map +1 -0
- package/dist/esm/data/useTreeGridNavigation.js +73 -0
- package/dist/esm/data/useTreeGridNavigation.js.map +1 -0
- package/dist/esm/editor/PrimeEditor.d.ts +3 -0
- package/dist/esm/editor/PrimeEditor.d.ts.map +1 -0
- package/dist/esm/editor/PrimeEditor.js +94 -0
- package/dist/esm/editor/PrimeEditor.js.map +1 -0
- package/dist/esm/editor/QuillConstructor.d.ts +4 -0
- package/dist/esm/editor/QuillConstructor.d.ts.map +1 -0
- package/dist/esm/editor/QuillConstructor.js +2 -0
- package/dist/esm/editor/QuillConstructor.js.map +1 -0
- package/dist/esm/editor/QuillEditorOptions.d.ts +13 -0
- package/dist/esm/editor/QuillEditorOptions.d.ts.map +1 -0
- package/dist/esm/editor/QuillEditorOptions.js +2 -0
- package/dist/esm/editor/QuillEditorOptions.js.map +1 -0
- package/dist/esm/editor/QuillEditorState.d.ts +6 -0
- package/dist/esm/editor/QuillEditorState.d.ts.map +1 -0
- package/dist/esm/editor/QuillEditorState.js +2 -0
- package/dist/esm/editor/QuillEditorState.js.map +1 -0
- package/dist/esm/editor/QuillInstance.d.ts +16 -0
- package/dist/esm/editor/QuillInstance.d.ts.map +1 -0
- package/dist/esm/editor/QuillInstance.js +2 -0
- package/dist/esm/editor/QuillInstance.js.map +1 -0
- package/dist/esm/editor/QuillLoader.d.ts +5 -0
- package/dist/esm/editor/QuillLoader.d.ts.map +1 -0
- package/dist/esm/editor/QuillLoader.js +2 -0
- package/dist/esm/editor/QuillLoader.js.map +1 -0
- package/dist/esm/editor/QuillLoaderContext.d.ts +3 -0
- package/dist/esm/editor/QuillLoaderContext.d.ts.map +1 -0
- package/dist/esm/editor/QuillLoaderContext.js +8 -0
- package/dist/esm/editor/QuillLoaderContext.js.map +1 -0
- package/dist/esm/editor/QuillLoaderProvider.d.ts +8 -0
- package/dist/esm/editor/QuillLoaderProvider.d.ts.map +1 -0
- package/dist/esm/editor/QuillLoaderProvider.js +19 -0
- package/dist/esm/editor/QuillLoaderProvider.js.map +1 -0
- package/dist/esm/editor/QuillOptions.d.ts +9 -0
- package/dist/esm/editor/QuillOptions.d.ts.map +1 -0
- package/dist/esm/editor/QuillOptions.js +2 -0
- package/dist/esm/editor/QuillOptions.js.map +1 -0
- package/dist/esm/editor/SafeElement.d.ts +7 -0
- package/dist/esm/editor/SafeElement.d.ts.map +1 -0
- package/dist/esm/editor/SafeElement.js +2 -0
- package/dist/esm/editor/SafeElement.js.map +1 -0
- package/dist/esm/editor/SafeNode.d.ts +3 -0
- package/dist/esm/editor/SafeNode.d.ts.map +1 -0
- package/dist/esm/editor/SafeNode.js +2 -0
- package/dist/esm/editor/SafeNode.js.map +1 -0
- package/dist/esm/editor/applyHtml.d.ts +3 -0
- package/dist/esm/editor/applyHtml.d.ts.map +1 -0
- package/dist/esm/editor/applyHtml.js +23 -0
- package/dist/esm/editor/applyHtml.js.map +1 -0
- package/dist/esm/editor/characterCount.d.ts +3 -0
- package/dist/esm/editor/characterCount.d.ts.map +1 -0
- package/dist/esm/editor/characterCount.js +8 -0
- package/dist/esm/editor/characterCount.js.map +1 -0
- package/dist/esm/editor/htmlToPlainText.d.ts +2 -0
- package/dist/esm/editor/htmlToPlainText.d.ts.map +1 -0
- package/dist/esm/editor/htmlToPlainText.js +99 -0
- package/dist/esm/editor/htmlToPlainText.js.map +1 -0
- package/dist/esm/editor/index.d.ts +14 -0
- package/dist/esm/editor/index.d.ts.map +1 -0
- package/dist/esm/editor/index.js +14 -0
- package/dist/esm/editor/index.js.map +1 -0
- package/dist/esm/editor/renderSafeNodes.d.ts +4 -0
- package/dist/esm/editor/renderSafeNodes.d.ts.map +1 -0
- package/dist/esm/editor/renderSafeNodes.js +33 -0
- package/dist/esm/editor/renderSafeNodes.js.map +1 -0
- package/dist/esm/editor/safeUrls.d.ts +3 -0
- package/dist/esm/editor/safeUrls.d.ts.map +1 -0
- package/dist/esm/editor/safeUrls.js +41 -0
- package/dist/esm/editor/safeUrls.js.map +1 -0
- package/dist/esm/editor/sanitizeHtml.d.ts +3 -0
- package/dist/esm/editor/sanitizeHtml.d.ts.map +1 -0
- package/dist/esm/editor/sanitizeHtml.js +138 -0
- package/dist/esm/editor/sanitizeHtml.js.map +1 -0
- package/dist/esm/editor/serializeSafeNodes.d.ts +3 -0
- package/dist/esm/editor/serializeSafeNodes.d.ts.map +1 -0
- package/dist/esm/editor/serializeSafeNodes.js +31 -0
- package/dist/esm/editor/serializeSafeNodes.js.map +1 -0
- package/dist/esm/editor/toolbarLayout.d.ts +2 -0
- package/dist/esm/editor/toolbarLayout.d.ts.map +1 -0
- package/dist/esm/editor/toolbarLayout.js +33 -0
- package/dist/esm/editor/toolbarLayout.js.map +1 -0
- package/dist/esm/editor/useQuillEditor.d.ts +4 -0
- package/dist/esm/editor/useQuillEditor.d.ts.map +1 -0
- package/dist/esm/editor/useQuillEditor.js +135 -0
- package/dist/esm/editor/useQuillEditor.js.map +1 -0
- package/dist/esm/file/FileGallery.stories.d.ts +19 -0
- package/dist/esm/file/FileGallery.stories.d.ts.map +1 -0
- package/dist/esm/file/FileGallery.stories.js +23 -0
- package/dist/esm/file/FileGallery.stories.js.map +1 -0
- package/dist/esm/file/FileUploadContext.d.ts +7 -0
- package/dist/esm/file/FileUploadContext.d.ts.map +1 -0
- package/dist/esm/file/FileUploadContext.js +11 -0
- package/dist/esm/file/FileUploadContext.js.map +1 -0
- package/dist/esm/file/FileUploadHandler.d.ts +4 -0
- package/dist/esm/file/FileUploadHandler.d.ts.map +1 -0
- package/dist/esm/file/FileUploadHandler.js +2 -0
- package/dist/esm/file/FileUploadHandler.js.map +1 -0
- package/dist/esm/file/FileUploadHandlerProvider.d.ts +9 -0
- package/dist/esm/file/FileUploadHandlerProvider.d.ts.map +1 -0
- package/dist/esm/file/FileUploadHandlerProvider.js +23 -0
- package/dist/esm/file/FileUploadHandlerProvider.js.map +1 -0
- package/dist/esm/file/FileUploadMode.d.ts +6 -0
- package/dist/esm/file/FileUploadMode.d.ts.map +1 -0
- package/dist/esm/file/FileUploadMode.js +11 -0
- package/dist/esm/file/FileUploadMode.js.map +1 -0
- package/dist/esm/file/PrimeFileUpload.d.ts +3 -0
- package/dist/esm/file/PrimeFileUpload.d.ts.map +1 -0
- package/dist/esm/file/PrimeFileUpload.js +159 -0
- package/dist/esm/file/PrimeFileUpload.js.map +1 -0
- package/dist/esm/file/UploadStatus.d.ts +5 -0
- package/dist/esm/file/UploadStatus.d.ts.map +1 -0
- package/dist/esm/file/UploadStatus.js +2 -0
- package/dist/esm/file/UploadStatus.js.map +1 -0
- package/dist/esm/file/UploadTarget.d.ts +8 -0
- package/dist/esm/file/UploadTarget.d.ts.map +1 -0
- package/dist/esm/file/UploadTarget.js +2 -0
- package/dist/esm/file/UploadTarget.js.map +1 -0
- package/dist/esm/file/index.d.ts +7 -0
- package/dist/esm/file/index.d.ts.map +1 -0
- package/dist/esm/file/index.js +7 -0
- package/dist/esm/file/index.js.map +1 -0
- package/dist/esm/file/postFiles.d.ts +2 -0
- package/dist/esm/file/postFiles.d.ts.map +1 -0
- package/dist/esm/file/postFiles.js +29 -0
- package/dist/esm/file/postFiles.js.map +1 -0
- package/dist/esm/file/resolveUploadTarget.d.ts +3 -0
- package/dist/esm/file/resolveUploadTarget.d.ts.map +1 -0
- package/dist/esm/file/resolveUploadTarget.js +66 -0
- package/dist/esm/file/resolveUploadTarget.js.map +1 -0
- package/dist/esm/file/useUploadSession.d.ts +10 -0
- package/dist/esm/file/useUploadSession.d.ts.map +1 -0
- package/dist/esm/file/useUploadSession.js +60 -0
- package/dist/esm/file/useUploadSession.js.map +1 -0
- package/dist/esm/form/FormGallery.stories.d.ts.map +1 -1
- package/dist/esm/form/FormGallery.stories.js +9 -0
- package/dist/esm/form/FormGallery.stories.js.map +1 -1
- package/dist/esm/form/MultiStateGlyph.d.ts +8 -0
- package/dist/esm/form/MultiStateGlyph.d.ts.map +1 -0
- package/dist/esm/form/MultiStateGlyph.js +57 -0
- package/dist/esm/form/MultiStateGlyph.js.map +1 -0
- package/dist/esm/form/MultiStateOption.d.ts +7 -0
- package/dist/esm/form/MultiStateOption.d.ts.map +1 -0
- package/dist/esm/form/MultiStateOption.js +2 -0
- package/dist/esm/form/MultiStateOption.js.map +1 -0
- package/dist/esm/form/PrimeMultiStateCheckbox.d.ts +3 -0
- package/dist/esm/form/PrimeMultiStateCheckbox.d.ts.map +1 -0
- package/dist/esm/form/PrimeMultiStateCheckbox.js +121 -0
- package/dist/esm/form/PrimeMultiStateCheckbox.js.map +1 -0
- package/dist/esm/form/index.d.ts +1 -0
- package/dist/esm/form/index.d.ts.map +1 -1
- package/dist/esm/form/index.js +1 -0
- package/dist/esm/form/index.js.map +1 -1
- package/dist/esm/form/multiStateOptions.d.ts +4 -0
- package/dist/esm/form/multiStateOptions.d.ts.map +1 -0
- package/dist/esm/form/multiStateOptions.js +75 -0
- package/dist/esm/form/multiStateOptions.js.map +1 -0
- package/dist/esm/form/multiStateStates.d.ts +4 -0
- package/dist/esm/form/multiStateStates.d.ts.map +1 -0
- package/dist/esm/form/multiStateStates.js +30 -0
- package/dist/esm/form/multiStateStates.js.map +1 -0
- package/dist/esm/form/useMultiStateSelection.d.ts +6 -0
- package/dist/esm/form/useMultiStateSelection.d.ts.map +1 -0
- package/dist/esm/form/useMultiStateSelection.js +49 -0
- package/dist/esm/form/useMultiStateSelection.js.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +22 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/legacyEnumerationChoices.d.ts +3 -0
- package/dist/esm/legacyEnumerationChoices.d.ts.map +1 -0
- package/dist/esm/legacyEnumerationChoices.js +37 -0
- package/dist/esm/legacyEnumerationChoices.js.map +1 -0
- package/dist/esm/loadQuill/index.d.ts +3 -0
- package/dist/esm/loadQuill/index.d.ts.map +1 -0
- package/dist/esm/loadQuill/index.js +20 -0
- package/dist/esm/loadQuill/index.js.map +1 -0
- package/dist/esm/primeReactComponents.d.ts.map +1 -1
- package/dist/esm/primeReactComponents.js +15 -0
- package/dist/esm/primeReactComponents.js.map +1 -1
- package/dist/esm/primeReactDescriptors.d.ts +3 -0
- package/dist/esm/primeReactDescriptors.d.ts.map +1 -0
- package/dist/esm/primeReactDescriptors.js +398 -0
- package/dist/esm/primeReactDescriptors.js.map +1 -0
- package/dist/esm/primeReactPackage.d.ts.map +1 -1
- package/dist/esm/primeReactPackage.js +8 -0
- package/dist/esm/primeReactPackage.js.map +1 -1
- package/dist/esm/properties.d.ts +1 -0
- package/dist/esm/properties.d.ts.map +1 -1
- package/dist/esm/properties.js +11 -1
- package/dist/esm/properties.js.map +1 -1
- package/dist/esm/resolveEnumeration.d.ts +3 -0
- package/dist/esm/resolveEnumeration.d.ts.map +1 -0
- package/dist/esm/resolveEnumeration.js +53 -0
- package/dist/esm/resolveEnumeration.js.map +1 -0
- package/dist/esm/structurallyEqual.d.ts +2 -0
- package/dist/esm/structurallyEqual.d.ts.map +1 -0
- package/dist/esm/structurallyEqual.js +25 -0
- package/dist/esm/structurallyEqual.js.map +1 -0
- package/dist/esm/treeNodes.d.ts +2 -1
- package/dist/esm/treeNodes.d.ts.map +1 -1
- package/dist/esm/treeNodes.js +42 -8
- package/dist/esm/treeNodes.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/useResettingState.d.ts +3 -0
- package/dist/esm/useResettingState.d.ts.map +1 -0
- package/dist/esm/useResettingState.js +45 -0
- package/dist/esm/useResettingState.js.map +1 -0
- package/dist/esm/useStructuralValue.d.ts +2 -0
- package/dist/esm/useStructuralValue.d.ts.map +1 -0
- package/dist/esm/useStructuralValue.js +18 -0
- package/dist/esm/useStructuralValue.js.map +1 -0
- package/editor/PrimeEditor.tsx +83 -0
- package/editor/QuillConstructor.ts +8 -0
- package/editor/QuillEditorOptions.ts +29 -0
- package/editor/QuillEditorState.ts +14 -0
- package/editor/QuillInstance.ts +27 -0
- package/editor/QuillLoader.ts +13 -0
- package/editor/QuillLoaderContext.ts +8 -0
- package/editor/QuillLoaderProvider.tsx +24 -0
- package/editor/QuillOptions.ts +10 -0
- package/editor/SafeElement.ts +15 -0
- package/editor/SafeNode.ts +7 -0
- package/editor/applyHtml.ts +21 -0
- package/editor/characterCount.ts +9 -0
- package/editor/htmlToPlainText.ts +74 -0
- package/editor/index.ts +16 -0
- package/editor/renderSafeNodes.tsx +26 -0
- package/editor/safeUrls.ts +43 -0
- package/editor/sanitizeHtml.ts +94 -0
- package/editor/serializeSafeNodes.ts +26 -0
- package/editor/toolbarLayout.ts +10 -0
- package/editor/useQuillEditor.ts +114 -0
- package/file/FileGallery.stories.tsx +32 -0
- package/file/FileUploadContext.ts +17 -0
- package/file/FileUploadHandler.ts +15 -0
- package/file/FileUploadHandlerProvider.tsx +33 -0
- package/file/FileUploadMode.ts +9 -0
- package/file/PrimeFileUpload.tsx +129 -0
- package/file/UploadStatus.ts +9 -0
- package/file/UploadTarget.ts +12 -0
- package/file/index.ts +9 -0
- package/file/postFiles.ts +23 -0
- package/file/resolveUploadTarget.ts +61 -0
- package/file/useUploadSession.ts +67 -0
- package/form/FormGallery.stories.tsx +9 -0
- package/form/MultiStateGlyph.tsx +55 -0
- package/form/MultiStateOption.ts +17 -0
- package/form/PrimeMultiStateCheckbox.tsx +101 -0
- package/form/index.ts +1 -0
- package/form/multiStateOptions.ts +78 -0
- package/form/multiStateStates.ts +23 -0
- package/form/useMultiStateSelection.ts +48 -0
- package/index.ts +4 -0
- package/legacyEnumerationChoices.ts +35 -0
- package/loadQuill/index.ts +21 -0
- package/package.json +27 -7
- package/primeReactComponents.ts +12 -0
- package/primeReactDescriptors.ts +111 -0
- package/primeReactPackage.ts +5 -3
- package/primeReactTheme.css +69 -0
- package/properties.ts +14 -0
- package/resolveEnumeration.ts +50 -0
- package/structurallyEqual.ts +29 -0
- package/treeNodes.ts +44 -6
- package/useResettingState.ts +34 -0
- package/useStructuralValue.ts +17 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartHasData.js","sources":["../../../chart/chartHasData.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * Whether chart data holds at least one data point to draw.\n *\n * Datasets whose `data` is empty (or absent) draw nothing but axes, so the chart reports it instead.\n * A dataset may also give its points as keyed records (Chart.js `parsing` over an object), which counts\n * when it has any keys.\n */\nexport function chartHasData(data: unknown): boolean {\n if (data === null || typeof data !== 'object') return false;\n const datasets = (data as Record<string, unknown>).datasets;\n if (!Array.isArray(datasets)) return false;\n\n return datasets.some(dataset => {\n if (dataset === null || typeof dataset !== 'object') return false;\n const points = (dataset as Record<string, unknown>).data;\n if (Array.isArray(points)) return points.length > 0;\n return points !== null && typeof points === 'object' && Object.keys(points).length > 0;\n });\n}\n"],"names":["chartHasData","data","datasets","Array","isArray","some","dataset","points","length","Object","keys"],"mappings":"AAAA;AACA;AAEA;;;;;;IAOO,SAASA,YAAAA,CAAaC,IAAa,EAAA;AACtC,IAAA,IAAIA,IAAAA,KAAS,IAAA,IAAQ,OAAOA,IAAAA,KAAS,UAAU,OAAO,KAAA;IACtD,MAAMC,QAAAA,GAAW,IAACD,CAAiCC,QAAQ;AAC3D,IAAA,IAAI,CAACC,KAAAA,CAAMC,OAAO,CAACF,WAAW,OAAO,KAAA;IAErC,OAAOA,QAAAA,CAASG,IAAI,CAACC,CAAAA,OAAAA,GAAAA;AACjB,QAAA,IAAIA,OAAAA,KAAY,IAAA,IAAQ,OAAOA,OAAAA,KAAY,UAAU,OAAO,KAAA;QAC5D,MAAMC,MAAAA,GAAS,OAACD,CAAoCL,IAAI;AACxD,QAAA,IAAIE,MAAMC,OAAO,CAACG,SAAS,OAAOA,MAAAA,CAAOC,MAAM,GAAG,CAAA;QAClD,OAAOD,MAAAA,KAAW,IAAA,IAAQ,OAAOA,MAAAA,KAAW,QAAA,IAAYE,OAAOC,IAAI,CAACH,MAAAA,CAAAA,CAAQC,MAAM,GAAG,CAAA;AACzF,IAAA,CAAA,CAAA;AACJ;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartTypeChoices.d.ts","sourceRoot":"","sources":["../../../chart/chartTypeChoices.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAuBrD,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAI5C,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ChartType } from './ChartType.js';
|
|
2
|
+
import { legacyChartTypes } from './resolveChartType.js';
|
|
3
|
+
|
|
4
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
5
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
6
|
+
const chartTypeLabels = {
|
|
7
|
+
[ChartType.Bar]: 'Bar',
|
|
8
|
+
[ChartType.Line]: 'Line',
|
|
9
|
+
[ChartType.Pie]: 'Pie',
|
|
10
|
+
[ChartType.Doughnut]: 'Doughnut',
|
|
11
|
+
[ChartType.PolarArea]: 'Polar area',
|
|
12
|
+
[ChartType.Radar]: 'Radar',
|
|
13
|
+
[ChartType.Bubble]: 'Bubble',
|
|
14
|
+
[ChartType.Scatter]: 'Scatter'
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* The chart type choices: the stable names new documents use, then the ordinals migrated documents carry,
|
|
18
|
+
* then the Pascal case member names of the original .NET enum that a serialized enum produces.
|
|
19
|
+
* A migrated chart stores its original `type`; offering every form the renderer accepts keeps that stored
|
|
20
|
+
* value valid (and its type visible and re-selectable) without rewriting it to another form behind the
|
|
21
|
+
* author's back. The choices are the same set `resolveChartType` accepts, so what the renderer draws is
|
|
22
|
+
* exactly what the descriptor allows.
|
|
23
|
+
*/ const chartTypeChoices = [
|
|
24
|
+
...Object.values(ChartType).map((type)=>({
|
|
25
|
+
value: type,
|
|
26
|
+
label: chartTypeLabels[type]
|
|
27
|
+
})),
|
|
28
|
+
...legacyChartTypes.map((type, ordinal)=>({
|
|
29
|
+
value: ordinal,
|
|
30
|
+
label: `${chartTypeLabels[type]} (legacy ${ordinal})`,
|
|
31
|
+
description: `The ordinal ${ordinal} of the original chart type enum, as stored by migrated documents.`
|
|
32
|
+
})),
|
|
33
|
+
...Object.keys(ChartType).map((name)=>({
|
|
34
|
+
value: name,
|
|
35
|
+
label: `${chartTypeLabels[ChartType[name]]} (legacy name ${name})`,
|
|
36
|
+
description: `The member name ${name} of the original chart type enum, as a serialized enum stores it.`
|
|
37
|
+
}))
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
export { chartTypeChoices };
|
|
41
|
+
//# sourceMappingURL=chartTypeChoices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartTypeChoices.js","sources":["../../../chart/chartTypeChoices.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { PropertyChoice } from '@cratis/scene.model';\nimport { ChartType } from './ChartType';\nimport { legacyChartTypes } from './resolveChartType';\n\nconst chartTypeLabels: Record<ChartType, string> = {\n [ChartType.Bar]: 'Bar',\n [ChartType.Line]: 'Line',\n [ChartType.Pie]: 'Pie',\n [ChartType.Doughnut]: 'Doughnut',\n [ChartType.PolarArea]: 'Polar area',\n [ChartType.Radar]: 'Radar',\n [ChartType.Bubble]: 'Bubble',\n [ChartType.Scatter]: 'Scatter',\n};\n\n/**\n * The chart type choices: the stable names new documents use, then the ordinals migrated documents carry,\n * then the Pascal case member names of the original .NET enum that a serialized enum produces.\n * A migrated chart stores its original `type`; offering every form the renderer accepts keeps that stored\n * value valid (and its type visible and re-selectable) without rewriting it to another form behind the\n * author's back. The choices are the same set `resolveChartType` accepts, so what the renderer draws is\n * exactly what the descriptor allows.\n */\nexport const chartTypeChoices: PropertyChoice[] = [\n ...Object.values(ChartType).map(type => ({ value: type, label: chartTypeLabels[type] })),\n ...legacyChartTypes.map((type, ordinal) => ({ value: ordinal, label: `${chartTypeLabels[type]} (legacy ${ordinal})`, description: `The ordinal ${ordinal} of the original chart type enum, as stored by migrated documents.` })),\n ...(Object.keys(ChartType) as (keyof typeof ChartType)[]).map(name => ({ value: name, label: `${chartTypeLabels[ChartType[name]]} (legacy name ${name})`, description: `The member name ${name} of the original chart type enum, as a serialized enum stores it.` })),\n];\n\n"],"names":["chartTypeLabels","ChartType","Bar","Line","Pie","Doughnut","PolarArea","Radar","Bubble","Scatter","chartTypeChoices","Object","values","map","type","value","label","legacyChartTypes","ordinal","description","keys","name"],"mappings":";;;AAAA;AACA;AAMA,MAAMA,eAAAA,GAA6C;IAC/C,CAACC,SAAAA,CAAUC,GAAG,GAAG,KAAA;IACjB,CAACD,SAAAA,CAAUE,IAAI,GAAG,MAAA;IAClB,CAACF,SAAAA,CAAUG,GAAG,GAAG,KAAA;IACjB,CAACH,SAAAA,CAAUI,QAAQ,GAAG,UAAA;IACtB,CAACJ,SAAAA,CAAUK,SAAS,GAAG,YAAA;IACvB,CAACL,SAAAA,CAAUM,KAAK,GAAG,OAAA;IACnB,CAACN,SAAAA,CAAUO,MAAM,GAAG,QAAA;IACpB,CAACP,SAAAA,CAAUQ,OAAO,GAAG;AACzB,CAAA;AAEA;;;;;;;UAQaC,gBAAAA,GAAqC;AAC3CC,IAAAA,GAAAA,MAAAA,CAAOC,MAAM,CAACX,SAAAA,CAAAA,CAAWY,GAAG,CAACC,CAAAA,QAAS;YAAEC,KAAAA,EAAOD,IAAAA;YAAME,KAAAA,EAAOhB,eAAe,CAACc,IAAAA;SAAM,CAAA,CAAA;AAClFG,IAAAA,GAAAA,gBAAAA,CAAiBJ,GAAG,CAAC,CAACC,IAAAA,EAAMI,WAAa;YAAEH,KAAAA,EAAOG,OAAAA;YAASF,KAAAA,EAAO,CAAA,EAAGhB,eAAe,CAACc,IAAAA,CAAK,CAAC,SAAS,EAAEI,OAAAA,CAAQ,CAAC,CAAC;AAAEC,YAAAA,WAAAA,EAAa,CAAC,YAAY,EAAED,OAAAA,CAAQ,kEAAkE;SAAE,CAAA,CAAA;OAC1N,MAACP,CAAOS,IAAI,CAACnB,SAAAA,CAAAA,CAA0CY,GAAG,CAACQ,CAAAA,QAAS;YAAEN,KAAAA,EAAOM,IAAAA;AAAML,YAAAA,KAAAA,EAAO,CAAA,EAAGhB,eAAe,CAACC,SAAS,CAACoB,IAAAA,CAAK,CAAC,CAAC,cAAc,EAAEA,IAAAA,CAAK,CAAC,CAAC;AAAEF,YAAAA,WAAAA,EAAa,CAAC,gBAAgB,EAAEE,IAAAA,CAAK,iEAAiE;SAAE,CAAA;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../chart/index.ts"],"names":[],"mappings":"AAGA,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../chart/index.ts"],"names":[],"mappings":"AAGA,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SceneElement } from '@cratis/scene.model';
|
|
2
|
+
import { ChartType } from './ChartType';
|
|
3
|
+
import { ChartTypeResolution } from './ChartTypeResolution';
|
|
4
|
+
export declare const legacyChartTypes: readonly ChartType[];
|
|
5
|
+
export declare function resolveChartType(element: SceneElement): ChartTypeResolution;
|
|
6
|
+
//# sourceMappingURL=resolveChartType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveChartType.d.ts","sourceRoot":"","sources":["../../../chart/resolveChartType.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAO5D,eAAO,MAAM,gBAAgB,EAAE,SAAS,SAAS,EAShD,CAAC;AAeF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,mBAAmB,CAe3E"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ChartType } from './ChartType.js';
|
|
2
|
+
|
|
3
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
4
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
5
|
+
/**
|
|
6
|
+
* The ordinals of the original .NET `PrimeReact.Charts.ChartType` enum, in declaration order
|
|
7
|
+
* (`Studio/Source/PrimeReact/Charts/Chart.cs`). Migrated documents keep the ordinal, so the position of
|
|
8
|
+
* each entry here is part of the stored-data contract and must never be reordered.
|
|
9
|
+
*/ const legacyChartTypes = [
|
|
10
|
+
ChartType.Bar,
|
|
11
|
+
ChartType.Line,
|
|
12
|
+
ChartType.Pie,
|
|
13
|
+
ChartType.Doughnut,
|
|
14
|
+
ChartType.PolarArea,
|
|
15
|
+
ChartType.Radar,
|
|
16
|
+
ChartType.Bubble,
|
|
17
|
+
ChartType.Scatter
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* Resolves an authored chart type to the Chart.js vocabulary.
|
|
21
|
+
*
|
|
22
|
+
* Three forms are accepted, and the stored value is never rewritten:
|
|
23
|
+
* - a canonical Chart.js name from {@link ChartType} (`'polarArea'`), which new documents use;
|
|
24
|
+
* - the ordinal of the original .NET enum (`4`), which migrated documents carry;
|
|
25
|
+
* - the .NET member name in its original Pascal case (`'PolarArea'`), which a JSON serialization of that
|
|
26
|
+
* enum produces.
|
|
27
|
+
*
|
|
28
|
+
* Anything else - an unknown or fractional ordinal, a numeric string, a differently cased name, `null` -
|
|
29
|
+
* resolves to a finding with a message, because the right chart cannot be known. An absent `type` is the
|
|
30
|
+
* one default: the original control defaulted to `Bar`.
|
|
31
|
+
*/ function resolveChartType(element) {
|
|
32
|
+
const value = element.properties.type;
|
|
33
|
+
if (value === undefined) return {
|
|
34
|
+
isValid: true,
|
|
35
|
+
type: ChartType.Bar
|
|
36
|
+
};
|
|
37
|
+
if (typeof value === 'number') {
|
|
38
|
+
const type = Number.isInteger(value) ? legacyChartTypes[value] : undefined;
|
|
39
|
+
return type === undefined ? unsupported(value) : {
|
|
40
|
+
isValid: true,
|
|
41
|
+
type
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
if (typeof value === 'string') {
|
|
45
|
+
if (Object.values(ChartType).includes(value)) return {
|
|
46
|
+
isValid: true,
|
|
47
|
+
type: value
|
|
48
|
+
};
|
|
49
|
+
if (Object.hasOwn(ChartType, value)) return {
|
|
50
|
+
isValid: true,
|
|
51
|
+
type: ChartType[value]
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return unsupported(value);
|
|
55
|
+
}
|
|
56
|
+
function unsupported(value) {
|
|
57
|
+
const shown = typeof value === 'string' ? `'${value}'` : JSON.stringify(value) ?? String(value);
|
|
58
|
+
return {
|
|
59
|
+
isValid: false,
|
|
60
|
+
value,
|
|
61
|
+
message: `Unsupported chart type ${shown}. Use one of ${Object.values(ChartType).join(', ')}, or a legacy ordinal from 0 to ${legacyChartTypes.length - 1}.`
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export { legacyChartTypes, resolveChartType };
|
|
66
|
+
//# sourceMappingURL=resolveChartType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveChartType.js","sources":["../../../chart/resolveChartType.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { SceneElement } from '@cratis/scene.model';\nimport { ChartType } from './ChartType';\nimport { ChartTypeResolution } from './ChartTypeResolution';\n\n/**\n * The ordinals of the original .NET `PrimeReact.Charts.ChartType` enum, in declaration order\n * (`Studio/Source/PrimeReact/Charts/Chart.cs`). Migrated documents keep the ordinal, so the position of\n * each entry here is part of the stored-data contract and must never be reordered.\n */\nexport const legacyChartTypes: readonly ChartType[] = [\n ChartType.Bar,\n ChartType.Line,\n ChartType.Pie,\n ChartType.Doughnut,\n ChartType.PolarArea,\n ChartType.Radar,\n ChartType.Bubble,\n ChartType.Scatter,\n];\n\n/**\n * Resolves an authored chart type to the Chart.js vocabulary.\n *\n * Three forms are accepted, and the stored value is never rewritten:\n * - a canonical Chart.js name from {@link ChartType} (`'polarArea'`), which new documents use;\n * - the ordinal of the original .NET enum (`4`), which migrated documents carry;\n * - the .NET member name in its original Pascal case (`'PolarArea'`), which a JSON serialization of that\n * enum produces.\n *\n * Anything else - an unknown or fractional ordinal, a numeric string, a differently cased name, `null` -\n * resolves to a finding with a message, because the right chart cannot be known. An absent `type` is the\n * one default: the original control defaulted to `Bar`.\n */\nexport function resolveChartType(element: SceneElement): ChartTypeResolution {\n const value = element.properties.type;\n if (value === undefined) return { isValid: true, type: ChartType.Bar };\n\n if (typeof value === 'number') {\n const type = Number.isInteger(value) ? legacyChartTypes[value] : undefined;\n return type === undefined ? unsupported(value) : { isValid: true, type };\n }\n\n if (typeof value === 'string') {\n if (Object.values(ChartType).includes(value as ChartType)) return { isValid: true, type: value as ChartType };\n if (Object.hasOwn(ChartType, value)) return { isValid: true, type: ChartType[value as keyof typeof ChartType] };\n }\n\n return unsupported(value);\n}\n\nfunction unsupported(value: unknown): ChartTypeResolution {\n const shown = typeof value === 'string' ? `'${value}'` : JSON.stringify(value) ?? String(value);\n return {\n isValid: false,\n value,\n message: `Unsupported chart type ${shown}. Use one of ${Object.values(ChartType).join(', ')}, or a legacy ordinal from 0 to ${legacyChartTypes.length - 1}.`,\n };\n}\n"],"names":["legacyChartTypes","ChartType","Bar","Line","Pie","Doughnut","PolarArea","Radar","Bubble","Scatter","resolveChartType","element","value","properties","type","undefined","isValid","Number","isInteger","unsupported","Object","values","includes","hasOwn","shown","JSON","stringify","String","message","join","length"],"mappings":";;AAAA;AACA;AAMA;;;;UAKaA,gBAAAA,GAAyC;AAClDC,IAAAA,SAAAA,CAAUC,GAAG;AACbD,IAAAA,SAAAA,CAAUE,IAAI;AACdF,IAAAA,SAAAA,CAAUG,GAAG;AACbH,IAAAA,SAAAA,CAAUI,QAAQ;AAClBJ,IAAAA,SAAAA,CAAUK,SAAS;AACnBL,IAAAA,SAAAA,CAAUM,KAAK;AACfN,IAAAA,SAAAA,CAAUO,MAAM;AAChBP,IAAAA,SAAAA,CAAUQ;;AAGd;;;;;;;;;;;;IAaO,SAASC,gBAAAA,CAAiBC,OAAqB,EAAA;AAClD,IAAA,MAAMC,KAAAA,GAAQD,OAAAA,CAAQE,UAAU,CAACC,IAAI;IACrC,IAAIF,KAAAA,KAAUG,WAAW,OAAO;QAAEC,OAAAA,EAAS,IAAA;AAAMF,QAAAA,IAAAA,EAAMb,UAAUC;AAAI,KAAA;IAErE,IAAI,OAAOU,UAAU,QAAA,EAAU;QAC3B,MAAME,IAAAA,GAAOG,OAAOC,SAAS,CAACN,SAASZ,gBAAgB,CAACY,MAAM,GAAGG,SAAAA;QACjE,OAAOD,IAAAA,KAASC,SAAAA,GAAYI,WAAAA,CAAYP,KAAAA,CAAAA,GAAS;YAAEI,OAAAA,EAAS,IAAA;AAAMF,YAAAA;AAAK,SAAA;AAC3E,IAAA;IAEA,IAAI,OAAOF,UAAU,QAAA,EAAU;AAC3B,QAAA,IAAIQ,OAAOC,MAAM,CAACpB,WAAWqB,QAAQ,CAACV,QAAqB,OAAO;YAAEI,OAAAA,EAAS,IAAA;YAAMF,IAAAA,EAAMF;AAAmB,SAAA;AAC5G,QAAA,IAAIQ,MAAAA,CAAOG,MAAM,CAACtB,SAAAA,EAAWW,QAAQ,OAAO;YAAEI,OAAAA,EAAS,IAAA;YAAMF,IAAAA,EAAMb,SAAS,CAACW,KAAAA;AAAiC,SAAA;AAClH,IAAA;AAEA,IAAA,OAAOO,WAAAA,CAAYP,KAAAA,CAAAA;AACvB;AAEA,SAASO,YAAYP,KAAc,EAAA;AAC/B,IAAA,MAAMY,KAAAA,GAAQ,OAAOZ,KAAAA,KAAU,QAAA,GAAW,CAAC,CAAC,EAAEA,KAAAA,CAAM,CAAC,CAAC,GAAGa,IAAAA,CAAKC,SAAS,CAACd,UAAUe,MAAAA,CAAOf,KAAAA,CAAAA;IACzF,OAAO;QACHI,OAAAA,EAAS,KAAA;AACTJ,QAAAA,KAAAA;QACAgB,OAAAA,EAAS,CAAC,uBAAuB,EAAEJ,KAAAA,CAAM,aAAa,EAAEJ,MAAAA,CAAOC,MAAM,CAACpB,SAAAA,CAAAA,CAAW4B,IAAI,CAAC,IAAA,CAAA,CAAM,gCAAgC,EAAE7B,gBAAAA,CAAiB8B,MAAM,GAAG,CAAA,CAAE,CAAC;AAC/J,KAAA;AACJ;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
import type { ChartConfiguration } from 'chart.js';
|
|
3
|
+
export declare function useChart(canvas: RefObject<HTMLCanvasElement | null>, configuration: ChartConfiguration, enabled: boolean): string | undefined;
|
|
4
|
+
//# sourceMappingURL=useChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChart.d.ts","sourceRoot":"","sources":["../../../chart/useChart.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAoBnD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAoC7I"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
4
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
5
|
+
/**
|
|
6
|
+
* Draws a Chart.js chart on a canvas and owns its lifetime.
|
|
7
|
+
*
|
|
8
|
+
* Chart.js loads only after the canvas has mounted, which keeps server rendering independent of browser
|
|
9
|
+
* globals. The chart is destroyed before it is rebuilt and when the component unmounts - Chart.js owns
|
|
10
|
+
* listeners and resize observers, so a retained instance would draw twice and leak them.
|
|
11
|
+
*
|
|
12
|
+
* A chart that cannot be drawn is reported rather than left as a blank canvas: `chart.js` not being
|
|
13
|
+
* installed (it is an optional peer dependency), a failed dynamic import and a rejected configuration all
|
|
14
|
+
* come back as the returned failure message. A rejected configuration is released from the canvas as well,
|
|
15
|
+
* so correcting it draws again on the same canvas.
|
|
16
|
+
*
|
|
17
|
+
* @param canvas The canvas to draw on. It must be rendered whenever `enabled` is true.
|
|
18
|
+
* @param configuration The Chart.js configuration. Pass a structurally stable value (see
|
|
19
|
+
* {@link useStructuralValue}); a new identity rebuilds the chart.
|
|
20
|
+
* @param enabled Whether there is something to draw.
|
|
21
|
+
* @returns The reason the chart could not be drawn, or `undefined`.
|
|
22
|
+
*/ function useChart(canvas, configuration, enabled) {
|
|
23
|
+
const [failure, setFailure] = useState(undefined);
|
|
24
|
+
useEffect(()=>{
|
|
25
|
+
setFailure(undefined);
|
|
26
|
+
const target = canvas.current;
|
|
27
|
+
if (!enabled || target === null) return undefined;
|
|
28
|
+
let disposed = false;
|
|
29
|
+
let instance;
|
|
30
|
+
const create = async ()=>{
|
|
31
|
+
let chartType;
|
|
32
|
+
try {
|
|
33
|
+
chartType = (await import('chart.js/auto')).default;
|
|
34
|
+
if (disposed) return;
|
|
35
|
+
instance = new chartType(target, structuredClone(configuration));
|
|
36
|
+
} catch (error) {
|
|
37
|
+
// Chart.js registers a chart on its canvas before the constructor finishes, so a constructor
|
|
38
|
+
// that throws still leaves a registered instance behind - one `instance` never points at. Left
|
|
39
|
+
// alone it makes every later attempt fail with "Canvas is already in use" and hides the real
|
|
40
|
+
// reason, so release whatever is bound to this canvas before reporting.
|
|
41
|
+
chartType?.getChart(target)?.destroy();
|
|
42
|
+
if (!disposed) setFailure(error instanceof Error ? error.message : String(error));
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
void create();
|
|
46
|
+
return ()=>{
|
|
47
|
+
disposed = true;
|
|
48
|
+
instance?.destroy();
|
|
49
|
+
instance = undefined;
|
|
50
|
+
};
|
|
51
|
+
}, [
|
|
52
|
+
canvas,
|
|
53
|
+
configuration,
|
|
54
|
+
enabled
|
|
55
|
+
]);
|
|
56
|
+
return failure;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { useChart };
|
|
60
|
+
//# sourceMappingURL=useChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChart.js","sources":["../../../chart/useChart.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { RefObject, useEffect, useState } from 'react';\nimport type { ChartConfiguration } from 'chart.js';\n\n/**\n * Draws a Chart.js chart on a canvas and owns its lifetime.\n *\n * Chart.js loads only after the canvas has mounted, which keeps server rendering independent of browser\n * globals. The chart is destroyed before it is rebuilt and when the component unmounts - Chart.js owns\n * listeners and resize observers, so a retained instance would draw twice and leak them.\n *\n * A chart that cannot be drawn is reported rather than left as a blank canvas: `chart.js` not being\n * installed (it is an optional peer dependency), a failed dynamic import and a rejected configuration all\n * come back as the returned failure message. A rejected configuration is released from the canvas as well,\n * so correcting it draws again on the same canvas.\n *\n * @param canvas The canvas to draw on. It must be rendered whenever `enabled` is true.\n * @param configuration The Chart.js configuration. Pass a structurally stable value (see\n * {@link useStructuralValue}); a new identity rebuilds the chart.\n * @param enabled Whether there is something to draw.\n * @returns The reason the chart could not be drawn, or `undefined`.\n */\nexport function useChart(canvas: RefObject<HTMLCanvasElement | null>, configuration: ChartConfiguration, enabled: boolean): string | undefined {\n const [failure, setFailure] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n setFailure(undefined);\n const target = canvas.current;\n if (!enabled || target === null) return undefined;\n\n let disposed = false;\n let instance: { destroy(): void } | undefined;\n\n const create = async () => {\n let chartType: typeof import('chart.js/auto').default | undefined;\n try {\n chartType = (await import('chart.js/auto')).default;\n if (disposed) return;\n instance = new chartType(target, structuredClone(configuration));\n } catch (error) {\n // Chart.js registers a chart on its canvas before the constructor finishes, so a constructor\n // that throws still leaves a registered instance behind - one `instance` never points at. Left\n // alone it makes every later attempt fail with \"Canvas is already in use\" and hides the real\n // reason, so release whatever is bound to this canvas before reporting.\n chartType?.getChart(target)?.destroy();\n if (!disposed) setFailure(error instanceof Error ? error.message : String(error));\n }\n };\n\n void create();\n return () => {\n disposed = true;\n instance?.destroy();\n instance = undefined;\n };\n }, [canvas, configuration, enabled]);\n\n return failure;\n}\n"],"names":["useChart","canvas","configuration","enabled","failure","setFailure","useState","undefined","useEffect","target","current","disposed","instance","create","chartType","default","structuredClone","error","getChart","destroy","Error","message","String"],"mappings":";;AAAA;AACA;AAKA;;;;;;;;;;;;;;;;;AAiBC,IACM,SAASA,QAAAA,CAASC,MAA2C,EAAEC,aAAiC,EAAEC,OAAgB,EAAA;AACrH,IAAA,MAAM,CAACC,OAAAA,EAASC,UAAAA,CAAW,GAAGC,QAAAA,CAA6BC,SAAAA,CAAAA;IAE3DC,SAAAA,CAAU,IAAA;QACNH,UAAAA,CAAWE,SAAAA,CAAAA;QACX,MAAME,MAAAA,GAASR,OAAOS,OAAO;AAC7B,QAAA,IAAI,CAACP,OAAAA,IAAWM,MAAAA,KAAW,IAAA,EAAM,OAAOF,SAAAA;AAExC,QAAA,IAAII,QAAAA,GAAW,KAAA;QACf,IAAIC,QAAAA;AAEJ,QAAA,MAAMC,MAAAA,GAAS,UAAA;YACX,IAAIC,SAAAA;YACJ,IAAI;AACAA,gBAAAA,SAAAA,GAAY,CAAC,MAAM,OAAO,eAAA,CAAe,EAAGC,OAAO;AACnD,gBAAA,IAAIJ,QAAAA,EAAU;gBACdC,QAAAA,GAAW,IAAIE,SAAAA,CAAUL,MAAAA,EAAQO,eAAAA,CAAgBd,aAAAA,CAAAA,CAAAA;AACrD,YAAA,CAAA,CAAE,OAAOe,KAAAA,EAAO;;;;;AAKZH,gBAAAA,SAAAA,EAAWI,SAAST,MAAAA,CAAAA,EAASU,OAAAA,EAAAA;gBAC7B,IAAI,CAACR,UAAUN,UAAAA,CAAWY,KAAAA,YAAiBG,QAAQH,KAAAA,CAAMI,OAAO,GAAGC,MAAAA,CAAOL,KAAAA,CAAAA,CAAAA;AAC9E,YAAA;AACJ,QAAA,CAAA;QAEA,KAAKJ,MAAAA,EAAAA;QACL,OAAO,IAAA;YACHF,QAAAA,GAAW,IAAA;YACXC,QAAAA,EAAUO,OAAAA,EAAAA;YACVP,QAAAA,GAAWL,SAAAA;AACf,QAAA,CAAA;IACJ,CAAA,EAAG;AAACN,QAAAA,MAAAA;AAAQC,QAAAA,aAAAA;AAAeC,QAAAA;AAAQ,KAAA,CAAA;IAEnC,OAAOC,OAAAA;AACX;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGallery.stories.d.ts","sourceRoot":"","sources":["../../../data/DataGallery.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,QAAA,MAAM,IAAI;;;;;QAKF,MAAM;QACN,IAAI;YAAI,WAAW;gBAAI,SAAS;;;;CAEC,CAAC;eAE3B,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAGnC,eAAO,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"DataGallery.stories.d.ts","sourceRoot":"","sources":["../../../data/DataGallery.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,QAAA,MAAM,IAAI;;;;;QAKF,MAAM;QACN,IAAI;YAAI,WAAW;gBAAI,SAAS;;;;CAEC,CAAC;eAE3B,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAGnC,eAAO,MAAM,OAAO,EAAE,KAkCrB,CAAC"}
|
|
@@ -22,7 +22,13 @@ export const Gallery = {
|
|
|
22
22
|
}),
|
|
23
23
|
sceneComponent('dataTable', 'dataTable', { rows: [{ id: 1, title: 'Inferred columns' }] }),
|
|
24
24
|
sceneComponent('dataView', 'dataView', { rows: [{ title: 'Kickoff', description: 'Agree the scope' }] }),
|
|
25
|
+
sceneComponent('dataScroller', 'dataScroller', { items: ['First', 'Second', 'Third'], rows: 2, inline: true, scrollHeight: 96 }),
|
|
25
26
|
sceneComponent('tree', 'tree', { nodes: [{ label: 'Documents', children: ['Work', 'Home'] }] }),
|
|
27
|
+
sceneComponent('treeTable', 'treeTable', {
|
|
28
|
+
columns: [{ field: 'name', header: 'Name' }, { field: 'type', header: 'Type' }],
|
|
29
|
+
items: [{ label: 'Documents', data: { name: 'Documents', type: 'Folder' }, children: [{ label: 'Plan', data: { name: 'Plan', type: 'File' } }] }],
|
|
30
|
+
selectionMode: 'checkbox', paginator: true, rows: 1,
|
|
31
|
+
}),
|
|
26
32
|
sceneComponent('timeline', 'timeline', {
|
|
27
33
|
events: [{ title: 'Ordered', description: 'Order placed', date: '09:00' }, { title: 'Shipped', description: 'Left the depot', date: '14:20' }],
|
|
28
34
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGallery.stories.js","sourceRoot":"","sources":["../../../data/DataGallery.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,IAAI,GAAG;IACT,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,gBAAgB;IAC3B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACR,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,iMAAiM,EAAE,EAAE;KAC1O;CACoC,CAAC;AAE1C,eAAe,IAAI,CAAC;AAKpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC1B,IAAI,EAAE;QACF,OAAO,EAAE,YAAY,CAAC,SAAS,EAAE;YAC7B,cAAc,CACV,OAAO,EACP,OAAO,EACP,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,EACjF;gBACI,OAAO,EAAE;oBACL,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oBACjF,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;iBACpE;aACJ,CACJ;YACD,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;YAC1F,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;YACxG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/F,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE;gBACnC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aACjJ,CAAC;YACF,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC7E,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;YACrG,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACxF,cAAc,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;SACpH,CAAC;QACF,QAAQ,EAAE,oBAAoB;QAC9B,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;KAClC;CACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"DataGallery.stories.js","sourceRoot":"","sources":["../../../data/DataGallery.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataScrollerRow.d.ts","sourceRoot":"","sources":["../../../data/DataScrollerRow.tsx"],"names":[],"mappings":"AAcA,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,+BAoB5D"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { readableValue } from './readableValue.js';
|
|
3
|
+
|
|
4
|
+
/** The fields that, when present as text, name a record. */ const titleFields = [
|
|
5
|
+
'label',
|
|
6
|
+
'title',
|
|
7
|
+
'name',
|
|
8
|
+
'text',
|
|
9
|
+
'header'
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* One authored data row, shown readably.
|
|
13
|
+
*
|
|
14
|
+
* A scalar is its text. A record is titled by its first text field among `label`, `title`, `name`, `text` and
|
|
15
|
+
* `header`, and every other field follows as a name and a readable value. No row is ever dumped as JSON.
|
|
16
|
+
*/ function DataScrollerRow({ value }) {
|
|
17
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) return /*#__PURE__*/ jsx(Fragment, {
|
|
18
|
+
children: readableValue(value)
|
|
19
|
+
});
|
|
20
|
+
const record = value;
|
|
21
|
+
const titleField = titleFields.find((field)=>typeof record[field] === 'string' && record[field] !== '');
|
|
22
|
+
const details = Object.entries(record).filter(([name])=>name !== titleField).map(([name, entry])=>[
|
|
23
|
+
name,
|
|
24
|
+
readableValue(entry)
|
|
25
|
+
]).filter(([, text])=>text !== '');
|
|
26
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
27
|
+
children: [
|
|
28
|
+
titleField !== undefined && /*#__PURE__*/ jsx("strong", {
|
|
29
|
+
children: record[titleField]
|
|
30
|
+
}),
|
|
31
|
+
details.length > 0 && /*#__PURE__*/ jsx("dl", {
|
|
32
|
+
children: details.map(([name, text])=>/*#__PURE__*/ jsxs("div", {
|
|
33
|
+
children: [
|
|
34
|
+
/*#__PURE__*/ jsx("dt", {
|
|
35
|
+
children: name
|
|
36
|
+
}),
|
|
37
|
+
/*#__PURE__*/ jsx("dd", {
|
|
38
|
+
children: text
|
|
39
|
+
})
|
|
40
|
+
]
|
|
41
|
+
}, name))
|
|
42
|
+
})
|
|
43
|
+
]
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { DataScrollerRow };
|
|
48
|
+
//# sourceMappingURL=DataScrollerRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataScrollerRow.js","sources":["../../../data/DataScrollerRow.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { readableValue } from './readableValue';\n\n/** The fields that, when present as text, name a record. */\nconst titleFields = ['label', 'title', 'name', 'text', 'header'];\n\n/**\n * One authored data row, shown readably.\n *\n * A scalar is its text. A record is titled by its first text field among `label`, `title`, `name`, `text` and\n * `header`, and every other field follows as a name and a readable value. No row is ever dumped as JSON.\n */\nexport function DataScrollerRow({ value }: { value: unknown }) {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) return <>{readableValue(value)}</>;\n\n const record = value as Record<string, unknown>;\n const titleField = titleFields.find(field => typeof record[field] === 'string' && record[field] !== '');\n const details = Object.entries(record)\n .filter(([name]) => name !== titleField)\n .map(([name, entry]) => [name, readableValue(entry)] as const)\n .filter(([, text]) => text !== '');\n\n return (\n <>\n {titleField !== undefined && <strong>{record[titleField] as string}</strong>}\n {details.length > 0 && (\n <dl>\n {details.map(([name, text]) => <div key={name}><dt>{name}</dt><dd>{text}</dd></div>)}\n </dl>\n )}\n </>\n );\n}\n"],"names":["titleFields","DataScrollerRow","value","Array","isArray","_jsx","_Fragment","readableValue","record","titleField","find","field","details","Object","entries","filter","name","map","entry","text","_jsxs","undefined","strong","length","dl","div","dt","dd"],"mappings":";;;AAKA,6DACA,MAAMA,WAAAA,GAAc;AAAC,IAAA,OAAA;AAAS,IAAA,OAAA;AAAS,IAAA,MAAA;AAAQ,IAAA,MAAA;AAAQ,IAAA;AAAS,CAAA;AAEhE;;;;;AAKC,IACM,SAASC,eAAAA,CAAgB,EAAEC,KAAK,EAAsB,EAAA;IACzD,IAAI,OAAOA,UAAU,QAAA,IAAYA,KAAAA,KAAU,QAAQC,KAAAA,CAAMC,OAAO,CAACF,KAAAA,CAAAA,EAAQ,qBAAOG,GAAA,CAAAC,QAAA,EAAA;kBAAGC,aAAAA,CAAcL,KAAAA;;AAEjG,IAAA,MAAMM,MAAAA,GAASN,KAAAA;AACf,IAAA,MAAMO,UAAAA,GAAaT,WAAAA,CAAYU,IAAI,CAACC,CAAAA,KAAAA,GAAS,OAAOH,MAAM,CAACG,MAAM,KAAK,QAAA,IAAYH,MAAM,CAACG,MAAM,KAAK,EAAA,CAAA;AACpG,IAAA,MAAMC,UAAUC,MAAAA,CAAOC,OAAO,CAACN,MAAAA,CAAAA,CAC1BO,MAAM,CAAC,CAAC,CAACC,KAAK,GAAKA,IAAAA,KAASP,YAC5BQ,GAAG,CAAC,CAAC,CAACD,IAAAA,EAAME,MAAM,GAAK;AAACF,YAAAA,IAAAA;YAAMT,aAAAA,CAAcW,KAAAA;AAAO,SAAA,CAAA,CACnDH,MAAM,CAAC,CAAC,GAAGI,IAAAA,CAAK,GAAKA,IAAAA,KAAS,EAAA,CAAA;IAEnC,qBACIC,IAAA,CAAAd,QAAA,EAAA;;AACKG,YAAAA,UAAAA,KAAeY,2BAAahB,GAAA,CAACiB,QAAAA,EAAAA;AAAQd,gBAAAA,QAAAA,EAAAA,MAAM,CAACC,UAAAA;;YAC5CG,OAAAA,CAAQW,MAAM,GAAG,CAAA,kBACdlB,GAAA,CAACmB,IAAAA,EAAAA;AACIZ,gBAAAA,QAAAA,EAAAA,OAAAA,CAAQK,GAAG,CAAC,CAAC,CAACD,IAAAA,EAAMG,IAAAA,CAAK,iBAAKC,IAAA,CAACK,KAAAA,EAAAA;;0CAAepB,GAAA,CAACqB,IAAAA,EAAAA;AAAIV,gCAAAA,QAAAA,EAAAA;;0CAAUX,GAAA,CAACsB,IAAAA,EAAAA;AAAIR,gCAAAA,QAAAA,EAAAA;;;AAA1BH,qBAAAA,EAAAA,IAAAA,CAAAA;;;;AAK7D;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrimeDataScroller.d.ts","sourceRoot":"","sources":["../../../data/PrimeDataScroller.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAyB/D,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,wBAAwB,+BAsD3F"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useMemo, useRef, useEffect } from 'react';
|
|
3
|
+
import { arrayProperty, numberProperty, booleanProperty, stringProperty } from '../properties.js';
|
|
4
|
+
import { useStructuralValue } from '../useStructuralValue.js';
|
|
5
|
+
import { DataScrollerRow } from './DataScrollerRow.js';
|
|
6
|
+
import { isSerializedLegacyElement, legacyElementMessage } from './isSerializedLegacyElement.js';
|
|
7
|
+
import { useIncrementalLoad } from './useIncrementalLoad.js';
|
|
8
|
+
import { useLoadOnReach } from './useLoadOnReach.js';
|
|
9
|
+
|
|
10
|
+
/** How tall an inline scroller is when no `scrollHeight` was authored: without a height it would never overflow. */ const defaultScrollHeight = 320;
|
|
11
|
+
/**
|
|
12
|
+
* The `PrimeReact:dataScroller` component, a list that loads a chunk at a time as its end is reached.
|
|
13
|
+
*
|
|
14
|
+
* The entries are read as data: strings, numbers and records (see {@link DataScrollerRow}) from `items`, then
|
|
15
|
+
* any child elements authored in the `items` (or `content`) slot, which render as themselves. Serialized
|
|
16
|
+
* legacy UI elements in `items` are refused with a visible message, not shown as JSON.
|
|
17
|
+
*
|
|
18
|
+
* - `inline: true` scrolls inside the control, `scrollHeight` pixels tall (320 when omitted). `inline: false`
|
|
19
|
+
* loads as the page scrolls the end of the list into view.
|
|
20
|
+
* - The "Load more" button remains for keyboard and assistive technology; focus moves to the first entry it
|
|
21
|
+
* loads, and the number shown is announced.
|
|
22
|
+
* - A disabled element loads nothing on scroll and its button is disabled.
|
|
23
|
+
* - The loaded count restarts when `rows` or the content of `items` changes.
|
|
24
|
+
*/ function PrimeDataScroller({ element, slots, interactions }) {
|
|
25
|
+
const authored = useStructuralValue(arrayProperty(element, 'items'));
|
|
26
|
+
const data = useMemo(()=>authored.filter((entry)=>!isSerializedLegacyElement(entry) && entry !== null && entry !== undefined), [
|
|
27
|
+
authored
|
|
28
|
+
]);
|
|
29
|
+
const refusal = legacyElementMessage(authored, 'items', "Author them as child elements in the 'items' slot, or as data.");
|
|
30
|
+
const slotted = slots.items ?? slots.content ?? [];
|
|
31
|
+
const rows = useMemo(()=>[
|
|
32
|
+
...data.map((value, index)=>/*#__PURE__*/ jsx(DataScrollerRow, {
|
|
33
|
+
value: value
|
|
34
|
+
}, index)),
|
|
35
|
+
...slotted
|
|
36
|
+
], [
|
|
37
|
+
data,
|
|
38
|
+
slotted
|
|
39
|
+
]);
|
|
40
|
+
const chunk = Math.max(Math.floor(numberProperty(element, 'rows', 10)), 1);
|
|
41
|
+
const inline = booleanProperty(element, 'inline', false);
|
|
42
|
+
const scrollHeight = numberProperty(element, 'scrollHeight', defaultScrollHeight);
|
|
43
|
+
const enabled = element.isEnabled;
|
|
44
|
+
const { loaded, loadMore } = useIncrementalLoad(rows.length, chunk, data);
|
|
45
|
+
const canLoad = loaded < rows.length;
|
|
46
|
+
const scroller = useRef(null);
|
|
47
|
+
const sentinel = useRef(null);
|
|
48
|
+
const entries = useRef([]);
|
|
49
|
+
const focusIndex = useRef(undefined);
|
|
50
|
+
useLoadOnReach(sentinel, inline ? scroller : null, enabled && canLoad, loaded, loadMore);
|
|
51
|
+
useEffect(()=>{
|
|
52
|
+
if (focusIndex.current === undefined) return;
|
|
53
|
+
entries.current[focusIndex.current]?.focus();
|
|
54
|
+
focusIndex.current = undefined;
|
|
55
|
+
}, [
|
|
56
|
+
loaded
|
|
57
|
+
]);
|
|
58
|
+
const loadByButton = ()=>{
|
|
59
|
+
focusIndex.current = loaded;
|
|
60
|
+
loadMore();
|
|
61
|
+
};
|
|
62
|
+
return /*#__PURE__*/ jsxs("div", {
|
|
63
|
+
"data-scene-id": element.id,
|
|
64
|
+
"data-scene-component": "dataScroller",
|
|
65
|
+
"aria-disabled": !enabled,
|
|
66
|
+
onClick: interactions?.onClick,
|
|
67
|
+
onDoubleClick: interactions?.onDoubleClick,
|
|
68
|
+
children: [
|
|
69
|
+
/*#__PURE__*/ jsxs("div", {
|
|
70
|
+
ref: scroller,
|
|
71
|
+
role: "region",
|
|
72
|
+
tabIndex: inline ? 0 : undefined,
|
|
73
|
+
"aria-label": stringProperty(element, 'ariaLabel', 'Scrollable data'),
|
|
74
|
+
style: inline ? {
|
|
75
|
+
maxHeight: `${scrollHeight}px`,
|
|
76
|
+
overflowY: 'auto'
|
|
77
|
+
} : undefined,
|
|
78
|
+
children: [
|
|
79
|
+
/*#__PURE__*/ jsx("ol", {
|
|
80
|
+
children: rows.slice(0, loaded).map((row, index)=>/*#__PURE__*/ jsx("li", {
|
|
81
|
+
tabIndex: -1,
|
|
82
|
+
ref: (node)=>{
|
|
83
|
+
entries.current[index] = node;
|
|
84
|
+
},
|
|
85
|
+
children: row
|
|
86
|
+
}, index))
|
|
87
|
+
}),
|
|
88
|
+
canLoad && /*#__PURE__*/ jsx("div", {
|
|
89
|
+
ref: sentinel,
|
|
90
|
+
"aria-hidden": "true"
|
|
91
|
+
})
|
|
92
|
+
]
|
|
93
|
+
}),
|
|
94
|
+
rows.length === 0 && /*#__PURE__*/ jsx("p", {
|
|
95
|
+
role: "status",
|
|
96
|
+
children: stringProperty(element, 'emptyLabel', 'No items to show')
|
|
97
|
+
}),
|
|
98
|
+
refusal !== undefined && /*#__PURE__*/ jsx("p", {
|
|
99
|
+
role: "alert",
|
|
100
|
+
"data-scene-state": "legacy-elements",
|
|
101
|
+
children: refusal
|
|
102
|
+
}),
|
|
103
|
+
canLoad && /*#__PURE__*/ jsx("button", {
|
|
104
|
+
type: "button",
|
|
105
|
+
disabled: !enabled,
|
|
106
|
+
onClick: loadByButton,
|
|
107
|
+
children: "Load more"
|
|
108
|
+
}),
|
|
109
|
+
rows.length > 0 && /*#__PURE__*/ jsx("output", {
|
|
110
|
+
"aria-live": "polite",
|
|
111
|
+
children: `Showing ${loaded} of ${rows.length} items`
|
|
112
|
+
})
|
|
113
|
+
]
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export { PrimeDataScroller };
|
|
118
|
+
//# sourceMappingURL=PrimeDataScroller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrimeDataScroller.js","sources":["../../../data/PrimeDataScroller.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ReactNode, useEffect, useMemo, useRef } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { arrayProperty, booleanProperty, numberProperty, stringProperty } from '../properties';\nimport { useStructuralValue } from '../useStructuralValue';\nimport { DataScrollerRow } from './DataScrollerRow';\nimport { isSerializedLegacyElement, legacyElementMessage } from './isSerializedLegacyElement';\nimport { useIncrementalLoad } from './useIncrementalLoad';\nimport { useLoadOnReach } from './useLoadOnReach';\n\n/** How tall an inline scroller is when no `scrollHeight` was authored: without a height it would never overflow. */\nconst defaultScrollHeight = 320;\n\n/**\n * The `PrimeReact:dataScroller` component, a list that loads a chunk at a time as its end is reached.\n *\n * The entries are read as data: strings, numbers and records (see {@link DataScrollerRow}) from `items`, then\n * any child elements authored in the `items` (or `content`) slot, which render as themselves. Serialized\n * legacy UI elements in `items` are refused with a visible message, not shown as JSON.\n *\n * - `inline: true` scrolls inside the control, `scrollHeight` pixels tall (320 when omitted). `inline: false`\n * loads as the page scrolls the end of the list into view.\n * - The \"Load more\" button remains for keyboard and assistive technology; focus moves to the first entry it\n * loads, and the number shown is announced.\n * - A disabled element loads nothing on scroll and its button is disabled.\n * - The loaded count restarts when `rows` or the content of `items` changes.\n */\nexport function PrimeDataScroller({ element, slots, interactions }: RegisteredComponentProps) {\n const authored = useStructuralValue(arrayProperty(element, 'items'));\n const data = useMemo(() => authored.filter(entry => !isSerializedLegacyElement(entry) && entry !== null && entry !== undefined), [authored]);\n const refusal = legacyElementMessage(authored, 'items', \"Author them as child elements in the 'items' slot, or as data.\");\n const slotted = slots.items ?? slots.content ?? [];\n const rows = useMemo<ReactNode[]>(() => [...data.map((value, index) => <DataScrollerRow key={index} value={value} />), ...slotted], [data, slotted]);\n const chunk = Math.max(Math.floor(numberProperty(element, 'rows', 10)), 1);\n const inline = booleanProperty(element, 'inline', false);\n const scrollHeight = numberProperty(element, 'scrollHeight', defaultScrollHeight);\n const enabled = element.isEnabled;\n const { loaded, loadMore } = useIncrementalLoad(rows.length, chunk, data);\n const canLoad = loaded < rows.length;\n const scroller = useRef<HTMLDivElement>(null);\n const sentinel = useRef<HTMLDivElement>(null);\n const entries = useRef<(HTMLLIElement | null)[]>([]);\n const focusIndex = useRef<number | undefined>(undefined);\n\n useLoadOnReach(sentinel, inline ? scroller : null, enabled && canLoad, loaded, loadMore);\n\n useEffect(() => {\n if (focusIndex.current === undefined) return;\n entries.current[focusIndex.current]?.focus();\n focusIndex.current = undefined;\n }, [loaded]);\n\n const loadByButton = () => {\n focusIndex.current = loaded;\n loadMore();\n };\n\n return (\n <div\n data-scene-id={element.id}\n data-scene-component='dataScroller'\n aria-disabled={!enabled}\n onClick={interactions?.onClick}\n onDoubleClick={interactions?.onDoubleClick}>\n <div\n ref={scroller}\n role='region'\n tabIndex={inline ? 0 : undefined}\n aria-label={stringProperty(element, 'ariaLabel', 'Scrollable data')}\n style={inline ? { maxHeight: `${scrollHeight}px`, overflowY: 'auto' } : undefined}>\n <ol>\n {rows.slice(0, loaded).map((row, index) => <li key={index} tabIndex={-1} ref={node => { entries.current[index] = node; }}>{row}</li>)}\n </ol>\n {canLoad && <div ref={sentinel} aria-hidden='true' />}\n </div>\n {rows.length === 0 && <p role='status'>{stringProperty(element, 'emptyLabel', 'No items to show')}</p>}\n {refusal !== undefined && <p role='alert' data-scene-state='legacy-elements'>{refusal}</p>}\n {canLoad && <button type='button' disabled={!enabled} onClick={loadByButton}>Load more</button>}\n {rows.length > 0 && <output aria-live='polite'>{`Showing ${loaded} of ${rows.length} items`}</output>}\n </div>\n );\n}\n"],"names":["defaultScrollHeight","PrimeDataScroller","element","slots","interactions","authored","useStructuralValue","arrayProperty","data","useMemo","filter","entry","isSerializedLegacyElement","undefined","refusal","legacyElementMessage","slotted","items","content","rows","map","value","index","_jsx","DataScrollerRow","chunk","Math","max","floor","numberProperty","inline","booleanProperty","scrollHeight","enabled","isEnabled","loaded","loadMore","useIncrementalLoad","length","canLoad","scroller","useRef","sentinel","entries","focusIndex","useLoadOnReach","useEffect","current","focus","loadByButton","_jsxs","div","data-scene-id","id","data-scene-component","aria-disabled","onClick","onDoubleClick","ref","role","tabIndex","aria-label","stringProperty","style","maxHeight","overflowY","ol","slice","row","li","node","aria-hidden","p","data-scene-state","button","type","disabled","output","aria-live"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrimeTreeTable.d.ts","sourceRoot":"","sources":["../../../data/PrimeTreeTable.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAoC/D,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,wBAAwB,+BAwGjF"}
|