@univerjs/sheets 0.17.0 → 0.18.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/lib/cjs/facade.js +1 -1
- package/lib/cjs/index.js +2 -3
- package/lib/cjs/locale/ca-ES.js +1 -1
- package/lib/cjs/locale/en-US.js +1 -1
- package/lib/cjs/locale/es-ES.js +1 -1
- package/lib/cjs/locale/fa-IR.js +1 -1
- package/lib/cjs/locale/fr-FR.js +1 -1
- package/lib/cjs/locale/ja-JP.js +1 -1
- package/lib/cjs/locale/ko-KR.js +1 -1
- package/lib/cjs/locale/ru-RU.js +1 -1
- package/lib/cjs/locale/sk-SK.js +1 -1
- package/lib/cjs/locale/vi-VN.js +1 -1
- package/lib/cjs/locale/zh-CN.js +1 -1
- package/lib/cjs/locale/zh-TW.js +1 -1
- package/lib/es/facade.js +1 -8762
- package/lib/es/index.js +2 -15285
- package/lib/es/locale/ca-ES.js +1 -17
- package/lib/es/locale/en-US.js +1 -17
- package/lib/es/locale/es-ES.js +1 -17
- package/lib/es/locale/fa-IR.js +1 -17
- package/lib/es/locale/fr-FR.js +1 -17
- package/lib/es/locale/ja-JP.js +1 -17
- package/lib/es/locale/ko-KR.js +1 -17
- package/lib/es/locale/ru-RU.js +1 -17
- package/lib/es/locale/sk-SK.js +1 -17
- package/lib/es/locale/vi-VN.js +1 -17
- package/lib/es/locale/zh-CN.js +1 -17
- package/lib/es/locale/zh-TW.js +1 -17
- package/lib/facade.js +1 -8762
- package/lib/index.js +2 -15285
- package/lib/locale/ca-ES.js +1 -17
- package/lib/locale/en-US.js +1 -17
- package/lib/locale/es-ES.js +1 -17
- package/lib/locale/fa-IR.js +1 -17
- package/lib/locale/fr-FR.js +1 -17
- package/lib/locale/ja-JP.js +1 -17
- package/lib/locale/ko-KR.js +1 -17
- package/lib/locale/ru-RU.js +1 -17
- package/lib/locale/sk-SK.js +1 -17
- package/lib/locale/vi-VN.js +1 -17
- package/lib/locale/zh-CN.js +1 -17
- package/lib/locale/zh-TW.js +1 -17
- package/lib/types/basics/cell-style.d.ts +16 -1
- package/lib/types/basics/cell-type.d.ts +17 -1
- package/lib/types/basics/cell-value.d.ts +18 -2
- package/lib/types/basics/const/command-listener-const.d.ts +31 -16
- package/lib/types/basics/const/default-spreadsheet-plugin-data.d.ts +16 -1
- package/lib/types/basics/expand-range.d.ts +16 -1
- package/lib/types/basics/interfaces/i-ruler-manager.d.ts +16 -1
- package/lib/types/basics/interfaces/mutation-interface.d.ts +16 -1
- package/lib/types/basics/interfaces/selection-config.d.ts +16 -1
- package/lib/types/basics/interfaces/spreadsheet-config.d.ts +16 -1
- package/lib/types/basics/range-merge.d.ts +17 -1
- package/lib/types/basics/row-column-value.d.ts +16 -1
- package/lib/types/basics/selection.d.ts +16 -1
- package/lib/types/basics/sheet-header.d.ts +16 -1
- package/lib/types/basics/split-range-text.d.ts +16 -1
- package/lib/types/basics/utils.d.ts +17 -2
- package/lib/types/commands/commands/add-range-protection.command.d.ts +17 -2
- package/lib/types/commands/commands/add-worksheet-merge.command.d.ts +18 -2
- package/lib/types/commands/commands/add-worksheet-protection.command.d.ts +17 -2
- package/lib/types/commands/commands/add-worksheet-range-theme.command.d.ts +16 -1
- package/lib/types/commands/commands/append-row.command.d.ts +16 -1
- package/lib/types/commands/commands/auto-fill.command.d.ts +18 -1
- package/lib/types/commands/commands/clear-selection-all.command.d.ts +16 -1
- package/lib/types/commands/commands/clear-selection-content.command.d.ts +16 -1
- package/lib/types/commands/commands/clear-selection-format.command.d.ts +16 -1
- package/lib/types/commands/commands/copy-worksheet.command.d.ts +17 -1
- package/lib/types/commands/commands/delete-range-move-left.command.d.ts +16 -1
- package/lib/types/commands/commands/delete-range-move-up.command.d.ts +16 -1
- package/lib/types/commands/commands/delete-range-protection.command.d.ts +17 -2
- package/lib/types/commands/commands/delete-worksheet-protection.command.d.ts +17 -2
- package/lib/types/commands/commands/delete-worksheet-range-theme.command.d.ts +16 -1
- package/lib/types/commands/commands/insert-defined-name.command.d.ts +16 -1
- package/lib/types/commands/commands/insert-range-move-down.command.d.ts +16 -1
- package/lib/types/commands/commands/insert-range-move-right.command.d.ts +16 -1
- package/lib/types/commands/commands/insert-row-col.command.d.ts +17 -1
- package/lib/types/commands/commands/insert-sheet.command.d.ts +16 -1
- package/lib/types/commands/commands/move-range.command.d.ts +16 -1
- package/lib/types/commands/commands/move-rows-cols.command.d.ts +16 -1
- package/lib/types/commands/commands/refill.command.d.ts +17 -2
- package/lib/types/commands/commands/register-range-theme.command.d.ts +17 -2
- package/lib/types/commands/commands/remove-defined-name.command.d.ts +16 -1
- package/lib/types/commands/commands/remove-row-col.command.d.ts +16 -1
- package/lib/types/commands/commands/remove-sheet.command.d.ts +16 -1
- package/lib/types/commands/commands/remove-worksheet-merge.command.d.ts +16 -1
- package/lib/types/commands/commands/reorder-range.command.d.ts +17 -2
- package/lib/types/commands/commands/set-border-command.d.ts +18 -2
- package/lib/types/commands/commands/set-col-data.command.d.ts +17 -2
- package/lib/types/commands/commands/set-col-visible.command.d.ts +16 -1
- package/lib/types/commands/commands/set-defined-name.command.d.ts +16 -1
- package/lib/types/commands/commands/set-frozen.command.d.ts +16 -1
- package/lib/types/commands/commands/set-gridlines-color.command.d.ts +16 -1
- package/lib/types/commands/commands/set-protection.command.d.ts +18 -3
- package/lib/types/commands/commands/set-range-custom-metadata.command.d.ts +17 -2
- package/lib/types/commands/commands/set-range-values.command.d.ts +17 -2
- package/lib/types/commands/commands/set-row-data.command.d.ts +17 -2
- package/lib/types/commands/commands/set-row-visible.command.d.ts +16 -1
- package/lib/types/commands/commands/set-style.command.d.ts +17 -2
- package/lib/types/commands/commands/set-tab-color.command.d.ts +17 -2
- package/lib/types/commands/commands/set-workbook-name.command.d.ts +16 -1
- package/lib/types/commands/commands/set-worksheet-activate.command.d.ts +16 -1
- package/lib/types/commands/commands/set-worksheet-col-width.command.d.ts +16 -1
- package/lib/types/commands/commands/set-worksheet-column-count.command.d.ts +16 -1
- package/lib/types/commands/commands/set-worksheet-default-style.command.d.ts +16 -1
- package/lib/types/commands/commands/set-worksheet-hide.command.d.ts +16 -1
- package/lib/types/commands/commands/set-worksheet-name.command.d.ts +16 -1
- package/lib/types/commands/commands/set-worksheet-order.command.d.ts +16 -1
- package/lib/types/commands/commands/set-worksheet-permission-points.command.d.ts +17 -2
- package/lib/types/commands/commands/set-worksheet-protection.command.d.ts +17 -2
- package/lib/types/commands/commands/set-worksheet-right-to-left.command.d.ts +17 -1
- package/lib/types/commands/commands/set-worksheet-row-count.command.d.ts +16 -1
- package/lib/types/commands/commands/set-worksheet-row-height.command.d.ts +16 -1
- package/lib/types/commands/commands/set-worksheet-show.command.d.ts +16 -1
- package/lib/types/commands/commands/split-text-to-columns.command.d.ts +18 -2
- package/lib/types/commands/commands/text-to-number.command.d.ts +17 -2
- package/lib/types/commands/commands/toggle-checkbox.command.d.ts +16 -1
- package/lib/types/commands/commands/toggle-gridlines.command.d.ts +17 -1
- package/lib/types/commands/commands/unregister-range-theme.command.d.ts +16 -1
- package/lib/types/commands/commands/util.d.ts +17 -1
- package/lib/types/commands/commands/utils/selection-utils.d.ts +18 -3
- package/lib/types/commands/commands/utils/target-util.d.ts +16 -1
- package/lib/types/commands/mutations/add-range-protection.mutation.d.ts +18 -3
- package/lib/types/commands/mutations/add-range-theme.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/add-worksheet-merge.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/add-worksheet-protection.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/add-worksheet-range-theme.mutation.d.ts +18 -3
- package/lib/types/commands/mutations/copy-worksheet-end.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/delete-range-protection.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/delete-worksheet-protection.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/delete-worksheet-range-theme.mutation.d.ts +18 -3
- package/lib/types/commands/mutations/empty.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/insert-row-col.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/insert-sheet.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/mark-dirty-auto-height.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/move-range.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/move-rows-cols.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/numfmt-mutation.d.ts +16 -1
- package/lib/types/commands/mutations/register-range-theme.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/remove-range-theme.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/remove-row-col.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/remove-sheet.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/remove-worksheet-merge.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/reorder-range.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/set-col-data.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-col-visible.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-frozen.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-gridlines-color.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-range-protection.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/set-range-theme.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/set-range-values.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-row-data.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-row-visible.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-tab-color.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-workbook-name.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-worksheet-col-width.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-worksheet-column-count.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-worksheet-default-style.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-worksheet-hide.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-worksheet-name.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-worksheet-order.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-worksheet-permission-points.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/set-worksheet-protection.mutation.d.ts +17 -2
- package/lib/types/commands/mutations/set-worksheet-right-to-left.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-worksheet-row-count.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/set-worksheet-row-height.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/toggle-gridlines.mutation.d.ts +16 -1
- package/lib/types/commands/mutations/unregister-range-theme-style.mutation.d.ts +16 -1
- package/lib/types/commands/operations/scroll-to-cell.operation.d.ts +16 -1
- package/lib/types/commands/operations/selection.operation.d.ts +18 -3
- package/lib/types/commands/operations/set-worksheet-active.operation.d.ts +16 -1
- package/lib/types/commands/utils/handle-merge-operation.d.ts +18 -3
- package/lib/types/commands/utils/handle-range-mutation.d.ts +18 -2
- package/lib/types/commands/utils/selection-command-util.d.ts +16 -1
- package/lib/types/config/config.d.ts +16 -1
- package/lib/types/controllers/active-worksheet.controller.d.ts +15 -0
- package/lib/types/controllers/auto-fill.controller.d.ts +15 -0
- package/lib/types/controllers/basic-worksheet.controller.d.ts +17 -1
- package/lib/types/controllers/calculate-result-apply.controller.d.ts +15 -0
- package/lib/types/controllers/defined-name-data.controller.d.ts +15 -0
- package/lib/types/controllers/freeze-sync.controller.d.ts +15 -0
- package/lib/types/controllers/merge-cell.controller.d.ts +21 -5
- package/lib/types/controllers/number-cell.controller.d.ts +15 -0
- package/lib/types/controllers/permission/sheet-permission-check.controller.d.ts +18 -2
- package/lib/types/controllers/permission/sheet-permission-init.controller.d.ts +15 -0
- package/lib/types/controllers/permission/sheet-permission-view-model.controller.d.ts +15 -0
- package/lib/types/controllers/zebar-crossing.controller.d.ts +15 -0
- package/lib/types/facade/f-defined-name.d.ts +18 -2
- package/lib/types/facade/f-enum.d.ts +15 -0
- package/lib/types/facade/f-event.d.ts +21 -6
- package/lib/types/facade/f-permission.d.ts +55 -39
- package/lib/types/facade/f-range.d.ts +20 -4
- package/lib/types/facade/f-selection.d.ts +18 -2
- package/lib/types/facade/f-sheet-hooks.d.ts +15 -0
- package/lib/types/facade/f-univer.d.ts +17 -2
- package/lib/types/facade/f-workbook.d.ts +23 -4
- package/lib/types/facade/f-worksheet.d.ts +19 -3
- package/lib/types/facade/permission/f-range-permission.d.ts +20 -4
- package/lib/types/facade/permission/f-range-protection-rule.d.ts +17 -2
- package/lib/types/facade/permission/f-workbook-permission.d.ts +19 -3
- package/lib/types/facade/permission/f-worksheet-permission.d.ts +20 -4
- package/lib/types/facade/permission/permission-point-map.d.ts +16 -1
- package/lib/types/facade/permission/permission-types.d.ts +17 -2
- package/lib/types/facade/utils.d.ts +17 -1
- package/lib/types/index.d.ts +1 -1
- package/lib/types/locale/ca-ES.d.ts +16 -1
- package/lib/types/locale/es-ES.d.ts +16 -1
- package/lib/types/locale/fa-IR.d.ts +16 -1
- package/lib/types/locale/fr-FR.d.ts +16 -1
- package/lib/types/locale/ja-JP.d.ts +16 -1
- package/lib/types/locale/ko-KR.d.ts +16 -1
- package/lib/types/locale/ru-RU.d.ts +16 -1
- package/lib/types/locale/sk-SK.d.ts +16 -1
- package/lib/types/locale/vi-VN.d.ts +16 -1
- package/lib/types/locale/zh-CN.d.ts +16 -1
- package/lib/types/locale/zh-TW.d.ts +16 -1
- package/lib/types/model/range-protection-render.model.d.ts +18 -2
- package/lib/types/model/range-protection-rule.model.d.ts +20 -5
- package/lib/types/model/range-protection.cache.d.ts +17 -1
- package/lib/types/model/range-theme-model.d.ts +20 -3
- package/lib/types/model/range-theme-util.d.ts +16 -1
- package/lib/types/model/range-themes/build-in-theme.factory.d.ts +15 -0
- package/lib/types/model/range-themes/default.d.ts +15 -0
- package/lib/types/model/zebra-crossing-cache.d.ts +16 -1
- package/lib/types/plugin.d.ts +16 -1
- package/lib/types/services/auto-fill/auto-fill.service.d.ts +21 -4
- package/lib/types/services/auto-fill/rules.d.ts +16 -1
- package/lib/types/services/auto-fill/tools.d.ts +24 -8
- package/lib/types/services/auto-fill/type.d.ts +17 -2
- package/lib/types/services/border-style-manager.service.d.ts +18 -2
- package/lib/types/services/exclusive-range/exclusive-range-service.d.ts +20 -4
- package/lib/types/services/lazy-execute-schedule.service.d.ts +18 -2
- package/lib/types/services/numfmt/numfmt.service.d.ts +18 -2
- package/lib/types/services/numfmt/type.d.ts +17 -2
- package/lib/types/services/permission/permission-point/const.d.ts +15 -0
- package/lib/types/services/permission/permission-point/range/delete-protection.d.ts +17 -1
- package/lib/types/services/permission/permission-point/range/edit.d.ts +17 -1
- package/lib/types/services/permission/permission-point/range/manage-collaborator.d.ts +17 -1
- package/lib/types/services/permission/permission-point/range/view.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/comment.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/copy-sheet.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/copy.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/create-permission.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/create-sheet.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/delete-column.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/delete-row.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/delete-sheet.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/duplicate.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/editable.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/export.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/hide-sheet.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/history.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/insert-column.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/insert-row.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/manage-collaborator.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/move-sheet.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/print.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/recover-history.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/rename-sheet.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/share.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/view-history.d.ts +17 -1
- package/lib/types/services/permission/permission-point/workbook/view.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/copy.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/delete-column.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/delete-protection.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/delete-row.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/edit-extra-object.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/edit.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/filter.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/insert-column.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/insert-hyperlink.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/insert-row.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/manage-collaborator.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/pivot-table.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/select-protected-cells.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/select-un-protected-cells.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/set-cell-style.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/set-cell-value.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/set-column-style.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/set-row-style.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/sort.d.ts +17 -1
- package/lib/types/services/permission/permission-point/worksheet/view.d.ts +17 -1
- package/lib/types/services/permission/range-permission/range-protection.ref-range.d.ts +21 -5
- package/lib/types/services/permission/range-permission/range-protection.service.d.ts +15 -0
- package/lib/types/services/permission/range-permission/util.d.ts +15 -0
- package/lib/types/services/permission/type.d.ts +17 -2
- package/lib/types/services/permission/util.d.ts +16 -1
- package/lib/types/services/permission/workbook-permission/util.d.ts +15 -0
- package/lib/types/services/permission/workbook-permission/workbook-permission.service.d.ts +16 -1
- package/lib/types/services/permission/worksheet-permission/type.d.ts +16 -1
- package/lib/types/services/permission/worksheet-permission/utils.d.ts +15 -0
- package/lib/types/services/permission/worksheet-permission/worksheet-permission-point.model.d.ts +17 -2
- package/lib/types/services/permission/worksheet-permission/worksheet-permission-rule.model.d.ts +20 -5
- package/lib/types/services/permission/worksheet-permission/worksheet-permission.service.d.ts +15 -0
- package/lib/types/services/range-theme-service.d.ts +18 -2
- package/lib/types/services/ref-range/ref-range.service.d.ts +20 -4
- package/lib/types/services/ref-range/type.d.ts +34 -10
- package/lib/types/services/ref-range/util.d.ts +31 -15
- package/lib/types/services/selections/move-active-cell-util.d.ts +18 -2
- package/lib/types/services/selections/ref-selections.service.d.ts +16 -1
- package/lib/types/services/selections/selection-data-model.d.ts +20 -3
- package/lib/types/services/selections/selection.service.d.ts +21 -4
- package/lib/types/services/sheet-interceptor/interceptor-const.d.ts +18 -3
- package/lib/types/services/sheet-interceptor/sheet-interceptor.service.d.ts +18 -2
- package/lib/types/services/sheet-interceptor/utils/interceptor.d.ts +16 -1
- package/lib/types/skeleton/skeleton.service.d.ts +17 -1
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +2 -3
- package/lib/umd/locale/ca-ES.js +1 -1
- package/lib/umd/locale/en-US.js +1 -1
- package/lib/umd/locale/es-ES.js +1 -1
- package/lib/umd/locale/fa-IR.js +1 -1
- package/lib/umd/locale/fr-FR.js +1 -1
- package/lib/umd/locale/ja-JP.js +1 -1
- package/lib/umd/locale/ko-KR.js +1 -1
- package/lib/umd/locale/ru-RU.js +1 -1
- package/lib/umd/locale/sk-SK.js +1 -1
- package/lib/umd/locale/vi-VN.js +1 -1
- package/lib/umd/locale/zh-CN.js +1 -1
- package/lib/umd/locale/zh-TW.js +1 -1
- package/package.json +11 -10
package/lib/cjs/facade.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var se=Object.defineProperty;var re=(r,t,e)=>t in r?se(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var w=(r,t,e)=>re(r,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("@univerjs/core"),R=require("@univerjs/core/facade"),a=require("@univerjs/sheets"),U=require("@univerjs/engine-formula"),O=require("rxjs"),C=require("rxjs/operators");var ie=Object.getOwnPropertyDescriptor,oe=(r,t,e,n)=>{for(var s=n>1?void 0:n?ie(t,e):t,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=o(s)||s);return s},p=(r,t)=>(e,n)=>t(e,n,r);function ae(r,t,e){const n=e.getDefinedNameMap(r);if(n==null)return t.t("definedName.defaultName")+1;const i=Array.from(Object.values(n)).length+1,o=t.t("definedName.defaultName")+i;if(e.getValueByName(r,o)==null)return o;let c=i+1;for(;;){const d=t.t("definedName.defaultName")+c;if(e.getValueByName(r,d)==null)return d;c++}}class B{constructor(){w(this,"_definedNameParam");this._definedNameParam={id:h.generateRandomId(10),unitId:"",name:"",formulaOrRefString:"",localSheetId:a.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}}setName(t){return this._definedNameParam.name=t,this}setFormula(t){return this._definedNameParam.formulaOrRefString=`=${t}`,this}setRef(t){return this._definedNameParam.formulaOrRefString=t,this}setRefByRange(t,e,n,s){return this._definedNameParam.formulaOrRefString=U.serializeRange({startRow:t,endRow:t+(n!=null?n:1)-1,startColumn:e,endColumn:e+(s!=null?s:1)-1}),this}setComment(t){return this._definedNameParam.comment=t,this}setScopeToWorksheet(t){return this._definedNameParam.localSheetId=t.getSheetId(),this}setScopeToWorkbook(){return this._definedNameParam.localSheetId=a.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this}setHidden(t){return this._definedNameParam.hidden=t,this}build(){return this._definedNameParam}load(t){return this._definedNameParam=t,this}}let F=class extends R.FBase{constructor(r,t,e,n,s,i,o,c,d,l){super(),this._definedNameParam=r,this._injector=t,this._commandService=e,this._permissionService=n,this._worksheetProtectionRuleModel=s,this._rangeProtectionRuleModel=i,this._worksheetProtectionPointRuleModel=o,this._authzIoService=c,this._localeService=d,this._definedNamesService=l}_apply(){this._definedNameParam.name===""&&(this._definedNameParam.name=ae(this._definedNameParam.unitId,this._localeService,this._definedNamesService)),this._commandService.syncExecuteCommand(a.SetDefinedNameCommand.id,this._definedNameParam)}getName(){return this._definedNameParam.name}setName(r){this._definedNameParam.name=r,this._apply()}setFormula(r){this._definedNameParam.formulaOrRefString=`=${r}`,this._apply()}setRef(r){this._definedNameParam.formulaOrRefString=r,this._apply()}getFormulaOrRefString(){return this._definedNameParam.formulaOrRefString}setRefByRange(r,t,e,n){this._definedNameParam.formulaOrRefString=U.serializeRange({startRow:r,endRow:r+(e!=null?e:1)-1,startColumn:t,endColumn:t+(n!=null?n:1)-1}),this._apply()}getComment(){return this._definedNameParam.comment}setComment(r){this._definedNameParam.comment=r,this._apply()}setScopeToWorksheet(r){this._definedNameParam.localSheetId=r.getSheetId(),this._apply()}setScopeToWorkbook(){this._definedNameParam.localSheetId=a.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this._apply()}setHidden(r){this._definedNameParam.hidden=r,this._apply()}delete(){this._commandService.syncExecuteCommand(a.RemoveDefinedNameCommand.id,this._definedNameParam)}getLocalSheetId(){return this._definedNameParam.localSheetId}isWorkbookScope(){return this._definedNameParam.localSheetId===a.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}toBuilder(){const r=this._injector.createInstance(B);return r.load(this._definedNameParam),r}};F=oe([p(1,h.Inject(h.Injector)),p(2,h.ICommandService),p(3,h.IPermissionService),p(4,h.Inject(a.WorksheetProtectionRuleModel)),p(5,h.Inject(a.RangeProtectionRuleModel)),p(6,h.Inject(a.WorksheetProtectionPointModel)),p(7,h.Inject(h.IAuthzIoService)),p(8,h.Inject(h.LocaleService)),p(9,U.IDefinedNamesService)],F);var M=(r=>(r[r.Reader=0]="Reader",r[r.Editor=1]="Editor",r[r.Owner=2]="Owner",r))(M||{}),g=(r=>(r.Edit="WorkbookEdit",r.View="WorkbookView",r.Print="WorkbookPrint",r.Export="WorkbookExport",r.Share="WorkbookShare",r.CopyContent="WorkbookCopy",r.DuplicateFile="WorkbookDuplicate",r.Comment="WorkbookComment",r.ManageCollaborator="WorkbookManageCollaborator",r.CreateSheet="WorkbookCreateSheet",r.DeleteSheet="WorkbookDeleteSheet",r.RenameSheet="WorkbookRenameSheet",r.MoveSheet="WorkbookMoveSheet",r.HideSheet="WorkbookHideSheet",r.ViewHistory="WorkbookViewHistory",r.ManageHistory="WorkbookHistory",r.RecoverHistory="WorkbookRecoverHistory",r.CreateProtection="WorkbookCreateProtect",r.InsertRow="WorkbookInsertRow",r.InsertColumn="WorkbookInsertColumn",r.DeleteRow="WorkbookDeleteRow",r.DeleteColumn="WorkbookDeleteColumn",r.CopySheet="WorkbookCopySheet",r))(g||{}),S=(r=>(r.Edit="WorksheetEdit",r.View="WorksheetView",r.Copy="WorksheetCopy",r.SetCellValue="WorksheetSetCellValue",r.SetCellStyle="WorksheetSetCellStyle",r.SetRowStyle="WorksheetSetRowStyle",r.SetColumnStyle="WorksheetSetColumnStyle",r.InsertRow="WorksheetInsertRow",r.InsertColumn="WorksheetInsertColumn",r.DeleteRow="WorksheetDeleteRow",r.DeleteColumn="WorksheetDeleteColumn",r.Sort="WorksheetSort",r.Filter="WorksheetFilter",r.PivotTable="WorksheetPivotTable",r.InsertHyperlink="WorksheetInsertHyperlink",r.EditExtraObject="WorksheetEditExtraObject",r.ManageCollaborator="WorksheetManageCollaborator",r.DeleteProtection="WorksheetDeleteProtection",r.SelectProtectedCells="WorksheetSelectProtectedCells",r.SelectUnProtectedCells="WorksheetSelectUnProtectedCells",r))(S||{}),I=(r=>(r.Edit="RangeEdit",r.View="RangeView",r.ManageCollaborator="RangeManageCollaborator",r.Delete="RangeDeleteProtection",r))(I||{}),he=Object.getOwnPropertyDescriptor,ce=(r,t,e,n)=>{for(var s=n>1?void 0:n?he(t,e):t,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=o(s)||s);return s},P=(r,t)=>(e,n)=>t(e,n,r);exports.FPermission=class extends R.FBase{constructor(e,n,s,i,o,c,d,l){super();w(this,"permissionPointsDefinition",a.PermissionPointsDefinitions);w(this,"rangeRuleChangedAfterAuth$");w(this,"sheetRuleChangedAfterAuth$");w(this,"unitPermissionInitStateChange$");this._injector=e,this._commandService=n,this._permissionService=s,this._worksheetProtectionRuleModel=i,this._rangeProtectionRuleModel=o,this._worksheetProtectionPointRuleModel=c,this._workbookPermissionService=d,this._authzIoService=l,this.rangeRuleChangedAfterAuth$=this._rangeProtectionRuleModel.ruleRefresh$,this.sheetRuleChangedAfterAuth$=this._worksheetProtectionRuleModel.ruleRefresh$,this.unitPermissionInitStateChange$=this._workbookPermissionService.unitPermissionInitStateChange$}setWorkbookPermissionPoint(e,n,s){const i=new n(e);this._permissionService.getPermissionPoint(i.id)||this._permissionService.addPermissionPoint(i),this._permissionService.updatePermissionPoint(i.id,s)}checkWorkbookPermissionPoint(e,n){const s=new n(e),i=this._permissionService.getPermissionPoint(s.id);if(i)return i.value}setWorkbookEditPermission(e,n){this.setWorkbookPermissionPoint(e,a.WorkbookEditablePermission,n)}async addWorksheetBasePermission(e,n,s){let i=[];if(s!=null&&s.allowedUsers){const d=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),l=new Set(s.allowedUsers);i=d.filter(u=>{var _;return l.has(((_=u.subject)==null?void 0:_.userID)||u.id)}).map(u=>({id:u.id,role:M.Editor,subject:u.subject}));const m=new Set(i.map(u=>{var _;return((_=u.subject)==null?void 0:_.userID)||u.id}));s.allowedUsers.forEach(u=>{m.has(u)||console.error(`User ${u} not found in collaborators list`)})}const o=await this._authzIoService.create({objectType:a.UnitObject.Worksheet,worksheetObject:{collaborators:i,unitID:e,strategies:[],name:(s==null?void 0:s.name)||"",scope:void 0}});if(this._commandService.syncExecuteCommand(a.AddWorksheetProtectionMutation.id,{unitId:e,subUnitId:n,rule:{permissionId:o,unitType:a.UnitObject.Worksheet,unitId:e,subUnitId:n}}))return o}removeWorksheetPermission(e,n){this._commandService.syncExecuteCommand(a.DeleteWorksheetProtectionMutation.id,{unitId:e,subUnitId:n}),[...a.getAllWorksheetPermissionPoint(),...a.getAllWorksheetPermissionPointByPointPanel()].forEach(s=>{const i=new s(e,n);this._permissionService.updatePermissionPoint(i.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e,n)}async setWorksheetPermissionPoint(e,n,s,i){const o=this._worksheetProtectionRuleModel.getRule(e,n);let c;if(s===a.WorksheetEditPermission||s===a.WorksheetViewPermission)o?c=o.permissionId:c=await this.addWorksheetBasePermission(e,n);else{const u=this._worksheetProtectionPointRuleModel.getRule(e,n);u?c=u.permissionId:(c=await this._authzIoService.create({objectType:a.UnitObject.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:"",scope:void 0}}),this._commandService.syncExecuteCommand(a.SetWorksheetPermissionPointsMutation.id,{unitId:e,subUnitId:n,rule:{unitId:e,subUnitId:n,permissionId:c}}))}const l=new s(e,n);if(this._permissionService.getPermissionPoint(l.id)||this._permissionService.addPermissionPoint(l),c){const u=l.subType;await this._authzIoService.update({objectType:a.UnitObject.Worksheet,objectID:c,strategies:[{action:u,role:i?M.Owner:M.Reader}],unitID:e,share:void 0,name:"",scope:void 0,collaborators:void 0})}return this._permissionService.updatePermissionPoint(l.id,i),c}checkWorksheetPermissionPoint(e,n,s){const i=new s(e,n),o=this._permissionService.getPermissionPoint(i.id);if(o)return o.value}async addRangeBaseProtection(e,n,s,i){let o=[];if(i!=null&&i.allowedUsers){const b=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),H=new Set(i.allowedUsers);o=b.filter(v=>{var x;return H.has(((x=v.subject)==null?void 0:x.userID)||v.id)}).map(v=>({id:v.id,role:M.Editor,subject:v.subject}));const $=new Set(o.map(v=>{var x;return((x=v.subject)==null?void 0:x.userID)||v.id}));i.allowedUsers.forEach(v=>{$.has(v)||console.error(`User ${v} not found in collaborators list`)})}const c=await this._authzIoService.create({objectType:a.UnitObject.SelectRange,selectRangeObject:{collaborators:o,unitID:e,name:(i==null?void 0:i.name)||"",scope:void 0}}),d=`ruleId_${h.generateRandomId(6)}`;if(this._rangeProtectionRuleModel.getSubunitRuleList(e,n).some(b=>b.ranges.some(H=>s.some($=>h.Rectangle.intersects($.getRange(),H)))))throw new Error("range protection cannot intersect");const u=this._determineRangeViewState(i),_=this._determineRangeEditState(i),k={unitId:e,subUnitId:n,rules:[{permissionId:c,unitType:a.UnitObject.SelectRange,unitId:e,subUnitId:n,ranges:s.map(b=>b.getRange()),id:d,description:i==null?void 0:i.name,viewState:u,editState:_}]};if(this._commandService.syncExecuteCommand(a.AddRangeProtectionMutation.id,k))return{permissionId:c,ruleId:d}}_determineRangeViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?a.ViewStateEnum.NoOneElseCanView:a.ViewStateEnum.OthersCanView}_determineRangeEditState(e){var n;return(e==null?void 0:e.allowEdit)===!0&&((n=e==null?void 0:e.allowedUsers)!=null&&n.length)?a.EditStateEnum.DesignedUserCanEdit:a.EditStateEnum.OnlyMe}removeRangeProtection(e,n,s){this._commandService.syncExecuteCommand(a.DeleteRangeProtectionMutation.id,{unitId:e,subUnitId:n,ruleIds:s})&&this._rangeProtectionRuleModel.getSubunitRuleList(e,n).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e,n),[...a.getAllWorksheetPermissionPointByPointPanel()].forEach(c=>{const d=new c(e,n);this._permissionService.updatePermissionPoint(d.id,d.value)}))}setRangeProtectionPermissionPoint(e,n,s,i,o){const c=new i(e,n,s);this._permissionService.getPermissionPoint(c.id)||this._permissionService.addPermissionPoint(c),this._permissionService.updatePermissionPoint(c.id,o)}setRangeProtectionRanges(e,n,s,i){const o=this._rangeProtectionRuleModel.getRule(e,n,s);if(o){if(this._rangeProtectionRuleModel.getSubunitRuleList(e,n).filter(l=>l.id!==s).some(l=>l.ranges.some(m=>i.some(u=>h.Rectangle.intersects(u.getRange(),m)))))throw new Error("range protection cannot intersect");this._commandService.syncExecuteCommand(a.SetRangeProtectionMutation.id,{unitId:e,subUnitId:n,ruleId:s,rule:{...o,ranges:i.map(l=>l.getRange())}})}}getPermissionInfoWithCell(e,n,s,i){const o=h.cellToRange(s,i),c=this._rangeProtectionRuleModel.getSubunitRuleList(e,n).find(d=>d.ranges.some(m=>h.Rectangle.intersects(o,m)));if(c)return{permissionId:c.permissionId,ruleId:c.id}}};exports.FPermission=ce([P(0,h.Inject(h.Injector)),P(1,h.ICommandService),P(2,h.IPermissionService),P(3,h.Inject(a.WorksheetProtectionRuleModel)),P(4,h.Inject(a.RangeProtectionRuleModel)),P(5,h.Inject(a.WorksheetProtectionPointModel)),P(6,h.Inject(a.WorkbookPermissionService)),P(7,h.Inject(h.IAuthzIoService))],exports.FPermission);var de=Object.getOwnPropertyDescriptor,le=(r,t,e,n)=>{for(var s=n>1?void 0:n?de(t,e):t,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=o(s)||s);return s},ue=(r,t)=>(e,n)=>t(e,n,r);exports.FSelection=class{constructor(t,e,n,s){this._workbook=t,this._worksheet=e,this._selections=n,this._injector=s}getActiveRange(){const t=this._selections.find(e=>!!e.primary);return t?this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,t.range):null}getActiveRangeList(){return this._selections.map(t=>this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,t.range))}getCurrentCell(){const t=this._selections.find(e=>!!e.primary);return t?t.primary:null}getActiveSheet(){const t=this._injector.createInstance(exports.FWorkbook,this._workbook);return this._injector.createInstance(exports.FWorksheet,t,this._workbook,this._worksheet)}updatePrimaryCell(t){const e=this._injector.get(h.ICommandService);let n=[],s=!1;for(const{range:o,style:c}of this._selections)h.Rectangle.contains(o,t.getRange())?(n.push({range:o,primary:a.getPrimaryForRange(t.getRange(),this._worksheet),style:c}),s=!0):n.push({range:o,primary:null,style:c});s||(n=[{range:t.getRange(),primary:a.getPrimaryForRange(t.getRange(),this._worksheet)}]);const i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),selections:n};return e.syncExecuteCommand(a.SetSelectionsOperation.id,i),new exports.FSelection(this._workbook,this._worksheet,n,this._injector)}getNextDataRange(t){if(!this._selections.find(s=>!!s.primary))return null;const n=a.getNextPrimaryCell(this._selections.concat(),t,this._worksheet);return n?this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,n):null}};exports.FSelection=le([ue(3,h.Inject(h.Injector))],exports.FSelection);var Q=(r=>(r[r.Reader=0]="Reader",r[r.Editor=1]="Editor",r[r.Owner=2]="Owner",r[r.UNRECOGNIZED=-1]="UNRECOGNIZED",r))(Q||{}),me=Object.getOwnPropertyDescriptor,ge=(r,t,e,n)=>{for(var s=n>1?void 0:n?me(t,e):t,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=o(s)||s);return s},z=(r,t)=>(e,n)=>t(e,n,r);let y=class{constructor(r,t,e,n,s,i,o,c,d){this._unitId=r,this._subUnitId=t,this._ruleId=e,this._permissionId=n,this._ranges=s,this._options=i,this._injector=o,this._commandService=c,this._rangeProtectionRuleModel=d}get id(){return this._ruleId}get ranges(){return this._ranges}get options(){return{...this._options}}async updateRanges(r){if(!r||r.length===0)throw new Error("Ranges cannot be empty");const t=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,this._ruleId);if(!t)throw new Error(`Rule ${this._ruleId} not found`);if(this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).filter(s=>s.id!==this._ruleId).some(s=>s.ranges.some(i=>r.some(o=>{const c=o.getRange();return this._rangesIntersect(c,i)}))))throw new Error("Range protection cannot intersect with other protection rules");await this._commandService.executeCommand(a.SetRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleId:this._ruleId,rule:{...t,ranges:r.map(s=>s.getRange())}}),this._ranges.length=0,this._ranges.push(...r)}async remove(){await this._commandService.executeCommand(a.DeleteRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleIds:[this._ruleId]})}_rangesIntersect(r,t){return!(r.endRow<t.startRow||r.startRow>t.endRow||r.endColumn<t.startColumn||r.startColumn>t.endColumn)}};y=ge([z(6,h.Inject(h.Injector)),z(7,h.Inject(h.ICommandService)),z(8,h.Inject(a.RangeProtectionRuleModel))],y);const T={[g.Edit]:a.WorkbookEditablePermission,[g.View]:a.WorkbookViewPermission,[g.Print]:a.WorkbookPrintPermission,[g.Export]:a.WorkbookExportPermission,[g.Share]:a.WorkbookSharePermission,[g.CopyContent]:a.WorkbookCopyPermission,[g.DuplicateFile]:a.WorkbookDuplicatePermission,[g.Comment]:a.WorkbookCommentPermission,[g.ManageCollaborator]:a.WorkbookManageCollaboratorPermission,[g.CreateSheet]:a.WorkbookCreateSheetPermission,[g.DeleteSheet]:a.WorkbookDeleteSheetPermission,[g.RenameSheet]:a.WorkbookRenameSheetPermission,[g.MoveSheet]:a.WorkbookMoveSheetPermission,[g.HideSheet]:a.WorkbookHideSheetPermission,[g.ViewHistory]:a.WorkbookViewHistoryPermission,[g.ManageHistory]:a.WorkbookHistoryPermission,[g.RecoverHistory]:a.WorkbookRecoverHistoryPermission,[g.CreateProtection]:a.WorkbookCreateProtectPermission,[g.InsertRow]:a.WorkbookInsertRowPermission,[g.InsertColumn]:a.WorkbookInsertColumnPermission,[g.DeleteRow]:a.WorkbookDeleteRowPermission,[g.DeleteColumn]:a.WorkbookDeleteColumnPermission,[g.CopySheet]:a.WorkbookCopySheetPermission},V={[S.Edit]:a.WorksheetEditPermission,[S.View]:a.WorksheetViewPermission,[S.Copy]:a.WorksheetCopyPermission,[S.SetCellValue]:a.WorksheetSetCellValuePermission,[S.SetCellStyle]:a.WorksheetSetCellStylePermission,[S.SetRowStyle]:a.WorksheetSetRowStylePermission,[S.SetColumnStyle]:a.WorksheetSetColumnStylePermission,[S.InsertRow]:a.WorksheetInsertRowPermission,[S.InsertColumn]:a.WorksheetInsertColumnPermission,[S.DeleteRow]:a.WorksheetDeleteRowPermission,[S.DeleteColumn]:a.WorksheetDeleteColumnPermission,[S.Sort]:a.WorksheetSortPermission,[S.Filter]:a.WorksheetFilterPermission,[S.PivotTable]:a.WorksheetPivotTablePermission,[S.InsertHyperlink]:a.WorksheetInsertHyperlinkPermission,[S.EditExtraObject]:a.WorksheetEditExtraObjectPermission,[S.ManageCollaborator]:a.WorksheetManageCollaboratorPermission,[S.DeleteProtection]:a.WorksheetDeleteProtectionPermission,[S.SelectProtectedCells]:a.WorksheetSelectProtectedCellsPermission,[S.SelectUnProtectedCells]:a.WorksheetSelectUnProtectedCellsPermission},N={[I.Edit]:a.RangeProtectionPermissionEditPoint,[I.View]:a.RangeProtectionPermissionViewPoint,[I.ManageCollaborator]:a.RangeProtectionPermissionManageCollaPoint,[I.Delete]:a.RangeProtectionPermissionDeleteProtectionPoint};var _e=Object.getOwnPropertyDescriptor,Se=(r,t,e,n)=>{for(var s=n>1?void 0:n?_e(t,e):t,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=o(s)||s);return s},W=(r,t)=>(e,n)=>t(e,n,r);let q=class{constructor(r,t,e,n,s,i,o,c){w(this,"_permissionSubject");w(this,"_rangeRulesSubject");w(this,"permission$");w(this,"pointChange$");w(this,"rangeProtectionChange$");w(this,"rangeProtectionRules$");w(this,"_unitId");w(this,"_subUnitId");w(this,"_subscriptions",[]);w(this,"_fPermission");this._worksheet=r,this._injector=t,this._permissionService=e,this._authzIoService=n,this._commandService=s,this._rangeProtectionRuleModel=i,this._worksheetProtectionPointModel=o,this._worksheetProtectionRuleModel=c,this._unitId=this._worksheet.getWorkbook().getUnitId(),this._subUnitId=this._worksheet.getSheetId(),this._fPermission=this._injector.createInstance(exports.FPermission),this._permissionSubject=new O.BehaviorSubject(this._buildSnapshot()),this._rangeRulesSubject=new O.BehaviorSubject(this._buildRangeProtectionRules()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.rangeProtectionChange$=this._createRangeProtectionChangeStream(),this.rangeProtectionRules$=this._createRangeProtectionRulesStream()}_createPermissionStream(){const r=this._permissionService.permissionPointUpdate$.pipe(C.filter(t=>t.id.includes(this._unitId)&&t.id.includes(this._subUnitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(r),this._permissionSubject.asObservable().pipe(C.distinctUntilChanged((t,e)=>JSON.stringify(t)===JSON.stringify(e)),C.shareReplay({bufferSize:1,refCount:!0}))}_createPointChangeStream(){return this._permissionService.permissionPointUpdate$.pipe(C.filter(r=>r.id.includes(this._unitId)&&r.id.includes(this._subUnitId)),C.map(r=>{var e,n;const t=this._extractWorksheetPointType(r.id);return t?{point:t,value:(e=r.value)!=null?e:!1,oldValue:!((n=r.value)!=null&&n)}:null}),C.filter(r=>r!==null),C.shareReplay({bufferSize:1,refCount:!0}))}_createRangeProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe(C.filter(r=>r.unitId===this._unitId&&r.subUnitId===this._subUnitId),C.map(r=>{const t=this._buildRangeProtectionRules();return{type:r.type==="delete"?"delete":r.type==="set"?"update":"add",rules:t}}),C.shareReplay({bufferSize:1,refCount:!0}))}_createRangeProtectionRulesStream(){const r=this._rangeProtectionRuleModel.ruleChange$.pipe(C.filter(t=>t.unitId===this._unitId&&t.subUnitId===this._subUnitId)).subscribe(()=>{this._rangeRulesSubject.next(this._buildRangeProtectionRules())});return this._subscriptions.push(r),this._rangeRulesSubject.asObservable().pipe(C.distinctUntilChanged((t,e)=>t.length!==e.length?!1:t.every((n,s)=>n.id===e[s].id)),C.shareReplay({bufferSize:1,refCount:!0}))}_extractWorksheetPointType(r){for(const[t,e]of Object.entries(V))if(new e(this._unitId,this._subUnitId).id===r)return t;return null}_getRuleEditPermission(r){var s;const t=N[I.Edit];if(!t)return!1;const e=new t(this._unitId,this._subUnitId,r.permissionId),n=this._permissionService.getPermissionPoint(e.id);return(s=n==null?void 0:n.value)!=null?s:!1}_buildSnapshot(){const r={};for(const t in S){const e=S[t];r[e]=this.getPoint(e)}return r}_buildRangeProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(t=>{const e=t.ranges.map(n=>this._worksheet.getRange(n.startRow,n.startColumn,n.endRow-n.startRow+1,n.endColumn-n.startColumn+1));return this._injector.createInstance(y,this._unitId,this._subUnitId,t.id,t.permissionId,e,{name:t.description||"",allowEdit:this._getRuleEditPermission(t)})})}_buildProtectionRule(r){const t=r.ranges.map(n=>this._worksheet.getRange(n)),e={name:r.description||"",allowViewByOthers:r.viewState!==a.ViewStateEnum.NoOneElseCanView};return r.editState===a.EditStateEnum.DesignedUserCanEdit?e.allowEdit=!0:e.allowEdit=!1,this._injector.createInstance(y,this._unitId,this._subUnitId,r.id,r.permissionId,t,e)}debugCellPermission(r,t){const e=this._fPermission.getPermissionInfoWithCell(this._unitId,this._subUnitId,r,t);if(!e)return;const{ruleId:n}=e,s=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,n);if(s)return this._buildProtectionRule(s)}async protect(r){if(this.isProtected())throw new Error("Worksheet is already protected. Call unprotect() first.");const t=await this._fPermission.addWorksheetBasePermission(this._unitId,this._subUnitId,r);if(!t)throw new Error("Failed to create worksheet protection");return t}async unprotect(){if(!this.isProtected())return;this._fPermission.removeWorksheetPermission(this._unitId,this._subUnitId);const r=this._buildSnapshot();this._permissionSubject.next(r)}isProtected(){return!!this._worksheetProtectionRuleModel.getRule(this._unitId,this._subUnitId)}async setMode(r){const t=this._getModePermissions(r);await this._batchSetPermissionPoints(t)}_getModePermissions(r){const t={};switch(Object.values(S).forEach(e=>{t[e]=!1}),r){case"editable":Object.values(S).forEach(e=>{t[e]=!0});break;case"readOnly":t[S.View]=!0;break;case"filterOnly":t[S.View]=!0,t[S.Sort]=!0,t[S.Filter]=!0;break}return t}async _batchSetPermissionPoints(r){const t=[];for(const[e,n]of Object.entries(r)){const s=e,i=V[s];if(!i)throw new Error(`Unknown worksheet permission point: ${s}`);const o=this.getPoint(s);o!==n&&(await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,i,n),t.push({point:s,value:n,oldValue:o}))}if(t.length>0){const e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode("readOnly")}async setEditable(){await this.setMode("editable")}canEdit(){return this.getPoint(S.Edit)}canEditCell(r,t){if(!this.canEdit())return!1;const e=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);for(const n of e)for(const s of n.ranges)if(r>=s.startRow&&r<=s.endRow&&t>=s.startColumn&&t<=s.endColumn)return this._getRuleEditPermission(n);return!0}canViewCell(r,t){return this.getPoint(S.View)}async setPoint(r,t){const e=V[r];if(!e)throw new Error(`Unknown worksheet permission point: ${r}`);if(this.getPoint(r)===t)return;await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,e,t);const s=this._buildSnapshot();this._permissionSubject.next(s)}getPoint(r){var s;const t=V[r];if(!t)throw new Error(`Unknown worksheet permission point: ${r}`);const e=new t(this._unitId,this._subUnitId),n=this._permissionService.getPermissionPoint(e.id);return(s=n==null?void 0:n.value)!=null?s:!0}getSnapshot(){return this._buildSnapshot()}async applyConfig(r){if(r.mode&&await this.setMode(r.mode),r.points)for(const[t,e]of Object.entries(r.points))typeof e=="boolean"&&await this.setPoint(t,e);if(r.rangeProtections&&r.rangeProtections.length>0){const t=r.rangeProtections.map(e=>({ranges:e.rangeRefs.map(n=>this._worksheet.getRange(n)),options:e.options}));await this.protectRanges(t)}}async protectRanges(r){if(!r||r.length===0)throw new Error("Configs cannot be empty");let t=[];r.some(c=>{var d,l;return(l=(d=c.options)==null?void 0:d.allowedUsers)==null?void 0:l.length})&&(t=await this._authzIoService.listCollaborators({objectID:this._unitId,unitID:this._unitId}));const n=await Promise.all(r.map(c=>{var l,m;let d=[];if((l=c.options)!=null&&l.allowedUsers){const u=new Set(c.options.allowedUsers);d=t.filter(k=>{var f;return u.has(((f=k.subject)==null?void 0:f.userID)||k.id)}).map(k=>({id:k.id,role:Q.Editor,subject:k.subject}));const _=new Set(d.map(k=>{var f;return((f=k.subject)==null?void 0:f.userID)||k.id}));c.options.allowedUsers.forEach(k=>{_.has(k)||console.error(`User ${k} not found in collaborators list`)})}return this._authzIoService.create({objectType:a.UnitObject.SelectRange,selectRangeObject:{collaborators:d,unitID:this._unitId,name:((m=c.options)==null?void 0:m.name)||"",scope:void 0}})})),s=r.map((c,d)=>{var u;const l=this._determineViewState(c.options),m=this._determineEditState(c.options);return{permissionId:n[d],unitType:a.UnitObject.SelectRange,unitId:this._unitId,subUnitId:this._subUnitId,ranges:c.ranges.map(_=>_.getRange()),id:this._rangeProtectionRuleModel.createRuleId(this._unitId,this._subUnitId),description:((u=c.options)==null?void 0:u.name)||"",viewState:l,editState:m}});if(!await this._commandService.executeCommand(a.AddRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,rules:s}))throw new Error("Failed to create range protection rules");return await Promise.all(r.map((c,d)=>this._setPermissionPoints(n[d],c.options))),s.map((c,d)=>this._injector.createInstance(y,this._unitId,this._subUnitId,c.id,c.permissionId,r[d].ranges,r[d].options||{}))}_determineViewState(r){return(r==null?void 0:r.allowViewByOthers)===!1?a.ViewStateEnum.NoOneElseCanView:a.ViewStateEnum.OthersCanView}_determineEditState(r){var t;return(r==null?void 0:r.allowEdit)===!0&&((t=r==null?void 0:r.allowedUsers)!=null&&t.length)?a.EditStateEnum.DesignedUserCanEdit:a.EditStateEnum.OnlyMe}async _setPermissionPoints(r,t){if(!t)return;const e=(n,s)=>n===void 0?s:typeof n=="boolean"?n:!0;await this._setPermissionPoint(r,I.Edit,e(t.allowEdit,!1)),await this._setPermissionPoint(r,I.View,e(t.allowViewByOthers,!0))}async _setPermissionPoint(r,t,e){const n=N[t];n&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,r,n,e)}async unprotectRules(r){!r||r.length===0||this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,r)}async listRangeProtectionRules(){return this._buildRangeProtectionRules()}subscribe(r){const t=this.permission$.subscribe(r);return()=>t.unsubscribe()}dispose(){this._subscriptions.forEach(r=>r.unsubscribe()),this._permissionSubject.complete(),this._rangeRulesSubject.complete()}};q=Se([W(1,h.Inject(h.Injector)),W(2,h.IPermissionService),W(3,h.IAuthzIoService),W(4,h.ICommandService),W(5,h.Inject(a.RangeProtectionRuleModel)),W(6,h.Inject(a.WorksheetProtectionPointModel)),W(7,h.Inject(a.WorksheetProtectionRuleModel))],q);function we(r){switch(r){case"left":return h.HorizontalAlign.LEFT;case"center":return h.HorizontalAlign.CENTER;case"normal":return h.HorizontalAlign.RIGHT;default:throw new Error(`Invalid horizontal alignment: ${r}`)}}function X(r){switch(r){case h.HorizontalAlign.LEFT:return"left";case h.HorizontalAlign.CENTER:return"center";case h.HorizontalAlign.RIGHT:return"normal";default:return"general"}}function Ce(r){switch(r){case"top":return h.VerticalAlign.TOP;case"middle":return h.VerticalAlign.MIDDLE;case"bottom":return h.VerticalAlign.BOTTOM;default:throw new Error(`Invalid vertical alignment: ${r}`)}}function ee(r){switch(r){case h.VerticalAlign.TOP:return"top";case h.VerticalAlign.MIDDLE:return"middle";case h.VerticalAlign.BOTTOM:return"bottom";default:return"general"}}function L(r,t){return{startRow:r.startRow,endRow:r.endRow,startColumn:0,endColumn:t.getColumnCount()-1,rangeType:h.RANGE_TYPE.ROW}}function G(r,t){return{startRow:0,endRow:t.getRowCount()-1,startColumn:r.startColumn,endColumn:r.endColumn,rangeType:h.RANGE_TYPE.COLUMN}}var ke=Object.getOwnPropertyDescriptor,Ie=(r,t,e,n)=>{for(var s=n>1?void 0:n?ke(t,e):t,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=o(s)||s);return s},A=(r,t)=>(e,n)=>t(e,n,r);exports.FWorksheet=class extends R.FBaseInitialable{constructor(e,n,s,i,o,c,d){super(i);w(this,"setActiveSelection",this.setActiveRange);this._fWorkbook=e,this._workbook=n,this._worksheet=s,this._injector=i,this._selectionManagerService=o,this._logService=c,this._commandService=d}dispose(){super.dispose(),delete this._fWorkbook,delete this._workbook,delete this._worksheet}getSheet(){return this._worksheet}getInject(){return this._injector}getWorkbook(){return this._workbook}getSheetId(){return this._worksheet.getSheetId()}getSheetName(){return this._worksheet.getName()}getSelection(){const e=this._selectionManagerService.getCurrentSelections();return e?this._injector.createInstance(exports.FSelection,this._workbook,this._worksheet,e):null}getDefaultStyle(){return this._worksheet.getDefaultCellStyle()}getRowDefaultStyle(e,n=!1){return n?this._worksheet.getRowStyle(e,n):this._worksheet.getRowStyle(e)}getColumnDefaultStyle(e,n=!1){return n?this._worksheet.getColumnStyle(e,n):this._worksheet.getColumnStyle(e)}setDefaultStyle(e){const n=this._workbook.getUnitId(),s=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(a.SetWorksheetDefaultStyleMutation.id,{unitId:n,subUnitId:s,defaultStyle:e}),this._worksheet.setDefaultCellStyle(e),this}setColumnDefaultStyle(e,n){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={unitId:s,subUnitId:i,columnData:{[e]:{s:n}}};return this._commandService.syncExecuteCommand(a.SetColDataCommand.id,o),this}setRowDefaultStyle(e,n){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={unitId:s,subUnitId:i,rowData:{[e]:{s:n}}};return this._commandService.syncExecuteCommand(a.SetRowDataCommand.id,o),this}getRange(e,n,s,i){let o,c;if(typeof e=="object")o=e,c=this._worksheet;else if(typeof e=="string"){const{range:d,sheetName:l}=U.deserializeRangeWithSheet(e),m=l?this._workbook.getSheetBySheetName(l):this._worksheet;if(!m)throw new Error("Range not found");c=m,o={...d,unitId:this._workbook.getUnitId(),sheetId:c.getSheetId(),rangeType:h.RANGE_TYPE.NORMAL,startRow:d.rangeType===h.RANGE_TYPE.COLUMN?0:d.startRow,endRow:d.rangeType===h.RANGE_TYPE.COLUMN?c.getMaxRows()-1:d.endRow,startColumn:d.rangeType===h.RANGE_TYPE.ROW?0:d.startColumn,endColumn:d.rangeType===h.RANGE_TYPE.ROW?c.getMaxColumns()-1:d.endColumn}}else if(typeof e=="number"&&n!==void 0)c=this._worksheet,o={startRow:e,endRow:e+(s!=null?s:1)-1,startColumn:n,endColumn:n+(i!=null?i:1)-1,unitId:this._workbook.getUnitId(),sheetId:this._worksheet.getSheetId()};else throw new Error("Invalid range specification");return this._injector.createInstance(exports.FRange,this._workbook,c,o)}getMaxColumns(){return this._worksheet.getMaxColumns()}getMaxRows(){return this._worksheet.getMaxRows()}insertRowAfter(e){return this.insertRowsAfter(e,1)}insertRowBefore(e){return this.insertRowsBefore(e,1)}insertRows(e,n=1){return this.insertRowsBefore(e,n)}insertRowsAfter(e,n){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=h.Direction.DOWN,c=e+1,d=e+n,l=0,m=this._worksheet.getColumnCount()-1,u=a.copyRangeStyles(this._worksheet,c,d,l,m,!0,e);return this._commandService.syncExecuteCommand(a.InsertRowByRangeCommand.id,{unitId:s,subUnitId:i,direction:o,range:{startRow:c,endRow:d,startColumn:l,endColumn:m},cellValue:u}),this}insertRowsBefore(e,n){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=h.Direction.UP,c=e,d=e+n-1,l=0,m=this._worksheet.getColumnCount()-1,u=a.copyRangeStyles(this._worksheet,c,d,l,m,!0,e-1);return this._commandService.syncExecuteCommand(a.InsertRowByRangeCommand.id,{unitId:s,subUnitId:i,direction:o,range:{startRow:c,endRow:d,startColumn:l,endColumn:m},cellValue:u}),this}deleteRow(e){return this.deleteRows(e,1)}deleteRows(e,n){const s={startRow:e,endRow:e+n-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return this._commandService.syncExecuteCommand(a.RemoveRowByRangeCommand.id,{range:s,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteRowsByPoints(e){return h.generateIntervalsByPoints(e).reverse().forEach(s=>{this.deleteRows(s[0],s[1]-s[0]+1)}),this}moveRows(e,n){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=L(e.getRange(),this._worksheet),c=o,d={startRow:n,endRow:n,startColumn:o.startColumn,endColumn:o.endColumn};return this._commandService.syncExecuteCommand(a.MoveRowsCommand.id,{unitId:s,subUnitId:i,range:o,fromRange:c,toRange:d}),this}hideRow(e){const n=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),i=L(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetRowHiddenCommand.id,{unitId:n,subUnitId:s,ranges:[i]}),this}hideRows(e,n=1){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={startRow:e,endRow:e+n-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:h.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(a.SetRowHiddenCommand.id,{unitId:s,subUnitId:i,ranges:[o]}),this}unhideRow(e){const n=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),i=L(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetSpecificRowsVisibleCommand.id,{unitId:n,subUnitId:s,ranges:[i]}),this}showRows(e,n=1){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={startRow:e,endRow:e+n-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:h.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(a.SetSpecificRowsVisibleCommand.id,{unitId:s,subUnitId:i,ranges:[o]}),this}setRowHeight(e,n){return this.setRowHeights(e,1,n)}autoFitRow(e,n=h.BooleanNumber.TRUE){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(a.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:o[0],value:h.WrapStrategy.WRAP}),this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightMutation.id,{unitId:s,subUnitId:i,ranges:o,autoHeightInfo:n}),this}setRowHeights(e,n,s){var m;const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),c=this._worksheet.getRowManager(),d=[],l=[];for(let u=e;u<e+n;u++){const _=((m=c.getRow(u))==null?void 0:m.ah)||this._worksheet.getConfig().defaultRowHeight,k={startRow:u,endRow:u,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};s<=_?d.push(k):l.push(k)}return l.length>0&&this._commandService.syncExecuteCommand(a.SetRowHeightCommand.id,{unitId:i,subUnitId:o,ranges:l,value:s}),d.length>0&&this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightCommand.id,{unitId:i,subUnitId:o,ranges:d}),this}getRowHeight(e){return this._worksheet.getRowHeight(e)}setRowAutoHeight(e,n){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e+n-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightCommand.id,{unitId:s,subUnitId:i,ranges:o}),this}setRangesAutoHeight(e){const n=this._workbook.getUnitId(),s=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightCommand.id,{unitId:n,subUnitId:s,ranges:e}),this}setRowHeightsForced(e,n,s){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),c=[{startRow:e,endRow:e+n-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(a.SetRowHeightCommand.id,{unitId:i,subUnitId:o,ranges:c,value:s}),this}setRowCustom(e){const n=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),i={};for(const[c,d]of Object.entries(e))i[Number(c)]={custom:d};const o={unitId:n,subUnitId:s,rowData:i};return this._commandService.syncExecuteCommand(a.SetRowDataCommand.id,o),this}insertColumnAfter(e){return this.insertColumnsAfter(e,1)}insertColumnBefore(e){return this.insertColumnsBefore(e,1)}insertColumns(e,n=1){return this.insertColumnsBefore(e,n)}insertColumnsAfter(e,n){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=h.Direction.RIGHT,c=0,d=this._worksheet.getRowCount()-1,l=e+1,m=e+n,u=a.copyRangeStyles(this._worksheet,c,d,l,m,!1,e);return this._commandService.syncExecuteCommand(a.InsertColByRangeCommand.id,{unitId:s,subUnitId:i,direction:o,range:{startRow:c,endRow:d,startColumn:l,endColumn:m},cellValue:u}),this}insertColumnsBefore(e,n){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=h.Direction.LEFT,c=0,d=this._worksheet.getRowCount()-1,l=e,m=e+n-1,u=a.copyRangeStyles(this._worksheet,c,d,l,m,!1,e-1);return this._commandService.syncExecuteCommand(a.InsertColByRangeCommand.id,{unitId:s,subUnitId:i,direction:o,range:{startRow:c,endRow:d,startColumn:l,endColumn:m},cellValue:u}),this}deleteColumn(e){return this.deleteColumns(e,1)}deleteColumns(e,n){const s={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+n-1};return this._commandService.syncExecuteCommand(a.RemoveColByRangeCommand.id,{range:s,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteColumnsByPoints(e){return h.generateIntervalsByPoints(e).reverse().forEach(s=>{this.deleteColumns(s[0],s[1]-s[0]+1)}),this}moveColumns(e,n){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=G(e.getRange(),this._worksheet),c=o,d={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:n,endColumn:n};return this._commandService.syncExecuteCommand(a.MoveColsCommand.id,{unitId:s,subUnitId:i,range:o,fromRange:c,toRange:d}),this}hideColumn(e){const n=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),i=G(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetColHiddenCommand.id,{unitId:n,subUnitId:s,ranges:[i]}),this}hideColumns(e,n=1){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+n-1,rangeType:h.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(a.SetColHiddenCommand.id,{unitId:s,subUnitId:i,ranges:[o]}),this}unhideColumn(e){const n=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),i=G(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetSpecificColsVisibleCommand.id,{unitId:n,subUnitId:s,ranges:[i]}),this}showColumns(e,n=1){const s=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+n-1,rangeType:h.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(a.SetSpecificColsVisibleCommand.id,{unitId:s,subUnitId:i,ranges:[o]}),this}setColumnWidth(e,n){return this.setColumnWidths(e,1,n)}setColumnWidths(e,n,s){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),c=[{startColumn:e,endColumn:e+n-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(a.SetColWidthCommand.id,{unitId:i,subUnitId:o,ranges:c,value:s}),this}getColumnWidth(e){return this._worksheet.getColumnWidth(e)}setColumnCustom(e){const n=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),i={};for(const[c,d]of Object.entries(e))i[Number(c)]={custom:d};const o={unitId:n,subUnitId:s,columnData:i};return this._commandService.syncExecuteCommand(a.SetColDataCommand.id,o),this}getMergeData(){return this._worksheet.getMergeData().map(e=>this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,e))}getMergedRanges(){return this._worksheet.getSnapshot().mergeData.map(n=>this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,n))}getCellMergeData(e,n){const i=this._worksheet.getMergedCell(e,n);if(i)return this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,i)}getActiveRange(){return this._fWorkbook.getActiveRange()}setActiveRange(e){const{unitId:n,sheetId:s}=e.getRange();if(n!==this._workbook.getUnitId()||s!==this._worksheet.getSheetId())throw new Error("Specified range must be part of the sheet.");return this._fWorkbook.setActiveRange(e),this}getActiveCell(){return this._fWorkbook.getActiveCell()}setFreeze(e){return this._logService.warn("setFreeze is deprecated, use setFrozenRows and setFrozenColumns instead"),this._commandService.syncExecuteCommand(a.SetFrozenCommand.id,{...e,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}cancelFreeze(){return this._commandService.syncExecuteCommand(a.CancelFrozenCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}getFreeze(){return this._worksheet.getFreeze()}setFrozenColumns(...e){const n=this.getFreeze();if(arguments.length===1){const s=e[0];this.setFreeze({...n,startColumn:s>0?s:-1,xSplit:s})}else if(arguments.length===2){let[s=0,i=0]=e;s>i&&([s,i]=[i,s]),this._commandService.syncExecuteCommand(a.SetFrozenCommand.id,{startColumn:i+1,xSplit:i-s+1,startRow:n.startRow,ySplit:n.ySplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}setFrozenRows(...e){const n=this.getFreeze();if(arguments.length===1){const s=e[0];this.setFreeze({...n,startRow:s>0?s:-1,ySplit:s})}else if(arguments.length===2){let[s=0,i=0]=e;s>i&&([s,i]=[i,s]),this._commandService.syncExecuteCommand(a.SetFrozenCommand.id,{startRow:i+1,ySplit:i-s+1,startColumn:n.startColumn,xSplit:n.xSplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}getFrozenColumns(){const e=this.getFreeze();return e.startColumn===-1?0:e.startColumn}getFrozenRows(){const e=this.getFreeze();return e.startRow===-1?0:e.startRow}getFrozenRowRange(){const e=this._worksheet.getFreeze();return{startRow:e.startRow-e.ySplit,endRow:e.startRow-1}}getFrozenColumnRange(){const e=this._worksheet.getFreeze();return{startColumn:e.startColumn-e.xSplit,endColumn:e.startColumn-1}}hasHiddenGridLines(){return this._worksheet.getConfig().showGridlines===h.BooleanNumber.FALSE}setHiddenGridlines(e){return this._commandService.syncExecuteCommand(a.ToggleGridlinesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),showGridlines:e?h.BooleanNumber.FALSE:h.BooleanNumber.TRUE}),this}setGridLinesColor(e){return this._commandService.syncExecuteCommand(a.SetGridlinesColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),color:e}),this}getGridLinesColor(){return this._worksheet.getGridlinesColor()}setTabColor(e){return this._commandService.syncExecuteCommand(a.SetTabColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),value:e}),this}getTabColor(){return this._worksheet.getTabColor()}onCellDataChange(e){return this._injector.get(h.ICommandService).onCommandExecuted(s=>{if(s.id===a.SetRangeValuesMutation.id){const i=s.params;i.unitId===this._workbook.getUnitId()&&i.subUnitId===this._worksheet.getSheetId()&&i.cellValue&&e(new h.ObjectMatrix(i.cellValue))}})}onBeforeCellDataChange(e){return this._injector.get(h.ICommandService).beforeCommandExecuted(s=>{if(s.id===a.SetRangeValuesMutation.id){const i=s.params;i.unitId===this._workbook.getUnitId()&&i.subUnitId===this._worksheet.getSheetId()&&i.cellValue&&e(new h.ObjectMatrix(i.cellValue))}})}hideSheet(){const e=this._injector.get(h.ICommandService);if(this._workbook.getSheets().filter(o=>o.isSheetHidden()!==h.BooleanNumber.TRUE).length<=1)throw new Error("Cannot hide the only visible sheet");return e.syncExecuteCommand(a.SetWorksheetHideCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}showSheet(){return this._injector.get(h.ICommandService).syncExecuteCommand(a.SetWorksheetShowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}isSheetHidden(){return this._worksheet.isSheetHidden()===h.BooleanNumber.TRUE}setName(e){return this._commandService.syncExecuteCommand(a.SetWorksheetNameCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),name:e}),this}activate(){return this._fWorkbook.setActiveSheet(this),this}getIndex(){return this._workbook.getSheetIndex(this._worksheet)}clear(e){if(e&&e.contentsOnly&&!e.formatOnly)return this.clearContents();if(e&&e.formatOnly&&!e.contentsOnly)return this.clearFormats();const n=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),i=this._injector.get(h.ICommandService),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return i.syncExecuteCommand(a.ClearSelectionAllCommand.id,{unitId:n,subUnitId:s,ranges:[o],options:e}),this}clearContents(){const e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),s=this._injector.get(h.ICommandService),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return s.syncExecuteCommand(a.ClearSelectionContentCommand.id,{unitId:e,subUnitId:n,ranges:[i]}),this}clearFormats(){const e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),s=this._injector.get(h.ICommandService),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return s.syncExecuteCommand(a.ClearSelectionFormatCommand.id,{unitId:e,subUnitId:n,ranges:[i]}),this}getDataRange(){const{startRow:e,endRow:n,startColumn:s,endColumn:i}=this._worksheet.getDataRealRange();return this.getRange(e,s,n-e+1,i-s+1)}getLastColumns(){return this._worksheet.getLastColumnWithContent()}getLastColumn(){return this._worksheet.getLastColumnWithContent()}getLastRows(){return this._worksheet.getLastRowWithContent()}getLastRow(){return this._worksheet.getLastRowWithContent()}equalTo(e){return e instanceof exports.FWorksheet?this._worksheet.getSheetId()===e.getSheetId()&&this._workbook.getUnitId()===e.getWorkbook().getUnitId():!1}insertDefinedName(e,n){const i=this._injector.createInstance(B).setName(e).setRef(n).build();i.localSheetId=this.getSheetId(),this._fWorkbook.insertDefinedNameBuilder(i)}getDefinedNames(){return this._fWorkbook.getDefinedNames().filter(n=>n.getLocalSheetId()===this.getSheetId())}setCustomMetadata(e){return this._worksheet.setCustomMetadata(e),this}getCustomMetadata(){return this._worksheet.getCustomMetadata()}setRowCustomMetadata(e,n){return this._worksheet.getRowManager().setCustomMetadata(e,n),this}setColumnCustomMetadata(e,n){return this._worksheet.getColumnManager().setCustomMetadata(e,n),this}getRowCustomMetadata(e){return this._worksheet.getRowManager().getCustomMetadata(e)}getColumnCustomMetadata(e){return this._worksheet.getColumnManager().getCustomMetadata(e)}appendRow(e){const n=this._worksheet.getCellMatrix().hasValue(),s=this._worksheet.getLastRowWithContent(),i=this._worksheet.getRowCount(),o=this._worksheet.getColumnCount(),c=n?s+1:s,d=new h.ObjectMatrix;for(let l=0;l<e.length;l++)d.setValue(c,l,h.covertCellValue(e[l]));return this._commandService.syncExecuteCommand(a.AppendRowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),cellValue:d.getMatrix(),insertRowNums:c>i-1?1:0,insertColumnNums:e.length>o?e.length-o:0,maxRows:i,maxColumns:o}),this}setRowCount(e){return this._commandService.syncExecuteCommand(a.SetWorksheetRowCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowCount:e}),this}setColumnCount(e){return this._commandService.syncExecuteCommand(a.SetWorksheetColumnCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),columnCount:e}),this}getWorksheetPermission(){return this._injector.createInstance(q,this)}};exports.FWorksheet=Ie([A(3,h.Inject(h.Injector)),A(4,h.Inject(a.SheetsSelectionsService)),A(5,h.Inject(h.ILogService)),A(6,h.ICommandService)],exports.FWorksheet);var be=Object.getOwnPropertyDescriptor,fe=(r,t,e,n)=>{for(var s=n>1?void 0:n?be(t,e):t,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=o(s)||s);return s},j=(r,t)=>(e,n)=>t(e,n,r);let J=class{constructor(r,t,e,n,s,i,o,c,d){w(this,"_permissionSubject");w(this,"_subscriptions",[]);w(this,"_fPermission");w(this,"permission$");w(this,"protectionChange$");this._unitId=r,this._subUnitId=t,this._range=e,this._worksheet=n,this._injector=s,this._permissionService=i,this._authzIoService=o,this._commandService=c,this._rangeProtectionRuleModel=d,this._fPermission=this._injector.createInstance(exports.FPermission),this._permissionSubject=new O.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.protectionChange$=this._createProtectionChangeStream()}_createPermissionStream(){const r=this._permissionService.permissionPointUpdate$.pipe(C.filter(t=>{const e=t.id;return e.includes(this._unitId)&&e.includes(this._subUnitId)})).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(r),this._permissionSubject.asObservable().pipe(C.distinctUntilChanged((t,e)=>JSON.stringify(t)===JSON.stringify(e)),C.shareReplay({bufferSize:1,refCount:!0}))}_createProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe(C.filter(r=>r.unitId!==this._unitId||r.subUnitId!==this._subUnitId?!1:r.type==="delete"?this._rangeMatches(r.rule):r.type==="add"?this._rangeMatches(r.rule):!1),C.map(r=>(this._permissionSubject.next(this._buildSnapshot()),r.type==="delete"?{type:"unprotected",ruleId:r.rule.id}:{type:"protected",rule:this._createFacadeRule(r.rule)})),C.shareReplay({bufferSize:1,refCount:!0}))}_rangeMatches(r){const t=this._range.getRange();return r.ranges.some(e=>t.startRow===e.startRow&&t.startColumn===e.startColumn&&t.endRow===e.endRow&&t.endColumn===e.endColumn)}_createFacadeRule(r){const t=r.ranges.map(n=>this._worksheet.getRange(n.startRow,n.startColumn,n.endRow-n.startRow+1,n.endColumn-n.startColumn+1)),e={name:r.description||"",allowViewByOthers:r.viewState!==a.ViewStateEnum.NoOneElseCanView,allowEdit:r.editState===a.EditStateEnum.DesignedUserCanEdit};return this._injector.createInstance(y,this._unitId,this._subUnitId,r.id,r.permissionId,t,e)}getPoint(r){const t=N[r];if(!t)return console.warn(`Unknown permission point: ${r}`),!1;const e=this._getProtectionRule();if(e){const n=new t(this._unitId,this._subUnitId,e.permissionId),s=this._permissionService.getPermissionPoint(n.id);if(s)return s.value}return!0}getSnapshot(){return this._buildSnapshot()}isProtected(){return this._getProtectionRule()!==null}canEdit(){return this.getPoint(I.Edit)}canView(){return this.getPoint(I.View)}canManageCollaborator(){return this.getPoint(I.ManageCollaborator)}canDelete(){return this.getPoint(I.Delete)}async setPoint(r,t){const e=N[r];if(!e)throw new Error(`Unknown permission point: ${r}`);const n=this._getProtectionRule();if(!n)throw new Error("Cannot set permission point: No protection rule exists for this range. Call protect() first.");if(this.getPoint(r)===t)return;const i=n.permissionId;this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,i,e,t),this._permissionSubject.next(this._buildSnapshot())}async protect(r){if(this.isProtected())throw new Error("Range is already protected");const t=await this._fPermission.addRangeBaseProtection(this._unitId,this._subUnitId,[this._range],r);if(!t)throw new Error("Failed to create range protection");const{permissionId:e,ruleId:n}=t;return await this._setPermissionPoints(e,r),this._injector.createInstance(y,this._unitId,this._subUnitId,n,e,[this._range],r||{})}_determineViewState(r){return(r==null?void 0:r.allowViewByOthers)===!1?a.ViewStateEnum.NoOneElseCanView:a.ViewStateEnum.OthersCanView}_determineEditState(r){var t;return(r==null?void 0:r.allowEdit)===!0&&((t=r==null?void 0:r.allowedUsers)!=null&&t.length)?a.EditStateEnum.DesignedUserCanEdit:a.EditStateEnum.OnlyMe}async _setPermissionPoints(r,t){if(!t)return;const e=(n,s)=>n===void 0?s:typeof n=="boolean"?n:!0;await this._setPermissionPoint(r,I.Edit,e(t.allowEdit,!1)),await this._setPermissionPoint(r,I.View,e(t.allowViewByOthers,!0))}async _setPermissionPoint(r,t,e){const n=N[t];n&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,r,n,e)}async unprotect(){const r=this._getProtectionRule();if(!r)return;const t=r.id;this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,[t])}async listRules(){return await this._buildProtectionRulesAsync()}subscribe(r){const t=this.permission$.subscribe(r);return()=>t.unsubscribe()}_getProtectionRule(){const r=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId),t=this._range.getRange();for(const e of r)for(const n of e.ranges)if(t.startRow===n.startRow&&t.startColumn===n.startColumn&&t.endRow===n.endRow&&t.endColumn===n.endColumn)return e;return null}_buildProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(t=>{const e=t.ranges.map(s=>this._worksheet.getRange(s.startRow,s.startColumn,s.endRow-s.startRow+1,s.endColumn-s.startColumn+1)),n={name:t.description||"",allowViewByOthers:t.viewState!==a.ViewStateEnum.NoOneElseCanView};return t.editState===a.EditStateEnum.DesignedUserCanEdit?n.allowEdit=!0:n.allowEdit=!1,this._injector.createInstance(y,this._unitId,this._subUnitId,t.id,t.permissionId,e,n)})}async _buildProtectionRulesAsync(){const r=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);return(await Promise.all(r.map(async e=>{const n=e.ranges.map(i=>this._worksheet.getRange(i.startRow,i.startColumn,i.endRow-i.startRow+1,i.endColumn-i.startColumn+1)),s={name:e.description||"",allowViewByOthers:e.viewState!==a.ViewStateEnum.NoOneElseCanView};if(e.editState===a.EditStateEnum.DesignedUserCanEdit)try{const o=(await this._authzIoService.listCollaborators({objectID:e.permissionId,unitID:this._unitId})).filter(c=>c.role===Q.Editor).map(c=>{var d;return((d=c.subject)==null?void 0:d.userID)||c.id});s.allowEdit=o.length>0}catch(i){console.warn(`Failed to fetch collaborators for rule ${e.id}:`,i),s.allowEdit=!1}else s.allowEdit=!1;return{rule:e,ranges:n,options:s}}))).map(({rule:e,ranges:n,options:s})=>this._injector.createInstance(y,this._unitId,this._subUnitId,e.id,e.permissionId,n,s))}_buildSnapshot(){const r={};return Object.values(I).forEach(t=>{r[t]=this.getPoint(t)}),r}dispose(){this._subscriptions.forEach(r=>r.unsubscribe()),this._permissionSubject.complete()}};J=fe([j(4,h.Inject(h.Injector)),j(5,h.Inject(h.IPermissionService)),j(6,h.Inject(h.IAuthzIoService)),j(7,h.Inject(h.ICommandService)),j(8,h.Inject(a.RangeProtectionRuleModel))],J);var ve=Object.getOwnPropertyDescriptor,Re=(r,t,e,n)=>{for(var s=n>1?void 0:n?ve(t,e):t,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=o(s)||s);return s},K=(r,t)=>(e,n)=>t(e,n,r),D;exports.FRange=(D=class extends R.FBaseInitialable{constructor(t,e,n,s,i,o){super(s),this._workbook=t,this._worksheet=e,this._range=n,this._injector=s,this._commandService=i,this._formulaDataModel=o;const c=this._worksheet.getRowCount(),d=this._worksheet.getColumnCount();if(this._range.startRow<0||this._range.startColumn<0||this._range.endRow>=c||this._range.endColumn>=d)throw new Error(`Range is out of bounds. Max rows: ${c}, Max columns: ${d}, Given range: ${JSON.stringify(this._range)}`);this._runInitializers(this._injector,this._workbook,this._worksheet,this._range,this._commandService,this._formulaDataModel)}getUnitId(){return this._workbook.getUnitId()}getSheetName(){return this._worksheet.getName()}getSheetId(){return this._worksheet.getSheetId()}getRange(){return this._range}getRow(){return this._range.startRow}getLastRow(){return this._range.endRow}getColumn(){return this._range.startColumn}getLastColumn(){return this._range.endColumn}getWidth(){return this._range.endColumn-this._range.startColumn+1}getHeight(){return this._range.endRow-this._range.startRow+1}isMerged(){const{startColumn:t,startRow:e,endColumn:n,endRow:s}=this._range;return this._worksheet.getMergedCellRange(e,t,s,n).some(o=>h.Rectangle.equals(o,this._range))}getCellStyleData(t="row"){return t!=="cell"?this._worksheet.getComposedCellStyle(this._range.startRow,this._range.startColumn,t==="row"):this._worksheet.getCellStyle(this._range.startRow,this._range.startColumn)}getFontFamily(t="row"){var e,n;return(n=(e=this.getCellStyleData(t))==null?void 0:e.ff)!=null?n:null}getFontSize(t="row"){var e,n;return(n=(e=this.getCellStyleData(t))==null?void 0:e.fs)!=null?n:null}getCellStyle(t="row"){const e=this.getCellStyleData(t);return e?h.TextStyleValue.create(e):null}getCellStyles(t="row"){return this.getCellDatas().map((n,s)=>n.map((i,o)=>{if(!i)return null;const c=t!=="cell"?this._worksheet.getComposedCellStyle(s+this._range.startRow,o+this._range.startColumn,t==="row"):this._worksheet.getCellStyle(s+this._range.startRow,o+this._range.startColumn);return c?h.TextStyleValue.create(c):null}))}getValue(t){var e,n;return t?this.getValueAndRichTextValue():(n=(e=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:e.v)!=null?n:null}getRawValue(){var e,n;const t=this._worksheet.getCellMatrix().getValue(this._range.startRow,this._range.startColumn);return t!=null&&t.p&&((e=t.p.body)!=null&&e.dataStream)?t.p.body.dataStream:(n=t==null?void 0:t.v)!=null?n:null}getDisplayValue(){var e,n,s;const t=this._worksheet.getCell(this._range.startRow,this._range.startColumn);return t!=null&&t.p&&((e=t.p.body)!=null&&e.dataStream)?t.p.body.dataStream:(s=(n=t==null?void 0:t.v)==null?void 0:n.toString())!=null?s:""}getValues(t){var c,d;if(t)return this.getValueAndRichTextValues();const{startRow:e,endRow:n,startColumn:s,endColumn:i}=this._range,o=[];for(let l=e;l<=n;l++){const m=[];for(let u=s;u<=i;u++)m.push((d=(c=this._worksheet.getCell(l,u))==null?void 0:c.v)!=null?d:null);o.push(m)}return o}getRawValues(){var c,d;const t=this._worksheet.getCellMatrix(),{startRow:e,endRow:n,startColumn:s,endColumn:i}=this._range,o=[];for(let l=e;l<=n;l++){const m=[];for(let u=s;u<=i;u++){const _=t.getValue(l,u);_!=null&&_.p&&((c=_.p.body)!=null&&c.dataStream)?m.push(_.p.body.dataStream):m.push((d=_==null?void 0:_.v)!=null?d:null)}o.push(m)}return o}getDisplayValues(){var o,c,d;const{startRow:t,endRow:e,startColumn:n,endColumn:s}=this._range,i=[];for(let l=t;l<=e;l++){const m=[];for(let u=n;u<=s;u++){const _=this._worksheet.getCell(l,u);_!=null&&_.p&&((o=_.p.body)!=null&&o.dataStream)?m.push(_.p.body.dataStream):m.push((d=(c=_==null?void 0:_.v)==null?void 0:c.toString())!=null?d:"")}i.push(m)}return i}getCellData(){var t;return(t=this._worksheet.getCell(this._range.startRow,this._range.startColumn))!=null?t:null}getCellDatas(){return this.getCellDataGrid()}getCellDataGrid(){const{startRow:t,endRow:e,startColumn:n,endColumn:s}=this._range,i=[];for(let o=t;o<=e;o++){const c=[];for(let d=n;d<=s;d++)c.push(this._worksheet.getCellRaw(o,d));i.push(c)}return i}getRichTextValue(){const t=this.getCellData();return t!=null&&t.p?new h.RichTextValue(t.p):null}getRichTextValues(){return this.getCellDataGrid().map(e=>e.map(n=>n!=null&&n.p?new h.RichTextValue(n.p):null))}getValueAndRichTextValue(){const t=this.getCellData();return t!=null&&t.p?new h.RichTextValue(t.p):t==null?void 0:t.v}getValueAndRichTextValues(){return this.getCellDatas().map(e=>e.map(n=>n!=null&&n.p?new h.RichTextValue(n.p):n==null?void 0:n.v))}getFormula(){var t;return(t=this._formulaDataModel.getFormulaStringByCell(this._range.startRow,this._range.startColumn,this._worksheet.getSheetId(),this._workbook.getUnitId()))!=null?t:""}getFormulas(){const t=[],{startRow:e,endRow:n,startColumn:s,endColumn:i}=this._range,o=this._worksheet.getSheetId(),c=this._workbook.getUnitId();for(let d=e;d<=n;d++){const l=[];for(let m=s;m<=i;m++){const u=this._formulaDataModel.getFormulaStringByCell(d,m,o,c);l.push(u||"")}t.push(l)}return t}getWrap(){return this._worksheet.getRange(this._range).getWrap()===h.BooleanNumber.TRUE}getWraps(){const t=this.getCellDatas(),e=this._workbook.getStyles();return t.map(n=>n.map(s=>{var i;return((i=e.getStyleByCell(s))==null?void 0:i.tb)===h.WrapStrategy.WRAP}))}getWrapStrategy(){return this._worksheet.getRange(this._range).getWrapStrategy()}getHorizontalAlignment(){const t=this._worksheet.getRange(this._range).getHorizontalAlignment();return X(t)}getHorizontalAlignments(){return this._worksheet.getRange(this._range).getHorizontalAlignments().map(e=>e.map(n=>X(n)))}getVerticalAlignment(){return ee(this._worksheet.getRange(this._range).getVerticalAlignment())}getVerticalAlignments(){return this._worksheet.getRange(this._range).getVerticalAlignments().map(e=>e.map(n=>ee(n)))}setCustomMetaData(t){const e={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,customMetadata:{custom:t}};return this._commandService.syncExecuteCommand(a.SetRangeCustomMetadataCommand.id,e),this}setCustomMetaDatas(t){const e={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,customMetadata:t.map(n=>n.map(s=>({custom:s})))};return this._commandService.syncExecuteCommand(a.SetRangeCustomMetadataCommand.id,e),this}getCustomMetaData(){var e;const t=this.getCellData();return(e=t==null?void 0:t.custom)!=null?e:null}getCustomMetaDatas(){return this.getCellDataGrid().map(e=>e.map(n=>{var s;return(s=n==null?void 0:n.custom)!=null?s:null}))}setBorder(t,e,n){return this._commandService.syncExecuteCommand(a.SetBorderBasicCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],value:{type:t,style:e,color:n}}),this}getBackground(){var e,n;const t=this.getCellStyle();return(n=(e=t==null?void 0:t.background)==null?void 0:e.rgb)!=null?n:h.DEFAULT_STYLES.bg.rgb}getBackgrounds(){return this.getCellStyles().map(e=>e.map(n=>{var s,i;return(i=(s=n==null?void 0:n.background)==null?void 0:s.rgb)!=null?i:h.DEFAULT_STYLES.bg.rgb}))}setBackgroundColor(t){return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:"bg",value:{rgb:t}}}),this}setBackground(t){return this.setBackgroundColor(t),this}setTextRotation(t){return this._commandService.syncExecuteCommand(a.SetTextRotationCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t}),this}setValue(t){const e=h.covertCellValue(t);if(!e)throw new Error("Invalid value");return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setValueForCell(t){const e=h.covertCellValue(t);if(!e)throw new Error("Invalid value");return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:e}),this}setRichTextValueForCell(t){const e=t instanceof h.RichTextValue?t.getData():t,n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:{p:e}};return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,n),this}setRichTextValues(t){const e=t.map(i=>i.map(o=>o&&{p:o instanceof h.RichTextValue?o.getData():o})),n=h.covertCellValues(e,this._range),s={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n};return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,s),this}setWrap(t){return this._commandService.syncExecuteCommand(a.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t?h.WrapStrategy.WRAP:h.WrapStrategy.UNSPECIFIED}),this}setWrapStrategy(t){return this._commandService.syncExecuteCommand(a.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t}),this}setVerticalAlignment(t){return this._commandService.syncExecuteCommand(a.SetVerticalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:Ce(t)}),this}setHorizontalAlignment(t){return this._commandService.syncExecuteCommand(a.SetHorizontalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:we(t)}),this}setValues(t){const e=h.covertCellValues(t,this._range);return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setFontWeight(t){let e;if(t==="bold")e=h.BooleanNumber.TRUE;else if(t==="normal")e=h.BooleanNumber.FALSE;else if(t===null)e=null;else throw new Error("Invalid fontWeight");const n={type:"bl",value:e},s={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:n};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,s),this}setFontStyle(t){let e;if(t==="italic")e=h.BooleanNumber.TRUE;else if(t==="normal")e=h.BooleanNumber.FALSE;else if(t===null)e=null;else throw new Error("Invalid fontStyle");const n={type:"it",value:e},s={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:n};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,s),this}setFontLine(t){if(t==="underline")this._setFontUnderline({s:h.BooleanNumber.TRUE});else if(t==="line-through")this._setFontStrikethrough({s:h.BooleanNumber.TRUE});else if(t==="none")this._setFontUnderline({s:h.BooleanNumber.FALSE}),this._setFontStrikethrough({s:h.BooleanNumber.FALSE});else if(t===null)this._setFontUnderline(null),this._setFontStrikethrough(null);else throw new Error("Invalid fontLine");return this}_setFontUnderline(t){const e={type:"ul",value:t},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};this._commandService.syncExecuteCommand(a.SetStyleCommand.id,n)}_setFontStrikethrough(t){const e={type:"st",value:t},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};this._commandService.syncExecuteCommand(a.SetStyleCommand.id,n)}setFontFamily(t){const e={type:"ff",value:t},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,n),this}setFontSize(t){const e={type:"fs",value:t},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,n),this}setFontColor(t){const n={type:"cl",value:t===null?null:{rgb:t}},s={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:n};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,s),this}merge(t){const e=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return a.addMergeCellsUtil(this._injector,e,n,[this._range],t),this}mergeAcross(t){const e=a.getAddMergeMutationRangeByType([this._range],h.Dimension.ROWS),n=this._workbook.getUnitId(),s=this._worksheet.getSheetId();return a.addMergeCellsUtil(this._injector,n,s,e,t),this}mergeVertically(t){const e=a.getAddMergeMutationRangeByType([this._range],h.Dimension.COLUMNS),n=this._workbook.getUnitId(),s=this._worksheet.getSheetId();return a.addMergeCellsUtil(this._injector,n,s,e,t),this}isPartOfMerge(){const{startRow:t,startColumn:e,endRow:n,endColumn:s}=this._range;return this._worksheet.getMergedCellRange(t,e,n,s).length>0}breakApart(){return this._commandService.syncExecuteCommand(a.RemoveWorksheetMergeCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}forEach(t){const{startColumn:e,startRow:n,endColumn:s,endRow:i}=this._range;this._worksheet.getMatrixWithMergedCells(n,e,i,s).forValue((o,c,d)=>{t(o,c,d)})}getA1Notation(t,e,n){const s={...this._range,startAbsoluteRefType:e,endAbsoluteRefType:n};return t?U.serializeRangeWithSheet(this._worksheet.getName(),s):U.serializeRange(s)}activate(){return this._injector.createInstance(exports.FWorkbook,this._workbook).setActiveRange(this),this}activateAsCurrentCell(){const t=this._worksheet.getMergedCell(this._range.startRow,this._range.startColumn);if(t&&h.Rectangle.equals(t,this._range)||!t&&this._range.startRow===this._range.endRow&&this._range.startColumn===this._range.endColumn){const s=this._injector.createInstance(exports.FWorkbook,this._workbook).getActiveRange();if(!s||s.getUnitId()!==this.getUnitId()||s.getSheetId()!==this.getSheetId())return this.activate();if(h.Rectangle.contains(s.getRange(),this._range)){const i={unitId:this.getUnitId(),subUnitId:this.getSheetId(),selections:[{range:s.getRange(),primary:a.getPrimaryForRange(this.getRange(),this._worksheet),style:null}]};return this._commandService.syncExecuteCommand(a.SetSelectionsOperation.id,i),this}return this.activate()}else throw new Error("The range is not a single cell")}splitTextToColumns(t,e,n){this._commandService.syncExecuteCommand(a.SplitTextToColumnsCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,delimiter:e,customDelimiter:n,treatMultipleDelimitersAsOne:t})}useThemeStyle(t){if(t==null){const e=this.getUsedThemeStyle();e&&this.removeThemeStyle(e)}else this._commandService.syncExecuteCommand(a.SetWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:t})}removeThemeStyle(t){this._commandService.syncExecuteCommand(a.DeleteWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:t})}getUsedThemeStyle(){return this._injector.get(a.SheetRangeThemeService).getAppliedRangeThemeStyle({unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range})}clear(t){return t&&t.contentsOnly&&!t.formatOnly?this.clearContent():t&&t.formatOnly&&!t.contentsOnly?this.clearFormat():(this._commandService.syncExecuteCommand(a.ClearSelectionAllCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],options:t}),this)}clearContent(){return this._commandService.syncExecuteCommand(a.ClearSelectionContentCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}clearFormat(){return this._commandService.syncExecuteCommand(a.ClearSelectionFormatCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}insertCells(t){t===h.Dimension.ROWS?this._commandService.executeCommand(a.InsertRangeMoveDownCommand.id,{range:this._range}):this._commandService.executeCommand(a.InsertRangeMoveRightCommand.id,{range:this._range})}deleteCells(t){t===h.Dimension.ROWS?this._commandService.executeCommand(a.DeleteRangeMoveUpCommand.id,{range:this._range}):this._commandService.executeCommand(a.DeleteRangeMoveLeftCommand.id,{range:this._range})}getDataRegion(t){const{startRow:e,startColumn:n,endRow:s,endColumn:i}=this._range,o=this._worksheet.getMaxRows(),c=this._worksheet.getMaxColumns(),d=this._worksheet.getCellMatrix();let l=e,m=n,u=s,_=i;if(t!==h.Dimension.COLUMNS){let k=!1,f=!1;for(let b=n;b<=i&&(e>0&&!h.isNullCell(d.getValue(e-1,b))&&(k=!0),s<o-1&&!h.isNullCell(d.getValue(s+1,b))&&(f=!0),!(k&&f));b++);k&&(l=e-1),f&&(u=s+1)}if(t!==h.Dimension.ROWS){let k=!1,f=!1;for(let b=e;b<=s&&(n>0&&!h.isNullCell(d.getValue(b,n-1))&&(k=!0),i<c-1&&!h.isNullCell(d.getValue(b,i+1))&&(f=!0),!(k&&f));b++);k&&(m=n-1),f&&(_=i+1)}return this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,{startRow:l,startColumn:m,endRow:u,endColumn:_})}isBlank(){const t=this._worksheet.getCellMatrix(),{startRow:e,startColumn:n,endRow:s,endColumn:i}=this._range;let o=!0;for(let c=e;c<=s;c++){for(let d=n;d<=i;d++)if(!h.isNullCell(t.getValue(c,d))){o=!1;break}if(!o)break}return o}offset(t,e,n,s){const{startRow:i,startColumn:o,endRow:c,endColumn:d}=this._range,l=i+t,m=o+e,u=n?l+n-1:c+t,_=s?m+s-1:d+e;if(l<0||m<0||u<0||_<0)throw new Error("The row or column index is out of range");return this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,{startRow:l,startColumn:m,endRow:u,endColumn:_})}setFormula(t){return this.setValue({f:t})}setFormulas(t){return this.setValues(t.map(e=>e.map(n=>({f:n}))))}getRangePermission(){const t=this._injector.createInstance(exports.FWorksheet,this._injector.createInstance(exports.FWorkbook,this._workbook),this._workbook,this._worksheet);return this._injector.createInstance(J,this._workbook.getUnitId(),this._worksheet.getSheetId(),this,t)}autoFill(t,e){const n=this.getRange(),s=t.getRange();if(!h.Rectangle.contains(s,n))throw new Error("AutoFill target range must contain source range");const{startRow:i,startColumn:o,endRow:c,endColumn:d}=n,{startRow:l,startColumn:m,endRow:u,endColumn:_}=s;if(c-i!==u-l&&d-o!==_-m)throw new Error("AutoFill can only fill in one direction");if(c-i===u-l&&o!==m&&d!==_)throw new Error("AutoFill can only fill in one direction");if(d-o===_-m&&i!==l&&c!==u)throw new Error("AutoFill can only fill in one direction");return this._commandService.executeCommand(a.AutoFillCommand.id,{sourceRange:n,targetRange:s,unitId:this.getUnitId(),subUnitId:this.getSheetId(),applyType:e})}},D._enableManualInit(),D);exports.FRange=Re([K(3,h.Inject(h.Injector)),K(4,h.ICommandService),K(5,h.Inject(U.FormulaDataModel))],exports.FRange);var pe=Object.getOwnPropertyDescriptor,Ee=(r,t,e,n)=>{for(var s=n>1?void 0:n?pe(t,e):t,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=o(s)||s);return s},Y=(r,t)=>(e,n)=>t(e,n,r);let Z=class{constructor(r,t,e,n){w(this,"_permissionSubject");w(this,"_collaboratorChangeSubject",new O.Subject);w(this,"permission$");w(this,"pointChange$");w(this,"collaboratorChange$");w(this,"_subscriptions",[]);w(this,"_fPermission");this._unitId=r,this._injector=t,this._permissionService=e,this._authzIoService=n,this._fPermission=this._injector.createInstance(exports.FPermission),this._permissionSubject=new O.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.collaboratorChange$=this._collaboratorChangeSubject.asObservable().pipe(C.shareReplay({bufferSize:1,refCount:!0}))}_createPermissionStream(){const r=this._permissionService.permissionPointUpdate$.pipe(C.filter(t=>t.id.includes(this._unitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(r),this._permissionSubject.asObservable().pipe(C.distinctUntilChanged((t,e)=>JSON.stringify(t)===JSON.stringify(e)),C.shareReplay({bufferSize:1,refCount:!0}))}_createPointChangeStream(){const r=new Map;for(const t in g){const e=g[t];r.set(e,this.getPoint(e))}return this._permissionService.permissionPointUpdate$.pipe(C.filter(t=>t.id.includes(this._unitId)),C.map(t=>{const e=this._extractWorkbookPointType(t.id);if(!e)return null;const n=!!t.value,s=r.get(e);return r.set(e,n),s===n?null:{point:e,value:n,oldValue:s}}),C.filter(t=>t!==null),C.shareReplay({bufferSize:1,refCount:!0}))}_extractWorkbookPointType(r){for(const t in g){const e=g[t],n=T[e];if(!n)continue;if(new n(this._unitId).id===r)return e}return null}_buildSnapshot(){const r={};for(const t in g){const e=g[t];r[e]=this.getPoint(e)}return r}async setMode(r){const t=this._getModePermissions(r);await this._batchSetPermissionPoints(t)}_getModePermissions(r){const t={};switch(Object.values(g).forEach(e=>{t[e]=!1}),r){case"owner":Object.values(g).forEach(e=>{t[e]=!0});break;case"editor":t[g.Edit]=!0,t[g.View]=!0,t[g.Print]=!0,t[g.Export]=!0,t[g.CopyContent]=!0,t[g.Comment]=!0,t[g.CreateSheet]=!0,t[g.DeleteSheet]=!0,t[g.RenameSheet]=!0,t[g.MoveSheet]=!0,t[g.HideSheet]=!0,t[g.InsertRow]=!0,t[g.InsertColumn]=!0,t[g.DeleteRow]=!0,t[g.DeleteColumn]=!0,t[g.CopySheet]=!0,t[g.CreateProtection]=!0;break;case"viewer":t[g.View]=!0,t[g.Print]=!0;break;case"commenter":t[g.View]=!0,t[g.Comment]=!0,t[g.Print]=!0;break}return t}async _batchSetPermissionPoints(r){const t=[];for(const[e,n]of Object.entries(r)){const s=e,i=T[s];if(!i)throw new Error(`Unknown workbook permission point: ${s}`);const o=this.getPoint(s);o!==n&&(this._fPermission.setWorkbookPermissionPoint(this._unitId,i,n),t.push({point:s,value:n,oldValue:o}))}if(t.length>0){const e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode("viewer")}async setEditable(){await this.setMode("editor")}canEdit(){return this.getPoint(g.Edit)}async setPoint(r,t){const e=T[r];if(!e)throw new Error(`Unknown workbook permission point: ${r}`);if(this.getPoint(r)===t)return;this._fPermission.setWorkbookPermissionPoint(this._unitId,e,t);const s=this._buildSnapshot();this._permissionSubject.next(s)}getPoint(r){var s;const t=T[r];if(!t)throw new Error(`Unknown workbook permission point: ${r}`);const e=new t(this._unitId),n=this._permissionService.getPermissionPoint(e.id);return(s=n==null?void 0:n.value)!=null?s:!0}getSnapshot(){return this._buildSnapshot()}async setCollaborators(r){const t=r.map(e=>({id:e.user.userID,subject:e.user,role:e.role}));await this._authzIoService.putCollaborators({objectID:this._unitId,unitID:this._unitId,collaborators:t}),r.forEach(e=>{this._collaboratorChangeSubject.next({type:"add",collaborator:{user:{id:e.user.userID},role:e.role}})})}async addCollaborator(r,t){await this._authzIoService.createCollaborator({objectID:this._unitId,unitID:this._unitId,collaborators:[{id:r.userID,subject:r,role:t}]}),this._collaboratorChangeSubject.next({type:"add",collaborator:{user:{id:r.userID},role:t}})}async updateCollaborator(r,t){await this._authzIoService.updateCollaborator({objectID:this._unitId,unitID:this._unitId,collaborator:{id:r.userID,subject:r,role:t}}),this._collaboratorChangeSubject.next({type:"update",collaborator:{user:{id:r.userID},role:t}})}async removeCollaborator(r){await this._authzIoService.deleteCollaborator({objectID:this._unitId,unitID:this._unitId,collaboratorID:r}),this._collaboratorChangeSubject.next({type:"delete",collaborator:{user:{id:r},role:M.Reader}})}async removeCollaborators(r){for(const t of r)await this.removeCollaborator(t)}async listCollaborators(){return(await this._authzIoService.listCollaborators({objectID:this._unitId,unitID:this._unitId})).map(t=>{var e,n;return{user:{id:((e=t.subject)==null?void 0:e.userID)||t.id,displayName:((n=t.subject)==null?void 0:n.name)||""},role:t.role}})}subscribe(r){const t=this.permission$.subscribe(r);return()=>t.unsubscribe()}dispose(){this._subscriptions.forEach(r=>r.unsubscribe()),this._permissionSubject.complete(),this._collaboratorChangeSubject.complete()}};Z=Ee([Y(1,h.Inject(h.Injector)),Y(2,h.IPermissionService),Y(3,h.IAuthzIoService)],Z);var ye=Object.getOwnPropertyDescriptor,Pe=(r,t,e,n)=>{for(var s=n>1?void 0:n?ye(t,e):t,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=o(s)||s);return s},E=(r,t)=>(e,n)=>t(e,n,r);exports.FWorkbook=class extends R.FBaseInitialable{constructor(e,n,s,i,o,c,d,l,m,u){super(n);w(this,"id");this._workbook=e,this._injector=n,this._resourceLoaderService=s,this._selectionManagerService=i,this._univerInstanceService=o,this._commandService=c,this._permissionService=d,this._logService=l,this._localeService=m,this._definedNamesService=u,this.id=this._workbook.getUnitId()}getWorkbook(){return this._workbook}dispose(){super.dispose(),this._workbook=null}getId(){return this.id}getName(){return this._workbook.name}setName(e){return this._commandService.syncExecuteCommand(a.SetWorkbookNameCommand.id,{unitId:this._workbook.getUnitId(),name:e}),this}save(){return this._resourceLoaderService.saveUnit(this._workbook.getUnitId())}getSnapshot(){return this._logService.warn("use 'save' instead of 'getSnapshot'"),this.save()}getActiveSheet(){const e=this._workbook.getActiveSheet();return this._injector.createInstance(exports.FWorksheet,this,this._workbook,e)}getSheets(){return this._workbook.getSheets().map(e=>this._injector.createInstance(exports.FWorksheet,this,this._workbook,e))}create(e,n,s,i){var l,m,u;const o=h.mergeWorksheetSnapshotWithDefault(h.Tools.deepClone((l=i==null?void 0:i.sheet)!=null?l:{}));o.name=this._workbook.uniqueSheetName(e),o.rowCount=n,o.columnCount=s,o.id=(m=i==null?void 0:i.sheet)==null?void 0:m.id;const c=(u=i==null?void 0:i.index)!=null?u:this._workbook.getSheets().length;this._commandService.syncExecuteCommand(a.InsertSheetCommand.id,{unitId:this.id,index:c,sheet:o}),this._commandService.syncExecuteCommand(a.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[c].getSheetId()});const d=this._workbook.getActiveSheet();if(!d)throw new Error("No active sheet found");return this._injector.createInstance(exports.FWorksheet,this,this._workbook,d)}getSheetBySheetId(e){const n=this._workbook.getSheetBySheetId(e);return n?this._injector.createInstance(exports.FWorksheet,this,this._workbook,n):null}getSheetByName(e){const n=this._workbook.getSheetBySheetName(e);return n?this._injector.createInstance(exports.FWorksheet,this,this._workbook,n):null}setActiveSheet(e){return this._commandService.syncExecuteCommand(a.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:typeof e=="string"?e:e.getSheetId()}),typeof e=="string"?this.getSheetBySheetId(e):e}insertSheet(e,n){var c,d,l;const s=h.mergeWorksheetSnapshotWithDefault(h.Tools.deepClone((c=n==null?void 0:n.sheet)!=null?c:{}));s.name=this._workbook.uniqueSheetName(e),s.id=(d=n==null?void 0:n.sheet)==null?void 0:d.id;const i=(l=n==null?void 0:n.index)!=null?l:this._workbook.getSheets().length;this._commandService.syncExecuteCommand(a.InsertSheetCommand.id,{unitId:this.id,index:i,sheet:s}),this._commandService.syncExecuteCommand(a.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[i].getSheetId()});const o=this._workbook.getActiveSheet();if(!o)throw new Error("No active sheet found");return this._injector.createInstance(exports.FWorksheet,this,this._workbook,o)}deleteSheet(e){const n=this.id,s=typeof e=="string"?e:e.getSheetId();return this._commandService.syncExecuteCommand(a.RemoveSheetCommand.id,{unitId:n,subUnitId:s})}undo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(h.UndoCommand.id),this}redo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(h.RedoCommand.id),this}onBeforeCommandExecute(e){return this._commandService.beforeCommandExecuted(n=>{var s;((s=n.params)==null?void 0:s.unitId)===this.id&&e(n)})}onCommandExecuted(e){return this._commandService.onCommandExecuted(n=>{var s;((s=n.params)==null?void 0:s.unitId)===this.id&&e(n)})}onSelectionChange(e){return h.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(n=>{this._univerInstanceService.getCurrentUnitForType(h.UniverInstanceType.UNIVER_SHEET).getUnitId()===this.id&&(n!=null&&n.length?e(n.map(s=>s.range)):e([]))}))}setEditable(e){const n=new a.WorkbookEditablePermission(this._workbook.getUnitId());return this._permissionService.getPermissionPoint(n.id)||this._permissionService.addPermissionPoint(n),this._permissionService.updatePermissionPoint(n.id,e),this}setActiveRange(e){const n=this.getActiveSheet(),s=e.getRange().sheetId||n.getSheetId(),i=s?this._workbook.getSheetBySheetId(s):this._workbook.getActiveSheet(!0);if(!i)throw new Error("No active sheet found");i.getSheetId()!==n.getSheetId()&&this.setActiveSheet(this._injector.createInstance(exports.FWorksheet,this,this._workbook,i));const o={unitId:this.getId(),subUnitId:s,selections:[e].map(c=>({range:c.getRange(),primary:a.getPrimaryForRange(c.getRange(),i),style:null}))};return this._commandService.syncExecuteCommand(a.SetSelectionsOperation.id,o),this}getActiveRange(){const e=this._workbook.getActiveSheet(),s=this._selectionManagerService.getCurrentSelections().find(i=>!!i.primary);return s?this._injector.createInstance(exports.FRange,this._workbook,e,s.range):null}getActiveCell(){const e=this._workbook.getActiveSheet(),s=this._selectionManagerService.getCurrentSelections().find(o=>!!o.primary);if(!s)return null;const i={...s.primary,rangeType:h.RANGE_TYPE.NORMAL};return this._injector.createInstance(exports.FRange,this._workbook,e,i)}deleteActiveSheet(){const e=this.getActiveSheet();return this.deleteSheet(e)}duplicateSheet(e){return this._commandService.syncExecuteCommand(a.CopySheetCommand.id,{unitId:e.getWorkbook().getUnitId(),subUnitId:e.getSheetId()}),this._injector.createInstance(exports.FWorksheet,this,this._workbook,this._workbook.getActiveSheet())}duplicateActiveSheet(){const e=this.getActiveSheet();return this.duplicateSheet(e)}getNumSheets(){return this._workbook.getSheets().length}getLocale(){return this._localeService.getCurrentLocale()}setLocale(e){this._localeService.setLocale(e)}setSpreadsheetLocale(e){return this._localeService.setLocale(e),this}getUrl(){return location.href}moveSheet(e,n){let s=n;return s<0?s=0:s>this._workbook.getSheets().length-1&&(s=this._workbook.getSheets().length-1),this._commandService.syncExecuteCommand(a.SetWorksheetOrderCommand.id,{unitId:e.getWorkbook().getUnitId(),order:s,subUnitId:e.getSheetId()}),this}moveActiveSheet(e){const n=this.getActiveSheet();return this.moveSheet(n,e)}getPermission(){return this._injector.createInstance(exports.FPermission)}getWorkbookPermission(){return this._injector.createInstance(Z,this._workbook.getUnitId())}getDefinedName(e){const n=this._definedNamesService.getValueByName(this.id,e);return n?this._injector.createInstance(F,{...n,unitId:this.id}):null}getDefinedNames(){const e=this._definedNamesService.getDefinedNameMap(this.id);return e?Object.values(e).map(n=>this._injector.createInstance(F,{...n,unitId:this.id})):[]}insertDefinedName(e,n){const i=this._injector.createInstance(B).setName(e).setRef(n).build();return i.localSheetId=a.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this.insertDefinedNameBuilder(i),this}deleteDefinedName(e){const n=this.getDefinedName(e);return n?(n.delete(),!0):!1}insertDefinedNameBuilder(e){e.unitId=this.getId(),this._commandService.syncExecuteCommand(a.SetDefinedNameCommand.id,e)}updateDefinedNameBuilder(e){this._commandService.syncExecuteCommand(a.SetDefinedNameCommand.id,e)}getRegisteredRangeThemes(){return this._injector.get(a.SheetRangeThemeService).getRegisteredRangeThemes()}registerRangeTheme(e){this._commandService.syncExecuteCommand(a.RegisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),rangeThemeStyle:e})}unregisterRangeTheme(e){this._commandService.syncExecuteCommand(a.UnregisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),themeName:e})}createRangeThemeStyle(e,n){return new a.RangeThemeStyle(e,n)}setCustomMetadata(e){return this._workbook.setCustomMetadata(e),this}getCustomMetadata(){return this._workbook.getCustomMetadata()}addStyles(e){this._workbook.addStyles(e)}removeStyles(e){this._workbook.removeStyles(e)}};exports.FWorkbook=Pe([E(1,h.Inject(h.Injector)),E(2,h.Inject(h.IResourceLoaderService)),E(3,h.Inject(a.SheetsSelectionsService)),E(4,h.IUniverInstanceService),E(5,h.ICommandService),E(6,h.IPermissionService),E(7,h.ILogService),E(8,h.Inject(h.LocaleService)),E(9,U.IDefinedNamesService)],exports.FWorkbook);class Ue extends R.FUniver{getCommandSheetTarget(t){var i;const e=t.params;if(!e)return this.getActiveSheet();const n=e.unitId?this.getUniverSheet(e.unitId):(i=this.getActiveWorkbook)==null?void 0:i.call(this);if(!n)return;const s=n.getSheetBySheetId(e.subUnitId||e.sheetId)||n.getActiveSheet();if(s)return{workbook:n,worksheet:s}}getSheetTarget(t,e){const n=this.getUniverSheet(t);if(!n)return;const s=n.getSheetBySheetId(e);if(s)return{workbook:n,worksheet:s}}_initWorkbookEvent(t){const e=t.get(h.IUniverInstanceService);this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookDisposed,()=>e.unitDisposed$.subscribe(n=>{n.type===h.UniverInstanceType.UNIVER_SHEET&&this.fireEvent(this.Event.WorkbookDisposed,{unitId:n.getUnitId(),unitType:n.type,snapshot:n.getSnapshot()})}))),this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookCreated,()=>e.unitAdded$.subscribe(n=>{if(n.type===h.UniverInstanceType.UNIVER_SHEET){const s=n,i=t.createInstance(exports.FWorkbook,s);this.fireEvent(this.Event.WorkbookCreated,{unitId:n.getUnitId(),type:n.type,workbook:i,unit:i})}})))}_initialize(t){const e=t.get(h.IUniverInstanceService),n=t.get(h.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetCreate,()=>n.beforeCommandExecuted(s=>{var i;if(s.id===a.InsertSheetCommand.id){const o=s.params,{unitId:c,index:d,sheet:l}=o||{},m=c?this.getUniverSheet(c):(i=this.getActiveWorkbook)==null?void 0:i.call(this);if(!m)return;const u={workbook:m,index:d,sheet:l};if(this.fireEvent(this.Event.BeforeSheetCreate,u),u.cancel)throw new h.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeActiveSheetChange,()=>n.beforeCommandExecuted(s=>{var i;if(s.id===a.SetWorksheetActiveOperation.id){const{subUnitId:o,unitId:c}=s.params,d=c?this.getUniverSheet(c):(i=this.getActiveWorkbook)==null?void 0:i.call(this);if(!d||!o)return;const l=d.getSheetBySheetId(o),m=d.getActiveSheet();if(!l||!m)return;const u={workbook:d,activeSheet:l,oldActiveSheet:m};if(this.fireEvent(this.Event.BeforeActiveSheetChange,u),u.cancel)throw new h.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetDelete,()=>n.beforeCommandExecuted(s=>{if(s.id===a.RemoveSheetCommand.id){const i=this.getCommandSheetTarget(s);if(!i)return;const{workbook:o,worksheet:c}=i,d={workbook:o,worksheet:c};if(this.fireEvent(this.Event.BeforeSheetDelete,d),d.cancel)throw new h.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetMove,()=>n.beforeCommandExecuted(s=>{if(s.id===a.SetWorksheetOrderMutation.id){const{fromOrder:i,toOrder:o}=s.params,c=this.getCommandSheetTarget(s);if(!c)return;const d={workbook:c.workbook,worksheet:c.worksheet,newIndex:o,oldIndex:i};if(this.fireEvent(this.Event.BeforeSheetMove,d),d.cancel)throw new h.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetNameChange,()=>n.beforeCommandExecuted(s=>{if(s.id===a.SetWorksheetNameCommand.id){const{name:i}=s.params,o=this.getCommandSheetTarget(s);if(!o)return;const c={workbook:o.workbook,worksheet:o.worksheet,newName:i,oldName:o.worksheet.getSheetName()};if(this.fireEvent(this.Event.BeforeSheetNameChange,c),c.cancel)throw new h.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetTabColorChange,()=>n.beforeCommandExecuted(s=>{if(s.id===a.SetTabColorMutation.id){const{color:i}=s.params,o=this.getCommandSheetTarget(s);if(!o)return;const c={workbook:o.workbook,worksheet:o.worksheet,newColor:i,oldColor:o.worksheet.getTabColor()};if(this.fireEvent(this.Event.BeforeSheetTabColorChange,c),c.cancel)throw new h.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetHideChange,()=>n.beforeCommandExecuted(s=>{if(s.id===a.SetWorksheetHideMutation.id){const{hidden:i}=s.params,o=this.getCommandSheetTarget(s);if(!o)return;const c={workbook:o.workbook,worksheet:o.worksheet,hidden:!!i};if(this.fireEvent(this.Event.BeforeSheetHideChange,c),c.cancel)throw new h.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineColorChange,()=>n.beforeCommandExecuted(s=>{var i;if(s.id===a.SetGridlinesColorCommand.id){const o=this.getCommandSheetTarget(s);if(!o)return;const c={...o,color:(i=s.params)==null?void 0:i.color};if(this.fireEvent(this.Event.BeforeGridlineColorChange,c),c.cancel)throw new h.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineEnableChange,()=>n.beforeCommandExecuted(s=>{var i,o;if(s.id===a.ToggleGridlinesCommand.id){const c=this.getCommandSheetTarget(s);if(!c)return;const d=(o=(i=s.params)==null?void 0:i.showGridlines)!=null?o:!c.worksheet.hasHiddenGridLines(),l={...c,enabled:!!d};if(this.fireEvent(this.Event.BeforeGridlineEnableChange,l),l.cancel)throw new h.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetValueChanged,()=>n.onCommandExecuted(s=>{if(a.COMMAND_LISTENER_VALUE_CHANGE.indexOf(s.id)>-1){if(!this.getActiveSheet())return;const o=a.getValueChangedEffectedRange(e,s).map(c=>{var d,l;return(l=(d=this.getWorkbook(c.unitId))==null?void 0:d.getSheetBySheetId(c.subUnitId))==null?void 0:l.getRange(c.range)}).filter(Boolean);if(!o.length)return;this.fireEvent(this.Event.SheetValueChanged,{payload:s,effectedRanges:o})}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetCreated,()=>n.onCommandExecuted(s=>{var i;if(s.id===a.InsertSheetCommand.id){const o=s.params,{unitId:c}=o||{},d=c?this.getUniverSheet(c):(i=this.getActiveWorkbook)==null?void 0:i.call(this);if(!d)return;const l=d.getActiveSheet();if(!l)return;const m={workbook:d,worksheet:l};this.fireEvent(this.Event.SheetCreated,m)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.ActiveSheetChanged,()=>n.onCommandExecuted(s=>{if(s.id===a.SetWorksheetActiveOperation.id){const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:c}=i;this._fireActiveSheetChanged(o,c)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetDeleted,()=>n.onCommandExecuted(s=>{var i;if(s.id===a.RemoveSheetCommand.id){const{subUnitId:o,unitId:c}=s.params,d=c?this.getUniverSheet(c):(i=this.getActiveWorkbook)==null?void 0:i.call(this);if(!d||!o)return;this._fireSheetDeleted(d,o)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetMoved,()=>n.onCommandExecuted(s=>{if(s.id===a.SetWorksheetOrderMutation.id){const{toOrder:i}=s.params,o=this.getCommandSheetTarget(s);if(!o)return;this._fireSheetMoved(o.workbook,o.worksheet,i)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetNameChanged,()=>n.onCommandExecuted(s=>{if(s.id===a.SetWorksheetNameCommand.id){const{name:i}=s.params,o=this.getCommandSheetTarget(s);if(!o)return;this._fireSheetNameChanged(o.workbook,o.worksheet,i)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetTabColorChanged,()=>n.onCommandExecuted(s=>{if(s.id===a.SetTabColorMutation.id){const{color:i}=s.params,o=this.getCommandSheetTarget(s);if(!o)return;this._fireSheetTabColorChanged(o.workbook,o.worksheet,i)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetHideChanged,()=>n.onCommandExecuted(s=>{if(s.id===a.SetWorksheetHideMutation.id){const{hidden:i}=s.params,o=this.getCommandSheetTarget(s);if(!o)return;this._fireSheetHideChanged(o.workbook,o.worksheet,!!i)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.GridlineChanged,()=>n.onCommandExecuted(s=>{if(s.id===a.SetGridlinesColorCommand.id||s.id===a.ToggleGridlinesCommand.id){const i=this.getCommandSheetTarget(s);if(!i)return;this.fireEvent(this.Event.GridlineChanged,{...i,enabled:!i.worksheet.hasHiddenGridLines(),color:i.worksheet.getGridLinesColor()})}}))),this._initWorkbookEvent(t)}createUniverSheet(t,e){const s=this._injector.get(h.IUniverInstanceService).createUnit(h.UniverInstanceType.UNIVER_SHEET,t,e);return this._injector.createInstance(exports.FWorkbook,s)}createWorkbook(t,e){return this.createUniverSheet(t,e)}getActiveWorkbook(){const t=this._univerInstanceService.getCurrentUnitForType(h.UniverInstanceType.UNIVER_SHEET);return t?this._injector.createInstance(exports.FWorkbook,t):null}getActiveUniverSheet(){return this.getActiveWorkbook()}getUniverSheet(t){const e=this._univerInstanceService.getUnit(t,h.UniverInstanceType.UNIVER_SHEET);return e?this._injector.createInstance(exports.FWorkbook,e):null}getWorkbook(t){return this.getUniverSheet(t)}getPermission(){return this._injector.createInstance(exports.FPermission)}onUniverSheetCreated(t){const e=this._univerInstanceService.getTypeOfUnitAdded$(h.UniverInstanceType.UNIVER_SHEET).subscribe(n=>{const s=this._injector.createInstance(exports.FWorkbook,n);t(s)});return h.toDisposable(e)}newDefinedName(){return this._injector.createInstance(B)}getActiveSheet(){const t=this.getActiveWorkbook();if(!t)return null;const e=t.getActiveSheet();return e?{workbook:t,worksheet:e}:null}setFreezeSync(t){this._injector.get(a.SheetsFreezeSyncController).setEnabled(t)}_fireActiveSheetChanged(t,e){this.fireEvent(this.Event.ActiveSheetChanged,{workbook:t,activeSheet:e})}_fireSheetDeleted(t,e){this.fireEvent(this.Event.SheetDeleted,{workbook:t,sheetId:e})}_fireSheetMoved(t,e,n){this.fireEvent(this.Event.SheetMoved,{workbook:t,worksheet:e,newIndex:n})}_fireSheetNameChanged(t,e,n){this.fireEvent(this.Event.SheetNameChanged,{workbook:t,worksheet:e,newName:n})}_fireSheetTabColorChanged(t,e,n){this.fireEvent(this.Event.SheetTabColorChanged,{workbook:t,worksheet:e,newColor:n})}_fireSheetHideChanged(t,e,n){this.fireEvent(this.Event.SheetHideChanged,{workbook:t,worksheet:e,hidden:n})}}R.FUniver.extend(Ue);class te{get SheetValueChangeType(){return a.SheetValueChangeType}get SheetSkeletonChangeType(){return a.SheetSkeletonChangeType}get SplitDelimiterType(){return a.SplitDelimiterEnum}get UnitRole(){return M}get WorkbookPermissionPoint(){return g}get WorksheetPermissionPoint(){return S}get RangePermissionPoint(){return I}}R.FEnum.extend(te);class ne{get SheetCreated(){return"SheetCreated"}get BeforeSheetCreate(){return"BeforeSheetCreate"}get WorkbookCreated(){return"WorkbookCreated"}get WorkbookDisposed(){return"WorkbookDisposed"}get GridlineChanged(){return"GridlineChanged"}get BeforeGridlineEnableChange(){return"BeforeGridlineEnableChange"}get BeforeGridlineColorChange(){return"BeforeGridlineColorChange"}get BeforeActiveSheetChange(){return"BeforeActiveSheetChange"}get ActiveSheetChanged(){return"ActiveSheetChanged"}get SheetDeleted(){return"SheetDeleted"}get BeforeSheetDelete(){return"BeforeSheetDelete"}get SheetMoved(){return"SheetMoved"}get BeforeSheetMove(){return"BeforeSheetMove"}get SheetNameChanged(){return"SheetNameChanged"}get BeforeSheetNameChange(){return"BeforeSheetNameChange"}get SheetTabColorChanged(){return"SheetTabColorChanged"}get BeforeSheetTabColorChange(){return"BeforeSheetTabColorChange"}get SheetHideChanged(){return"SheetHideChanged"}get BeforeSheetHideChange(){return"BeforeSheetHideChange"}get SheetValueChanged(){return"SheetValueChanged"}}R.FEventName.extend(ne);var We=Object.getOwnPropertyDescriptor,Me=(r,t,e,n)=>{for(var s=n>1?void 0:n?We(t,e):t,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=o(s)||s);return s},De=(r,t)=>(e,n)=>t(e,n,r);exports.FSheetHooks=class extends R.FBase{constructor(t){super(),this._injector=t}};exports.FSheetHooks=Me([De(0,h.Inject(h.Injector))],exports.FSheetHooks);exports.FSheetEventName=ne;exports.FSheetsEnum=te;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/core/facade`),n=require(`@univerjs/sheets`),r=require(`@univerjs/engine-formula`),i=require(`@univerjs/protocol`),a=require(`rxjs`),o=require(`rxjs/operators`);function s(e){"@babel/helpers - typeof";return s=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},s(e)}function c(e,t){if(s(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(s(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function l(e){var t=c(e,`string`);return s(t)==`symbol`?t:t+``}function u(e,t,n){return(t=l(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){return function(n,r){t(n,r,e)}}function f(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function p(e,t,n){let r=n.getDefinedNameMap(e);if(r==null)return t.t(`definedName.defaultName`)+1;let i=Array.from(Object.values(r)).length+1,a=t.t(`definedName.defaultName`)+i;if(n.getValueByName(e,a)==null)return a;let o=i+1;for(;;){let r=t.t(`definedName.defaultName`)+o;if(n.getValueByName(e,r)==null)return r;o++}}var m=class{constructor(){u(this,`_definedNameParam`,void 0),this._definedNameParam={id:(0,e.generateRandomId)(10),unitId:``,name:``,formulaOrRefString:``,localSheetId:n.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}}setName(e){return this._definedNameParam.name=e,this}setFormula(e){return this._definedNameParam.formulaOrRefString=`=${e}`,this}setRef(e){return this._definedNameParam.formulaOrRefString=e,this}setRefByRange(e,t,n,i){return this._definedNameParam.formulaOrRefString=(0,r.serializeRange)({startRow:e,endRow:e+(n==null?1:n)-1,startColumn:t,endColumn:t+(i==null?1:i)-1}),this}setComment(e){return this._definedNameParam.comment=e,this}setScopeToWorksheet(e){return this._definedNameParam.localSheetId=e.getSheetId(),this}setScopeToWorkbook(){return this._definedNameParam.localSheetId=n.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this}setHidden(e){return this._definedNameParam.hidden=e,this}build(){return this._definedNameParam}load(e){return this._definedNameParam=e,this}};let h=class extends t.FBase{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._definedNameParam=e,this._injector=t,this._commandService=n,this._permissionService=r,this._worksheetProtectionRuleModel=i,this._rangeProtectionRuleModel=a,this._worksheetProtectionPointRuleModel=o,this._authzIoService=s,this._localeService=c,this._definedNamesService=l}_apply(){this._definedNameParam.name===``&&(this._definedNameParam.name=p(this._definedNameParam.unitId,this._localeService,this._definedNamesService)),this._commandService.syncExecuteCommand(n.SetDefinedNameCommand.id,this._definedNameParam)}getName(){return this._definedNameParam.name}setName(e){this._definedNameParam.name=e,this._apply()}setFormula(e){this._definedNameParam.formulaOrRefString=`=${e}`,this._apply()}setRef(e){this._definedNameParam.formulaOrRefString=e,this._apply()}getFormulaOrRefString(){return this._definedNameParam.formulaOrRefString}setRefByRange(e,t,n,i){this._definedNameParam.formulaOrRefString=(0,r.serializeRange)({startRow:e,endRow:e+(n==null?1:n)-1,startColumn:t,endColumn:t+(i==null?1:i)-1}),this._apply()}getComment(){return this._definedNameParam.comment}setComment(e){this._definedNameParam.comment=e,this._apply()}setScopeToWorksheet(e){this._definedNameParam.localSheetId=e.getSheetId(),this._apply()}setScopeToWorkbook(){this._definedNameParam.localSheetId=n.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this._apply()}setHidden(e){this._definedNameParam.hidden=e,this._apply()}delete(){this._commandService.syncExecuteCommand(n.RemoveDefinedNameCommand.id,this._definedNameParam)}getLocalSheetId(){return this._definedNameParam.localSheetId}isWorkbookScope(){return this._definedNameParam.localSheetId===n.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}toBuilder(){let e=this._injector.createInstance(m);return e.load(this._definedNameParam),e}};h=f([d(1,(0,e.Inject)(e.Injector)),d(2,e.ICommandService),d(3,e.IPermissionService),d(4,(0,e.Inject)(n.WorksheetProtectionRuleModel)),d(5,(0,e.Inject)(n.RangeProtectionRuleModel)),d(6,(0,e.Inject)(n.WorksheetProtectionPointModel)),d(7,(0,e.Inject)(e.IAuthzIoService)),d(8,(0,e.Inject)(e.LocaleService)),d(9,r.IDefinedNamesService)],h);let g=function(e){return e[e.Reader=0]=`Reader`,e[e.Editor=1]=`Editor`,e[e.Owner=2]=`Owner`,e}({}),_=function(e){return e.Edit=`WorkbookEdit`,e.View=`WorkbookView`,e.Print=`WorkbookPrint`,e.Export=`WorkbookExport`,e.Share=`WorkbookShare`,e.CopyContent=`WorkbookCopy`,e.DuplicateFile=`WorkbookDuplicate`,e.Comment=`WorkbookComment`,e.ManageCollaborator=`WorkbookManageCollaborator`,e.CreateSheet=`WorkbookCreateSheet`,e.DeleteSheet=`WorkbookDeleteSheet`,e.RenameSheet=`WorkbookRenameSheet`,e.MoveSheet=`WorkbookMoveSheet`,e.HideSheet=`WorkbookHideSheet`,e.ViewHistory=`WorkbookViewHistory`,e.ManageHistory=`WorkbookHistory`,e.RecoverHistory=`WorkbookRecoverHistory`,e.CreateProtection=`WorkbookCreateProtect`,e.InsertRow=`WorkbookInsertRow`,e.InsertColumn=`WorkbookInsertColumn`,e.DeleteRow=`WorkbookDeleteRow`,e.DeleteColumn=`WorkbookDeleteColumn`,e.CopySheet=`WorkbookCopySheet`,e}({}),v=function(e){return e.Edit=`WorksheetEdit`,e.View=`WorksheetView`,e.Copy=`WorksheetCopy`,e.SetCellValue=`WorksheetSetCellValue`,e.SetCellStyle=`WorksheetSetCellStyle`,e.SetRowStyle=`WorksheetSetRowStyle`,e.SetColumnStyle=`WorksheetSetColumnStyle`,e.InsertRow=`WorksheetInsertRow`,e.InsertColumn=`WorksheetInsertColumn`,e.DeleteRow=`WorksheetDeleteRow`,e.DeleteColumn=`WorksheetDeleteColumn`,e.Sort=`WorksheetSort`,e.Filter=`WorksheetFilter`,e.PivotTable=`WorksheetPivotTable`,e.InsertHyperlink=`WorksheetInsertHyperlink`,e.EditExtraObject=`WorksheetEditExtraObject`,e.ManageCollaborator=`WorksheetManageCollaborator`,e.DeleteProtection=`WorksheetDeleteProtection`,e.SelectProtectedCells=`WorksheetSelectProtectedCells`,e.SelectUnProtectedCells=`WorksheetSelectUnProtectedCells`,e}({}),y=function(e){return e.Edit=`RangeEdit`,e.View=`RangeView`,e.ManageCollaborator=`RangeManageCollaborator`,e.Delete=`RangeDeleteProtection`,e}({}),b=class extends t.FBase{constructor(e,t,r,i,a,o,s,c){super(),this._injector=e,this._commandService=t,this._permissionService=r,this._worksheetProtectionRuleModel=i,this._rangeProtectionRuleModel=a,this._worksheetProtectionPointRuleModel=o,this._workbookPermissionService=s,this._authzIoService=c,u(this,`permissionPointsDefinition`,n.PermissionPointsDefinitions),u(this,`rangeRuleChangedAfterAuth$`,void 0),u(this,`sheetRuleChangedAfterAuth$`,void 0),u(this,`unitPermissionInitStateChange$`,void 0),this.rangeRuleChangedAfterAuth$=this._rangeProtectionRuleModel.ruleRefresh$,this.sheetRuleChangedAfterAuth$=this._worksheetProtectionRuleModel.ruleRefresh$,this.unitPermissionInitStateChange$=this._workbookPermissionService.unitPermissionInitStateChange$}setWorkbookPermissionPoint(e,t,n){let r=new t(e);this._permissionService.getPermissionPoint(r.id)||this._permissionService.addPermissionPoint(r),this._permissionService.updatePermissionPoint(r.id,n)}checkWorkbookPermissionPoint(e,t){let n=new t(e),r=this._permissionService.getPermissionPoint(n.id);if(r)return r.value}setWorkbookEditPermission(e,t){this.setWorkbookPermissionPoint(e,n.WorkbookEditablePermission,t)}async addWorksheetBasePermission(e,t,r){let i=[];if(r!=null&&r.allowedUsers){let t=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),n=new Set(r.allowedUsers);i=t.filter(e=>{var t;return n.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:g.Editor,subject:e.subject}));let a=new Set(i.map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}));r.allowedUsers.forEach(e=>{a.has(e)||console.error(`User ${e} not found in collaborators list`)})}let a=await this._authzIoService.create({objectType:n.UnitObject.Worksheet,worksheetObject:{collaborators:i,unitID:e,strategies:[],name:(r==null?void 0:r.name)||``,scope:void 0}});if(this._commandService.syncExecuteCommand(n.AddWorksheetProtectionMutation.id,{unitId:e,subUnitId:t,rule:{permissionId:a,unitType:n.UnitObject.Worksheet,unitId:e,subUnitId:t}}))return a}removeWorksheetPermission(e,t){this._commandService.syncExecuteCommand(n.DeleteWorksheetProtectionMutation.id,{unitId:e,subUnitId:t}),[...(0,n.getAllWorksheetPermissionPoint)(),...(0,n.getAllWorksheetPermissionPointByPointPanel)()].forEach(n=>{let r=new n(e,t);this._permissionService.updatePermissionPoint(r.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e,t)}async setWorksheetPermissionPoint(e,t,r,i){let a=this._worksheetProtectionRuleModel.getRule(e,t),o;if(r===n.WorksheetEditPermission||r===n.WorksheetViewPermission)o=a?a.permissionId:await this.addWorksheetBasePermission(e,t);else{let r=this._worksheetProtectionPointRuleModel.getRule(e,t);r?o=r.permissionId:(o=await this._authzIoService.create({objectType:n.UnitObject.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:``,scope:void 0}}),this._commandService.syncExecuteCommand(n.SetWorksheetPermissionPointsMutation.id,{unitId:e,subUnitId:t,rule:{unitId:e,subUnitId:t,permissionId:o}}))}let s=new r(e,t);if(this._permissionService.getPermissionPoint(s.id)||this._permissionService.addPermissionPoint(s),o){let t=s.subType;await this._authzIoService.update({objectType:n.UnitObject.Worksheet,objectID:o,strategies:[{action:t,role:i?g.Owner:g.Reader}],unitID:e,share:void 0,name:``,scope:void 0,collaborators:void 0})}return this._permissionService.updatePermissionPoint(s.id,i),o}checkWorksheetPermissionPoint(e,t,n){let r=new n(e,t),i=this._permissionService.getPermissionPoint(r.id);if(i)return i.value}async addRangeBaseProtection(t,r,i,a){let o=[];if(a!=null&&a.allowedUsers){let e=await this._authzIoService.listCollaborators({objectID:t,unitID:t}),n=new Set(a.allowedUsers);o=e.filter(e=>{var t;return n.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:g.Editor,subject:e.subject}));let r=new Set(o.map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}));a.allowedUsers.forEach(e=>{r.has(e)||console.error(`User ${e} not found in collaborators list`)})}let s=await this._authzIoService.create({objectType:n.UnitObject.SelectRange,selectRangeObject:{collaborators:o,unitID:t,name:(a==null?void 0:a.name)||``,scope:void 0}}),c=`ruleId_${(0,e.generateRandomId)(6)}`;if(this._rangeProtectionRuleModel.getSubunitRuleList(t,r).some(t=>t.ranges.some(t=>i.some(n=>e.Rectangle.intersects(n.getRange(),t)))))throw Error(`range protection cannot intersect`);let l=this._determineRangeViewState(a),u=this._determineRangeEditState(a),d={unitId:t,subUnitId:r,rules:[{permissionId:s,unitType:n.UnitObject.SelectRange,unitId:t,subUnitId:r,ranges:i.map(e=>e.getRange()),id:c,description:a==null?void 0:a.name,viewState:l,editState:u}]};if(this._commandService.syncExecuteCommand(n.AddRangeProtectionMutation.id,d))return{permissionId:s,ruleId:c}}_determineRangeViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?n.ViewStateEnum.NoOneElseCanView:n.ViewStateEnum.OthersCanView}_determineRangeEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?n.EditStateEnum.DesignedUserCanEdit:n.EditStateEnum.OnlyMe}removeRangeProtection(e,t,r){this._commandService.syncExecuteCommand(n.DeleteRangeProtectionMutation.id,{unitId:e,subUnitId:t,ruleIds:r})&&this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e,t),[...(0,n.getAllWorksheetPermissionPointByPointPanel)()].forEach(n=>{let r=new n(e,t);this._permissionService.updatePermissionPoint(r.id,r.value)}))}setRangeProtectionPermissionPoint(e,t,n,r,i){let a=new r(e,t,n);this._permissionService.getPermissionPoint(a.id)||this._permissionService.addPermissionPoint(a),this._permissionService.updatePermissionPoint(a.id,i)}setRangeProtectionRanges(t,r,i,a){let o=this._rangeProtectionRuleModel.getRule(t,r,i);if(o){if(this._rangeProtectionRuleModel.getSubunitRuleList(t,r).filter(e=>e.id!==i).some(t=>t.ranges.some(t=>a.some(n=>e.Rectangle.intersects(n.getRange(),t)))))throw Error(`range protection cannot intersect`);this._commandService.syncExecuteCommand(n.SetRangeProtectionMutation.id,{unitId:t,subUnitId:r,ruleId:i,rule:{...o,ranges:a.map(e=>e.getRange())}})}}getPermissionInfoWithCell(t,n,r,i){let a=(0,e.cellToRange)(r,i),o=this._rangeProtectionRuleModel.getSubunitRuleList(t,n).find(t=>t.ranges.some(t=>e.Rectangle.intersects(a,t)));if(o)return{permissionId:o.permissionId,ruleId:o.id}}};b=f([d(0,(0,e.Inject)(e.Injector)),d(1,e.ICommandService),d(2,e.IPermissionService),d(3,(0,e.Inject)(n.WorksheetProtectionRuleModel)),d(4,(0,e.Inject)(n.RangeProtectionRuleModel)),d(5,(0,e.Inject)(n.WorksheetProtectionPointModel)),d(6,(0,e.Inject)(n.WorkbookPermissionService)),d(7,(0,e.Inject)(e.IAuthzIoService))],b);var x;let S=x=class{constructor(e,t,n,r){this._workbook=e,this._worksheet=t,this._selections=n,this._injector=r}getActiveRange(){let e=this._selections.find(e=>!!e.primary);return e?this._injector.createInstance(z,this._workbook,this._worksheet,e.range):null}getActiveRangeList(){return this._selections.map(e=>this._injector.createInstance(z,this._workbook,this._worksheet,e.range))}getCurrentCell(){let e=this._selections.find(e=>!!e.primary);return e?e.primary:null}getActiveSheet(){let e=this._injector.createInstance(V,this._workbook);return this._injector.createInstance(F,e,this._workbook,this._worksheet)}updatePrimaryCell(t){let r=this._injector.get(e.ICommandService),i=[],a=!1;for(let{range:r,style:o}of this._selections)e.Rectangle.contains(r,t.getRange())?(i.push({range:r,primary:(0,n.getPrimaryForRange)(t.getRange(),this._worksheet),style:o}),a=!0):i.push({range:r,primary:null,style:o});a||(i=[{range:t.getRange(),primary:(0,n.getPrimaryForRange)(t.getRange(),this._worksheet)}]);let o={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),selections:i};return r.syncExecuteCommand(n.SetSelectionsOperation.id,o),new x(this._workbook,this._worksheet,i,this._injector)}getNextDataRange(e){if(!this._selections.find(e=>!!e.primary))return null;let t=(0,n.getNextPrimaryCell)(this._selections.concat(),e,this._worksheet);return t?this._injector.createInstance(z,this._workbook,this._worksheet,t):null}};S=x=f([d(3,(0,e.Inject)(e.Injector))],S);let C=class{constructor(e,t,n,r,i,a,o,s,c){this._unitId=e,this._subUnitId=t,this._ruleId=n,this._permissionId=r,this._ranges=i,this._options=a,this._injector=o,this._commandService=s,this._rangeProtectionRuleModel=c}get id(){return this._ruleId}get ranges(){return this._ranges}get options(){return{...this._options}}async updateRanges(e){if(!e||e.length===0)throw Error(`Ranges cannot be empty`);let t=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,this._ruleId);if(!t)throw Error(`Rule ${this._ruleId} not found`);if(this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).filter(e=>e.id!==this._ruleId).some(t=>t.ranges.some(t=>e.some(e=>{let n=e.getRange();return this._rangesIntersect(n,t)}))))throw Error(`Range protection cannot intersect with other protection rules`);await this._commandService.executeCommand(n.SetRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleId:this._ruleId,rule:{...t,ranges:e.map(e=>e.getRange())}}),this._ranges.length=0,this._ranges.push(...e)}async remove(){await this._commandService.executeCommand(n.DeleteRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleIds:[this._ruleId]})}_rangesIntersect(e,t){return!(e.endRow<t.startRow||e.startRow>t.endRow||e.endColumn<t.startColumn||e.startColumn>t.endColumn)}};C=f([d(6,(0,e.Inject)(e.Injector)),d(7,(0,e.Inject)(e.ICommandService)),d(8,(0,e.Inject)(n.RangeProtectionRuleModel))],C);const w={[_.Edit]:n.WorkbookEditablePermission,[_.View]:n.WorkbookViewPermission,[_.Print]:n.WorkbookPrintPermission,[_.Export]:n.WorkbookExportPermission,[_.Share]:n.WorkbookSharePermission,[_.CopyContent]:n.WorkbookCopyPermission,[_.DuplicateFile]:n.WorkbookDuplicatePermission,[_.Comment]:n.WorkbookCommentPermission,[_.ManageCollaborator]:n.WorkbookManageCollaboratorPermission,[_.CreateSheet]:n.WorkbookCreateSheetPermission,[_.DeleteSheet]:n.WorkbookDeleteSheetPermission,[_.RenameSheet]:n.WorkbookRenameSheetPermission,[_.MoveSheet]:n.WorkbookMoveSheetPermission,[_.HideSheet]:n.WorkbookHideSheetPermission,[_.ViewHistory]:n.WorkbookViewHistoryPermission,[_.ManageHistory]:n.WorkbookHistoryPermission,[_.RecoverHistory]:n.WorkbookRecoverHistoryPermission,[_.CreateProtection]:n.WorkbookCreateProtectPermission,[_.InsertRow]:n.WorkbookInsertRowPermission,[_.InsertColumn]:n.WorkbookInsertColumnPermission,[_.DeleteRow]:n.WorkbookDeleteRowPermission,[_.DeleteColumn]:n.WorkbookDeleteColumnPermission,[_.CopySheet]:n.WorkbookCopySheetPermission},T={[v.Edit]:n.WorksheetEditPermission,[v.View]:n.WorksheetViewPermission,[v.Copy]:n.WorksheetCopyPermission,[v.SetCellValue]:n.WorksheetSetCellValuePermission,[v.SetCellStyle]:n.WorksheetSetCellStylePermission,[v.SetRowStyle]:n.WorksheetSetRowStylePermission,[v.SetColumnStyle]:n.WorksheetSetColumnStylePermission,[v.InsertRow]:n.WorksheetInsertRowPermission,[v.InsertColumn]:n.WorksheetInsertColumnPermission,[v.DeleteRow]:n.WorksheetDeleteRowPermission,[v.DeleteColumn]:n.WorksheetDeleteColumnPermission,[v.Sort]:n.WorksheetSortPermission,[v.Filter]:n.WorksheetFilterPermission,[v.PivotTable]:n.WorksheetPivotTablePermission,[v.InsertHyperlink]:n.WorksheetInsertHyperlinkPermission,[v.EditExtraObject]:n.WorksheetEditExtraObjectPermission,[v.ManageCollaborator]:n.WorksheetManageCollaboratorPermission,[v.DeleteProtection]:n.WorksheetDeleteProtectionPermission,[v.SelectProtectedCells]:n.WorksheetSelectProtectedCellsPermission,[v.SelectUnProtectedCells]:n.WorksheetSelectUnProtectedCellsPermission},E={[y.Edit]:n.RangeProtectionPermissionEditPoint,[y.View]:n.RangeProtectionPermissionViewPoint,[y.ManageCollaborator]:n.RangeProtectionPermissionManageCollaPoint,[y.Delete]:n.RangeProtectionPermissionDeleteProtectionPoint};let D=class{constructor(e,t,n,r,i,o,s,c){this._worksheet=e,this._injector=t,this._permissionService=n,this._authzIoService=r,this._commandService=i,this._rangeProtectionRuleModel=o,this._worksheetProtectionPointModel=s,this._worksheetProtectionRuleModel=c,u(this,`_permissionSubject`,void 0),u(this,`_rangeRulesSubject`,void 0),u(this,`permission$`,void 0),u(this,`pointChange$`,void 0),u(this,`rangeProtectionChange$`,void 0),u(this,`rangeProtectionRules$`,void 0),u(this,`_unitId`,void 0),u(this,`_subUnitId`,void 0),u(this,`_subscriptions`,[]),u(this,`_fPermission`,void 0),this._unitId=this._worksheet.getWorkbook().getUnitId(),this._subUnitId=this._worksheet.getSheetId(),this._fPermission=this._injector.createInstance(b),this._permissionSubject=new a.BehaviorSubject(this._buildSnapshot()),this._rangeRulesSubject=new a.BehaviorSubject(this._buildRangeProtectionRules()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.rangeProtectionChange$=this._createRangeProtectionChangeStream(),this.rangeProtectionRules$=this._createRangeProtectionRulesStream()}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.id.includes(this._unitId)&&e.id.includes(this._subUnitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(e),this._permissionSubject.asObservable().pipe((0,o.distinctUntilChanged)((e,t)=>JSON.stringify(e)===JSON.stringify(t)),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createPointChangeStream(){return this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.id.includes(this._unitId)&&e.id.includes(this._subUnitId)),(0,o.map)(e=>{var t,n;let r=this._extractWorksheetPointType(e.id);return r?{point:r,value:(t=e.value)==null?!1:t,oldValue:!((n=e.value)!=null&&n)}:null}),(0,o.filter)(e=>e!==null),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createRangeProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe((0,o.filter)(e=>e.unitId===this._unitId&&e.subUnitId===this._subUnitId),(0,o.map)(e=>{let t=this._buildRangeProtectionRules();return{type:e.type===`delete`?`delete`:e.type===`set`?`update`:`add`,rules:t}}),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createRangeProtectionRulesStream(){let e=this._rangeProtectionRuleModel.ruleChange$.pipe((0,o.filter)(e=>e.unitId===this._unitId&&e.subUnitId===this._subUnitId)).subscribe(()=>{this._rangeRulesSubject.next(this._buildRangeProtectionRules())});return this._subscriptions.push(e),this._rangeRulesSubject.asObservable().pipe((0,o.distinctUntilChanged)((e,t)=>e.length===t.length?e.every((e,n)=>e.id===t[n].id):!1),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_extractWorksheetPointType(e){for(let[t,n]of Object.entries(T))if(new n(this._unitId,this._subUnitId).id===e)return t;return null}_getRuleEditPermission(e){var t;let n=E[y.Edit];if(!n)return!1;let r=new n(this._unitId,this._subUnitId,e.permissionId),i=this._permissionService.getPermissionPoint(r.id);return(t=i==null?void 0:i.value)==null?!1:t}_buildSnapshot(){let e={};for(let t in v){let n=v[t];e[n]=this.getPoint(n)}return e}_buildRangeProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(e=>{let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1));return this._injector.createInstance(C,this._unitId,this._subUnitId,e.id,e.permissionId,t,{name:e.description||``,allowEdit:this._getRuleEditPermission(e)})})}_buildProtectionRule(e){let t=e.ranges.map(e=>this._worksheet.getRange(e)),r={name:e.description||``,allowViewByOthers:e.viewState!==n.ViewStateEnum.NoOneElseCanView};return e.editState===n.EditStateEnum.DesignedUserCanEdit?r.allowEdit=!0:r.allowEdit=!1,this._injector.createInstance(C,this._unitId,this._subUnitId,e.id,e.permissionId,t,r)}debugCellPermission(e,t){let n=this._fPermission.getPermissionInfoWithCell(this._unitId,this._subUnitId,e,t);if(!n)return;let{ruleId:r}=n,i=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,r);if(i)return this._buildProtectionRule(i)}async protect(e){if(this.isProtected())throw Error(`Worksheet is already protected. Call unprotect() first.`);let t=await this._fPermission.addWorksheetBasePermission(this._unitId,this._subUnitId,e);if(!t)throw Error(`Failed to create worksheet protection`);return t}async unprotect(){if(!this.isProtected())return;this._fPermission.removeWorksheetPermission(this._unitId,this._subUnitId);let e=this._buildSnapshot();this._permissionSubject.next(e)}isProtected(){return!!this._worksheetProtectionRuleModel.getRule(this._unitId,this._subUnitId)}async setMode(e){let t=this._getModePermissions(e);await this._batchSetPermissionPoints(t)}_getModePermissions(e){let t={};switch(Object.values(v).forEach(e=>{t[e]=!1}),e){case`editable`:Object.values(v).forEach(e=>{t[e]=!0});break;case`readOnly`:t[v.View]=!0;break;case`filterOnly`:t[v.View]=!0,t[v.Sort]=!0,t[v.Filter]=!0;break}return t}async _batchSetPermissionPoints(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n,i=T[e];if(!i)throw Error(`Unknown worksheet permission point: ${e}`);let a=this.getPoint(e);a!==r&&(await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,i,r),t.push({point:e,value:r,oldValue:a}))}if(t.length>0){let e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode(`readOnly`)}async setEditable(){await this.setMode(`editable`)}canEdit(){return this.getPoint(v.Edit)}canEditCell(e,t){if(!this.canEdit())return!1;let n=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);for(let r of n)for(let n of r.ranges)if(e>=n.startRow&&e<=n.endRow&&t>=n.startColumn&&t<=n.endColumn)return this._getRuleEditPermission(r);return!0}canViewCell(e,t){return this.getPoint(v.View)}async setPoint(e,t){let n=T[e];if(!n)throw Error(`Unknown worksheet permission point: ${e}`);if(this.getPoint(e)===t)return;await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,n,t);let r=this._buildSnapshot();this._permissionSubject.next(r)}getPoint(e){var t;let n=T[e];if(!n)throw Error(`Unknown worksheet permission point: ${e}`);let r=new n(this._unitId,this._subUnitId),i=this._permissionService.getPermissionPoint(r.id);return(t=i==null?void 0:i.value)==null?!0:t}getSnapshot(){return this._buildSnapshot()}async applyConfig(e){if(e.mode&&await this.setMode(e.mode),e.points)for(let[t,n]of Object.entries(e.points))typeof n==`boolean`&&await this.setPoint(t,n);if(e.rangeProtections&&e.rangeProtections.length>0){let t=e.rangeProtections.map(e=>({ranges:e.rangeRefs.map(e=>this._worksheet.getRange(e)),options:e.options}));await this.protectRanges(t)}}async protectRanges(e){if(!e||e.length===0)throw Error(`Configs cannot be empty`);let t=[];e.some(e=>{var t;return(t=e.options)==null||(t=t.allowedUsers)==null?void 0:t.length})&&(t=await this._authzIoService.listCollaborators({objectID:this._unitId,unitID:this._unitId}));let r=await Promise.all(e.map(e=>{var r,a;let o=[];if((r=e.options)!=null&&r.allowedUsers){let n=new Set(e.options.allowedUsers);o=t.filter(e=>{var t;return n.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:i.UnitRole.Editor,subject:e.subject}));let r=new Set(o.map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}));e.options.allowedUsers.forEach(e=>{r.has(e)||console.error(`User ${e} not found in collaborators list`)})}return this._authzIoService.create({objectType:n.UnitObject.SelectRange,selectRangeObject:{collaborators:o,unitID:this._unitId,name:((a=e.options)==null?void 0:a.name)||``,scope:void 0}})})),a=e.map((e,t)=>{var i;let a=this._determineViewState(e.options),o=this._determineEditState(e.options);return{permissionId:r[t],unitType:n.UnitObject.SelectRange,unitId:this._unitId,subUnitId:this._subUnitId,ranges:e.ranges.map(e=>e.getRange()),id:this._rangeProtectionRuleModel.createRuleId(this._unitId,this._subUnitId),description:((i=e.options)==null?void 0:i.name)||``,viewState:a,editState:o}});if(!await this._commandService.executeCommand(n.AddRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,rules:a}))throw Error(`Failed to create range protection rules`);return await Promise.all(e.map((e,t)=>this._setPermissionPoints(r[t],e.options))),a.map((t,n)=>this._injector.createInstance(C,this._unitId,this._subUnitId,t.id,t.permissionId,e[n].ranges,e[n].options||{}))}_determineViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?n.ViewStateEnum.NoOneElseCanView:n.ViewStateEnum.OthersCanView}_determineEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?n.EditStateEnum.DesignedUserCanEdit:n.EditStateEnum.OnlyMe}async _setPermissionPoints(e,t){if(!t)return;let n=(e,t)=>e===void 0?t:typeof e==`boolean`?e:!0;await this._setPermissionPoint(e,y.Edit,n(t.allowEdit,!1)),await this._setPermissionPoint(e,y.View,n(t.allowViewByOthers,!0))}async _setPermissionPoint(e,t,n){let r=E[t];r&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,e,r,n)}async unprotectRules(e){!e||e.length===0||this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,e)}async listRangeProtectionRules(){return this._buildRangeProtectionRules()}subscribe(e){let t=this.permission$.subscribe(e);return()=>t.unsubscribe()}dispose(){this._subscriptions.forEach(e=>e.unsubscribe()),this._permissionSubject.complete(),this._rangeRulesSubject.complete()}};D=f([d(1,(0,e.Inject)(e.Injector)),d(2,e.IPermissionService),d(3,e.IAuthzIoService),d(4,e.ICommandService),d(5,(0,e.Inject)(n.RangeProtectionRuleModel)),d(6,(0,e.Inject)(n.WorksheetProtectionPointModel)),d(7,(0,e.Inject)(n.WorksheetProtectionRuleModel))],D);function O(t){switch(t){case`left`:return e.HorizontalAlign.LEFT;case`center`:return e.HorizontalAlign.CENTER;case`normal`:return e.HorizontalAlign.RIGHT;default:throw Error(`Invalid horizontal alignment: ${t}`)}}function k(t){switch(t){case e.HorizontalAlign.LEFT:return`left`;case e.HorizontalAlign.CENTER:return`center`;case e.HorizontalAlign.RIGHT:return`normal`;default:return`general`}}function A(t){switch(t){case`top`:return e.VerticalAlign.TOP;case`middle`:return e.VerticalAlign.MIDDLE;case`bottom`:return e.VerticalAlign.BOTTOM;default:throw Error(`Invalid vertical alignment: ${t}`)}}function j(t){switch(t){case e.VerticalAlign.TOP:return`top`;case e.VerticalAlign.MIDDLE:return`middle`;case e.VerticalAlign.BOTTOM:return`bottom`;default:return`general`}}function M(t,n){return{startRow:t.startRow,endRow:t.endRow,startColumn:0,endColumn:n.getColumnCount()-1,rangeType:e.RANGE_TYPE.ROW}}function N(t,n){return{startRow:0,endRow:n.getRowCount()-1,startColumn:t.startColumn,endColumn:t.endColumn,rangeType:e.RANGE_TYPE.COLUMN}}var P;let F=P=class extends t.FBaseInitialable{constructor(e,t,n,r,i,a,o){super(r),this._fWorkbook=e,this._workbook=t,this._worksheet=n,this._injector=r,this._selectionManagerService=i,this._logService=a,this._commandService=o,u(this,`setActiveSelection`,this.setActiveRange)}dispose(){super.dispose(),delete this._fWorkbook,delete this._workbook,delete this._worksheet}getSheet(){return this._worksheet}getInject(){return this._injector}getWorkbook(){return this._workbook}getSheetId(){return this._worksheet.getSheetId()}getSheetName(){return this._worksheet.getName()}getSelection(){let e=this._selectionManagerService.getCurrentSelections();return e?this._injector.createInstance(S,this._workbook,this._worksheet,e):null}getDefaultStyle(){return this._worksheet.getDefaultCellStyle()}getRowDefaultStyle(e,t=!1){return t?this._worksheet.getRowStyle(e,t):this._worksheet.getRowStyle(e)}getColumnDefaultStyle(e,t=!1){return t?this._worksheet.getColumnStyle(e,t):this._worksheet.getColumnStyle(e)}setDefaultStyle(e){let t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(n.SetWorksheetDefaultStyleMutation.id,{unitId:t,subUnitId:r,defaultStyle:e}),this._worksheet.setDefaultCellStyle(e),this}setColumnDefaultStyle(e,t){let r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),columnData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(n.SetColDataCommand.id,r),this}setRowDefaultStyle(e,t){let r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(n.SetRowDataCommand.id,r),this}getRange(t,n,i,a){let o,s;if(typeof t==`object`)o=t,s=this._worksheet;else if(typeof t==`string`){let{range:n,sheetName:i}=(0,r.deserializeRangeWithSheet)(t),a=i?this._workbook.getSheetBySheetName(i):this._worksheet;if(!a)throw Error(`Range not found`);s=a,o={...n,unitId:this._workbook.getUnitId(),sheetId:s.getSheetId(),rangeType:e.RANGE_TYPE.NORMAL,startRow:n.rangeType===e.RANGE_TYPE.COLUMN?0:n.startRow,endRow:n.rangeType===e.RANGE_TYPE.COLUMN?s.getMaxRows()-1:n.endRow,startColumn:n.rangeType===e.RANGE_TYPE.ROW?0:n.startColumn,endColumn:n.rangeType===e.RANGE_TYPE.ROW?s.getMaxColumns()-1:n.endColumn}}else if(typeof t==`number`&&n!==void 0)s=this._worksheet,o={startRow:t,endRow:t+(i==null?1:i)-1,startColumn:n,endColumn:n+(a==null?1:a)-1,unitId:this._workbook.getUnitId(),sheetId:this._worksheet.getSheetId()};else throw Error(`Invalid range specification`);return this._injector.createInstance(z,this._workbook,s,o)}getMaxColumns(){return this._worksheet.getMaxColumns()}getMaxRows(){return this._worksheet.getMaxRows()}insertRowAfter(e){return this.insertRowsAfter(e,1)}insertRowBefore(e){return this.insertRowsBefore(e,1)}insertRows(e,t=1){return this.insertRowsBefore(e,t)}insertRowsAfter(t,r){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=e.Direction.DOWN,s=t+1,c=t+r,l=this._worksheet.getColumnCount()-1,u=(0,n.copyRangeStyles)(this._worksheet,s,c,0,l,!0,t);return this._commandService.syncExecuteCommand(n.InsertRowByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:s,endRow:c,startColumn:0,endColumn:l},cellValue:u}),this}insertRowsBefore(t,r){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=e.Direction.UP,s=t,c=t+r-1,l=this._worksheet.getColumnCount()-1,u=(0,n.copyRangeStyles)(this._worksheet,s,c,0,l,!0,t-1);return this._commandService.syncExecuteCommand(n.InsertRowByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:s,endRow:c,startColumn:0,endColumn:l},cellValue:u}),this}deleteRow(e){return this.deleteRows(e,1)}deleteRows(e,t){let r={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return this._commandService.syncExecuteCommand(n.RemoveRowByRangeCommand.id,{range:r,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteRowsByPoints(t){return(0,e.generateIntervalsByPoints)(t).reverse().forEach(e=>{this.deleteRows(e[0],e[1]-e[0]+1)}),this}moveRows(e,t){let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=M(e.getRange(),this._worksheet),o=a,s={startRow:t,endRow:t,startColumn:a.startColumn,endColumn:a.endColumn};return this._commandService.syncExecuteCommand(n.MoveRowsCommand.id,{unitId:r,subUnitId:i,range:a,fromRange:o,toRange:s}),this}hideRow(e){let t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=M(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(n.SetRowHiddenCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}hideRows(t,r=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:t,endRow:t+r-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:e.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(n.SetRowHiddenCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}unhideRow(e){let t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=M(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(n.SetSpecificRowsVisibleCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}showRows(t,r=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:t,endRow:t+r-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:e.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(n.SetSpecificRowsVisibleCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}setRowHeight(e,t){return this.setRowHeights(e,1,t)}autoFitRow(t,r=e.BooleanNumber.TRUE){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=[{startRow:t,endRow:t,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(n.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:o[0],value:e.WrapStrategy.WRAP}),this._commandService.syncExecuteCommand(n.SetWorksheetRowIsAutoHeightMutation.id,{unitId:i,subUnitId:a,ranges:o,autoHeightInfo:r}),this}setRowHeights(e,t,r){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=this._worksheet.getRowManager(),s=[],c=[];for(let n=e;n<e+t;n++){var l;let e=((l=o.getRow(n))==null?void 0:l.ah)||this._worksheet.getConfig().defaultRowHeight,t={startRow:n,endRow:n,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};r<=e?s.push(t):c.push(t)}return c.length>0&&this._commandService.syncExecuteCommand(n.SetRowHeightCommand.id,{unitId:i,subUnitId:a,ranges:c,value:r}),s.length>0&&this._commandService.syncExecuteCommand(n.SetWorksheetRowIsAutoHeightCommand.id,{unitId:i,subUnitId:a,ranges:s}),this}getRowHeight(e){return this._worksheet.getRowHeight(e)}setRowAutoHeight(e,t){let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(n.SetWorksheetRowIsAutoHeightCommand.id,{unitId:r,subUnitId:i,ranges:a}),this}setRangesAutoHeight(e){let t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(n.SetWorksheetRowIsAutoHeightCommand.id,{unitId:t,subUnitId:r,ranges:e}),this}setRowHeightsForced(e,t,r){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(n.SetRowHeightCommand.id,{unitId:i,subUnitId:a,ranges:o,value:r}),this}setRowCustom(e){let t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={};for(let[t,n]of Object.entries(e))i[Number(t)]={custom:n};let a={unitId:t,subUnitId:r,rowData:i};return this._commandService.syncExecuteCommand(n.SetRowDataCommand.id,a),this}insertColumnAfter(e){return this.insertColumnsAfter(e,1)}insertColumnBefore(e){return this.insertColumnsBefore(e,1)}insertColumns(e,t=1){return this.insertColumnsBefore(e,t)}insertColumnsAfter(t,r){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=e.Direction.RIGHT,s=this._worksheet.getRowCount()-1,c=t+1,l=t+r,u=(0,n.copyRangeStyles)(this._worksheet,0,s,c,l,!1,t);return this._commandService.syncExecuteCommand(n.InsertColByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:0,endRow:s,startColumn:c,endColumn:l},cellValue:u}),this}insertColumnsBefore(t,r){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=e.Direction.LEFT,s=this._worksheet.getRowCount()-1,c=t,l=t+r-1,u=(0,n.copyRangeStyles)(this._worksheet,0,s,c,l,!1,t-1);return this._commandService.syncExecuteCommand(n.InsertColByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:0,endRow:s,startColumn:c,endColumn:l},cellValue:u}),this}deleteColumn(e){return this.deleteColumns(e,1)}deleteColumns(e,t){let r={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1};return this._commandService.syncExecuteCommand(n.RemoveColByRangeCommand.id,{range:r,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteColumnsByPoints(t){return(0,e.generateIntervalsByPoints)(t).reverse().forEach(e=>{this.deleteColumns(e[0],e[1]-e[0]+1)}),this}moveColumns(e,t){let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=N(e.getRange(),this._worksheet),o=a,s={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:t,endColumn:t};return this._commandService.syncExecuteCommand(n.MoveColsCommand.id,{unitId:r,subUnitId:i,range:a,fromRange:o,toRange:s}),this}hideColumn(e){let t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=N(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(n.SetColHiddenCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}hideColumns(t,r=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:t,endColumn:t+r-1,rangeType:e.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(n.SetColHiddenCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}unhideColumn(e){let t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=N(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(n.SetSpecificColsVisibleCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}showColumns(t,r=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:t,endColumn:t+r-1,rangeType:e.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(n.SetSpecificColsVisibleCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}setColumnWidth(e,t){return this.setColumnWidths(e,1,t)}setColumnWidths(e,t,r){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(n.SetColWidthCommand.id,{unitId:i,subUnitId:a,ranges:o,value:r}),this}getColumnWidth(e){return this._worksheet.getColumnWidth(e)}setColumnCustom(e){let t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={};for(let[t,n]of Object.entries(e))i[Number(t)]={custom:n};let a={unitId:t,subUnitId:r,columnData:i};return this._commandService.syncExecuteCommand(n.SetColDataCommand.id,a),this}getMergeData(){return this._worksheet.getMergeData().map(e=>this._injector.createInstance(z,this._workbook,this._worksheet,e))}getMergedRanges(){return this._worksheet.getSnapshot().mergeData.map(e=>this._injector.createInstance(z,this._workbook,this._worksheet,e))}getCellMergeData(e,t){let n=this._worksheet.getMergedCell(e,t);if(n)return this._injector.createInstance(z,this._workbook,this._worksheet,n)}getActiveRange(){return this._fWorkbook.getActiveRange()}setActiveRange(e){let{unitId:t,sheetId:n}=e.getRange();if(t!==this._workbook.getUnitId()||n!==this._worksheet.getSheetId())throw Error(`Specified range must be part of the sheet.`);return this._fWorkbook.setActiveRange(e),this}getActiveCell(){return this._fWorkbook.getActiveCell()}setFreeze(e){return this._logService.warn(`setFreeze is deprecated, use setFrozenRows and setFrozenColumns instead`),this._commandService.syncExecuteCommand(n.SetFrozenCommand.id,{...e,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}cancelFreeze(){return this._commandService.syncExecuteCommand(n.CancelFrozenCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}getFreeze(){return this._worksheet.getFreeze()}setFrozenColumns(...e){let t=this.getFreeze();if(arguments.length===1){let n=e[0];this.setFreeze({...t,startColumn:n>0?n:-1,xSplit:n})}else if(arguments.length===2){let[r=0,i=0]=e;r>i&&([r,i]=[i,r]),this._commandService.syncExecuteCommand(n.SetFrozenCommand.id,{startColumn:i+1,xSplit:i-r+1,startRow:t.startRow,ySplit:t.ySplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}setFrozenRows(...e){let t=this.getFreeze();if(arguments.length===1){let n=e[0];this.setFreeze({...t,startRow:n>0?n:-1,ySplit:n})}else if(arguments.length===2){let[r=0,i=0]=e;r>i&&([r,i]=[i,r]),this._commandService.syncExecuteCommand(n.SetFrozenCommand.id,{startRow:i+1,ySplit:i-r+1,startColumn:t.startColumn,xSplit:t.xSplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}getFrozenColumns(){let e=this.getFreeze();return e.startColumn===-1?0:e.startColumn}getFrozenRows(){let e=this.getFreeze();return e.startRow===-1?0:e.startRow}getFrozenRowRange(){let e=this._worksheet.getFreeze();return{startRow:e.startRow-e.ySplit,endRow:e.startRow-1}}getFrozenColumnRange(){let e=this._worksheet.getFreeze();return{startColumn:e.startColumn-e.xSplit,endColumn:e.startColumn-1}}hasHiddenGridLines(){return this._worksheet.getConfig().showGridlines===e.BooleanNumber.FALSE}setHiddenGridlines(t){return this._commandService.syncExecuteCommand(n.ToggleGridlinesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),showGridlines:t?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE}),this}setGridLinesColor(e){return this._commandService.syncExecuteCommand(n.SetGridlinesColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),color:e}),this}getGridLinesColor(){return this._worksheet.getGridlinesColor()}setTabColor(e){return this._commandService.syncExecuteCommand(n.SetTabColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),value:e}),this}getTabColor(){return this._worksheet.getTabColor()}onCellDataChange(t){return this._injector.get(e.ICommandService).onCommandExecuted(r=>{if(r.id===n.SetRangeValuesMutation.id){let n=r.params;n.unitId===this._workbook.getUnitId()&&n.subUnitId===this._worksheet.getSheetId()&&n.cellValue&&t(new e.ObjectMatrix(n.cellValue))}})}onBeforeCellDataChange(t){return this._injector.get(e.ICommandService).beforeCommandExecuted(r=>{if(r.id===n.SetRangeValuesMutation.id){let n=r.params;n.unitId===this._workbook.getUnitId()&&n.subUnitId===this._worksheet.getSheetId()&&n.cellValue&&t(new e.ObjectMatrix(n.cellValue))}})}hideSheet(){let t=this._injector.get(e.ICommandService);if(this._workbook.getSheets().filter(t=>t.isSheetHidden()!==e.BooleanNumber.TRUE).length<=1)throw Error(`Cannot hide the only visible sheet`);return t.syncExecuteCommand(n.SetWorksheetHideCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}showSheet(){return this._injector.get(e.ICommandService).syncExecuteCommand(n.SetWorksheetShowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}isSheetHidden(){return this._worksheet.isSheetHidden()===e.BooleanNumber.TRUE}setName(e){return this._commandService.syncExecuteCommand(n.SetWorksheetNameCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),name:e}),this}activate(){return this._fWorkbook.setActiveSheet(this),this}getIndex(){return this._workbook.getSheetIndex(this._worksheet)}clear(t){if(t&&t.contentsOnly&&!t.formatOnly)return this.clearContents();if(t&&t.formatOnly&&!t.contentsOnly)return this.clearFormats();let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=this._injector.get(e.ICommandService),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return a.syncExecuteCommand(n.ClearSelectionAllCommand.id,{unitId:r,subUnitId:i,ranges:[o],options:t}),this}clearContents(){let t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=this._injector.get(e.ICommandService),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return i.syncExecuteCommand(n.ClearSelectionContentCommand.id,{unitId:t,subUnitId:r,ranges:[a]}),this}clearFormats(){let t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=this._injector.get(e.ICommandService),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return i.syncExecuteCommand(n.ClearSelectionFormatCommand.id,{unitId:t,subUnitId:r,ranges:[a]}),this}getDataRange(){let{startRow:e,endRow:t,startColumn:n,endColumn:r}=this._worksheet.getDataRealRange();return this.getRange(e,n,t-e+1,r-n+1)}getLastColumns(){return this._worksheet.getLastColumnWithContent()}getLastColumn(){return this._worksheet.getLastColumnWithContent()}getLastRows(){return this._worksheet.getLastRowWithContent()}getLastRow(){return this._worksheet.getLastRowWithContent()}equalTo(e){return e instanceof P?this._worksheet.getSheetId()===e.getSheetId()&&this._workbook.getUnitId()===e.getWorkbook().getUnitId():!1}insertDefinedName(e,t){let n=this._injector.createInstance(m).setName(e).setRef(t).build();n.localSheetId=this.getSheetId(),this._fWorkbook.insertDefinedNameBuilder(n)}getDefinedNames(){return this._fWorkbook.getDefinedNames().filter(e=>e.getLocalSheetId()===this.getSheetId())}setCustomMetadata(e){return this._worksheet.setCustomMetadata(e),this}getCustomMetadata(){return this._worksheet.getCustomMetadata()}setRowCustomMetadata(e,t){return this._worksheet.getRowManager().setCustomMetadata(e,t),this}setColumnCustomMetadata(e,t){return this._worksheet.getColumnManager().setCustomMetadata(e,t),this}getRowCustomMetadata(e){return this._worksheet.getRowManager().getCustomMetadata(e)}getColumnCustomMetadata(e){return this._worksheet.getColumnManager().getCustomMetadata(e)}appendRow(t){let r=this._worksheet.getCellMatrix().hasValue(),i=this._worksheet.getLastRowWithContent(),a=this._worksheet.getRowCount(),o=this._worksheet.getColumnCount(),s=r?i+1:i,c=new e.ObjectMatrix;for(let n=0;n<t.length;n++)c.setValue(s,n,(0,e.covertCellValue)(t[n]));return this._commandService.syncExecuteCommand(n.AppendRowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),cellValue:c.getMatrix(),insertRowNums:s>a-1?1:0,insertColumnNums:t.length>o?t.length-o:0,maxRows:a,maxColumns:o}),this}setRowCount(e){return this._commandService.syncExecuteCommand(n.SetWorksheetRowCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowCount:e}),this}setColumnCount(e){return this._commandService.syncExecuteCommand(n.SetWorksheetColumnCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),columnCount:e}),this}getWorksheetPermission(){return this._injector.createInstance(D,this)}};F=P=f([d(3,(0,e.Inject)(e.Injector)),d(4,(0,e.Inject)(n.SheetsSelectionsService)),d(5,(0,e.Inject)(e.ILogService)),d(6,e.ICommandService)],F);let I=class{constructor(e,t,n,r,i,o,s,c,l){this._unitId=e,this._subUnitId=t,this._range=n,this._worksheet=r,this._injector=i,this._permissionService=o,this._authzIoService=s,this._commandService=c,this._rangeProtectionRuleModel=l,u(this,`_permissionSubject`,void 0),u(this,`_subscriptions`,[]),u(this,`_fPermission`,void 0),u(this,`permission$`,void 0),u(this,`protectionChange$`,void 0),this._fPermission=this._injector.createInstance(b),this._permissionSubject=new a.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.protectionChange$=this._createProtectionChangeStream()}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>{let t=e.id;return t.includes(this._unitId)&&t.includes(this._subUnitId)})).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(e),this._permissionSubject.asObservable().pipe((0,o.distinctUntilChanged)((e,t)=>JSON.stringify(e)===JSON.stringify(t)),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe((0,o.filter)(e=>e.unitId!==this._unitId||e.subUnitId!==this._subUnitId?!1:e.type===`delete`||e.type===`add`?this._rangeMatches(e.rule):!1),(0,o.map)(e=>(this._permissionSubject.next(this._buildSnapshot()),e.type===`delete`?{type:`unprotected`,ruleId:e.rule.id}:{type:`protected`,rule:this._createFacadeRule(e.rule)})),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_rangeMatches(e){let t=this._range.getRange();return e.ranges.some(e=>t.startRow===e.startRow&&t.startColumn===e.startColumn&&t.endRow===e.endRow&&t.endColumn===e.endColumn)}_createFacadeRule(e){let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1)),r={name:e.description||``,allowViewByOthers:e.viewState!==n.ViewStateEnum.NoOneElseCanView,allowEdit:e.editState===n.EditStateEnum.DesignedUserCanEdit};return this._injector.createInstance(C,this._unitId,this._subUnitId,e.id,e.permissionId,t,r)}getPoint(e){let t=E[e];if(!t)return console.warn(`Unknown permission point: ${e}`),!1;let n=this._getProtectionRule();if(n){let e=new t(this._unitId,this._subUnitId,n.permissionId),r=this._permissionService.getPermissionPoint(e.id);if(r)return r.value}return!0}getSnapshot(){return this._buildSnapshot()}isProtected(){return this._getProtectionRule()!==null}canEdit(){return this.getPoint(y.Edit)}canView(){return this.getPoint(y.View)}canManageCollaborator(){return this.getPoint(y.ManageCollaborator)}canDelete(){return this.getPoint(y.Delete)}async setPoint(e,t){let n=E[e];if(!n)throw Error(`Unknown permission point: ${e}`);let r=this._getProtectionRule();if(!r)throw Error(`Cannot set permission point: No protection rule exists for this range. Call protect() first.`);if(this.getPoint(e)===t)return;let i=r.permissionId;this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,i,n,t),this._permissionSubject.next(this._buildSnapshot())}async protect(e){if(this.isProtected())throw Error(`Range is already protected`);let t=await this._fPermission.addRangeBaseProtection(this._unitId,this._subUnitId,[this._range],e);if(!t)throw Error(`Failed to create range protection`);let{permissionId:n,ruleId:r}=t;return await this._setPermissionPoints(n,e),this._injector.createInstance(C,this._unitId,this._subUnitId,r,n,[this._range],e||{})}_determineViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?n.ViewStateEnum.NoOneElseCanView:n.ViewStateEnum.OthersCanView}_determineEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?n.EditStateEnum.DesignedUserCanEdit:n.EditStateEnum.OnlyMe}async _setPermissionPoints(e,t){if(!t)return;let n=(e,t)=>e===void 0?t:typeof e==`boolean`?e:!0;await this._setPermissionPoint(e,y.Edit,n(t.allowEdit,!1)),await this._setPermissionPoint(e,y.View,n(t.allowViewByOthers,!0))}async _setPermissionPoint(e,t,n){let r=E[t];r&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,e,r,n)}async unprotect(){let e=this._getProtectionRule();if(!e)return;let t=e.id;this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,[t])}async listRules(){return await this._buildProtectionRulesAsync()}subscribe(e){let t=this.permission$.subscribe(e);return()=>t.unsubscribe()}_getProtectionRule(){let e=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId),t=this._range.getRange();for(let n of e)for(let e of n.ranges)if(t.startRow===e.startRow&&t.startColumn===e.startColumn&&t.endRow===e.endRow&&t.endColumn===e.endColumn)return n;return null}_buildProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(e=>{let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1)),r={name:e.description||``,allowViewByOthers:e.viewState!==n.ViewStateEnum.NoOneElseCanView};return e.editState===n.EditStateEnum.DesignedUserCanEdit?r.allowEdit=!0:r.allowEdit=!1,this._injector.createInstance(C,this._unitId,this._subUnitId,e.id,e.permissionId,t,r)})}async _buildProtectionRulesAsync(){let e=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);return(await Promise.all(e.map(async e=>{let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1)),r={name:e.description||``,allowViewByOthers:e.viewState!==n.ViewStateEnum.NoOneElseCanView};if(e.editState===n.EditStateEnum.DesignedUserCanEdit)try{r.allowEdit=(await this._authzIoService.listCollaborators({objectID:e.permissionId,unitID:this._unitId})).filter(e=>e.role===i.UnitRole.Editor).map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}).length>0}catch(t){console.warn(`Failed to fetch collaborators for rule ${e.id}:`,t),r.allowEdit=!1}else r.allowEdit=!1;return{rule:e,ranges:t,options:r}}))).map(({rule:e,ranges:t,options:n})=>this._injector.createInstance(C,this._unitId,this._subUnitId,e.id,e.permissionId,t,n))}_buildSnapshot(){let e={};return Object.values(y).forEach(t=>{e[t]=this.getPoint(t)}),e}dispose(){this._subscriptions.forEach(e=>e.unsubscribe()),this._permissionSubject.complete()}};I=f([d(4,(0,e.Inject)(e.Injector)),d(5,(0,e.Inject)(e.IPermissionService)),d(6,(0,e.Inject)(e.IAuthzIoService)),d(7,(0,e.Inject)(e.ICommandService)),d(8,(0,e.Inject)(n.RangeProtectionRuleModel))],I);var L,R;let z=L=class extends t.FBaseInitialable{constructor(e,t,n,r,i,a){super(r),this._workbook=e,this._worksheet=t,this._range=n,this._injector=r,this._commandService=i,this._formulaDataModel=a;let o=this._worksheet.getRowCount(),s=this._worksheet.getColumnCount();if(this._range.startRow<0||this._range.startColumn<0||this._range.endRow>=o||this._range.endColumn>=s)throw Error(`Range is out of bounds. Max rows: ${o}, Max columns: ${s}, Given range: ${JSON.stringify(this._range)}`);this._runInitializers(this._injector,this._workbook,this._worksheet,this._range,this._commandService,this._formulaDataModel)}getUnitId(){return this._workbook.getUnitId()}getSheetName(){return this._worksheet.getName()}getSheetId(){return this._worksheet.getSheetId()}getRange(){return this._range}getRow(){return this._range.startRow}getLastRow(){return this._range.endRow}getColumn(){return this._range.startColumn}getLastColumn(){return this._range.endColumn}getWidth(){return this._range.endColumn-this._range.startColumn+1}getHeight(){return this._range.endRow-this._range.startRow+1}isMerged(){let{startColumn:t,startRow:n,endColumn:r,endRow:i}=this._range;return this._worksheet.getMergedCellRange(n,t,i,r).some(t=>e.Rectangle.equals(t,this._range))}getCellStyleData(e=`row`){return e===`cell`?this._worksheet.getCellStyle(this._range.startRow,this._range.startColumn):this._worksheet.getComposedCellStyle(this._range.startRow,this._range.startColumn,e===`row`)}getFontFamily(e=`row`){var t,n;return(t=(n=this.getCellStyleData(e))==null?void 0:n.ff)==null?null:t}getFontSize(e=`row`){var t,n;return(t=(n=this.getCellStyleData(e))==null?void 0:n.fs)==null?null:t}getCellStyle(t=`row`){let n=this.getCellStyleData(t);return n?e.TextStyleValue.create(n):null}getCellStyles(t=`row`){return this.getCellDatas().map((n,r)=>n.map((n,i)=>{if(!n)return null;let a=t===`cell`?this._worksheet.getCellStyle(r+this._range.startRow,i+this._range.startColumn):this._worksheet.getComposedCellStyle(r+this._range.startRow,i+this._range.startColumn,t===`row`);return a?e.TextStyleValue.create(a):null}))}getValue(e){var t,n;return e?this.getValueAndRichTextValue():(t=(n=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:n.v)==null?null:t}getRawValue(){var e,t;let n=this._worksheet.getCellMatrix().getValue(this._range.startRow,this._range.startColumn);return n!=null&&n.p&&(e=n.p.body)!=null&&e.dataStream?n.p.body.dataStream:(t=n==null?void 0:n.v)==null?null:t}getDisplayValue(){var e,t,n;let r=this._worksheet.getCell(this._range.startRow,this._range.startColumn);return r!=null&&r.p&&(e=r.p.body)!=null&&e.dataStream?r.p.body.dataStream:(t=r==null||(n=r.v)==null?void 0:n.toString())==null?``:t}getValues(e){if(e)return this.getValueAndRichTextValues();let{startRow:t,endRow:n,startColumn:r,endColumn:i}=this._range,a=[];for(let e=t;e<=n;e++){let t=[];for(let n=r;n<=i;n++){var o,s;t.push((o=(s=this._worksheet.getCell(e,n))==null?void 0:s.v)==null?null:o)}a.push(t)}return a}getRawValues(){let e=this._worksheet.getCellMatrix(),{startRow:t,endRow:n,startColumn:r,endColumn:i}=this._range,a=[];for(let c=t;c<=n;c++){let t=[];for(let n=r;n<=i;n++){var o;let r=e.getValue(c,n);if(r!=null&&r.p&&(o=r.p.body)!=null&&o.dataStream)t.push(r.p.body.dataStream);else{var s;t.push((s=r==null?void 0:r.v)==null?null:s)}}a.push(t)}return a}getDisplayValues(){let{startRow:e,endRow:t,startColumn:n,endColumn:r}=this._range,i=[];for(let c=e;c<=t;c++){let e=[];for(let t=n;t<=r;t++){var a;let n=this._worksheet.getCell(c,t);if(n!=null&&n.p&&(a=n.p.body)!=null&&a.dataStream)e.push(n.p.body.dataStream);else{var o,s;e.push((o=n==null||(s=n.v)==null?void 0:s.toString())==null?``:o)}}i.push(e)}return i}getCellData(){var e;return(e=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?null:e}getCellDatas(){return this.getCellDataGrid()}getCellDataGrid(){let{startRow:e,endRow:t,startColumn:n,endColumn:r}=this._range,i=[];for(let a=e;a<=t;a++){let e=[];for(let t=n;t<=r;t++)e.push(this._worksheet.getCellRaw(a,t));i.push(e)}return i}getRichTextValue(){let t=this.getCellData();return t!=null&&t.p?new e.RichTextValue(t.p):null}getRichTextValues(){return this.getCellDataGrid().map(t=>t.map(t=>t!=null&&t.p?new e.RichTextValue(t.p):null))}getValueAndRichTextValue(){let t=this.getCellData();return t!=null&&t.p?new e.RichTextValue(t.p):t==null?void 0:t.v}getValueAndRichTextValues(){return this.getCellDatas().map(t=>t.map(t=>t!=null&&t.p?new e.RichTextValue(t.p):t==null?void 0:t.v))}getFormula(){var e;return(e=this._formulaDataModel.getFormulaStringByCell(this._range.startRow,this._range.startColumn,this._worksheet.getSheetId(),this._workbook.getUnitId()))==null?``:e}getFormulas(){let e=[],{startRow:t,endRow:n,startColumn:r,endColumn:i}=this._range,a=this._worksheet.getSheetId(),o=this._workbook.getUnitId();for(let s=t;s<=n;s++){let t=[];for(let e=r;e<=i;e++){let n=this._formulaDataModel.getFormulaStringByCell(s,e,a,o);t.push(n||``)}e.push(t)}return e}getWrap(){return this._worksheet.getRange(this._range).getWrap()===e.BooleanNumber.TRUE}getWraps(){let t=this.getCellDatas(),n=this._workbook.getStyles();return t.map(t=>t.map(t=>{var r;return((r=n.getStyleByCell(t))==null?void 0:r.tb)===e.WrapStrategy.WRAP}))}getWrapStrategy(){return this._worksheet.getRange(this._range).getWrapStrategy()}getHorizontalAlignment(){return k(this._worksheet.getRange(this._range).getHorizontalAlignment())}getHorizontalAlignments(){return this._worksheet.getRange(this._range).getHorizontalAlignments().map(e=>e.map(e=>k(e)))}getVerticalAlignment(){return j(this._worksheet.getRange(this._range).getVerticalAlignment())}getVerticalAlignments(){return this._worksheet.getRange(this._range).getVerticalAlignments().map(e=>e.map(e=>j(e)))}setCustomMetaData(e){let t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,customMetadata:{custom:e}};return this._commandService.syncExecuteCommand(n.SetRangeCustomMetadataCommand.id,t),this}setCustomMetaDatas(e){let t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,customMetadata:e.map(e=>e.map(e=>({custom:e})))};return this._commandService.syncExecuteCommand(n.SetRangeCustomMetadataCommand.id,t),this}getCustomMetaData(){var e;let t=this.getCellData();return(e=t==null?void 0:t.custom)==null?null:e}getCustomMetaDatas(){return this.getCellDataGrid().map(e=>e.map(e=>{var t;return(t=e==null?void 0:e.custom)==null?null:t}))}setBorder(e,t,r){return this._commandService.syncExecuteCommand(n.SetBorderBasicCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],value:{type:e,style:t,color:r}}),this}getBackground(){var t,n;let r=this.getCellStyle();return(t=r==null||(n=r.background)==null?void 0:n.rgb)==null?e.DEFAULT_STYLES.bg.rgb:t}getBackgrounds(){return this.getCellStyles().map(t=>t.map(t=>{var n,r;return(n=t==null||(r=t.background)==null?void 0:r.rgb)==null?e.DEFAULT_STYLES.bg.rgb:n}))}setBackgroundColor(e){return this._commandService.syncExecuteCommand(n.SetStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:`bg`,value:{rgb:e}}}),this}setBackground(e){return this.setBackgroundColor(e),this}setTextRotation(e){return this._commandService.syncExecuteCommand(n.SetTextRotationCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setValue(t){let r=(0,e.covertCellValue)(t);if(!r)throw Error(`Invalid value`);return this._commandService.syncExecuteCommand(n.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:r}),this}setValueForCell(t){let r=(0,e.covertCellValue)(t);if(!r)throw Error(`Invalid value`);return this._commandService.syncExecuteCommand(n.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:r}),this}setRichTextValueForCell(t){let r=t instanceof e.RichTextValue?t.getData():t,i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:{p:r}};return this._commandService.syncExecuteCommand(n.SetRangeValuesCommand.id,i),this}setRichTextValues(t){let r=(0,e.covertCellValues)(t.map(t=>t.map(t=>t&&{p:t instanceof e.RichTextValue?t.getData():t})),this._range),i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:r};return this._commandService.syncExecuteCommand(n.SetRangeValuesCommand.id,i),this}setWrap(t){return this._commandService.syncExecuteCommand(n.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t?e.WrapStrategy.WRAP:e.WrapStrategy.UNSPECIFIED}),this}setWrapStrategy(e){return this._commandService.syncExecuteCommand(n.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setVerticalAlignment(e){return this._commandService.syncExecuteCommand(n.SetVerticalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:A(e)}),this}setHorizontalAlignment(e){return this._commandService.syncExecuteCommand(n.SetHorizontalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:O(e)}),this}setValues(t){let r=(0,e.covertCellValues)(t,this._range);return this._commandService.syncExecuteCommand(n.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:r}),this}setFontWeight(t){let r;if(t===`bold`)r=e.BooleanNumber.TRUE;else if(t===`normal`)r=e.BooleanNumber.FALSE;else if(t===null)r=null;else throw Error(`Invalid fontWeight`);let i={type:`bl`,value:r},a={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:i};return this._commandService.syncExecuteCommand(n.SetStyleCommand.id,a),this}setFontStyle(t){let r;if(t===`italic`)r=e.BooleanNumber.TRUE;else if(t===`normal`)r=e.BooleanNumber.FALSE;else if(t===null)r=null;else throw Error(`Invalid fontStyle`);let i={type:`it`,value:r},a={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:i};return this._commandService.syncExecuteCommand(n.SetStyleCommand.id,a),this}setFontLine(t){if(t===`underline`)this._setFontUnderline({s:e.BooleanNumber.TRUE});else if(t===`line-through`)this._setFontStrikethrough({s:e.BooleanNumber.TRUE});else if(t===`none`)this._setFontUnderline({s:e.BooleanNumber.FALSE}),this._setFontStrikethrough({s:e.BooleanNumber.FALSE});else if(t===null)this._setFontUnderline(null),this._setFontStrikethrough(null);else throw Error(`Invalid fontLine`);return this}_setFontUnderline(e){let t={type:`ul`,value:e},r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};this._commandService.syncExecuteCommand(n.SetStyleCommand.id,r)}_setFontStrikethrough(e){let t={type:`st`,value:e},r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};this._commandService.syncExecuteCommand(n.SetStyleCommand.id,r)}setFontFamily(e){let t={type:`ff`,value:e},r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(n.SetStyleCommand.id,r),this}setFontSize(e){let t={type:`fs`,value:e},r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(n.SetStyleCommand.id,r),this}setFontColor(e){let t={type:`cl`,value:e===null?null:{rgb:e}},r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(n.SetStyleCommand.id,r),this}merge(e){let t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return(0,n.addMergeCellsUtil)(this._injector,t,r,[this._range],e),this}mergeAcross(t){let r=(0,n.getAddMergeMutationRangeByType)([this._range],e.Dimension.ROWS),i=this._workbook.getUnitId(),a=this._worksheet.getSheetId();return(0,n.addMergeCellsUtil)(this._injector,i,a,r,t),this}mergeVertically(t){let r=(0,n.getAddMergeMutationRangeByType)([this._range],e.Dimension.COLUMNS),i=this._workbook.getUnitId(),a=this._worksheet.getSheetId();return(0,n.addMergeCellsUtil)(this._injector,i,a,r,t),this}isPartOfMerge(){let{startRow:e,startColumn:t,endRow:n,endColumn:r}=this._range;return this._worksheet.getMergedCellRange(e,t,n,r).length>0}breakApart(){return this._commandService.syncExecuteCommand(n.RemoveWorksheetMergeCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}forEach(e){let{startColumn:t,startRow:n,endColumn:r,endRow:i}=this._range;this._worksheet.getMatrixWithMergedCells(n,t,i,r).forValue((t,n,r)=>{e(t,n,r)})}getA1Notation(e,t,n){let i={...this._range,startAbsoluteRefType:t,endAbsoluteRefType:n};return e?(0,r.serializeRangeWithSheet)(this._worksheet.getName(),i):(0,r.serializeRange)(i)}activate(){return this._injector.createInstance(V,this._workbook).setActiveRange(this),this}activateAsCurrentCell(){let t=this._worksheet.getMergedCell(this._range.startRow,this._range.startColumn);if(t&&e.Rectangle.equals(t,this._range)||!t&&this._range.startRow===this._range.endRow&&this._range.startColumn===this._range.endColumn){let t=this._injector.createInstance(V,this._workbook).getActiveRange();if(!t||t.getUnitId()!==this.getUnitId()||t.getSheetId()!==this.getSheetId())return this.activate();if(e.Rectangle.contains(t.getRange(),this._range)){let e={unitId:this.getUnitId(),subUnitId:this.getSheetId(),selections:[{range:t.getRange(),primary:(0,n.getPrimaryForRange)(this.getRange(),this._worksheet),style:null}]};return this._commandService.syncExecuteCommand(n.SetSelectionsOperation.id,e),this}return this.activate()}else throw Error(`The range is not a single cell`)}splitTextToColumns(e,t,r){this._commandService.syncExecuteCommand(n.SplitTextToColumnsCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,delimiter:t,customDelimiter:r,treatMultipleDelimitersAsOne:e})}useThemeStyle(e){if(e==null){let e=this.getUsedThemeStyle();e&&this.removeThemeStyle(e)}else this._commandService.syncExecuteCommand(n.SetWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:e})}removeThemeStyle(e){this._commandService.syncExecuteCommand(n.DeleteWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:e})}getUsedThemeStyle(){return this._injector.get(n.SheetRangeThemeService).getAppliedRangeThemeStyle({unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range})}clear(e){return e&&e.contentsOnly&&!e.formatOnly?this.clearContent():e&&e.formatOnly&&!e.contentsOnly?this.clearFormat():(this._commandService.syncExecuteCommand(n.ClearSelectionAllCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],options:e}),this)}clearContent(){return this._commandService.syncExecuteCommand(n.ClearSelectionContentCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}clearFormat(){return this._commandService.syncExecuteCommand(n.ClearSelectionFormatCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}insertCells(t){t===e.Dimension.ROWS?this._commandService.executeCommand(n.InsertRangeMoveDownCommand.id,{range:this._range}):this._commandService.executeCommand(n.InsertRangeMoveRightCommand.id,{range:this._range})}deleteCells(t){t===e.Dimension.ROWS?this._commandService.executeCommand(n.DeleteRangeMoveUpCommand.id,{range:this._range}):this._commandService.executeCommand(n.DeleteRangeMoveLeftCommand.id,{range:this._range})}getDataRegion(t){let{startRow:n,startColumn:r,endRow:i,endColumn:a}=this._range,o=this._worksheet.getMaxRows(),s=this._worksheet.getMaxColumns(),c=this._worksheet.getCellMatrix(),l=n,u=r,d=i,f=a;if(t!==e.Dimension.COLUMNS){let t=!1,s=!1;for(let l=r;l<=a&&(n>0&&!(0,e.isNullCell)(c.getValue(n-1,l))&&(t=!0),i<o-1&&!(0,e.isNullCell)(c.getValue(i+1,l))&&(s=!0),!(t&&s));l++);t&&(l=n-1),s&&(d=i+1)}if(t!==e.Dimension.ROWS){let t=!1,o=!1;for(let l=n;l<=i&&(r>0&&!(0,e.isNullCell)(c.getValue(l,r-1))&&(t=!0),a<s-1&&!(0,e.isNullCell)(c.getValue(l,a+1))&&(o=!0),!(t&&o));l++);t&&(u=r-1),o&&(f=a+1)}return this._injector.createInstance(L,this._workbook,this._worksheet,{startRow:l,startColumn:u,endRow:d,endColumn:f})}isBlank(){let t=this._worksheet.getCellMatrix(),{startRow:n,startColumn:r,endRow:i,endColumn:a}=this._range,o=!0;for(let s=n;s<=i;s++){for(let n=r;n<=a;n++)if(!(0,e.isNullCell)(t.getValue(s,n))){o=!1;break}if(!o)break}return o}offset(e,t,n,r){let{startRow:i,startColumn:a,endRow:o,endColumn:s}=this._range,c=i+e,l=a+t,u=n?c+n-1:o+e,d=r?l+r-1:s+t;if(c<0||l<0||u<0||d<0)throw Error(`The row or column index is out of range`);return this._injector.createInstance(L,this._workbook,this._worksheet,{startRow:c,startColumn:l,endRow:u,endColumn:d})}setFormula(e){return this.setValue({f:e})}setFormulas(e){return this.setValues(e.map(e=>e.map(e=>({f:e}))))}getRangePermission(){let e=this._injector.createInstance(F,this._injector.createInstance(V,this._workbook),this._workbook,this._worksheet);return this._injector.createInstance(I,this._workbook.getUnitId(),this._worksheet.getSheetId(),this,e)}autoFill(t,r){let i=this.getRange(),a=t.getRange();if(!e.Rectangle.contains(a,i))throw Error(`AutoFill target range must contain source range`);let{startRow:o,startColumn:s,endRow:c,endColumn:l}=i,{startRow:u,startColumn:d,endRow:f,endColumn:p}=a;if(c-o!==f-u&&l-s!==p-d||c-o===f-u&&s!==d&&l!==p||l-s===p-d&&o!==u&&c!==f)throw Error(`AutoFill can only fill in one direction`);return this._commandService.executeCommand(n.AutoFillCommand.id,{sourceRange:i,targetRange:a,unitId:this.getUnitId(),subUnitId:this.getSheetId(),applyType:r})}};R=z,R._enableManualInit(),z=L=f([d(3,(0,e.Inject)(e.Injector)),d(4,e.ICommandService),d(5,(0,e.Inject)(r.FormulaDataModel))],z);let B=class{constructor(e,t,n,r){this._unitId=e,this._injector=t,this._permissionService=n,this._authzIoService=r,u(this,`_permissionSubject`,void 0),u(this,`_collaboratorChangeSubject`,new a.Subject),u(this,`permission$`,void 0),u(this,`pointChange$`,void 0),u(this,`collaboratorChange$`,void 0),u(this,`_subscriptions`,[]),u(this,`_fPermission`,void 0),this._fPermission=this._injector.createInstance(b),this._permissionSubject=new a.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.collaboratorChange$=this._collaboratorChangeSubject.asObservable().pipe((0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.id.includes(this._unitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(e),this._permissionSubject.asObservable().pipe((0,o.distinctUntilChanged)((e,t)=>JSON.stringify(e)===JSON.stringify(t)),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createPointChangeStream(){let e=new Map;for(let t in _){let n=_[t];e.set(n,this.getPoint(n))}return this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.id.includes(this._unitId)),(0,o.map)(t=>{let n=this._extractWorkbookPointType(t.id);if(!n)return null;let r=!!t.value,i=e.get(n);return e.set(n,r),i===r?null:{point:n,value:r,oldValue:i}}),(0,o.filter)(e=>e!==null),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_extractWorkbookPointType(e){for(let t in _){let n=_[t],r=w[n];if(r&&new r(this._unitId).id===e)return n}return null}_buildSnapshot(){let e={};for(let t in _){let n=_[t];e[n]=this.getPoint(n)}return e}async setMode(e){let t=this._getModePermissions(e);await this._batchSetPermissionPoints(t)}_getModePermissions(e){let t={};switch(Object.values(_).forEach(e=>{t[e]=!1}),e){case`owner`:Object.values(_).forEach(e=>{t[e]=!0});break;case`editor`:t[_.Edit]=!0,t[_.View]=!0,t[_.Print]=!0,t[_.Export]=!0,t[_.CopyContent]=!0,t[_.Comment]=!0,t[_.CreateSheet]=!0,t[_.DeleteSheet]=!0,t[_.RenameSheet]=!0,t[_.MoveSheet]=!0,t[_.HideSheet]=!0,t[_.InsertRow]=!0,t[_.InsertColumn]=!0,t[_.DeleteRow]=!0,t[_.DeleteColumn]=!0,t[_.CopySheet]=!0,t[_.CreateProtection]=!0;break;case`viewer`:t[_.View]=!0,t[_.Print]=!0;break;case`commenter`:t[_.View]=!0,t[_.Comment]=!0,t[_.Print]=!0;break}return t}async _batchSetPermissionPoints(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n,i=w[e];if(!i)throw Error(`Unknown workbook permission point: ${e}`);let a=this.getPoint(e);a!==r&&(this._fPermission.setWorkbookPermissionPoint(this._unitId,i,r),t.push({point:e,value:r,oldValue:a}))}if(t.length>0){let e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode(`viewer`)}async setEditable(){await this.setMode(`editor`)}canEdit(){return this.getPoint(_.Edit)}async setPoint(e,t){let n=w[e];if(!n)throw Error(`Unknown workbook permission point: ${e}`);if(this.getPoint(e)===t)return;this._fPermission.setWorkbookPermissionPoint(this._unitId,n,t);let r=this._buildSnapshot();this._permissionSubject.next(r)}getPoint(e){var t;let n=w[e];if(!n)throw Error(`Unknown workbook permission point: ${e}`);let r=new n(this._unitId),i=this._permissionService.getPermissionPoint(r.id);return(t=i==null?void 0:i.value)==null?!0:t}getSnapshot(){return this._buildSnapshot()}async setCollaborators(e){let t=e.map(e=>({id:e.user.userID,subject:e.user,role:e.role}));await this._authzIoService.putCollaborators({objectID:this._unitId,unitID:this._unitId,collaborators:t}),e.forEach(e=>{this._collaboratorChangeSubject.next({type:`add`,collaborator:{user:{id:e.user.userID},role:e.role}})})}async addCollaborator(e,t){await this._authzIoService.createCollaborator({objectID:this._unitId,unitID:this._unitId,collaborators:[{id:e.userID,subject:e,role:t}]}),this._collaboratorChangeSubject.next({type:`add`,collaborator:{user:{id:e.userID},role:t}})}async updateCollaborator(e,t){await this._authzIoService.updateCollaborator({objectID:this._unitId,unitID:this._unitId,collaborator:{id:e.userID,subject:e,role:t}}),this._collaboratorChangeSubject.next({type:`update`,collaborator:{user:{id:e.userID},role:t}})}async removeCollaborator(e){await this._authzIoService.deleteCollaborator({objectID:this._unitId,unitID:this._unitId,collaboratorID:e}),this._collaboratorChangeSubject.next({type:`delete`,collaborator:{user:{id:e},role:g.Reader}})}async removeCollaborators(e){for(let t of e)await this.removeCollaborator(t)}async listCollaborators(){return(await this._authzIoService.listCollaborators({objectID:this._unitId,unitID:this._unitId})).map(e=>{var t,n;return{user:{id:((t=e.subject)==null?void 0:t.userID)||e.id,displayName:((n=e.subject)==null?void 0:n.name)||``},role:e.role}})}subscribe(e){let t=this.permission$.subscribe(e);return()=>t.unsubscribe()}dispose(){this._subscriptions.forEach(e=>e.unsubscribe()),this._permissionSubject.complete(),this._collaboratorChangeSubject.complete()}};B=f([d(1,(0,e.Inject)(e.Injector)),d(2,e.IPermissionService),d(3,e.IAuthzIoService)],B);let V=class extends t.FBaseInitialable{constructor(e,t,n,r,i,a,o,s,c,l){super(t),this._workbook=e,this._injector=t,this._resourceLoaderService=n,this._selectionManagerService=r,this._univerInstanceService=i,this._commandService=a,this._permissionService=o,this._logService=s,this._localeService=c,this._definedNamesService=l,u(this,`id`,void 0),this.id=this._workbook.getUnitId()}getWorkbook(){return this._workbook}dispose(){super.dispose(),this._workbook=null}getId(){return this.id}getName(){return this._workbook.name}setName(e){return this._commandService.syncExecuteCommand(n.SetWorkbookNameCommand.id,{unitId:this._workbook.getUnitId(),name:e}),this}save(){return this._resourceLoaderService.saveUnit(this._workbook.getUnitId())}getSnapshot(){return this._logService.warn(`use 'save' instead of 'getSnapshot'`),this.save()}getActiveSheet(){let e=this._workbook.getActiveSheet();return this._injector.createInstance(F,this,this._workbook,e)}getSheets(){return this._workbook.getSheets().map(e=>this._injector.createInstance(F,this,this._workbook,e))}create(t,r,i,a){var o,s,c;let l=(0,e.mergeWorksheetSnapshotWithDefault)(e.Tools.deepClone((o=a==null?void 0:a.sheet)==null?{}:o));l.name=this._workbook.uniqueSheetName(t),l.rowCount=r,l.columnCount=i,l.id=a==null||(s=a.sheet)==null?void 0:s.id;let u=(c=a==null?void 0:a.index)==null?this._workbook.getSheets().length:c;this._commandService.syncExecuteCommand(n.InsertSheetCommand.id,{unitId:this.id,index:u,sheet:l}),this._commandService.syncExecuteCommand(n.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[u].getSheetId()});let d=this._workbook.getActiveSheet();if(!d)throw Error(`No active sheet found`);return this._injector.createInstance(F,this,this._workbook,d)}getSheetBySheetId(e){let t=this._workbook.getSheetBySheetId(e);return t?this._injector.createInstance(F,this,this._workbook,t):null}getSheetByName(e){let t=this._workbook.getSheetBySheetName(e);return t?this._injector.createInstance(F,this,this._workbook,t):null}setActiveSheet(e){return this._commandService.syncExecuteCommand(n.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:typeof e==`string`?e:e.getSheetId()}),typeof e==`string`?this.getSheetBySheetId(e):e}insertSheet(t,r){var i,a,o;let s=(0,e.mergeWorksheetSnapshotWithDefault)(e.Tools.deepClone((i=r==null?void 0:r.sheet)==null?{}:i));s.name=this._workbook.uniqueSheetName(t),s.id=r==null||(a=r.sheet)==null?void 0:a.id;let c=(o=r==null?void 0:r.index)==null?this._workbook.getSheets().length:o;this._commandService.syncExecuteCommand(n.InsertSheetCommand.id,{unitId:this.id,index:c,sheet:s}),this._commandService.syncExecuteCommand(n.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[c].getSheetId()});let l=this._workbook.getActiveSheet();if(!l)throw Error(`No active sheet found`);return this._injector.createInstance(F,this,this._workbook,l)}deleteSheet(e){let t=this.id,r=typeof e==`string`?e:e.getSheetId();return this._commandService.syncExecuteCommand(n.RemoveSheetCommand.id,{unitId:t,subUnitId:r})}undo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(e.UndoCommand.id),this}redo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(e.RedoCommand.id),this}onBeforeCommandExecute(e){return this._commandService.beforeCommandExecuted(t=>{var n;((n=t.params)==null?void 0:n.unitId)===this.id&&e(t)})}onCommandExecuted(e){return this._commandService.onCommandExecuted(t=>{var n;((n=t.params)==null?void 0:n.unitId)===this.id&&e(t)})}onSelectionChange(t){return(0,e.toDisposable)(this._selectionManagerService.selectionMoveEnd$.subscribe(n=>{this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET).getUnitId()===this.id&&(n!=null&&n.length?t(n.map(e=>e.range)):t([]))}))}setEditable(e){let t=new n.WorkbookEditablePermission(this._workbook.getUnitId());return this._permissionService.getPermissionPoint(t.id)||this._permissionService.addPermissionPoint(t),this._permissionService.updatePermissionPoint(t.id,e),this}setActiveRange(e){let t=this.getActiveSheet(),r=e.getRange().sheetId||t.getSheetId(),i=r?this._workbook.getSheetBySheetId(r):this._workbook.getActiveSheet(!0);if(!i)throw Error(`No active sheet found`);i.getSheetId()!==t.getSheetId()&&this.setActiveSheet(this._injector.createInstance(F,this,this._workbook,i));let a={unitId:this.getId(),subUnitId:r,selections:[e].map(e=>({range:e.getRange(),primary:(0,n.getPrimaryForRange)(e.getRange(),i),style:null}))};return this._commandService.syncExecuteCommand(n.SetSelectionsOperation.id,a),this}getActiveRange(){let e=this._workbook.getActiveSheet(),t=this._selectionManagerService.getCurrentSelections().find(e=>!!e.primary);return t?this._injector.createInstance(z,this._workbook,e,t.range):null}getActiveCell(){let t=this._workbook.getActiveSheet(),n=this._selectionManagerService.getCurrentSelections().find(e=>!!e.primary);if(!n)return null;let r={...n.primary,rangeType:e.RANGE_TYPE.NORMAL};return this._injector.createInstance(z,this._workbook,t,r)}deleteActiveSheet(){let e=this.getActiveSheet();return this.deleteSheet(e)}duplicateSheet(e){return this._commandService.syncExecuteCommand(n.CopySheetCommand.id,{unitId:e.getWorkbook().getUnitId(),subUnitId:e.getSheetId()}),this._injector.createInstance(F,this,this._workbook,this._workbook.getActiveSheet())}duplicateActiveSheet(){let e=this.getActiveSheet();return this.duplicateSheet(e)}getNumSheets(){return this._workbook.getSheets().length}getLocale(){return this._localeService.getCurrentLocale()}setLocale(e){this._localeService.setLocale(e)}setSpreadsheetLocale(e){return this._localeService.setLocale(e),this}getUrl(){return location.href}moveSheet(e,t){let r=t;return r<0?r=0:r>this._workbook.getSheets().length-1&&(r=this._workbook.getSheets().length-1),this._commandService.syncExecuteCommand(n.SetWorksheetOrderCommand.id,{unitId:e.getWorkbook().getUnitId(),order:r,subUnitId:e.getSheetId()}),this}moveActiveSheet(e){let t=this.getActiveSheet();return this.moveSheet(t,e)}getPermission(){return this._injector.createInstance(b)}getWorkbookPermission(){return this._injector.createInstance(B,this._workbook.getUnitId())}getDefinedName(e){let t=this._definedNamesService.getValueByName(this.id,e);return t?this._injector.createInstance(h,{...t,unitId:this.id}):null}getDefinedNames(){let e=this._definedNamesService.getDefinedNameMap(this.id);return e?Object.values(e).map(e=>this._injector.createInstance(h,{...e,unitId:this.id})):[]}insertDefinedName(e,t){let r=this._injector.createInstance(m).setName(e).setRef(t).build();return r.localSheetId=n.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this.insertDefinedNameBuilder(r),this}deleteDefinedName(e){let t=this.getDefinedName(e);return t?(t.delete(),!0):!1}insertDefinedNameBuilder(e){e.unitId=this.getId(),this._commandService.syncExecuteCommand(n.SetDefinedNameCommand.id,e)}updateDefinedNameBuilder(e){this._commandService.syncExecuteCommand(n.SetDefinedNameCommand.id,e)}getRegisteredRangeThemes(){return this._injector.get(n.SheetRangeThemeService).getRegisteredRangeThemes()}registerRangeTheme(e){this._commandService.syncExecuteCommand(n.RegisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),rangeThemeStyle:e})}unregisterRangeTheme(e){this._commandService.syncExecuteCommand(n.UnregisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),themeName:e})}createRangeThemeStyle(e,t){return new n.RangeThemeStyle(e,t)}setCustomMetadata(e){return this._workbook.setCustomMetadata(e),this}getCustomMetadata(){return this._workbook.getCustomMetadata()}addStyles(e){this._workbook.addStyles(e)}removeStyles(e){this._workbook.removeStyles(e)}};V=f([d(1,(0,e.Inject)(e.Injector)),d(2,(0,e.Inject)(e.IResourceLoaderService)),d(3,(0,e.Inject)(n.SheetsSelectionsService)),d(4,e.IUniverInstanceService),d(5,e.ICommandService),d(6,e.IPermissionService),d(7,e.ILogService),d(8,(0,e.Inject)(e.LocaleService)),d(9,r.IDefinedNamesService)],V);var H=class extends t.FUniver{getCommandSheetTarget(e){var t;let n=e.params;if(!n)return this.getActiveSheet();let r=n.unitId?this.getUniverSheet(n.unitId):(t=this.getActiveWorkbook)==null?void 0:t.call(this);if(!r)return;let i=r.getSheetBySheetId(n.subUnitId||n.sheetId)||r.getActiveSheet();if(i)return{workbook:r,worksheet:i}}getSheetTarget(e,t){let n=this.getUniverSheet(e);if(!n)return;let r=n.getSheetBySheetId(t);if(r)return{workbook:n,worksheet:r}}_initWorkbookEvent(t){let n=t.get(e.IUniverInstanceService);this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookDisposed,()=>n.unitDisposed$.subscribe(t=>{t.type===e.UniverInstanceType.UNIVER_SHEET&&this.fireEvent(this.Event.WorkbookDisposed,{unitId:t.getUnitId(),unitType:t.type,snapshot:t.getSnapshot()})}))),this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookCreated,()=>n.unitAdded$.subscribe(n=>{if(n.type===e.UniverInstanceType.UNIVER_SHEET){let e=n,r=t.createInstance(V,e);this.fireEvent(this.Event.WorkbookCreated,{unitId:n.getUnitId(),type:n.type,workbook:r,unit:r})}})))}_initialize(t){let r=t.get(e.IUniverInstanceService),i=t.get(e.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetCreate,()=>i.beforeCommandExecuted(t=>{if(t.id===n.InsertSheetCommand.id){var r;let{unitId:n,index:i,sheet:a}=t.params||{},o=n?this.getUniverSheet(n):(r=this.getActiveWorkbook)==null?void 0:r.call(this);if(!o)return;let s={workbook:o,index:i,sheet:a};if(this.fireEvent(this.Event.BeforeSheetCreate,s),s.cancel)throw new e.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeActiveSheetChange,()=>i.beforeCommandExecuted(t=>{if(t.id===n.SetWorksheetActiveOperation.id){var r;let{subUnitId:n,unitId:i}=t.params,a=i?this.getUniverSheet(i):(r=this.getActiveWorkbook)==null?void 0:r.call(this);if(!a||!n)return;let o=a.getSheetBySheetId(n),s=a.getActiveSheet();if(!o||!s)return;let c={workbook:a,activeSheet:o,oldActiveSheet:s};if(this.fireEvent(this.Event.BeforeActiveSheetChange,c),c.cancel)throw new e.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetDelete,()=>i.beforeCommandExecuted(t=>{if(t.id===n.RemoveSheetCommand.id){let n=this.getCommandSheetTarget(t);if(!n)return;let{workbook:r,worksheet:i}=n,a={workbook:r,worksheet:i};if(this.fireEvent(this.Event.BeforeSheetDelete,a),a.cancel)throw new e.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetMove,()=>i.beforeCommandExecuted(t=>{if(t.id===n.SetWorksheetOrderMutation.id){let{fromOrder:n,toOrder:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;let a={workbook:i.workbook,worksheet:i.worksheet,newIndex:r,oldIndex:n};if(this.fireEvent(this.Event.BeforeSheetMove,a),a.cancel)throw new e.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetNameChange,()=>i.beforeCommandExecuted(t=>{if(t.id===n.SetWorksheetNameCommand.id){let{name:n}=t.params,r=this.getCommandSheetTarget(t);if(!r)return;let i={workbook:r.workbook,worksheet:r.worksheet,newName:n,oldName:r.worksheet.getSheetName()};if(this.fireEvent(this.Event.BeforeSheetNameChange,i),i.cancel)throw new e.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetTabColorChange,()=>i.beforeCommandExecuted(t=>{if(t.id===n.SetTabColorMutation.id){let{color:n}=t.params,r=this.getCommandSheetTarget(t);if(!r)return;let i={workbook:r.workbook,worksheet:r.worksheet,newColor:n,oldColor:r.worksheet.getTabColor()};if(this.fireEvent(this.Event.BeforeSheetTabColorChange,i),i.cancel)throw new e.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetHideChange,()=>i.beforeCommandExecuted(t=>{if(t.id===n.SetWorksheetHideMutation.id){let{hidden:n}=t.params,r=this.getCommandSheetTarget(t);if(!r)return;let i={workbook:r.workbook,worksheet:r.worksheet,hidden:!!n};if(this.fireEvent(this.Event.BeforeSheetHideChange,i),i.cancel)throw new e.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineColorChange,()=>i.beforeCommandExecuted(t=>{if(t.id===n.SetGridlinesColorCommand.id){var r;let n=this.getCommandSheetTarget(t);if(!n)return;let i={...n,color:(r=t.params)==null?void 0:r.color};if(this.fireEvent(this.Event.BeforeGridlineColorChange,i),i.cancel)throw new e.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineEnableChange,()=>i.beforeCommandExecuted(t=>{if(t.id===n.ToggleGridlinesCommand.id){var r,i;let n=this.getCommandSheetTarget(t);if(!n)return;let a=(r=(i=t.params)==null?void 0:i.showGridlines)==null?!n.worksheet.hasHiddenGridLines():r,o={...n,enabled:!!a};if(this.fireEvent(this.Event.BeforeGridlineEnableChange,o),o.cancel)throw new e.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetValueChanged,()=>i.onCommandExecuted(e=>{if(n.COMMAND_LISTENER_VALUE_CHANGE.indexOf(e.id)>-1){if(!this.getActiveSheet())return;let t=(0,n.getValueChangedEffectedRange)(r,e).map(e=>{var t;return(t=this.getWorkbook(e.unitId))==null||(t=t.getSheetBySheetId(e.subUnitId))==null?void 0:t.getRange(e.range)}).filter(Boolean);if(!t.length)return;this.fireEvent(this.Event.SheetValueChanged,{payload:e,effectedRanges:t})}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetCreated,()=>i.onCommandExecuted(e=>{if(e.id===n.InsertSheetCommand.id){var t;let{unitId:n}=e.params||{},r=n?this.getUniverSheet(n):(t=this.getActiveWorkbook)==null?void 0:t.call(this);if(!r)return;let i=r.getActiveSheet();if(!i)return;let a={workbook:r,worksheet:i};this.fireEvent(this.Event.SheetCreated,a)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.ActiveSheetChanged,()=>i.onCommandExecuted(e=>{if(e.id===n.SetWorksheetActiveOperation.id){let e=this.getActiveSheet();if(!e)return;let{workbook:t,worksheet:n}=e;this._fireActiveSheetChanged(t,n)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetDeleted,()=>i.onCommandExecuted(e=>{if(e.id===n.RemoveSheetCommand.id){var t;let{subUnitId:n,unitId:r}=e.params,i=r?this.getUniverSheet(r):(t=this.getActiveWorkbook)==null?void 0:t.call(this);if(!i||!n)return;this._fireSheetDeleted(i,n)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetMoved,()=>i.onCommandExecuted(e=>{if(e.id===n.SetWorksheetOrderMutation.id){let{toOrder:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetMoved(n.workbook,n.worksheet,t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetNameChanged,()=>i.onCommandExecuted(e=>{if(e.id===n.SetWorksheetNameCommand.id){let{name:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetNameChanged(n.workbook,n.worksheet,t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetTabColorChanged,()=>i.onCommandExecuted(e=>{if(e.id===n.SetTabColorMutation.id){let{color:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetTabColorChanged(n.workbook,n.worksheet,t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetHideChanged,()=>i.onCommandExecuted(e=>{if(e.id===n.SetWorksheetHideMutation.id){let{hidden:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetHideChanged(n.workbook,n.worksheet,!!t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.GridlineChanged,()=>i.onCommandExecuted(e=>{if(e.id===n.SetGridlinesColorCommand.id||e.id===n.ToggleGridlinesCommand.id){let t=this.getCommandSheetTarget(e);if(!t)return;this.fireEvent(this.Event.GridlineChanged,{...t,enabled:!t.worksheet.hasHiddenGridLines(),color:t.worksheet.getGridLinesColor()})}}))),this._initWorkbookEvent(t)}createUniverSheet(t,n){let r=this._injector.get(e.IUniverInstanceService).createUnit(e.UniverInstanceType.UNIVER_SHEET,t,n);return this._injector.createInstance(V,r)}createWorkbook(e,t){return this.createUniverSheet(e,t)}getActiveWorkbook(){let t=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);return t?this._injector.createInstance(V,t):null}getActiveUniverSheet(){return this.getActiveWorkbook()}getUniverSheet(t){let n=this._univerInstanceService.getUnit(t,e.UniverInstanceType.UNIVER_SHEET);return n?this._injector.createInstance(V,n):null}getWorkbook(e){return this.getUniverSheet(e)}getPermission(){return this._injector.createInstance(b)}onUniverSheetCreated(t){return(0,e.toDisposable)(this._univerInstanceService.getTypeOfUnitAdded$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{t(this._injector.createInstance(V,e))}))}newDefinedName(){return this._injector.createInstance(m)}getActiveSheet(){let e=this.getActiveWorkbook();if(!e)return null;let t=e.getActiveSheet();return t?{workbook:e,worksheet:t}:null}setFreezeSync(e){this._injector.get(n.SheetsFreezeSyncController).setEnabled(e)}_fireActiveSheetChanged(e,t){this.fireEvent(this.Event.ActiveSheetChanged,{workbook:e,activeSheet:t})}_fireSheetDeleted(e,t){this.fireEvent(this.Event.SheetDeleted,{workbook:e,sheetId:t})}_fireSheetMoved(e,t,n){this.fireEvent(this.Event.SheetMoved,{workbook:e,worksheet:t,newIndex:n})}_fireSheetNameChanged(e,t,n){this.fireEvent(this.Event.SheetNameChanged,{workbook:e,worksheet:t,newName:n})}_fireSheetTabColorChanged(e,t,n){this.fireEvent(this.Event.SheetTabColorChanged,{workbook:e,worksheet:t,newColor:n})}_fireSheetHideChanged(e,t,n){this.fireEvent(this.Event.SheetHideChanged,{workbook:e,worksheet:t,hidden:n})}};t.FUniver.extend(H);var U=class{get SheetValueChangeType(){return n.SheetValueChangeType}get SheetSkeletonChangeType(){return n.SheetSkeletonChangeType}get SplitDelimiterType(){return n.SplitDelimiterEnum}get UnitRole(){return g}get WorkbookPermissionPoint(){return _}get WorksheetPermissionPoint(){return v}get RangePermissionPoint(){return y}};t.FEnum.extend(U);var W=class{get SheetCreated(){return`SheetCreated`}get BeforeSheetCreate(){return`BeforeSheetCreate`}get WorkbookCreated(){return`WorkbookCreated`}get WorkbookDisposed(){return`WorkbookDisposed`}get GridlineChanged(){return`GridlineChanged`}get BeforeGridlineEnableChange(){return`BeforeGridlineEnableChange`}get BeforeGridlineColorChange(){return`BeforeGridlineColorChange`}get BeforeActiveSheetChange(){return`BeforeActiveSheetChange`}get ActiveSheetChanged(){return`ActiveSheetChanged`}get SheetDeleted(){return`SheetDeleted`}get BeforeSheetDelete(){return`BeforeSheetDelete`}get SheetMoved(){return`SheetMoved`}get BeforeSheetMove(){return`BeforeSheetMove`}get SheetNameChanged(){return`SheetNameChanged`}get BeforeSheetNameChange(){return`BeforeSheetNameChange`}get SheetTabColorChanged(){return`SheetTabColorChanged`}get BeforeSheetTabColorChange(){return`BeforeSheetTabColorChange`}get SheetHideChanged(){return`SheetHideChanged`}get BeforeSheetHideChange(){return`BeforeSheetHideChange`}get SheetValueChanged(){return`SheetValueChanged`}};t.FEventName.extend(W);let G=class extends t.FBase{constructor(e){super(),this._injector=e}};G=f([d(0,(0,e.Inject)(e.Injector))],G),Object.defineProperty(exports,`FPermission`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`FRange`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`FSelection`,{enumerable:!0,get:function(){return S}}),exports.FSheetEventName=W,Object.defineProperty(exports,`FSheetHooks`,{enumerable:!0,get:function(){return G}}),exports.FSheetsEnum=U,Object.defineProperty(exports,`FWorkbook`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`FWorksheet`,{enumerable:!0,get:function(){return F}});
|