@aeriz/wysiwyg 1.0.4 → 2.0.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.
Files changed (132) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +82 -573
  3. package/angular/README.md +10 -4
  4. package/angular/aeriz-editor.directive.ts +40 -18
  5. package/dist/adapters/jquery.cjs +1 -1
  6. package/dist/adapters/jquery.js +14 -14
  7. package/dist/adapters/shared.cjs +1 -1
  8. package/dist/adapters/shared.js +59 -56
  9. package/dist/adapters/vue.cjs +1 -1
  10. package/dist/adapters/vue.js +64 -56
  11. package/dist/adapters/vue2.cjs +1 -1
  12. package/dist/adapters/vue2.js +24 -17
  13. package/dist/adapters/wc.cjs +1 -1
  14. package/dist/adapters/wc.js +108 -72
  15. package/dist/aeriz-wysiwyg-adapter.js +24 -32
  16. package/dist/aeriz-wysiwyg-adapter.min.js +1 -1
  17. package/dist/aeriz-wysiwyg-highlight.js +964 -0
  18. package/dist/aeriz-wysiwyg-highlight.min.js +5 -0
  19. package/dist/aeriz-wysiwyg-jquery.js +25 -32
  20. package/dist/aeriz-wysiwyg-jquery.min.js +1 -1
  21. package/dist/aeriz-wysiwyg-wc.js +80 -43
  22. package/dist/aeriz-wysiwyg-wc.min.js +1 -1
  23. package/dist/aeriz-wysiwyg.cjs +3688 -1757
  24. package/dist/aeriz-wysiwyg.css +2104 -1904
  25. package/dist/aeriz-wysiwyg.esm.js +3688 -1757
  26. package/dist/aeriz-wysiwyg.esm.min.js +4904 -3538
  27. package/dist/aeriz-wysiwyg.js +3688 -1757
  28. package/dist/aeriz-wysiwyg.min.cjs +53 -40
  29. package/dist/aeriz-wysiwyg.min.css +1 -1
  30. package/dist/aeriz-wysiwyg.min.js +53 -40
  31. package/dist/highlight.cjs +5 -0
  32. package/dist/highlight.js +895 -0
  33. package/dist/server.cjs +24 -19
  34. package/dist/server.js +612 -251
  35. package/dist-types/adapters/shared.d.ts +0 -8
  36. package/dist-types/adapters/shared.d.ts.map +1 -1
  37. package/dist-types/adapters/vue.d.ts +62 -21
  38. package/dist-types/adapters/vue.d.ts.map +1 -1
  39. package/dist-types/adapters/vue2.d.ts +33 -14
  40. package/dist-types/adapters/vue2.d.ts.map +1 -1
  41. package/dist-types/adapters/wc.d.ts +15 -6
  42. package/dist-types/adapters/wc.d.ts.map +1 -1
  43. package/dist-types/cjs/adapters/shared.d.cts +0 -8
  44. package/dist-types/cjs/adapters/vue.d.cts +62 -21
  45. package/dist-types/cjs/adapters/vue2.d.cts +33 -14
  46. package/dist-types/cjs/adapters/wc.d.cts +15 -6
  47. package/dist-types/cjs/core/AerizEditor.d.cts +238 -48
  48. package/dist-types/cjs/core/AerizViewer.d.cts +7 -0
  49. package/dist-types/cjs/core/block-meta.d.cts +40 -0
  50. package/dist-types/cjs/core/block-tracker.d.cts +64 -0
  51. package/dist-types/cjs/core/blocks.d.cts +39 -4
  52. package/dist-types/cjs/core/fonts.d.cts +33 -46
  53. package/dist-types/cjs/core/highlight.d.cts +2 -0
  54. package/dist-types/cjs/core/history.d.cts +28 -10
  55. package/dist-types/cjs/core/html-to-blocks.d.cts +10 -0
  56. package/dist-types/cjs/core/i18n.d.cts +44 -0
  57. package/dist-types/cjs/core/import-html.d.cts +0 -13
  58. package/dist-types/cjs/core/insert-fragment.d.cts +21 -0
  59. package/dist-types/cjs/core/paste-clean.d.cts +36 -0
  60. package/dist-types/cjs/core/sanitize-dom.d.cts +21 -0
  61. package/dist-types/cjs/core/sanitize-html.d.cts +8 -0
  62. package/dist-types/cjs/core/sanitize-policy.d.cts +22 -0
  63. package/dist-types/cjs/core/selection.d.cts +5 -0
  64. package/dist-types/cjs/core/table-grid.d.cts +87 -0
  65. package/dist-types/cjs/core/table-ops.d.cts +2 -22
  66. package/dist-types/cjs/highlight/index.d.cts +5 -0
  67. package/dist-types/cjs/index.d.cts +19 -11
  68. package/dist-types/cjs/server/index.d.cts +4 -5
  69. package/dist-types/cjs/types/index.d.cts +63 -15
  70. package/dist-types/cjs/ui/Toolbar.d.cts +10 -0
  71. package/dist-types/cjs/ui/doc-tools.d.cts +58 -0
  72. package/dist-types/cjs/ui/popovers.d.cts +14 -25
  73. package/dist-types/core/AerizEditor.d.ts +238 -48
  74. package/dist-types/core/AerizEditor.d.ts.map +1 -1
  75. package/dist-types/core/AerizViewer.d.ts +7 -0
  76. package/dist-types/core/AerizViewer.d.ts.map +1 -1
  77. package/dist-types/core/block-meta.d.ts +40 -0
  78. package/dist-types/core/block-meta.d.ts.map +1 -1
  79. package/dist-types/core/block-policy.d.ts.map +1 -1
  80. package/dist-types/core/block-tracker.d.ts +64 -0
  81. package/dist-types/core/block-tracker.d.ts.map +1 -0
  82. package/dist-types/core/blocks.d.ts +39 -4
  83. package/dist-types/core/blocks.d.ts.map +1 -1
  84. package/dist-types/core/fonts.d.ts +33 -46
  85. package/dist-types/core/fonts.d.ts.map +1 -1
  86. package/dist-types/core/highlight.d.ts +2 -0
  87. package/dist-types/core/highlight.d.ts.map +1 -1
  88. package/dist-types/core/history.d.ts +28 -10
  89. package/dist-types/core/history.d.ts.map +1 -1
  90. package/dist-types/core/html-mini.d.ts.map +1 -1
  91. package/dist-types/core/html-to-blocks.d.ts +10 -0
  92. package/dist-types/core/html-to-blocks.d.ts.map +1 -0
  93. package/dist-types/core/i18n.d.ts +44 -0
  94. package/dist-types/core/i18n.d.ts.map +1 -1
  95. package/dist-types/core/import-html.d.ts +0 -13
  96. package/dist-types/core/import-html.d.ts.map +1 -1
  97. package/dist-types/core/import-markdown.d.ts.map +1 -1
  98. package/dist-types/core/insert-fragment.d.ts +21 -0
  99. package/dist-types/core/insert-fragment.d.ts.map +1 -0
  100. package/dist-types/core/markdown-export.d.ts.map +1 -1
  101. package/dist-types/core/paste-clean.d.ts +36 -0
  102. package/dist-types/core/paste-clean.d.ts.map +1 -0
  103. package/dist-types/core/render-string.d.ts.map +1 -1
  104. package/dist-types/core/sanitize-dom.d.ts +21 -0
  105. package/dist-types/core/sanitize-dom.d.ts.map +1 -0
  106. package/dist-types/core/sanitize-html.d.ts +8 -0
  107. package/dist-types/core/sanitize-html.d.ts.map +1 -0
  108. package/dist-types/core/sanitize-policy.d.ts +22 -0
  109. package/dist-types/core/sanitize-policy.d.ts.map +1 -0
  110. package/dist-types/core/selection.d.ts +5 -0
  111. package/dist-types/core/selection.d.ts.map +1 -1
  112. package/dist-types/core/snapshot.d.ts.map +1 -1
  113. package/dist-types/core/table-grid.d.ts +87 -0
  114. package/dist-types/core/table-grid.d.ts.map +1 -0
  115. package/dist-types/core/table-ops.d.ts +2 -22
  116. package/dist-types/core/table-ops.d.ts.map +1 -1
  117. package/dist-types/highlight/index.d.ts +5 -0
  118. package/dist-types/highlight/index.d.ts.map +1 -0
  119. package/dist-types/index.d.ts +19 -11
  120. package/dist-types/index.d.ts.map +1 -1
  121. package/dist-types/server/index.d.ts +4 -5
  122. package/dist-types/server/index.d.ts.map +1 -1
  123. package/dist-types/types/index.d.ts +63 -15
  124. package/dist-types/types/index.d.ts.map +1 -1
  125. package/dist-types/ui/Toolbar.d.ts +10 -0
  126. package/dist-types/ui/Toolbar.d.ts.map +1 -1
  127. package/dist-types/ui/doc-tools.d.ts +58 -0
  128. package/dist-types/ui/doc-tools.d.ts.map +1 -0
  129. package/dist-types/ui/icons.d.ts.map +1 -1
  130. package/dist-types/ui/popovers.d.ts +14 -25
  131. package/dist-types/ui/popovers.d.ts.map +1 -1
  132. package/package.json +70 -5
@@ -63,14 +63,6 @@ export interface AerizViewerController {
63
63
  update(next: AerizViewerProps): void;
64
64
  destroy(): void;
65
65
  }
66
- /**
67
- * HTML 문자열을 `BlockSnapshot[]` 로 변환한다.
68
- *
69
- * `AerizViewer` 는 상태 모델만 받으므로, HTML 을 들고 있는 호출자를 위한
70
- * 다리 역할을 한다. 에디터 본문과 같은 정규화 경로(`normalizeContent` →
71
- * `listBlocks` → `serializeBlocks`) 를 타므로 결과 트리도 동일하다.
72
- */
73
- export declare function htmlToBlocks(html: string): BlockSnapshot[];
74
66
  /**
75
67
  * 프레임워크 중립 에디터 컨트롤러를 만든다.
76
68
  *
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,WAAW,EACX,WAAW,EAMZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,UAAU,CAAC;IACnD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7C,0CAA0C;IAC1C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,2BAA2B;IAC3B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED,sBAAsB;AACtB,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;IACtE,iCAAiC;IACjC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,0CAA0C;IAC1C,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAS1D;AA4CD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,gBAAgB,GAC7B,qBAAqB,CA2HvB;AAgBD,6BAA6B;AAC7B,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,gBAAgB,GAC7B,qBAAqB,CAwCvB"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,WAAW,EACX,WAAW,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,UAAU,CAAC;IACnD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7C,0CAA0C;IAC1C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,2BAA2B;IAC3B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED,sBAAsB;AACtB,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;IACtE,iCAAiC;IACjC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,0CAA0C;IAC1C,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;CACjB;AA6DD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,gBAAgB,GAC7B,qBAAqB,CAyHvB;AAgBD,6BAA6B;AAC7B,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,gBAAgB,GAC7B,qBAAqB,CAwCvB"}
@@ -1,9 +1,8 @@
1
1
  import type { PropType } from 'vue';
2
- import type { AerizEditor as AerizEditorCore, AerizViewer as AerizViewerCore, BlockSnapshot, EditorState, ToolbarConfig } from '@aeriz/wysiwyg';
2
+ import type { AerizEditor as AerizEditorCore, AerizViewer as AerizViewerCore, BlockSnapshot, EditorErrorCode, EditorState, CodeHighlighter, FontFamily, ToolbarConfig, UploadOptions } from '@aeriz/wysiwyg';
3
3
  type Theme = 'light' | 'dark';
4
4
  type Locale = 'en' | 'ko' | 'ja' | 'zh';
5
5
  type HtmlStyles = 'inline' | 'class';
6
- type UploadFn = (file: File) => Promise<string>;
7
6
  export declare const AerizEditor: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
8
7
  /** `v-model` 바인딩 값 (HTML). */
9
8
  modelValue: {
@@ -37,20 +36,36 @@ export declare const AerizEditor: import("vue").DefineComponent<import("vue").Ex
37
36
  type: PropType<HtmlStyles>;
38
37
  default: undefined;
39
38
  };
40
- onImageUpload: {
41
- type: PropType<UploadFn>;
39
+ statusBar: {
40
+ type: BooleanConstructor;
42
41
  default: undefined;
43
42
  };
44
- imageUploadUrl: {
43
+ ariaLabel: {
45
44
  type: StringConstructor;
46
45
  default: undefined;
47
46
  };
48
- onFileUpload: {
49
- type: PropType<UploadFn>;
47
+ readOnly: {
48
+ type: BooleanConstructor;
50
49
  default: undefined;
51
50
  };
52
- fileUploadUrl: {
53
- type: StringConstructor;
51
+ height: {
52
+ type: (NumberConstructor | StringConstructor)[];
53
+ default: undefined;
54
+ };
55
+ upload: {
56
+ type: PropType<UploadOptions>;
57
+ default: undefined;
58
+ };
59
+ fonts: {
60
+ type: PropType<FontFamily[]>;
61
+ default: undefined;
62
+ };
63
+ highlighter: {
64
+ type: PropType<CodeHighlighter>;
65
+ default: undefined;
66
+ };
67
+ fontSizes: {
68
+ type: PropType<number[]>;
54
69
  default: undefined;
55
70
  };
56
71
  }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -60,6 +75,9 @@ export declare const AerizEditor: import("vue").DefineComponent<import("vue").Ex
60
75
  change: (html: string) => boolean;
61
76
  'state-change': (_state: EditorState) => true;
62
77
  ready: (_editor: AerizEditorCore) => true;
78
+ error: (_error: Error, _context: {
79
+ code: EditorErrorCode;
80
+ }) => true;
63
81
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
64
82
  /** `v-model` 바인딩 값 (HTML). */
65
83
  modelValue: {
@@ -93,38 +111,61 @@ export declare const AerizEditor: import("vue").DefineComponent<import("vue").Ex
93
111
  type: PropType<HtmlStyles>;
94
112
  default: undefined;
95
113
  };
96
- onImageUpload: {
97
- type: PropType<UploadFn>;
114
+ statusBar: {
115
+ type: BooleanConstructor;
98
116
  default: undefined;
99
117
  };
100
- imageUploadUrl: {
118
+ ariaLabel: {
101
119
  type: StringConstructor;
102
120
  default: undefined;
103
121
  };
104
- onFileUpload: {
105
- type: PropType<UploadFn>;
122
+ readOnly: {
123
+ type: BooleanConstructor;
106
124
  default: undefined;
107
125
  };
108
- fileUploadUrl: {
109
- type: StringConstructor;
126
+ height: {
127
+ type: (NumberConstructor | StringConstructor)[];
128
+ default: undefined;
129
+ };
130
+ upload: {
131
+ type: PropType<UploadOptions>;
132
+ default: undefined;
133
+ };
134
+ fonts: {
135
+ type: PropType<FontFamily[]>;
136
+ default: undefined;
137
+ };
138
+ highlighter: {
139
+ type: PropType<CodeHighlighter>;
140
+ default: undefined;
141
+ };
142
+ fontSizes: {
143
+ type: PropType<number[]>;
110
144
  default: undefined;
111
145
  };
112
146
  }>> & Readonly<{
147
+ onError?: (_error: Error, _context: {
148
+ code: EditorErrorCode;
149
+ }) => any;
113
150
  onChange?: (html: string) => any;
114
151
  "onUpdate:modelValue"?: (html: string) => any;
115
152
  "onState-change"?: (_state: EditorState) => any;
116
153
  onReady?: (_editor: AerizEditorCore) => any;
117
154
  }>, {
155
+ upload: UploadOptions;
156
+ height: string | number;
118
157
  toolbar: false | ToolbarConfig;
119
158
  theme: Theme;
159
+ fonts: FontFamily[];
120
160
  placeholder: string;
121
161
  initialHTML: string;
162
+ statusBar: boolean;
163
+ ariaLabel: string;
122
164
  locale: Locale;
123
165
  htmlStyles: HtmlStyles;
124
- onImageUpload: UploadFn;
125
- imageUploadUrl: string;
126
- onFileUpload: UploadFn;
127
- fileUploadUrl: string;
166
+ readOnly: boolean;
167
+ highlighter: CodeHighlighter;
168
+ fontSizes: number[];
128
169
  modelValue: string;
129
170
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
130
171
  export declare const AerizViewer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
@@ -176,8 +217,8 @@ export declare const AerizViewer: import("vue").DefineComponent<import("vue").Ex
176
217
  }>, {
177
218
  html: string;
178
219
  theme: Theme;
179
- htmlStyles: HtmlStyles;
180
220
  blocks: BlockSnapshot[];
221
+ htmlStyles: HtmlStyles;
181
222
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
182
223
  /** `app.use(AerizWysiwygPlugin)` 로 두 컴포넌트를 전역 등록한다. */
183
224
  export declare const AerizWysiwygPlugin: {
@@ -1 +1 @@
1
- {"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../../src/adapters/vue.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,EACV,WAAW,IAAI,eAAe,EAC9B,WAAW,IAAI,eAAe,EAC9B,aAAa,EACb,WAAW,EACX,aAAa,EACd,MAAM,gBAAgB,CAAC;AASxB,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAC9B,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACxC,KAAK,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AACrC,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEhD,eAAO,MAAM,WAAW;IAIpB,8BAA8B;;;;;IAE9B,gCAAgC;;;;;;;;;IAGhC,8BAA8B;;cAED,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC;;;;cAGnC,QAAQ,CAAC,KAAK,CAAC;;;;cACd,QAAQ,CAAC,MAAM,CAAC;;;IAC1C,qDAAqD;;cACvB,QAAQ,CAAC,UAAU,CAAC;;;;cACf,QAAQ,CAAC,QAAQ,CAAC;;;;;;;;cAEnB,QAAQ,CAAC,QAAQ,CAAC;;;;;;;;;;gCAKxB,MAAM;mBACnB,MAAM;6BACI,WAAW;qBACnB,eAAe;;IAxBhC,8BAA8B;;;;;IAE9B,gCAAgC;;;;;;;;;IAGhC,8BAA8B;;cAED,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC;;;;cAGnC,QAAQ,CAAC,KAAK,CAAC;;;;cACd,QAAQ,CAAC,MAAM,CAAC;;;IAC1C,qDAAqD;;cACvB,QAAQ,CAAC,UAAU,CAAC;;;;cACf,QAAQ,CAAC,QAAQ,CAAC;;;;;;;;cAEnB,QAAQ,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;4EAuEtD,CAAC;AAEH,eAAO,MAAM,WAAW;IAIpB,iCAAiC;;cAEhB,QAAQ,CAAC,aAAa,EAAE,CAAC;;;IAG1C,+BAA+B;;;;;;cAEN,QAAQ,CAAC,KAAK,CAAC;;;IACxC,wCAAwC;;cACV,QAAQ,CAAC,UAAU,CAAC;;;;;;qBAIjC,eAAe;;IAbhC,iCAAiC;;cAEhB,QAAQ,CAAC,aAAa,EAAE,CAAC;;;IAG1C,+BAA+B;;;;;;cAEN,QAAQ,CAAC,KAAK,CAAC;;;IACxC,wCAAwC;;cACV,QAAQ,CAAC,UAAU,CAAC;;;;;;;;;;4EA8CpD,CAAC;AAEH,uDAAuD;AACvD,eAAO,MAAM,kBAAkB;iBAChB;QAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI;CAIvE,CAAC;AAEF,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../../src/adapters/vue.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,EACV,WAAW,IAAI,eAAe,EAC9B,WAAW,IAAI,eAAe,EAC9B,aAAa,EACb,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,EACV,aAAa,EACb,aAAa,EACd,MAAM,gBAAgB,CAAC;AASxB,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAC9B,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACxC,KAAK,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErC,eAAO,MAAM,WAAW;IAIpB,8BAA8B;;;;;IAE9B,gCAAgC;;;;;;;;;IAGhC,8BAA8B;;cAED,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC;;;;cAGnC,QAAQ,CAAC,KAAK,CAAC;;;;cACd,QAAQ,CAAC,MAAM,CAAC;;;IAC1C,qDAAqD;;cACvB,QAAQ,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;cAKxB,QAAQ,CAAC,aAAa,CAAC;;;;cACzB,QAAQ,CAAC,UAAU,EAAE,CAAC;;;;cACf,QAAQ,CAAC,eAAe,CAAC;;;;cAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC;;;;;;gCAIlB,MAAM;mBACnB,MAAM;6BACI,WAAW;qBACnB,eAAe;oBAChB,KAAK,YAAY;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE;;IA7B1D,8BAA8B;;;;;IAE9B,gCAAgC;;;;;;;;;IAGhC,8BAA8B;;cAED,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC;;;;cAGnC,QAAQ,CAAC,KAAK,CAAC;;;;cACd,QAAQ,CAAC,MAAM,CAAC;;;IAC1C,qDAAqD;;cACvB,QAAQ,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;cAKxB,QAAQ,CAAC,aAAa,CAAC;;;;cACzB,QAAQ,CAAC,UAAU,EAAE,CAAC;;;;cACf,QAAQ,CAAC,eAAe,CAAC;;;;cAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC;;;;;cAQL,eAAe;;;;;;;;;;;;;;;;;;;;;;4EA2D1D,CAAC;AAEH,eAAO,MAAM,WAAW;IAIpB,iCAAiC;;cAEhB,QAAQ,CAAC,aAAa,EAAE,CAAC;;;IAG1C,+BAA+B;;;;;;cAEN,QAAQ,CAAC,KAAK,CAAC;;;IACxC,wCAAwC;;cACV,QAAQ,CAAC,UAAU,CAAC;;;;;;qBAIjC,eAAe;;IAbhC,iCAAiC;;cAEhB,QAAQ,CAAC,aAAa,EAAE,CAAC;;;IAG1C,+BAA+B;;;;;;cAEN,QAAQ,CAAC,KAAK,CAAC;;;IACxC,wCAAwC;;cACV,QAAQ,CAAC,UAAU,CAAC;;;;;;;;;;4EA8CpD,CAAC;AAEH,uDAAuD;AACvD,eAAO,MAAM,kBAAkB;iBAChB;QAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI;CAIvE,CAAC;AAEF,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
@@ -18,12 +18,11 @@
18
18
  * template: '<AerizEditor v-model="html" theme="dark" />',
19
19
  * };
20
20
  */
21
- import type { AerizEditor as AerizEditorCore, AerizViewer as AerizViewerCore, BlockSnapshot, ToolbarConfig } from '@aeriz/wysiwyg';
21
+ import type { AerizEditor as AerizEditorCore, AerizViewer as AerizViewerCore, BlockSnapshot, CodeHighlighter, FontFamily, ToolbarConfig, UploadOptions } from '@aeriz/wysiwyg';
22
22
  import type { AerizEditorController, AerizEditorProps, AerizViewerController, AerizViewerProps } from './shared.js';
23
23
  type Theme = 'light' | 'dark';
24
24
  type Locale = 'en' | 'ko' | 'ja' | 'zh';
25
25
  type HtmlStyles = 'inline' | 'class';
26
- type UploadFn = (file: File) => Promise<string>;
27
26
  /**
28
27
  * Vue 2 런타임이 컴포넌트 메서드에 주입하는 `this` 의 최소 형태.
29
28
  *
@@ -49,10 +48,14 @@ interface EditorProps {
49
48
  theme?: Theme;
50
49
  locale?: Locale;
51
50
  htmlStyles?: HtmlStyles;
52
- onImageUpload?: UploadFn;
53
- imageUploadUrl?: string;
54
- onFileUpload?: UploadFn;
55
- fileUploadUrl?: string;
51
+ statusBar?: boolean;
52
+ ariaLabel?: string;
53
+ readOnly?: boolean;
54
+ height?: number | string;
55
+ upload?: UploadOptions;
56
+ fonts?: FontFamily[];
57
+ fontSizes?: number[];
58
+ highlighter?: CodeHighlighter;
56
59
  }
57
60
  interface EditorHost extends Vue2Host<EditorProps> {
58
61
  aerizController: AerizEditorController | null;
@@ -85,7 +88,7 @@ export declare const AerizEditor: {
85
88
  default: undefined;
86
89
  };
87
90
  toolbar: {
88
- type: (ObjectConstructor | BooleanConstructor)[];
91
+ type: (BooleanConstructor | ObjectConstructor)[];
89
92
  default: undefined;
90
93
  };
91
94
  theme: {
@@ -101,20 +104,36 @@ export declare const AerizEditor: {
101
104
  type: StringConstructor;
102
105
  default: undefined;
103
106
  };
104
- onImageUpload: {
105
- type: FunctionConstructor;
107
+ statusBar: {
108
+ type: BooleanConstructor;
106
109
  default: undefined;
107
110
  };
108
- imageUploadUrl: {
111
+ ariaLabel: {
109
112
  type: StringConstructor;
110
113
  default: undefined;
111
114
  };
112
- onFileUpload: {
113
- type: FunctionConstructor;
115
+ readOnly: {
116
+ type: BooleanConstructor;
114
117
  default: undefined;
115
118
  };
116
- fileUploadUrl: {
117
- type: StringConstructor;
119
+ height: {
120
+ type: (NumberConstructor | StringConstructor)[];
121
+ default: undefined;
122
+ };
123
+ upload: {
124
+ type: ObjectConstructor;
125
+ default: undefined;
126
+ };
127
+ fonts: {
128
+ type: ArrayConstructor;
129
+ default: undefined;
130
+ };
131
+ highlighter: {
132
+ type: ObjectConstructor;
133
+ default: undefined;
134
+ };
135
+ fontSizes: {
136
+ type: ArrayConstructor;
118
137
  default: undefined;
119
138
  };
120
139
  };
@@ -1 +1 @@
1
- {"version":3,"file":"vue2.d.ts","sourceRoot":"","sources":["../../src/adapters/vue2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vue2.d.ts","sourceRoot":"","sources":["../../src/adapters/vue2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EACV,WAAW,IAAI,eAAe,EAC9B,WAAW,IAAI,eAAe,EAC9B,aAAa,EAGb,eAAe,EACf,UAAU,EACV,aAAa,EACb,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAGlB,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAC9B,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACxC,KAAK,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErC;;;;;GAKG;AACH,UAAU,QAAQ,CAAC,CAAC;IAClB,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/C,MAAM,CACJ,MAAM,EAAE,MAAM,OAAO,EACrB,EAAE,EAAE,MAAM,IAAI,EACd,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAChD,MAAM,IAAI,CAAC;CACf;AAED,wDAAwD;AACxD,KAAK,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;AAE9C,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,UAAU,UAAW,SAAQ,QAAQ,CAAC,WAAW,CAAC;IAChD,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC9C,UAAU,IAAI,gBAAgB,CAAC;CAChC;AAED,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,UAAU,UAAW,SAAQ,QAAQ,CAAC,WAAW,CAAC;IAChD,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC9C,UAAU,IAAI,gBAAgB,CAAC;CAChC;AAiBD,eAAO,MAAM,WAAW;;;QAIpB,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;QAO9B,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAY/C;QAAE,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAA;KAAE;;yBAOtC,UAAU,GAAG,gBAAgB;QAkB9C,uDAAuD;wBACvC,UAAU,GAAG,eAAe,GAAG,IAAI;sBAIrC,UAAU,GAAG,MAAM;sBAInB,UAAU,QAAQ,MAAM,GAAG,IAAI;oBAIjC,UAAU,GAAG,IAAI;;kBAKjB,UAAU,GAAG,IAAI;wBAKX,UAAU,GAAG,IAAI;iBAKxB,UAAU,KAAK,aAAa,GAAG,OAAO;CAGpD,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;QAOpB,wCAAwC;;;;;;YAIlC;QAAE,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAA;KAAE;;yBAKtC,UAAU,GAAG,gBAAgB;wBAY9B,UAAU,GAAG,eAAe,GAAG,IAAI;;kBAKvC,UAAU,GAAG,IAAI;wBAKX,UAAU,GAAG,IAAI;iBAKxB,UAAU,KAAK,aAAa,GAAG,OAAO;CAGpD,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,kBAAkB;iBAChB;QAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI;CAIvE,CAAC;AAEF,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
@@ -22,8 +22,7 @@
22
22
  * el.value = '<p>안녕하세요</p>';
23
23
  * </script>
24
24
  */
25
- import type { AerizEditor, AerizViewer, BlockSnapshot } from '@aeriz/wysiwyg';
26
- type UploadFn = (file: File) => Promise<string>;
25
+ import type { AerizEditor, AerizViewer, BlockSnapshot, CodeHighlighter, FontFamily, UploadOptions } from '@aeriz/wysiwyg';
27
26
  /**
28
27
  * `<aeriz-editor>`.
29
28
  *
@@ -35,9 +34,20 @@ export declare class AerizEditorElement extends HTMLElement {
35
34
  static get observedAttributes(): string[];
36
35
  /** 폼 연동 대상임을 선언. 미지원 브라우저는 이 필드를 무시한다. */
37
36
  static formAssociated: boolean;
38
- /** 프로퍼티로 설정된 업로드 핸들러. 속성으로는 표현할 수 없다. */
39
- onImageUpload: UploadFn | undefined;
40
- onFileUpload: UploadFn | undefined;
37
+ private uploadValue;
38
+ private fontsValue;
39
+ private highlighterValue;
40
+ private fontSizesValue;
41
+ /** 올리기 설정. `upload-url` 속성보다 우선한다 (헤더 · 직접 올리기가 필요할 때). */
42
+ get upload(): UploadOptions | undefined;
43
+ set upload(value: UploadOptions | undefined);
44
+ /** 코드 블록 색칠기 (`@aeriz/wysiwyg/highlight` 의 `highlighter`). */
45
+ get highlighter(): CodeHighlighter | undefined;
46
+ set highlighter(value: CodeHighlighter | undefined);
47
+ get fonts(): FontFamily[] | undefined;
48
+ set fonts(value: FontFamily[] | undefined);
49
+ get fontSizes(): number[] | undefined;
50
+ set fontSizes(value: number[] | undefined);
41
51
  private controller;
42
52
  private internals;
43
53
  /**
@@ -92,5 +102,4 @@ export declare class AerizViewerElement extends HTMLElement {
92
102
  * @param prefix 태그 접두사. 기본 `'aeriz'` → `<aeriz-editor>` / `<aeriz-viewer>`
93
103
  */
94
104
  export declare function defineAerizElements(prefix?: string): void;
95
- export {};
96
105
  //# sourceMappingURL=wc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wc.d.ts","sourceRoot":"","sources":["../../src/adapters/wc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAW7F,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAqEhD;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAWxC;IAED,0CAA0C;IAC1C,MAAM,CAAC,cAAc,UAAQ;IAE7B,yCAAyC;IACzC,aAAa,EAAE,QAAQ,GAAG,SAAS,CAAa;IAChD,YAAY,EAAE,QAAQ,GAAG,SAAS,CAAa;IAE/C,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,SAAS,CAA8B;IAC/C;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAiC;IACrD,qDAAqD;IACrD,OAAO,CAAC,WAAW,CAAM;;IAOzB,iCAAiC;IACjC,IAAI,KAAK,IAAI,MAAM,CAGlB;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAGrB;IAED,+BAA+B;IAC/B,IAAI,MAAM,IAAI,WAAW,GAAG,IAAI,CAE/B;IAED,iBAAiB;IACjB,SAAS,IAAI,aAAa,EAAE;IAI5B,uDAAuD;IAC9C,KAAK,IAAI,IAAI;IAItB,iBAAiB,IAAI,IAAI;IAkBzB,oBAAoB,IAAI,IAAI;IAK5B,wBAAwB,CACtB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,IAAI;IAQP;;;OAGG;IACH,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IA2ClB,OAAO,CAAC,aAAa;CAItB;AAED,oCAAoC;AACpC,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,aAAa,CAA0C;IAE/D,uCAAuC;IACvC,IAAI,MAAM,IAAI,aAAa,EAAE,CAE5B;IAED,IAAI,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,EAG/B;IAED,IAAI,MAAM,IAAI,WAAW,GAAG,IAAI,CAE/B;IAED,iBAAiB,IAAI,IAAI;IAWzB,oBAAoB,IAAI,IAAI;IAK5B,wBAAwB,IAAI,IAAI;IAIhC,OAAO,CAAC,UAAU;CASnB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,SAAU,GAAG,IAAI,CAU1D"}
1
+ {"version":3,"file":"wc.d.ts","sourceRoot":"","sources":["../../src/adapters/wc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,aAAa,EAEb,eAAe,EACf,UAAU,EAEV,aAAa,EACd,MAAM,gBAAgB,CAAC;AA+ExB;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAcxC;IAED,0CAA0C;IAC1C,MAAM,CAAC,cAAc,UAAQ;IAG7B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,cAAc,CAAuB;IAE7C,2DAA2D;IAC3D,IAAI,MAAM,IAAI,aAAa,GAAG,SAAS,CAEtC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,EAG1C;IAED,8DAA8D;IAC9D,IAAI,WAAW,IAAI,eAAe,GAAG,SAAS,CAE7C;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,EAGjD;IAED,IAAI,KAAK,IAAI,UAAU,EAAE,GAAG,SAAS,CAEpC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,EAGxC;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,GAAG,SAAS,CAEpC;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAGxC;IAED,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,SAAS,CAA8B;IAC/C;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAiC;IACrD,qDAAqD;IACrD,OAAO,CAAC,WAAW,CAAM;;IAOzB,iCAAiC;IACjC,IAAI,KAAK,IAAI,MAAM,CAGlB;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAGrB;IAED,+BAA+B;IAC/B,IAAI,MAAM,IAAI,WAAW,GAAG,IAAI,CAE/B;IAED,iBAAiB;IACjB,SAAS,IAAI,aAAa,EAAE;IAI5B,uDAAuD;IAC9C,KAAK,IAAI,IAAI;IAItB,iBAAiB,IAAI,IAAI;IAkBzB,oBAAoB,IAAI,IAAI;IAK5B,wBAAwB,CACtB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,IAAI;IAQP;;;OAGG;IACH,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAsDlB,OAAO,CAAC,aAAa;CAItB;AAED,oCAAoC;AACpC,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,aAAa,CAA0C;IAE/D,uCAAuC;IACvC,IAAI,MAAM,IAAI,aAAa,EAAE,CAE5B;IAED,IAAI,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,EAG/B;IAED,IAAI,MAAM,IAAI,WAAW,GAAG,IAAI,CAE/B;IAED,iBAAiB,IAAI,IAAI;IAWzB,oBAAoB,IAAI,IAAI;IAK5B,wBAAwB,IAAI,IAAI;IAIhC,OAAO,CAAC,UAAU;CASnB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,SAAU,GAAG,IAAI,CAU1D"}
@@ -63,14 +63,6 @@ export interface AerizViewerController {
63
63
  update(next: AerizViewerProps): void;
64
64
  destroy(): void;
65
65
  }
66
- /**
67
- * HTML 문자열을 `BlockSnapshot[]` 로 변환한다.
68
- *
69
- * `AerizViewer` 는 상태 모델만 받으므로, HTML 을 들고 있는 호출자를 위한
70
- * 다리 역할을 한다. 에디터 본문과 같은 정규화 경로(`normalizeContent` →
71
- * `listBlocks` → `serializeBlocks`) 를 타므로 결과 트리도 동일하다.
72
- */
73
- export declare function htmlToBlocks(html: string): BlockSnapshot[];
74
66
  /**
75
67
  * 프레임워크 중립 에디터 컨트롤러를 만든다.
76
68
  *
@@ -1,9 +1,8 @@
1
1
  import type { PropType } from 'vue';
2
- import type { AerizEditor as AerizEditorCore, AerizViewer as AerizViewerCore, BlockSnapshot, EditorState, ToolbarConfig } from '@aeriz/wysiwyg';
2
+ import type { AerizEditor as AerizEditorCore, AerizViewer as AerizViewerCore, BlockSnapshot, EditorErrorCode, EditorState, CodeHighlighter, FontFamily, ToolbarConfig, UploadOptions } from '@aeriz/wysiwyg';
3
3
  type Theme = 'light' | 'dark';
4
4
  type Locale = 'en' | 'ko' | 'ja' | 'zh';
5
5
  type HtmlStyles = 'inline' | 'class';
6
- type UploadFn = (file: File) => Promise<string>;
7
6
  export declare const AerizEditor: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
8
7
  /** `v-model` 바인딩 값 (HTML). */
9
8
  modelValue: {
@@ -37,20 +36,36 @@ export declare const AerizEditor: import("vue").DefineComponent<import("vue").Ex
37
36
  type: PropType<HtmlStyles>;
38
37
  default: undefined;
39
38
  };
40
- onImageUpload: {
41
- type: PropType<UploadFn>;
39
+ statusBar: {
40
+ type: BooleanConstructor;
42
41
  default: undefined;
43
42
  };
44
- imageUploadUrl: {
43
+ ariaLabel: {
45
44
  type: StringConstructor;
46
45
  default: undefined;
47
46
  };
48
- onFileUpload: {
49
- type: PropType<UploadFn>;
47
+ readOnly: {
48
+ type: BooleanConstructor;
50
49
  default: undefined;
51
50
  };
52
- fileUploadUrl: {
53
- type: StringConstructor;
51
+ height: {
52
+ type: (NumberConstructor | StringConstructor)[];
53
+ default: undefined;
54
+ };
55
+ upload: {
56
+ type: PropType<UploadOptions>;
57
+ default: undefined;
58
+ };
59
+ fonts: {
60
+ type: PropType<FontFamily[]>;
61
+ default: undefined;
62
+ };
63
+ highlighter: {
64
+ type: PropType<CodeHighlighter>;
65
+ default: undefined;
66
+ };
67
+ fontSizes: {
68
+ type: PropType<number[]>;
54
69
  default: undefined;
55
70
  };
56
71
  }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -60,6 +75,9 @@ export declare const AerizEditor: import("vue").DefineComponent<import("vue").Ex
60
75
  change: (html: string) => boolean;
61
76
  'state-change': (_state: EditorState) => true;
62
77
  ready: (_editor: AerizEditorCore) => true;
78
+ error: (_error: Error, _context: {
79
+ code: EditorErrorCode;
80
+ }) => true;
63
81
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
64
82
  /** `v-model` 바인딩 값 (HTML). */
65
83
  modelValue: {
@@ -93,38 +111,61 @@ export declare const AerizEditor: import("vue").DefineComponent<import("vue").Ex
93
111
  type: PropType<HtmlStyles>;
94
112
  default: undefined;
95
113
  };
96
- onImageUpload: {
97
- type: PropType<UploadFn>;
114
+ statusBar: {
115
+ type: BooleanConstructor;
98
116
  default: undefined;
99
117
  };
100
- imageUploadUrl: {
118
+ ariaLabel: {
101
119
  type: StringConstructor;
102
120
  default: undefined;
103
121
  };
104
- onFileUpload: {
105
- type: PropType<UploadFn>;
122
+ readOnly: {
123
+ type: BooleanConstructor;
106
124
  default: undefined;
107
125
  };
108
- fileUploadUrl: {
109
- type: StringConstructor;
126
+ height: {
127
+ type: (NumberConstructor | StringConstructor)[];
128
+ default: undefined;
129
+ };
130
+ upload: {
131
+ type: PropType<UploadOptions>;
132
+ default: undefined;
133
+ };
134
+ fonts: {
135
+ type: PropType<FontFamily[]>;
136
+ default: undefined;
137
+ };
138
+ highlighter: {
139
+ type: PropType<CodeHighlighter>;
140
+ default: undefined;
141
+ };
142
+ fontSizes: {
143
+ type: PropType<number[]>;
110
144
  default: undefined;
111
145
  };
112
146
  }>> & Readonly<{
147
+ onError?: (_error: Error, _context: {
148
+ code: EditorErrorCode;
149
+ }) => any;
113
150
  onChange?: (html: string) => any;
114
151
  "onUpdate:modelValue"?: (html: string) => any;
115
152
  "onState-change"?: (_state: EditorState) => any;
116
153
  onReady?: (_editor: AerizEditorCore) => any;
117
154
  }>, {
155
+ upload: UploadOptions;
156
+ height: string | number;
118
157
  toolbar: false | ToolbarConfig;
119
158
  theme: Theme;
159
+ fonts: FontFamily[];
120
160
  placeholder: string;
121
161
  initialHTML: string;
162
+ statusBar: boolean;
163
+ ariaLabel: string;
122
164
  locale: Locale;
123
165
  htmlStyles: HtmlStyles;
124
- onImageUpload: UploadFn;
125
- imageUploadUrl: string;
126
- onFileUpload: UploadFn;
127
- fileUploadUrl: string;
166
+ readOnly: boolean;
167
+ highlighter: CodeHighlighter;
168
+ fontSizes: number[];
128
169
  modelValue: string;
129
170
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
130
171
  export declare const AerizViewer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
@@ -176,8 +217,8 @@ export declare const AerizViewer: import("vue").DefineComponent<import("vue").Ex
176
217
  }>, {
177
218
  html: string;
178
219
  theme: Theme;
179
- htmlStyles: HtmlStyles;
180
220
  blocks: BlockSnapshot[];
221
+ htmlStyles: HtmlStyles;
181
222
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
182
223
  /** `app.use(AerizWysiwygPlugin)` 로 두 컴포넌트를 전역 등록한다. */
183
224
  export declare const AerizWysiwygPlugin: {
@@ -18,12 +18,11 @@
18
18
  * template: '<AerizEditor v-model="html" theme="dark" />',
19
19
  * };
20
20
  */
21
- import type { AerizEditor as AerizEditorCore, AerizViewer as AerizViewerCore, BlockSnapshot, ToolbarConfig } from '@aeriz/wysiwyg';
21
+ import type { AerizEditor as AerizEditorCore, AerizViewer as AerizViewerCore, BlockSnapshot, CodeHighlighter, FontFamily, ToolbarConfig, UploadOptions } from '@aeriz/wysiwyg';
22
22
  import type { AerizEditorController, AerizEditorProps, AerizViewerController, AerizViewerProps } from './shared.cjs';
23
23
  type Theme = 'light' | 'dark';
24
24
  type Locale = 'en' | 'ko' | 'ja' | 'zh';
25
25
  type HtmlStyles = 'inline' | 'class';
26
- type UploadFn = (file: File) => Promise<string>;
27
26
  /**
28
27
  * Vue 2 런타임이 컴포넌트 메서드에 주입하는 `this` 의 최소 형태.
29
28
  *
@@ -49,10 +48,14 @@ interface EditorProps {
49
48
  theme?: Theme;
50
49
  locale?: Locale;
51
50
  htmlStyles?: HtmlStyles;
52
- onImageUpload?: UploadFn;
53
- imageUploadUrl?: string;
54
- onFileUpload?: UploadFn;
55
- fileUploadUrl?: string;
51
+ statusBar?: boolean;
52
+ ariaLabel?: string;
53
+ readOnly?: boolean;
54
+ height?: number | string;
55
+ upload?: UploadOptions;
56
+ fonts?: FontFamily[];
57
+ fontSizes?: number[];
58
+ highlighter?: CodeHighlighter;
56
59
  }
57
60
  interface EditorHost extends Vue2Host<EditorProps> {
58
61
  aerizController: AerizEditorController | null;
@@ -85,7 +88,7 @@ export declare const AerizEditor: {
85
88
  default: undefined;
86
89
  };
87
90
  toolbar: {
88
- type: (ObjectConstructor | BooleanConstructor)[];
91
+ type: (BooleanConstructor | ObjectConstructor)[];
89
92
  default: undefined;
90
93
  };
91
94
  theme: {
@@ -101,20 +104,36 @@ export declare const AerizEditor: {
101
104
  type: StringConstructor;
102
105
  default: undefined;
103
106
  };
104
- onImageUpload: {
105
- type: FunctionConstructor;
107
+ statusBar: {
108
+ type: BooleanConstructor;
106
109
  default: undefined;
107
110
  };
108
- imageUploadUrl: {
111
+ ariaLabel: {
109
112
  type: StringConstructor;
110
113
  default: undefined;
111
114
  };
112
- onFileUpload: {
113
- type: FunctionConstructor;
115
+ readOnly: {
116
+ type: BooleanConstructor;
114
117
  default: undefined;
115
118
  };
116
- fileUploadUrl: {
117
- type: StringConstructor;
119
+ height: {
120
+ type: (NumberConstructor | StringConstructor)[];
121
+ default: undefined;
122
+ };
123
+ upload: {
124
+ type: ObjectConstructor;
125
+ default: undefined;
126
+ };
127
+ fonts: {
128
+ type: ArrayConstructor;
129
+ default: undefined;
130
+ };
131
+ highlighter: {
132
+ type: ObjectConstructor;
133
+ default: undefined;
134
+ };
135
+ fontSizes: {
136
+ type: ArrayConstructor;
118
137
  default: undefined;
119
138
  };
120
139
  };
@@ -22,8 +22,7 @@
22
22
  * el.value = '<p>안녕하세요</p>';
23
23
  * </script>
24
24
  */
25
- import type { AerizEditor, AerizViewer, BlockSnapshot } from '@aeriz/wysiwyg';
26
- type UploadFn = (file: File) => Promise<string>;
25
+ import type { AerizEditor, AerizViewer, BlockSnapshot, CodeHighlighter, FontFamily, UploadOptions } from '@aeriz/wysiwyg';
27
26
  /**
28
27
  * `<aeriz-editor>`.
29
28
  *
@@ -35,9 +34,20 @@ export declare class AerizEditorElement extends HTMLElement {
35
34
  static get observedAttributes(): string[];
36
35
  /** 폼 연동 대상임을 선언. 미지원 브라우저는 이 필드를 무시한다. */
37
36
  static formAssociated: boolean;
38
- /** 프로퍼티로 설정된 업로드 핸들러. 속성으로는 표현할 수 없다. */
39
- onImageUpload: UploadFn | undefined;
40
- onFileUpload: UploadFn | undefined;
37
+ private uploadValue;
38
+ private fontsValue;
39
+ private highlighterValue;
40
+ private fontSizesValue;
41
+ /** 올리기 설정. `upload-url` 속성보다 우선한다 (헤더 · 직접 올리기가 필요할 때). */
42
+ get upload(): UploadOptions | undefined;
43
+ set upload(value: UploadOptions | undefined);
44
+ /** 코드 블록 색칠기 (`@aeriz/wysiwyg/highlight` 의 `highlighter`). */
45
+ get highlighter(): CodeHighlighter | undefined;
46
+ set highlighter(value: CodeHighlighter | undefined);
47
+ get fonts(): FontFamily[] | undefined;
48
+ set fonts(value: FontFamily[] | undefined);
49
+ get fontSizes(): number[] | undefined;
50
+ set fontSizes(value: number[] | undefined);
41
51
  private controller;
42
52
  private internals;
43
53
  /**
@@ -92,5 +102,4 @@ export declare class AerizViewerElement extends HTMLElement {
92
102
  * @param prefix 태그 접두사. 기본 `'aeriz'` → `<aeriz-editor>` / `<aeriz-viewer>`
93
103
  */
94
104
  export declare function defineAerizElements(prefix?: string): void;
95
- export {};
96
105
  // (소스맵은 CJS 선언 사본에서 제외됨 — scripts/finalize-types.mjs)