superdoc 2.29.0-next.9 → 2.30.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +127 -25
- package/dist/chunks/{FindReplaceSurface-BKVHzhQ4.es.js → FindReplaceSurface-BEnRLpD9.es.js} +1 -1
- package/dist/chunks/{FindReplaceSurface-BNDrJ6VS.cjs → FindReplaceSurface-DWXgWgg7.cjs} +1 -1
- package/dist/chunks/{PasswordPromptSurface-6mF6Azda.es.js → PasswordPromptSurface-DjV1JgjD.es.js} +1 -1
- package/dist/chunks/{PasswordPromptSurface-BNkaztaP.cjs → PasswordPromptSurface-VFPnQOML.cjs} +1 -1
- package/dist/chunks/{PdfViewer-aOWhUVI7.es.js → PdfViewer-C2r-K8zC.es.js} +4 -10
- package/dist/chunks/{PdfViewer-DmSkZehl.cjs → PdfViewer-DYTbPVUr.cjs} +4 -10
- package/dist/chunks/{_plugin-vue_export-helper-6MBoygIY.cjs → _plugin-vue_export-helper-BzM2_tVU.cjs} +40 -7
- package/dist/chunks/{_plugin-vue_export-helper-CsJQtMvr.es.js → _plugin-vue_export-helper-CmkaJDnr.es.js} +23 -8
- package/dist/chunks/{create-super-doc-ui-DN70aatf.cjs → create-super-doc-ui--kQBNTyt.cjs} +2424 -2302
- package/dist/chunks/{create-super-doc-ui-Bm5kmx0W.es.js → create-super-doc-ui-CbEDXtpm.es.js} +2350 -2228
- package/dist/collaboration-upgrade-engine.cjs +1 -1
- package/dist/collaboration-upgrade-engine.es.js +1 -1
- package/dist/document-api/src/changes/changes.d.ts +26 -0
- package/dist/document-api/src/changes/changes.types.d.ts +156 -0
- package/dist/document-api/src/contract/command-catalog.d.ts +1 -1
- package/dist/document-api/src/contract/operation-definitions.d.ts +51 -1
- package/dist/document-api/src/create/create.d.ts +0 -4
- package/dist/document-api/src/diff/diff.types.d.ts +6 -6
- package/dist/document-api/src/header-footers/header-footers.d.ts +1 -3
- package/dist/document-api/src/index.d.ts +6 -0
- package/dist/document-api/src/inline-semantics/token-sets.d.ts +0 -2
- package/dist/document-api/src/insert/insert.d.ts +0 -1
- package/dist/layout-engine/contracts/src/index.d.ts +3 -1
- package/dist/layout-engine/dom-contract/src/data-attrs.d.ts +4 -0
- package/dist/layout-engine/layout-bridge/src/coupled-footnote-pagination.d.ts +1 -0
- package/dist/layout-engine/layout-bridge/src/footnote-page-certificate.d.ts +1 -0
- package/dist/layout-engine/layout-bridge/src/footnote-page-planner.d.ts +5 -0
- package/dist/layout-engine/layout-bridge/src/incrementalLayout.d.ts +1 -0
- package/dist/layout-engine/layout-engine/src/footnote-page-flow.d.ts +3 -0
- package/dist/layout-engine/layout-engine/src/index.d.ts +7 -0
- package/dist/layout-engine/layout-engine/src/layout-paragraph.d.ts +5 -0
- package/dist/layout-engine/layout-engine/src/layout-table.d.ts +3 -1
- package/dist/layout-engine/layout-engine/src/layout-utils.d.ts +0 -4
- package/dist/layout-engine/layout-engine/src/paginator.d.ts +4 -0
- package/dist/layout-engine/painters/dom/src/paragraph/list-marker.d.ts +1 -1
- package/dist/layout-engine/painters/dom/src/paragraph/renderParagraphContent.d.ts +1 -1
- package/dist/layout-engine/painters/dom/src/styles.d.ts +0 -10
- package/dist/layout-engine/painters/dom/src/svg-utils.d.ts +1 -13
- 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/shared/common/Telemetry.d.ts +50 -0
- package/dist/shared/common/event-types.d.ts +13 -0
- package/dist/shared/font-system/src/bundled-face-names.d.ts +1 -0
- package/dist/shared/font-system/src/resolver.d.ts +1 -0
- package/dist/style.css +1 -1
- package/dist/style.layered.css +1 -1
- package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +17 -33
- 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 +25 -6
- package/dist/superdoc/src/components/CommentsLayer/comment-params.d.ts +84 -0
- 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/helpers.d.ts +1 -4
- package/dist/superdoc/src/components/CommentsLayer/tracked-change-threading.d.ts +16 -1
- package/dist/superdoc/src/components/CommentsLayer/use-comment.d.ts +15 -95
- package/dist/superdoc/src/components/Whiteboard/WhiteboardLayer.vue.d.ts +4 -5
- package/dist/superdoc/src/components/Whiteboard/WhiteboardPage.vue.d.ts +3 -4
- package/dist/superdoc/src/components/Whiteboard/use-whiteboard.d.ts +30 -9
- package/dist/superdoc/src/components/Whiteboard/whiteboard-types.d.ts +2 -0
- package/dist/superdoc/src/components/surfaces/watermark-surface-runtime.d.ts +7 -7
- 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 +51 -99
- package/dist/superdoc/src/composables/use-find-replace.d.ts +13 -3
- package/dist/superdoc/src/composables/use-password-prompt.d.ts +1 -1
- package/dist/superdoc/src/composables/use-viewport-fit.d.ts +62 -26
- package/dist/superdoc/src/core/SuperDoc.d.ts +15 -6
- package/dist/superdoc/src/core/collaboration/cdn-collaboration-comment-map.d.ts +1 -0
- package/dist/superdoc/src/core/collaboration/collaboration-comment-map.d.ts +2 -0
- package/dist/superdoc/src/core/collaboration/helpers.d.ts +1 -1
- package/dist/superdoc/src/core/document-open-telemetry.d.ts +1 -1
- package/dist/superdoc/src/core/editor-runtime/v2/v2-editor-runtime-adapter.d.ts +1 -0
- package/dist/superdoc/src/core/pdf/pdf-adapter.d.ts +6 -2
- package/dist/superdoc/src/core/types/index.d.ts +108 -43
- 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/helpers/deprecation.d.ts +12 -3
- package/dist/superdoc/src/helpers/object-guards.d.ts +2 -0
- 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-geometry-delivery.d.ts +22 -0
- 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/translate-diagnostic.d.ts +6 -4
- package/dist/superdoc/src/internal/toolbar/built-in/PageNumberMenu.vue.d.ts +25 -15
- package/dist/superdoc/src/internal/toolbar/built-in/ToolbarButton.vue.d.ts +1 -0
- package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +3 -1
- 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/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/toolbarIcons.d.ts +78 -145
- package/dist/superdoc/src/internal/toolbar/built-in/url-safety.d.ts +11 -3
- package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +4 -3
- package/dist/superdoc/src/internal/toolbar/image-upload.d.ts +29 -39
- package/dist/superdoc/src/public/content-control-ref.d.ts +12 -0
- package/dist/superdoc/src/public/index.d.cts +16 -0
- package/dist/superdoc/src/public/index.d.ts +3 -0
- package/dist/superdoc/src/public/ui/async-read-cache.d.ts +32 -0
- package/dist/superdoc/src/public/ui/block-commands.d.ts +39 -0
- package/dist/superdoc/src/public/ui/command-results.d.ts +39 -0
- package/dist/superdoc/src/public/ui/create-super-doc-ui.d.ts +1 -17
- package/dist/superdoc/src/public/ui/document-change-records.d.ts +7 -0
- package/dist/superdoc/src/public/ui/entity-rows.d.ts +14 -0
- package/dist/superdoc/src/public/ui/font-options.d.ts +7 -0
- package/dist/superdoc/src/public/ui/format-painter-helpers.d.ts +2 -8
- package/dist/superdoc/src/public/ui/format-painter-state.d.ts +33 -0
- package/dist/superdoc/src/public/ui/heavy-read-policy.d.ts +11 -0
- package/dist/superdoc/src/public/ui/host-events.d.ts +3 -0
- package/dist/superdoc/src/public/ui/inline-values.d.ts +79 -0
- package/dist/superdoc/src/public/ui/loose-record.d.ts +4 -0
- package/dist/superdoc/src/public/ui/selection-targets.d.ts +45 -0
- package/dist/superdoc/src/public/ui/shared-tracked-changes-catalog.d.ts +16 -0
- package/dist/superdoc/src/public/ui/tracked-change-ids.d.ts +51 -0
- package/dist/superdoc/src/public/ui/types.d.ts +12 -2
- package/dist/superdoc/src/public/ui/ui-bench-timing.d.ts +9 -0
- package/dist/superdoc/src/public/ui.d.cts +14 -0
- package/dist/superdoc/src/public/ui.d.ts +1 -1
- package/dist/superdoc/src/stores/comments-store.d.ts +23006 -542
- package/dist/superdoc/src/stores/helpers/comment-document-scope.d.ts +22 -0
- package/dist/superdoc/src/stores/helpers/comment-grouping.d.ts +1 -1
- package/dist/superdoc/src/stores/helpers/comment-identity.d.ts +10 -10
- package/dist/superdoc/src/stores/helpers/pending-selection-snapshot.d.ts +17 -0
- package/dist/superdoc/src/stores/helpers/review-presentation.d.ts +90 -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 +4 -2
- package/dist/superdoc/src/stores/helpers/tracked-change-row-values.d.ts +1 -8
- package/dist/superdoc/src/stores/helpers/tracked-change-thread-index.d.ts +1 -1
- package/dist/superdoc/src/stores/helpers/v2-review-adapters.d.ts +147 -0
- package/dist/superdoc/src/stores/superdoc-store.d.ts +12 -2895
- package/dist/superdoc.cjs +1019 -844
- package/dist/superdoc.es.js +931 -756
- package/dist/word-layout/src/marker-utils.d.ts +0 -5
- package/dist/word-layout/src/unit-conversions.d.ts +0 -1
- package/dist-cdn/style.layered.css +1 -1
- package/dist-cdn/superdoc.min.css +1 -1
- package/dist-cdn/superdoc.min.js +38 -42
- package/package.json +13 -3
- package/dist/document-api/src/diff/index.d.ts +0 -3
- package/dist/document-api/src/write/locator.d.ts +0 -24
- package/dist/layout-engine/painters/dom/src/features/feature-registry.d.ts +0 -41
- package/dist/superdoc/src/internal/toolbar/built-in/format-negation.d.ts +0 -5
- package/dist/superdoc/src/main.d.ts +0 -1
- package/dist/word-layout/src/tab-layout.d.ts +0 -193
|
@@ -1,11 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Pure typeahead/autocomplete helpers for the font comboboxes (family + size).
|
|
3
|
+
*
|
|
4
|
+
* Matching is case-insensitive prefix matching on the logical font labels.
|
|
5
|
+
* Space is a normal query character, so the query is never split on spaces;
|
|
6
|
+
* only the outer whitespace is ignored when comparing.
|
|
7
|
+
*
|
|
8
|
+
* These functions hold no Vue or DOM state so CI can unit-test them in isolation.
|
|
9
|
+
*/
|
|
10
|
+
interface TypeaheadResult {
|
|
5
11
|
matchIndex: number;
|
|
6
12
|
display: string;
|
|
7
13
|
selectionStart: number;
|
|
8
14
|
selectionEnd: number;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Index of the first label that starts with `query` (case-insensitive).
|
|
18
|
+
* An empty/whitespace query never matches. Returns the matching index or -1.
|
|
19
|
+
*/
|
|
20
|
+
export declare const findPrefixMatchIndex: (query: string, labels: ReadonlyArray<string>) => number;
|
|
21
|
+
/**
|
|
22
|
+
* Resolve what the input should display after a keystroke.
|
|
23
|
+
*
|
|
24
|
+
* When `autocomplete` is true and a prefix match exists that is longer than the
|
|
25
|
+
* typed query, the completion is shown with the suffix selected so the next
|
|
26
|
+
* keystroke replaces it. When false (deletion) or no match exists, the raw
|
|
27
|
+
* query is shown with the caret at its end. `query` is the user-typed portion.
|
|
28
|
+
*/
|
|
29
|
+
export declare const computeTypeahead: (query: string, labels: ReadonlyArray<string>, { autocomplete }?: {
|
|
30
|
+
autocomplete?: boolean;
|
|
31
|
+
}) => TypeaheadResult;
|
|
32
|
+
export declare const normalizeCustomFontFamily: (value: unknown) => string;
|
|
33
|
+
/**
|
|
34
|
+
* Normalize a typed font size to a supported point-size string.
|
|
35
|
+
* Parses the numeric value (ignoring any unit suffix) keeping its sign, rounds to
|
|
36
|
+
* the nearest half point (DOCX/Word support half points such as 10.5), and clamps
|
|
37
|
+
* to the supported range. Returns '' when nothing usable was typed, including
|
|
38
|
+
* negative or sub-minimum values.
|
|
39
|
+
*/
|
|
40
|
+
export declare const normalizeCustomFontSize: (value: unknown) => string;
|
|
41
|
+
export {};
|
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Minimal DOM helpers for the built-in toolbar shell.
|
|
3
|
+
*
|
|
4
|
+
* The v1 toolbar's `helpers/general.js` also exported a converter-backed
|
|
5
|
+
* paragraph-font-family fallback; that path depended on private v1 editor
|
|
6
|
+
* internals (`@core/super-converter`) and is intentionally dropped on V2, where
|
|
7
|
+
* font-family active state comes from the shared command controller snapshot.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a toolbar mount target from a selector string or element id.
|
|
11
|
+
*/
|
|
12
|
+
export declare const findElementBySelector: (selector: string | HTMLElement | null | undefined) => HTMLElement | null;
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
interface ThrottleOptions {
|
|
2
|
+
leading?: boolean;
|
|
3
|
+
trailing?: boolean;
|
|
4
|
+
}
|
|
5
|
+
type Throttled<Args extends unknown[], Result> = ((...args: Args) => Result | undefined) & {
|
|
6
|
+
cancel: () => void;
|
|
5
7
|
};
|
|
8
|
+
declare const sanitizeNumber: (value: unknown, defaultNumber: number) => number;
|
|
9
|
+
declare const throttle: <Args extends unknown[], Result>(func: (...args: Args) => Result, wait: number, options?: ThrottleOptions) => Throttled<Args, Result>;
|
|
10
|
+
export { sanitizeNumber, throttle };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export const bulletStyleButtons: {
|
|
1
|
+
export declare const bulletStyleButtons: {
|
|
2
2
|
key: string;
|
|
3
3
|
icon: string;
|
|
4
4
|
ariaLabel: string;
|
|
5
5
|
}[];
|
|
6
|
-
export const numberedStyleButtons: {
|
|
6
|
+
export declare const numberedStyleButtons: {
|
|
7
7
|
key: string;
|
|
8
8
|
icon: string;
|
|
9
9
|
ariaLabel: string;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
import { HeaderFooterKind } from '../../../../../document-api/src/index.js';
|
|
1
2
|
/**
|
|
2
3
|
* Briefly highlight the painted header or footer regions that are on screen,
|
|
3
4
|
* so the user sees where page numbers landed without the caret leaving the
|
|
4
5
|
* body. Regions are read after the repaint that follows the mutation; nothing
|
|
5
|
-
* happens when none is visible or the host is unavailable.
|
|
6
|
-
*
|
|
7
|
-
* @param {HTMLElement | null | undefined} host Document viewport host element.
|
|
8
|
-
* @param {'header' | 'footer'} kind
|
|
6
|
+
* happens when none is visible or the host is unavailable. `host` is the
|
|
7
|
+
* document viewport host element.
|
|
9
8
|
*/
|
|
10
|
-
export function flashPageNumberRegions(host: HTMLElement | null | undefined, kind:
|
|
9
|
+
export declare function flashPageNumberRegions(host: HTMLElement | null | undefined, kind: HeaderFooterKind): Promise<void>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}): void;
|
|
1
|
+
type ScrollOptions = Pick<ScrollIntoViewOptions, 'behavior' | 'block'>;
|
|
2
|
+
export declare function scrollToElement(targetElement: HTMLElement | null | undefined, options?: ScrollOptions): void;
|
|
3
|
+
export {};
|
|
@@ -1,145 +1,78 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
export { pageNumberIconSvg as pageNumber };
|
|
80
|
-
export { alignLeftIconSvg as alignLeft };
|
|
81
|
-
export { alignRightIconSvg as alignRight };
|
|
82
|
-
export { alignCenterIconSvg as alignCenter };
|
|
83
|
-
export { alignJustifyIconSvg as alignJustify };
|
|
84
|
-
export { listIconSvg as bulletList };
|
|
85
|
-
export { listIconSvg as bulletListDisc };
|
|
86
|
-
export { listCircleIconSvg as bulletListCircle };
|
|
87
|
-
export { listSquareIconSvg as bulletListSquare };
|
|
88
|
-
export { listOlIconSvg as numberedList };
|
|
89
|
-
export { listDecimalIconSvg as numberedListDecimal };
|
|
90
|
-
export { listDecimalParenIconSvg as numberedListDecimalParen };
|
|
91
|
-
export { listUpperRomanIconSvg as numberedListUpperRoman };
|
|
92
|
-
export { listLowerRomanIconSvg as numberedListLowerRoman };
|
|
93
|
-
export { listUpperAlphaIconSvg as numberedListUpperAlpha };
|
|
94
|
-
export { listUpperAlphaParenIconSvg as numberedListUpperAlphaParen };
|
|
95
|
-
export { listLowerAlphaIconSvg as numberedListLowerAlpha };
|
|
96
|
-
export { listLowerAlphaParenIconSvg as numberedListLowerAlphaParen };
|
|
97
|
-
export { outdentIconSvg as indentLeft };
|
|
98
|
-
export { indentIconSvg as indentRight };
|
|
99
|
-
export { paragraphLtrIconSvg as directionLtr };
|
|
100
|
-
export { paragraphRtlIconSvg as directionRtl };
|
|
101
|
-
export { fileHalfDashedIconSvg as pageBreak };
|
|
102
|
-
export { paintRollerIconSvg as copyFormat };
|
|
103
|
-
export { textSlashIconSvg as clearFormatting };
|
|
104
|
-
export { listCheckIconSvg as trackChanges };
|
|
105
|
-
export { fileIconSvg as trackChangesFinal };
|
|
106
|
-
export { eyeIconSvg as trackChangesOriginal };
|
|
107
|
-
export { calendarCheckIconSvg as trackChangesAccept };
|
|
108
|
-
export { calendarXmarkIconSvg as trackChangesReject };
|
|
109
|
-
export { userEditIconSvg as documentMode };
|
|
110
|
-
export { userEditIconSvg as documentEditingMode };
|
|
111
|
-
export { commentIconSvg as documentSuggestingMode };
|
|
112
|
-
export { eyeIconSvg as documentViewingMode };
|
|
113
|
-
export { circleIconSvg as colorOption };
|
|
114
|
-
export { checkIconSvg as colorOptionCheck };
|
|
115
|
-
export { linkIconSvg as linkInput };
|
|
116
|
-
export { xmarkIconSvg as removeLink };
|
|
117
|
-
export { upRightFromSquareIconSvg as openLink };
|
|
118
|
-
export { ellipsisVerticalIconSvg as overflow };
|
|
119
|
-
export { caretUpIconSvg as dropdownCaretUp };
|
|
120
|
-
export { caretDownIconSvg as dropdownCaretDown };
|
|
121
|
-
export { rulerSvg as ruler };
|
|
122
|
-
export { paintbrushSvg as paintbrush };
|
|
123
|
-
export { highlighterIcon as highlight };
|
|
124
|
-
export { magicWandIcon as ai };
|
|
125
|
-
export { tableIconSvg as table };
|
|
126
|
-
export { tableColumnsIconSvg as tableActions };
|
|
127
|
-
export { arrowsLeftRightIconSvg as splitCell };
|
|
128
|
-
export { arrowsToDotIconSvg as mergeCells };
|
|
129
|
-
export { plusIconSvg as addRowBefore };
|
|
130
|
-
export { plusIconSvg as addRowAfter };
|
|
131
|
-
export { plusIconSvg as addColumnBefore };
|
|
132
|
-
export { plusIconSvg as addColumnAfter };
|
|
133
|
-
export { trashIconSvg as deleteRow };
|
|
134
|
-
export { trashIconSvg as deleteColumn };
|
|
135
|
-
export { trashIconSvg as deleteTable };
|
|
136
|
-
export { borderNoneIconSvg as deleteBorders };
|
|
137
|
-
export { wrenchIconSvg as fixTables };
|
|
138
|
-
export { upDownIconSvg as lineHeight };
|
|
139
|
-
export { magnifyingGlassSvg as search };
|
|
140
|
-
export { scissorsIconSvg as cut };
|
|
141
|
-
export { copyIconSvg as copy };
|
|
142
|
-
export { pasteIconSvg as paste };
|
|
143
|
-
export { strikethroughSvg as strikethrough };
|
|
144
|
-
export { paragraphIconSvg as formattingMarks };
|
|
145
|
-
}
|
|
1
|
+
export declare const toolbarIcons: {
|
|
2
|
+
undo: string;
|
|
3
|
+
redo: string;
|
|
4
|
+
bold: string;
|
|
5
|
+
italic: string;
|
|
6
|
+
underline: string;
|
|
7
|
+
color: string;
|
|
8
|
+
link: string;
|
|
9
|
+
image: string;
|
|
10
|
+
tableOfContents: string;
|
|
11
|
+
watermark: string;
|
|
12
|
+
pageNumber: string;
|
|
13
|
+
alignLeft: string;
|
|
14
|
+
alignRight: string;
|
|
15
|
+
alignCenter: string;
|
|
16
|
+
alignJustify: string;
|
|
17
|
+
bulletList: string;
|
|
18
|
+
bulletListDisc: string;
|
|
19
|
+
bulletListCircle: string;
|
|
20
|
+
bulletListSquare: string;
|
|
21
|
+
numberedList: string;
|
|
22
|
+
numberedListDecimal: string;
|
|
23
|
+
numberedListDecimalParen: string;
|
|
24
|
+
numberedListUpperRoman: string;
|
|
25
|
+
numberedListLowerRoman: string;
|
|
26
|
+
numberedListUpperAlpha: string;
|
|
27
|
+
numberedListUpperAlphaParen: string;
|
|
28
|
+
numberedListLowerAlpha: string;
|
|
29
|
+
numberedListLowerAlphaParen: string;
|
|
30
|
+
indentLeft: string;
|
|
31
|
+
indentRight: string;
|
|
32
|
+
directionLtr: string;
|
|
33
|
+
directionRtl: string;
|
|
34
|
+
pageBreak: string;
|
|
35
|
+
copyFormat: string;
|
|
36
|
+
clearFormatting: string;
|
|
37
|
+
trackChanges: string;
|
|
38
|
+
trackChangesFinal: string;
|
|
39
|
+
trackChangesOriginal: string;
|
|
40
|
+
trackChangesAccept: string;
|
|
41
|
+
trackChangesReject: string;
|
|
42
|
+
documentMode: string;
|
|
43
|
+
documentEditingMode: string;
|
|
44
|
+
documentSuggestingMode: string;
|
|
45
|
+
documentViewingMode: string;
|
|
46
|
+
colorOption: string;
|
|
47
|
+
colorOptionCheck: string;
|
|
48
|
+
linkInput: string;
|
|
49
|
+
removeLink: string;
|
|
50
|
+
openLink: string;
|
|
51
|
+
overflow: string;
|
|
52
|
+
dropdownCaretUp: string;
|
|
53
|
+
dropdownCaretDown: string;
|
|
54
|
+
ruler: string;
|
|
55
|
+
paintbrush: string;
|
|
56
|
+
highlight: string;
|
|
57
|
+
ai: string;
|
|
58
|
+
table: string;
|
|
59
|
+
tableActions: string;
|
|
60
|
+
splitCell: string;
|
|
61
|
+
mergeCells: string;
|
|
62
|
+
addRowBefore: string;
|
|
63
|
+
addRowAfter: string;
|
|
64
|
+
addColumnBefore: string;
|
|
65
|
+
addColumnAfter: string;
|
|
66
|
+
deleteRow: string;
|
|
67
|
+
deleteColumn: string;
|
|
68
|
+
deleteTable: string;
|
|
69
|
+
deleteBorders: string;
|
|
70
|
+
fixTables: string;
|
|
71
|
+
lineHeight: string;
|
|
72
|
+
search: string;
|
|
73
|
+
cut: string;
|
|
74
|
+
copy: string;
|
|
75
|
+
paste: string;
|
|
76
|
+
strikethrough: string;
|
|
77
|
+
formattingMarks: string;
|
|
78
|
+
};
|
|
@@ -1,8 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal href sanitizer for the built-in link popover.
|
|
3
|
+
*
|
|
4
|
+
* The v1 toolbar used the shared `@superdoc/url-validation` package, which is not
|
|
5
|
+
* a resolvable runtime dependency of the published `superdoc` ES build. This
|
|
6
|
+
* keeps the same fail-closed posture (only known-safe schemes pass) without
|
|
7
|
+
* pulling in that package: dangerous schemes (`javascript:`, `data:`,
|
|
8
|
+
* `vbscript:`) return `null`, mirroring the v1 contract that callers treat a
|
|
9
|
+
* `null` result as an invalid URL.
|
|
10
|
+
*/
|
|
1
11
|
/**
|
|
2
12
|
* Validate and normalize an href. Returns `{ href }` for safe values, or `null`.
|
|
3
|
-
* @param {string} value
|
|
4
|
-
* @returns {{ href: string }|null}
|
|
5
13
|
*/
|
|
6
|
-
export function sanitizeHref(value:
|
|
14
|
+
export declare function sanitizeHref(value: unknown): {
|
|
7
15
|
href: string;
|
|
8
16
|
} | null;
|
|
@@ -32,8 +32,9 @@ type BuiltInToolbarConfig = {
|
|
|
32
32
|
showPageNumberButton: boolean;
|
|
33
33
|
uiDisplayFallbackFont?: string;
|
|
34
34
|
};
|
|
35
|
+
type ToolbarSuperDoc = Partial<Pick<SuperDoc, 'activeEditor' | 'config' | 'ui' | 'uiConfig' | 'fonts' | 'on' | 'off' | 'emit' | 'focus' | 'toggleRuler' | 'toggleFormattingMarks' | 'setShowFormattingMarks'>>;
|
|
35
36
|
type BuiltInToolbarOptions = {
|
|
36
|
-
superdoc?:
|
|
37
|
+
superdoc?: ToolbarSuperDoc | null;
|
|
37
38
|
editor?: Editor | null;
|
|
38
39
|
selector?: string | HTMLElement | null;
|
|
39
40
|
element?: string | HTMLElement | null;
|
|
@@ -58,7 +59,7 @@ export declare class BuiltInToolbar extends EventEmitter {
|
|
|
58
59
|
pendingSelectionCapture: SelectionCapture | null | undefined;
|
|
59
60
|
isDev: boolean;
|
|
60
61
|
role: string;
|
|
61
|
-
superdoc:
|
|
62
|
+
superdoc: ToolbarSuperDoc | null | undefined;
|
|
62
63
|
toolbarContainer: HTMLElement | null;
|
|
63
64
|
toolbar: ComponentPublicInstance | null;
|
|
64
65
|
_detachFontsChanged: (() => void) | null;
|
|
@@ -66,7 +67,7 @@ export declare class BuiltInToolbar extends EventEmitter {
|
|
|
66
67
|
app?: App | null;
|
|
67
68
|
activeEditor: Editor | null;
|
|
68
69
|
ui: BorrowedSuperDocUI | null;
|
|
69
|
-
snapshot: ToolbarSnapshotSlice | null;
|
|
70
|
+
snapshot: Partial<Pick<ToolbarSnapshotSlice, 'commands' | 'copyFormatActive'>> | null;
|
|
70
71
|
_unsubscribeController: (() => void) | null;
|
|
71
72
|
_detachFormatPainterModeChange: (() => void) | null;
|
|
72
73
|
_customCommandRegs: Map<string, CustomCommandRegistrationResult<CustomButtonPayload>>;
|
|
@@ -1,10 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive image acquisition for the built-in toolbar (SD-3567).
|
|
3
|
+
*
|
|
4
|
+
* The toolbar image button routes through the shared controller command
|
|
5
|
+
* `image` → `create.image`, which requires a base64 PNG/JPEG data-URI `src`.
|
|
6
|
+
* This module owns the browser file picker and the File → data-URI
|
|
7
|
+
* conversion; the toolbar dispatches the resulting payload through the
|
|
8
|
+
* normal controller command path.
|
|
9
|
+
*/
|
|
10
|
+
/** Accept filter for the picker: PNG and JPEG only (V1 parity; OOXML-native formats). */
|
|
11
|
+
export declare const IMAGE_PICKER_ACCEPT = ".png,.jpg,.jpeg,image/png,image/jpeg";
|
|
12
|
+
type NamedBlob = Blob & {
|
|
13
|
+
name?: string;
|
|
14
|
+
};
|
|
15
|
+
interface ImageFilePickerOptions {
|
|
16
|
+
ownerDocument?: Document;
|
|
17
|
+
onPick?: (file: File) => void | Promise<void>;
|
|
18
|
+
onError?: (error: unknown) => void;
|
|
19
|
+
}
|
|
20
|
+
interface ImageFilePicker {
|
|
21
|
+
input: HTMLInputElement;
|
|
22
|
+
open: () => void;
|
|
23
|
+
destroy: () => void;
|
|
24
|
+
}
|
|
1
25
|
/**
|
|
2
26
|
* Whether a picked/dropped file is an insertable image (PNG/JPEG). Falls back
|
|
3
27
|
* to the file extension when the browser reports no MIME type.
|
|
4
|
-
* @param {File | null | undefined} file
|
|
5
|
-
* @returns {boolean}
|
|
6
28
|
*/
|
|
7
|
-
export function isSupportedImageFile(file: File | null | undefined): boolean;
|
|
29
|
+
export declare function isSupportedImageFile(file: File | null | undefined): boolean;
|
|
8
30
|
/**
|
|
9
31
|
* Read a File/Blob into a base64 data URI.
|
|
10
32
|
*
|
|
@@ -12,52 +34,20 @@ export function isSupportedImageFile(file: File | null | undefined): boolean;
|
|
|
12
34
|
* accepts those by extension, but `readAsDataURL` would then produce an
|
|
13
35
|
* `application/octet-stream` data URI that `create.image` rejects. Rewrite
|
|
14
36
|
* the media type from the filename so extension-accepted files still insert.
|
|
15
|
-
* @param {Blob & { name?: string }} file
|
|
16
|
-
* @returns {Promise<string>}
|
|
17
37
|
*/
|
|
18
|
-
export function fileToDataUri(file:
|
|
19
|
-
name?: string;
|
|
20
|
-
}): Promise<string>;
|
|
38
|
+
export declare function fileToDataUri(file: NamedBlob): Promise<string>;
|
|
21
39
|
/**
|
|
22
40
|
* Resolve the `create.image` src for a picked file. Uses the consumer's
|
|
23
41
|
* `handleImageUpload` callback when configured (V1 contract:
|
|
24
42
|
* `(file: File) => Promise<string>`). A returned non-data URL is fetched and
|
|
25
43
|
* embedded, because `create.image` requires an embedded base64 data URI.
|
|
26
|
-
* @param {File} file
|
|
27
|
-
* @param {((file: File) => Promise<string>) | null | undefined} handleImageUpload
|
|
28
|
-
* @returns {Promise<string>}
|
|
29
44
|
*/
|
|
30
|
-
export function resolveImageSrc(file: File, handleImageUpload: ((file: File) => Promise<string>) | null | undefined): Promise<string>;
|
|
45
|
+
export declare function resolveImageSrc(file: File, handleImageUpload: ((file: File) => Promise<string>) | null | undefined): Promise<string>;
|
|
31
46
|
/**
|
|
32
47
|
* Hidden `<input type=file>` picker bound to one toolbar instance. The input
|
|
33
48
|
* stays attached (hidden) so automation and tests can drive it; `destroy()`
|
|
34
49
|
* removes it. Picking a file calls `onPick(file)`; an unsupported type or a
|
|
35
50
|
* failed pick routes through `onError(error)`.
|
|
36
|
-
*
|
|
37
|
-
* @param {{
|
|
38
|
-
* ownerDocument?: Document,
|
|
39
|
-
* onPick?: (file: File) => unknown,
|
|
40
|
-
* onError?: (error: Error) => void,
|
|
41
|
-
* }} options
|
|
42
|
-
* @returns {{ input: HTMLInputElement, open: () => void, destroy: () => void }}
|
|
43
|
-
*/
|
|
44
|
-
export function createImageFilePicker({ ownerDocument, onPick, onError }?: {
|
|
45
|
-
ownerDocument?: Document;
|
|
46
|
-
onPick?: (file: File) => unknown;
|
|
47
|
-
onError?: (error: Error) => void;
|
|
48
|
-
}): {
|
|
49
|
-
input: HTMLInputElement;
|
|
50
|
-
open: () => void;
|
|
51
|
-
destroy: () => void;
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* Interactive image acquisition for the built-in toolbar (SD-3567).
|
|
55
|
-
*
|
|
56
|
-
* The toolbar image button routes through the shared controller command
|
|
57
|
-
* `image` → `create.image`, which requires a base64 PNG/JPEG data-URI `src`.
|
|
58
|
-
* This module owns the browser file picker and the File → data-URI
|
|
59
|
-
* conversion; the toolbar dispatches the resulting payload through the
|
|
60
|
-
* normal controller command path.
|
|
61
51
|
*/
|
|
62
|
-
|
|
63
|
-
export
|
|
52
|
+
export declare function createImageFilePicker({ ownerDocument, onPick, onError, }?: ImageFilePickerOptions): ImageFilePicker;
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ContentControlType } from '../../../document-api/src/index.js';
|
|
2
|
+
export interface ContentControlRef {
|
|
3
|
+
id: string;
|
|
4
|
+
tag?: string;
|
|
5
|
+
alias?: string;
|
|
6
|
+
controlType: ContentControlType;
|
|
7
|
+
scope: 'inline' | 'block';
|
|
8
|
+
}
|
|
9
|
+
export interface ContentControlClickPayload {
|
|
10
|
+
target: ContentControlRef;
|
|
11
|
+
source: 'pointer';
|
|
12
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Generated by scripts/ensure-types.cjs. Do not edit by hand.
|
|
2
2
|
import type { AwarenessState as __Cjs_AwarenessState } from './index.js' with { "resolution-mode": "import" };
|
|
3
3
|
import type { AwarenessUser as __Cjs_AwarenessUser } from './index.js' with { "resolution-mode": "import" };
|
|
4
|
+
import type { BlockChange as __Cjs_BlockChange } from './index.js' with { "resolution-mode": "import" };
|
|
4
5
|
import type { BlockNavigationAddress as __Cjs_BlockNavigationAddress } from './index.js' with { "resolution-mode": "import" };
|
|
5
6
|
import type { BlocksListResult as __Cjs_BlocksListResult } from './index.js' with { "resolution-mode": "import" };
|
|
6
7
|
import type { BookmarkAddress as __Cjs_BookmarkAddress } from './index.js' with { "resolution-mode": "import" };
|
|
@@ -8,6 +9,11 @@ import type { BookmarkInfo as __Cjs_BookmarkInfo } from './index.js' with { "res
|
|
|
8
9
|
import type { BorrowedSuperDocUI as __Cjs_BorrowedSuperDocUI } from './index.js' with { "resolution-mode": "import" };
|
|
9
10
|
import type { BuiltInCommandId as __Cjs_BuiltInCommandId } from './index.js' with { "resolution-mode": "import" };
|
|
10
11
|
import type { CanPerformPermissionParams as __Cjs_CanPerformPermissionParams } from './index.js' with { "resolution-mode": "import" };
|
|
12
|
+
import type { ChangeActor as __Cjs_ChangeActor } from './index.js' with { "resolution-mode": "import" };
|
|
13
|
+
import type { ChangeCause as __Cjs_ChangeCause } from './index.js' with { "resolution-mode": "import" };
|
|
14
|
+
import type { ChangeProvenance as __Cjs_ChangeProvenance } from './index.js' with { "resolution-mode": "import" };
|
|
15
|
+
import type { ChangeRecord as __Cjs_ChangeRecord } from './index.js' with { "resolution-mode": "import" };
|
|
16
|
+
import type { ChangesConfig as __Cjs_ChangesConfig } from './index.js' with { "resolution-mode": "import" };
|
|
11
17
|
import type { CollaborationConfig as __Cjs_CollaborationConfig } from './index.js' with { "resolution-mode": "import" };
|
|
12
18
|
import type { CommentAddress as __Cjs_CommentAddress } from './index.js' with { "resolution-mode": "import" };
|
|
13
19
|
import type { CommentInteractionConfig as __Cjs_CommentInteractionConfig } from './index.js' with { "resolution-mode": "import" };
|
|
@@ -298,6 +304,8 @@ import type { UIConfig as __Cjs_UIConfig } from './index.js' with { "resolution-
|
|
|
298
304
|
import type { UpgradeToCollaborationOptions as __Cjs_UpgradeToCollaborationOptions } from './index.js' with { "resolution-mode": "import" };
|
|
299
305
|
import type { UpgradeToCollaborationResult as __Cjs_UpgradeToCollaborationResult } from './index.js' with { "resolution-mode": "import" };
|
|
300
306
|
import type { User as __Cjs_User } from './index.js' with { "resolution-mode": "import" };
|
|
307
|
+
import type { UserClaim as __Cjs_UserClaim } from './index.js' with { "resolution-mode": "import" };
|
|
308
|
+
import type { UserClaimContext as __Cjs_UserClaimContext } from './index.js' with { "resolution-mode": "import" };
|
|
301
309
|
import type { V2CollaborationConfig as __Cjs_V2CollaborationConfig } from './index.js' with { "resolution-mode": "import" };
|
|
302
310
|
import type { ViewingOptions as __Cjs_ViewingOptions } from './index.js' with { "resolution-mode": "import" };
|
|
303
311
|
import type { ViewingTrackedChangesMode as __Cjs_ViewingTrackedChangesMode } from './index.js' with { "resolution-mode": "import" };
|
|
@@ -306,6 +314,7 @@ import type { ViewOptions as __Cjs_ViewOptions } from './index.js' with { "resol
|
|
|
306
314
|
export type { __Cjs_AwarenessState as AwarenessState };
|
|
307
315
|
export type { __Cjs_AwarenessUser as AwarenessUser };
|
|
308
316
|
export declare const BlankDOCX: typeof import('./index.js', { with: { "resolution-mode": "import" } }).BlankDOCX;
|
|
317
|
+
export type { __Cjs_BlockChange as BlockChange };
|
|
309
318
|
export type { __Cjs_BlockNavigationAddress as BlockNavigationAddress };
|
|
310
319
|
export type { __Cjs_BlocksListResult as BlocksListResult };
|
|
311
320
|
export type { __Cjs_BookmarkAddress as BookmarkAddress };
|
|
@@ -314,6 +323,11 @@ export type { __Cjs_BorrowedSuperDocUI as BorrowedSuperDocUI };
|
|
|
314
323
|
export declare const buildTheme: typeof import('./index.js', { with: { "resolution-mode": "import" } }).buildTheme;
|
|
315
324
|
export type { __Cjs_BuiltInCommandId as BuiltInCommandId };
|
|
316
325
|
export type { __Cjs_CanPerformPermissionParams as CanPerformPermissionParams };
|
|
326
|
+
export type { __Cjs_ChangeActor as ChangeActor };
|
|
327
|
+
export type { __Cjs_ChangeCause as ChangeCause };
|
|
328
|
+
export type { __Cjs_ChangeProvenance as ChangeProvenance };
|
|
329
|
+
export type { __Cjs_ChangeRecord as ChangeRecord };
|
|
330
|
+
export type { __Cjs_ChangesConfig as ChangesConfig };
|
|
317
331
|
export type { __Cjs_CollaborationConfig as CollaborationConfig };
|
|
318
332
|
export type { __Cjs_CommentAddress as CommentAddress };
|
|
319
333
|
export type { __Cjs_CommentInteractionConfig as CommentInteractionConfig };
|
|
@@ -615,6 +629,8 @@ export type { __Cjs_UIConfig as UIConfig };
|
|
|
615
629
|
export type { __Cjs_UpgradeToCollaborationOptions as UpgradeToCollaborationOptions };
|
|
616
630
|
export type { __Cjs_UpgradeToCollaborationResult as UpgradeToCollaborationResult };
|
|
617
631
|
export type { __Cjs_User as User };
|
|
632
|
+
export type { __Cjs_UserClaim as UserClaim };
|
|
633
|
+
export type { __Cjs_UserClaimContext as UserClaimContext };
|
|
618
634
|
export type { __Cjs_V2CollaborationConfig as V2CollaborationConfig };
|
|
619
635
|
export type { __Cjs_ViewingOptions as ViewingOptions };
|
|
620
636
|
export type { __Cjs_ViewingTrackedChangesMode as ViewingTrackedChangesMode };
|
|
@@ -200,6 +200,9 @@ export type { UpgradeToCollaborationResult } from '../core/types/index.js';
|
|
|
200
200
|
export type { SuperDocCollaborationUpgradeError } from '../core/types/index.js';
|
|
201
201
|
export type { V2CollaborationConfig } from '../core/types/index.js';
|
|
202
202
|
export type { User } from '../core/types/index.js';
|
|
203
|
+
export type { UserClaim, UserClaimContext } from '../core/types/index.js';
|
|
204
|
+
export type { ChangesConfig } from '../core/types/index.js';
|
|
205
|
+
export type { BlockChange, ChangeActor, ChangeCause, ChangeProvenance, ChangeRecord } from '../../../document-api/src/index.js';
|
|
203
206
|
export type { ViewOptions } from '../core/types/index.js';
|
|
204
207
|
export type { ViewingOptions } from '../core/types/index.js';
|
|
205
208
|
export type { ViewingTrackedChangesMode } from '../core/types/index.js';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type AsyncReadEntry = {
|
|
2
|
+
token: string | null;
|
|
3
|
+
value: unknown;
|
|
4
|
+
hasSettled: boolean;
|
|
5
|
+
inflightToken: string | null;
|
|
6
|
+
failedToken?: string | null;
|
|
7
|
+
failureCount?: number;
|
|
8
|
+
retryAtMs?: number;
|
|
9
|
+
settled?: Promise<void>;
|
|
10
|
+
};
|
|
11
|
+
export type AsyncReadSettlement = {
|
|
12
|
+
key: string;
|
|
13
|
+
settledAtMs: number;
|
|
14
|
+
commandId: string | null;
|
|
15
|
+
commandKind: string | null;
|
|
16
|
+
};
|
|
17
|
+
export interface AsyncReadCacheOptions {
|
|
18
|
+
isDisposed: () => boolean;
|
|
19
|
+
recomputeAfterSettle: () => void;
|
|
20
|
+
recomputeWhenRetryDue: () => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function failureRetryDelayMs(failureCount: number): number;
|
|
23
|
+
export declare function createAsyncReadCache(options: AsyncReadCacheOptions): {
|
|
24
|
+
entries: Map<string, AsyncReadEntry>;
|
|
25
|
+
issue: (key: string, token: string, run: () => unknown, normalize: (raw: unknown) => unknown) => AsyncReadEntry | null;
|
|
26
|
+
seed: (key: string, token: string | null, value: unknown, inflightToken?: string | null) => void;
|
|
27
|
+
clearKeys: (predicate: (key: string) => boolean) => void;
|
|
28
|
+
scheduleRefresh: () => void;
|
|
29
|
+
scheduleFailureRetry: (retryAtMs: number) => void;
|
|
30
|
+
cancelFailureRetry: () => void;
|
|
31
|
+
drainSettlements: () => AsyncReadSettlement[];
|
|
32
|
+
};
|