superdoc 2.29.0-next.3 → 2.29.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/dist/chunks/{FindReplaceSurface-BKVHzhQ4.es.js → FindReplaceSurface-B_5ggdWg.es.js} +1 -1
- package/dist/chunks/{FindReplaceSurface-BNDrJ6VS.cjs → FindReplaceSurface-fVHxPXtn.cjs} +1 -1
- package/dist/chunks/{PasswordPromptSurface-6mF6Azda.es.js → PasswordPromptSurface-CZqhDQQ1.es.js} +1 -1
- package/dist/chunks/{PasswordPromptSurface-BNkaztaP.cjs → PasswordPromptSurface-x8GNmMJT.cjs} +1 -1
- package/dist/chunks/{PdfViewer-D4lVeOJu.es.js → PdfViewer-CW09MNrB.es.js} +70 -105
- package/dist/chunks/{PdfViewer-boENOZdF.cjs → PdfViewer-CkrAHpC-.cjs} +74 -109
- package/dist/chunks/{_plugin-vue_export-helper-6MBoygIY.cjs → _plugin-vue_export-helper-BkbCxNeT.cjs} +31 -7
- package/dist/chunks/{_plugin-vue_export-helper-CsJQtMvr.es.js → _plugin-vue_export-helper-DRPRMkeA.es.js} +20 -8
- package/dist/chunks/{constants-DpXuDx_g.cjs → constants-BeeNZoQp.cjs} +1 -1
- package/dist/chunks/{constants-B6VBlmKp.es.js → constants-BvNs_ybI.es.js} +1 -1
- package/dist/chunks/{create-super-doc-ui-BFt8agAI.es.js → create-super-doc-ui-Dc8dQAMc.es.js} +89 -137
- package/dist/chunks/{create-super-doc-ui-BAGOnYGM.cjs → create-super-doc-ui-L60GhVAX.cjs} +211 -259
- package/dist/collaboration-upgrade-engine.cjs +1 -1
- package/dist/collaboration-upgrade-engine.es.js +1 -1
- package/dist/document-api/src/capabilities/html-markdown-support.d.ts +4 -6
- package/dist/document-api/src/comments/comments.d.ts +2 -0
- package/dist/document-api/src/contract/command-catalog.d.ts +1 -1
- package/dist/document-api/src/contract/operation-definitions.d.ts +2 -2
- package/dist/document-api/src/contract/operation-registry.d.ts +10 -9
- package/dist/document-api/src/index.d.ts +8 -7
- package/dist/document-api/src/insert/insert.d.ts +2 -2
- package/dist/document-api/src/replace/replace.d.ts +3 -2
- package/dist/document-api/src/types/address.d.ts +3 -0
- package/dist/document-api/src/types/temporary-mutation.d.ts +5 -1
- package/dist/document-api/src/write/write.d.ts +12 -6
- package/dist/public/ui-react.cjs +1 -1
- package/dist/public/ui-react.es.js +1 -1
- package/dist/public/ui-vue.cjs +1 -1
- package/dist/public/ui-vue.es.js +1 -1
- package/dist/public/ui.cjs +1 -1
- package/dist/public/ui.es.js +1 -1
- package/dist/style.css +1 -1
- package/dist/style.layered.css +1 -1
- package/dist/superdoc/src/SuperDoc.vue.d.ts +132 -58
- package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +28 -13
- package/dist/superdoc/src/components/CommentsLayer/collect-removed-comment-ids.d.ts +11 -1
- package/dist/superdoc/src/components/CommentsLayer/collect-tracked-change-thread.d.ts +19 -2
- package/dist/superdoc/src/components/CommentsLayer/comment-urls.d.ts +1 -1
- package/dist/superdoc/src/components/CommentsLayer/commentsList/super-comments-list.d.ts +23 -20
- package/dist/superdoc/src/components/CommentsLayer/floating-comment-positioning.d.ts +24 -23
- package/dist/superdoc/src/components/CommentsLayer/helpers.d.ts +1 -4
- package/dist/superdoc/src/components/CommentsLayer/tracked-change-threading.d.ts +16 -2
- package/dist/superdoc/src/components/CommentsLayer/use-comment.d.ts +28 -13
- package/dist/superdoc/src/components/PdfViewer/PdfViewer.vue.d.ts +132 -45
- package/dist/superdoc/src/components/PdfViewer/PdfViewerDocument.vue.d.ts +62 -16
- package/dist/superdoc/src/components/PdfViewer/PdfViewerPage.vue.d.ts +77 -17
- package/dist/superdoc/src/components/PdfViewer/pdf-viewer-types.d.ts +45 -0
- package/dist/superdoc/src/components/Whiteboard/WhiteboardLayer.vue.d.ts +80 -16
- package/dist/superdoc/src/components/Whiteboard/WhiteboardPage.vue.d.ts +48 -13
- package/dist/superdoc/src/components/Whiteboard/use-whiteboard.d.ts +30 -15
- package/dist/superdoc/src/components/Whiteboard/whiteboard-types.d.ts +13 -0
- package/dist/superdoc/src/components/surfaces/focusable-selector.d.ts +1 -5
- package/dist/superdoc/src/components/surfaces/watermark-surface-runtime.d.ts +7 -7
- package/dist/superdoc/src/composables/find-shortcut-owner.d.ts +16 -9
- package/dist/superdoc/src/composables/replace-continuation.d.ts +11 -15
- package/dist/superdoc/src/composables/use-comment-small-screen.d.ts +11 -7
- package/dist/superdoc/src/composables/use-compact-comment-popover.d.ts +44 -18
- package/dist/superdoc/src/composables/use-document.d.ts +1210 -30
- package/dist/superdoc/src/composables/use-field.d.ts +88 -25
- package/dist/superdoc/src/composables/use-find-replace.d.ts +13 -3
- package/dist/superdoc/src/composables/use-password-prompt.d.ts +23 -24
- package/dist/superdoc/src/composables/use-viewport-fit.d.ts +62 -26
- package/dist/superdoc/src/composables/useUiFontFamily.d.ts +3 -11
- package/dist/superdoc/src/core/SuperDoc.d.ts +4 -4
- package/dist/superdoc/src/core/collaboration/collaboration-comments.d.ts +9 -4
- package/dist/superdoc/src/core/collaboration/helpers.d.ts +20 -3
- package/dist/superdoc/src/core/collaboration/permissions.d.ts +15 -10
- package/dist/superdoc/src/core/collaboration/resolve-v2-collaboration-target.d.ts +4 -3
- package/dist/superdoc/src/core/collaboration/v2-awareness-bridge.d.ts +2 -1
- package/dist/superdoc/src/core/config/merge-comments-config.d.ts +1 -5
- package/dist/superdoc/src/core/config/merge-defined.d.ts +3 -8
- package/dist/superdoc/src/core/config/normalize-hyperlinks-config.d.ts +7 -12
- package/dist/superdoc/src/core/config/normalize-surfaces-config.d.ts +9 -12
- package/dist/superdoc/src/core/config/normalize-ui-config.d.ts +1 -12
- package/dist/superdoc/src/core/create-app.d.ts +13 -24
- package/dist/superdoc/src/core/editor-runtime/conformance/fake-v2-runtime.d.ts +2 -1
- package/dist/superdoc/src/core/editor-runtime/editor-runtime-registry.d.ts +2 -1
- package/dist/superdoc/src/core/editor-runtime/index.d.ts +1 -1
- package/dist/superdoc/src/core/editor-runtime/types.d.ts +2 -1
- package/dist/superdoc/src/core/editor-runtime/v2/v2-session-shortcut-routes.d.ts +1 -1
- package/dist/superdoc/src/core/helpers/export.d.ts +3 -2
- package/dist/superdoc/src/core/helpers/file.d.ts +8 -45
- package/dist/superdoc/src/core/helpers/normalize-track-changes-config.d.ts +6 -60
- package/dist/superdoc/src/core/pdf/helpers/constants.d.ts +2 -2
- package/dist/superdoc/src/core/pdf/helpers/floor.d.ts +1 -1
- package/dist/superdoc/src/core/pdf/helpers/range.d.ts +1 -1
- package/dist/superdoc/src/core/pdf/helpers/read-file.d.ts +1 -1
- package/dist/superdoc/src/core/pdf/pdf-adapter.d.ts +28 -61
- package/dist/superdoc/src/core/superdoc-ui-owner.d.ts +1 -1
- package/dist/superdoc/src/core/surface-manager.d.ts +21 -83
- package/dist/superdoc/src/core/types/index.d.ts +41 -23
- package/dist/superdoc/src/core/v2-integration/browser-peer-runtime.d.ts +5 -3
- package/dist/superdoc/src/core/v2-integration/cdn-engine-loader.d.ts +3 -13
- package/dist/superdoc/src/core/v2-integration/internal-vue-runtime.d.ts +64 -59
- package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +10 -10
- package/dist/superdoc/src/core/whiteboard/Whiteboard.d.ts +22 -208
- package/dist/superdoc/src/core/whiteboard/WhiteboardPage.d.ts +163 -189
- package/dist/superdoc/src/core/whiteboard/helpers/createTextarea.d.ts +14 -1
- package/dist/superdoc/src/core/whiteboard/helpers/flattenPoints.d.ts +1 -1
- package/dist/superdoc/src/core/whiteboard/helpers/getRandomId.d.ts +1 -1
- package/dist/superdoc/src/helpers/comment-focus.d.ts +21 -4
- package/dist/superdoc/src/helpers/deprecation.d.ts +5 -11
- package/dist/superdoc/src/helpers/interaction-trace.d.ts +7 -24
- package/dist/superdoc/src/helpers/mark-raw-component.d.ts +1 -0
- package/dist/superdoc/src/helpers/object-guards.d.ts +2 -5
- package/dist/superdoc/src/helpers/selection-source.d.ts +1 -1
- package/dist/superdoc/src/helpers/use-selection.d.ts +35 -15
- package/dist/superdoc/src/helpers/v2-author-required-rejection.d.ts +8 -11
- package/dist/superdoc/src/helpers/v2-bulk-decision-event.d.ts +9 -7
- package/dist/superdoc/src/helpers/v2-keyboard-edit-rejection.d.ts +8 -7
- package/dist/superdoc/src/helpers/v2-mutation-exception.d.ts +12 -8
- package/dist/superdoc/src/helpers/v2-review-target.d.ts +11 -1
- package/dist/superdoc/src/helpers/v2-selection-sync.d.ts +40 -14
- package/dist/superdoc/src/helpers/v2-typing-mutation-event.d.ts +14 -5
- package/dist/superdoc/src/icons.d.ts +11 -19
- package/dist/superdoc/src/internal/diagnostics/diagnostic-dedupe.d.ts +6 -15
- package/dist/superdoc/src/internal/diagnostics/translate-diagnostic.d.ts +6 -4
- package/dist/superdoc/src/internal/toolbar/built-in/AIWriter.vue.d.ts +2 -2
- package/dist/superdoc/src/internal/toolbar/built-in/ButtonGroup.vue.d.ts +4 -24
- package/dist/superdoc/src/internal/toolbar/built-in/FontFamilyCombobox.vue.d.ts +34 -0
- package/dist/superdoc/src/internal/toolbar/built-in/FontSizeCombobox.vue.d.ts +34 -0
- package/dist/superdoc/src/internal/toolbar/built-in/LinkInput.vue.d.ts +1 -1
- package/dist/superdoc/src/internal/toolbar/built-in/PageNumberMenu.vue.d.ts +25 -15
- package/dist/superdoc/src/internal/toolbar/built-in/Toolbar.vue.d.ts +9 -3
- package/dist/superdoc/src/internal/toolbar/built-in/ToolbarComboBox.vue.d.ts +12 -14
- package/dist/superdoc/src/internal/toolbar/built-in/ToolbarDropdown.vue.d.ts +1 -11
- package/dist/superdoc/src/internal/toolbar/built-in/color-dropdown-helpers.d.ts +9 -19
- package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +14 -45
- package/dist/superdoc/src/internal/toolbar/built-in/default-items.d.ts +34 -17
- package/dist/superdoc/src/internal/toolbar/built-in/font-options.d.ts +15 -1
- package/dist/superdoc/src/internal/toolbar/built-in/font-typeahead.d.ts +37 -7
- package/dist/superdoc/src/internal/toolbar/built-in/format-negation.d.ts +10 -4
- package/dist/superdoc/src/internal/toolbar/built-in/general.d.ts +12 -1
- package/dist/superdoc/src/internal/toolbar/built-in/helpers.d.ts +9 -4
- package/dist/superdoc/src/internal/toolbar/built-in/list-style-buttons.d.ts +2 -2
- package/dist/superdoc/src/internal/toolbar/built-in/page-number-feedback.d.ts +4 -5
- package/dist/superdoc/src/internal/toolbar/built-in/scroll-helpers.d.ts +3 -4
- package/dist/superdoc/src/internal/toolbar/built-in/toolbar-focus-helpers.d.ts +10 -2
- package/dist/superdoc/src/internal/toolbar/built-in/toolbarIcons.d.ts +78 -145
- package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +61 -61
- package/dist/superdoc/src/internal/toolbar/built-in/url-safety.d.ts +11 -3
- package/dist/superdoc/src/internal/toolbar/built-in/use-toolbar-item.d.ts +110 -48
- package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +11 -30
- package/dist/superdoc/src/internal/toolbar/compatibility-catalog.d.ts +4 -3
- package/dist/superdoc/src/internal/toolbar/image-upload.d.ts +29 -39
- package/dist/superdoc/src/internal/toolbar/toolbar-item-aliases.d.ts +1 -1
- package/dist/superdoc/src/public/browser-document-api.d.ts +5 -4
- package/dist/superdoc/src/public/index.d.cts +26 -0
- package/dist/superdoc/src/public/index.d.ts +13 -0
- package/dist/superdoc/src/public/ui/commands.d.ts +14 -13
- package/dist/superdoc/src/public/ui/create-super-doc-ui.d.ts +1 -1
- package/dist/superdoc/src/public/ui/entity-at.d.ts +2 -1
- package/dist/superdoc/src/public/ui/format-painter-helpers.d.ts +2 -8
- package/dist/superdoc/src/public/ui/style-match-patch.d.ts +2 -2
- package/dist/superdoc/src/public/ui/types.d.ts +1 -1
- package/dist/superdoc/src/stores/comments-store.d.ts +231 -105
- package/dist/superdoc/src/stores/helpers/comment-document-scope.d.ts +22 -0
- package/dist/superdoc/src/stores/helpers/comment-grouping.d.ts +30 -0
- package/dist/superdoc/src/stores/helpers/comment-identity.d.ts +40 -0
- package/dist/superdoc/src/stores/helpers/floating-comment-instances.d.ts +48 -13
- package/dist/superdoc/src/stores/helpers/pending-selection-snapshot.d.ts +17 -0
- package/dist/superdoc/src/stores/helpers/tracked-change-compaction.d.ts +16 -0
- package/dist/superdoc/src/stores/helpers/tracked-change-decision.d.ts +45 -0
- package/dist/superdoc/src/stores/helpers/tracked-change-identity.d.ts +19 -0
- package/dist/superdoc/src/stores/helpers/tracked-change-row-values.d.ts +0 -4
- package/dist/superdoc/src/stores/helpers/tracked-change-thread-index.d.ts +21 -24
- package/dist/superdoc/src/stores/superdoc-store.d.ts +694 -316
- package/dist/superdoc.cjs +1804 -2782
- package/dist/superdoc.es.js +1720 -2699
- package/dist-cdn/style.layered.css +1 -1
- package/dist-cdn/superdoc.min.css +1 -1
- package/dist-cdn/superdoc.min.js +42 -42
- package/package.json +3 -2
- package/dist/superdoc/src/internal/toolbar/index.d.ts +0 -10
- package/dist/superdoc/src/main.d.ts +0 -1
package/dist/chunks/{create-super-doc-ui-BFt8agAI.es.js → create-super-doc-ui-Dc8dQAMc.es.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as renderList, D as normalizeClass, E as nextTick, F as openBlock, G as toDisplayString, N as onMounted, W as shallowRef, Y as unref, a as computed, at as withModifiers, c as createCommentVNode, f as createTextVNode, h as defineComponent, j as onBeforeUnmount, l as createElementBlock, n as Fragment, t as _plugin_vue_export_helper_default, tt as watch, u as createElementVNode, z as ref } from "./_plugin-vue_export-helper-
|
|
1
|
+
import { B as renderList, D as normalizeClass, E as nextTick, F as openBlock, G as toDisplayString, N as onMounted, W as shallowRef, Y as unref, a as computed, at as withModifiers, c as createCommentVNode, f as createTextVNode, h as defineComponent, j as onBeforeUnmount, l as createElementBlock, n as Fragment, ot as isPlainObject, t as _plugin_vue_export_helper_default, tt as watch, u as createElementVNode, z as ref } from "./_plugin-vue_export-helper-DRPRMkeA.es.js";
|
|
2
2
|
import { t as isFiniteNumber } from "./is-finite-number-BpL4F38c.es.js";
|
|
3
3
|
//#region src/internal/diagnostics/workflow-recording.ts
|
|
4
4
|
var fields$1 = /* @__PURE__ */ new Set([
|
|
@@ -1088,16 +1088,7 @@ function isSyntheticTrackedChangeCommentLaneItem(item) {
|
|
|
1088
1088
|
return typeof itemId === "string" && itemId.startsWith(TRACKED_CHANGE_COMMENT_LANE_ID_PREFIX);
|
|
1089
1089
|
}
|
|
1090
1090
|
//#endregion
|
|
1091
|
-
//#region src/
|
|
1092
|
-
/**
|
|
1093
|
-
* @param {unknown} value
|
|
1094
|
-
* @returns {value is Record<string, unknown>}
|
|
1095
|
-
*/
|
|
1096
|
-
function isPlainObject(value) {
|
|
1097
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1098
|
-
}
|
|
1099
|
-
//#endregion
|
|
1100
|
-
//#region src/core/collaboration/permissions.js
|
|
1091
|
+
//#region src/core/collaboration/permissions.ts
|
|
1101
1092
|
var PERMISSIONS = Object.freeze({
|
|
1102
1093
|
RESOLVE_OWN: "RESOLVE_OWN",
|
|
1103
1094
|
RESOLVE_OTHER: "RESOLVE_OTHER",
|
|
@@ -1160,15 +1151,16 @@ var PERMISSION_MATRIX = Object.freeze({
|
|
|
1160
1151
|
var pickResolver = (context = {}) => {
|
|
1161
1152
|
if (typeof context.permissionResolver === "function") return context.permissionResolver;
|
|
1162
1153
|
if (typeof context.superdoc?.config?.permissionResolver === "function") return context.superdoc.config.permissionResolver;
|
|
1163
|
-
const
|
|
1154
|
+
const comments = context.superdoc?.config?.modules?.comments;
|
|
1155
|
+
const deprecatedResolver = comments ? comments.permissionResolver : void 0;
|
|
1164
1156
|
if (typeof deprecatedResolver === "function") return deprecatedResolver;
|
|
1165
1157
|
return null;
|
|
1166
1158
|
};
|
|
1167
1159
|
var BUILT_IN_PERMISSION_METHOD = Symbol.for("superdoc.internal.permission-method.builtin");
|
|
1168
1160
|
var BUILT_IN_PERMISSION_RESOLVER = Symbol.for("superdoc.internal.permission-resolver.builtin");
|
|
1169
|
-
|
|
1161
|
+
var hasBuiltInPermissionMethodBrand = (method) => (typeof method === "object" && method !== null || typeof method === "function") && Reflect.get(method, BUILT_IN_PERMISSION_METHOD) === true;
|
|
1170
1162
|
var createTrackedChangePermissionResolver = (superdoc) => {
|
|
1171
|
-
const isBuiltInPolicy = () => superdoc.canPerformPermission
|
|
1163
|
+
const isBuiltInPolicy = () => hasBuiltInPermissionMethodBrand(superdoc.canPerformPermission) && pickResolver({ superdoc }) === null;
|
|
1172
1164
|
const resolver = (payload = {}) => isBuiltInPolicy() ? defaultDecisionFor(payload.permission, superdoc.config.role, superdoc.config.isInternal) : superdoc.canPerformPermission({
|
|
1173
1165
|
...payload,
|
|
1174
1166
|
role: superdoc.config.role,
|
|
@@ -1178,6 +1170,7 @@ var createTrackedChangePermissionResolver = (superdoc) => {
|
|
|
1178
1170
|
return resolver;
|
|
1179
1171
|
};
|
|
1180
1172
|
var defaultDecisionFor = (permission, role, isInternal) => {
|
|
1173
|
+
if (permission === void 0 || typeof role !== "string") return false;
|
|
1181
1174
|
const internalExternal = isInternal ? "internal" : "external";
|
|
1182
1175
|
return PERMISSION_MATRIX[permission]?.[internalExternal]?.includes(role) ?? false;
|
|
1183
1176
|
};
|
|
@@ -1222,21 +1215,6 @@ var readBuiltInTrackedChangePermissionDecision = (superdoc, canPerform, permissi
|
|
|
1222
1215
|
return null;
|
|
1223
1216
|
}
|
|
1224
1217
|
};
|
|
1225
|
-
/**
|
|
1226
|
-
* Resolve a client-side permission through the built-in matrix and optional
|
|
1227
|
-
* resolver.
|
|
1228
|
-
*
|
|
1229
|
-
* @param {string} permission The permission to check
|
|
1230
|
-
* @param {string | undefined} role The role to check
|
|
1231
|
-
* @param {boolean | undefined} isInternal The internal/external flag
|
|
1232
|
-
* @param {object} [context] Context passed to the permission resolver
|
|
1233
|
-
* @param {object | null} [context.comment] The comment/tracked change being evaluated
|
|
1234
|
-
* @param {object | null} [context.superdoc] The SuperDoc instance
|
|
1235
|
-
* @param {object | null} [context.currentUser] The active user object performing the action
|
|
1236
|
-
* @param {Function} [context.permissionResolver] Explicit resolver override
|
|
1237
|
-
* @param {object | null} [context.trackedChange] Tracked change metadata (for tracked-change permissions)
|
|
1238
|
-
* @returns {boolean} Whether the permission is allowed
|
|
1239
|
-
*/
|
|
1240
1218
|
var isAllowed = (permission, role, isInternal, context = {}) => {
|
|
1241
1219
|
const defaultDecision = defaultDecisionFor(permission, role, isInternal);
|
|
1242
1220
|
const resolver = pickResolver(context);
|
|
@@ -1321,7 +1299,7 @@ function shallowEqual(a, b) {
|
|
|
1321
1299
|
return true;
|
|
1322
1300
|
}
|
|
1323
1301
|
//#endregion
|
|
1324
|
-
//#region src/internal/toolbar/image-upload.
|
|
1302
|
+
//#region src/internal/toolbar/image-upload.ts
|
|
1325
1303
|
/**
|
|
1326
1304
|
* Interactive image acquisition for the built-in toolbar (SD-3567).
|
|
1327
1305
|
*
|
|
@@ -1342,8 +1320,6 @@ var SUPPORTED_IMAGE_EXTENSIONS = /\.(png|jpe?g)$/i;
|
|
|
1342
1320
|
/**
|
|
1343
1321
|
* Whether a picked/dropped file is an insertable image (PNG/JPEG). Falls back
|
|
1344
1322
|
* to the file extension when the browser reports no MIME type.
|
|
1345
|
-
* @param {File | null | undefined} file
|
|
1346
|
-
* @returns {boolean}
|
|
1347
1323
|
*/
|
|
1348
1324
|
function isSupportedImageFile(file) {
|
|
1349
1325
|
if (!file) return false;
|
|
@@ -1358,8 +1334,6 @@ function isSupportedImageFile(file) {
|
|
|
1358
1334
|
* accepts those by extension, but `readAsDataURL` would then produce an
|
|
1359
1335
|
* `application/octet-stream` data URI that `create.image` rejects. Rewrite
|
|
1360
1336
|
* the media type from the filename so extension-accepted files still insert.
|
|
1361
|
-
* @param {Blob & { name?: string }} file
|
|
1362
|
-
* @returns {Promise<string>}
|
|
1363
1337
|
*/
|
|
1364
1338
|
function fileToDataUri(file) {
|
|
1365
1339
|
return new Promise((resolve, reject) => {
|
|
@@ -1372,9 +1346,6 @@ function fileToDataUri(file) {
|
|
|
1372
1346
|
/**
|
|
1373
1347
|
* Ensure a data URI read from a supported file carries a PNG/JPEG media type.
|
|
1374
1348
|
* Leaves URIs already typed as a supported image (or uninferable ones) alone.
|
|
1375
|
-
* @param {string} dataUri
|
|
1376
|
-
* @param {(Blob & { name?: string }) | null | undefined} file
|
|
1377
|
-
* @returns {string}
|
|
1378
1349
|
*/
|
|
1379
1350
|
function normalizeImageDataUri(dataUri, file) {
|
|
1380
1351
|
const match = /^data:([^;,]*);base64,/.exec(dataUri);
|
|
@@ -1391,9 +1362,6 @@ function normalizeImageDataUri(dataUri, file) {
|
|
|
1391
1362
|
* `handleImageUpload` callback when configured (V1 contract:
|
|
1392
1363
|
* `(file: File) => Promise<string>`). A returned non-data URL is fetched and
|
|
1393
1364
|
* embedded, because `create.image` requires an embedded base64 data URI.
|
|
1394
|
-
* @param {File} file
|
|
1395
|
-
* @param {((file: File) => Promise<string>) | null | undefined} handleImageUpload
|
|
1396
|
-
* @returns {Promise<string>}
|
|
1397
1365
|
*/
|
|
1398
1366
|
async function resolveImageSrc(file, handleImageUpload) {
|
|
1399
1367
|
if (typeof handleImageUpload === "function") {
|
|
@@ -1409,9 +1377,6 @@ async function resolveImageSrc(file, handleImageUpload) {
|
|
|
1409
1377
|
* presigned URLs often respond `application/octet-stream`, so keep a filename
|
|
1410
1378
|
* hint (URL path, falling back to the originally picked file) for the media
|
|
1411
1379
|
* type normalization in `fileToDataUri`.
|
|
1412
|
-
* @param {string} url
|
|
1413
|
-
* @param {File | null | undefined} pickedFile
|
|
1414
|
-
* @returns {Promise<string>}
|
|
1415
1380
|
*/
|
|
1416
1381
|
async function embedRemoteImage(url, pickedFile) {
|
|
1417
1382
|
const response = await fetch(url);
|
|
@@ -1425,13 +1390,6 @@ async function embedRemoteImage(url, pickedFile) {
|
|
|
1425
1390
|
* stays attached (hidden) so automation and tests can drive it; `destroy()`
|
|
1426
1391
|
* removes it. Picking a file calls `onPick(file)`; an unsupported type or a
|
|
1427
1392
|
* failed pick routes through `onError(error)`.
|
|
1428
|
-
*
|
|
1429
|
-
* @param {{
|
|
1430
|
-
* ownerDocument?: Document,
|
|
1431
|
-
* onPick?: (file: File) => unknown,
|
|
1432
|
-
* onError?: (error: Error) => void,
|
|
1433
|
-
* }} options
|
|
1434
|
-
* @returns {{ input: HTMLInputElement, open: () => void, destroy: () => void }}
|
|
1435
1393
|
*/
|
|
1436
1394
|
function createImageFilePicker({ ownerDocument = document, onPick, onError } = {}) {
|
|
1437
1395
|
const input = ownerDocument.createElement("input");
|
|
@@ -2023,13 +1981,9 @@ var WatermarkSurface_default = /* @__PURE__ */ _plugin_vue_export_helper_default
|
|
|
2023
1981
|
}
|
|
2024
1982
|
}), [["__scopeId", "data-v-df56c82c"]]);
|
|
2025
1983
|
//#endregion
|
|
2026
|
-
//#region src/components/surfaces/watermark-surface-runtime.
|
|
2027
|
-
/**
|
|
2028
|
-
* Keeps Vue rendering and post-dismissal announcements outside the public type graph.
|
|
2029
|
-
* @param {(() => HTMLElement | null) | undefined} getContainer
|
|
2030
|
-
*/
|
|
1984
|
+
//#region src/components/surfaces/watermark-surface-runtime.ts
|
|
1985
|
+
/** Keeps Vue rendering and post-dismissal announcements outside the public type graph. */
|
|
2031
1986
|
function createWatermarkSurfaceRuntime(getContainer) {
|
|
2032
|
-
/** @type {HTMLDivElement | null} */
|
|
2033
1987
|
let status = null;
|
|
2034
1988
|
let disposed = false;
|
|
2035
1989
|
return {
|
|
@@ -2040,7 +1994,6 @@ function createWatermarkSurfaceRuntime(getContainer) {
|
|
|
2040
1994
|
const item = opener?.closest("[data-sd-part=\"toolbar-item\"]") ?? opener?.querySelector("[data-sd-part=\"toolbar-item\"]");
|
|
2041
1995
|
const container = (item?.closest("[data-sd-part=\"toolbar\"]"))?.parentElement;
|
|
2042
1996
|
const isWatermarkEntry = item?.querySelector("[data-item=\"btn-watermark\"], [data-item=\"btn-overflow\"]");
|
|
2043
|
-
/** @param {() => boolean} isCurrent */
|
|
2044
1997
|
return async (isCurrent) => {
|
|
2045
1998
|
await nextTick();
|
|
2046
1999
|
if (disposed || !isCurrent() || !isWatermarkEntry || opener?.isConnected || !container?.isConnected) return;
|
|
@@ -2072,7 +2025,6 @@ function createWatermarkSurfaceRuntime(getContainer) {
|
|
|
2072
2025
|
});
|
|
2073
2026
|
container.appendChild(status);
|
|
2074
2027
|
},
|
|
2075
|
-
/** @param {string} message */
|
|
2076
2028
|
announce(message) {
|
|
2077
2029
|
if (!disposed && status) status.textContent = message;
|
|
2078
2030
|
},
|
|
@@ -2688,34 +2640,33 @@ function fontsValue(value) {
|
|
|
2688
2640
|
return Object.keys(result).length > 0 ? result : null;
|
|
2689
2641
|
}
|
|
2690
2642
|
//#endregion
|
|
2691
|
-
//#region src/public/ui/format-painter-helpers.
|
|
2643
|
+
//#region src/public/ui/format-painter-helpers.ts
|
|
2692
2644
|
/**
|
|
2693
2645
|
* Maps SDRunProps field names to InlineRunPatch field names.
|
|
2694
2646
|
* SDRunProps (read-side) and InlineRunPatch (write-side) use different keys
|
|
2695
2647
|
* for the same properties; direct assignment between them is forbidden.
|
|
2696
|
-
*
|
|
2697
|
-
* @param {Record<string, unknown>} props - SDRunProps object from doc.getNodeById
|
|
2698
|
-
* @returns {Record<string, unknown>} InlineRunPatch ready for doc.format.apply
|
|
2699
2648
|
*/
|
|
2700
2649
|
function sdRunPropsToInlineRunPatch(props) {
|
|
2701
2650
|
if (!props || typeof props !== "object") return {};
|
|
2702
2651
|
const patch = {};
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2652
|
+
const fonts = props.fonts;
|
|
2653
|
+
if (isPlainObject(fonts)) patch.rFonts = {
|
|
2654
|
+
ascii: fonts.ascii,
|
|
2655
|
+
hAnsi: fonts.hAnsi,
|
|
2656
|
+
eastAsia: fonts.eastAsia,
|
|
2657
|
+
cs: fonts.cs,
|
|
2658
|
+
asciiTheme: fonts.asciiTheme,
|
|
2659
|
+
hAnsiTheme: fonts.hAnsiTheme,
|
|
2660
|
+
eastAsiaTheme: fonts.eastAsiaTheme,
|
|
2661
|
+
csTheme: fonts.csTheme,
|
|
2662
|
+
hint: fonts.hint
|
|
2713
2663
|
};
|
|
2714
2664
|
if (props.fontFamily != null) patch.fontFamily = props.fontFamily;
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2665
|
+
const lang = props.lang;
|
|
2666
|
+
if (isPlainObject(lang)) patch.lang = {
|
|
2667
|
+
val: lang.val,
|
|
2668
|
+
eastAsia: lang.eastAsia,
|
|
2669
|
+
bidi: lang.bidi
|
|
2719
2670
|
};
|
|
2720
2671
|
if (props.fontSize != null) patch.fontSize = props.fontSize;
|
|
2721
2672
|
if (props.fontSizeCs != null) patch.fontSizeCs = props.fontSizeCs;
|
|
@@ -2756,19 +2707,24 @@ function sdRunPropsToInlineRunPatch(props) {
|
|
|
2756
2707
|
function projectColorRefToInlineColor(color) {
|
|
2757
2708
|
if (!color) return void 0;
|
|
2758
2709
|
if (typeof color === "string") return color;
|
|
2710
|
+
if (!isPlainObject(color)) return void 0;
|
|
2759
2711
|
if (color.model === "rgb") return color.value;
|
|
2760
2712
|
if (color.model === "auto") return "auto";
|
|
2761
2713
|
}
|
|
2762
2714
|
function projectUnderlineToInlinePatch(underline) {
|
|
2763
2715
|
if (underline == null) return void 0;
|
|
2716
|
+
if (!isPlainObject(underline)) return true;
|
|
2764
2717
|
const patch = {};
|
|
2765
2718
|
if (underline.style != null) patch.style = underline.style;
|
|
2766
|
-
|
|
2767
|
-
if (
|
|
2719
|
+
const color = underline.color;
|
|
2720
|
+
if (isPlainObject(color)) {
|
|
2721
|
+
if (color.model === "rgb") patch.color = color.value;
|
|
2722
|
+
else if (color.model === "theme") patch.themeColor = color.theme;
|
|
2723
|
+
}
|
|
2768
2724
|
return Object.keys(patch).length > 0 ? patch : true;
|
|
2769
2725
|
}
|
|
2770
2726
|
function projectShadingToInlinePatch(shading) {
|
|
2771
|
-
if (!shading) return void 0;
|
|
2727
|
+
if (!isPlainObject(shading)) return void 0;
|
|
2772
2728
|
const patch = {};
|
|
2773
2729
|
const fill = projectColorRefToInlineColor(shading.fill);
|
|
2774
2730
|
if (fill != null) patch.fill = fill;
|
|
@@ -2778,7 +2734,7 @@ function projectShadingToInlinePatch(shading) {
|
|
|
2778
2734
|
return Object.keys(patch).length > 0 ? patch : void 0;
|
|
2779
2735
|
}
|
|
2780
2736
|
function projectBorderToInlinePatch(border) {
|
|
2781
|
-
if (!border) return void 0;
|
|
2737
|
+
if (!isPlainObject(border)) return void 0;
|
|
2782
2738
|
const patch = {};
|
|
2783
2739
|
if (border.style != null) patch.val = border.style;
|
|
2784
2740
|
if (border.width != null) patch.sz = border.width;
|
|
@@ -2793,9 +2749,6 @@ function projectBorderToInlinePatch(border) {
|
|
|
2793
2749
|
*
|
|
2794
2750
|
* Falls back to the plain text target when the host has not populated an
|
|
2795
2751
|
* explicit `selectionTarget` yet.
|
|
2796
|
-
*
|
|
2797
|
-
* @param {{ selectionTarget?: unknown; target?: unknown } | null | undefined} selection
|
|
2798
|
-
* @returns {string}
|
|
2799
2752
|
*/
|
|
2800
2753
|
function selectionKey(selection) {
|
|
2801
2754
|
const target = selection?.selectionTarget ?? selection?.target;
|
|
@@ -2904,7 +2857,7 @@ function readAllResolvedFact(event, receipt) {
|
|
|
2904
2857
|
return fact;
|
|
2905
2858
|
}
|
|
2906
2859
|
//#endregion
|
|
2907
|
-
//#region src/helpers/v2-typing-mutation-event.
|
|
2860
|
+
//#region src/helpers/v2-typing-mutation-event.ts
|
|
2908
2861
|
/**
|
|
2909
2862
|
* Command kinds whose committed mutations belong to the sustained typing
|
|
2910
2863
|
* cadence class (insert / replace / plain paste / Backspace / Delete).
|
|
@@ -2945,9 +2898,6 @@ var V2_TYPING_COMMAND_KINDS = /* @__PURE__ */ new Set([
|
|
|
2945
2898
|
* Events without a forwarded `editableCommandKind` (programmatic Document API
|
|
2946
2899
|
* mutations, history commits, unclassified structural commands) return false
|
|
2947
2900
|
* so they keep hydrating immediately.
|
|
2948
|
-
*
|
|
2949
|
-
* @param {{ type?: string, origin?: string, editableCommandKind?: string } | null | undefined} event
|
|
2950
|
-
* @returns {boolean}
|
|
2951
2901
|
*/
|
|
2952
2902
|
var isV2EditableTextMutationEvent = (event) => {
|
|
2953
2903
|
if (event?.type !== "mutation:committed" || event.origin !== "command") return false;
|
|
@@ -7561,6 +7511,23 @@ function createSuperDocUI(options) {
|
|
|
7561
7511
|
const clearAsyncReadKeys = (predicate) => {
|
|
7562
7512
|
for (const key of asyncReads.keys()) if (predicate(key)) asyncReads.delete(key);
|
|
7563
7513
|
};
|
|
7514
|
+
const seedAsyncRead = (key, token, value, inflightToken = null) => {
|
|
7515
|
+
asyncReads.set(key, {
|
|
7516
|
+
token,
|
|
7517
|
+
value,
|
|
7518
|
+
hasSettled: true,
|
|
7519
|
+
inflightToken
|
|
7520
|
+
});
|
|
7521
|
+
};
|
|
7522
|
+
const selectionValidationSnapshot = () => ({
|
|
7523
|
+
held: typedCaretValidationHeld,
|
|
7524
|
+
pendingToken: pendingSelectionSeedValidationToken
|
|
7525
|
+
});
|
|
7526
|
+
const setSelectionValidation = (next) => {
|
|
7527
|
+
typedCaretValidationHeld = next.held;
|
|
7528
|
+
pendingSelectionSeedValidationToken = next.pendingToken;
|
|
7529
|
+
};
|
|
7530
|
+
const typingIsRecent = () => Date.now() - lastTypingMutationAtMs < HEAVY_READ_IDLE_MS;
|
|
7564
7531
|
const selectionScopedAsyncReadKeys = (selection) => {
|
|
7565
7532
|
const signature = selectionSignature(selection);
|
|
7566
7533
|
const effectiveUniformityKey = effectiveInlineUniformityCacheKey(selection);
|
|
@@ -7828,16 +7795,13 @@ function createSuperDocUI(options) {
|
|
|
7828
7795
|
const foreground = foregroundMutationState();
|
|
7829
7796
|
if (isNonCollapsedHostSelection(hostSelectionSnapshot) && readHostSelectionSnapshot() === hostSelectionSnapshot) {
|
|
7830
7797
|
const seed = normalizeSelectionInfo(safeCall(() => hostMethod(host, "readLiveSelectionSyncSnapshot")?.(), null));
|
|
7831
|
-
if (seed && !seed.selectionTarget && captureWholeTableParagraphSeed(host, seed, hostSelectionSnapshot)) asyncReads.
|
|
7832
|
-
token: asyncReads.get("selection")?.token ?? null,
|
|
7833
|
-
value: seed,
|
|
7834
|
-
hasSettled: true,
|
|
7835
|
-
inflightToken: null
|
|
7836
|
-
});
|
|
7798
|
+
if (seed && !seed.selectionTarget && captureWholeTableParagraphSeed(host, seed, hostSelectionSnapshot)) seedAsyncRead("selection", asyncReads.get("selection")?.token ?? null, seed);
|
|
7837
7799
|
}
|
|
7838
7800
|
if (isNonCollapsedHostSelection(hostSelectionSnapshot) && !(foreground && foreground.active > 0)) {
|
|
7839
|
-
|
|
7840
|
-
|
|
7801
|
+
setSelectionValidation({
|
|
7802
|
+
held: false,
|
|
7803
|
+
pendingToken: null
|
|
7804
|
+
});
|
|
7841
7805
|
issueAsyncRead("selection", selectionReadToken(), selectionCurrentRun, normalizeSelectionInfo);
|
|
7842
7806
|
return;
|
|
7843
7807
|
}
|
|
@@ -7846,17 +7810,14 @@ function createSuperDocUI(options) {
|
|
|
7846
7810
|
const seed = normalizeSelectionInfo(safeCall(() => read.call(host), null));
|
|
7847
7811
|
if (!seed) return;
|
|
7848
7812
|
if (wholeTableSelectionChanged) {
|
|
7849
|
-
|
|
7850
|
-
|
|
7813
|
+
setSelectionValidation({
|
|
7814
|
+
held: false,
|
|
7815
|
+
pendingToken: null
|
|
7816
|
+
});
|
|
7851
7817
|
wholeTableParagraphSeed = null;
|
|
7852
7818
|
captureWholeTableParagraphSeed(host, seed, initialTableSelection);
|
|
7853
7819
|
const token = selectionReadToken();
|
|
7854
|
-
|
|
7855
|
-
token,
|
|
7856
|
-
value: seed,
|
|
7857
|
-
hasSettled: true,
|
|
7858
|
-
inflightToken: null
|
|
7859
|
-
});
|
|
7820
|
+
seedAsyncRead("selection", token, seed);
|
|
7860
7821
|
issueAsyncRead("selection", token, selectionCurrentRun, normalizeSelectionInfo);
|
|
7861
7822
|
return;
|
|
7862
7823
|
}
|
|
@@ -7866,14 +7827,25 @@ function createSuperDocUI(options) {
|
|
|
7866
7827
|
const previousRange = previousCaret?.range;
|
|
7867
7828
|
const nextRange = nextCaret?.range;
|
|
7868
7829
|
const sameSeedCaret = Boolean(previousCaret && nextCaret && previousCaret.blockId === nextCaret.blockId && storyLocatorSignature(previousCaret.story) === storyLocatorSignature(nextCaret.story) && previousRange?.start === nextRange?.start);
|
|
7869
|
-
|
|
7830
|
+
const validation = selectionValidationSnapshot();
|
|
7831
|
+
const held = Boolean(foreground && foreground.active > 0) || validation.held && (afterTypingPaint || sameSeedCaret);
|
|
7832
|
+
setSelectionValidation({
|
|
7833
|
+
held,
|
|
7834
|
+
pendingToken: validation.pendingToken
|
|
7835
|
+
});
|
|
7870
7836
|
const token = selectionReadToken();
|
|
7871
|
-
const deferAuthoritativeRead = Boolean(foreground && (foreground.active > 0 || foreground.pending > 0)) ||
|
|
7837
|
+
const deferAuthoritativeRead = Boolean(foreground && (foreground.active > 0 || foreground.pending > 0)) || held && typingIsRecent();
|
|
7872
7838
|
if (!deferAuthoritativeRead) {
|
|
7873
|
-
|
|
7839
|
+
setSelectionValidation({
|
|
7840
|
+
held,
|
|
7841
|
+
pendingToken: null
|
|
7842
|
+
});
|
|
7874
7843
|
if (issueAsyncRead("selection", token, selectionCurrentRun, normalizeSelectionInfo)) return;
|
|
7875
7844
|
} else {
|
|
7876
|
-
|
|
7845
|
+
setSelectionValidation({
|
|
7846
|
+
held,
|
|
7847
|
+
pendingToken: token
|
|
7848
|
+
});
|
|
7877
7849
|
scheduleForegroundAsyncRetry();
|
|
7878
7850
|
}
|
|
7879
7851
|
const prev = asyncReads.get("selection");
|
|
@@ -7883,17 +7855,12 @@ function createSuperDocUI(options) {
|
|
|
7883
7855
|
const sameActiveTypingCaret = Boolean(foreground && foreground.active > 0 && previousCaret && nextCaret && previousCaret.blockId === nextCaret.blockId && storyLocatorSignature(previousCaret.story) === storyLocatorSignature(nextCaret.story) && typeof previousRange?.start === "number" && typeof nextRange?.start === "number" && Math.abs(nextRange.start - previousRange.start) <= 2);
|
|
7884
7856
|
const carriedChangeIds = paintedTrackChangeId != null || sameActiveTypingCaret ? state.selection.activeChangeIds.filter((id) => paintedTrackChangeId == null || buildTrackedChangeIdContext(state.trackChanges.items).aliasesFor(id).includes(paintedTrackChangeId)) : [];
|
|
7885
7857
|
const seedChangeIds = Array.isArray(seed.activeChangeIds) && seed.activeChangeIds.length > 0 ? seed.activeChangeIds : carriedChangeIds;
|
|
7886
|
-
|
|
7887
|
-
|
|
7888
|
-
|
|
7889
|
-
|
|
7890
|
-
|
|
7891
|
-
|
|
7892
|
-
activeChangeIds: seedChangeIds
|
|
7893
|
-
},
|
|
7894
|
-
hasSettled: true,
|
|
7895
|
-
inflightToken: deferAuthoritativeRead ? null : prev?.inflightToken ?? null
|
|
7896
|
-
});
|
|
7858
|
+
seedAsyncRead("selection", token, {
|
|
7859
|
+
...seed,
|
|
7860
|
+
activeMarks: seedMarks,
|
|
7861
|
+
activeCommentIds: seedCommentIds,
|
|
7862
|
+
activeChangeIds: seedChangeIds
|
|
7863
|
+
}, deferAuthoritativeRead ? null : prev?.inflightToken ?? null);
|
|
7897
7864
|
};
|
|
7898
7865
|
const selectionInfoMatchesHost = (info) => {
|
|
7899
7866
|
const snapshot = readHostSelectionSnapshot();
|
|
@@ -7915,12 +7882,7 @@ function createSuperDocUI(options) {
|
|
|
7915
7882
|
const sourceToken = contentToken();
|
|
7916
7883
|
const mode = readDocumentMode();
|
|
7917
7884
|
if (typeof current !== "function") {
|
|
7918
|
-
|
|
7919
|
-
token,
|
|
7920
|
-
value: null,
|
|
7921
|
-
hasSettled: true,
|
|
7922
|
-
inflightToken: null
|
|
7923
|
-
});
|
|
7885
|
+
seedAsyncRead("selection", token, null);
|
|
7924
7886
|
recompute();
|
|
7925
7887
|
return selectionSliceFromInfo(null, "pending");
|
|
7926
7888
|
}
|
|
@@ -7937,12 +7899,7 @@ function createSuperDocUI(options) {
|
|
|
7937
7899
|
if (disposed) return selectionSliceFromInfo(null, "pending");
|
|
7938
7900
|
const info = normalizeSelectionInfo(raw);
|
|
7939
7901
|
if (selectionReadToken() !== token && !(getDoc() === doc && contentToken() === sourceToken && readDocumentMode() === mode && selectionInfoMatchesHost(info))) return attempt < 1 ? readSelectionInfoFresh(attempt + 1) : selectionSliceFromInfo(null, "pending");
|
|
7940
|
-
|
|
7941
|
-
token: selectionReadToken(),
|
|
7942
|
-
value: info,
|
|
7943
|
-
hasSettled: true,
|
|
7944
|
-
inflightToken: null
|
|
7945
|
-
});
|
|
7902
|
+
seedAsyncRead("selection", selectionReadToken(), info);
|
|
7946
7903
|
const selection = selectionSliceFromInfo(info, info ? "ready" : "pending");
|
|
7947
7904
|
recompute();
|
|
7948
7905
|
return selection;
|
|
@@ -14615,12 +14572,7 @@ function createSuperDocUI(options) {
|
|
|
14615
14572
|
const resolved = await Promise.resolve(resolveMetadata({ id }));
|
|
14616
14573
|
if (token !== localContentToken()) return null;
|
|
14617
14574
|
const target = readMetadataResolvedTarget(resolved);
|
|
14618
|
-
|
|
14619
|
-
token,
|
|
14620
|
-
value: target,
|
|
14621
|
-
hasSettled: true,
|
|
14622
|
-
inflightToken: null
|
|
14623
|
-
});
|
|
14575
|
+
seedAsyncRead(metadataResolveKey(id), token, target);
|
|
14624
14576
|
return target;
|
|
14625
14577
|
} catch {
|
|
14626
14578
|
return null;
|
|
@@ -15876,4 +15828,4 @@ function commandIsActive(descriptor, selection) {
|
|
|
15876
15828
|
return descriptor.activeMark ? selection.activeMarks.includes(descriptor.activeMark) : false;
|
|
15877
15829
|
}
|
|
15878
15830
|
//#endregion
|
|
15879
|
-
export { getWorkflowRecording as C, createInteractionHistory as S, recordInteraction as T,
|
|
15831
|
+
export { getWorkflowRecording as C, createInteractionHistory as S, recordInteraction as T, createTrackedChangePermissionResolver as _, registerFirstPartyCommandMutation as a, DOM_CLASS_NAMES as b, getCommandDescriptor as c, mutationCommittedEventChangedDocument as d, createImageFilePicker as f, PERMISSIONS as g, BUILT_IN_PERMISSION_METHOD as h, readFirstPartyPageNumbers as i, applyV2CommentInvalidationFromMutation as l, shallowEqual as m, executeFirstPartyCommandAsync as n, isRecord as o, resolveImageSrc as p, executeFirstPartyShortcutAsync as r, BUILT_IN_COMMAND_IDS as s, createSuperDocUI as t, getV2TrackedChangeMutationImpact as u, isAllowed as v, isWorkflowRecordingEnabled as w, closeInteractionHistory as x, isSyntheticTrackedChangeCommentLaneItem as y };
|