@ryuzaki13/react-foundation-lib 0.1.1
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/LICENSE +21 -0
- package/README.md +654 -0
- package/dist/array/array.d.ts +30 -0
- package/dist/array/array.d.ts.map +1 -0
- package/dist/array/index.d.ts +3 -0
- package/dist/array/index.d.ts.map +1 -0
- package/dist/array/index.js +2 -0
- package/dist/array/reorder.d.ts +10 -0
- package/dist/array/reorder.d.ts.map +1 -0
- package/dist/auth/getClientFingerprint.d.ts +2 -0
- package/dist/auth/getClientFingerprint.d.ts.map +1 -0
- package/dist/binary/binaryToBlob.d.ts +13 -0
- package/dist/binary/binaryToBlob.d.ts.map +1 -0
- package/dist/binary/index.d.ts +3 -0
- package/dist/binary/index.d.ts.map +1 -0
- package/dist/binary/index.js +126 -0
- package/dist/binary/index.js.map +1 -0
- package/dist/binary/useBinaryFile.d.ts +8 -0
- package/dist/binary/useBinaryFile.d.ts.map +1 -0
- package/dist/bounded-copy-stack/boundedCopyStack.d.ts +26 -0
- package/dist/bounded-copy-stack/boundedCopyStack.d.ts.map +1 -0
- package/dist/bounded-copy-stack/index.d.ts +2 -0
- package/dist/bounded-copy-stack/index.d.ts.map +1 -0
- package/dist/bounded-copy-stack/index.js +26 -0
- package/dist/bounded-copy-stack/index.js.map +1 -0
- package/dist/chunks/array-BBSjoTRy.js +146 -0
- package/dist/chunks/array-BBSjoTRy.js.map +1 -0
- package/dist/chunks/dateUtils-D9dpdTl7.js +760 -0
- package/dist/chunks/dateUtils-D9dpdTl7.js.map +1 -0
- package/dist/chunks/formatters-CQppb89D.js +1234 -0
- package/dist/chunks/formatters-CQppb89D.js.map +1 -0
- package/dist/chunks/formulas-BxcH5Zjt.js +279 -0
- package/dist/chunks/formulas-BxcH5Zjt.js.map +1 -0
- package/dist/chunks/isRecord-DXDTW-jA.js +18 -0
- package/dist/chunks/isRecord-DXDTW-jA.js.map +1 -0
- package/dist/chunks/odata-service-BAYf08WI.js +1223 -0
- package/dist/chunks/odata-service-BAYf08WI.js.map +1 -0
- package/dist/chunks/string-comparison-BKT7PXmq.js +20 -0
- package/dist/chunks/string-comparison-BKT7PXmq.js.map +1 -0
- package/dist/chunks/validate-BChpTW6y.js +468 -0
- package/dist/chunks/validate-BChpTW6y.js.map +1 -0
- package/dist/context-menu/anchor.d.ts +19 -0
- package/dist/context-menu/anchor.d.ts.map +1 -0
- package/dist/context-menu/index.d.ts +4 -0
- package/dist/context-menu/index.d.ts.map +1 -0
- package/dist/context-menu/index.js +57 -0
- package/dist/context-menu/index.js.map +1 -0
- package/dist/context-menu/state.d.ts +6 -0
- package/dist/context-menu/state.d.ts.map +1 -0
- package/dist/context-menu/types.d.ts +25 -0
- package/dist/context-menu/types.d.ts.map +1 -0
- package/dist/copy/index.d.ts +5 -0
- package/dist/copy/index.d.ts.map +1 -0
- package/dist/copy/index.js +56 -0
- package/dist/copy/index.js.map +1 -0
- package/dist/copy/useCopyElementText.d.ts +6 -0
- package/dist/copy/useCopyElementText.d.ts.map +1 -0
- package/dist/copy/useCopyFeedback.d.ts +11 -0
- package/dist/copy/useCopyFeedback.d.ts.map +1 -0
- package/dist/copy/useCopyText.d.ts +4 -0
- package/dist/copy/useCopyText.d.ts.map +1 -0
- package/dist/copy/useElementText.d.ts +5 -0
- package/dist/copy/useElementText.d.ts.map +1 -0
- package/dist/crypto/hashString.d.ts +5 -0
- package/dist/crypto/hashString.d.ts.map +1 -0
- package/dist/crypto/index.d.ts +3 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +62 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/uuid.d.ts +5 -0
- package/dist/crypto/uuid.d.ts.map +1 -0
- package/dist/currency/currency.d.ts +8 -0
- package/dist/currency/currency.d.ts.map +1 -0
- package/dist/currency/index.d.ts +2 -0
- package/dist/currency/index.d.ts.map +1 -0
- package/dist/currency/index.js +16 -0
- package/dist/currency/index.js.map +1 -0
- package/dist/date-segments/index.d.ts +3 -0
- package/dist/date-segments/index.d.ts.map +1 -0
- package/dist/date-segments/index.js +160 -0
- package/dist/date-segments/index.js.map +1 -0
- package/dist/date-segments/mask.d.ts +54 -0
- package/dist/date-segments/mask.d.ts.map +1 -0
- package/dist/dom/downloadFile.d.ts +4 -0
- package/dist/dom/downloadFile.d.ts.map +1 -0
- package/dist/dom/getOrCreatePortalRoot.d.ts +2 -0
- package/dist/dom/getOrCreatePortalRoot.d.ts.map +1 -0
- package/dist/dom/index.d.ts +10 -0
- package/dist/dom/index.d.ts.map +1 -0
- package/dist/dom/index.js +159 -0
- package/dist/dom/index.js.map +1 -0
- package/dist/dom/useClickOutside.d.ts +3 -0
- package/dist/dom/useClickOutside.d.ts.map +1 -0
- package/dist/dom/useElementHeightObserver.d.ts +3 -0
- package/dist/dom/useElementHeightObserver.d.ts.map +1 -0
- package/dist/dom/useEscapeDismiss.d.ts +14 -0
- package/dist/dom/useEscapeDismiss.d.ts.map +1 -0
- package/dist/dom/useFocusTrap.d.ts +5 -0
- package/dist/dom/useFocusTrap.d.ts.map +1 -0
- package/dist/dom/useIntersectionObserver.d.ts +4 -0
- package/dist/dom/useIntersectionObserver.d.ts.map +1 -0
- package/dist/dom/useIsTouchDevice.d.ts +2 -0
- package/dist/dom/useIsTouchDevice.d.ts.map +1 -0
- package/dist/dom/useOverlayFocus.d.ts +14 -0
- package/dist/dom/useOverlayFocus.d.ts.map +1 -0
- package/dist/error/index.d.ts +2 -0
- package/dist/error/index.d.ts.map +1 -0
- package/dist/error/index.js +20 -0
- package/dist/error/index.js.map +1 -0
- package/dist/error/missingContextError.d.ts +14 -0
- package/dist/error/missingContextError.d.ts.map +1 -0
- package/dist/error-report/breadcrumbs.d.ts +11 -0
- package/dist/error-report/breadcrumbs.d.ts.map +1 -0
- package/dist/error-report/capture.d.ts +6 -0
- package/dist/error-report/capture.d.ts.map +1 -0
- package/dist/error-report/diagnostics.d.ts +29 -0
- package/dist/error-report/diagnostics.d.ts.map +1 -0
- package/dist/error-report/drafts.d.ts +25 -0
- package/dist/error-report/drafts.d.ts.map +1 -0
- package/dist/error-report/environment.d.ts +19 -0
- package/dist/error-report/environment.d.ts.map +1 -0
- package/dist/error-report/errorInfo.d.ts +7 -0
- package/dist/error-report/errorInfo.d.ts.map +1 -0
- package/dist/error-report/index.d.ts +11 -0
- package/dist/error-report/index.d.ts.map +1 -0
- package/dist/error-report/index.js +464 -0
- package/dist/error-report/index.js.map +1 -0
- package/dist/error-report/runtime.d.ts +26 -0
- package/dist/error-report/runtime.d.ts.map +1 -0
- package/dist/error-report/safeValue.d.ts +14 -0
- package/dist/error-report/safeValue.d.ts.map +1 -0
- package/dist/error-report/transport.d.ts +32 -0
- package/dist/error-report/transport.d.ts.map +1 -0
- package/dist/error-report/types.d.ts +123 -0
- package/dist/error-report/types.d.ts.map +1 -0
- package/dist/excel/excel.d.ts +52 -0
- package/dist/excel/excel.d.ts.map +1 -0
- package/dist/excel/index.d.ts +3 -0
- package/dist/excel/index.d.ts.map +1 -0
- package/dist/excel/index.js +139 -0
- package/dist/excel/index.js.map +1 -0
- package/dist/excel/tableExport.d.ts +26 -0
- package/dist/excel/tableExport.d.ts.map +1 -0
- package/dist/file/contentDisposition.d.ts +11 -0
- package/dist/file/contentDisposition.d.ts.map +1 -0
- package/dist/file/image/index.d.ts +3 -0
- package/dist/file/image/index.d.ts.map +1 -0
- package/dist/file/image/readImageFile.d.ts +8 -0
- package/dist/file/image/readImageFile.d.ts.map +1 -0
- package/dist/file/image/types.d.ts +30 -0
- package/dist/file/image/types.d.ts.map +1 -0
- package/dist/file/index.d.ts +5 -0
- package/dist/file/index.d.ts.map +1 -0
- package/dist/file/index.js +211 -0
- package/dist/file/index.js.map +1 -0
- package/dist/file/mimeType.d.ts +2 -0
- package/dist/file/mimeType.d.ts.map +1 -0
- package/dist/file/read-file/assert.d.ts +4 -0
- package/dist/file/read-file/assert.d.ts.map +1 -0
- package/dist/file/read-file/index.d.ts +4 -0
- package/dist/file/read-file/index.d.ts.map +1 -0
- package/dist/file/read-file/readFile.d.ts +14 -0
- package/dist/file/read-file/readFile.d.ts.map +1 -0
- package/dist/file/read-file/types.d.ts +43 -0
- package/dist/file/read-file/types.d.ts.map +1 -0
- package/dist/form/formErrors.d.ts +2 -0
- package/dist/form/formErrors.d.ts.map +1 -0
- package/dist/form/index.d.ts +2 -0
- package/dist/form/index.d.ts.map +1 -0
- package/dist/form/index.js +19 -0
- package/dist/form/index.js.map +1 -0
- package/dist/formatters/boolean/index.d.ts +3 -0
- package/dist/formatters/boolean/index.d.ts.map +1 -0
- package/dist/formatters/boolean/parseAbapBoolean.d.ts +3 -0
- package/dist/formatters/boolean/parseAbapBoolean.d.ts.map +1 -0
- package/dist/formatters/boolean/toAbapBoolean.d.ts +3 -0
- package/dist/formatters/boolean/toAbapBoolean.d.ts.map +1 -0
- package/dist/formatters/date/calendarDate.d.ts +48 -0
- package/dist/formatters/date/calendarDate.d.ts.map +1 -0
- package/dist/formatters/date/calendarPeriod.d.ts +33 -0
- package/dist/formatters/date/calendarPeriod.d.ts.map +1 -0
- package/dist/formatters/date/dateRange.d.ts +25 -0
- package/dist/formatters/date/dateRange.d.ts.map +1 -0
- package/dist/formatters/date/educationDate.d.ts +79 -0
- package/dist/formatters/date/educationDate.d.ts.map +1 -0
- package/dist/formatters/date/formatDate.d.ts +98 -0
- package/dist/formatters/date/formatDate.d.ts.map +1 -0
- package/dist/formatters/date/index.d.ts +14 -0
- package/dist/formatters/date/index.d.ts.map +1 -0
- package/dist/formatters/date/parseDate.d.ts +44 -0
- package/dist/formatters/date/parseDate.d.ts.map +1 -0
- package/dist/formatters/date/pattern.d.ts +38 -0
- package/dist/formatters/date/pattern.d.ts.map +1 -0
- package/dist/formatters/date/presets.d.ts +108 -0
- package/dist/formatters/date/presets.d.ts.map +1 -0
- package/dist/formatters/date/relativeRanges.d.ts +35 -0
- package/dist/formatters/date/relativeRanges.d.ts.map +1 -0
- package/dist/formatters/date/types.d.ts +70 -0
- package/dist/formatters/date/types.d.ts.map +1 -0
- package/dist/formatters/formatName.d.ts +13 -0
- package/dist/formatters/formatName.d.ts.map +1 -0
- package/dist/formatters/formatPhone.d.ts +3 -0
- package/dist/formatters/formatPhone.d.ts.map +1 -0
- package/dist/formatters/formatTagAsHashtag.d.ts +6 -0
- package/dist/formatters/formatTagAsHashtag.d.ts.map +1 -0
- package/dist/formatters/index.d.ts +11 -0
- package/dist/formatters/index.d.ts.map +1 -0
- package/dist/formatters/index.js +6 -0
- package/dist/formatters/normalizeLeadingZeros.d.ts +27 -0
- package/dist/formatters/normalizeLeadingZeros.d.ts.map +1 -0
- package/dist/formatters/number/compact.d.ts +10 -0
- package/dist/formatters/number/compact.d.ts.map +1 -0
- package/dist/formatters/number/formatCompactNumber.d.ts +49 -0
- package/dist/formatters/number/formatCompactNumber.d.ts.map +1 -0
- package/dist/formatters/number/formatNumber.d.ts +93 -0
- package/dist/formatters/number/formatNumber.d.ts.map +1 -0
- package/dist/formatters/number/index.d.ts +6 -0
- package/dist/formatters/number/index.d.ts.map +1 -0
- package/dist/formatters/number/isZeroValue.d.ts +5 -0
- package/dist/formatters/number/isZeroValue.d.ts.map +1 -0
- package/dist/formatters/number/parseNumber.d.ts +12 -0
- package/dist/formatters/number/parseNumber.d.ts.map +1 -0
- package/dist/formatters/number/presets.d.ts +24 -0
- package/dist/formatters/number/presets.d.ts.map +1 -0
- package/dist/formatters/number/types.d.ts +46 -0
- package/dist/formatters/number/types.d.ts.map +1 -0
- package/dist/formatters/pipeline/clone.d.ts +15 -0
- package/dist/formatters/pipeline/clone.d.ts.map +1 -0
- package/dist/formatters/pipeline/definitions.d.ts +14 -0
- package/dist/formatters/pipeline/definitions.d.ts.map +1 -0
- package/dist/formatters/pipeline/dependencies.d.ts +38 -0
- package/dist/formatters/pipeline/dependencies.d.ts.map +1 -0
- package/dist/formatters/pipeline/execute.d.ts +21 -0
- package/dist/formatters/pipeline/execute.d.ts.map +1 -0
- package/dist/formatters/pipeline/index.d.ts +10 -0
- package/dist/formatters/pipeline/index.d.ts.map +1 -0
- package/dist/formatters/pipeline/normalize.d.ts +3 -0
- package/dist/formatters/pipeline/normalize.d.ts.map +1 -0
- package/dist/formatters/pipeline/registry.d.ts +11 -0
- package/dist/formatters/pipeline/registry.d.ts.map +1 -0
- package/dist/formatters/pipeline/rekey.d.ts +11 -0
- package/dist/formatters/pipeline/rekey.d.ts.map +1 -0
- package/dist/formatters/pipeline/runtime.d.ts +17 -0
- package/dist/formatters/pipeline/runtime.d.ts.map +1 -0
- package/dist/formatters/pipeline/types.d.ts +379 -0
- package/dist/formatters/pipeline/types.d.ts.map +1 -0
- package/dist/formatters/pipeline/validate.d.ts +29 -0
- package/dist/formatters/pipeline/validate.d.ts.map +1 -0
- package/dist/formatters/rowBased/context.d.ts +9 -0
- package/dist/formatters/rowBased/context.d.ts.map +1 -0
- package/dist/formatters/rowBased/definitions/index.d.ts +6 -0
- package/dist/formatters/rowBased/definitions/index.d.ts.map +1 -0
- package/dist/formatters/rowBased/index.d.ts +4 -0
- package/dist/formatters/rowBased/index.d.ts.map +1 -0
- package/dist/formatters/rowBased/registry.d.ts +19 -0
- package/dist/formatters/rowBased/registry.d.ts.map +1 -0
- package/dist/formatters/rowBased/types.d.ts +29 -0
- package/dist/formatters/rowBased/types.d.ts.map +1 -0
- package/dist/formatters/strings/index.d.ts +6 -0
- package/dist/formatters/strings/index.d.ts.map +1 -0
- package/dist/formatters/strings/normalizeText.d.ts +11 -0
- package/dist/formatters/strings/normalizeText.d.ts.map +1 -0
- package/dist/formatters/strings/startsWithIgnoringZeros.d.ts +2 -0
- package/dist/formatters/strings/startsWithIgnoringZeros.d.ts.map +1 -0
- package/dist/formatters/strings/stripInnerSpaces.d.ts +6 -0
- package/dist/formatters/strings/stripInnerSpaces.d.ts.map +1 -0
- package/dist/formatters/strings/stripLeadingZeros.d.ts +10 -0
- package/dist/formatters/strings/stripLeadingZeros.d.ts.map +1 -0
- package/dist/formatters/strings/truncateText.d.ts +2 -0
- package/dist/formatters/strings/truncateText.d.ts.map +1 -0
- package/dist/formatters/valueState/fixedValueStateResolver.d.ts +41 -0
- package/dist/formatters/valueState/fixedValueStateResolver.d.ts.map +1 -0
- package/dist/formatters/valueState/index.d.ts +7 -0
- package/dist/formatters/valueState/index.d.ts.map +1 -0
- package/dist/formatters/valueState/presentation.d.ts +4 -0
- package/dist/formatters/valueState/presentation.d.ts.map +1 -0
- package/dist/formatters/valueState/resolveValueStateClassName.d.ts +3 -0
- package/dist/formatters/valueState/resolveValueStateClassName.d.ts.map +1 -0
- package/dist/formatters/valueState/thresholdValueStateResolver.d.ts +40 -0
- package/dist/formatters/valueState/thresholdValueStateResolver.d.ts.map +1 -0
- package/dist/formatters/valueState/types.d.ts +35 -0
- package/dist/formatters/valueState/types.d.ts.map +1 -0
- package/dist/formatters/valueState/valueStateRegistry.d.ts +45 -0
- package/dist/formatters/valueState/valueStateRegistry.d.ts.map +1 -0
- package/dist/formulas/definitions/base.d.ts +7 -0
- package/dist/formulas/definitions/base.d.ts.map +1 -0
- package/dist/formulas/definitions/index.d.ts +3 -0
- package/dist/formulas/definitions/index.d.ts.map +1 -0
- package/dist/formulas/definitions/sales.d.ts +7 -0
- package/dist/formulas/definitions/sales.d.ts.map +1 -0
- package/dist/formulas/execute.d.ts +36 -0
- package/dist/formulas/execute.d.ts.map +1 -0
- package/dist/formulas/index.d.ts +5 -0
- package/dist/formulas/index.d.ts.map +1 -0
- package/dist/formulas/index.js +2 -0
- package/dist/formulas/perf.runtime.d.ts +48 -0
- package/dist/formulas/perf.runtime.d.ts.map +1 -0
- package/dist/formulas/registry.d.ts +10 -0
- package/dist/formulas/registry.d.ts.map +1 -0
- package/dist/formulas/types.d.ts +16 -0
- package/dist/formulas/types.d.ts.map +1 -0
- package/dist/formulas/validate.d.ts +22 -0
- package/dist/formulas/validate.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +11 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +291 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/types.d.ts +4 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/useBlockBrowserZoom.d.ts +7 -0
- package/dist/hooks/useBlockBrowserZoom.d.ts.map +1 -0
- package/dist/hooks/useDebounce.d.ts +2 -0
- package/dist/hooks/useDebounce.d.ts.map +1 -0
- package/dist/hooks/useDebounceCallback.d.ts +22 -0
- package/dist/hooks/useDebounceCallback.d.ts.map +1 -0
- package/dist/hooks/useDndSortableSensors.d.ts +13 -0
- package/dist/hooks/useDndSortableSensors.d.ts.map +1 -0
- package/dist/hooks/useFloatingListbox.d.ts +61 -0
- package/dist/hooks/useFloatingListbox.d.ts.map +1 -0
- package/dist/hooks/useLazyComponent.d.ts +28 -0
- package/dist/hooks/useLazyComponent.d.ts.map +1 -0
- package/dist/hooks/useReferenceTrace.d.ts +2 -0
- package/dist/hooks/useReferenceTrace.d.ts.map +1 -0
- package/dist/hooks/useSearchLink.d.ts +5 -0
- package/dist/hooks/useSearchLink.d.ts.map +1 -0
- package/dist/hooks/useSearchParams.d.ts +8 -0
- package/dist/hooks/useSearchParams.d.ts.map +1 -0
- package/dist/hooks/useThrottledCallback.d.ts +43 -0
- package/dist/hooks/useThrottledCallback.d.ts.map +1 -0
- package/dist/http/httpHeaders.d.ts +3 -0
- package/dist/http/httpHeaders.d.ts.map +1 -0
- package/dist/http/index.d.ts +3 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +18 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/textResponse.d.ts +7 -0
- package/dist/http/textResponse.d.ts.map +1 -0
- package/dist/media/breakpoints.d.ts +9 -0
- package/dist/media/breakpoints.d.ts.map +1 -0
- package/dist/media/getCurrentFontSize.d.ts +4 -0
- package/dist/media/getCurrentFontSize.d.ts.map +1 -0
- package/dist/media/index.d.ts +7 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +147 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/pxToEm.d.ts +2 -0
- package/dist/media/pxToEm.d.ts.map +1 -0
- package/dist/media/responsive.d.ts +29 -0
- package/dist/media/responsive.d.ts.map +1 -0
- package/dist/media/useMatchMedia.d.ts +15 -0
- package/dist/media/useMatchMedia.d.ts.map +1 -0
- package/dist/media/useMediaQuery.d.ts +10 -0
- package/dist/media/useMediaQuery.d.ts.map +1 -0
- package/dist/notifications/index.d.ts +4 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +124 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/notifications/notify.d.ts +32 -0
- package/dist/notifications/notify.d.ts.map +1 -0
- package/dist/notifications/store.d.ts +31 -0
- package/dist/notifications/store.d.ts.map +1 -0
- package/dist/notifications/types.d.ts +19 -0
- package/dist/notifications/types.d.ts.map +1 -0
- package/dist/number-scale/index.d.ts +3 -0
- package/dist/number-scale/index.d.ts.map +1 -0
- package/dist/number-scale/index.js +99 -0
- package/dist/number-scale/index.js.map +1 -0
- package/dist/number-scale/numberScale.d.ts +52 -0
- package/dist/number-scale/numberScale.d.ts.map +1 -0
- package/dist/number-scale/types.d.ts +44 -0
- package/dist/number-scale/types.d.ts.map +1 -0
- package/dist/odata/buildSeparatedArrays.d.ts +10 -0
- package/dist/odata/buildSeparatedArrays.d.ts.map +1 -0
- package/dist/odata/dateUtils.d.ts +14 -0
- package/dist/odata/dateUtils.d.ts.map +1 -0
- package/dist/odata/findCollectionPairs.d.ts +11 -0
- package/dist/odata/findCollectionPairs.d.ts.map +1 -0
- package/dist/odata/index.d.ts +6 -0
- package/dist/odata/index.d.ts.map +1 -0
- package/dist/odata/index.js +102 -0
- package/dist/odata/index.js.map +1 -0
- package/dist/odata/store.d.ts +42 -0
- package/dist/odata/store.d.ts.map +1 -0
- package/dist/odata/types.d.ts +12 -0
- package/dist/odata/types.d.ts.map +1 -0
- package/dist/odata-service/baseTypes.d.ts +6 -0
- package/dist/odata-service/baseTypes.d.ts.map +1 -0
- package/dist/odata-service/builder.d.ts +33 -0
- package/dist/odata-service/builder.d.ts.map +1 -0
- package/dist/odata-service/columns.d.ts +10 -0
- package/dist/odata-service/columns.d.ts.map +1 -0
- package/dist/odata-service/filterDefinitions.d.ts +113 -0
- package/dist/odata-service/filterDefinitions.d.ts.map +1 -0
- package/dist/odata-service/filters.d.ts +75 -0
- package/dist/odata-service/filters.d.ts.map +1 -0
- package/dist/odata-service/formatters.d.ts +33 -0
- package/dist/odata-service/formatters.d.ts.map +1 -0
- package/dist/odata-service/index.d.ts +16 -0
- package/dist/odata-service/index.d.ts.map +1 -0
- package/dist/odata-service/index.js +2 -0
- package/dist/odata-service/parser.d.ts +14 -0
- package/dist/odata-service/parser.d.ts.map +1 -0
- package/dist/odata-service/schema.d.ts +8 -0
- package/dist/odata-service/schema.d.ts.map +1 -0
- package/dist/odata-service/sorts.d.ts +26 -0
- package/dist/odata-service/sorts.d.ts.map +1 -0
- package/dist/odata-service/sqlFilters.d.ts +32 -0
- package/dist/odata-service/sqlFilters.d.ts.map +1 -0
- package/dist/odata-service/types.d.ts +166 -0
- package/dist/odata-service/types.d.ts.map +1 -0
- package/dist/odata-service/typesValidation.d.ts +6 -0
- package/dist/odata-service/typesValidation.d.ts.map +1 -0
- package/dist/odata-service/unwrapODataQueryResult.d.ts +22 -0
- package/dist/odata-service/unwrapODataQueryResult.d.ts.map +1 -0
- package/dist/odata-service/utils.d.ts +5 -0
- package/dist/odata-service/utils.d.ts.map +1 -0
- package/dist/odata-service/wrapParams.d.ts +7 -0
- package/dist/odata-service/wrapParams.d.ts.map +1 -0
- package/dist/presets/index.d.ts +2 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +23 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/presets.d.ts +20 -0
- package/dist/presets/presets.d.ts.map +1 -0
- package/dist/pwa/index.d.ts +3 -0
- package/dist/pwa/index.d.ts.map +1 -0
- package/dist/pwa/index.js +206 -0
- package/dist/pwa/index.js.map +1 -0
- package/dist/pwa/serviceWorker.d.ts +31 -0
- package/dist/pwa/serviceWorker.d.ts.map +1 -0
- package/dist/pwa/swCachePolicy.d.ts +24 -0
- package/dist/pwa/swCachePolicy.d.ts.map +1 -0
- package/dist/pwa/useServiceWorkerUpdate.d.ts +6 -0
- package/dist/pwa/useServiceWorkerUpdate.d.ts.map +1 -0
- package/dist/query-client/broadcast.d.ts +23 -0
- package/dist/query-client/broadcast.d.ts.map +1 -0
- package/dist/query-client/index.d.ts +5 -0
- package/dist/query-client/index.d.ts.map +1 -0
- package/dist/query-client/index.js +204 -0
- package/dist/query-client/index.js.map +1 -0
- package/dist/query-client/persistence.d.ts +33 -0
- package/dist/query-client/persistence.d.ts.map +1 -0
- package/dist/query-client/queryClient.d.ts +127 -0
- package/dist/query-client/queryClient.d.ts.map +1 -0
- package/dist/query-client/queryPersistenceAdapter.d.ts +7 -0
- package/dist/query-client/queryPersistenceAdapter.d.ts.map +1 -0
- package/dist/range-output/index.d.ts +2 -0
- package/dist/range-output/index.d.ts.map +1 -0
- package/dist/range-output/index.js +22 -0
- package/dist/range-output/index.js.map +1 -0
- package/dist/range-output/rangeOutput.d.ts +15 -0
- package/dist/range-output/rangeOutput.d.ts.map +1 -0
- package/dist/seo/index.d.ts +3 -0
- package/dist/seo/index.d.ts.map +1 -0
- package/dist/seo/index.js +125 -0
- package/dist/seo/index.js.map +1 -0
- package/dist/seo/seo.d.ts +16 -0
- package/dist/seo/seo.d.ts.map +1 -0
- package/dist/seo/types.d.ts +28 -0
- package/dist/seo/types.d.ts.map +1 -0
- package/dist/session-storage/index.d.ts +2 -0
- package/dist/session-storage/index.d.ts.map +1 -0
- package/dist/session-storage/index.js +17 -0
- package/dist/session-storage/index.js.map +1 -0
- package/dist/session-storage/sessionId.d.ts +8 -0
- package/dist/session-storage/sessionId.d.ts.map +1 -0
- package/dist/string-comparison/compareStrings.d.ts +9 -0
- package/dist/string-comparison/compareStrings.d.ts.map +1 -0
- package/dist/string-comparison/index.d.ts +2 -0
- package/dist/string-comparison/index.d.ts.map +1 -0
- package/dist/string-comparison/index.js +2 -0
- package/dist/table/columnLayout.d.ts +23 -0
- package/dist/table/columnLayout.d.ts.map +1 -0
- package/dist/table/columnOrder.d.ts +21 -0
- package/dist/table/columnOrder.d.ts.map +1 -0
- package/dist/table/columnSizing.d.ts +7 -0
- package/dist/table/columnSizing.d.ts.map +1 -0
- package/dist/table/index.d.ts +9 -0
- package/dist/table/index.d.ts.map +1 -0
- package/dist/table/index.js +229 -0
- package/dist/table/index.js.map +1 -0
- package/dist/table/odataAdapter.d.ts +63 -0
- package/dist/table/odataAdapter.d.ts.map +1 -0
- package/dist/table/selection.d.ts +16 -0
- package/dist/table/selection.d.ts.map +1 -0
- package/dist/table/types.d.ts +60 -0
- package/dist/table/types.d.ts.map +1 -0
- package/dist/table/useTableRowSelection.d.ts +19 -0
- package/dist/table/useTableRowSelection.d.ts.map +1 -0
- package/dist/table/utils.d.ts +20 -0
- package/dist/table/utils.d.ts.map +1 -0
- package/dist/three-scene/index.d.ts +3 -0
- package/dist/three-scene/index.d.ts.map +1 -0
- package/dist/three-scene/index.js +84 -0
- package/dist/three-scene/index.js.map +1 -0
- package/dist/three-scene/threeSceneAvailability.d.ts +15 -0
- package/dist/three-scene/threeSceneAvailability.d.ts.map +1 -0
- package/dist/three-scene/useThreeSceneAvailability.d.ts +8 -0
- package/dist/three-scene/useThreeSceneAvailability.d.ts.map +1 -0
- package/dist/tree-table/buildTreeTableRows.d.ts +9 -0
- package/dist/tree-table/buildTreeTableRows.d.ts.map +1 -0
- package/dist/tree-table/index.d.ts +4 -0
- package/dist/tree-table/index.d.ts.map +1 -0
- package/dist/tree-table/index.js +126 -0
- package/dist/tree-table/index.js.map +1 -0
- package/dist/tree-table/transposeFlatRowsToTreeTableRows.d.ts +11 -0
- package/dist/tree-table/transposeFlatRowsToTreeTableRows.d.ts.map +1 -0
- package/dist/tree-table/types.d.ts +87 -0
- package/dist/tree-table/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/types.d.ts +12 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/utils/childrenCount.d.ts +3 -0
- package/dist/utils/childrenCount.d.ts.map +1 -0
- package/dist/utils/cn.d.ts +6 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/createLazyComponent.d.ts +22 -0
- package/dist/utils/createLazyComponent.d.ts.map +1 -0
- package/dist/utils/deepCloneWithoutFunctions.d.ts +20 -0
- package/dist/utils/deepCloneWithoutFunctions.d.ts.map +1 -0
- package/dist/utils/deepCopyWithoutFunctions.d.ts +10 -0
- package/dist/utils/deepCopyWithoutFunctions.d.ts.map +1 -0
- package/dist/utils/index.d.ts +17 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +209 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/keyboard.d.ts +36 -0
- package/dist/utils/keyboard.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +2 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/selectNavigation.d.ts +8 -0
- package/dist/utils/selectNavigation.d.ts.map +1 -0
- package/dist/utils/stableStringify.d.ts +8 -0
- package/dist/utils/stableStringify.d.ts.map +1 -0
- package/dist/utils/toBase64.d.ts +3 -0
- package/dist/utils/toBase64.d.ts.map +1 -0
- package/dist/utils/treeNode.d.ts +9 -0
- package/dist/utils/treeNode.d.ts.map +1 -0
- package/dist/validators/index.d.ts +7 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/index.js +54 -0
- package/dist/validators/index.js.map +1 -0
- package/dist/validators/isDomReference.d.ts +3 -0
- package/dist/validators/isDomReference.d.ts.map +1 -0
- package/dist/validators/isImageExtension.d.ts +3 -0
- package/dist/validators/isImageExtension.d.ts.map +1 -0
- package/dist/validators/isRecord.d.ts +5 -0
- package/dist/validators/isRecord.d.ts.map +1 -0
- package/dist/validators/isSafe.d.ts +2 -0
- package/dist/validators/isSafe.d.ts.map +1 -0
- package/dist/validators/positiveInteger.d.ts +2 -0
- package/dist/validators/positiveInteger.d.ts.map +1 -0
- package/dist/validators/validateUrl.d.ts +10 -0
- package/dist/validators/validateUrl.d.ts.map +1 -0
- package/dist/virtualizer/index.d.ts +2 -0
- package/dist/virtualizer/index.d.ts.map +1 -0
- package/dist/virtualizer/index.js +19 -0
- package/dist/virtualizer/index.js.map +1 -0
- package/dist/virtualizer/useFetchNextPageEffect.d.ts +8 -0
- package/dist/virtualizer/useFetchNextPageEffect.d.ts.map +1 -0
- package/dist/xml/index.d.ts +2 -0
- package/dist/xml/index.d.ts.map +1 -0
- package/dist/xml/index.js +17 -0
- package/dist/xml/index.js.map +1 -0
- package/dist/xml/xml.d.ts +5 -0
- package/dist/xml/xml.d.ts.map +1 -0
- package/package.json +428 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/three-scene/threeSceneAvailability.ts","../../src/three-scene/useThreeSceneAvailability.ts"],"sourcesContent":["export type ThreeSceneWebGLVersion = \"webgl\" | \"webgl2\";\n\nexport type ThreeSceneAvailabilityStatus = \"pending\" | \"available\" | \"unavailable\";\n\nexport type ThreeSceneUnavailableReason = \"ssr\" | \"sessionDisabled\" | \"reducedMotion\" | \"webglUnsupported\";\n\nexport type ThreeSceneAvailability = {\n\treadonly status: ThreeSceneAvailabilityStatus;\n\treadonly reason?: ThreeSceneUnavailableReason;\n};\n\nexport type ThreeSceneSupportOptions = {\n\treadonly webGLVersion?: ThreeSceneWebGLVersion;\n};\n\ntype ThreeSceneWebGLContext = WebGLRenderingContext | WebGL2RenderingContext;\n\nconst webGLContextNames: Record<ThreeSceneWebGLVersion, readonly string[]> = {\n\twebgl: [\"webgl2\", \"webgl\", \"experimental-webgl\"],\n\twebgl2: [\"webgl2\"]\n};\n\nexport const threeSceneDefaultDisabledStorageKey = `${__APP_ID__}:three-scene:disabled`;\n\nexport function isThreeSceneDisabledForSession(storageKey = threeSceneDefaultDisabledStorageKey): boolean {\n\tif (typeof window === \"undefined\") {\n\t\treturn true;\n\t}\n\n\ttry {\n\t\treturn window.sessionStorage.getItem(storageKey) === \"1\";\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport function disableThreeSceneForSession(storageKey = threeSceneDefaultDisabledStorageKey) {\n\tif (typeof window === \"undefined\") {\n\t\treturn;\n\t}\n\n\ttry {\n\t\twindow.sessionStorage.setItem(storageKey, \"1\");\n\t} catch {\n\t\t// sessionStorage может быть недоступен в приватном режиме или при пользовательских политиках браузера.\n\t}\n}\n\nexport function isThreeSceneSupported({ webGLVersion = \"webgl2\" }: ThreeSceneSupportOptions = {}): boolean {\n\tif (typeof document === \"undefined\") {\n\t\treturn false;\n\t}\n\n\ttry {\n\t\tconst canvas = document.createElement(\"canvas\");\n\t\tconst contextNames = webGLContextNames[webGLVersion];\n\n\t\tfor (const contextName of contextNames) {\n\t\t\tconst context = canvas.getContext(contextName, {\n\t\t\t\talpha: true,\n\t\t\t\tantialias: false,\n\t\t\t\tdepth: true,\n\t\t\t\tstencil: false,\n\t\t\t\tpowerPreference: \"default\"\n\t\t\t}) as ThreeSceneWebGLContext | null;\n\n\t\t\tif (!context) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst loseContext = context.getExtension(\"WEBGL_lose_context\");\n\t\t\tloseContext?.loseContext();\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t} catch {\n\t\treturn false;\n\t}\n}\n","import { useEffect, useState } from \"react\";\n\nimport { useMediaQuery } from \"../media\";\n\nimport {\n\tdisableThreeSceneForSession,\n\tisThreeSceneDisabledForSession,\n\tisThreeSceneSupported,\n\tthreeSceneDefaultDisabledStorageKey,\n\ttype ThreeSceneAvailability,\n\ttype ThreeSceneWebGLVersion\n} from \"./threeSceneAvailability\";\n\nexport type UseThreeSceneAvailabilityOptions = {\n\treadonly disabledStorageKey?: string;\n\treadonly disableWhenReducedMotion?: boolean;\n\treadonly webGLVersion?: ThreeSceneWebGLVersion;\n};\n\nexport function useThreeSceneAvailability({\n\tdisabledStorageKey = threeSceneDefaultDisabledStorageKey,\n\tdisableWhenReducedMotion = false,\n\twebGLVersion = \"webgl2\"\n}: UseThreeSceneAvailabilityOptions = {}): ThreeSceneAvailability {\n\tconst prefersReducedMotion = useMediaQuery(\"(prefers-reduced-motion: reduce)\");\n\tconst [availability, setAvailability] = useState<ThreeSceneAvailability>({\n\t\tstatus: \"unavailable\",\n\t\treason: \"ssr\"\n\t});\n\n\tuseEffect(() => {\n\t\tif (disableWhenReducedMotion && prefersReducedMotion) {\n\t\t\tsetAvailability({\n\t\t\t\tstatus: \"unavailable\",\n\t\t\t\treason: \"reducedMotion\"\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tif (isThreeSceneDisabledForSession(disabledStorageKey)) {\n\t\t\tsetAvailability({\n\t\t\t\tstatus: \"unavailable\",\n\t\t\t\treason: \"sessionDisabled\"\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isThreeSceneSupported({ webGLVersion })) {\n\t\t\tdisableThreeSceneForSession(disabledStorageKey);\n\t\t\tsetAvailability({\n\t\t\t\tstatus: \"unavailable\",\n\t\t\t\treason: \"webglUnsupported\"\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tsetAvailability({\n\t\t\tstatus: \"available\"\n\t\t});\n\t}, [disableWhenReducedMotion, disabledStorageKey, prefersReducedMotion, webGLVersion]);\n\n\treturn availability;\n}\n"],"mappings":";;;AAiBA,IAAM,IAAuE;CAC5E,OAAO;EAAC;EAAU;EAAS;CAAoB;CAC/C,QAAQ,CAAC,QAAQ;AAClB,GAEa,IAAsC;AAEnD,SAAgB,EAA+B,IAAa,GAA8C;CACzG,IAAI,OAAO,SAAW,KACrB,OAAO;CAGR,IAAI;EACH,OAAO,OAAO,eAAe,QAAQ,CAAU,MAAM;CACtD,QAAQ;EACP,OAAO;CACR;AACD;AAEA,SAAgB,EAA4B,IAAa,GAAqC;CACzF,aAAO,SAAW,MAItB,IAAI;EACH,OAAO,eAAe,QAAQ,GAAY,GAAG;CAC9C,QAAQ,CAER;AACD;AAEA,SAAgB,EAAsB,EAAE,kBAAe,aAAuC,CAAC,GAAY;CAC1G,IAAI,OAAO,WAAa,KACvB,OAAO;CAGR,IAAI;EACH,IAAM,IAAS,SAAS,cAAc,QAAQ,GACxC,IAAe,EAAkB;EAEvC,KAAK,IAAM,KAAe,GAAc;GACvC,IAAM,IAAU,EAAO,WAAW,GAAa;IAC9C,OAAO;IACP,WAAW;IACX,OAAO;IACP,SAAS;IACT,iBAAiB;GAClB,CAAC;GAEI,OAOL,OAFA,EAD4B,aAAa,oBACzC,CAAA,EAAa,YAAY,GAElB;EACR;EAEA,OAAO;CACR,QAAQ;EACP,OAAO;CACR;AACD;;;AC7DA,SAAgB,EAA0B,EACzC,wBAAqB,GACrB,8BAA2B,IAC3B,kBAAe,aACsB,CAAC,GAA2B;CACjE,IAAM,IAAuB,EAAc,kCAAkC,GACvE,CAAC,GAAc,KAAmB,EAAiC;EACxE,QAAQ;EACR,QAAQ;CACT,CAAC;CAiCD,OA/BA,QAAgB;EACf,IAAI,KAA4B,GAAsB;GACrD,EAAgB;IACf,QAAQ;IACR,QAAQ;GACT,CAAC;GACD;EACD;EAEA,IAAI,EAA+B,CAAkB,GAAG;GACvD,EAAgB;IACf,QAAQ;IACR,QAAQ;GACT,CAAC;GACD;EACD;EAEA,IAAI,CAAC,EAAsB,EAAE,gBAAa,CAAC,GAAG;GAE7C,AADA,EAA4B,CAAkB,GAC9C,EAAgB;IACf,QAAQ;IACR,QAAQ;GACT,CAAC;GACD;EACD;EAEA,EAAgB,EACf,QAAQ,YACT,CAAC;CACF,GAAG;EAAC;EAA0B;EAAoB;EAAsB;CAAY,CAAC,GAE9E;AACR"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type ThreeSceneWebGLVersion = "webgl" | "webgl2";
|
|
2
|
+
export type ThreeSceneAvailabilityStatus = "pending" | "available" | "unavailable";
|
|
3
|
+
export type ThreeSceneUnavailableReason = "ssr" | "sessionDisabled" | "reducedMotion" | "webglUnsupported";
|
|
4
|
+
export type ThreeSceneAvailability = {
|
|
5
|
+
readonly status: ThreeSceneAvailabilityStatus;
|
|
6
|
+
readonly reason?: ThreeSceneUnavailableReason;
|
|
7
|
+
};
|
|
8
|
+
export type ThreeSceneSupportOptions = {
|
|
9
|
+
readonly webGLVersion?: ThreeSceneWebGLVersion;
|
|
10
|
+
};
|
|
11
|
+
export declare const threeSceneDefaultDisabledStorageKey: string;
|
|
12
|
+
export declare function isThreeSceneDisabledForSession(storageKey?: string): boolean;
|
|
13
|
+
export declare function disableThreeSceneForSession(storageKey?: string): void;
|
|
14
|
+
export declare function isThreeSceneSupported({ webGLVersion }?: ThreeSceneSupportOptions): boolean;
|
|
15
|
+
//# sourceMappingURL=threeSceneAvailability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threeSceneAvailability.d.ts","sourceRoot":"","sources":["../../src/three-scene/threeSceneAvailability.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExD,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC;AAEnF,MAAM,MAAM,2BAA2B,GAAG,KAAK,GAAG,iBAAiB,GAAG,eAAe,GAAG,kBAAkB,CAAC;AAE3G,MAAM,MAAM,sBAAsB,GAAG;IACpC,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC;CAC/C,CAAC;AASF,eAAO,MAAM,mCAAmC,QAAuC,CAAC;AAExF,wBAAgB,8BAA8B,CAAC,UAAU,SAAsC,GAAG,OAAO,CAUxG;AAED,wBAAgB,2BAA2B,CAAC,UAAU,SAAsC,QAU3F;AAED,wBAAgB,qBAAqB,CAAC,EAAE,YAAuB,EAAE,GAAE,wBAA6B,GAAG,OAAO,CAgCzG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ThreeSceneAvailability, type ThreeSceneWebGLVersion } from "./threeSceneAvailability";
|
|
2
|
+
export type UseThreeSceneAvailabilityOptions = {
|
|
3
|
+
readonly disabledStorageKey?: string;
|
|
4
|
+
readonly disableWhenReducedMotion?: boolean;
|
|
5
|
+
readonly webGLVersion?: ThreeSceneWebGLVersion;
|
|
6
|
+
};
|
|
7
|
+
export declare function useThreeSceneAvailability({ disabledStorageKey, disableWhenReducedMotion, webGLVersion }?: UseThreeSceneAvailabilityOptions): ThreeSceneAvailability;
|
|
8
|
+
//# sourceMappingURL=useThreeSceneAvailability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useThreeSceneAvailability.d.ts","sourceRoot":"","sources":["../../src/three-scene/useThreeSceneAvailability.ts"],"names":[],"mappings":"AAIA,OAAO,EAKN,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,gCAAgC,GAAG;IAC9C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC;CAC/C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACzC,kBAAwD,EACxD,wBAAgC,EAChC,YAAuB,EACvB,GAAE,gCAAqC,GAAG,sBAAsB,CAuChE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TreeTableBuildResult, TreeTableFlatHierarchy } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Строит древовидную структуру из плоского списка OData-строк.
|
|
4
|
+
*
|
|
5
|
+
* Алгоритм устойчив к "сиротам", самоссылкам и циклам:
|
|
6
|
+
* проблемные строки не теряются, а поднимаются в корень леса.
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildTreeTableRows<TData extends object>(items: readonly TData[], hierarchy: TreeTableFlatHierarchy<TData>): TreeTableBuildResult<TData>;
|
|
9
|
+
//# sourceMappingURL=buildTreeTableRows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildTreeTableRows.d.ts","sourceRoot":"","sources":["../../src/tree-table/buildTreeTableRows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAoB,MAAM,SAAS,CAAC;AAuB9F;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,MAAM,EACtD,KAAK,EAAE,SAAS,KAAK,EAAE,EACvB,SAAS,EAAE,sBAAsB,CAAC,KAAK,CAAC,GACtC,oBAAoB,CAAC,KAAK,CAAC,CA6H7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tree-table/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC;AACnD,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { p as e } from "../chunks/array-BBSjoTRy.js";
|
|
2
|
+
//#region src/tree-table/buildTreeTableRows.ts
|
|
3
|
+
function t(e, t, n) {
|
|
4
|
+
let r = e.get(t);
|
|
5
|
+
if (r) {
|
|
6
|
+
r.push(n);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
e.set(t, [n]);
|
|
10
|
+
}
|
|
11
|
+
function n(e) {
|
|
12
|
+
return Array.from(new Set(e));
|
|
13
|
+
}
|
|
14
|
+
function r(e, r) {
|
|
15
|
+
let i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = [], c = [], l = [], u = [];
|
|
16
|
+
for (let n of e) {
|
|
17
|
+
let e = r.getRowId(n);
|
|
18
|
+
if (i.has(e)) {
|
|
19
|
+
s.push(e);
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
let c = r.getParentRowId(n) ?? null;
|
|
23
|
+
i.set(e, n), a.set(e, c), u.push(e), c !== null && c !== e && t(o, c, e);
|
|
24
|
+
}
|
|
25
|
+
let d = [];
|
|
26
|
+
for (let e of u) {
|
|
27
|
+
let t = a.get(e) ?? null;
|
|
28
|
+
if (t === null) {
|
|
29
|
+
d.push(e);
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (t === e) {
|
|
33
|
+
l.push(e), d.push(e);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
i.has(t) || (c.push(e), d.push(e));
|
|
37
|
+
}
|
|
38
|
+
let f = /* @__PURE__ */ new Set(), p = (e, t) => {
|
|
39
|
+
let n = i.get(e);
|
|
40
|
+
if (!n) throw Error(`Не удалось построить дерево: строка "${e}" отсутствует в индексе.`);
|
|
41
|
+
f.add(e);
|
|
42
|
+
let r = new Set(t);
|
|
43
|
+
r.add(e);
|
|
44
|
+
let a = { ...n }, s = o.get(e) ?? [], c = [];
|
|
45
|
+
for (let e of s) {
|
|
46
|
+
if (r.has(e)) {
|
|
47
|
+
l.push(e);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
f.has(e) || c.push(p(e, r));
|
|
51
|
+
}
|
|
52
|
+
return c.length > 0 && (a.children = c), a;
|
|
53
|
+
}, m = [], h = [];
|
|
54
|
+
for (let e of d) f.has(e) || (m.push(p(e, /* @__PURE__ */ new Set())), h.push(e));
|
|
55
|
+
for (let e of u) f.has(e) || (l.push(e), m.push(p(e, /* @__PURE__ */ new Set())), h.push(e));
|
|
56
|
+
return {
|
|
57
|
+
rows: m,
|
|
58
|
+
rowById: i,
|
|
59
|
+
allRowIds: u,
|
|
60
|
+
rootRowIds: n(h),
|
|
61
|
+
orphanRowIds: n(c),
|
|
62
|
+
duplicateRowIds: n(s),
|
|
63
|
+
cyclicRowIds: n(l)
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region src/tree-table/types.ts
|
|
68
|
+
var i = "__treeTableRowId", a = "__treeTableParentRowId", o = "__treeTableLabel", s = "__treeTableLevel", c = "__treeTableSynthetic";
|
|
69
|
+
//#endregion
|
|
70
|
+
//#region src/tree-table/transposeFlatRowsToTreeTableRows.ts
|
|
71
|
+
function l(t) {
|
|
72
|
+
return e(t, "columnId", ({ columnId: e }) => ({ columnId: e })) ?? [];
|
|
73
|
+
}
|
|
74
|
+
function u(e) {
|
|
75
|
+
return e == null || e === "";
|
|
76
|
+
}
|
|
77
|
+
function d(e) {
|
|
78
|
+
return u(e) ? "" : String(e);
|
|
79
|
+
}
|
|
80
|
+
function f(e) {
|
|
81
|
+
return JSON.stringify(e);
|
|
82
|
+
}
|
|
83
|
+
function p(e, t) {
|
|
84
|
+
return `${f(e)}#row:${t}`;
|
|
85
|
+
}
|
|
86
|
+
function m(e, t) {
|
|
87
|
+
return [e.columnId, t];
|
|
88
|
+
}
|
|
89
|
+
function h(e, t) {
|
|
90
|
+
let n = l(t.hierarchyLevels);
|
|
91
|
+
if (n.length === 0) return [];
|
|
92
|
+
let r = [], u = /* @__PURE__ */ new Set();
|
|
93
|
+
return e.forEach((e, t) => {
|
|
94
|
+
let l = [], h = null, g = "", _ = -1;
|
|
95
|
+
for (let t = 0; t < n.length; t += 1) {
|
|
96
|
+
let p = n[t], v = d(e[p.columnId]);
|
|
97
|
+
if (!v) continue;
|
|
98
|
+
l.push(m(p, v)), g = v, _ = t;
|
|
99
|
+
let y = f(l);
|
|
100
|
+
if (!u.has(y)) {
|
|
101
|
+
let n = {
|
|
102
|
+
[i]: y,
|
|
103
|
+
[a]: h,
|
|
104
|
+
[o]: v,
|
|
105
|
+
[s]: t,
|
|
106
|
+
[c]: !0,
|
|
107
|
+
[p.columnId]: e[p.columnId]
|
|
108
|
+
};
|
|
109
|
+
r.push(n), u.add(y);
|
|
110
|
+
}
|
|
111
|
+
h = y;
|
|
112
|
+
}
|
|
113
|
+
l.length !== 0 && r.push({
|
|
114
|
+
...e,
|
|
115
|
+
[i]: p(l, t),
|
|
116
|
+
[a]: h,
|
|
117
|
+
[o]: g,
|
|
118
|
+
[s]: _ + 1,
|
|
119
|
+
[c]: !1
|
|
120
|
+
});
|
|
121
|
+
}), r;
|
|
122
|
+
}
|
|
123
|
+
//#endregion
|
|
124
|
+
export { o as TREE_TABLE_TRANSPOSED_LABEL_FIELD, s as TREE_TABLE_TRANSPOSED_LEVEL_FIELD, a as TREE_TABLE_TRANSPOSED_PARENT_ROW_ID_FIELD, i as TREE_TABLE_TRANSPOSED_ROW_ID_FIELD, c as TREE_TABLE_TRANSPOSED_SYNTHETIC_FIELD, r as buildTreeTableRows, h as transposeFlatRowsToTreeTableRows };
|
|
125
|
+
|
|
126
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/tree-table/buildTreeTableRows.ts","../../src/tree-table/types.ts","../../src/tree-table/transposeFlatRowsToTreeTableRows.ts"],"sourcesContent":["import type { TreeTableBuildResult, TreeTableFlatHierarchy, TreeTableRowNode } from \"./types\";\n\n/**\n * Добавляет дочерний идентификатор в индекс родителей.\n */\nfunction appendChildId(childIdsByParent: Map<string, string[]>, parentId: string, childId: string) {\n\tconst currentChildIds = childIdsByParent.get(parentId);\n\n\tif (currentChildIds) {\n\t\tcurrentChildIds.push(childId);\n\t\treturn;\n\t}\n\n\tchildIdsByParent.set(parentId, [childId]);\n}\n\n/**\n * Удаляет дубли идентификаторов, сохраняя исходный порядок.\n */\nfunction dedupeIds(ids: readonly string[]): string[] {\n\treturn Array.from(new Set(ids));\n}\n\n/**\n * Строит древовидную структуру из плоского списка OData-строк.\n *\n * Алгоритм устойчив к \"сиротам\", самоссылкам и циклам:\n * проблемные строки не теряются, а поднимаются в корень леса.\n */\nexport function buildTreeTableRows<TData extends object>(\n\titems: readonly TData[],\n\thierarchy: TreeTableFlatHierarchy<TData>\n): TreeTableBuildResult<TData> {\n\tconst rowById = new Map<string, TData>();\n\tconst parentById = new Map<string, string | null>();\n\tconst childIdsByParent = new Map<string, string[]>();\n\tconst duplicateRowIds: string[] = [];\n\tconst orphanRowIds: string[] = [];\n\tconst cyclicRowIds: string[] = [];\n\tconst allRowIds: string[] = [];\n\n\t// Сначала собираем справочники, чтобы порядок в источнике не влиял на корректность дерева.\n\tfor (const item of items) {\n\t\tconst rowId = hierarchy.getRowId(item);\n\n\t\tif (rowById.has(rowId)) {\n\t\t\tduplicateRowIds.push(rowId);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parentRowId = hierarchy.getParentRowId(item) ?? null;\n\n\t\trowById.set(rowId, item);\n\t\tparentById.set(rowId, parentRowId);\n\t\tallRowIds.push(rowId);\n\n\t\tif (parentRowId !== null && parentRowId !== rowId) {\n\t\t\tappendChildId(childIdsByParent, parentRowId, rowId);\n\t\t}\n\t}\n\n\tconst rootCandidates: string[] = [];\n\n\t// Нормализуем корни: явные корни, сироты и самоссылки отображаем как корневые строки.\n\tfor (const rowId of allRowIds) {\n\t\tconst parentRowId = parentById.get(rowId) ?? null;\n\n\t\tif (parentRowId === null) {\n\t\t\trootCandidates.push(rowId);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (parentRowId === rowId) {\n\t\t\tcyclicRowIds.push(rowId);\n\t\t\trootCandidates.push(rowId);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!rowById.has(parentRowId)) {\n\t\t\torphanRowIds.push(rowId);\n\t\t\trootCandidates.push(rowId);\n\t\t}\n\t}\n\n\tconst visitedRowIds = new Set<string>();\n\n\t/**\n\t * Рекурсивно собирает вложенный узел, отсекая уже посещённые идентификаторы.\n\t */\n\tconst buildNode = (rowId: string, ancestors: Set<string>): TreeTableRowNode<TData> => {\n\t\tconst originalRow = rowById.get(rowId);\n\n\t\tif (!originalRow) {\n\t\t\tthrow new Error(`Не удалось построить дерево: строка \"${rowId}\" отсутствует в индексе.`);\n\t\t}\n\n\t\tvisitedRowIds.add(rowId);\n\n\t\tconst nextAncestors = new Set(ancestors);\n\t\tnextAncestors.add(rowId);\n\n\t\tconst node = { ...originalRow } as TreeTableRowNode<TData>;\n\t\tconst childIds = childIdsByParent.get(rowId) ?? [];\n\t\tconst children: TreeTableRowNode<TData>[] = [];\n\n\t\tfor (const childId of childIds) {\n\t\t\tif (nextAncestors.has(childId)) {\n\t\t\t\tcyclicRowIds.push(childId);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (visitedRowIds.has(childId)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tchildren.push(buildNode(childId, nextAncestors));\n\t\t}\n\n\t\tif (children.length > 0) {\n\t\t\tnode.children = children;\n\t\t}\n\n\t\treturn node;\n\t};\n\n\tconst rows: TreeTableRowNode<TData>[] = [];\n\tconst resolvedRootRowIds: string[] = [];\n\n\tfor (const rootRowId of rootCandidates) {\n\t\tif (visitedRowIds.has(rootRowId)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\trows.push(buildNode(rootRowId, new Set<string>()));\n\t\tresolvedRootRowIds.push(rootRowId);\n\t}\n\n\t// Если корней нет из-за цикла, всё равно выводим строки, начиная с первого непосещённого узла.\n\tfor (const rowId of allRowIds) {\n\t\tif (visitedRowIds.has(rowId)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tcyclicRowIds.push(rowId);\n\t\trows.push(buildNode(rowId, new Set<string>()));\n\t\tresolvedRootRowIds.push(rowId);\n\t}\n\n\treturn {\n\t\trows,\n\t\trowById,\n\t\tallRowIds,\n\t\trootRowIds: dedupeIds(resolvedRootRowIds),\n\t\torphanRowIds: dedupeIds(orphanRowIds),\n\t\tduplicateRowIds: dedupeIds(duplicateRowIds),\n\t\tcyclicRowIds: dedupeIds(cyclicRowIds)\n\t};\n}\n","/**\n * Контракт преобразования плоского списка OData-строк в дерево.\n */\nexport interface TreeTableFlatHierarchy<TData extends object> {\n\t/**\n\t * Возвращает стабильный идентификатор строки.\n\t */\n\tgetRowId: (row: TData) => string;\n\t/**\n\t * Возвращает идентификатор родителя.\n\t *\n\t * `null` и `undefined` означают корневую строку.\n\t */\n\tgetParentRowId: (row: TData) => string | null | undefined;\n}\n\n/**\n * Внутреннее представление строки для TanStack Table.\n */\nexport type TreeTableRowNode<TData extends object> = TData & {\n\tchildren?: TreeTableRowNode<TData>[];\n};\n\n/**\n * Результат построения дерева из плоского источника.\n */\nexport interface TreeTableBuildResult<TData extends object> {\n\t/**\n\t * Корневые узлы уже в иерархическом виде.\n\t */\n\trows: TreeTableRowNode<TData>[];\n\t/**\n\t * Быстрый доступ к исходной строке по идентификатору.\n\t */\n\trowById: Map<string, TData>;\n\t/**\n\t * Все уникальные идентификаторы строк в исходном порядке.\n\t */\n\tallRowIds: string[];\n\t/**\n\t * Идентификаторы строк, попавших в корень дерева.\n\t */\n\trootRowIds: string[];\n\t/**\n\t * Строки, у которых указан несуществующий родитель.\n\t */\n\torphanRowIds: string[];\n\t/**\n\t * Повторяющиеся идентификаторы, проигнорированные при построении дерева.\n\t */\n\tduplicateRowIds: string[];\n\t/**\n\t * Идентификаторы строк, участвующих в циклических ссылках.\n\t */\n\tcyclicRowIds: string[];\n}\n\nexport const TREE_TABLE_TRANSPOSED_ROW_ID_FIELD = \"__treeTableRowId\";\nexport const TREE_TABLE_TRANSPOSED_PARENT_ROW_ID_FIELD = \"__treeTableParentRowId\";\nexport const TREE_TABLE_TRANSPOSED_LABEL_FIELD = \"__treeTableLabel\";\nexport const TREE_TABLE_TRANSPOSED_LEVEL_FIELD = \"__treeTableLevel\";\nexport const TREE_TABLE_TRANSPOSED_SYNTHETIC_FIELD = \"__treeTableSynthetic\";\n\n/**\n * Служебные поля строки, полученной транспонированием плоских данных в дерево.\n */\nexport type TreeTableTransposedRowMeta = {\n\t[TREE_TABLE_TRANSPOSED_ROW_ID_FIELD]: string;\n\t[TREE_TABLE_TRANSPOSED_PARENT_ROW_ID_FIELD]: string | null;\n\t[TREE_TABLE_TRANSPOSED_LABEL_FIELD]: string;\n\t[TREE_TABLE_TRANSPOSED_LEVEL_FIELD]: number;\n\t[TREE_TABLE_TRANSPOSED_SYNTHETIC_FIELD]: boolean;\n};\n\nexport type TreeTableTransposedRow<TData extends object> = TData & TreeTableTransposedRowMeta;\n\nexport type TreeTableTransposeFlatRowsLevel = {\n\t/**\n\t * Колонка backend-строки, которая станет уровнем дерева.\n\t */\n\tcolumnId: string;\n\t/**\n\t * Если включено, runtime раскрывает узлы этого уровня при первичном построении дерева.\n\t */\n\texpandByDefault?: boolean;\n};\n\nexport type TreeTableTransposeFlatRowsOptions = {\n\t/**\n\t * Колонки, которые образуют уровни дерева в порядке сверху вниз.\n\t */\n\thierarchyLevels: readonly TreeTableTransposeFlatRowsLevel[];\n};\n","import { normalizeObjects } from \"../array\";\n\nimport {\n\tTREE_TABLE_TRANSPOSED_LABEL_FIELD,\n\tTREE_TABLE_TRANSPOSED_LEVEL_FIELD,\n\tTREE_TABLE_TRANSPOSED_PARENT_ROW_ID_FIELD,\n\tTREE_TABLE_TRANSPOSED_ROW_ID_FIELD,\n\tTREE_TABLE_TRANSPOSED_SYNTHETIC_FIELD,\n\tTreeTableTransposeFlatRowsLevel,\n\ttype TreeTableTransposeFlatRowsOptions,\n\ttype TreeTableTransposedRow\n} from \"./types\";\n\ntype NormalizedHierarchyLevel = {\n\tcolumnId: string;\n};\n\ntype TreePathSegment = readonly [columnId: string, key: string];\n\nfunction normalizeHierarchyLevels(levels: readonly TreeTableTransposeFlatRowsLevel[]): NormalizedHierarchyLevel[] {\n\t// const out: NormalizedHierarchyLevel[] = [];\n\t// const seenColumnIds = new Set<string>();\n\n\t// for (const level of levels) {\n\t// \tconst columnId = level.columnId.trim();\n\t// \tif (!columnId || seenColumnIds.has(columnId)) continue;\n\n\t// \tout.push({ columnId });\n\t// \tseenColumnIds.add(columnId);\n\t// }\n\n\t// return out;\n\n\treturn (\n\t\tnormalizeObjects<TreeTableTransposeFlatRowsLevel, \"columnId\", NormalizedHierarchyLevel>(levels, \"columnId\", ({ columnId }) => ({\n\t\t\tcolumnId\n\t\t})) ?? []\n\t);\n}\n\n// SHARE: где-то уже была такая проверка... lib/validators/string\nfunction isEmptyTreeValue(value: unknown): boolean {\n\treturn value === null || value === undefined || value === \"\";\n}\n\n// SHARE: lib/formatters/string.toSafeString\nfunction stringifyTreeValue(value: unknown): string {\n\treturn isEmptyTreeValue(value) ? \"\" : String(value);\n}\n\nfunction createTreeNodeId(path: readonly TreePathSegment[]): string {\n\treturn JSON.stringify(path);\n}\n\nfunction createLeafRowId(path: readonly TreePathSegment[], rowIndex: number): string {\n\treturn `${createTreeNodeId(path)}#row:${rowIndex}`;\n}\n\nfunction createTreePathSegment(level: NormalizedHierarchyLevel, label: string): TreePathSegment {\n\treturn [level.columnId, label];\n}\n\n/**\n * Транспонирует плоские backend-строки в flat hierarchy для TreeTable.\n *\n * Backend обычно возвращает строки фактов с колонками уровней (`TEXT_DIVISION`, `TEXT_NODE`).\n * TreeTable же ожидает строки с id/parent-id. Этот helper всегда создает\n * синтетические group-узлы для уровней и оставляет исходные backend-строки\n * листьями, не перезаписывая их бизнес-поля.\n */\nexport function transposeFlatRowsToTreeTableRows<TData extends Record<string, unknown>>(\n\trows: readonly TData[],\n\toptions: TreeTableTransposeFlatRowsOptions\n): TreeTableTransposedRow<TData>[] {\n\tconst hierarchyLevels = normalizeHierarchyLevels(options.hierarchyLevels);\n\tif (hierarchyLevels.length === 0) return [];\n\n\tconst out: TreeTableTransposedRow<TData>[] = [];\n\tconst syntheticNodeIds = new Set<string>();\n\n\trows.forEach((row, rowIndex) => {\n\t\tconst path: TreePathSegment[] = [];\n\t\tlet parentRowId: string | null = null;\n\t\tlet lastLabel = \"\";\n\t\tlet lastLevel = -1;\n\n\t\tfor (let levelIndex = 0; levelIndex < hierarchyLevels.length; levelIndex += 1) {\n\t\t\tconst level = hierarchyLevels[levelIndex]!;\n\t\t\tconst label = stringifyTreeValue(row[level.columnId]);\n\t\t\tif (!label) continue;\n\n\t\t\tpath.push(createTreePathSegment(level, label));\n\t\t\tlastLabel = label;\n\t\t\tlastLevel = levelIndex;\n\n\t\t\tconst nodeId = createTreeNodeId(path);\n\n\t\t\tif (!syntheticNodeIds.has(nodeId)) {\n\t\t\t\tconst syntheticRow = {\n\t\t\t\t\t[TREE_TABLE_TRANSPOSED_ROW_ID_FIELD]: nodeId,\n\t\t\t\t\t[TREE_TABLE_TRANSPOSED_PARENT_ROW_ID_FIELD]: parentRowId,\n\t\t\t\t\t[TREE_TABLE_TRANSPOSED_LABEL_FIELD]: label,\n\t\t\t\t\t[TREE_TABLE_TRANSPOSED_LEVEL_FIELD]: levelIndex,\n\t\t\t\t\t[TREE_TABLE_TRANSPOSED_SYNTHETIC_FIELD]: true,\n\t\t\t\t\t[level.columnId]: row[level.columnId]\n\t\t\t\t} satisfies TreeTableTransposedRow<Record<string, unknown>>;\n\n\t\t\t\tout.push(syntheticRow as TreeTableTransposedRow<TData>);\n\t\t\t\tsyntheticNodeIds.add(nodeId);\n\t\t\t}\n\n\t\t\tparentRowId = nodeId;\n\t\t}\n\n\t\tif (path.length === 0) return;\n\n\t\tout.push({\n\t\t\t...row,\n\t\t\t[TREE_TABLE_TRANSPOSED_ROW_ID_FIELD]: createLeafRowId(path, rowIndex),\n\t\t\t[TREE_TABLE_TRANSPOSED_PARENT_ROW_ID_FIELD]: parentRowId,\n\t\t\t[TREE_TABLE_TRANSPOSED_LABEL_FIELD]: lastLabel,\n\t\t\t[TREE_TABLE_TRANSPOSED_LEVEL_FIELD]: lastLevel + 1,\n\t\t\t[TREE_TABLE_TRANSPOSED_SYNTHETIC_FIELD]: false\n\t\t});\n\t});\n\n\treturn out;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type TreeTableTransposeFlatRowsOptions, type TreeTableTransposedRow } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Транспонирует плоские backend-строки в flat hierarchy для TreeTable.
|
|
4
|
+
*
|
|
5
|
+
* Backend обычно возвращает строки фактов с колонками уровней (`TEXT_DIVISION`, `TEXT_NODE`).
|
|
6
|
+
* TreeTable же ожидает строки с id/parent-id. Этот helper всегда создает
|
|
7
|
+
* синтетические group-узлы для уровней и оставляет исходные backend-строки
|
|
8
|
+
* листьями, не перезаписывая их бизнес-поля.
|
|
9
|
+
*/
|
|
10
|
+
export declare function transposeFlatRowsToTreeTableRows<TData extends Record<string, unknown>>(rows: readonly TData[], options: TreeTableTransposeFlatRowsOptions): TreeTableTransposedRow<TData>[];
|
|
11
|
+
//# sourceMappingURL=transposeFlatRowsToTreeTableRows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transposeFlatRowsToTreeTableRows.d.ts","sourceRoot":"","sources":["../../src/tree-table/transposeFlatRowsToTreeTableRows.ts"],"names":[],"mappings":"AAEA,OAAO,EAON,KAAK,iCAAiC,EACtC,KAAK,sBAAsB,EAC3B,MAAM,SAAS,CAAC;AAmDjB;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrF,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,OAAO,EAAE,iCAAiC,GACxC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAsDjC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Контракт преобразования плоского списка OData-строк в дерево.
|
|
3
|
+
*/
|
|
4
|
+
export interface TreeTableFlatHierarchy<TData extends object> {
|
|
5
|
+
/**
|
|
6
|
+
* Возвращает стабильный идентификатор строки.
|
|
7
|
+
*/
|
|
8
|
+
getRowId: (row: TData) => string;
|
|
9
|
+
/**
|
|
10
|
+
* Возвращает идентификатор родителя.
|
|
11
|
+
*
|
|
12
|
+
* `null` и `undefined` означают корневую строку.
|
|
13
|
+
*/
|
|
14
|
+
getParentRowId: (row: TData) => string | null | undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Внутреннее представление строки для TanStack Table.
|
|
18
|
+
*/
|
|
19
|
+
export type TreeTableRowNode<TData extends object> = TData & {
|
|
20
|
+
children?: TreeTableRowNode<TData>[];
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Результат построения дерева из плоского источника.
|
|
24
|
+
*/
|
|
25
|
+
export interface TreeTableBuildResult<TData extends object> {
|
|
26
|
+
/**
|
|
27
|
+
* Корневые узлы уже в иерархическом виде.
|
|
28
|
+
*/
|
|
29
|
+
rows: TreeTableRowNode<TData>[];
|
|
30
|
+
/**
|
|
31
|
+
* Быстрый доступ к исходной строке по идентификатору.
|
|
32
|
+
*/
|
|
33
|
+
rowById: Map<string, TData>;
|
|
34
|
+
/**
|
|
35
|
+
* Все уникальные идентификаторы строк в исходном порядке.
|
|
36
|
+
*/
|
|
37
|
+
allRowIds: string[];
|
|
38
|
+
/**
|
|
39
|
+
* Идентификаторы строк, попавших в корень дерева.
|
|
40
|
+
*/
|
|
41
|
+
rootRowIds: string[];
|
|
42
|
+
/**
|
|
43
|
+
* Строки, у которых указан несуществующий родитель.
|
|
44
|
+
*/
|
|
45
|
+
orphanRowIds: string[];
|
|
46
|
+
/**
|
|
47
|
+
* Повторяющиеся идентификаторы, проигнорированные при построении дерева.
|
|
48
|
+
*/
|
|
49
|
+
duplicateRowIds: string[];
|
|
50
|
+
/**
|
|
51
|
+
* Идентификаторы строк, участвующих в циклических ссылках.
|
|
52
|
+
*/
|
|
53
|
+
cyclicRowIds: string[];
|
|
54
|
+
}
|
|
55
|
+
export declare const TREE_TABLE_TRANSPOSED_ROW_ID_FIELD = "__treeTableRowId";
|
|
56
|
+
export declare const TREE_TABLE_TRANSPOSED_PARENT_ROW_ID_FIELD = "__treeTableParentRowId";
|
|
57
|
+
export declare const TREE_TABLE_TRANSPOSED_LABEL_FIELD = "__treeTableLabel";
|
|
58
|
+
export declare const TREE_TABLE_TRANSPOSED_LEVEL_FIELD = "__treeTableLevel";
|
|
59
|
+
export declare const TREE_TABLE_TRANSPOSED_SYNTHETIC_FIELD = "__treeTableSynthetic";
|
|
60
|
+
/**
|
|
61
|
+
* Служебные поля строки, полученной транспонированием плоских данных в дерево.
|
|
62
|
+
*/
|
|
63
|
+
export type TreeTableTransposedRowMeta = {
|
|
64
|
+
[TREE_TABLE_TRANSPOSED_ROW_ID_FIELD]: string;
|
|
65
|
+
[TREE_TABLE_TRANSPOSED_PARENT_ROW_ID_FIELD]: string | null;
|
|
66
|
+
[TREE_TABLE_TRANSPOSED_LABEL_FIELD]: string;
|
|
67
|
+
[TREE_TABLE_TRANSPOSED_LEVEL_FIELD]: number;
|
|
68
|
+
[TREE_TABLE_TRANSPOSED_SYNTHETIC_FIELD]: boolean;
|
|
69
|
+
};
|
|
70
|
+
export type TreeTableTransposedRow<TData extends object> = TData & TreeTableTransposedRowMeta;
|
|
71
|
+
export type TreeTableTransposeFlatRowsLevel = {
|
|
72
|
+
/**
|
|
73
|
+
* Колонка backend-строки, которая станет уровнем дерева.
|
|
74
|
+
*/
|
|
75
|
+
columnId: string;
|
|
76
|
+
/**
|
|
77
|
+
* Если включено, runtime раскрывает узлы этого уровня при первичном построении дерева.
|
|
78
|
+
*/
|
|
79
|
+
expandByDefault?: boolean;
|
|
80
|
+
};
|
|
81
|
+
export type TreeTableTransposeFlatRowsOptions = {
|
|
82
|
+
/**
|
|
83
|
+
* Колонки, которые образуют уровни дерева в порядке сверху вниз.
|
|
84
|
+
*/
|
|
85
|
+
hierarchyLevels: readonly TreeTableTransposeFlatRowsLevel[];
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tree-table/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,KAAK,SAAS,MAAM;IAC3D;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;IACjC;;;;OAIG;IACH,cAAc,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,MAAM,IAAI,KAAK,GAAG;IAC5D,QAAQ,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,KAAK,SAAS,MAAM;IACzD;;OAEG;IACH,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;IAChC;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,kCAAkC,qBAAqB,CAAC;AACrE,eAAO,MAAM,yCAAyC,2BAA2B,CAAC;AAClF,eAAO,MAAM,iCAAiC,qBAAqB,CAAC;AACpE,eAAO,MAAM,iCAAiC,qBAAqB,CAAC;AACpE,eAAO,MAAM,qCAAqC,yBAAyB,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACxC,CAAC,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAC7C,CAAC,yCAAyC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3D,CAAC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC5C,CAAC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC5C,CAAC,qCAAqC,CAAC,EAAE,OAAO,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,KAAK,SAAS,MAAM,IAAI,KAAK,GAAG,0BAA0B,CAAC;AAE9F,MAAM,MAAM,+BAA+B,GAAG;IAC7C;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC/C;;OAEG;IACH,eAAe,EAAE,SAAS,+BAA+B,EAAE,CAAC;CAC5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/types/types.ts
|
|
2
|
+
function e(e) {
|
|
3
|
+
return e == null ? !0 : e instanceof Date ? Number.isFinite(e.getTime()) : typeof e == "number" ? Number.isFinite(e) : typeof e == "string" || typeof e == "boolean";
|
|
4
|
+
}
|
|
5
|
+
//#endregion
|
|
6
|
+
export { e as isBaseType };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/types/types.ts"],"sourcesContent":["export type State = \"\" | \"none\" | \"information\" | \"success\" | \"warning\" | \"error\";\n\nexport type AbapBoolean = \"X\" | \" \";\n\nexport type Primitive = string | number | boolean | null | undefined;\nexport type BaseType = Date | Primitive;\n\nexport function isBaseType(value: unknown): value is BaseType {\n\tif (value === null || value === undefined) return true;\n\tif (value instanceof Date) return Number.isFinite(value.getTime());\n\tif (typeof value === \"number\") return Number.isFinite(value);\n\n\treturn typeof value === \"string\" || typeof value === \"boolean\";\n}\n\nexport type ArrayType = BaseType[];\nexport type ObjectType = Readonly<Record<string, BaseType>> | object;\nexport type InputType = BaseType | ArrayType | ObjectType;\n\nexport type RangeType = readonly [BaseType | null, BaseType | null];\n\n// Тип для обработчиков изменений\nexport type ChangeHandler<T extends InputType> = (value: T) => void;\n\nexport type RowRecord = Record<string, unknown>;\n"],"mappings":";AAOA,SAAgB,EAAW,GAAmC;CAK7D,OAJI,KAAU,OAAoC,KAC9C,aAAiB,OAAa,OAAO,SAAS,EAAM,QAAQ,CAAC,IAC7D,OAAO,KAAU,WAAiB,OAAO,SAAS,CAAK,IAEpD,OAAO,KAAU,YAAY,OAAO,KAAU;AACtD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type State = "" | "none" | "information" | "success" | "warning" | "error";
|
|
2
|
+
export type AbapBoolean = "X" | " ";
|
|
3
|
+
export type Primitive = string | number | boolean | null | undefined;
|
|
4
|
+
export type BaseType = Date | Primitive;
|
|
5
|
+
export declare function isBaseType(value: unknown): value is BaseType;
|
|
6
|
+
export type ArrayType = BaseType[];
|
|
7
|
+
export type ObjectType = Readonly<Record<string, BaseType>> | object;
|
|
8
|
+
export type InputType = BaseType | ArrayType | ObjectType;
|
|
9
|
+
export type RangeType = readonly [BaseType | null, BaseType | null];
|
|
10
|
+
export type ChangeHandler<T extends InputType> = (value: T) => void;
|
|
11
|
+
export type RowRecord = Record<string, unknown>;
|
|
12
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAElF,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;AAEpC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AACrE,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;AAExC,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAM5D;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;AACnC,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC;AACrE,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1D,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC;AAGpE,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAEpE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"childrenCount.d.ts","sourceRoot":"","sources":["../../src/utils/childrenCount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvG,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAOrD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type ToggleClassName = Record<string, boolean | undefined>;
|
|
2
|
+
export type PureClassName = string | boolean | undefined | null;
|
|
3
|
+
type ClassNameArg = PureClassName | ToggleClassName;
|
|
4
|
+
export declare function cn(...args: ClassNameArg[]): string;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=cn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAChE,KAAK,YAAY,GAAG,aAAa,GAAG,eAAe,CAAC;AAEpD,wBAAgB,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type ComponentType, type LazyExoticComponent } from "react";
|
|
2
|
+
type LazyComponentModule<TProps extends object> = Record<string, ComponentType<TProps>>;
|
|
3
|
+
type LazyComponentImport<TProps extends object> = () => Promise<LazyComponentModule<TProps> | null>;
|
|
4
|
+
/**
|
|
5
|
+
* Создает ленивую компоненту, которая будет загружена только при первом рендере.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
*
|
|
9
|
+
* ```tsx
|
|
10
|
+
* const TextEditor = createLazyComponent(
|
|
11
|
+
* () => import("@components/content/article/editor/TextEditor"),
|
|
12
|
+
* "TextEditor"
|
|
13
|
+
* );
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @param importPath - функция, которая возвращает промис, который резолвится в объект с компонентами
|
|
17
|
+
* @param componentName - имя компонента, который нужно загрузить
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
export declare const createLazyComponent: <TProps extends object>(importPath: LazyComponentImport<TProps>, componentName: string, cacheKey?: string) => LazyExoticComponent<ComponentType<TProps>>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=createLazyComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLazyComponent.d.ts","sourceRoot":"","sources":["../../src/utils/createLazyComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAE3E,KAAK,mBAAmB,CAAC,MAAM,SAAS,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AACxF,KAAK,mBAAmB,CAAC,MAAM,SAAS,MAAM,IAAI,MAAM,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;AAKpG;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,SAAS,MAAM,EACxD,YAAY,mBAAmB,CAAC,MAAM,CAAC,EACvC,eAAe,MAAM,EACrB,WAAW,MAAM,KACf,mBAAmB,CAAC,aAAa,CAAC,MAAM,CAAC,CAqC3C,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
type DeepCloneOptions = {
|
|
2
|
+
/**
|
|
3
|
+
* undefined — сохраняет длину массива и индексную структуру.
|
|
4
|
+
* omit — удаляет элементы-функции из массива.
|
|
5
|
+
*/
|
|
6
|
+
arrayFunctionStrategy?: "undefined" | "omit";
|
|
7
|
+
/**
|
|
8
|
+
* false — возвращает plain object.
|
|
9
|
+
* true — сохраняет prototype исходного объекта.
|
|
10
|
+
*
|
|
11
|
+
* Для Zustand-состояния обычно лучше false.
|
|
12
|
+
*/
|
|
13
|
+
preservePrototype?: boolean;
|
|
14
|
+
};
|
|
15
|
+
type DeepCloneWithoutFunctions<T> = T extends (...args: infer _Args) => unknown ? never : T extends Date ? Date : T extends RegExp ? RegExp : T extends Map<infer K, infer V> ? Map<DeepCloneWithoutFunctions<K>, DeepCloneWithoutFunctions<V>> : T extends Set<infer V> ? Set<DeepCloneWithoutFunctions<V>> : T extends readonly (infer Item)[] ? DeepCloneWithoutFunctions<Item>[] : T extends object ? {
|
|
16
|
+
[K in keyof T as T[K] extends (...args: infer _Args) => unknown ? never : K]: DeepCloneWithoutFunctions<T[K]>;
|
|
17
|
+
} : T;
|
|
18
|
+
export declare function deepCloneWithoutFunctions<T>(value: T, options?: DeepCloneOptions): DeepCloneWithoutFunctions<T>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=deepCloneWithoutFunctions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepCloneWithoutFunctions.d.ts","sourceRoot":"","sources":["../../src/utils/deepCloneWithoutFunctions.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG;IACvB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAE7C;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,KAAK,yBAAyB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,KAAK,KAAK,OAAO,GAC5E,KAAK,GACL,CAAC,SAAS,IAAI,GACb,IAAI,GACJ,CAAC,SAAS,MAAM,GACf,MAAM,GACN,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC9B,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAC/D,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACrB,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GACjC,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,GAChC,yBAAyB,CAAC,IAAI,CAAC,EAAE,GACjC,CAAC,SAAS,MAAM,GACf;KACC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,KAAK,KAAK,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,yBAAyB,CACtG,CAAC,CAAC,CAAC,CAAC,CACJ;CACD,GACA,CAAC,CAAC;AAIX,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAE,gBAAqB,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAuInH"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type CopyFunctionStrategy = "omit" | "undefined";
|
|
2
|
+
type CopyOptions = {
|
|
3
|
+
arrayFunctionStrategy?: CopyFunctionStrategy;
|
|
4
|
+
};
|
|
5
|
+
type DeepCopyWithoutFunctions<T> = T extends (...args: never[]) => unknown ? never : T extends Date ? Date : T extends readonly (infer Item)[] ? DeepCopyWithoutFunctions<Item>[] : T extends object ? {
|
|
6
|
+
[K in keyof T as T[K] extends (...args: never[]) => unknown ? never : K]: DeepCopyWithoutFunctions<T[K]>;
|
|
7
|
+
} : T;
|
|
8
|
+
export declare function deepCopyWithoutFunctions<T>(value: T, options?: CopyOptions): DeepCopyWithoutFunctions<T>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=deepCopyWithoutFunctions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepCopyWithoutFunctions.d.ts","sourceRoot":"","sources":["../../src/utils/deepCopyWithoutFunctions.ts"],"names":[],"mappings":"AAEA,KAAK,oBAAoB,GAAG,MAAM,GAAG,WAAW,CAAC;AAEjD,KAAK,WAAW,GAAG;IAClB,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;CAC7C,CAAC;AAEF,KAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GACvE,KAAK,GACL,CAAC,SAAS,IAAI,GACb,IAAI,GACJ,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,GAChC,wBAAwB,CAAC,IAAI,CAAC,EAAE,GAChC,CAAC,SAAS,MAAM,GACf;KACC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACxG,GACA,CAAC,CAAC;AAIR,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,wBAAwB,CAAC,CAAC,CAAC,CA6E5G"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from "./childrenCount";
|
|
2
|
+
export * from "./cn";
|
|
3
|
+
export * from "./createLazyComponent";
|
|
4
|
+
export * from "./deepCloneWithoutFunctions";
|
|
5
|
+
export * from "./deepCopyWithoutFunctions";
|
|
6
|
+
export * from "./keyboard";
|
|
7
|
+
export * from "./logger";
|
|
8
|
+
export * from "./selectNavigation";
|
|
9
|
+
export * from "./stableStringify";
|
|
10
|
+
export * from "./toBase64";
|
|
11
|
+
export * from "./treeNode";
|
|
12
|
+
export {
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated use `cn`
|
|
15
|
+
*/
|
|
16
|
+
cn as classNames } from "./cn";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,MAAM,CAAC;AACrB,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAI3B,OAAO;AACN;;GAEG;AACH,EAAE,IAAI,UAAU,EAChB,MAAM,MAAM,CAAC"}
|