@ryuzaki13/react-foundation-lib 2.31.1 → 2.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -5
- package/dist/analytical-table/definition/analyticalDefinitionConstants.d.ts +17 -0
- package/dist/analytical-table/definition/analyticalDefinitionConstants.d.ts.map +1 -0
- package/dist/analytical-table/definition/compileAnalyticalTableDefinition.d.ts.map +1 -1
- package/dist/analytical-table/definition/types.d.ts +6 -5
- package/dist/analytical-table/definition/types.d.ts.map +1 -1
- package/dist/analytical-table/dynamic-columns/analyticalDateColumnConstants.d.ts +7 -0
- package/dist/analytical-table/dynamic-columns/analyticalDateColumnConstants.d.ts.map +1 -0
- package/dist/analytical-table/dynamic-columns/dateColumns.d.ts.map +1 -1
- package/dist/analytical-table/dynamic-columns/types.d.ts +2 -1
- package/dist/analytical-table/dynamic-columns/types.d.ts.map +1 -1
- package/dist/analytical-table/index.js +124 -114
- package/dist/analytical-table/index.js.map +1 -1
- package/dist/analytical-table/projections/analyticalExportConstants.d.ts +7 -0
- package/dist/analytical-table/projections/analyticalExportConstants.d.ts.map +1 -0
- package/dist/analytical-table/projections/expansion.d.ts +2 -1
- package/dist/analytical-table/projections/expansion.d.ts.map +1 -1
- package/dist/analytical-table/projections/exportProjection.d.ts.map +1 -1
- package/dist/analytical-table/projections/types.d.ts +3 -2
- package/dist/analytical-table/projections/types.d.ts.map +1 -1
- package/dist/analytical-table/runtime/aggregation.d.ts.map +1 -1
- package/dist/analytical-table/runtime/analyticalRowConstants.d.ts +4 -0
- package/dist/analytical-table/runtime/analyticalRowConstants.d.ts.map +1 -0
- package/dist/analytical-table/runtime/analyticalViewConstants.d.ts +16 -0
- package/dist/analytical-table/runtime/analyticalViewConstants.d.ts.map +1 -0
- package/dist/analytical-table/runtime/buildGroupedModel.d.ts.map +1 -1
- package/dist/analytical-table/runtime/filtering.d.ts.map +1 -1
- package/dist/analytical-table/runtime/grouping.d.ts.map +1 -1
- package/dist/analytical-table/runtime/hierarchy.d.ts +2 -1
- package/dist/analytical-table/runtime/hierarchy.d.ts.map +1 -1
- package/dist/analytical-table/runtime/totals.d.ts +2 -2
- package/dist/analytical-table/runtime/totals.d.ts.map +1 -1
- package/dist/analytical-table/runtime/types.d.ts +5 -3
- package/dist/analytical-table/runtime/types.d.ts.map +1 -1
- package/dist/analytical-table/runtime/valueComparison.d.ts.map +1 -1
- package/dist/array/index.js +1 -1
- package/dist/array/reorder.d.ts +6 -1
- package/dist/array/reorder.d.ts.map +1 -1
- package/dist/async-task-runner/createCoalescingTaskRunner.d.ts.map +1 -1
- package/dist/async-task-runner/createDeadlineTimer.d.ts.map +1 -1
- package/dist/async-task-runner/index.js +39 -36
- package/dist/async-task-runner/index.js.map +1 -1
- package/dist/async-task-runner/nativeTimerConstants.d.ts +3 -0
- package/dist/async-task-runner/nativeTimerConstants.d.ts.map +1 -0
- package/dist/binary/base64Constants.d.ts +6 -0
- package/dist/binary/base64Constants.d.ts.map +1 -0
- package/dist/binary/binaryToBlob.d.ts.map +1 -1
- package/dist/binary/getBase64DecodedSize.d.ts.map +1 -1
- package/dist/binary/index.js +95 -70
- package/dist/binary/index.js.map +1 -1
- package/dist/browser-notifications/browserNotificationConstants.d.ts +3 -0
- package/dist/browser-notifications/browserNotificationConstants.d.ts.map +1 -0
- package/dist/browser-notifications/browserNotificationTypes.d.ts +2 -1
- package/dist/browser-notifications/browserNotificationTypes.d.ts.map +1 -1
- package/dist/browser-notifications/createBrowserNotificationPresenter.d.ts.map +1 -1
- package/dist/browser-notifications/index.js +38 -37
- package/dist/browser-notifications/index.js.map +1 -1
- package/dist/chunks/{array-D-_yMMUK.js → array-bd7LYFto.js} +1 -3
- package/dist/chunks/{array-D-_yMMUK.js.map → array-bd7LYFto.js.map} +1 -1
- package/dist/chunks/{dom-BK22UmgF.js → dom-ZSeWZ0Gg.js} +103 -98
- package/dist/chunks/dom-ZSeWZ0Gg.js.map +1 -0
- package/dist/chunks/formatDate-CNPcfNte.js +133 -0
- package/dist/chunks/formatDate-CNPcfNte.js.map +1 -0
- package/dist/chunks/{formatters-rxriDRPk.js → formatters-CO40zvVB.js} +496 -497
- package/dist/chunks/formatters-CO40zvVB.js.map +1 -0
- package/dist/chunks/{formulas-BXT_XBWI.js → formulas-Y0HOcFhe.js} +90 -86
- package/dist/chunks/formulas-Y0HOcFhe.js.map +1 -0
- package/dist/chunks/hasSignatureBytes-D2wO_Myl.js +11 -0
- package/dist/chunks/hasSignatureBytes-D2wO_Myl.js.map +1 -0
- package/dist/chunks/keyboardConstants-BZKskWsm.js +6 -0
- package/dist/chunks/keyboardConstants-BZKskWsm.js.map +1 -0
- package/dist/chunks/media-imBOXWwa.js +192 -0
- package/dist/chunks/media-imBOXWwa.js.map +1 -0
- package/dist/chunks/mimeTypeConstants-BzONV-b1.js +6 -0
- package/dist/chunks/mimeTypeConstants-BzONV-b1.js.map +1 -0
- package/dist/chunks/{query-client-CVRfrYZM.js → query-client-D0HQZ84w.js} +142 -142
- package/dist/chunks/query-client-D0HQZ84w.js.map +1 -0
- package/dist/chunks/scalarTypeClassification-D4YcGxtQ.js +766 -0
- package/dist/chunks/scalarTypeClassification-D4YcGxtQ.js.map +1 -0
- package/dist/chunks/scalarTypeConstants-CnSsjpGO.js +6 -0
- package/dist/chunks/scalarTypeConstants-CnSsjpGO.js.map +1 -0
- package/dist/chunks/utils-DW0Yso1Q.js +210 -0
- package/dist/chunks/utils-DW0Yso1Q.js.map +1 -0
- package/dist/chunks/{uuid-CUJPAbRY.js → uuid-izDzLv18.js} +1 -2
- package/dist/chunks/uuid-izDzLv18.js.map +1 -0
- package/dist/chunks/validate-8URYKKly.js +613 -0
- package/dist/chunks/validate-8URYKKly.js.map +1 -0
- package/dist/copy/index.js +5 -5
- package/dist/copy/index.js.map +1 -1
- package/dist/copy/useCopyFeedback.d.ts.map +1 -1
- package/dist/crypto/hashString.d.ts.map +1 -1
- package/dist/crypto/hexadecimalConstants.d.ts +3 -0
- package/dist/crypto/hexadecimalConstants.d.ts.map +1 -0
- package/dist/crypto/index.js +25 -24
- package/dist/crypto/index.js.map +1 -1
- package/dist/crypto/uuid.d.ts.map +1 -1
- package/dist/date-segments/index.js +81 -81
- package/dist/date-segments/index.js.map +1 -1
- package/dist/date-segments/mask.d.ts +13 -3
- package/dist/date-segments/mask.d.ts.map +1 -1
- package/dist/decimal/decimalConstants.d.ts +3 -0
- package/dist/decimal/decimalConstants.d.ts.map +1 -0
- package/dist/decimal/index.js +0 -2
- package/dist/decimal/index.js.map +1 -1
- package/dist/decimal/normalizeDecimal.d.ts.map +1 -1
- package/dist/decimal/normalizeDecimalLiteral.d.ts.map +1 -1
- package/dist/decimal/resolveDecimalMaxLength.d.ts.map +1 -1
- package/dist/decimal/sumDecimals.d.ts.map +1 -1
- package/dist/decimal/writeDecimalParts.d.ts.map +1 -1
- package/dist/dom/document-scroll/acquireDocumentScrollLock.d.ts.map +1 -1
- package/dist/dom/document-scroll/attachDocumentTouchScrollGuard.d.ts.map +1 -1
- package/dist/dom/document-scroll/canConsumeVerticalTouchScroll.d.ts.map +1 -1
- package/dist/dom/domEventConstants.d.ts +4 -0
- package/dist/dom/domEventConstants.d.ts.map +1 -0
- package/dist/dom/domScrollConstants.d.ts +3 -0
- package/dist/dom/domScrollConstants.d.ts.map +1 -0
- package/dist/dom/index.js +1 -1
- package/dist/dom/installFaviconOverride.d.ts.map +1 -1
- package/dist/dom/overlayFocusConstants.d.ts +4 -0
- package/dist/dom/overlayFocusConstants.d.ts.map +1 -0
- package/dist/dom/scroll-anchor/captureScrollAnchor.d.ts.map +1 -1
- package/dist/dom/useClickOutside.d.ts +1 -1
- package/dist/dom/useClickOutside.d.ts.map +1 -1
- package/dist/dom/useEscapeDismiss.d.ts +1 -1
- package/dist/dom/useEscapeDismiss.d.ts.map +1 -1
- package/dist/dom/useFocusTrap.d.ts.map +1 -1
- package/dist/dom/useIsTouchDevice.d.ts.map +1 -1
- package/dist/dom/useOverlayFocus.d.ts +3 -2
- package/dist/dom/useOverlayFocus.d.ts.map +1 -1
- package/dist/dom/visual-viewport/attachVisualViewportFrame.d.ts.map +1 -1
- package/dist/error-report/breadcrumbs.d.ts.map +1 -1
- package/dist/error-report/capture.d.ts.map +1 -1
- package/dist/error-report/captureOptions.d.ts +3 -2
- package/dist/error-report/captureOptions.d.ts.map +1 -1
- package/dist/error-report/capturePolicyConstants.d.ts +4 -0
- package/dist/error-report/capturePolicyConstants.d.ts.map +1 -0
- package/dist/error-report/dataPreview.d.ts.map +1 -1
- package/dist/error-report/diagnostics.d.ts.map +1 -1
- package/dist/error-report/drafts.d.ts.map +1 -1
- package/dist/error-report/environment.d.ts.map +1 -1
- package/dist/error-report/errorInfo.d.ts.map +1 -1
- package/dist/error-report/errorReportCaptureLimits.d.ts +26 -0
- package/dist/error-report/errorReportCaptureLimits.d.ts.map +1 -0
- package/dist/error-report/errorReportContractConstants.d.ts +32 -0
- package/dist/error-report/errorReportContractConstants.d.ts.map +1 -0
- package/dist/error-report/index.js +586 -587
- package/dist/error-report/index.js.map +1 -1
- package/dist/error-report/payload.d.ts.map +1 -1
- package/dist/error-report/queue.d.ts.map +1 -1
- package/dist/error-report/queueContract.d.ts +7 -6
- package/dist/error-report/queueContract.d.ts.map +1 -1
- package/dist/error-report/queueRecord.d.ts.map +1 -1
- package/dist/error-report/queueResultConstants.d.ts +14 -0
- package/dist/error-report/queueResultConstants.d.ts.map +1 -0
- package/dist/error-report/runtimeDeduplication.d.ts +2 -1
- package/dist/error-report/runtimeDeduplication.d.ts.map +1 -1
- package/dist/error-report/safeValue.d.ts.map +1 -1
- package/dist/error-report/safeValueMarkerConstants.d.ts +16 -0
- package/dist/error-report/safeValueMarkerConstants.d.ts.map +1 -0
- package/dist/error-report/schema.d.ts.map +1 -1
- package/dist/error-report/types.d.ts +10 -8
- package/dist/error-report/types.d.ts.map +1 -1
- package/dist/error-report-source-maps/archive.d.ts.map +1 -1
- package/dist/error-report-source-maps/artifact.d.ts.map +1 -1
- package/dist/error-report-source-maps/index.js +238 -238
- package/dist/error-report-source-maps/index.js.map +1 -1
- package/dist/error-report-source-maps/manifest.d.ts.map +1 -1
- package/dist/error-report-source-maps/package.d.ts.map +1 -1
- package/dist/error-report-source-maps/sourceMapArtifactConstants.d.ts +11 -0
- package/dist/error-report-source-maps/sourceMapArtifactConstants.d.ts.map +1 -0
- package/dist/error-report-source-maps/symbolicate.d.ts.map +1 -1
- package/dist/error-report-source-maps/symbolicationResultConstants.d.ts +6 -0
- package/dist/error-report-source-maps/symbolicationResultConstants.d.ts.map +1 -0
- package/dist/error-report-source-maps/types.d.ts +4 -2
- package/dist/error-report-source-maps/types.d.ts.map +1 -1
- package/dist/excel/excel.d.ts.map +1 -1
- package/dist/excel/excelWorkbookConstants.d.ts +6 -0
- package/dist/excel/excelWorkbookConstants.d.ts.map +1 -0
- package/dist/excel/index.js +117 -116
- package/dist/excel/index.js.map +1 -1
- package/dist/excel/matrixWorkbook.d.ts +6 -1
- package/dist/excel/matrixWorkbook.d.ts.map +1 -1
- package/dist/excel/tableExport.d.ts.map +1 -1
- package/dist/file/checkFileSignature.d.ts.map +1 -1
- package/dist/file/contentDisposition.d.ts.map +1 -1
- package/dist/file/fileSignatureConstants.d.ts +14 -18
- package/dist/file/fileSignatureConstants.d.ts.map +1 -1
- package/dist/file/fileSignatureTypes.d.ts +3 -3
- package/dist/file/fileSignatureTypes.d.ts.map +1 -1
- package/dist/file/image/imageReadConstants.d.ts +3 -0
- package/dist/file/image/imageReadConstants.d.ts.map +1 -0
- package/dist/file/image/readImageFile.d.ts +3 -2
- package/dist/file/image/readImageFile.d.ts.map +1 -1
- package/dist/file/image/types.d.ts +5 -3
- package/dist/file/image/types.d.ts.map +1 -1
- package/dist/file/index.js +139 -165
- package/dist/file/index.js.map +1 -1
- package/dist/file/mimeType.d.ts.map +1 -1
- package/dist/file/mimeTypeConstants.d.ts +18 -0
- package/dist/file/mimeTypeConstants.d.ts.map +1 -0
- package/dist/file/read-file/assert.d.ts.map +1 -1
- package/dist/file/read-file/readFile.d.ts +3 -11
- package/dist/file/read-file/readFile.d.ts.map +1 -1
- package/dist/file/read-file/readFileConstants.d.ts +13 -0
- package/dist/file/read-file/readFileConstants.d.ts.map +1 -0
- package/dist/file/read-file/types.d.ts +7 -6
- package/dist/file/read-file/types.d.ts.map +1 -1
- package/dist/file/signature/checkArchiveSignature.d.ts.map +1 -1
- package/dist/file-system/fileSystemConstants.d.ts +5 -0
- package/dist/file-system/fileSystemConstants.d.ts.map +1 -0
- package/dist/file-system/fileSystemTypes.d.ts +2 -1
- package/dist/file-system/fileSystemTypes.d.ts.map +1 -1
- package/dist/file-system/index.js +11 -10
- package/dist/file-system/index.js.map +1 -1
- package/dist/file-system/resolvePathInsideRoot.d.ts.map +1 -1
- package/dist/formatters/boolean/parseAbapBoolean.d.ts.map +1 -1
- package/dist/formatters/boolean/toAbapBoolean.d.ts.map +1 -1
- package/dist/formatters/date/calendarDate.d.ts.map +1 -1
- package/dist/formatters/date/calendarDateConstants.d.ts +13 -0
- package/dist/formatters/date/calendarDateConstants.d.ts.map +1 -0
- package/dist/formatters/date/calendarPeriod.d.ts +11 -2
- package/dist/formatters/date/calendarPeriod.d.ts.map +1 -1
- package/dist/formatters/date/dateFormatConstants.d.ts +17 -0
- package/dist/formatters/date/dateFormatConstants.d.ts.map +1 -0
- package/dist/formatters/date/datePatternConstants.d.ts +16 -0
- package/dist/formatters/date/datePatternConstants.d.ts.map +1 -0
- package/dist/formatters/date/datePresetNameConstants.d.ts +27 -0
- package/dist/formatters/date/datePresetNameConstants.d.ts.map +1 -0
- package/dist/formatters/date/dateRange.d.ts +3 -1
- package/dist/formatters/date/dateRange.d.ts.map +1 -1
- package/dist/formatters/date/dateValueConstants.d.ts +15 -0
- package/dist/formatters/date/dateValueConstants.d.ts.map +1 -0
- package/dist/formatters/date/educationDate.d.ts.map +1 -1
- package/dist/formatters/date/formatDate.d.ts.map +1 -1
- package/dist/formatters/date/formatInstantDateTime.d.ts.map +1 -1
- package/dist/formatters/date/parseDate.d.ts.map +1 -1
- package/dist/formatters/date/pattern.d.ts.map +1 -1
- package/dist/formatters/date/presets.d.ts.map +1 -1
- package/dist/formatters/date/types.d.ts +8 -6
- package/dist/formatters/date/types.d.ts.map +1 -1
- package/dist/formatters/formatDurationMinutes.d.ts.map +1 -1
- package/dist/formatters/formatFileSize.d.ts.map +1 -1
- package/dist/formatters/formatPhone.d.ts.map +1 -1
- package/dist/formatters/index.js +6 -6
- package/dist/formatters/normalizeLeadingZeros.d.ts.map +1 -1
- package/dist/formatters/number/compact.d.ts.map +1 -1
- package/dist/formatters/number/formatCompactNumber.d.ts.map +1 -1
- package/dist/formatters/number/formatNumber.d.ts.map +1 -1
- package/dist/formatters/number/numberFormatConstants.d.ts +11 -0
- package/dist/formatters/number/numberFormatConstants.d.ts.map +1 -0
- package/dist/formatters/number/numberPresetNameConstants.d.ts +16 -0
- package/dist/formatters/number/numberPresetNameConstants.d.ts.map +1 -0
- package/dist/formatters/number/parseNumber.d.ts.map +1 -1
- package/dist/formatters/number/presets.d.ts.map +1 -1
- package/dist/formatters/number/types.d.ts +2 -1
- package/dist/formatters/number/types.d.ts.map +1 -1
- package/dist/formatters/pipeline/clone.d.ts.map +1 -1
- package/dist/formatters/pipeline/definitions.d.ts.map +1 -1
- package/dist/formatters/pipeline/dependencies.d.ts.map +1 -1
- package/dist/formatters/pipeline/execute.d.ts +4 -1
- package/dist/formatters/pipeline/execute.d.ts.map +1 -1
- package/dist/formatters/pipeline/formattersPipelineConstants.d.ts +19 -0
- package/dist/formatters/pipeline/formattersPipelineConstants.d.ts.map +1 -0
- package/dist/formatters/pipeline/normalize.d.ts.map +1 -1
- package/dist/formatters/pipeline/pipelineValidationConstants.d.ts +40 -0
- package/dist/formatters/pipeline/pipelineValidationConstants.d.ts.map +1 -0
- package/dist/formatters/pipeline/registry.d.ts +1 -1
- package/dist/formatters/pipeline/registry.d.ts.map +1 -1
- package/dist/formatters/pipeline/rekey.d.ts.map +1 -1
- package/dist/formatters/pipeline/runtime.d.ts.map +1 -1
- package/dist/formatters/pipeline/types.d.ts +24 -21
- package/dist/formatters/pipeline/types.d.ts.map +1 -1
- package/dist/formatters/pipeline/validate.d.ts +2 -1
- package/dist/formatters/pipeline/validate.d.ts.map +1 -1
- package/dist/formatters/strings/spaceCharacterConstants.d.ts +5 -0
- package/dist/formatters/strings/spaceCharacterConstants.d.ts.map +1 -0
- package/dist/formatters/strings/stripInnerSpaces.d.ts.map +1 -1
- package/dist/formatters/strings/stripLeadingZeros.d.ts.map +1 -1
- package/dist/formatters/valueState/fixedValueStateResolver.d.ts.map +1 -1
- package/dist/formatters/valueState/presentation.d.ts.map +1 -1
- package/dist/formatters/valueState/resolveValueStateClassName.d.ts.map +1 -1
- package/dist/formatters/valueState/thresholdValueStateResolver.d.ts.map +1 -1
- package/dist/formatters/valueState/types.d.ts +2 -1
- package/dist/formatters/valueState/types.d.ts.map +1 -1
- package/dist/formatters/valueState/valueStateRegistry.d.ts.map +1 -1
- package/dist/formatters/valueState/valueStateResolverConstants.d.ts +6 -0
- package/dist/formatters/valueState/valueStateResolverConstants.d.ts.map +1 -0
- package/dist/formulas/execute.d.ts +3 -2
- package/dist/formulas/execute.d.ts.map +1 -1
- package/dist/formulas/index.js +1 -1
- package/dist/formulas/isTableFormulaDependency.d.ts.map +1 -1
- package/dist/formulas/tableFormulaConstants.d.ts +12 -0
- package/dist/formulas/tableFormulaConstants.d.ts.map +1 -0
- package/dist/formulas/types.d.ts +2 -1
- package/dist/formulas/types.d.ts.map +1 -1
- package/dist/formulas/validate.d.ts +2 -1
- package/dist/formulas/validate.d.ts.map +1 -1
- package/dist/hooks/index.js +110 -107
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useBlockBrowserZoom.d.ts.map +1 -1
- package/dist/hooks/useDndSortableSensors.d.ts.map +1 -1
- package/dist/hooks/useFloatingListbox.d.ts +15 -33
- package/dist/hooks/useFloatingListbox.d.ts.map +1 -1
- package/dist/http/index.js +8 -7
- package/dist/http/index.js.map +1 -1
- package/dist/http/textResponse.d.ts.map +1 -1
- package/dist/indexed-records/createIndexedRecordsSchema.d.ts.map +1 -1
- package/dist/indexed-records/schema.js +24 -23
- package/dist/indexed-records/schema.js.map +1 -1
- package/dist/media/breakpointConstants.d.ts +5 -0
- package/dist/media/breakpointConstants.d.ts.map +1 -0
- package/dist/media/breakpoints.d.ts +2 -1
- package/dist/media/breakpoints.d.ts.map +1 -1
- package/dist/media/createNotificationTonePlayer.d.ts.map +1 -1
- package/dist/media/getCurrentFontSize.d.ts.map +1 -1
- package/dist/media/index.js +1 -1
- package/dist/media/mediaQueryConstants.d.ts +3 -0
- package/dist/media/mediaQueryConstants.d.ts.map +1 -0
- package/dist/media/responsive.d.ts +1 -1
- package/dist/media/responsive.d.ts.map +1 -1
- package/dist/media/useMatchMedia.d.ts.map +1 -1
- package/dist/media/useMediaQuery.d.ts.map +1 -1
- package/dist/metadata/baseMetaTypes.d.ts.map +1 -1
- package/dist/metadata/metadataTypes.d.ts +8 -7
- package/dist/metadata/metadataTypes.d.ts.map +1 -1
- package/dist/metadata/scalarTypeClassification.d.ts.map +1 -1
- package/dist/metadata/scalarTypeConstants.d.ts +21 -0
- package/dist/metadata/scalarTypeConstants.d.ts.map +1 -0
- package/dist/notifications/index.js +62 -62
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/notificationTypeConstants.d.ts +6 -0
- package/dist/notifications/notificationTypeConstants.d.ts.map +1 -0
- package/dist/notifications/notify.d.ts.map +1 -1
- package/dist/notifications/store.d.ts.map +1 -1
- package/dist/notifications/types.d.ts +2 -1
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/number-scale/index.js +47 -46
- package/dist/number-scale/index.js.map +1 -1
- package/dist/number-scale/marksPositionConstants.d.ts +4 -0
- package/dist/number-scale/marksPositionConstants.d.ts.map +1 -0
- package/dist/number-scale/numberScale.d.ts +1 -1
- package/dist/number-scale/numberScale.d.ts.map +1 -1
- package/dist/number-scale/types.d.ts +2 -1
- package/dist/number-scale/types.d.ts.map +1 -1
- package/dist/odata-service/builder.d.ts.map +1 -1
- package/dist/odata-service/columns.d.ts.map +1 -1
- package/dist/odata-service/entityOperationConstants.d.ts +4 -0
- package/dist/odata-service/entityOperationConstants.d.ts.map +1 -0
- package/dist/odata-service/filterDefinitionConstants.d.ts +24 -0
- package/dist/odata-service/filterDefinitionConstants.d.ts.map +1 -0
- package/dist/odata-service/filterDefinitions.d.ts +19 -17
- package/dist/odata-service/filterDefinitions.d.ts.map +1 -1
- package/dist/odata-service/filterOperationConstants.d.ts +14 -0
- package/dist/odata-service/filterOperationConstants.d.ts.map +1 -0
- package/dist/odata-service/filters.d.ts.map +1 -1
- package/dist/odata-service/formatters.d.ts.map +1 -1
- package/dist/odata-service/index.js +439 -433
- package/dist/odata-service/index.js.map +1 -1
- package/dist/odata-service/odataMetadataConstants.d.ts +8 -0
- package/dist/odata-service/odataMetadataConstants.d.ts.map +1 -0
- package/dist/odata-service/parser.d.ts +1 -3
- package/dist/odata-service/parser.d.ts.map +1 -1
- package/dist/odata-service/schema.d.ts.map +1 -1
- package/dist/odata-service/sorts.d.ts.map +1 -1
- package/dist/odata-service/sqlFilters.d.ts +10 -5
- package/dist/odata-service/sqlFilters.d.ts.map +1 -1
- package/dist/odata-service/types.d.ts +5 -3
- package/dist/odata-service/types.d.ts.map +1 -1
- package/dist/pwa/index.js +72 -71
- package/dist/pwa/index.js.map +1 -1
- package/dist/pwa/sw-cache-policy.js +47 -47
- package/dist/pwa/sw-cache-policy.js.map +1 -1
- package/dist/pwa/swCachePolicy.d.ts +5 -1
- package/dist/pwa/swCachePolicy.d.ts.map +1 -1
- package/dist/pwa/useBrowserOnlineStatus.d.ts.map +1 -1
- package/dist/query-client/broadcast.d.ts +4 -3
- package/dist/query-client/broadcast.d.ts.map +1 -1
- package/dist/query-client/createQueryRestoreSchedulerGuard.d.ts.map +1 -1
- package/dist/query-client/createQueryRestoreStorage.d.ts.map +1 -1
- package/dist/query-client/index.js +1 -1
- package/dist/query-client/invalidationBroadcast.d.ts +2 -1
- package/dist/query-client/invalidationBroadcast.d.ts.map +1 -1
- package/dist/query-client/persistence.d.ts +9 -6
- package/dist/query-client/persistence.d.ts.map +1 -1
- package/dist/query-client/queryCacheEventConstants.d.ts +11 -0
- package/dist/query-client/queryCacheEventConstants.d.ts.map +1 -0
- package/dist/query-client/queryClient.d.ts +2 -1
- package/dist/query-client/queryClient.d.ts.map +1 -1
- package/dist/query-client/queryMeta.d.ts.map +1 -1
- package/dist/query-client/sessionPersistenceConstants.d.ts +5 -0
- package/dist/query-client/sessionPersistenceConstants.d.ts.map +1 -0
- package/dist/query-client/sessionScoped.d.ts.map +1 -1
- package/dist/query-client/sessionScopedResetConstants.d.ts +4 -0
- package/dist/query-client/sessionScopedResetConstants.d.ts.map +1 -0
- package/dist/query-client/sessionScopedResetLifecycleTypes.d.ts +2 -1
- package/dist/query-client/sessionScopedResetLifecycleTypes.d.ts.map +1 -1
- package/dist/seo/index.js +0 -1
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/seo.d.ts +3 -2
- package/dist/seo/seo.d.ts.map +1 -1
- package/dist/seo/seoContentTypeConstants.d.ts +6 -0
- package/dist/seo/seoContentTypeConstants.d.ts.map +1 -0
- package/dist/seo/types.d.ts +2 -1
- package/dist/seo/types.d.ts.map +1 -1
- package/dist/session-storage/index.js +1 -1
- package/dist/table/cellSelection.d.ts.map +1 -1
- package/dist/table/columnSizing.d.ts +11 -3
- package/dist/table/columnSizing.d.ts.map +1 -1
- package/dist/table/index.d.ts +1 -0
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +102 -92
- package/dist/table/index.js.map +1 -1
- package/dist/table/odataAdapter.d.ts +3 -3
- package/dist/table/odataAdapter.d.ts.map +1 -1
- package/dist/table/resolveTableColumnsWidth.d.ts +9 -0
- package/dist/table/resolveTableColumnsWidth.d.ts.map +1 -0
- package/dist/table/selection.d.ts +2 -2
- package/dist/table/selection.d.ts.map +1 -1
- package/dist/table/tableColumnConstants.d.ts +5 -0
- package/dist/table/tableColumnConstants.d.ts.map +1 -0
- package/dist/table/tableSelectionConstants.d.ts +8 -0
- package/dist/table/tableSelectionConstants.d.ts.map +1 -0
- package/dist/table/tanStackFeatures.d.ts +8 -8
- package/dist/table/types.d.ts +6 -4
- package/dist/table/types.d.ts.map +1 -1
- package/dist/table/useTableRowSelection.d.ts +2 -2
- package/dist/table/useTableRowSelection.d.ts.map +1 -1
- package/dist/table-document/index.js +88 -87
- package/dist/table-document/index.js.map +1 -1
- package/dist/table-document/insertTableDocumentAxis.d.ts +2 -1
- package/dist/table-document/insertTableDocumentAxis.d.ts.map +1 -1
- package/dist/table-document/tableDocument.d.ts +2 -1
- package/dist/table-document/tableDocument.d.ts.map +1 -1
- package/dist/table-document/tableDocumentAxisGroups.d.ts +4 -3
- package/dist/table-document/tableDocumentAxisGroups.d.ts.map +1 -1
- package/dist/table-document/tableDocumentConstants.d.ts +8 -0
- package/dist/table-document/tableDocumentConstants.d.ts.map +1 -0
- package/dist/table-document/tableDocumentGeometry.d.ts.map +1 -1
- package/dist/three-scene/index.js +32 -32
- package/dist/three-scene/index.js.map +1 -1
- package/dist/three-scene/threeSceneAvailability.d.ts +4 -3
- package/dist/three-scene/threeSceneAvailability.d.ts.map +1 -1
- package/dist/three-scene/threeSceneConstants.d.ts +14 -0
- package/dist/three-scene/threeSceneConstants.d.ts.map +1 -0
- package/dist/three-scene/useThreeSceneAvailability.d.ts.map +1 -1
- package/dist/tree-table/index.js +1 -1
- package/dist/types/abapBooleanConstants.d.ts +4 -0
- package/dist/types/abapBooleanConstants.d.ts.map +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/types.d.ts +4 -2
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/valueStateConstants.d.ts +8 -0
- package/dist/types/valueStateConstants.d.ts.map +1 -0
- package/dist/utils/cloneFunctionStrategyConstants.d.ts +4 -0
- package/dist/utils/cloneFunctionStrategyConstants.d.ts.map +1 -0
- package/dist/utils/createLazyComponent.d.ts.map +1 -1
- package/dist/utils/deepCloneWithoutFunctions.d.ts +2 -1
- package/dist/utils/deepCloneWithoutFunctions.d.ts.map +1 -1
- package/dist/utils/deepCopyWithoutFunctions.d.ts +2 -1
- package/dist/utils/deepCopyWithoutFunctions.d.ts.map +1 -1
- package/dist/utils/index.js +2 -209
- package/dist/utils/keyboard.d.ts +2 -1
- package/dist/utils/keyboard.d.ts.map +1 -1
- package/dist/utils/keyboardConstants.d.ts +16 -0
- package/dist/utils/keyboardConstants.d.ts.map +1 -0
- package/dist/validators/index.js +3 -3
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/validateUrl.d.ts.map +1 -1
- package/dist/value-transformers/execute.d.ts.map +1 -1
- package/dist/value-transformers/index.js +9 -6
- package/dist/value-transformers/index.js.map +1 -1
- package/dist/value-transformers/types.d.ts +3 -2
- package/dist/value-transformers/types.d.ts.map +1 -1
- package/dist/value-transformers/valueTransformerConstants.d.ts +4 -0
- package/dist/value-transformers/valueTransformerConstants.d.ts.map +1 -0
- package/package.json +6 -5
- package/src/binary/README.mdx +1 -1
- package/src/dom/README.mdx +1 -1
- package/src/query-client/README.mdx +4 -4
- package/src/table/README.mdx +49 -23
- package/dist/chunks/dom-BK22UmgF.js.map +0 -1
- package/dist/chunks/formatDate-BUvpRI7H.js +0 -133
- package/dist/chunks/formatDate-BUvpRI7H.js.map +0 -1
- package/dist/chunks/formatters-rxriDRPk.js.map +0 -1
- package/dist/chunks/formulas-BXT_XBWI.js.map +0 -1
- package/dist/chunks/media-WK38KtMl.js +0 -191
- package/dist/chunks/media-WK38KtMl.js.map +0 -1
- package/dist/chunks/query-client-CVRfrYZM.js.map +0 -1
- package/dist/chunks/scalarTypeClassification-BZcFmIyR.js +0 -764
- package/dist/chunks/scalarTypeClassification-BZcFmIyR.js.map +0 -1
- package/dist/chunks/uuid-CUJPAbRY.js.map +0 -1
- package/dist/chunks/validate-DsUR-bFF.js +0 -608
- package/dist/chunks/validate-DsUR-bFF.js.map +0 -1
- package/dist/utils/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableSelectionConstants.d.ts","sourceRoot":"","sources":["../../src/table/tableSelectionConstants.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAChD,eAAO,MAAM,2BAA2B,WAAW,CAAC;AACpD,eAAO,MAAM,0BAA0B,UAAU,CAAC;AAElD,0FAA0F;AAC1F,eAAO,MAAM,sCAAsC,WAAW,CAAC;AAC/D,eAAO,MAAM,gDAAgD,qBAAqB,CAAC"}
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
* таблицы в `lib` и `ui` всегда использовали один и тот же набор generic-типов.
|
|
6
6
|
*/
|
|
7
7
|
export declare const foundationTableFeatures: {
|
|
8
|
-
columnOrderingFeature: import("@tanstack/table
|
|
9
|
-
columnPinningFeature: import("@tanstack/table
|
|
10
|
-
columnSizingFeature: import("@tanstack/table
|
|
11
|
-
columnResizingFeature: import("@tanstack/table
|
|
12
|
-
columnVisibilityFeature: import("@tanstack/table
|
|
13
|
-
rowSelectionFeature: import("@tanstack/table
|
|
14
|
-
rowExpandingFeature: import("@tanstack/table
|
|
15
|
-
expandedRowModel: (table: import("@tanstack/table
|
|
8
|
+
columnOrderingFeature: import("@tanstack/react-table").TableFeature;
|
|
9
|
+
columnPinningFeature: import("@tanstack/react-table").TableFeature;
|
|
10
|
+
columnSizingFeature: import("@tanstack/react-table").TableFeature;
|
|
11
|
+
columnResizingFeature: import("@tanstack/react-table").TableFeature;
|
|
12
|
+
columnVisibilityFeature: import("@tanstack/react-table").TableFeature;
|
|
13
|
+
rowSelectionFeature: import("@tanstack/react-table").TableFeature;
|
|
14
|
+
rowExpandingFeature: import("@tanstack/react-table").TableFeature;
|
|
15
|
+
expandedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
16
16
|
};
|
|
17
17
|
/** Generic-контракт features для публичных типов foundation-таблиц. */
|
|
18
18
|
export type FoundationTableFeatures = typeof foundationTableFeatures;
|
package/dist/table/types.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { type Cell, type Column, type ColumnDef, type ColumnVisibilityState, type Header, type Row, type RowData, type Table, type TableState } from "@tanstack/react-table";
|
|
2
2
|
import { type FormattersPipelineRuntimeField } from "../formatters/pipeline";
|
|
3
|
+
import { type TABLE_COLUMN_ALIGN_CENTER, type TABLE_COLUMN_ALIGN_LEFT, type TABLE_COLUMN_ALIGN_RIGHT } from "./tableColumnConstants";
|
|
4
|
+
import { type TABLE_CELL_SELECTION_ACTIVATION_DIRECT, type TABLE_CELL_SELECTION_ACTIVATION_PRIMARY_MODIFIER, type TABLE_SELECTION_MODE_MULTI, type TABLE_SELECTION_MODE_NONE, type TABLE_SELECTION_MODE_SINGLE } from "./tableSelectionConstants";
|
|
3
5
|
import { type FoundationTableFeatures } from "./tanStackFeatures";
|
|
4
6
|
/**
|
|
5
7
|
* Режим выбора строк таблицы.
|
|
6
8
|
*/
|
|
7
|
-
export type TableSelectionMode =
|
|
9
|
+
export type TableSelectionMode = typeof TABLE_SELECTION_MODE_NONE | typeof TABLE_SELECTION_MODE_SINGLE | typeof TABLE_SELECTION_MODE_MULTI;
|
|
8
10
|
/**
|
|
9
11
|
* Режим выбора ячеек таблицы.
|
|
10
12
|
*
|
|
@@ -18,7 +20,7 @@ export type TableCellSelectionMode = TableSelectionMode;
|
|
|
18
20
|
* `primary-modifier` означает Ctrl в Windows/Linux и Command в macOS. Такой
|
|
19
21
|
* контракт не привязывает consumer к конкретной платформе или клавиатуре.
|
|
20
22
|
*/
|
|
21
|
-
export type TableCellSelectionActivationMode =
|
|
23
|
+
export type TableCellSelectionActivationMode = typeof TABLE_CELL_SELECTION_ACTIVATION_DIRECT | typeof TABLE_CELL_SELECTION_ACTIVATION_PRIMARY_MODIFIER;
|
|
22
24
|
/** Устойчивые координаты выбранной ячейки без привязки к DOM или TanStack Row. */
|
|
23
25
|
export type TableCellCoordinates = Readonly<{
|
|
24
26
|
rowId: string;
|
|
@@ -41,7 +43,7 @@ export type TableSelectionModifierEvent = Readonly<{
|
|
|
41
43
|
/**
|
|
42
44
|
* Выравнивание содержимого ячейки таблицы.
|
|
43
45
|
*/
|
|
44
|
-
export type TableColumnAlign =
|
|
46
|
+
export type TableColumnAlign = typeof TABLE_COLUMN_ALIGN_LEFT | typeof TABLE_COLUMN_ALIGN_CENTER | typeof TABLE_COLUMN_ALIGN_RIGHT;
|
|
45
47
|
type TableColumnFormattingOptions = Omit<FormattersPipelineRuntimeField, "id" | "role" | "type" | "formulaExecutor" | "formattersPipelineExecutor">;
|
|
46
48
|
/**
|
|
47
49
|
* Форматирующий input-контракт generic-колонки.
|
|
@@ -64,7 +66,7 @@ export interface TableColumnMeta {
|
|
|
64
66
|
*
|
|
65
67
|
* Строка используется как CSS-значение, число трактуется как `em`.
|
|
66
68
|
*/
|
|
67
|
-
width?: number | "auto" | `${number}
|
|
69
|
+
width?: number | "auto" | `${number}%` | `${number}px` | `${number}em`;
|
|
68
70
|
/**
|
|
69
71
|
* Выравнивание содержимого заголовка и ячеек.
|
|
70
72
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/table/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,UAAU,EACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/table/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { RowSelectionState } from "@tanstack/react-table";
|
|
2
|
-
import { TableSelectionMode } from "./types";
|
|
1
|
+
import { type RowSelectionState } from "@tanstack/react-table";
|
|
2
|
+
import { type TableSelectionMode } from "./types";
|
|
3
3
|
interface UseTableRowSelectionParams<TData extends object> {
|
|
4
4
|
availableRowIds: readonly string[];
|
|
5
5
|
rowById: ReadonlyMap<string, TData>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableRowSelection.d.ts","sourceRoot":"","sources":["../../src/table/useTableRowSelection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"useTableRowSelection.d.ts","sourceRoot":"","sources":["../../src/table/useTableRowSelection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,UAAU,0BAA0B,CAAC,KAAK,SAAS,MAAM;IACxD,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,aAAa,EAAE,kBAAkB,CAAC;IAClC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,MAAM,EAAE,EAC1D,eAAe,EACf,OAAO,EACP,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,EAAE,0BAA0B,CAAC,KAAK,CAAC;;;kCAkH1B,MAAM,aAAa,OAAO;EAenC"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { n as e } from "../chunks/array-
|
|
1
|
+
import { n as e } from "../chunks/array-bd7LYFto.js";
|
|
2
2
|
//#region src/table-document/tableDocument.ts
|
|
3
|
-
var t = 2e4;
|
|
3
|
+
var t = 2e4, n = "body";
|
|
4
4
|
//#endregion
|
|
5
5
|
//#region src/table-document/tableDocumentGeometry.ts
|
|
6
|
-
function
|
|
6
|
+
function r(e, t) {
|
|
7
7
|
return e.row < t.row + t.rowSpan && t.row < e.row + e.rowSpan && e.column < t.column + t.columnSpan && t.column < e.column + e.columnSpan;
|
|
8
8
|
}
|
|
9
|
-
function
|
|
9
|
+
function i(e) {
|
|
10
10
|
let t = e.rows.length, n = e.columns.length;
|
|
11
11
|
if (e.version !== 1 || !t || !n || t * n > 2e4) throw Error("Недопустимый размер таблицы.");
|
|
12
12
|
if (!Number.isInteger(e.headerRowCount) || e.headerRowCount < 0 || e.headerRowCount > t) throw Error("Некорректное число строк заголовка.");
|
|
13
|
-
let r = /* @__PURE__ */ new Set(),
|
|
13
|
+
let r = /* @__PURE__ */ new Set(), i = (e) => {
|
|
14
14
|
if (!e || r.has(e)) throw Error("Идентификаторы строк, столбцов и ячеек должны быть уникальными.");
|
|
15
15
|
r.add(e);
|
|
16
16
|
};
|
|
17
|
-
for (let t of e.columns) if (
|
|
17
|
+
for (let t of e.columns) if (i(t.id), t.width !== null && (!Number.isFinite(t.width) || t.width <= 0)) throw Error("Некорректная ширина столбца.");
|
|
18
18
|
for (let t of e.rows) {
|
|
19
|
-
if (
|
|
20
|
-
t.cells.forEach((e) =>
|
|
19
|
+
if (i(t.id), t.cells.length !== n) throw Error("Все строки должны иметь одинаковое число ячеек.");
|
|
20
|
+
t.cells.forEach((e) => i(e.id));
|
|
21
21
|
}
|
|
22
22
|
let o = /* @__PURE__ */ new Set();
|
|
23
23
|
for (let t of e.merges) {
|
|
24
|
-
if (
|
|
24
|
+
if (a(e, t), t.rowSpan * t.columnSpan === 1) throw Error("Объединение должно содержать несколько ячеек.");
|
|
25
25
|
if (t.row < e.headerRowCount && t.row + t.rowSpan > e.headerRowCount) throw Error("Нельзя объединять заголовок с основной частью таблицы.");
|
|
26
26
|
for (let e = t.row; e < t.row + t.rowSpan; e++) for (let r = t.column; r < t.column + t.columnSpan; r++) {
|
|
27
27
|
let t = e * n + r;
|
|
@@ -30,7 +30,7 @@ function r(e) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
function
|
|
33
|
+
function a(e, t) {
|
|
34
34
|
if (![
|
|
35
35
|
t.row,
|
|
36
36
|
t.column,
|
|
@@ -38,55 +38,55 @@ function i(e, t) {
|
|
|
38
38
|
t.columnSpan
|
|
39
39
|
].every(Number.isInteger) || t.row < 0 || t.column < 0 || t.rowSpan < 1 || t.columnSpan < 1 || t.row + t.rowSpan > e.rows.length || t.column + t.columnSpan > e.columns.length) throw Error("Выделение выходит за границы таблицы.");
|
|
40
40
|
}
|
|
41
|
-
function
|
|
42
|
-
let
|
|
41
|
+
function o(e, t) {
|
|
42
|
+
let n = {
|
|
43
43
|
...t,
|
|
44
44
|
rowSpan: 1,
|
|
45
45
|
columnSpan: 1
|
|
46
46
|
};
|
|
47
|
-
return
|
|
47
|
+
return a(e, n), e.merges.find((e) => r(e, n)) ?? n;
|
|
48
48
|
}
|
|
49
|
-
function
|
|
50
|
-
let
|
|
51
|
-
row: Math.min(t.row,
|
|
52
|
-
column: Math.min(t.column,
|
|
53
|
-
rowSpan: Math.abs(t.row -
|
|
54
|
-
columnSpan: Math.abs(t.column -
|
|
49
|
+
function s(e, t, n) {
|
|
50
|
+
let i = {
|
|
51
|
+
row: Math.min(t.row, n.row),
|
|
52
|
+
column: Math.min(t.column, n.column),
|
|
53
|
+
rowSpan: Math.abs(t.row - n.row) + 1,
|
|
54
|
+
columnSpan: Math.abs(t.column - n.column) + 1
|
|
55
55
|
};
|
|
56
|
-
|
|
56
|
+
a(e, i);
|
|
57
57
|
let o = !0;
|
|
58
58
|
for (; o;) {
|
|
59
59
|
o = !1;
|
|
60
60
|
for (let t of e.merges) {
|
|
61
|
-
if (!
|
|
62
|
-
let e = Math.min(
|
|
63
|
-
(e !==
|
|
61
|
+
if (!r(i, t)) continue;
|
|
62
|
+
let e = Math.min(i.row, t.row), n = Math.min(i.column, t.column), a = Math.max(i.row + i.rowSpan, t.row + t.rowSpan) - e, s = Math.max(i.column + i.columnSpan, t.column + t.columnSpan) - n;
|
|
63
|
+
(e !== i.row || n !== i.column || a !== i.rowSpan || s !== i.columnSpan) && (i = {
|
|
64
64
|
row: e,
|
|
65
|
-
column:
|
|
66
|
-
rowSpan:
|
|
65
|
+
column: n,
|
|
66
|
+
rowSpan: a,
|
|
67
67
|
columnSpan: s
|
|
68
68
|
}, o = !0);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
return
|
|
71
|
+
return i;
|
|
72
72
|
}
|
|
73
73
|
//#endregion
|
|
74
74
|
//#region src/table-document/mergeTableDocumentCells.ts
|
|
75
|
-
function
|
|
76
|
-
|
|
77
|
-
let a =
|
|
75
|
+
function c(e, t, n) {
|
|
76
|
+
i(e);
|
|
77
|
+
let a = s(e, t, n);
|
|
78
78
|
if (a.rowSpan * a.columnSpan === 1) return e;
|
|
79
|
-
let
|
|
80
|
-
if (
|
|
79
|
+
let o = e.merges.filter((e) => r(e, a));
|
|
80
|
+
if (o.length === 1 && a.row === o[0].row && a.column === o[0].column && a.rowSpan === o[0].rowSpan && a.columnSpan === o[0].columnSpan) return e;
|
|
81
81
|
let c = {
|
|
82
82
|
...e,
|
|
83
|
-
merges: [...e.merges.filter((e) => !
|
|
83
|
+
merges: [...e.merges.filter((e) => !r(e, a)), a]
|
|
84
84
|
};
|
|
85
|
-
return
|
|
85
|
+
return i(c), c;
|
|
86
86
|
}
|
|
87
|
-
function
|
|
88
|
-
|
|
89
|
-
let n =
|
|
87
|
+
function l(e, t) {
|
|
88
|
+
i(e);
|
|
89
|
+
let n = o(e, t);
|
|
90
90
|
return n.rowSpan * n.columnSpan === 1 ? e : {
|
|
91
91
|
...e,
|
|
92
92
|
merges: e.merges.filter((e) => e !== n)
|
|
@@ -94,56 +94,56 @@ function c(e, t) {
|
|
|
94
94
|
}
|
|
95
95
|
//#endregion
|
|
96
96
|
//#region src/table-document/insertTableDocumentAxis.ts
|
|
97
|
-
function
|
|
98
|
-
|
|
99
|
-
let
|
|
100
|
-
if (!Number.isInteger(
|
|
101
|
-
if (
|
|
102
|
-
if (t === "row" && (
|
|
103
|
-
let
|
|
97
|
+
function u(e, t, r, a, o, s = n) {
|
|
98
|
+
i(e);
|
|
99
|
+
let c = t === "row" ? e.rows.length : e.columns.length;
|
|
100
|
+
if (!Number.isInteger(r) || r < 0 || r > c) throw Error("Некорректная позиция вставки.");
|
|
101
|
+
if (o.length !== (t === "row" ? e.columns.length : e.rows.length)) throw Error("Неверное число новых ячеек.");
|
|
102
|
+
if (t === "row" && (s === "header" ? r > e.headerRowCount : r < e.headerRowCount)) throw Error("Строка вставляется вне выбранной части таблицы.");
|
|
103
|
+
let l = t === "row" ? "rowSpan" : "columnSpan", u = e.merges.map((e) => r <= e[t] ? {
|
|
104
104
|
...e,
|
|
105
105
|
[t]: e[t] + 1
|
|
106
|
-
} :
|
|
106
|
+
} : r < e[t] + e[l] ? {
|
|
107
107
|
...e,
|
|
108
|
-
[
|
|
109
|
-
} : e),
|
|
108
|
+
[l]: e[l] + 1
|
|
109
|
+
} : e), d = t === "row" ? {
|
|
110
110
|
...e,
|
|
111
|
-
merges:
|
|
112
|
-
headerRowCount: e.headerRowCount + +(
|
|
111
|
+
merges: u,
|
|
112
|
+
headerRowCount: e.headerRowCount + +(s === "header"),
|
|
113
113
|
rows: [
|
|
114
|
-
...e.rows.slice(0,
|
|
114
|
+
...e.rows.slice(0, r),
|
|
115
115
|
{
|
|
116
|
-
id:
|
|
117
|
-
cells:
|
|
116
|
+
id: a,
|
|
117
|
+
cells: o
|
|
118
118
|
},
|
|
119
|
-
...e.rows.slice(
|
|
119
|
+
...e.rows.slice(r)
|
|
120
120
|
]
|
|
121
121
|
} : {
|
|
122
122
|
...e,
|
|
123
|
-
merges:
|
|
123
|
+
merges: u,
|
|
124
124
|
columns: [
|
|
125
|
-
...e.columns.slice(0,
|
|
125
|
+
...e.columns.slice(0, r),
|
|
126
126
|
{
|
|
127
|
-
id:
|
|
127
|
+
id: a,
|
|
128
128
|
width: null
|
|
129
129
|
},
|
|
130
|
-
...e.columns.slice(
|
|
130
|
+
...e.columns.slice(r)
|
|
131
131
|
],
|
|
132
132
|
rows: e.rows.map((e, t) => ({
|
|
133
133
|
...e,
|
|
134
134
|
cells: [
|
|
135
|
-
...e.cells.slice(0,
|
|
136
|
-
|
|
137
|
-
...e.cells.slice(
|
|
135
|
+
...e.cells.slice(0, r),
|
|
136
|
+
o[t],
|
|
137
|
+
...e.cells.slice(r)
|
|
138
138
|
]
|
|
139
139
|
}))
|
|
140
140
|
};
|
|
141
|
-
return
|
|
141
|
+
return i(d), d;
|
|
142
142
|
}
|
|
143
143
|
//#endregion
|
|
144
144
|
//#region src/table-document/updateTableDocumentCell.ts
|
|
145
|
-
function
|
|
146
|
-
return
|
|
145
|
+
function d(e, t, n) {
|
|
146
|
+
return a(e, {
|
|
147
147
|
...t,
|
|
148
148
|
rowSpan: 1,
|
|
149
149
|
columnSpan: 1
|
|
@@ -160,68 +160,69 @@ function u(e, t, n) {
|
|
|
160
160
|
}
|
|
161
161
|
//#endregion
|
|
162
162
|
//#region src/table-document/tableDocumentAxisGroups.ts
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
163
|
+
var f = "Группа не найдена.";
|
|
164
|
+
function p(e, t) {
|
|
165
|
+
i(e);
|
|
166
|
+
let n = t === "row" ? e.rows.length : e.columns.length, r = /* @__PURE__ */ new Set();
|
|
166
167
|
for (let n of e.merges) {
|
|
167
168
|
let e = t === "row" ? n.rowSpan : n.columnSpan;
|
|
168
|
-
for (let
|
|
169
|
+
for (let i = 1; i < e; i++) r.add(n[t] + i);
|
|
169
170
|
}
|
|
170
171
|
let a = [], o = 0;
|
|
171
|
-
for (let e = 1; e <= n; e++) (e === n || !
|
|
172
|
+
for (let e = 1; e <= n; e++) (e === n || !r.has(e)) && (a.push({
|
|
172
173
|
start: o,
|
|
173
174
|
count: e - o
|
|
174
175
|
}), o = e);
|
|
175
176
|
return a;
|
|
176
177
|
}
|
|
177
|
-
function
|
|
178
|
-
let
|
|
179
|
-
if (!
|
|
178
|
+
function m(e, t, n) {
|
|
179
|
+
let r = p(e, t).find((e) => n >= e.start && n < e.start + e.count);
|
|
180
|
+
if (!r) throw Error(f);
|
|
180
181
|
let a = t === "row" ? e.rows.length : e.columns.length;
|
|
181
|
-
if (
|
|
182
|
-
let o =
|
|
182
|
+
if (r.count === a) throw Error("В таблице должна остаться хотя бы одна строка и один столбец.");
|
|
183
|
+
let o = r.start + r.count, s = e.merges.filter((e) => e[t] < r.start || e[t] >= o).map((e) => e[t] < o ? e : {
|
|
183
184
|
...e,
|
|
184
|
-
[t]: e[t] -
|
|
185
|
+
[t]: e[t] - r.count
|
|
185
186
|
}), c = t === "row" ? {
|
|
186
187
|
...e,
|
|
187
188
|
merges: s,
|
|
188
|
-
rows: e.rows.filter((e, t) => t <
|
|
189
|
-
headerRowCount: e.headerRowCount - (
|
|
189
|
+
rows: e.rows.filter((e, t) => t < r.start || t >= o),
|
|
190
|
+
headerRowCount: e.headerRowCount - (r.start < e.headerRowCount ? r.count : 0)
|
|
190
191
|
} : {
|
|
191
192
|
...e,
|
|
192
193
|
merges: s,
|
|
193
|
-
columns: e.columns.filter((e, t) => t <
|
|
194
|
+
columns: e.columns.filter((e, t) => t < r.start || t >= o),
|
|
194
195
|
rows: e.rows.map((e) => ({
|
|
195
196
|
...e,
|
|
196
|
-
cells: e.cells.filter((e, t) => t <
|
|
197
|
+
cells: e.cells.filter((e, t) => t < r.start || t >= o)
|
|
197
198
|
}))
|
|
198
199
|
};
|
|
199
|
-
return
|
|
200
|
+
return i(c), c;
|
|
200
201
|
}
|
|
201
|
-
function
|
|
202
|
-
let o =
|
|
203
|
-
if (s < 0) throw Error(
|
|
202
|
+
function h(t, n, r, a) {
|
|
203
|
+
let o = p(t, n), s = o.findIndex((e) => r >= e.start && r < e.start + e.count);
|
|
204
|
+
if (s < 0) throw Error(f);
|
|
204
205
|
let c = s + a;
|
|
205
206
|
if (c < 0 || c >= o.length || n === "row" && o[s].start < t.headerRowCount != o[c].start < t.headerRowCount) return t;
|
|
206
|
-
let l = e(o, s, a === -1 ? "up" : "down").flatMap((e) => Array.from({ length: e.count }, (t, n) => e.start + n)), u = new Map(l.map((e, t) => [e, t])),
|
|
207
|
+
let l = e(o, s, a === -1 ? "up" : "down").flatMap((e) => Array.from({ length: e.count }, (t, n) => e.start + n)), u = new Map(l.map((e, t) => [e, t])), d = t.merges.map((e) => ({
|
|
207
208
|
...e,
|
|
208
209
|
[n]: u.get(e[n]) ?? e[n]
|
|
209
|
-
})),
|
|
210
|
+
})), m = n === "row" ? {
|
|
210
211
|
...t,
|
|
211
|
-
merges:
|
|
212
|
+
merges: d,
|
|
212
213
|
rows: l.map((e) => t.rows[e])
|
|
213
214
|
} : {
|
|
214
215
|
...t,
|
|
215
|
-
merges:
|
|
216
|
+
merges: d,
|
|
216
217
|
columns: l.map((e) => t.columns[e]),
|
|
217
218
|
rows: t.rows.map((e) => ({
|
|
218
219
|
...e,
|
|
219
220
|
cells: l.map((t) => e.cells[t])
|
|
220
221
|
}))
|
|
221
222
|
};
|
|
222
|
-
return
|
|
223
|
+
return i(m), m;
|
|
223
224
|
}
|
|
224
225
|
//#endregion
|
|
225
|
-
export { t as TABLE_DOCUMENT_MAX_CELLS,
|
|
226
|
+
export { t as TABLE_DOCUMENT_MAX_CELLS, i as assertTableDocument, a as assertTableDocumentRange, m as deleteTableDocumentAxisGroup, s as expandTableDocumentRange, p as getTableDocumentAxisGroups, o as getTableDocumentCellRange, u as insertTableDocumentAxis, c as mergeTableDocumentCells, h as moveTableDocumentAxisGroup, l as splitTableDocumentCell, r as tableDocumentRangesIntersect, d as updateTableDocumentCell };
|
|
226
227
|
|
|
227
228
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/table-document/tableDocument.ts","../../src/table-document/tableDocumentGeometry.ts","../../src/table-document/mergeTableDocumentCells.ts","../../src/table-document/insertTableDocumentAxis.ts","../../src/table-document/updateTableDocumentCell.ts","../../src/table-document/tableDocumentAxisGroups.ts"],"sourcesContent":["/** Координаты относятся к полной сетке, включая скрытые объединением ячейки. */\nexport type TableDocumentPosition = { readonly row: number; readonly column: number };\n\n/** Прямоугольная область; spans всегда положительные целые числа. */\nexport type TableDocumentRange = TableDocumentPosition & { readonly rowSpan: number; readonly columnSpan: number };\n\n/** Значение принадлежит приложению; ядро никогда не преобразует и не объединяет содержимое. */\nexport type TableDocumentCell<T> = { readonly id: string; readonly value: T };\nexport type TableDocumentRow<T> = { readonly id: string; readonly cells: readonly TableDocumentCell<T>[] };\nexport type TableDocumentColumn = { readonly id: string; readonly width: number | null };\n\n/**\n * Документ редактора, независимый от TanStack и DOM. Полная матрица хранит все\n * значения; merges содержит только непересекающиеся видимые объединения.\n * Это исключает устаревшие spans у скрытых ячеек после повторного merge/split.\n */\nexport type TableDocument<T> = {\n\treadonly version: 1;\n\treadonly caption: string;\n\treadonly columns: readonly TableDocumentColumn[];\n\treadonly rows: readonly TableDocumentRow<T>[];\n\treadonly merges: readonly TableDocumentRange[];\n\treadonly headerRowCount: number;\n\treadonly hideHeaders: boolean;\n\treadonly showRowNumbers: boolean;\n};\n\n/** Лимит защищает проверки геометрии и UI от случайно огромной сетки. */\nexport const TABLE_DOCUMENT_MAX_CELLS = 20_000;\n","import { TABLE_DOCUMENT_MAX_CELLS, type TableDocument, type TableDocumentPosition, type TableDocumentRange } from \"./tableDocument\";\n\n/** Проверяет пересечение двух включительных прямоугольников полной сетки. */\nexport function tableDocumentRangesIntersect(a: TableDocumentRange, b: TableDocumentRange): boolean {\n\treturn (\n\t\ta.row < b.row + b.rowSpan && b.row < a.row + a.rowSpan && a.column < b.column + b.columnSpan && b.column < a.column + a.columnSpan\n\t);\n}\n\n/** Fail-closed инварианты для команд и внешней runtime-schema приложения. */\nexport function assertTableDocument<T>(document: TableDocument<T>): void {\n\tconst height = document.rows.length;\n\tconst width = document.columns.length;\n\tif (document.version !== 1 || !height || !width || height * width > TABLE_DOCUMENT_MAX_CELLS)\n\t\tthrow new Error(\"Недопустимый размер таблицы.\");\n\tif (!Number.isInteger(document.headerRowCount) || document.headerRowCount < 0 || document.headerRowCount > height)\n\t\tthrow new Error(\"Некорректное число строк заголовка.\");\n\tconst identities = new Set<string>();\n\tconst checkId = (id: string) => {\n\t\tif (!id || identities.has(id)) throw new Error(\"Идентификаторы строк, столбцов и ячеек должны быть уникальными.\");\n\t\tidentities.add(id);\n\t};\n\tfor (const column of document.columns) {\n\t\tcheckId(column.id);\n\t\tif (column.width !== null && (!Number.isFinite(column.width) || column.width <= 0)) throw new Error(\"Некорректная ширина столбца.\");\n\t}\n\tfor (const row of document.rows) {\n\t\tcheckId(row.id);\n\t\tif (row.cells.length !== width) throw new Error(\"Все строки должны иметь одинаковое число ячеек.\");\n\t\trow.cells.forEach((cell) => checkId(cell.id));\n\t}\n\tconst occupied = new Set<number>();\n\tfor (const merge of document.merges) {\n\t\tassertTableDocumentRange(document, merge);\n\t\tif (merge.rowSpan * merge.columnSpan === 1) throw new Error(\"Объединение должно содержать несколько ячеек.\");\n\t\tif (merge.row < document.headerRowCount && merge.row + merge.rowSpan > document.headerRowCount)\n\t\t\tthrow new Error(\"Нельзя объединять заголовок с основной частью таблицы.\");\n\t\tfor (let r = merge.row; r < merge.row + merge.rowSpan; r++) {\n\t\t\tfor (let c = merge.column; c < merge.column + merge.columnSpan; c++) {\n\t\t\t\tconst key = r * width + c;\n\t\t\t\tif (occupied.has(key)) throw new Error(\"Объединённые области пересекаются.\");\n\t\t\t\toccupied.add(key);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/** Проверяет границы до выполнения команды, не исправляя ошибочный ввод молча. */\nexport function assertTableDocumentRange<T>(document: TableDocument<T>, range: TableDocumentRange): void {\n\tif (\n\t\t![range.row, range.column, range.rowSpan, range.columnSpan].every(Number.isInteger) ||\n\t\trange.row < 0 ||\n\t\trange.column < 0 ||\n\t\trange.rowSpan < 1 ||\n\t\trange.columnSpan < 1 ||\n\t\trange.row + range.rowSpan > document.rows.length ||\n\t\trange.column + range.columnSpan > document.columns.length\n\t)\n\t\tthrow new Error(\"Выделение выходит за границы таблицы.\");\n}\n\n/** Возвращает видимый anchor для любой позиции, включая покрытую объединением. */\nexport function getTableDocumentCellRange<T>(document: TableDocument<T>, position: TableDocumentPosition): TableDocumentRange {\n\tconst point = { ...position, rowSpan: 1, columnSpan: 1 };\n\tassertTableDocumentRange(document, point);\n\treturn document.merges.find((merge) => tableDocumentRangesIntersect(merge, point)) ?? point;\n}\n\n/**\n * Замыкает выделение до неподвижной точки. Повторный обход обязателен: новая\n * строка прямоугольника может пересечь ещё одно объединение вне исходной области.\n */\nexport function expandTableDocumentRange<T>(\n\tdocument: TableDocument<T>,\n\tstart: TableDocumentPosition,\n\tend: TableDocumentPosition\n): TableDocumentRange {\n\tlet range = {\n\t\trow: Math.min(start.row, end.row),\n\t\tcolumn: Math.min(start.column, end.column),\n\t\trowSpan: Math.abs(start.row - end.row) + 1,\n\t\tcolumnSpan: Math.abs(start.column - end.column) + 1\n\t};\n\tassertTableDocumentRange(document, range);\n\tlet changed = true;\n\twhile (changed) {\n\t\tchanged = false;\n\t\tfor (const merge of document.merges) {\n\t\t\tif (!tableDocumentRangesIntersect(range, merge)) continue;\n\t\t\tconst row = Math.min(range.row, merge.row);\n\t\t\tconst column = Math.min(range.column, merge.column);\n\t\t\tconst rowSpan = Math.max(range.row + range.rowSpan, merge.row + merge.rowSpan) - row;\n\t\t\tconst columnSpan = Math.max(range.column + range.columnSpan, merge.column + merge.columnSpan) - column;\n\t\t\tif (row !== range.row || column !== range.column || rowSpan !== range.rowSpan || columnSpan !== range.columnSpan) {\n\t\t\t\trange = { row, column, rowSpan, columnSpan };\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t}\n\t}\n\treturn range;\n}\n","import { type TableDocument, type TableDocumentPosition } from \"./tableDocument\";\nimport {\n\tassertTableDocument,\n\texpandTableDocumentRange,\n\tgetTableDocumentCellRange,\n\ttableDocumentRangesIntersect\n} from \"./tableDocumentGeometry\";\n\n/** Объединяет геометрию; исходные значения и identities всех ячеек остаются неизменными. */\nexport function mergeTableDocumentCells<T>(\n\tdocument: TableDocument<T>,\n\tstart: TableDocumentPosition,\n\tend: TableDocumentPosition\n): TableDocument<T> {\n\tassertTableDocument(document);\n\tconst range = expandTableDocumentRange(document, start, end);\n\tif (range.rowSpan * range.columnSpan === 1) return document;\n\tconst intersected = document.merges.filter((merge) => tableDocumentRangesIntersect(merge, range));\n\tif (\n\t\tintersected.length === 1 &&\n\t\trange.row === intersected[0].row &&\n\t\trange.column === intersected[0].column &&\n\t\trange.rowSpan === intersected[0].rowSpan &&\n\t\trange.columnSpan === intersected[0].columnSpan\n\t)\n\t\treturn document;\n\tconst result = { ...document, merges: [...document.merges.filter((merge) => !tableDocumentRangesIntersect(merge, range)), range] };\n\tassertTableDocument(result);\n\treturn result;\n}\n\n/** Разъединяет область целиком; скрытые значения становятся видны без восстановления из копий. */\nexport function splitTableDocumentCell<T>(document: TableDocument<T>, position: TableDocumentPosition): TableDocument<T> {\n\tassertTableDocument(document);\n\tconst range = getTableDocumentCellRange(document, position);\n\tif (range.rowSpan * range.columnSpan === 1) return document;\n\treturn { ...document, merges: document.merges.filter((merge) => merge !== range) };\n}\n","import { type TableDocument, type TableDocumentCell } from \"./tableDocument\";\nimport { assertTableDocument } from \"./tableDocumentGeometry\";\n\n/**\n * Вставка внутрь объединения увеличивает его span; вставка перед anchor сдвигает\n * область. ID и значения создаются вызывающим кодом до изменения React state.\n */\nexport function insertTableDocumentAxis<T>(\n\tdocument: TableDocument<T>,\n\taxis: \"row\" | \"column\",\n\tindex: number,\n\tid: string,\n\tcells: readonly TableDocumentCell<T>[],\n\tsection: \"header\" | \"body\" = \"body\"\n): TableDocument<T> {\n\tassertTableDocument(document);\n\tconst count = axis === \"row\" ? document.rows.length : document.columns.length;\n\tif (!Number.isInteger(index) || index < 0 || index > count) throw new Error(\"Некорректная позиция вставки.\");\n\tif (cells.length !== (axis === \"row\" ? document.columns.length : document.rows.length)) throw new Error(\"Неверное число новых ячеек.\");\n\tif (axis === \"row\" && (section === \"header\" ? index > document.headerRowCount : index < document.headerRowCount))\n\t\tthrow new Error(\"Строка вставляется вне выбранной части таблицы.\");\n\tconst spanKey = axis === \"row\" ? \"rowSpan\" : \"columnSpan\";\n\tconst merges = document.merges.map((merge) =>\n\t\tindex <= merge[axis]\n\t\t\t? { ...merge, [axis]: merge[axis] + 1 }\n\t\t\t: index < merge[axis] + merge[spanKey]\n\t\t\t\t? { ...merge, [spanKey]: merge[spanKey] + 1 }\n\t\t\t\t: merge\n\t);\n\tconst result: TableDocument<T> =\n\t\taxis === \"row\"\n\t\t\t? {\n\t\t\t\t\t...document,\n\t\t\t\t\tmerges,\n\t\t\t\t\theaderRowCount: document.headerRowCount + (section === \"header\" ? 1 : 0),\n\t\t\t\t\trows: [...document.rows.slice(0, index), { id, cells }, ...document.rows.slice(index)]\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\t...document,\n\t\t\t\t\tmerges,\n\t\t\t\t\tcolumns: [...document.columns.slice(0, index), { id, width: null }, ...document.columns.slice(index)],\n\t\t\t\t\trows: document.rows.map((row, r) => ({\n\t\t\t\t\t\t...row,\n\t\t\t\t\t\tcells: [...row.cells.slice(0, index), cells[r], ...row.cells.slice(index)]\n\t\t\t\t\t}))\n\t\t\t\t};\n\tassertTableDocument(result);\n\treturn result;\n}\n","import { type TableDocument, type TableDocumentPosition } from \"./tableDocument\";\nimport { assertTableDocumentRange } from \"./tableDocumentGeometry\";\n\n/** Меняет ровно одну логическую ячейку; преобразование rich text/документов выполняет приложение. */\nexport function updateTableDocumentCell<T>(document: TableDocument<T>, position: TableDocumentPosition, value: T): TableDocument<T> {\n\tassertTableDocumentRange(document, { ...position, rowSpan: 1, columnSpan: 1 });\n\tif (Object.is(document.rows[position.row].cells[position.column].value, value)) return document;\n\treturn {\n\t\t...document,\n\t\trows: document.rows.map((row, r) =>\n\t\t\tr !== position.row ? row : { ...row, cells: row.cells.map((cell, c) => (c !== position.column ? cell : { ...cell, value })) }\n\t\t)\n\t};\n}\n","import { moveArrayItemByIndex } from \"../array\";\n\nimport { type TableDocument } from \"./tableDocument\";\nimport { assertTableDocument } from \"./tableDocumentGeometry\";\n\n/** Неразрывная группа строк/столбцов; применима к reorder и подтверждению удаления. */\nexport type TableDocumentAxisGroup = { readonly start: number; readonly count: number };\n\n/** Находит безопасные границы без случайных ID и без повторного учёта скрытых spans. */\nexport function getTableDocumentAxisGroups<T>(document: TableDocument<T>, axis: \"row\" | \"column\"): readonly TableDocumentAxisGroup[] {\n\tassertTableDocument(document);\n\tconst length = axis === \"row\" ? document.rows.length : document.columns.length;\n\tconst blocked = new Set<number>();\n\tfor (const merge of document.merges) {\n\t\tconst span = axis === \"row\" ? merge.rowSpan : merge.columnSpan;\n\t\tfor (let offset = 1; offset < span; offset++) blocked.add(merge[axis] + offset);\n\t}\n\tconst groups: TableDocumentAxisGroup[] = [];\n\tlet start = 0;\n\tfor (let i = 1; i <= length; i++) {\n\t\tif (i === length || !blocked.has(i)) {\n\t\t\tgroups.push({ start, count: i - start });\n\t\t\tstart = i;\n\t\t}\n\t}\n\treturn groups;\n}\n\n/** Удаляет только явно выбранную неразрывную группу; UI обязан показать её размер до подтверждения. */\nexport function deleteTableDocumentAxisGroup<T>(document: TableDocument<T>, axis: \"row\" | \"column\", index: number): TableDocument<T> {\n\tconst group = getTableDocumentAxisGroups(document, axis).find((item) => index >= item.start && index < item.start + item.count);\n\tif (!group) throw new Error(\"Группа не найдена.\");\n\tconst length = axis === \"row\" ? document.rows.length : document.columns.length;\n\tif (group.count === length) throw new Error(\"В таблице должна остаться хотя бы одна строка и один столбец.\");\n\tconst end = group.start + group.count;\n\tconst merges = document.merges\n\t\t.filter((merge) => merge[axis] < group.start || merge[axis] >= end)\n\t\t.map((merge) => (merge[axis] < end ? merge : { ...merge, [axis]: merge[axis] - group.count }));\n\tconst result: TableDocument<T> =\n\t\taxis === \"row\"\n\t\t\t? {\n\t\t\t\t\t...document,\n\t\t\t\t\tmerges,\n\t\t\t\t\trows: document.rows.filter((_, r) => r < group.start || r >= end),\n\t\t\t\t\theaderRowCount: document.headerRowCount - (group.start < document.headerRowCount ? group.count : 0)\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\t...document,\n\t\t\t\t\tmerges,\n\t\t\t\t\tcolumns: document.columns.filter((_, c) => c < group.start || c >= end),\n\t\t\t\t\trows: document.rows.map((row) => ({ ...row, cells: row.cells.filter((_, c) => c < group.start || c >= end) }))\n\t\t\t\t};\n\tassertTableDocument(result);\n\treturn result;\n}\n\n/** Меняет местами соседние неразрывные группы, сохраняя порядок внутри объединений. */\nexport function moveTableDocumentAxisGroup<T>(\n\tdocument: TableDocument<T>,\n\taxis: \"row\" | \"column\",\n\tindex: number,\n\tdirection: -1 | 1\n): TableDocument<T> {\n\tconst groups = getTableDocumentAxisGroups(document, axis);\n\tconst current = groups.findIndex((item) => index >= item.start && index < item.start + item.count);\n\tif (current < 0) throw new Error(\"Группа не найдена.\");\n\tconst neighbor = current + direction;\n\tif (neighbor < 0 || neighbor >= groups.length) return document;\n\tif (axis === \"row\" && groups[current].start < document.headerRowCount !== groups[neighbor].start < document.headerRowCount)\n\t\treturn document;\n\tconst ordered = moveArrayItemByIndex(groups, current, direction === -1 ? \"up\" : \"down\");\n\tconst indices = ordered.flatMap((group) => Array.from({ length: group.count }, (_, offset) => group.start + offset));\n\tconst inverse = new Map(indices.map((oldIndex, newIndex) => [oldIndex, newIndex]));\n\tconst merges = document.merges.map((merge) => ({ ...merge, [axis]: inverse.get(merge[axis]) ?? merge[axis] }));\n\tconst result =\n\t\taxis === \"row\"\n\t\t\t? { ...document, merges, rows: indices.map((i) => document.rows[i]) }\n\t\t\t: {\n\t\t\t\t\t...document,\n\t\t\t\t\tmerges,\n\t\t\t\t\tcolumns: indices.map((i) => document.columns[i]),\n\t\t\t\t\trows: document.rows.map((row) => ({ ...row, cells: indices.map((i) => row.cells[i]) }))\n\t\t\t\t};\n\tassertTableDocument(result);\n\treturn result;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/table-document/tableDocument.ts","../../src/table-document/tableDocumentConstants.ts","../../src/table-document/tableDocumentGeometry.ts","../../src/table-document/mergeTableDocumentCells.ts","../../src/table-document/insertTableDocumentAxis.ts","../../src/table-document/updateTableDocumentCell.ts","../../src/table-document/tableDocumentAxisGroups.ts"],"sourcesContent":["import { type TABLE_DOCUMENT_VERSION } from \"./tableDocumentConstants\";\n\n/** Координаты относятся к полной сетке, включая скрытые объединением ячейки. */\nexport type TableDocumentPosition = { readonly row: number; readonly column: number };\n\n/** Прямоугольная область; spans всегда положительные целые числа. */\nexport type TableDocumentRange = TableDocumentPosition & { readonly rowSpan: number; readonly columnSpan: number };\n\n/** Значение принадлежит приложению; ядро никогда не преобразует и не объединяет содержимое. */\nexport type TableDocumentCell<T> = { readonly id: string; readonly value: T };\nexport type TableDocumentRow<T> = { readonly id: string; readonly cells: readonly TableDocumentCell<T>[] };\nexport type TableDocumentColumn = { readonly id: string; readonly width: number | null };\n\n/**\n * Документ редактора, независимый от TanStack и DOM. Полная матрица хранит все\n * значения; merges содержит только непересекающиеся видимые объединения.\n * Это исключает устаревшие spans у скрытых ячеек после повторного merge/split.\n */\nexport type TableDocument<T> = {\n\treadonly version: typeof TABLE_DOCUMENT_VERSION;\n\treadonly caption: string;\n\treadonly columns: readonly TableDocumentColumn[];\n\treadonly rows: readonly TableDocumentRow<T>[];\n\treadonly merges: readonly TableDocumentRange[];\n\treadonly headerRowCount: number;\n\treadonly hideHeaders: boolean;\n\treadonly showRowNumbers: boolean;\n};\n\n/** Лимит защищает проверки геометрии и UI от случайно огромной сетки. */\nexport const TABLE_DOCUMENT_MAX_CELLS = 20_000;\n","/** Версия и координатные оси относятся к формату документа, а не к текущему UI. */\nexport const TABLE_DOCUMENT_VERSION = 1;\nexport const TABLE_DOCUMENT_AXIS_ROW = \"row\";\nexport const TABLE_DOCUMENT_AXIS_COLUMN = \"column\";\n\n/** Раздел вставки сохраняет границу между заголовком и основной частью таблицы. */\nexport const TABLE_DOCUMENT_SECTION_HEADER = \"header\";\nexport const TABLE_DOCUMENT_SECTION_BODY = \"body\";\n","import { TABLE_DOCUMENT_MAX_CELLS, type TableDocument, type TableDocumentPosition, type TableDocumentRange } from \"./tableDocument\";\nimport { TABLE_DOCUMENT_VERSION } from \"./tableDocumentConstants\";\n\n/** Проверяет пересечение двух включительных прямоугольников полной сетки. */\nexport function tableDocumentRangesIntersect(a: TableDocumentRange, b: TableDocumentRange): boolean {\n\treturn (\n\t\ta.row < b.row + b.rowSpan && b.row < a.row + a.rowSpan && a.column < b.column + b.columnSpan && b.column < a.column + a.columnSpan\n\t);\n}\n\n/** Fail-closed инварианты для команд и внешней runtime-schema приложения. */\nexport function assertTableDocument<T>(document: TableDocument<T>): void {\n\tconst height = document.rows.length;\n\tconst width = document.columns.length;\n\tif (document.version !== TABLE_DOCUMENT_VERSION || !height || !width || height * width > TABLE_DOCUMENT_MAX_CELLS)\n\t\tthrow new Error(\"Недопустимый размер таблицы.\");\n\tif (!Number.isInteger(document.headerRowCount) || document.headerRowCount < 0 || document.headerRowCount > height)\n\t\tthrow new Error(\"Некорректное число строк заголовка.\");\n\tconst identities = new Set<string>();\n\tconst checkId = (id: string) => {\n\t\tif (!id || identities.has(id)) throw new Error(\"Идентификаторы строк, столбцов и ячеек должны быть уникальными.\");\n\t\tidentities.add(id);\n\t};\n\tfor (const column of document.columns) {\n\t\tcheckId(column.id);\n\t\tif (column.width !== null && (!Number.isFinite(column.width) || column.width <= 0)) throw new Error(\"Некорректная ширина столбца.\");\n\t}\n\tfor (const row of document.rows) {\n\t\tcheckId(row.id);\n\t\tif (row.cells.length !== width) throw new Error(\"Все строки должны иметь одинаковое число ячеек.\");\n\t\trow.cells.forEach((cell) => checkId(cell.id));\n\t}\n\tconst occupied = new Set<number>();\n\tfor (const merge of document.merges) {\n\t\tassertTableDocumentRange(document, merge);\n\t\tif (merge.rowSpan * merge.columnSpan === 1) throw new Error(\"Объединение должно содержать несколько ячеек.\");\n\t\tif (merge.row < document.headerRowCount && merge.row + merge.rowSpan > document.headerRowCount)\n\t\t\tthrow new Error(\"Нельзя объединять заголовок с основной частью таблицы.\");\n\t\tfor (let r = merge.row; r < merge.row + merge.rowSpan; r++) {\n\t\t\tfor (let c = merge.column; c < merge.column + merge.columnSpan; c++) {\n\t\t\t\tconst key = r * width + c;\n\t\t\t\tif (occupied.has(key)) throw new Error(\"Объединённые области пересекаются.\");\n\t\t\t\toccupied.add(key);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/** Проверяет границы до выполнения команды, не исправляя ошибочный ввод молча. */\nexport function assertTableDocumentRange<T>(document: TableDocument<T>, range: TableDocumentRange): void {\n\tif (\n\t\t![range.row, range.column, range.rowSpan, range.columnSpan].every(Number.isInteger) ||\n\t\trange.row < 0 ||\n\t\trange.column < 0 ||\n\t\trange.rowSpan < 1 ||\n\t\trange.columnSpan < 1 ||\n\t\trange.row + range.rowSpan > document.rows.length ||\n\t\trange.column + range.columnSpan > document.columns.length\n\t)\n\t\tthrow new Error(\"Выделение выходит за границы таблицы.\");\n}\n\n/** Возвращает видимый anchor для любой позиции, включая покрытую объединением. */\nexport function getTableDocumentCellRange<T>(document: TableDocument<T>, position: TableDocumentPosition): TableDocumentRange {\n\tconst point = { ...position, rowSpan: 1, columnSpan: 1 };\n\tassertTableDocumentRange(document, point);\n\treturn document.merges.find((merge) => tableDocumentRangesIntersect(merge, point)) ?? point;\n}\n\n/**\n * Замыкает выделение до неподвижной точки. Повторный обход обязателен: новая\n * строка прямоугольника может пересечь ещё одно объединение вне исходной области.\n */\nexport function expandTableDocumentRange<T>(\n\tdocument: TableDocument<T>,\n\tstart: TableDocumentPosition,\n\tend: TableDocumentPosition\n): TableDocumentRange {\n\tlet range = {\n\t\trow: Math.min(start.row, end.row),\n\t\tcolumn: Math.min(start.column, end.column),\n\t\trowSpan: Math.abs(start.row - end.row) + 1,\n\t\tcolumnSpan: Math.abs(start.column - end.column) + 1\n\t};\n\tassertTableDocumentRange(document, range);\n\tlet changed = true;\n\twhile (changed) {\n\t\tchanged = false;\n\t\tfor (const merge of document.merges) {\n\t\t\tif (!tableDocumentRangesIntersect(range, merge)) continue;\n\t\t\tconst row = Math.min(range.row, merge.row);\n\t\t\tconst column = Math.min(range.column, merge.column);\n\t\t\tconst rowSpan = Math.max(range.row + range.rowSpan, merge.row + merge.rowSpan) - row;\n\t\t\tconst columnSpan = Math.max(range.column + range.columnSpan, merge.column + merge.columnSpan) - column;\n\t\t\tif (row !== range.row || column !== range.column || rowSpan !== range.rowSpan || columnSpan !== range.columnSpan) {\n\t\t\t\trange = { row, column, rowSpan, columnSpan };\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t}\n\t}\n\treturn range;\n}\n","import { type TableDocument, type TableDocumentPosition } from \"./tableDocument\";\nimport {\n\tassertTableDocument,\n\texpandTableDocumentRange,\n\tgetTableDocumentCellRange,\n\ttableDocumentRangesIntersect\n} from \"./tableDocumentGeometry\";\n\n/** Объединяет геометрию; исходные значения и identities всех ячеек остаются неизменными. */\nexport function mergeTableDocumentCells<T>(\n\tdocument: TableDocument<T>,\n\tstart: TableDocumentPosition,\n\tend: TableDocumentPosition\n): TableDocument<T> {\n\tassertTableDocument(document);\n\tconst range = expandTableDocumentRange(document, start, end);\n\tif (range.rowSpan * range.columnSpan === 1) return document;\n\tconst intersected = document.merges.filter((merge) => tableDocumentRangesIntersect(merge, range));\n\tif (\n\t\tintersected.length === 1 &&\n\t\trange.row === intersected[0].row &&\n\t\trange.column === intersected[0].column &&\n\t\trange.rowSpan === intersected[0].rowSpan &&\n\t\trange.columnSpan === intersected[0].columnSpan\n\t)\n\t\treturn document;\n\tconst result = { ...document, merges: [...document.merges.filter((merge) => !tableDocumentRangesIntersect(merge, range)), range] };\n\tassertTableDocument(result);\n\treturn result;\n}\n\n/** Разъединяет область целиком; скрытые значения становятся видны без восстановления из копий. */\nexport function splitTableDocumentCell<T>(document: TableDocument<T>, position: TableDocumentPosition): TableDocument<T> {\n\tassertTableDocument(document);\n\tconst range = getTableDocumentCellRange(document, position);\n\tif (range.rowSpan * range.columnSpan === 1) return document;\n\treturn { ...document, merges: document.merges.filter((merge) => merge !== range) };\n}\n","import { type TableDocument, type TableDocumentCell } from \"./tableDocument\";\nimport {\n\tTABLE_DOCUMENT_AXIS_ROW,\n\ttype TABLE_DOCUMENT_AXIS_COLUMN,\n\tTABLE_DOCUMENT_SECTION_HEADER,\n\tTABLE_DOCUMENT_SECTION_BODY\n} from \"./tableDocumentConstants\";\nimport { assertTableDocument } from \"./tableDocumentGeometry\";\n\n/**\n * Вставка внутрь объединения увеличивает его span; вставка перед anchor сдвигает\n * область. ID и значения создаются вызывающим кодом до изменения React state.\n */\nexport function insertTableDocumentAxis<T>(\n\tdocument: TableDocument<T>,\n\taxis: typeof TABLE_DOCUMENT_AXIS_ROW | typeof TABLE_DOCUMENT_AXIS_COLUMN,\n\tindex: number,\n\tid: string,\n\tcells: readonly TableDocumentCell<T>[],\n\tsection: typeof TABLE_DOCUMENT_SECTION_HEADER | typeof TABLE_DOCUMENT_SECTION_BODY = TABLE_DOCUMENT_SECTION_BODY\n): TableDocument<T> {\n\tassertTableDocument(document);\n\tconst count = axis === TABLE_DOCUMENT_AXIS_ROW ? document.rows.length : document.columns.length;\n\tif (!Number.isInteger(index) || index < 0 || index > count) throw new Error(\"Некорректная позиция вставки.\");\n\tif (cells.length !== (axis === TABLE_DOCUMENT_AXIS_ROW ? document.columns.length : document.rows.length))\n\t\tthrow new Error(\"Неверное число новых ячеек.\");\n\tif (\n\t\taxis === TABLE_DOCUMENT_AXIS_ROW &&\n\t\t(section === TABLE_DOCUMENT_SECTION_HEADER ? index > document.headerRowCount : index < document.headerRowCount)\n\t)\n\t\tthrow new Error(\"Строка вставляется вне выбранной части таблицы.\");\n\tconst spanKey = axis === TABLE_DOCUMENT_AXIS_ROW ? \"rowSpan\" : \"columnSpan\";\n\tconst merges = document.merges.map((merge) =>\n\t\tindex <= merge[axis]\n\t\t\t? { ...merge, [axis]: merge[axis] + 1 }\n\t\t\t: index < merge[axis] + merge[spanKey]\n\t\t\t\t? { ...merge, [spanKey]: merge[spanKey] + 1 }\n\t\t\t\t: merge\n\t);\n\tconst result: TableDocument<T> =\n\t\taxis === TABLE_DOCUMENT_AXIS_ROW\n\t\t\t? {\n\t\t\t\t\t...document,\n\t\t\t\t\tmerges,\n\t\t\t\t\theaderRowCount: document.headerRowCount + (section === TABLE_DOCUMENT_SECTION_HEADER ? 1 : 0),\n\t\t\t\t\trows: [...document.rows.slice(0, index), { id, cells }, ...document.rows.slice(index)]\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\t...document,\n\t\t\t\t\tmerges,\n\t\t\t\t\tcolumns: [...document.columns.slice(0, index), { id, width: null }, ...document.columns.slice(index)],\n\t\t\t\t\trows: document.rows.map((row, r) => ({\n\t\t\t\t\t\t...row,\n\t\t\t\t\t\tcells: [...row.cells.slice(0, index), cells[r], ...row.cells.slice(index)]\n\t\t\t\t\t}))\n\t\t\t\t};\n\tassertTableDocument(result);\n\treturn result;\n}\n","import { type TableDocument, type TableDocumentPosition } from \"./tableDocument\";\nimport { assertTableDocumentRange } from \"./tableDocumentGeometry\";\n\n/** Меняет ровно одну логическую ячейку; преобразование rich text/документов выполняет приложение. */\nexport function updateTableDocumentCell<T>(document: TableDocument<T>, position: TableDocumentPosition, value: T): TableDocument<T> {\n\tassertTableDocumentRange(document, { ...position, rowSpan: 1, columnSpan: 1 });\n\tif (Object.is(document.rows[position.row].cells[position.column].value, value)) return document;\n\treturn {\n\t\t...document,\n\t\trows: document.rows.map((row, r) =>\n\t\t\tr !== position.row ? row : { ...row, cells: row.cells.map((cell, c) => (c !== position.column ? cell : { ...cell, value })) }\n\t\t)\n\t};\n}\n","import { moveArrayItemByIndex } from \"../array\";\n\nimport { type TableDocument } from \"./tableDocument\";\nimport { TABLE_DOCUMENT_AXIS_ROW, type TABLE_DOCUMENT_AXIS_COLUMN } from \"./tableDocumentConstants\";\nimport { assertTableDocument } from \"./tableDocumentGeometry\";\n\nconst TABLE_DOCUMENT_GROUP_NOT_FOUND_MESSAGE = \"Группа не найдена.\";\n\n/** Неразрывная группа строк/столбцов; применима к reorder и подтверждению удаления. */\nexport type TableDocumentAxisGroup = { readonly start: number; readonly count: number };\n\n/** Находит безопасные границы без случайных ID и без повторного учёта скрытых spans. */\nexport function getTableDocumentAxisGroups<T>(\n\tdocument: TableDocument<T>,\n\taxis: typeof TABLE_DOCUMENT_AXIS_ROW | typeof TABLE_DOCUMENT_AXIS_COLUMN\n): readonly TableDocumentAxisGroup[] {\n\tassertTableDocument(document);\n\tconst length = axis === TABLE_DOCUMENT_AXIS_ROW ? document.rows.length : document.columns.length;\n\tconst blocked = new Set<number>();\n\tfor (const merge of document.merges) {\n\t\tconst span = axis === TABLE_DOCUMENT_AXIS_ROW ? merge.rowSpan : merge.columnSpan;\n\t\tfor (let offset = 1; offset < span; offset++) blocked.add(merge[axis] + offset);\n\t}\n\tconst groups: TableDocumentAxisGroup[] = [];\n\tlet start = 0;\n\tfor (let i = 1; i <= length; i++) {\n\t\tif (i === length || !blocked.has(i)) {\n\t\t\tgroups.push({ start, count: i - start });\n\t\t\tstart = i;\n\t\t}\n\t}\n\treturn groups;\n}\n\n/** Удаляет только явно выбранную неразрывную группу; UI обязан показать её размер до подтверждения. */\nexport function deleteTableDocumentAxisGroup<T>(\n\tdocument: TableDocument<T>,\n\taxis: typeof TABLE_DOCUMENT_AXIS_ROW | typeof TABLE_DOCUMENT_AXIS_COLUMN,\n\tindex: number\n): TableDocument<T> {\n\tconst group = getTableDocumentAxisGroups(document, axis).find((item) => index >= item.start && index < item.start + item.count);\n\tif (!group) throw new Error(TABLE_DOCUMENT_GROUP_NOT_FOUND_MESSAGE);\n\tconst length = axis === TABLE_DOCUMENT_AXIS_ROW ? document.rows.length : document.columns.length;\n\tif (group.count === length) throw new Error(\"В таблице должна остаться хотя бы одна строка и один столбец.\");\n\tconst end = group.start + group.count;\n\tconst merges = document.merges\n\t\t.filter((merge) => merge[axis] < group.start || merge[axis] >= end)\n\t\t.map((merge) => (merge[axis] < end ? merge : { ...merge, [axis]: merge[axis] - group.count }));\n\tconst result: TableDocument<T> =\n\t\taxis === TABLE_DOCUMENT_AXIS_ROW\n\t\t\t? {\n\t\t\t\t\t...document,\n\t\t\t\t\tmerges,\n\t\t\t\t\trows: document.rows.filter((_, r) => r < group.start || r >= end),\n\t\t\t\t\theaderRowCount: document.headerRowCount - (group.start < document.headerRowCount ? group.count : 0)\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\t...document,\n\t\t\t\t\tmerges,\n\t\t\t\t\tcolumns: document.columns.filter((_, c) => c < group.start || c >= end),\n\t\t\t\t\trows: document.rows.map((row) => ({ ...row, cells: row.cells.filter((_, c) => c < group.start || c >= end) }))\n\t\t\t\t};\n\tassertTableDocument(result);\n\treturn result;\n}\n\n/** Меняет местами соседние неразрывные группы, сохраняя порядок внутри объединений. */\nexport function moveTableDocumentAxisGroup<T>(\n\tdocument: TableDocument<T>,\n\taxis: typeof TABLE_DOCUMENT_AXIS_ROW | typeof TABLE_DOCUMENT_AXIS_COLUMN,\n\tindex: number,\n\tdirection: -1 | 1\n): TableDocument<T> {\n\tconst groups = getTableDocumentAxisGroups(document, axis);\n\tconst current = groups.findIndex((item) => index >= item.start && index < item.start + item.count);\n\tif (current < 0) throw new Error(TABLE_DOCUMENT_GROUP_NOT_FOUND_MESSAGE);\n\tconst neighbor = current + direction;\n\tif (neighbor < 0 || neighbor >= groups.length) return document;\n\tif (\n\t\taxis === TABLE_DOCUMENT_AXIS_ROW &&\n\t\tgroups[current].start < document.headerRowCount !== groups[neighbor].start < document.headerRowCount\n\t)\n\t\treturn document;\n\tconst ordered = moveArrayItemByIndex(groups, current, direction === -1 ? \"up\" : \"down\");\n\tconst indices = ordered.flatMap((group) => Array.from({ length: group.count }, (_, offset) => group.start + offset));\n\tconst inverse = new Map(indices.map((oldIndex, newIndex) => [oldIndex, newIndex]));\n\tconst merges = document.merges.map((merge) => ({ ...merge, [axis]: inverse.get(merge[axis]) ?? merge[axis] }));\n\tconst result =\n\t\taxis === TABLE_DOCUMENT_AXIS_ROW\n\t\t\t? { ...document, merges, rows: indices.map((i) => document.rows[i]) }\n\t\t\t: {\n\t\t\t\t\t...document,\n\t\t\t\t\tmerges,\n\t\t\t\t\tcolumns: indices.map((i) => document.columns[i]),\n\t\t\t\t\trows: document.rows.map((row) => ({ ...row, cells: indices.map((i) => row.cells[i]) }))\n\t\t\t\t};\n\tassertTableDocument(result);\n\treturn result;\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type TableDocument, type TableDocumentCell } from "./tableDocument";
|
|
2
|
+
import { TABLE_DOCUMENT_AXIS_ROW, type TABLE_DOCUMENT_AXIS_COLUMN, TABLE_DOCUMENT_SECTION_HEADER, TABLE_DOCUMENT_SECTION_BODY } from "./tableDocumentConstants";
|
|
2
3
|
/**
|
|
3
4
|
* Вставка внутрь объединения увеличивает его span; вставка перед anchor сдвигает
|
|
4
5
|
* область. ID и значения создаются вызывающим кодом до изменения React state.
|
|
5
6
|
*/
|
|
6
|
-
export declare function insertTableDocumentAxis<T>(document: TableDocument<T>, axis:
|
|
7
|
+
export declare function insertTableDocumentAxis<T>(document: TableDocument<T>, axis: typeof TABLE_DOCUMENT_AXIS_ROW | typeof TABLE_DOCUMENT_AXIS_COLUMN, index: number, id: string, cells: readonly TableDocumentCell<T>[], section?: typeof TABLE_DOCUMENT_SECTION_HEADER | typeof TABLE_DOCUMENT_SECTION_BODY): TableDocument<T>;
|
|
7
8
|
//# sourceMappingURL=insertTableDocumentAxis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insertTableDocumentAxis.d.ts","sourceRoot":"","sources":["../../src/table-document/insertTableDocumentAxis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"insertTableDocumentAxis.d.ts","sourceRoot":"","sources":["../../src/table-document/insertTableDocumentAxis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACN,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,6BAA6B,EAC7B,2BAA2B,EAC3B,MAAM,0BAA0B,CAAC;AAGlC;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACxC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,IAAI,EAAE,OAAO,uBAAuB,GAAG,OAAO,0BAA0B,EACxE,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,SAAS,iBAAiB,CAAC,CAAC,CAAC,EAAE,EACtC,OAAO,GAAE,OAAO,6BAA6B,GAAG,OAAO,2BAAyD,GAC9G,aAAa,CAAC,CAAC,CAAC,CAsClB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type TABLE_DOCUMENT_VERSION } from "./tableDocumentConstants";
|
|
1
2
|
/** Координаты относятся к полной сетке, включая скрытые объединением ячейки. */
|
|
2
3
|
export type TableDocumentPosition = {
|
|
3
4
|
readonly row: number;
|
|
@@ -27,7 +28,7 @@ export type TableDocumentColumn = {
|
|
|
27
28
|
* Это исключает устаревшие spans у скрытых ячеек после повторного merge/split.
|
|
28
29
|
*/
|
|
29
30
|
export type TableDocument<T> = {
|
|
30
|
-
readonly version:
|
|
31
|
+
readonly version: typeof TABLE_DOCUMENT_VERSION;
|
|
31
32
|
readonly caption: string;
|
|
32
33
|
readonly columns: readonly TableDocumentColumn[];
|
|
33
34
|
readonly rows: readonly TableDocumentRow<T>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableDocument.d.ts","sourceRoot":"","sources":["../../src/table-document/tableDocument.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,qEAAqE;AACrE,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnH,+FAA+F;AAC/F,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAC9E,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAA;CAAE,CAAC;AAC3G,MAAM,MAAM,mBAAmB,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEzF;;;;GAIG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC9B,QAAQ,CAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tableDocument.d.ts","sourceRoot":"","sources":["../../src/table-document/tableDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,qEAAqE;AACrE,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnH,+FAA+F;AAC/F,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAC9E,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAA;CAAE,CAAC;AAC3G,MAAM,MAAM,mBAAmB,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEzF;;;;GAIG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,sBAAsB,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,QAAS,CAAC"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { type TableDocument } from "./tableDocument";
|
|
2
|
+
import { TABLE_DOCUMENT_AXIS_ROW, type TABLE_DOCUMENT_AXIS_COLUMN } from "./tableDocumentConstants";
|
|
2
3
|
/** Неразрывная группа строк/столбцов; применима к reorder и подтверждению удаления. */
|
|
3
4
|
export type TableDocumentAxisGroup = {
|
|
4
5
|
readonly start: number;
|
|
5
6
|
readonly count: number;
|
|
6
7
|
};
|
|
7
8
|
/** Находит безопасные границы без случайных ID и без повторного учёта скрытых spans. */
|
|
8
|
-
export declare function getTableDocumentAxisGroups<T>(document: TableDocument<T>, axis:
|
|
9
|
+
export declare function getTableDocumentAxisGroups<T>(document: TableDocument<T>, axis: typeof TABLE_DOCUMENT_AXIS_ROW | typeof TABLE_DOCUMENT_AXIS_COLUMN): readonly TableDocumentAxisGroup[];
|
|
9
10
|
/** Удаляет только явно выбранную неразрывную группу; UI обязан показать её размер до подтверждения. */
|
|
10
|
-
export declare function deleteTableDocumentAxisGroup<T>(document: TableDocument<T>, axis:
|
|
11
|
+
export declare function deleteTableDocumentAxisGroup<T>(document: TableDocument<T>, axis: typeof TABLE_DOCUMENT_AXIS_ROW | typeof TABLE_DOCUMENT_AXIS_COLUMN, index: number): TableDocument<T>;
|
|
11
12
|
/** Меняет местами соседние неразрывные группы, сохраняя порядок внутри объединений. */
|
|
12
|
-
export declare function moveTableDocumentAxisGroup<T>(document: TableDocument<T>, axis:
|
|
13
|
+
export declare function moveTableDocumentAxisGroup<T>(document: TableDocument<T>, axis: typeof TABLE_DOCUMENT_AXIS_ROW | typeof TABLE_DOCUMENT_AXIS_COLUMN, index: number, direction: -1 | 1): TableDocument<T>;
|
|
13
14
|
//# sourceMappingURL=tableDocumentAxisGroups.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableDocumentAxisGroups.d.ts","sourceRoot":"","sources":["../../src/table-document/tableDocumentAxisGroups.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tableDocumentAxisGroups.d.ts","sourceRoot":"","sources":["../../src/table-document/tableDocumentAxisGroups.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAKpG,uFAAuF;AACvF,MAAM,MAAM,sBAAsB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,wFAAwF;AACxF,wBAAgB,0BAA0B,CAAC,CAAC,EAC3C,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,IAAI,EAAE,OAAO,uBAAuB,GAAG,OAAO,0BAA0B,GACtE,SAAS,sBAAsB,EAAE,CAiBnC;AAED,uGAAuG;AACvG,wBAAgB,4BAA4B,CAAC,CAAC,EAC7C,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,IAAI,EAAE,OAAO,uBAAuB,GAAG,OAAO,0BAA0B,EACxE,KAAK,EAAE,MAAM,GACX,aAAa,CAAC,CAAC,CAAC,CAyBlB;AAED,uFAAuF;AACvF,wBAAgB,0BAA0B,CAAC,CAAC,EAC3C,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,IAAI,EAAE,OAAO,uBAAuB,GAAG,OAAO,0BAA0B,EACxE,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GACf,aAAa,CAAC,CAAC,CAAC,CA0BlB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Версия и координатные оси относятся к формату документа, а не к текущему UI. */
|
|
2
|
+
export declare const TABLE_DOCUMENT_VERSION = 1;
|
|
3
|
+
export declare const TABLE_DOCUMENT_AXIS_ROW = "row";
|
|
4
|
+
export declare const TABLE_DOCUMENT_AXIS_COLUMN = "column";
|
|
5
|
+
/** Раздел вставки сохраняет границу между заголовком и основной частью таблицы. */
|
|
6
|
+
export declare const TABLE_DOCUMENT_SECTION_HEADER = "header";
|
|
7
|
+
export declare const TABLE_DOCUMENT_SECTION_BODY = "body";
|
|
8
|
+
//# sourceMappingURL=tableDocumentConstants.d.ts.map
|