@kerebron/editor 0.4.27 → 0.4.29

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.
Files changed (167) hide show
  1. package/esm/CoreEditor.d.ts +40 -0
  2. package/esm/CoreEditor.d.ts.map +1 -0
  3. package/esm/CoreEditor.js +224 -0
  4. package/esm/CoreEditor.js.map +1 -0
  5. package/esm/DummyEditorView.d.ts +60 -0
  6. package/esm/DummyEditorView.d.ts.map +1 -0
  7. package/esm/DummyEditorView.js +243 -0
  8. package/esm/DummyEditorView.js.map +1 -0
  9. package/esm/Extension.d.ts +31 -0
  10. package/esm/Extension.d.ts.map +1 -0
  11. package/esm/Extension.js +35 -0
  12. package/esm/Extension.js.map +1 -0
  13. package/esm/ExtensionManager.d.ts +32 -0
  14. package/esm/ExtensionManager.d.ts.map +1 -0
  15. package/esm/ExtensionManager.js +223 -0
  16. package/esm/ExtensionManager.js.map +1 -0
  17. package/esm/Mark.d.ts +23 -0
  18. package/esm/Mark.d.ts.map +1 -0
  19. package/esm/Mark.js +28 -0
  20. package/esm/Mark.js.map +1 -0
  21. package/esm/Node.d.ts +32 -0
  22. package/esm/Node.d.ts.map +1 -0
  23. package/esm/Node.js +37 -0
  24. package/esm/Node.js.map +1 -0
  25. package/esm/commands/CommandManager.d.ts +24 -0
  26. package/esm/commands/CommandManager.d.ts.map +1 -0
  27. package/esm/commands/CommandManager.js +101 -0
  28. package/esm/commands/CommandManager.js.map +1 -0
  29. package/esm/commands/baseCommandFactories.d.ts +3 -0
  30. package/esm/commands/baseCommandFactories.d.ts.map +1 -0
  31. package/esm/commands/baseCommandFactories.js +862 -0
  32. package/esm/commands/baseCommandFactories.js.map +1 -0
  33. package/esm/commands/createChainableState.d.ts +3 -0
  34. package/esm/commands/createChainableState.d.ts.map +1 -0
  35. package/esm/commands/createChainableState.js +30 -0
  36. package/esm/commands/createChainableState.js.map +1 -0
  37. package/esm/commands/keyCommandFactories.d.ts +3 -0
  38. package/esm/commands/keyCommandFactories.d.ts.map +1 -0
  39. package/esm/commands/keyCommandFactories.js +11 -0
  40. package/esm/commands/keyCommandFactories.js.map +1 -0
  41. package/esm/commands/mod.d.ts +7 -0
  42. package/esm/commands/mod.d.ts.map +1 -0
  43. package/esm/commands/mod.js +82 -0
  44. package/esm/commands/mod.js.map +1 -0
  45. package/esm/commands/replaceCommandFactories.d.ts +3 -0
  46. package/esm/commands/replaceCommandFactories.d.ts.map +1 -0
  47. package/esm/commands/replaceCommandFactories.js +95 -0
  48. package/esm/commands/replaceCommandFactories.js.map +1 -0
  49. package/esm/commands/types.d.ts +22 -0
  50. package/esm/commands/types.d.ts.map +1 -0
  51. package/esm/commands/types.js +2 -0
  52. package/esm/commands/types.js.map +1 -0
  53. package/esm/mod.d.ts +9 -0
  54. package/esm/mod.d.ts.map +1 -0
  55. package/esm/mod.js +9 -0
  56. package/esm/mod.js.map +1 -0
  57. package/esm/nodeToTreeString.d.ts +10 -0
  58. package/esm/nodeToTreeString.d.ts.map +1 -0
  59. package/esm/nodeToTreeString.js +75 -0
  60. package/esm/nodeToTreeString.js.map +1 -0
  61. package/esm/package.json +3 -0
  62. package/esm/plugins/TrackSelecionPlugin.d.ts +6 -0
  63. package/esm/plugins/TrackSelecionPlugin.d.ts.map +1 -0
  64. package/esm/plugins/TrackSelecionPlugin.js +25 -0
  65. package/esm/plugins/TrackSelecionPlugin.js.map +1 -0
  66. package/esm/plugins/input-rules/InputRulesPlugin.d.ts +25 -0
  67. package/esm/plugins/input-rules/InputRulesPlugin.d.ts.map +1 -0
  68. package/esm/plugins/input-rules/InputRulesPlugin.js +169 -0
  69. package/esm/plugins/input-rules/InputRulesPlugin.js.map +1 -0
  70. package/esm/plugins/input-rules/mod.d.ts +3 -0
  71. package/esm/plugins/input-rules/mod.d.ts.map +1 -0
  72. package/esm/plugins/input-rules/mod.js +3 -0
  73. package/esm/plugins/input-rules/mod.js.map +1 -0
  74. package/esm/plugins/input-rules/rulebuilders.d.ts +6 -0
  75. package/esm/plugins/input-rules/rulebuilders.d.ts.map +1 -0
  76. package/esm/plugins/input-rules/rulebuilders.js +65 -0
  77. package/esm/plugins/input-rules/rulebuilders.js.map +1 -0
  78. package/esm/plugins/keymap/keymap.d.ts +12 -0
  79. package/esm/plugins/keymap/keymap.d.ts.map +1 -0
  80. package/esm/plugins/keymap/keymap.js +126 -0
  81. package/esm/plugins/keymap/keymap.js.map +1 -0
  82. package/esm/plugins/keymap/mod.d.ts +2 -0
  83. package/esm/plugins/keymap/mod.d.ts.map +1 -0
  84. package/esm/plugins/keymap/mod.js +2 -0
  85. package/esm/plugins/keymap/mod.js.map +1 -0
  86. package/esm/plugins/keymap/w3c-keyname.d.ts +4 -0
  87. package/esm/plugins/keymap/w3c-keyname.d.ts.map +1 -0
  88. package/esm/plugins/keymap/w3c-keyname.js +125 -0
  89. package/esm/plugins/keymap/w3c-keyname.js.map +1 -0
  90. package/esm/search/mod.d.ts +3 -0
  91. package/esm/search/mod.d.ts.map +1 -0
  92. package/esm/search/mod.js +3 -0
  93. package/esm/search/mod.js.map +1 -0
  94. package/esm/search/query.d.ts +45 -0
  95. package/esm/search/query.d.ts.map +1 -0
  96. package/esm/search/query.js +335 -0
  97. package/esm/search/query.js.map +1 -0
  98. package/esm/search/search.d.ts +32 -0
  99. package/esm/search/search.d.ts.map +1 -0
  100. package/esm/search/search.js +200 -0
  101. package/esm/search/search.js.map +1 -0
  102. package/esm/types.d.ts +59 -0
  103. package/esm/types.d.ts.map +1 -0
  104. package/esm/types.js +2 -0
  105. package/esm/types.js.map +1 -0
  106. package/esm/ui.d.ts +15 -0
  107. package/esm/ui.d.ts.map +1 -0
  108. package/esm/ui.js +17 -0
  109. package/esm/ui.js.map +1 -0
  110. package/esm/utilities/SmartOutput.d.ts +41 -0
  111. package/esm/utilities/SmartOutput.d.ts.map +1 -0
  112. package/esm/utilities/SmartOutput.js +202 -0
  113. package/esm/utilities/SmartOutput.js.map +1 -0
  114. package/esm/utilities/createNodeFromContent.d.ts +9 -0
  115. package/esm/utilities/createNodeFromContent.d.ts.map +1 -0
  116. package/esm/utilities/createNodeFromContent.js +33 -0
  117. package/esm/utilities/createNodeFromContent.js.map +1 -0
  118. package/esm/utilities/getHtmlAttributes.d.ts +9 -0
  119. package/esm/utilities/getHtmlAttributes.d.ts.map +1 -0
  120. package/esm/utilities/getHtmlAttributes.js +48 -0
  121. package/esm/utilities/getHtmlAttributes.js.map +1 -0
  122. package/esm/utilities/getShadowRoot.d.ts +2 -0
  123. package/esm/utilities/getShadowRoot.d.ts.map +1 -0
  124. package/esm/utilities/getShadowRoot.js +17 -0
  125. package/esm/utilities/getShadowRoot.js.map +1 -0
  126. package/esm/utilities/mod.d.ts +6 -0
  127. package/esm/utilities/mod.d.ts.map +1 -0
  128. package/esm/utilities/mod.js +6 -0
  129. package/esm/utilities/mod.js.map +1 -0
  130. package/esm/utilities/toRawTextResult.d.ts +3 -0
  131. package/esm/utilities/toRawTextResult.d.ts.map +1 -0
  132. package/esm/utilities/toRawTextResult.js +22 -0
  133. package/esm/utilities/toRawTextResult.js.map +1 -0
  134. package/package.json +5 -2
  135. package/src/CoreEditor.ts +277 -0
  136. package/src/DummyEditorView.ts +403 -0
  137. package/src/Extension.ts +63 -0
  138. package/src/ExtensionManager.ts +328 -0
  139. package/src/Mark.ts +47 -0
  140. package/src/Node.ts +66 -0
  141. package/src/commands/CommandManager.ts +145 -0
  142. package/src/commands/baseCommandFactories.ts +1103 -0
  143. package/src/commands/createChainableState.ts +36 -0
  144. package/src/commands/keyCommandFactories.ts +26 -0
  145. package/src/commands/mod.ts +104 -0
  146. package/src/commands/replaceCommandFactories.ts +129 -0
  147. package/src/commands/types.ts +30 -0
  148. package/src/mod.ts +8 -0
  149. package/src/nodeToTreeString.ts +100 -0
  150. package/src/plugins/TrackSelecionPlugin.ts +27 -0
  151. package/src/plugins/input-rules/InputRulesPlugin.ts +242 -0
  152. package/src/plugins/input-rules/mod.ts +2 -0
  153. package/src/plugins/input-rules/rulebuilders.ts +88 -0
  154. package/src/plugins/keymap/keymap.ts +117 -0
  155. package/src/plugins/keymap/mod.ts +1 -0
  156. package/src/plugins/keymap/w3c-keyname.ts +123 -0
  157. package/src/search/mod.ts +2 -0
  158. package/src/search/query.ts +412 -0
  159. package/src/search/search.ts +284 -0
  160. package/src/types.ts +71 -0
  161. package/src/ui.ts +35 -0
  162. package/src/utilities/SmartOutput.ts +284 -0
  163. package/src/utilities/createNodeFromContent.ts +66 -0
  164. package/src/utilities/getHtmlAttributes.ts +68 -0
  165. package/src/utilities/getShadowRoot.ts +18 -0
  166. package/src/utilities/mod.ts +5 -0
  167. package/src/utilities/toRawTextResult.ts +27 -0
package/esm/types.d.ts ADDED
@@ -0,0 +1,59 @@
1
+ import type { Node as ProseMirrorNode, ParseOptions } from 'prosemirror-model';
2
+ import type { Extension } from './Extension.js';
3
+ import type { Mark } from './Mark.js';
4
+ import type { Node } from './Node.js';
5
+ export type AnyExtension = Extension | Node | Mark;
6
+ export type AnyExtensionOrReq = AnyExtension | {
7
+ requires: Array<AnyExtensionOrReq | string>;
8
+ };
9
+ export type Content = JSONContent | JSONContent[] | null;
10
+ export interface EditorConfig {
11
+ element: HTMLElement;
12
+ content: Content;
13
+ parseOptions: ParseOptions;
14
+ extensions: AnyExtensionOrReq[];
15
+ cdnUrl?: string;
16
+ uri?: string;
17
+ languageID?: string;
18
+ topNode?: string;
19
+ readOnly?: boolean;
20
+ }
21
+ export type JSONContent = {
22
+ type?: string;
23
+ attrs?: Record<string, any>;
24
+ content?: JSONContent[];
25
+ marks?: {
26
+ type: string;
27
+ attrs?: Record<string, any>;
28
+ [key: string]: any;
29
+ }[];
30
+ text?: string;
31
+ [key: string]: any;
32
+ };
33
+ export type Attribute<T> = {
34
+ fromDom?: (element: HTMLElement) => T;
35
+ default: T;
36
+ toDom?: (node: ProseMirrorNode) => T;
37
+ };
38
+ export interface TextRange {
39
+ from: number;
40
+ to: number;
41
+ }
42
+ export interface RawTextMapEntry {
43
+ nodeIdx: number;
44
+ targetRow: number;
45
+ targetCol: number;
46
+ sourceCol?: number;
47
+ targetPos: number;
48
+ }
49
+ export interface RawTextResult {
50
+ content: string;
51
+ rawTextMap: Array<RawTextMapEntry>;
52
+ }
53
+ export interface UrlRewriteContext {
54
+ type: 'IMG' | 'A';
55
+ dest: string;
56
+ filesMap?: Record<string, Uint8Array>;
57
+ }
58
+ export type UrlRewriter = (url: string, ctx: UrlRewriteContext) => Promise<string>;
59
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AACnD,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAC7C,QAAQ,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,EAAE,CAAC;IACJ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,CAAC,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACvC;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,iBAAiB,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC"}
package/esm/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/esm/ui.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import type { CoreEditor } from './CoreEditor.js';
2
+ interface SelectParams {
3
+ anchor: number;
4
+ scrollIntoView: boolean;
5
+ userEvent: string;
6
+ }
7
+ export interface EditorUi {
8
+ showMessage(msg: string): void;
9
+ showError(err: Error): void;
10
+ focus(): void;
11
+ select(params: SelectParams): void;
12
+ }
13
+ export declare function defaultUi(editor: CoreEditor): EditorUi;
14
+ export {};
15
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAmBtD"}
package/esm/ui.js ADDED
@@ -0,0 +1,17 @@
1
+ export function defaultUi(editor) {
2
+ return {
3
+ showMessage(msg) {
4
+ globalThis.alert(msg);
5
+ },
6
+ showError(err) {
7
+ globalThis.alert(err.message);
8
+ console.error(err);
9
+ },
10
+ focus() {
11
+ // editor.run.focus();
12
+ },
13
+ select({ anchor: number, scrollIntoView: boolean, userEvent: string, }) {
14
+ },
15
+ };
16
+ }
17
+ //# sourceMappingURL=ui.js.map
package/esm/ui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,SAAS,CAAC,MAAkB;IAC1C,OAAO;QACL,WAAW,CAAC,GAAW;YACrB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,SAAS,CAAC,GAAU;YAClB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,KAAK;YACH,sBAAsB;QACxB,CAAC;QACD,MAAM,CAAC,EACL,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,MAAM,GAClB;QACD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,41 @@
1
+ export interface OutputMeta<K> {
2
+ pos: number;
3
+ rowPos: number;
4
+ colPos: number;
5
+ item?: K;
6
+ }
7
+ interface Mapping {
8
+ sourceNo: number;
9
+ sourceRowPos: number;
10
+ sourceColPos: number;
11
+ }
12
+ export interface SourceMap {
13
+ 'version': 3;
14
+ 'file': string;
15
+ 'sourceRoot': string;
16
+ 'sources': Array<string>;
17
+ 'sourcesContent': Array<string>;
18
+ 'names': Array<string>;
19
+ 'mappings': string;
20
+ }
21
+ export declare class SmartOutput<K> {
22
+ private _rowPos;
23
+ private _colPos;
24
+ private _pos;
25
+ private chunks;
26
+ private metas;
27
+ log(text: string, item?: K): void;
28
+ getMetas(): OutputMeta<K>[];
29
+ get chunkPos(): number;
30
+ rollback(pos: number): void;
31
+ get rowPos(): number;
32
+ get colPos(): number;
33
+ get pos(): number;
34
+ endsWith(text: string): boolean;
35
+ toString(): string;
36
+ getSourceMap(mapper: (rowPos: number, colPos: number, pos: number, item?: K) => Mapping | void): SourceMap;
37
+ }
38
+ export declare function decode(string: string): number[];
39
+ export declare function encode(value: number | number[]): string;
40
+ export {};
41
+ //# sourceMappingURL=SmartOutput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartOutput.d.ts","sourceRoot":"","sources":["../../src/utilities/SmartOutput.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED,UAAU,OAAO;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,CAAC,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,WAAW,CAAC,CAAC;IACxB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAK;IAEjB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAA4B;IAEzC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;IAyB1B,QAAQ;IAIR,IAAI,QAAQ,WAEX;IAED,QAAQ,CAAC,GAAG,EAAE,MAAM;IAKpB,IAAI,MAAM,WAET;IAED,IAAI,MAAM,WAET;IAED,IAAI,GAAG,WAEN;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM;IAIrB,QAAQ;IAIR,YAAY,CACV,MAAM,EAAE,CACN,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,CAAC,KACL,OAAO,GAAG,IAAI,GAClB,SAAS;CA4Db;AAuDD,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,YAoCpC;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,UAW9C"}
@@ -0,0 +1,202 @@
1
+ export class SmartOutput {
2
+ _rowPos = 0;
3
+ _colPos = 0;
4
+ _pos = 0;
5
+ chunks = [];
6
+ metas = [];
7
+ log(text, item) {
8
+ if (text.length === 0) {
9
+ return;
10
+ }
11
+ this.chunks.push(text);
12
+ this.metas.push({
13
+ pos: this._pos,
14
+ colPos: this._colPos,
15
+ rowPos: this._rowPos,
16
+ item,
17
+ });
18
+ const lines = text.split('\n');
19
+ if (lines.length === 1) {
20
+ this._colPos += lines[lines.length - 1].length;
21
+ }
22
+ else {
23
+ this._rowPos += lines.length - 1;
24
+ this._colPos = lines[lines.length - 1].length;
25
+ }
26
+ this._pos += text.length;
27
+ }
28
+ getMetas() {
29
+ return this.metas;
30
+ }
31
+ get chunkPos() {
32
+ return this.chunks.length;
33
+ }
34
+ rollback(pos) {
35
+ this.chunks.splice(pos);
36
+ this.metas.splice(pos);
37
+ }
38
+ get rowPos() {
39
+ return this._rowPos;
40
+ }
41
+ get colPos() {
42
+ return this._colPos;
43
+ }
44
+ get pos() {
45
+ return this._pos;
46
+ }
47
+ endsWith(text) {
48
+ return this.chunks.join('').endsWith(text);
49
+ }
50
+ toString() {
51
+ return this.chunks.join('');
52
+ }
53
+ getSourceMap(mapper) {
54
+ const mappingRows = [];
55
+ let lastRow = -1;
56
+ let lastCol = -1;
57
+ let prevSourceNo = 0;
58
+ let prevSourceRowPos = 0;
59
+ let prevSourceColPos = 0;
60
+ let prevColPos = 0;
61
+ for (const meta of this.metas) {
62
+ while (meta.rowPos >= mappingRows.length) {
63
+ mappingRows.push([]);
64
+ }
65
+ if (lastRow != meta.rowPos || lastCol != meta.colPos) {
66
+ const currentRow = mappingRows[meta.rowPos];
67
+ if (lastRow != meta.rowPos) {
68
+ prevColPos = 0;
69
+ }
70
+ const mapping = mapper(meta.rowPos, meta.colPos, meta.pos, meta.item);
71
+ if (mapping) {
72
+ currentRow.push([
73
+ meta.colPos - prevColPos,
74
+ mapping.sourceNo - prevSourceNo,
75
+ mapping.sourceRowPos - prevSourceRowPos,
76
+ mapping.sourceColPos - prevSourceColPos,
77
+ ]);
78
+ prevColPos = meta.colPos;
79
+ prevSourceNo = mapping.sourceNo;
80
+ prevSourceRowPos = mapping.sourceRowPos;
81
+ prevSourceColPos = mapping.sourceColPos;
82
+ }
83
+ }
84
+ lastRow = meta.rowPos;
85
+ lastCol = meta.colPos;
86
+ }
87
+ const mappings = mappingRows
88
+ .map((row) => row.map((group) => encode(group))
89
+ .join(','))
90
+ .join(';');
91
+ return {
92
+ version: 3,
93
+ file: '',
94
+ sourceRoot: '',
95
+ sources: [],
96
+ sourcesContent: [],
97
+ names: [],
98
+ mappings,
99
+ };
100
+ }
101
+ }
102
+ const BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
103
+ function toVLQ(value) {
104
+ const vlq = [];
105
+ const isNegative = value < 0;
106
+ value = Math.abs(value);
107
+ if (value === 0) {
108
+ vlq.push(0);
109
+ return vlq;
110
+ }
111
+ while (value > 0) {
112
+ let digit = value & 0x1F;
113
+ value >>= 5;
114
+ if (value > 0) {
115
+ digit |= 0x20;
116
+ }
117
+ vlq.push(digit);
118
+ if (vlq.length === 1) {
119
+ digit = isNegative ? (digit | 0x1) : (digit & ~0x1);
120
+ vlq[0] = digit;
121
+ }
122
+ }
123
+ return vlq;
124
+ }
125
+ function encodeVLQ(input) {
126
+ const numbers = Array.isArray(input) ? input : [input];
127
+ let result = '';
128
+ for (const num of numbers) {
129
+ const vlq = toVLQ(num);
130
+ for (const digit of vlq) {
131
+ result += BASE64_CHARS[digit];
132
+ }
133
+ }
134
+ return result;
135
+ }
136
+ const char_to_integer = {};
137
+ const integer_to_char = {};
138
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
139
+ .split('')
140
+ .forEach(function (char, i) {
141
+ char_to_integer[char] = i;
142
+ integer_to_char[i] = char;
143
+ });
144
+ export function decode(string) {
145
+ let result = [];
146
+ let shift = 0;
147
+ let value = 0;
148
+ for (let i = 0; i < string.length; i += 1) {
149
+ let integer = char_to_integer[string[i]];
150
+ if (integer === undefined) {
151
+ throw new Error('Invalid character (' + string[i] + ')');
152
+ }
153
+ const has_continuation_bit = integer & 32;
154
+ integer &= 31;
155
+ value += integer << shift;
156
+ if (has_continuation_bit) {
157
+ shift += 5;
158
+ }
159
+ else {
160
+ const should_negate = value & 1;
161
+ value >>>= 1;
162
+ if (should_negate) {
163
+ result.push(value === 0 ? -0x80000000 : -value);
164
+ }
165
+ else {
166
+ result.push(value);
167
+ }
168
+ // reset
169
+ value = shift = 0;
170
+ }
171
+ }
172
+ return result;
173
+ }
174
+ export function encode(value) {
175
+ if (typeof value === 'number') {
176
+ return encode_integer(value);
177
+ }
178
+ let result = '';
179
+ for (let i = 0; i < value.length; i += 1) {
180
+ result += encode_integer(value[i]);
181
+ }
182
+ return result;
183
+ }
184
+ function encode_integer(num) {
185
+ let result = '';
186
+ if (num < 0) {
187
+ num = (-num << 1) | 1;
188
+ }
189
+ else {
190
+ num <<= 1;
191
+ }
192
+ do {
193
+ let clamped = num & 31;
194
+ num >>>= 5;
195
+ if (num > 0) {
196
+ clamped |= 32;
197
+ }
198
+ result += integer_to_char[clamped];
199
+ } while (num > 0);
200
+ return result;
201
+ }
202
+ //# sourceMappingURL=SmartOutput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartOutput.js","sourceRoot":"","sources":["../../src/utilities/SmartOutput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Fragment, Node as ProseMirrorNode, Schema } from 'prosemirror-model';
2
+ import type { JSONContent } from '../types.js';
3
+ export type CreateNodeFromContentOptions = {
4
+ errorOnInvalidContent?: boolean;
5
+ };
6
+ export declare function createNodeFromObject(content: JSONContent | ProseMirrorNode | Fragment, schema: Schema, options?: CreateNodeFromContentOptions): ProseMirrorNode;
7
+ export declare function createNodeFromArray(content: JSONContent[], schema: Schema): Fragment;
8
+ export declare function createNodeFromContent(content: JSONContent | ProseMirrorNode | Fragment, schema: Schema, options?: CreateNodeFromContentOptions): ProseMirrorNode | Fragment;
9
+ //# sourceMappingURL=createNodeFromContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNodeFromContent.d.ts","sourceRoot":"","sources":["../../src/utilities/createNodeFromContent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,KAAK,EAAW,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,MAAM,4BAA4B,GAAG;IACzC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,WAAW,GAAG,eAAe,GAAG,QAAQ,EACjD,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,4BAA4B,GACrC,eAAe,CA0BjB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EAAE,EACtB,MAAM,EAAE,MAAM,GACb,QAAQ,CAIV;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,GAAG,eAAe,GAAG,QAAQ,EACjD,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,4BAA4B,GACrC,eAAe,GAAG,QAAQ,CAY5B"}
@@ -0,0 +1,33 @@
1
+ import { Fragment, Node as ProseMirrorNode } from 'prosemirror-model';
2
+ export function createNodeFromObject(content, schema, options) {
3
+ try {
4
+ const node = schema.nodeFromJSON(content);
5
+ if (options?.errorOnInvalidContent) {
6
+ node.check();
7
+ }
8
+ return node;
9
+ }
10
+ catch (error) {
11
+ if (options?.errorOnInvalidContent) {
12
+ throw new Error('Invalid JSON content', {
13
+ cause: error,
14
+ });
15
+ }
16
+ console.warn('Invalid content.', 'Passed value:', content, 'Error:', error);
17
+ return schema.topNodeType.createAndFill(null, []);
18
+ }
19
+ }
20
+ export function createNodeFromArray(content, schema) {
21
+ return Fragment.fromArray(content.map((item) => schema.nodeFromJSON(item)));
22
+ }
23
+ export function createNodeFromContent(content, schema, options) {
24
+ if (content instanceof ProseMirrorNode || content instanceof Fragment) {
25
+ return content;
26
+ }
27
+ const isJSONContent = typeof content === 'object' && content !== null;
28
+ if (isJSONContent) {
29
+ return createNodeFromObject(content, schema, options);
30
+ }
31
+ return schema.topNodeType.createAndFill(null, []);
32
+ }
33
+ //# sourceMappingURL=createNodeFromContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNodeFromContent.js","sourceRoot":"","sources":["../../src/utilities/createNodeFromContent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,eAAe,EAAU,MAAM,mBAAmB,CAAC;AAQ9E,MAAM,UAAU,oBAAoB,CAClC,OAAiD,EACjD,MAAc,EACd,OAAsC;IAEtC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,OAAO,EAAE,qBAAqB,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,EAAE,qBAAqB,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE;gBACtC,KAAK,EAAE,KAAc;aACtB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,IAAI,CACV,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,QAAQ,EACR,KAAK,CACN,CAAC;QAEF,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAE,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAsB,EACtB,MAAc;IAEd,OAAO,QAAQ,CAAC,SAAS,CACvB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAiD,EACjD,MAAc,EACd,OAAsC;IAEtC,IAAI,OAAO,YAAY,eAAe,IAAI,OAAO,YAAY,QAAQ,EAAE,CAAC;QACtE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC;IAEtE,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAE,CAAC;AACrD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { MarkSpec, Node as ProseMirrorNode, NodeSpec } from 'prosemirror-model';
2
+ import type { Mark } from '../Mark.js';
3
+ import type { Node } from '../Node.js';
4
+ type MarkOfNode = Mark | Node;
5
+ export declare function getHtmlAttributes(extension: MarkOfNode, node: ProseMirrorNode): Record<string, any>;
6
+ export declare function setHtmlAttributes(extension: MarkOfNode, element: HTMLElement): Record<string, any>;
7
+ export declare function addAttributesToSchema(spec: MarkSpec | NodeSpec, extension: MarkOfNode): void;
8
+ export {};
9
+ //# sourceMappingURL=getHtmlAttributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHtmlAttributes.d.ts","sourceRoot":"","sources":["../../src/utilities/getHtmlAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,IAAI,IAAI,eAAe,EACvB,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9B,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,eAAe,uBAmBtB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,uBAc5E;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EACzB,SAAS,EAAE,UAAU,QAetB"}
@@ -0,0 +1,48 @@
1
+ export function getHtmlAttributes(extension, node) {
2
+ const attrs = {};
3
+ if (extension.attributes) {
4
+ for (const [key, value] of Object.entries(extension.attributes)) {
5
+ if ('undefined' !== typeof node.attrs[key]) {
6
+ attrs[key] = node.attrs[key];
7
+ }
8
+ else {
9
+ if (value.toDom) {
10
+ attrs[key] = value.toDom(node);
11
+ }
12
+ else {
13
+ attrs[key] = value.default;
14
+ }
15
+ }
16
+ }
17
+ }
18
+ return attrs;
19
+ }
20
+ export function setHtmlAttributes(extension, element) {
21
+ const attrs = {};
22
+ if (extension.attributes) {
23
+ for (const [key, value] of Object.entries(extension.attributes)) {
24
+ if (value.fromDom) {
25
+ attrs[key] = value.fromDom(element);
26
+ }
27
+ else {
28
+ attrs[key] = value.default;
29
+ }
30
+ }
31
+ }
32
+ return attrs;
33
+ }
34
+ export function addAttributesToSchema(spec, extension) {
35
+ const attrs = {};
36
+ if (extension.attributes) {
37
+ if (!spec.attrs) {
38
+ spec.attrs = {};
39
+ }
40
+ for (const [key, value] of Object.entries(extension.attributes)) {
41
+ spec.attrs[key] = value;
42
+ if (!value.toDom) {
43
+ value.toDom = (node) => node.attrs[key];
44
+ }
45
+ }
46
+ }
47
+ }
48
+ //# sourceMappingURL=getHtmlAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHtmlAttributes.js","sourceRoot":"","sources":["../../src/utilities/getHtmlAttributes.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,iBAAiB,CAC/B,SAAqB,EACrB,IAAqB;IAErB,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YAChE,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3C,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAqB,EAAE,OAAoB;IAC3E,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YAChE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAyB,EACzB,SAAqB;IAErB,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjB,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getShadowRoot(element?: Element): ShadowRoot | undefined;
2
+ //# sourceMappingURL=getShadowRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getShadowRoot.d.ts","sourceRoot":"","sources":["../../src/utilities/getShadowRoot.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAiBvE"}
@@ -0,0 +1,17 @@
1
+ export function getShadowRoot(element) {
2
+ let current = element;
3
+ while (current) {
4
+ if (current.toString() === '[object ShadowRoot]') {
5
+ return current;
6
+ }
7
+ if (current instanceof ShadowRoot) {
8
+ if (current.host) {
9
+ return current.host.shadowRoot || undefined;
10
+ }
11
+ }
12
+ current = current.parentElement ||
13
+ ((current instanceof ShadowRoot) ? current.host : undefined);
14
+ }
15
+ return undefined;
16
+ }
17
+ //# sourceMappingURL=getShadowRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getShadowRoot.js","sourceRoot":"","sources":["../../src/utilities/getShadowRoot.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,OAAiB;IAC7C,IAAI,OAAO,GAAG,OAAO,CAAC;IAEtB,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,qBAAqB,EAAE,CAAC;YACjD,OAAO,OAAgC,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,YAAY,UAAU,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,aAAa;YAC7B,CAAC,CAAC,OAAO,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './getHtmlAttributes.js';
2
+ export * from './createNodeFromContent.js';
3
+ export * from './SmartOutput.js';
4
+ export * from './getShadowRoot.js';
5
+ export * from './toRawTextResult.js';
6
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/utilities/mod.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './getHtmlAttributes.js';
2
+ export * from './createNodeFromContent.js';
3
+ export * from './SmartOutput.js';
4
+ export * from './getShadowRoot.js';
5
+ export * from './toRawTextResult.js';
6
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/utilities/mod.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { RawTextResult } from '../types.js';
2
+ export declare function toRawTextResult(content: string, nodeIdx?: number): RawTextResult;
3
+ //# sourceMappingURL=toRawTextResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toRawTextResult.d.ts","sourceRoot":"","sources":["../../src/utilities/toRawTextResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7D,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,aAAa,CAwB3E"}
@@ -0,0 +1,22 @@
1
+ export function toRawTextResult(content, nodeIdx = 0) {
2
+ const lines = content.split('\n');
3
+ const rawTextMap = [];
4
+ let targetPos = 0;
5
+ let targetRow = 0;
6
+ for (const line of lines) {
7
+ rawTextMap.push({
8
+ nodeIdx,
9
+ targetRow,
10
+ targetCol: 0,
11
+ targetPos,
12
+ });
13
+ targetRow++;
14
+ targetPos += line.length + 1;
15
+ nodeIdx += line.length + 1;
16
+ }
17
+ return {
18
+ content,
19
+ rawTextMap,
20
+ };
21
+ }
22
+ //# sourceMappingURL=toRawTextResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toRawTextResult.js","sourceRoot":"","sources":["../../src/utilities/toRawTextResult.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAO,GAAG,CAAC;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAE9C,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,UAAU,CAAC,IAAI,CAAC;YACd,OAAO;YACP,SAAS;YACT,SAAS,EAAE,CAAC;YACZ,SAAS;SACV,CAAC,CAAC;QAEH,SAAS,EAAE,CAAC;QACZ,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7B,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO;QACP,UAAU;KACX,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kerebron/editor",
3
- "version": "0.4.27",
3
+ "version": "0.4.29",
4
4
  "license": "MIT",
5
5
  "module": "./esm/mod.js",
6
6
  "exports": {
@@ -30,7 +30,10 @@
30
30
  }
31
31
  },
32
32
  "scripts": {},
33
- "files": [],
33
+ "files": [
34
+ "esm",
35
+ "src"
36
+ ],
34
37
  "style": "assets/index.css",
35
38
  "dependencies": {
36
39
  "prosemirror-model": "1.25.3",