@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,25 @@
|
|
|
1
|
+
export interface MenuPoint {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
}
|
|
5
|
+
export type MenuOpenSource = "click" | "contextmenu" | "keyboard" | "programmatic";
|
|
6
|
+
export interface ElementMenuAnchor {
|
|
7
|
+
type: "element";
|
|
8
|
+
element: HTMLElement;
|
|
9
|
+
}
|
|
10
|
+
export interface PointMenuAnchor {
|
|
11
|
+
type: "point";
|
|
12
|
+
point: MenuPoint;
|
|
13
|
+
contextElement?: Element | null;
|
|
14
|
+
}
|
|
15
|
+
export type MenuAnchor = ElementMenuAnchor | PointMenuAnchor;
|
|
16
|
+
export interface MenuState {
|
|
17
|
+
open: boolean;
|
|
18
|
+
source: MenuOpenSource | null;
|
|
19
|
+
anchor: MenuAnchor | null;
|
|
20
|
+
}
|
|
21
|
+
export interface OpenMenuPayload {
|
|
22
|
+
source: MenuOpenSource;
|
|
23
|
+
anchor: MenuAnchor;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context-menu/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,cAAc,CAAC;AAEnF,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAE7D,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/copy/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useCallback as e, useRef as t, useState as n } from "react";
|
|
2
|
+
//#region src/copy/useCopyText.ts
|
|
3
|
+
var r = async (e) => {
|
|
4
|
+
try {
|
|
5
|
+
let t = document.createElement("div");
|
|
6
|
+
t.contentEditable = "true", t.style.position = "fixed", t.style.opacity = "0", t.style.pointerEvents = "none", t.textContent = e, document.body.appendChild(t);
|
|
7
|
+
let n = window.getSelection(), r = document.createRange();
|
|
8
|
+
r.selectNodeContents(t), n?.removeAllRanges(), n?.addRange(r);
|
|
9
|
+
let i = document.execCommand("copy");
|
|
10
|
+
return n?.removeAllRanges(), document.body.removeChild(t), i;
|
|
11
|
+
} catch {
|
|
12
|
+
return !1;
|
|
13
|
+
}
|
|
14
|
+
}, i = () => ({ copyToClipboard: e(async (e) => {
|
|
15
|
+
if (!e.trim()) return !1;
|
|
16
|
+
try {
|
|
17
|
+
return navigator.clipboard && window.isSecureContext ? (await navigator.clipboard.writeText(e), !0) : await r(e);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
return console.error("Failed to copy text:", e), !1;
|
|
20
|
+
}
|
|
21
|
+
}, []) }), a = (t) => ({ getElementText: e(() => t.current?.textContent?.trim() || "", [t]) }), o = () => {
|
|
22
|
+
let n = t(null), { copyToClipboard: r } = i(), { getElementText: o } = a(n);
|
|
23
|
+
return {
|
|
24
|
+
containerRef: n,
|
|
25
|
+
copyElementText: e(async () => {
|
|
26
|
+
let e = o();
|
|
27
|
+
return e ? await r(e) : !1;
|
|
28
|
+
}, [o, r]),
|
|
29
|
+
getElementText: o
|
|
30
|
+
};
|
|
31
|
+
}, s = () => {
|
|
32
|
+
let [t, r] = n(!1);
|
|
33
|
+
return {
|
|
34
|
+
isCopied: t,
|
|
35
|
+
showFeedback: e(() => {
|
|
36
|
+
r(!0);
|
|
37
|
+
let e = setTimeout(() => r(!1), 2e3);
|
|
38
|
+
return () => clearTimeout(e);
|
|
39
|
+
}, [])
|
|
40
|
+
};
|
|
41
|
+
}, c = () => {
|
|
42
|
+
let { containerRef: t, copyElementText: n, getElementText: r } = o(), { isCopied: i, showFeedback: a } = s();
|
|
43
|
+
return {
|
|
44
|
+
containerRef: t,
|
|
45
|
+
copyElementText: e(async () => {
|
|
46
|
+
let e = await n();
|
|
47
|
+
return e && a(), e;
|
|
48
|
+
}, [n, a]),
|
|
49
|
+
getElementText: r,
|
|
50
|
+
isCopied: i
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
//#endregion
|
|
54
|
+
export { o as useCopyElementText, c as useCopyElementTextWithFeedback, s as useCopyFeedback, i as useCopyText, a as useElementText };
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/copy/useCopyText.ts","../../src/copy/useElementText.ts","../../src/copy/useCopyElementText.ts","../../src/copy/useCopyFeedback.ts"],"sourcesContent":["import { useCallback } from \"react\";\n\nconst clipboardFallback = async (text: string): Promise<boolean> => {\n\ttry {\n\t\t// Создаем временный элемент с выделением\n\t\tconst tempElement = document.createElement(\"div\");\n\t\ttempElement.contentEditable = \"true\";\n\t\ttempElement.style.position = \"fixed\";\n\t\ttempElement.style.opacity = \"0\";\n\t\ttempElement.style.pointerEvents = \"none\";\n\t\ttempElement.textContent = text;\n\n\t\tdocument.body.appendChild(tempElement);\n\n\t\t// Выделяем текст\n\t\tconst selection = window.getSelection();\n\t\tconst range = document.createRange();\n\t\trange.selectNodeContents(tempElement);\n\t\tselection?.removeAllRanges();\n\t\tselection?.addRange(range);\n\n\t\t// Пытаемся скопировать через современный API\n\t\tconst success = document.execCommand(\"copy\"); // Это пока оставляем, но с try/catch\n\t\tselection?.removeAllRanges();\n\t\tdocument.body.removeChild(tempElement);\n\n\t\treturn success;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport const useCopyText = () => {\n\tconst copyToClipboard = useCallback(async (text: string): Promise<boolean> => {\n\t\tif (!text.trim()) return false;\n\n\t\ttry {\n\t\t\t// Современный API\n\t\t\tif (navigator.clipboard && window.isSecureContext) {\n\t\t\t\tawait navigator.clipboard.writeText(text);\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\t// Fallback для старых браузеров\n\t\t\t\treturn await clipboardFallback(text);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(\"Failed to copy text:\", err);\n\t\t\treturn false;\n\t\t}\n\t}, []);\n\n\treturn { copyToClipboard };\n};\n","import { RefObject, useCallback } from \"react\";\n\nexport const useElementText = <T extends HTMLElement = HTMLElement>(ref: RefObject<T | null>) => {\n\tconst getElementText = useCallback((): string => {\n\t\treturn ref.current?.textContent?.trim() || \"\";\n\t}, [ref]);\n\n\treturn { getElementText };\n};\n","import { useCallback, useRef } from \"react\";\n\nimport { useCopyText } from \"./useCopyText\";\nimport { useElementText } from \"./useElementText\";\n\nexport const useCopyElementText = <T extends HTMLElement = HTMLElement>() => {\n\tconst containerRef = useRef<T>(null);\n\tconst { copyToClipboard } = useCopyText();\n\tconst { getElementText } = useElementText(containerRef);\n\n\tconst copyElementText = useCallback(async (): Promise<boolean> => {\n\t\tconst text = getElementText();\n\t\tif (!text) return false;\n\n\t\treturn await copyToClipboard(text);\n\t}, [getElementText, copyToClipboard]);\n\n\treturn {\n\t\tcontainerRef,\n\t\tcopyElementText,\n\t\tgetElementText\n\t};\n};\n","import { useCallback, useState } from \"react\";\n\nimport { useCopyElementText } from \"./useCopyElementText\";\n\nexport const useCopyFeedback = () => {\n\tconst [isCopied, setIsCopied] = useState(false);\n\n\tconst showFeedback = useCallback(() => {\n\t\tsetIsCopied(true);\n\t\tconst timer = setTimeout(() => setIsCopied(false), 2000);\n\t\treturn () => clearTimeout(timer);\n\t}, []);\n\n\treturn { isCopied, showFeedback };\n};\n\n// Обновленный useCopyElementText с фидбэком\nexport const useCopyElementTextWithFeedback = <T extends HTMLElement = HTMLElement>() => {\n\tconst { containerRef, copyElementText, getElementText } = useCopyElementText<T>();\n\tconst { isCopied, showFeedback } = useCopyFeedback();\n\n\tconst copyWithFeedback = useCallback(async (): Promise<boolean> => {\n\t\tconst success = await copyElementText();\n\t\tif (success) {\n\t\t\tshowFeedback();\n\t\t}\n\t\treturn success;\n\t}, [copyElementText, showFeedback]);\n\n\treturn {\n\t\tcontainerRef,\n\t\tcopyElementText: copyWithFeedback,\n\t\tgetElementText,\n\t\tisCopied\n\t};\n};\n"],"mappings":";;AAEA,IAAM,IAAoB,OAAO,MAAmC;CACnE,IAAI;EAEH,IAAM,IAAc,SAAS,cAAc,KAAK;EAOhD,AANA,EAAY,kBAAkB,QAC9B,EAAY,MAAM,WAAW,SAC7B,EAAY,MAAM,UAAU,KAC5B,EAAY,MAAM,gBAAgB,QAClC,EAAY,cAAc,GAE1B,SAAS,KAAK,YAAY,CAAW;EAGrC,IAAM,IAAY,OAAO,aAAa,GAChC,IAAQ,SAAS,YAAY;EAGnC,AAFA,EAAM,mBAAmB,CAAW,GACpC,GAAW,gBAAgB,GAC3B,GAAW,SAAS,CAAK;EAGzB,IAAM,IAAU,SAAS,YAAY,MAAM;EAI3C,OAHA,GAAW,gBAAgB,GAC3B,SAAS,KAAK,YAAY,CAAW,GAE9B;CACR,QAAQ;EACP,OAAO;CACR;AACD,GAEa,WAmBL,EAAE,iBAlBe,EAAY,OAAO,MAAmC;CAC7E,IAAI,CAAC,EAAK,KAAK,GAAG,OAAO;CAEzB,IAAI;EAOF,OALG,UAAU,aAAa,OAAO,mBACjC,MAAM,UAAU,UAAU,UAAU,CAAI,GACjC,MAGA,MAAM,EAAkB,CAAI;CAErC,SAAS,GAAK;EAEb,OADA,QAAQ,MAAM,wBAAwB,CAAG,GAClC;CACR;AACD,GAAG,CAAC,CAEK,EAAgB,ICjDb,KAAuD,OAK5D,EAAE,gBAJc,QACf,EAAI,SAAS,aAAa,KAAK,KAAK,IACzC,CAAC,CAAG,CAEE,EAAe,ICFZ,UAAgE;CAC5E,IAAM,IAAe,EAAU,IAAI,GAC7B,EAAE,uBAAoB,EAAY,GAClC,EAAE,sBAAmB,EAAe,CAAY;CAStD,OAAO;EACN;EACA,iBATuB,EAAY,YAA8B;GACjE,IAAM,IAAO,EAAe;GAG5B,OAFK,IAEE,MAAM,EAAgB,CAAI,IAFf;EAGnB,GAAG,CAAC,GAAgB,CAAe,CAIlC;EACA;CACD;AACD,GClBa,UAAwB;CACpC,IAAM,CAAC,GAAU,KAAe,EAAS,EAAK;CAQ9C,OAAO;EAAE;EAAU,cANE,QAAkB;GACtC,EAAY,EAAI;GAChB,IAAM,IAAQ,iBAAiB,EAAY,EAAK,GAAG,GAAI;GACvD,aAAa,aAAa,CAAK;EAChC,GAAG,CAAC,CAEe;CAAa;AACjC,GAGa,UAA4E;CACxF,IAAM,EAAE,iBAAc,oBAAiB,sBAAmB,EAAsB,GAC1E,EAAE,aAAU,oBAAiB,EAAgB;CAUnD,OAAO;EACN;EACA,iBAVwB,EAAY,YAA8B;GAClE,IAAM,IAAU,MAAM,EAAgB;GAItC,OAHI,KACH,EAAa,GAEP;EACR,GAAG,CAAC,GAAiB,CAAY,CAIf;EACjB;EACA;CACD;AACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCopyElementText.d.ts","sourceRoot":"","sources":["../../src/copy/useCopyElementText.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,WAAW,GAAG,WAAW;;2BAKvB,OAAO,CAAC,OAAO,CAAC;;CAY9D,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const useCopyFeedback: () => {
|
|
2
|
+
isCopied: boolean;
|
|
3
|
+
showFeedback: () => () => void;
|
|
4
|
+
};
|
|
5
|
+
export declare const useCopyElementTextWithFeedback: <T extends HTMLElement = HTMLElement>() => {
|
|
6
|
+
containerRef: import("react").RefObject<T | null>;
|
|
7
|
+
copyElementText: () => Promise<boolean>;
|
|
8
|
+
getElementText: () => string;
|
|
9
|
+
isCopied: boolean;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=useCopyFeedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCopyFeedback.d.ts","sourceRoot":"","sources":["../../src/copy/useCopyFeedback.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe;;;CAU3B,CAAC;AAGF,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,WAAW,GAAG,WAAW;;2BAIlC,OAAO,CAAC,OAAO,CAAC;;;CAc/D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCopyText.d.ts","sourceRoot":"","sources":["../../src/copy/useCopyText.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,WAAW;4BAC0B,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;CAmB1E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useElementText.d.ts","sourceRoot":"","sources":["../../src/copy/useElementText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAE/C,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC;0BACpD,MAAM;CAK7C,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function hashString(input: string): string;
|
|
2
|
+
export declare function hashString128(input: string): string;
|
|
3
|
+
export declare function hashString128Base64Url(input: string): string;
|
|
4
|
+
export declare function stringToElementId(input: string, prefix?: string): string;
|
|
5
|
+
//# sourceMappingURL=hashString.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashString.d.ts","sourceRoot":"","sources":["../../src/crypto/hashString.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYhD;AA8BD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASnD;AAeD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAQ,GAAG,MAAM,CAEvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
//#region src/crypto/hashString.ts
|
|
2
|
+
function e(e) {
|
|
3
|
+
let t = 2166136261;
|
|
4
|
+
for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t += (t << 1) + (t << 4) + (t << 7) + (t << 8) + (t << 24);
|
|
5
|
+
return (t >>> 0).toString(36);
|
|
6
|
+
}
|
|
7
|
+
function t(e) {
|
|
8
|
+
let t = 3735928559 ^ e.length, n = 1103547991 ^ e.length, r = 3235826430 ^ e.length, i = 305419896 ^ e.length;
|
|
9
|
+
for (let a = 0; a < e.length; a++) {
|
|
10
|
+
let o = e.charCodeAt(a);
|
|
11
|
+
t = Math.imul(t ^ o, 2654435761), n = Math.imul(n ^ o, 1597334677), r = Math.imul(r ^ o, 2246822507), i = Math.imul(i ^ o, 3266489909);
|
|
12
|
+
}
|
|
13
|
+
return t = Math.imul(r ^ t >>> 18, 597399067), n = Math.imul(i ^ n >>> 22, 2869860233), r = Math.imul(t ^ r >>> 17, 951274213), i = Math.imul(n ^ i >>> 19, 2716044179), [
|
|
14
|
+
(t ^ n ^ r ^ i) >>> 0,
|
|
15
|
+
(n ^ t) >>> 0,
|
|
16
|
+
(r ^ t) >>> 0,
|
|
17
|
+
(i ^ t) >>> 0
|
|
18
|
+
];
|
|
19
|
+
}
|
|
20
|
+
function n(e) {
|
|
21
|
+
let n = t(e);
|
|
22
|
+
return n[0].toString(16).padStart(8, "0") + n[1].toString(16).padStart(8, "0") + n[2].toString(16).padStart(8, "0") + n[3].toString(16).padStart(8, "0");
|
|
23
|
+
}
|
|
24
|
+
function r(e) {
|
|
25
|
+
return [
|
|
26
|
+
e >>> 24 & 255,
|
|
27
|
+
e >>> 16 & 255,
|
|
28
|
+
e >>> 8 & 255,
|
|
29
|
+
e & 255
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
function i(e) {
|
|
33
|
+
let t = "";
|
|
34
|
+
for (let n = 0; n < e.length; n++) t += String.fromCharCode(e[n]);
|
|
35
|
+
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
|
|
36
|
+
}
|
|
37
|
+
function a(e) {
|
|
38
|
+
let n = t(e);
|
|
39
|
+
return i([
|
|
40
|
+
...r(n[0]),
|
|
41
|
+
...r(n[1]),
|
|
42
|
+
...r(n[2]),
|
|
43
|
+
...r(n[3])
|
|
44
|
+
]);
|
|
45
|
+
}
|
|
46
|
+
function o(e, t = "row") {
|
|
47
|
+
return `${t}-${a(e)}`;
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region src/crypto/uuid.ts
|
|
51
|
+
function s() {
|
|
52
|
+
if (crypto.randomUUID) return crypto.randomUUID();
|
|
53
|
+
let e = /* @__PURE__ */ new Uint8Array(16);
|
|
54
|
+
crypto.getRandomValues(e), e[6] = e[6] & 15 | 64, e[8] = e[8] & 63 | 128;
|
|
55
|
+
let t = Array(256);
|
|
56
|
+
for (let e = 0; e < 256; e++) t[e] = (e + 256).toString(16).slice(1);
|
|
57
|
+
return t[e[0]] + t[e[1]] + t[e[2]] + t[e[3]] + "-" + t[e[4]] + t[e[5]] + "-" + t[e[6]] + t[e[7]] + "-" + t[e[8]] + t[e[9]] + "-" + t[e[10]] + t[e[11]] + t[e[12]] + t[e[13]] + t[e[14]] + t[e[15]];
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
export { e as hashString, n as hashString128, a as hashString128Base64Url, o as stringToElementId, s as uuidv4 };
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/crypto/hashString.ts","../../src/crypto/uuid.ts"],"sourcesContent":["export function hashString(input: string): string {\n\tlet hash = 0x811c9dc5;\n\n\tfor (let i = 0; i < input.length; i++) {\n\t\thash ^= input.charCodeAt(i);\n\n\t\t// FNV-1a 32-bit\n\t\thash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n\t}\n\n\t// unsigned 32-bit -> compact string\n\treturn (hash >>> 0).toString(36);\n}\n\nfunction hashString128Base(input: string) {\n\tlet h1 = 0xdeadbeef ^ input.length;\n\tlet h2 = 0x41c6ce57 ^ input.length;\n\tlet h3 = 0xc0decafe ^ input.length;\n\tlet h4 = 0x12345678 ^ input.length;\n\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst ch = input.charCodeAt(i);\n\n\t\th1 = Math.imul(h1 ^ ch, 2654435761);\n\t\th2 = Math.imul(h2 ^ ch, 1597334677);\n\t\th3 = Math.imul(h3 ^ ch, 2246822507);\n\t\th4 = Math.imul(h4 ^ ch, 3266489909);\n\t}\n\n\th1 = Math.imul(h3 ^ (h1 >>> 18), 597399067);\n\th2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233);\n\th3 = Math.imul(h1 ^ (h3 >>> 17), 951274213);\n\th4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179);\n\n\tconst p1 = (h1 ^ h2 ^ h3 ^ h4) >>> 0;\n\tconst p2 = (h2 ^ h1) >>> 0;\n\tconst p3 = (h3 ^ h1) >>> 0;\n\tconst p4 = (h4 ^ h1) >>> 0;\n\n\treturn [p1, p2, p3, p4];\n}\n\nexport function hashString128(input: string): string {\n\tconst p = hashString128Base(input);\n\n\treturn (\n\t\tp[0].toString(16).padStart(8, \"0\") +\n\t\tp[1].toString(16).padStart(8, \"0\") +\n\t\tp[2].toString(16).padStart(8, \"0\") +\n\t\tp[3].toString(16).padStart(8, \"0\")\n\t);\n}\n\nfunction uint32ToBytes(value: number): number[] {\n\treturn [(value >>> 24) & 0xff, (value >>> 16) & 0xff, (value >>> 8) & 0xff, value & 0xff];\n}\n\nfunction bytesToBase64Url(bytes: number[]): string {\n\tlet binary = \"\";\n\tfor (let i = 0; i < bytes.length; i++) {\n\t\tbinary += String.fromCharCode(bytes[i]);\n\t}\n\n\treturn btoa(binary).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/g, \"\");\n}\n\nexport function hashString128Base64Url(input: string): string {\n\tconst p = hashString128Base(input);\n\n\treturn bytesToBase64Url([...uint32ToBytes(p[0]), ...uint32ToBytes(p[1]), ...uint32ToBytes(p[2]), ...uint32ToBytes(p[3])]);\n}\n\nexport function stringToElementId(input: string, prefix = \"row\"): string {\n\treturn `${prefix}-${hashString128Base64Url(input)}`;\n}\n","/**\n * UUID v4 (RFC 4122)\n */\nexport function uuidv4(): string {\n\tif (crypto.randomUUID) {\n\t\treturn crypto.randomUUID();\n\t}\n\n\tconst bytes = new Uint8Array(16);\n\tcrypto.getRandomValues(bytes);\n\n\t// Версия 4\n\tbytes[6] = (bytes[6] & 0x0f) | 0x40;\n\t// Вариант RFC 4122\n\tbytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n\tconst hex = new Array<string>(256);\n\tfor (let i = 0; i < 256; i++) {\n\t\thex[i] = (i + 0x100).toString(16).slice(1);\n\t}\n\n\treturn (\n\t\thex[bytes[0]] +\n\t\thex[bytes[1]] +\n\t\thex[bytes[2]] +\n\t\thex[bytes[3]] +\n\t\t\"-\" +\n\t\thex[bytes[4]] +\n\t\thex[bytes[5]] +\n\t\t\"-\" +\n\t\thex[bytes[6]] +\n\t\thex[bytes[7]] +\n\t\t\"-\" +\n\t\thex[bytes[8]] +\n\t\thex[bytes[9]] +\n\t\t\"-\" +\n\t\thex[bytes[10]] +\n\t\thex[bytes[11]] +\n\t\thex[bytes[12]] +\n\t\thex[bytes[13]] +\n\t\thex[bytes[14]] +\n\t\thex[bytes[15]]\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/crypto/uuid.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAwC/B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type WrappedODataParameters } from "../odata-service";
|
|
2
|
+
/** Runtime-режим валюты, который задается общим OData-параметром страницы. */
|
|
3
|
+
export type CurrencyMode = "internal" | "rub";
|
|
4
|
+
/** Собирает display-подпись с валютным суффиксом. */
|
|
5
|
+
export declare function resolveCurrencyAwareLabel(label: string, currencyLabels: readonly [string, string] | undefined, currencyMode: CurrencyMode | null | undefined): string;
|
|
6
|
+
/** Определяет режим валюты по общему OData-параметру `p_curr`. */
|
|
7
|
+
export declare function resolveCurrencyModeFromODataParameters(params?: WrappedODataParameters): CurrencyMode | null;
|
|
8
|
+
//# sourceMappingURL=currency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../src/currency/currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAI/D,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AAE9C,qDAAqD;AACrD,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACrD,YAAY,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAC3C,MAAM,CAWR;AAED,kEAAkE;AAClE,wBAAgB,sCAAsC,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,YAAY,GAAG,IAAI,CAU3G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/currency/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/currency/currency.ts
|
|
2
|
+
var e = "p_curr";
|
|
3
|
+
function t(e, t, n) {
|
|
4
|
+
if (!t || !n) return e;
|
|
5
|
+
let r = t[n === "internal" ? 0 : 1]?.trim(), i = r.startsWith(",");
|
|
6
|
+
return r ? `${e}${i ? "" : " "}${r}` : e;
|
|
7
|
+
}
|
|
8
|
+
function n(t) {
|
|
9
|
+
if (!t || !Object.prototype.hasOwnProperty.call(t, e)) return null;
|
|
10
|
+
let n = t[e]?.value;
|
|
11
|
+
return n === !1 ? "internal" : n === !0 ? "rub" : null;
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { t as resolveCurrencyAwareLabel, n as resolveCurrencyModeFromODataParameters };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/currency/currency.ts"],"sourcesContent":["import { type WrappedODataParameters } from \"../odata-service\";\n\nconst CURRENCY_PARAMETER_ID = \"p_curr\";\n\n/** Runtime-режим валюты, который задается общим OData-параметром страницы. */\nexport type CurrencyMode = \"internal\" | \"rub\";\n\n/** Собирает display-подпись с валютным суффиксом. */\nexport function resolveCurrencyAwareLabel(\n\tlabel: string,\n\tcurrencyLabels: readonly [string, string] | undefined,\n\tcurrencyMode: CurrencyMode | null | undefined\n): string {\n\tif (!currencyLabels || !currencyMode) {\n\t\treturn label;\n\t}\n\n\tconst currencyLabelIndex = currencyMode === \"internal\" ? 0 : 1;\n\tconst currencyLabel = currencyLabels[currencyLabelIndex]?.trim();\n\tconst hasComma = currencyLabel.startsWith(\",\");\n\n\t// NOTE: нужно закрепить правило, что запятая ставится в currencyLabel\n\treturn currencyLabel ? `${label}${hasComma ? \"\" : \" \"}${currencyLabel}` : label;\n}\n\n/** Определяет режим валюты по общему OData-параметру `p_curr`. */\nexport function resolveCurrencyModeFromODataParameters(params?: WrappedODataParameters): CurrencyMode | null {\n\tif (!params || !Object.prototype.hasOwnProperty.call(params, CURRENCY_PARAMETER_ID)) {\n\t\treturn null;\n\t}\n\n\tconst value = params[CURRENCY_PARAMETER_ID]?.value;\n\tif (value === false) return \"internal\";\n\tif (value === true) return \"rub\";\n\n\treturn null;\n}\n"],"mappings":";AAEA,IAAM,IAAwB;AAM9B,SAAgB,EACf,GACA,GACA,GACS;CACT,IAAI,CAAC,KAAkB,CAAC,GACvB,OAAO;CAIR,IAAM,IAAgB,EADK,MAAiB,aAAa,IAAI,EACL,EAAE,KAAK,GACzD,IAAW,EAAc,WAAW,GAAG;CAG7C,OAAO,IAAgB,GAAG,IAAQ,IAAW,KAAK,MAAM,MAAkB;AAC3E;AAGA,SAAgB,EAAuC,GAAsD;CAC5G,IAAI,CAAC,KAAU,CAAC,OAAO,UAAU,eAAe,KAAK,GAAQ,CAAqB,GACjF,OAAO;CAGR,IAAM,IAAQ,EAAO,EAAsB,EAAE;CAI7C,OAHI,MAAU,KAAc,aACxB,MAAU,KAAa,QAEpB;AACR"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { areAllDateSegmentsEmpty, dateToIndexedSegmentValues, indexedSegmentsToDate, isEditableDateSegment, parseDateSegmentMask } from "./mask";
|
|
2
|
+
export type { DateMaskSegment, DateSegmentId, EditableDateSegment, LiteralDateSegment } from "./mask";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/date-segments/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,MAAM,QAAQ,CAAC;AAEhB,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
//#region src/date-segments/mask.ts
|
|
2
|
+
var e = {
|
|
3
|
+
YYYY: {
|
|
4
|
+
id: "year",
|
|
5
|
+
length: 4,
|
|
6
|
+
min: 1,
|
|
7
|
+
max: 9999,
|
|
8
|
+
placeholder: "ГГГГ",
|
|
9
|
+
ariaLabel: "Год"
|
|
10
|
+
},
|
|
11
|
+
yyyy: {
|
|
12
|
+
id: "year",
|
|
13
|
+
length: 4,
|
|
14
|
+
min: 1,
|
|
15
|
+
max: 9999,
|
|
16
|
+
placeholder: "гггг",
|
|
17
|
+
ariaLabel: "Год"
|
|
18
|
+
},
|
|
19
|
+
yy: {
|
|
20
|
+
id: "year",
|
|
21
|
+
length: 2,
|
|
22
|
+
min: 0,
|
|
23
|
+
max: 99,
|
|
24
|
+
placeholder: "гг",
|
|
25
|
+
ariaLabel: "Год"
|
|
26
|
+
},
|
|
27
|
+
MM: {
|
|
28
|
+
id: "month",
|
|
29
|
+
length: 2,
|
|
30
|
+
min: 1,
|
|
31
|
+
max: 12,
|
|
32
|
+
placeholder: "мм",
|
|
33
|
+
ariaLabel: "Месяц"
|
|
34
|
+
},
|
|
35
|
+
DD: {
|
|
36
|
+
id: "day",
|
|
37
|
+
length: 2,
|
|
38
|
+
min: 1,
|
|
39
|
+
max: 31,
|
|
40
|
+
placeholder: "ДД",
|
|
41
|
+
ariaLabel: "День"
|
|
42
|
+
},
|
|
43
|
+
dd: {
|
|
44
|
+
id: "day",
|
|
45
|
+
length: 2,
|
|
46
|
+
min: 1,
|
|
47
|
+
max: 31,
|
|
48
|
+
placeholder: "дд",
|
|
49
|
+
ariaLabel: "День"
|
|
50
|
+
},
|
|
51
|
+
hh: {
|
|
52
|
+
id: "hours",
|
|
53
|
+
length: 2,
|
|
54
|
+
min: 0,
|
|
55
|
+
max: 23,
|
|
56
|
+
placeholder: "чч",
|
|
57
|
+
ariaLabel: "Часы"
|
|
58
|
+
},
|
|
59
|
+
HH: {
|
|
60
|
+
id: "hours",
|
|
61
|
+
length: 2,
|
|
62
|
+
min: 0,
|
|
63
|
+
max: 23,
|
|
64
|
+
placeholder: "чч",
|
|
65
|
+
ariaLabel: "Часы"
|
|
66
|
+
},
|
|
67
|
+
mm: {
|
|
68
|
+
id: "minutes",
|
|
69
|
+
length: 2,
|
|
70
|
+
min: 0,
|
|
71
|
+
max: 59,
|
|
72
|
+
placeholder: "мм",
|
|
73
|
+
ariaLabel: "Минуты"
|
|
74
|
+
},
|
|
75
|
+
ss: {
|
|
76
|
+
id: "seconds",
|
|
77
|
+
length: 2,
|
|
78
|
+
min: 0,
|
|
79
|
+
max: 59,
|
|
80
|
+
placeholder: "сс",
|
|
81
|
+
ariaLabel: "Секунды"
|
|
82
|
+
}
|
|
83
|
+
}, t = Object.keys(e).sort((e, t) => t.length - e.length);
|
|
84
|
+
function n(n) {
|
|
85
|
+
let r = [], i = 0, a = "", o = () => {
|
|
86
|
+
a &&= (r.push({
|
|
87
|
+
kind: "literal",
|
|
88
|
+
text: a
|
|
89
|
+
}), "");
|
|
90
|
+
};
|
|
91
|
+
for (; i < n.length;) {
|
|
92
|
+
let s = null;
|
|
93
|
+
for (let e of t) if (n.slice(i, i + e.length) === e) {
|
|
94
|
+
s = e;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
if (!s) {
|
|
98
|
+
a += n[i], i += 1;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
o(), r.push({
|
|
102
|
+
kind: "editable",
|
|
103
|
+
token: s,
|
|
104
|
+
...e[s]
|
|
105
|
+
}), i += s.length;
|
|
106
|
+
}
|
|
107
|
+
return o(), r;
|
|
108
|
+
}
|
|
109
|
+
function r(e) {
|
|
110
|
+
return e.kind === "editable";
|
|
111
|
+
}
|
|
112
|
+
function i(e, t) {
|
|
113
|
+
let n = /* @__PURE__ */ new Map();
|
|
114
|
+
return t.forEach((t, i) => {
|
|
115
|
+
if (!r(t)) return;
|
|
116
|
+
if (!(e instanceof Date) || Number.isNaN(e.getTime())) {
|
|
117
|
+
n.set(i, "");
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
let a = s(e, t);
|
|
121
|
+
n.set(i, a);
|
|
122
|
+
}), n;
|
|
123
|
+
}
|
|
124
|
+
function a(e, t) {
|
|
125
|
+
return e.every((e, n) => !r(e) || !(t.get(n) ?? ""));
|
|
126
|
+
}
|
|
127
|
+
function o(e, t, n) {
|
|
128
|
+
let i = e.map((e, t) => ({
|
|
129
|
+
segment: e,
|
|
130
|
+
index: t
|
|
131
|
+
})).filter((e) => r(e.segment));
|
|
132
|
+
for (let { segment: e, index: n } of i) if ((t.get(n) ?? "").length < e.length) return null;
|
|
133
|
+
let a = n?.defaultDate ?? new Date(1970, 0, 1, 0, 0, 0, 0), o = c(i, t, "year") ?? a.getFullYear(), s = c(i, t, "month") ?? a.getMonth() + 1, l = c(i, t, "day") ?? a.getDate(), u = c(i, t, "hours") ?? a.getHours(), d = c(i, t, "minutes") ?? a.getMinutes(), f = c(i, t, "seconds") ?? a.getSeconds();
|
|
134
|
+
if (s < 1 || s > 12 || l < 1 || l > 31 || u < 0 || u > 23 || d < 0 || d > 59 || f < 0 || f > 59) return null;
|
|
135
|
+
let p = new Date(o, s - 1, l, u, d, f, 0);
|
|
136
|
+
return p.getFullYear() === o && p.getMonth() === s - 1 && p.getDate() === l && p.getHours() === u && p.getMinutes() === d && p.getSeconds() === f ? p : null;
|
|
137
|
+
}
|
|
138
|
+
function s(e, t) {
|
|
139
|
+
let n = String(e.getFullYear());
|
|
140
|
+
switch (t.id) {
|
|
141
|
+
case "year": return t.length === 2 ? n.slice(-2) : n.padStart(t.length, "0");
|
|
142
|
+
case "month": return String(e.getMonth() + 1).padStart(t.length, "0");
|
|
143
|
+
case "day": return String(e.getDate()).padStart(t.length, "0");
|
|
144
|
+
case "hours": return String(e.getHours()).padStart(t.length, "0");
|
|
145
|
+
case "minutes": return String(e.getMinutes()).padStart(t.length, "0");
|
|
146
|
+
case "seconds": return String(e.getSeconds()).padStart(t.length, "0");
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function c(e, t, n) {
|
|
150
|
+
let r = e.find(({ segment: e }) => e.id === n);
|
|
151
|
+
if (!r) return null;
|
|
152
|
+
let i = t.get(r.index);
|
|
153
|
+
if (!i) return null;
|
|
154
|
+
let a = Number.parseInt(i, 10);
|
|
155
|
+
return Number.isFinite(a) ? n === "year" && r.segment.length === 2 ? a < 70 ? 2e3 + a : 1900 + a : a : null;
|
|
156
|
+
}
|
|
157
|
+
//#endregion
|
|
158
|
+
export { a as areAllDateSegmentsEmpty, i as dateToIndexedSegmentValues, o as indexedSegmentsToDate, r as isEditableDateSegment, n as parseDateSegmentMask };
|
|
159
|
+
|
|
160
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/date-segments/mask.ts"],"sourcesContent":["/**\n * Нейтральные идентификаторы редактируемых сегментов даты и времени.\n */\nexport type DateSegmentId = \"year\" | \"month\" | \"day\" | \"hours\" | \"minutes\" | \"seconds\";\n\n/**\n * Редактируемый сегмент маски даты/времени.\n */\nexport interface EditableDateSegment {\n\tkind: \"editable\";\n\tid: DateSegmentId;\n\ttoken: string;\n\tlength: number;\n\tmin: number;\n\tmax: number;\n\tplaceholder: string;\n\tariaLabel: string;\n}\n\n/**\n * Литеральный сегмент маски даты/времени.\n */\nexport interface LiteralDateSegment {\n\tkind: \"literal\";\n\ttext: string;\n}\n\n/**\n * Унифицированный сегмент маски даты/времени.\n */\nexport type DateMaskSegment = EditableDateSegment | LiteralDateSegment;\n\ntype EditableTokenConfig = Omit<EditableDateSegment, \"kind\" | \"token\">;\n\nconst TOKEN_MAP: Record<string, EditableTokenConfig> = {\n\tYYYY: { id: \"year\", length: 4, min: 1, max: 9999, placeholder: \"ГГГГ\", ariaLabel: \"Год\" },\n\tyyyy: { id: \"year\", length: 4, min: 1, max: 9999, placeholder: \"гггг\", ariaLabel: \"Год\" },\n\tyy: { id: \"year\", length: 2, min: 0, max: 99, placeholder: \"гг\", ariaLabel: \"Год\" },\n\tMM: { id: \"month\", length: 2, min: 1, max: 12, placeholder: \"мм\", ariaLabel: \"Месяц\" },\n\tDD: { id: \"day\", length: 2, min: 1, max: 31, placeholder: \"ДД\", ariaLabel: \"День\" },\n\tdd: { id: \"day\", length: 2, min: 1, max: 31, placeholder: \"дд\", ariaLabel: \"День\" },\n\thh: { id: \"hours\", length: 2, min: 0, max: 23, placeholder: \"чч\", ariaLabel: \"Часы\" },\n\tHH: { id: \"hours\", length: 2, min: 0, max: 23, placeholder: \"чч\", ariaLabel: \"Часы\" },\n\tmm: { id: \"minutes\", length: 2, min: 0, max: 59, placeholder: \"мм\", ariaLabel: \"Минуты\" },\n\tss: { id: \"seconds\", length: 2, min: 0, max: 59, placeholder: \"сс\", ariaLabel: \"Секунды\" }\n};\n\nconst TOKENS_SORTED = Object.keys(TOKEN_MAP).sort((left, right) => right.length - left.length);\n\n/**\n * Разворачивает строковую маску в последовательность литер и редактируемых сегментов.\n */\nexport function parseDateSegmentMask(mask: string): DateMaskSegment[] {\n\tconst segments: DateMaskSegment[] = [];\n\tlet position = 0;\n\tlet literalBuffer = \"\";\n\n\tconst flushLiteral = () => {\n\t\tif (!literalBuffer) return;\n\n\t\tsegments.push({ kind: \"literal\", text: literalBuffer });\n\t\tliteralBuffer = \"\";\n\t};\n\n\twhile (position < mask.length) {\n\t\tlet matchedToken: string | null = null;\n\n\t\tfor (const token of TOKENS_SORTED) {\n\t\t\tif (mask.slice(position, position + token.length) === token) {\n\t\t\t\tmatchedToken = token;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (!matchedToken) {\n\t\t\tliteralBuffer += mask[position];\n\t\t\tposition += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tflushLiteral();\n\t\tsegments.push({ kind: \"editable\", token: matchedToken, ...TOKEN_MAP[matchedToken] });\n\t\tposition += matchedToken.length;\n\t}\n\n\tflushLiteral();\n\n\treturn segments;\n}\n\n/**\n * Возвращает `true`, если сегмент редактируемый.\n */\nexport function isEditableDateSegment(segment: DateMaskSegment): segment is EditableDateSegment {\n\treturn segment.kind === \"editable\";\n}\n\n/**\n * Преобразует Date в индексированную карту значений сегментов.\n */\nexport function dateToIndexedSegmentValues(date: Date | null | undefined, segments: DateMaskSegment[]): Map<number, string> {\n\tconst values = new Map<number, string>();\n\n\tsegments.forEach((segment, index) => {\n\t\tif (!isEditableDateSegment(segment)) return;\n\n\t\tif (!(date instanceof Date) || Number.isNaN(date.getTime())) {\n\t\t\tvalues.set(index, \"\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst rawValue = resolveSegmentValue(date, segment);\n\t\tvalues.set(index, rawValue);\n\t});\n\n\treturn values;\n}\n\n/**\n * Возвращает `true`, если все редактируемые сегменты пусты.\n */\nexport function areAllDateSegmentsEmpty(segments: DateMaskSegment[], values: Map<number, string>): boolean {\n\treturn segments.every((segment, index) => !isEditableDateSegment(segment) || !(values.get(index) ?? \"\"));\n}\n\n/**\n * Собирает строгий Date из индексированной карты сегментов.\n *\n * Отсутствующие части берутся из `defaultDate`, что сохраняет обратную\n * совместимость со сценариями ввода только даты или только времени.\n */\nexport function indexedSegmentsToDate(\n\tsegments: DateMaskSegment[],\n\tvalues: Map<number, string>,\n\toptions?: { defaultDate?: Date }\n): Date | null {\n\tconst editableSegments = segments\n\t\t.map((segment, index) => ({ segment, index }))\n\t\t.filter((entry): entry is { segment: EditableDateSegment; index: number } => isEditableDateSegment(entry.segment));\n\n\tfor (const { segment, index } of editableSegments) {\n\t\tconst value = values.get(index) ?? \"\";\n\t\tif (value.length < segment.length) return null;\n\t}\n\n\tconst fallbackDate = options?.defaultDate ?? new Date(1970, 0, 1, 0, 0, 0, 0);\n\tconst year = resolveSegmentNumber(editableSegments, values, \"year\") ?? fallbackDate.getFullYear();\n\tconst month = resolveSegmentNumber(editableSegments, values, \"month\") ?? fallbackDate.getMonth() + 1;\n\tconst day = resolveSegmentNumber(editableSegments, values, \"day\") ?? fallbackDate.getDate();\n\tconst hours = resolveSegmentNumber(editableSegments, values, \"hours\") ?? fallbackDate.getHours();\n\tconst minutes = resolveSegmentNumber(editableSegments, values, \"minutes\") ?? fallbackDate.getMinutes();\n\tconst seconds = resolveSegmentNumber(editableSegments, values, \"seconds\") ?? fallbackDate.getSeconds();\n\n\tif (month < 1 || month > 12) return null;\n\tif (day < 1 || day > 31) return null;\n\tif (hours < 0 || hours > 23) return null;\n\tif (minutes < 0 || minutes > 59) return null;\n\tif (seconds < 0 || seconds > 59) return null;\n\n\tconst result = new Date(year, month - 1, day, hours, minutes, seconds, 0);\n\tconst isValid =\n\t\tresult.getFullYear() === year &&\n\t\tresult.getMonth() === month - 1 &&\n\t\tresult.getDate() === day &&\n\t\tresult.getHours() === hours &&\n\t\tresult.getMinutes() === minutes &&\n\t\tresult.getSeconds() === seconds;\n\n\treturn isValid ? result : null;\n}\n\n/**\n * Возвращает строковое значение конкретного сегмента для переданного Date.\n */\nfunction resolveSegmentValue(date: Date, segment: EditableDateSegment): string {\n\tconst fullYear = String(date.getFullYear());\n\n\tswitch (segment.id) {\n\t\tcase \"year\":\n\t\t\treturn segment.length === 2 ? fullYear.slice(-2) : fullYear.padStart(segment.length, \"0\");\n\t\tcase \"month\":\n\t\t\treturn String(date.getMonth() + 1).padStart(segment.length, \"0\");\n\t\tcase \"day\":\n\t\t\treturn String(date.getDate()).padStart(segment.length, \"0\");\n\t\tcase \"hours\":\n\t\t\treturn String(date.getHours()).padStart(segment.length, \"0\");\n\t\tcase \"minutes\":\n\t\t\treturn String(date.getMinutes()).padStart(segment.length, \"0\");\n\t\tcase \"seconds\":\n\t\t\treturn String(date.getSeconds()).padStart(segment.length, \"0\");\n\t}\n}\n\n/**\n * Извлекает числовое значение сегмента нужного типа.\n */\nfunction resolveSegmentNumber(\n\teditableSegments: Array<{ segment: EditableDateSegment; index: number }>,\n\tvalues: Map<number, string>,\n\ttargetId: DateSegmentId\n): number | null {\n\tconst match = editableSegments.find(({ segment }) => segment.id === targetId);\n\tif (!match) return null;\n\n\tconst rawValue = values.get(match.index);\n\tif (!rawValue) return null;\n\n\tconst numericValue = Number.parseInt(rawValue, 10);\n\tif (!Number.isFinite(numericValue)) return null;\n\n\tif (targetId === \"year\" && match.segment.length === 2) {\n\t\treturn numericValue < 70 ? 2000 + numericValue : 1900 + numericValue;\n\t}\n\n\treturn numericValue;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Нейтральные идентификаторы редактируемых сегментов даты и времени.
|
|
3
|
+
*/
|
|
4
|
+
export type DateSegmentId = "year" | "month" | "day" | "hours" | "minutes" | "seconds";
|
|
5
|
+
/**
|
|
6
|
+
* Редактируемый сегмент маски даты/времени.
|
|
7
|
+
*/
|
|
8
|
+
export interface EditableDateSegment {
|
|
9
|
+
kind: "editable";
|
|
10
|
+
id: DateSegmentId;
|
|
11
|
+
token: string;
|
|
12
|
+
length: number;
|
|
13
|
+
min: number;
|
|
14
|
+
max: number;
|
|
15
|
+
placeholder: string;
|
|
16
|
+
ariaLabel: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Литеральный сегмент маски даты/времени.
|
|
20
|
+
*/
|
|
21
|
+
export interface LiteralDateSegment {
|
|
22
|
+
kind: "literal";
|
|
23
|
+
text: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Унифицированный сегмент маски даты/времени.
|
|
27
|
+
*/
|
|
28
|
+
export type DateMaskSegment = EditableDateSegment | LiteralDateSegment;
|
|
29
|
+
/**
|
|
30
|
+
* Разворачивает строковую маску в последовательность литер и редактируемых сегментов.
|
|
31
|
+
*/
|
|
32
|
+
export declare function parseDateSegmentMask(mask: string): DateMaskSegment[];
|
|
33
|
+
/**
|
|
34
|
+
* Возвращает `true`, если сегмент редактируемый.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isEditableDateSegment(segment: DateMaskSegment): segment is EditableDateSegment;
|
|
37
|
+
/**
|
|
38
|
+
* Преобразует Date в индексированную карту значений сегментов.
|
|
39
|
+
*/
|
|
40
|
+
export declare function dateToIndexedSegmentValues(date: Date | null | undefined, segments: DateMaskSegment[]): Map<number, string>;
|
|
41
|
+
/**
|
|
42
|
+
* Возвращает `true`, если все редактируемые сегменты пусты.
|
|
43
|
+
*/
|
|
44
|
+
export declare function areAllDateSegmentsEmpty(segments: DateMaskSegment[], values: Map<number, string>): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Собирает строгий Date из индексированной карты сегментов.
|
|
47
|
+
*
|
|
48
|
+
* Отсутствующие части берутся из `defaultDate`, что сохраняет обратную
|
|
49
|
+
* совместимость со сценариями ввода только даты или только времени.
|
|
50
|
+
*/
|
|
51
|
+
export declare function indexedSegmentsToDate(segments: DateMaskSegment[], values: Map<number, string>, options?: {
|
|
52
|
+
defaultDate?: Date;
|
|
53
|
+
}): Date | null;
|
|
54
|
+
//# sourceMappingURL=mask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../src/date-segments/mask.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,aAAa,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAmBvE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CAoCpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,IAAI,mBAAmB,CAE9F;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB1H;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAEzG;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,eAAe,EAAE,EAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,GAC9B,IAAI,GAAG,IAAI,CAkCb"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function downloadFileFromObjectURL(filename: string, objectUrl: string): void;
|
|
2
|
+
export declare function downloadFileFromBlob(filename: string, blob: Blob): void;
|
|
3
|
+
export declare function downloadFileFromJson(filename: string, payload: unknown): void;
|
|
4
|
+
//# sourceMappingURL=downloadFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloadFile.d.ts","sourceRoot":"","sources":["../../src/dom/downloadFile.ts"],"names":[],"mappings":"AAAA,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAU5E;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,QAGhE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,QAGtE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOrCreatePortalRoot.d.ts","sourceRoot":"","sources":["../../src/dom/getOrCreatePortalRoot.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAepE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./downloadFile";
|
|
2
|
+
export * from "./getOrCreatePortalRoot";
|
|
3
|
+
export * from "./useClickOutside";
|
|
4
|
+
export * from "./useElementHeightObserver";
|
|
5
|
+
export * from "./useEscapeDismiss";
|
|
6
|
+
export * from "./useFocusTrap";
|
|
7
|
+
export * from "./useIntersectionObserver";
|
|
8
|
+
export * from "./useIsTouchDevice";
|
|
9
|
+
export * from "./useOverlayFocus";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dom/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
|