@fastkit/vui-wysiwyg 7.0.36 → 7.0.38

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 (59) hide show
  1. package/dist/pm/changeset.mjs +1 -1
  2. package/dist/pm/changeset.mjs.map +1 -1
  3. package/dist/pm/collab.mjs +1 -1
  4. package/dist/pm/collab.mjs.map +1 -1
  5. package/dist/pm/commands.mjs +1 -1
  6. package/dist/pm/commands.mjs.map +1 -1
  7. package/dist/pm/dropcursor.mjs +1 -1
  8. package/dist/pm/dropcursor.mjs.map +1 -1
  9. package/dist/pm/gapcursor.mjs +1 -1
  10. package/dist/pm/gapcursor.mjs.map +1 -1
  11. package/dist/pm/history.mjs +1 -1
  12. package/dist/pm/history.mjs.map +1 -1
  13. package/dist/pm/inputrules.mjs +1 -1
  14. package/dist/pm/inputrules.mjs.map +1 -1
  15. package/dist/pm/keymap.mjs +1 -1
  16. package/dist/pm/keymap.mjs.map +1 -1
  17. package/dist/pm/markdown.mjs +1 -1
  18. package/dist/pm/markdown.mjs.map +1 -1
  19. package/dist/pm/menu.mjs +1 -1
  20. package/dist/pm/menu.mjs.map +1 -1
  21. package/dist/pm/model.mjs +1 -1
  22. package/dist/pm/model.mjs.map +1 -1
  23. package/dist/pm/schema-basic.mjs +1 -1
  24. package/dist/pm/schema-basic.mjs.map +1 -1
  25. package/dist/pm/schema-list.mjs +1 -1
  26. package/dist/pm/schema-list.mjs.map +1 -1
  27. package/dist/pm/state.mjs +1 -1
  28. package/dist/pm/state.mjs.map +1 -1
  29. package/dist/pm/tables.mjs +1 -1
  30. package/dist/pm/tables.mjs.map +1 -1
  31. package/dist/pm/trailing-node.mjs +1 -1
  32. package/dist/pm/trailing-node.mjs.map +1 -1
  33. package/dist/pm/transform.mjs +1 -1
  34. package/dist/pm/transform.mjs.map +1 -1
  35. package/dist/pm/view.mjs +1 -1
  36. package/dist/pm/view.mjs.map +1 -1
  37. package/dist/tiptap/core.mjs +1 -1
  38. package/dist/tiptap/core.mjs.map +1 -1
  39. package/dist/tiptap/extensions/bold.mjs +1 -1
  40. package/dist/tiptap/extensions/bold.mjs.map +1 -1
  41. package/dist/tiptap/extensions/bullet-list.mjs +1 -1
  42. package/dist/tiptap/extensions/bullet-list.mjs.map +1 -1
  43. package/dist/tiptap/extensions/history.mjs +1 -1
  44. package/dist/tiptap/extensions/history.mjs.map +1 -1
  45. package/dist/tiptap/extensions/italic.mjs +1 -1
  46. package/dist/tiptap/extensions/italic.mjs.map +1 -1
  47. package/dist/tiptap/extensions/link.mjs +1 -1
  48. package/dist/tiptap/extensions/link.mjs.map +1 -1
  49. package/dist/tiptap/extensions/ordered-list.mjs +1 -1
  50. package/dist/tiptap/extensions/ordered-list.mjs.map +1 -1
  51. package/dist/tiptap/extensions/text-align.mjs +1 -1
  52. package/dist/tiptap/extensions/text-align.mjs.map +1 -1
  53. package/dist/tiptap/extensions/text-style.mjs +1 -1
  54. package/dist/tiptap/extensions/text-style.mjs.map +1 -1
  55. package/dist/tiptap/extensions/underline.mjs +1 -1
  56. package/dist/tiptap/extensions/underline.mjs.map +1 -1
  57. package/dist/vui-wysiwyg.mjs +1 -1
  58. package/dist/vui-wysiwyg.mjs.map +1 -1
  59. package/package.json +15 -15
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/changeset';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=changeset.mjs.map
3
3
  //# sourceMappingURL=changeset.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/changeset.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/changeset';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"changeset.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/collab';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=collab.mjs.map
3
3
  //# sourceMappingURL=collab.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/collab.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/collab';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"collab.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/commands';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=commands.mjs.map
3
3
  //# sourceMappingURL=commands.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/commands.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/commands';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"commands.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/dropcursor';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=dropcursor.mjs.map
3
3
  //# sourceMappingURL=dropcursor.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/dropcursor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/dropcursor';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"dropcursor.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/gapcursor';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=gapcursor.mjs.map
3
3
  //# sourceMappingURL=gapcursor.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/gapcursor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/gapcursor';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"gapcursor.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/history';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=history.mjs.map
3
3
  //# sourceMappingURL=history.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/history.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/history';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"history.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/inputrules';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=inputrules.mjs.map
3
3
  //# sourceMappingURL=inputrules.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/inputrules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/inputrules';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"inputrules.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/keymap';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=keymap.mjs.map
3
3
  //# sourceMappingURL=keymap.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/keymap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/keymap';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"keymap.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/markdown';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=markdown.mjs.map
3
3
  //# sourceMappingURL=markdown.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/markdown.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/markdown';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"markdown.mjs","sourcesContent":[]}
package/dist/pm/menu.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/menu';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=menu.mjs.map
3
3
  //# sourceMappingURL=menu.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/menu.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/menu';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"menu.mjs","sourcesContent":[]}
package/dist/pm/model.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/model';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=model.mjs.map
3
3
  //# sourceMappingURL=model.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/model';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"model.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/schema-basic';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=schema-basic.mjs.map
3
3
  //# sourceMappingURL=schema-basic.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/schema-basic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/schema-basic';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"schema-basic.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/schema-list';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=schema-list.mjs.map
3
3
  //# sourceMappingURL=schema-list.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/schema-list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/schema-list';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"schema-list.mjs","sourcesContent":[]}
package/dist/pm/state.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/state';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=state.mjs.map
3
3
  //# sourceMappingURL=state.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/state.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/state';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"state.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/tables';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=tables.mjs.map
3
3
  //# sourceMappingURL=tables.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/tables.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/tables';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"tables.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/trailing-node';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=trailing-node.mjs.map
3
3
  //# sourceMappingURL=trailing-node.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/trailing-node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/trailing-node';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"trailing-node.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/transform';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=transform.mjs.map
3
3
  //# sourceMappingURL=transform.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/transform.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/transform';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"transform.mjs","sourcesContent":[]}
package/dist/pm/view.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/pm/view';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=view.mjs.map
3
3
  //# sourceMappingURL=view.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/pm/view.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/pm/view';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"view.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/vue-3';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=core.mjs.map
3
3
  //# sourceMappingURL=core.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dependencies/tiptap/core.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/vue-3';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"core.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/extension-bold';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=bold.mjs.map
3
3
  //# sourceMappingURL=bold.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/dependencies/tiptap/extensions/bold.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/extension-bold';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"bold.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/extension-bullet-list';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=bullet-list.mjs.map
3
3
  //# sourceMappingURL=bullet-list.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/dependencies/tiptap/extensions/bullet-list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/extension-bullet-list';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"bullet-list.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/extension-history';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=history.mjs.map
3
3
  //# sourceMappingURL=history.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/dependencies/tiptap/extensions/history.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/extension-history';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"history.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/extension-italic';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=italic.mjs.map
3
3
  //# sourceMappingURL=italic.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/dependencies/tiptap/extensions/italic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/extension-italic';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"italic.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/extension-link';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=link.mjs.map
3
3
  //# sourceMappingURL=link.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/dependencies/tiptap/extensions/link.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/extension-link';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"link.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/extension-ordered-list';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=ordered-list.mjs.map
3
3
  //# sourceMappingURL=ordered-list.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/dependencies/tiptap/extensions/ordered-list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/extension-ordered-list';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"ordered-list.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/extension-text-align';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=text-align.mjs.map
3
3
  //# sourceMappingURL=text-align.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/dependencies/tiptap/extensions/text-align.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/extension-text-align';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"text-align.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/extension-text-style';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=text-style.mjs.map
3
3
  //# sourceMappingURL=text-style.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/dependencies/tiptap/extensions/text-style.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/extension-text-style';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"text-style.mjs","sourcesContent":[]}
@@ -1,3 +1,3 @@
1
1
  export * from '@tiptap/extension-underline';
2
- //# sourceMappingURL=out.js.map
2
+ //# sourceMappingURL=underline.mjs.map
3
3
  //# sourceMappingURL=underline.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/dependencies/tiptap/extensions/underline.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc","sourcesContent":["export * from '@tiptap/extension-underline';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"underline.mjs","sourcesContent":[]}
@@ -1046,5 +1046,5 @@ function resolveContextualValue(ctx, source) {
1046
1046
  }
1047
1047
 
1048
1048
  export { VUI_WYSIWYG_EDITOR_SYMBOL, VWysiwygEditor, WYSIWYG_TEXT_ALIGN_VALUES, WysiwygBulletListTool, WysiwygColorExtension, WysiwygCustomTagExtension, WysiwygEditorInitializeContext, WysiwygFormatBoldTool, WysiwygFormatItalicTool, WysiwygFormatUnderlineTool, WysiwygHistoryTool, WysiwygLinkTool, WysiwygLinter, WysiwygLinterBadWords, WysiwygLinterHeadingLevel, WysiwygLinterPlugin, WysiwygLinterPunctuation, WysiwygOrderedListTool, WysiwygTextAlignTool, createWysiwygColorTool, createWysiwygCustomTagMark, createWysiwygCustomTagTool, createWysiwygExtension, resolveRawWysiwygEditorTools, resolveRawWysiwygExtensions };
1049
- //# sourceMappingURL=out.js.map
1049
+ //# sourceMappingURL=vui-wysiwyg.mjs.map
1050
1050
  //# sourceMappingURL=vui-wysiwyg.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schemes.ts","../src/injections.ts","../src/extensions/linter/Linter.tsx","../src/extensions/linter/utils.ts","../src/extensions/linter/LinterPlugin.ts","../src/extensions/linter/plugins/BadWords.tsx","../src/extensions/linter/plugins/HeadingLevel.ts","../src/extensions/linter/plugins/Punctuation.ts","../src/extensions/color.ts","../src/extensions/custom-tag.ts","../src/tools/bullet-list.ts","../src/tools/format-bold.ts","../src/tools/format-italic.ts","../src/tools/format-underline.ts","../src/tools/history.ts","../src/tools/link.ts","../src/tools/ordered-list.ts","../src/tools/color.tsx","../src/tools/text-align.tsx","../src/tools/custom-tag.ts","../src/components/VWysiwygEditor/VWysiwygEditor.tsx"],"names":["_createVNode","Extension","name","vui","Mark","_isVNode","VButton","VButtonGroup","_isSlot","editor"],"mappings":"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","sourcesContent":["import { type VuiService, type IconName } from '@fastkit/vui';\nimport {\n type Editor,\n type Extensions,\n type Node,\n type Extension,\n type Mark,\n type AnyExtension,\n type EditorOptions,\n} from '@tiptap/vue-3';\nimport { VNodeChild } from 'vue';\n\nconst EDITOR_EVENTS = [\n 'beforeCreate',\n 'create',\n 'update',\n 'selectionUpdate',\n 'transaction',\n 'focus',\n 'blur',\n 'destroy',\n] as const;\n\ntype PrefixedEventName<S extends string> = `on${Capitalize<S>}`;\n\nconst prefixedEventName = <S extends string>(source: S): PrefixedEventName<S> =>\n `on${source.charAt(0).toUpperCase()}${source.slice(1)}` as any;\n\nexport type WysiwygEditorEvent = (typeof EDITOR_EVENTS)[number];\n\nexport type WysiwygEditorPrefixedEvent = PrefixedEventName<WysiwygEditorEvent>;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface WysiwygEditorEventsOptions\n extends Partial<Pick<EditorOptions, WysiwygEditorPrefixedEvent>> {}\n\nexport type WysiwygEditorEventsBucket = {\n [EV in WysiwygEditorEvent]: NonNullable<\n WysiwygEditorEventsOptions[PrefixedEventName<EV>]\n >[];\n};\n\nexport class WysiwygEditorInitializeContext {\n readonly listeners: WysiwygEditorEventsBucket = {} as any;\n\n private readonly _vui: () => VuiService;\n\n get vui() {\n return this._vui();\n }\n\n constructor(\n vuiGetter: () => VuiService,\n opts: WysiwygEditorEventsOptions = {},\n ) {\n this._vui = vuiGetter;\n\n EDITOR_EVENTS.forEach((event) => {\n this.listeners[event] = [];\n const prefixed = prefixedEventName(event);\n const fn = opts[prefixed];\n fn && this.listeners[event].push(fn as any);\n });\n }\n\n on<EV extends WysiwygEditorEvent>(\n ev: EV,\n handler: NonNullable<WysiwygEditorEventsOptions[PrefixedEventName<EV>]>,\n ) {\n this.listeners[ev].push(handler);\n return () => this.off(ev, handler);\n }\n\n off<EV extends WysiwygEditorEvent>(\n ev: EV,\n handler: NonNullable<WysiwygEditorEventsOptions[PrefixedEventName<EV>]>,\n ) {\n this.listeners[ev] = this.listeners[ev].filter(\n (_handler) => _handler !== handler,\n ) as any;\n }\n\n editorOptions() {\n const opts: WysiwygEditorEventsOptions = {};\n\n EDITOR_EVENTS.forEach((event) => {\n const prefixed = prefixedEventName(event);\n opts[prefixed] = (props) => {\n const handlers = this.listeners[event];\n handlers.forEach((handler) => {\n handler(props as any);\n });\n };\n });\n\n return opts;\n }\n}\n\nexport interface WysiwygEditorContext {\n editor: Editor;\n vui: VuiService;\n}\n\nexport type WysiwygExtensionFactory<Options = any, Storage = any> = (\n ctx: WysiwygEditorInitializeContext,\n) =>\n | Extension<Options, Storage>\n | Node<Options, Storage>\n | Mark<Options, Storage>;\n\nexport interface CreatedWysiwygExtension<Options = any, Storage = any> {\n __isCreatedWysiwygExtension: true;\n _configs: Partial<Options>[];\n configure(\n options?: Partial<Options>,\n ): CreatedWysiwygExtension<Options, Storage>;\n raw: WysiwygExtensionSource<Options, Storage>;\n}\n\nexport type WysiwygExtensionSource<Options = any, Storage = any> =\n | Extension<Options, Storage>\n | Node<Options, Storage>\n | Mark<Options, Storage>\n | WysiwygExtensionFactory<Options, Storage>;\n\nexport type RawWysiwygExtension<Options = any, Storage = any> =\n | WysiwygExtensionSource<Options, Storage>\n | CreatedWysiwygExtension<Options, Storage>;\n\n// export function createWysiwygExtension<Options = any, Storage = any>(\n// extension: Extension<Options, Storage>,\n// ): Extension<Options, Storage>;\n// export function createWysiwygExtension<Options = any, Storage = any>(\n// node: Node<Options, Storage>,\n// ): Node<Options, Storage>;\n// export function createWysiwygExtension<Options = any, Storage = any>(\n// mark: Mark<Options, Storage>,\n// ): Mark<Options, Storage>;\n// export function createWysiwygExtension<Options = any, Storage = any>(\n// factory: WysiwygExtensionFactory<Options, Storage>,\n// ): WysiwygExtensionFactory<Options, Storage>;\n\nfunction isCreatedWysiwygExtension<Options = any, Storage = any>(\n source: unknown,\n): source is CreatedWysiwygExtension<Options, Storage> {\n return (\n !!source &&\n typeof source === 'object' &&\n (source as CreatedWysiwygExtension).__isCreatedWysiwygExtension === true\n );\n}\n\nexport function createWysiwygExtension<Options = any, Storage = any>(\n extension: WysiwygExtensionSource<Options, Storage>,\n) {\n const ext: CreatedWysiwygExtension<Options, Storage> = {\n __isCreatedWysiwygExtension: true,\n _configs: [],\n configure: (opts) => {\n opts && ext._configs.push(opts);\n return ext;\n },\n raw: extension,\n };\n return ext;\n}\n\nfunction resolveRawWysiwygExtension(\n raw: RawWysiwygExtension,\n ctx: WysiwygEditorInitializeContext,\n): AnyExtension {\n if (isCreatedWysiwygExtension(raw)) {\n const { raw: _raw, _configs } = raw;\n let ext = typeof _raw === 'function' ? _raw(ctx) : _raw;\n _configs.forEach((config) => {\n ext = ext.configure(config);\n });\n return ext;\n }\n return typeof raw === 'function' ? raw(ctx) : raw;\n}\n\nexport function resolveRawWysiwygExtensions(\n raws: RawWysiwygExtension[],\n ctx: WysiwygEditorInitializeContext,\n) {\n return raws.map((raw) => resolveRawWysiwygExtension(raw, ctx));\n}\n\nexport type WysiwygEditorToolIcon =\n | IconName\n | ((ctx: WysiwygEditorContext) => IconName | (() => VNodeChild) | undefined);\n\n/**\n * Tool Configuration\n */\nexport interface WysiwygEditorTool {\n /**\n * Tool Key\n *\n * Must be unique to identify the tool\n */\n key: string;\n /** Icons to be displayed on the toolbar */\n icon: WysiwygEditorToolIcon;\n /** Conditions for displaying the icon as active */\n active?: boolean | ((ctx: WysiwygEditorContext) => boolean);\n /** Conditions for deactivating the icon */\n disabled?: boolean | ((ctx: WysiwygEditorContext) => boolean);\n /** Handler when mark text is clicked */\n onClick: (ctx: WysiwygEditorContext, ev: MouseEvent) => any;\n /** Whether to display tools in floating menu or not */\n floating?: boolean;\n /** Extensions that the tool depends on */\n extensions?: Extensions;\n}\n\nexport type WysiwygEditorToolFactory<Options = void> = (\n vui: VuiService,\n options?: Options,\n) => WysiwygEditorTool | WysiwygEditorTool[];\n\nexport type RawWysiwygEditorTool =\n | WysiwygEditorTool\n | WysiwygEditorToolFactory<any>;\n\nfunction resolveRawWysiwygEditorTool(\n raw: RawWysiwygEditorTool,\n vui: VuiService,\n) {\n return typeof raw === 'function' ? raw(vui) : raw;\n}\n\nexport interface ResolvedWysiwygEditorSettings {\n tools: WysiwygEditorTool[];\n extensions: Extensions;\n}\n\nexport function resolveRawWysiwygEditorTools(\n rawTools: RawWysiwygEditorTool[],\n vui: VuiService,\n): ResolvedWysiwygEditorSettings {\n const tools: WysiwygEditorTool[] = [];\n const extensions: Extensions = [];\n\n rawTools.forEach((raw) => {\n let resolved = resolveRawWysiwygEditorTool(raw, vui);\n if (!Array.isArray(resolved)) {\n resolved = [resolved];\n }\n resolved.forEach((tool) => {\n tools.push(tool);\n if (tool.extensions) {\n extensions.push(...tool.extensions);\n }\n });\n });\n\n return {\n tools,\n extensions,\n };\n}\n","export const VUI_WYSIWYG_EDITOR_SYMBOL = 'vui-wysiwyg-editor';\n","import { createVNode as _createVNode } from \"vue\";\nimport './Linter.scss';\nimport { Extension } from '@tiptap/vue-3';\nimport { Decoration, DecorationSet } from '@tiptap/pm/view';\nimport { Plugin, PluginKey, TextSelection } from '@tiptap/pm/state';\nimport { createWysiwygExtension } from '../../schemes';\nconst PROBLEM_CLASS_NAME = 'v-linter__problem';\nconst ISSUE_ICON_CLASS_NAME = 'v-linter__issue-icon';\nconst ISSUE_DATASET_NAME = 'data-issue-id';\nfunction resolveWysiwygLinterFixMessage(message) {\n return typeof message === 'function' ? message() : message;\n}\nfunction renderIcon(view, issue) {\n const {\n level = 'warning'\n } = issue;\n const icon = document.createElement('div');\n const message = resolveWysiwygLinterFixMessage(issue.message);\n icon.className = `${ISSUE_ICON_CLASS_NAME} ${level}-scope`;\n icon.setAttribute(ISSUE_DATASET_NAME, issue.id);\n if (typeof message === 'string') {\n icon.title = message;\n }\n return icon;\n}\nfunction runAllLinterPlugins(doc, plugins) {\n const decorations = [];\n const issues = plugins.map(RegisteredLinterPlugin => new RegisteredLinterPlugin(doc).scan().getResults()).flat();\n issues.forEach(issue => {\n const {\n level = 'warning',\n icon\n } = issue;\n const message = resolveWysiwygLinterFixMessage(issue.message);\n decorations.push(Decoration.inline(issue.from, issue.to, {\n class: `${PROBLEM_CLASS_NAME} ${level}-scope`,\n 'data-issue-id': issue.id,\n title: typeof message === 'string' ? message : undefined\n }));\n if (icon) {\n decorations.push(Decoration.widget(issue.from, view => renderIcon(view, issue)));\n }\n });\n const decorationSet = DecorationSet.create(doc, decorations);\n return {\n issues,\n decorationSet\n };\n}\nexport const WysiwygLinter = createWysiwygExtension(ctx => {\n function showMenu(view, issue, event) {\n const message = resolveWysiwygLinterFixMessage(issue.message);\n const variant = ctx.vui.setting('containedVariant');\n const scope = ctx.vui.setting(`${issue.level}Scope`);\n return ctx.vui.menu({\n activator: event,\n content: stack => _createVNode(\"div\", {\n \"class\": \"v-linter__issue-menu__body\"\n }, [_createVNode(\"div\", {\n \"class\": ['v-linter__issue-menu__message', `${scope}-scope ${variant}`]\n }, [message]), issue.fix.length && _createVNode(\"div\", {\n \"class\": \"v-linter__issue-menu__fixers\"\n }, [issue.fix.map((fixer, index) => _createVNode(\"div\", {\n \"key\": index,\n \"class\": \"v-linter__issue-menu__fixer\"\n }, [_createVNode(\"button\", {\n \"type\": \"button\",\n \"class\": \"v-linter__issue-menu__fixer__button\",\n \"onClick\": () => {\n stack.close();\n fixer.handler(view, issue);\n }\n }, [_createVNode(\"span\", {\n \"class\": \"v-linter__issue-menu__fixer__button__message\"\n }, [resolveWysiwygLinterFixMessage(fixer.message)])])]))])])\n });\n }\n return Extension.create({\n name: 'linter',\n addOptions() {\n return {\n plugins: []\n };\n },\n addStorage() {\n return {\n issues: []\n };\n },\n addProseMirrorPlugins() {\n const {\n plugins\n } = this.options;\n const {\n storage\n } = this;\n const runAll = doc => {\n const {\n issues,\n decorationSet\n } = runAllLinterPlugins(doc, plugins);\n storage.issues = issues;\n return decorationSet;\n };\n const getIssue = id => storage.issues.find(issue => issue.id === id);\n const getIssueElementByEvent = source => {\n if (!source || !(source instanceof HTMLElement)) {\n return;\n }\n const issueId = source.getAttribute(ISSUE_DATASET_NAME);\n const issue = issueId && getIssue(issueId);\n if (!issue) return;\n return {\n issue\n };\n };\n const linterPlugin = new Plugin({\n key: new PluginKey('linter'),\n state: {\n init(_, {\n doc\n }) {\n return runAll(doc);\n },\n apply(transaction, oldState) {\n return transaction.docChanged ? runAll(transaction.doc) : oldState;\n }\n },\n props: {\n decorations(state) {\n return linterPlugin.getState(state);\n },\n handleClick(view, _, event) {\n const info = getIssueElementByEvent(event.target);\n if (!info) {\n return false;\n }\n const {\n issue\n } = info;\n const {\n from,\n to\n } = issue;\n const focus = () => view.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.doc, from, to)).scrollIntoView());\n focus();\n showMenu(view, issue, event);\n return true;\n }\n }\n });\n return [linterPlugin];\n }\n });\n});","/* eslint-disable eqeqeq */\n/* eslint-disable no-bitwise */\nlet IDX = 256;\nlet BUFFER: any;\nconst HEX: any = [];\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nexport function cheepUUID() {\n let i = 0;\n let num;\n let out = '';\n\n if (!BUFFER || IDX + 16 > 256) {\n BUFFER = Array((i = 256));\n while (i--) BUFFER[i] = (256 * Math.random()) | 0;\n // eslint-disable-next-line no-multi-assign\n i = IDX = 0;\n }\n\n for (; i < 16; i++) {\n num = BUFFER[IDX + i];\n if (i == 6) out += HEX[(num & 15) | 64];\n else if (i == 8) out += HEX[(num & 63) | 128];\n else out += HEX[num];\n\n if (i & 1 && i > 1 && i < 11) out += '-';\n }\n\n IDX++;\n return out;\n}\n","import { VNodeChild } from 'vue';\nimport { Node as ProsemirrorNode } from '@tiptap/pm/model';\nimport { EditorView } from '@tiptap/pm/view';\nimport { cheepUUID } from './utils';\n\nexport type WysiwygLinterFixFn = (\n view: EditorView,\n issue: WysiwygLinterResult,\n) => any;\n\nexport type WysiwygLinterFixMessage = string | (() => VNodeChild);\n\nexport interface WysiwygLinterFixer {\n message: WysiwygLinterFixMessage;\n handler: WysiwygLinterFixFn;\n}\n\nexport type WysiwygLinterResultLevel = 'warning' | 'error';\n\n// fixers\nexport interface WysiwygLinterResult {\n id: string;\n icon: boolean;\n level: WysiwygLinterResultLevel;\n message: WysiwygLinterFixMessage;\n from: number;\n to: number;\n fix: WysiwygLinterFixer[];\n}\n\nexport interface RawLinterResult\n extends Omit<WysiwygLinterResult, 'level' | 'fix' | 'id' | 'icon'> {\n level?: WysiwygLinterResultLevel;\n icon?: boolean;\n fix?: WysiwygLinterFixer | WysiwygLinterFixer[];\n}\n\nexport class WysiwygLinterPlugin {\n protected doc: ProsemirrorNode;\n\n private results: Array<WysiwygLinterResult> = [];\n\n constructor(doc: ProsemirrorNode) {\n this.doc = doc;\n }\n\n record(result: RawLinterResult) {\n const { fix = [], icon = false } = result;\n this.results.push({\n level: 'error',\n id: cheepUUID(),\n ...result,\n fix: Array.isArray(fix) ? fix : [fix],\n icon,\n });\n }\n\n scan() {\n return this;\n }\n\n getResults() {\n return this.results;\n }\n}\n","import { createTextVNode as _createTextVNode, createVNode as _createVNode } from \"vue\";\nimport { WysiwygLinterPlugin } from '../LinterPlugin';\nexport function WysiwygLinterBadWords(words) {\n const regex = new RegExp(`\\\\b(${words.join('|')})\\\\b`);\n\n // eslint-disable-next-line no-shadow\n return class WysiwygLinterBadWords extends WysiwygLinterPlugin {\n scan() {\n this.doc.descendants((node, position) => {\n if (!node.isText) {\n return;\n }\n const matches = regex.exec(node.text);\n if (matches) {\n const fixValue = `${matches[0]}!!!!!`;\n this.record({\n level: 'warning',\n message: `Try not to say '${matches[0]}'`,\n from: position + matches.index,\n to: position + matches.index + matches[0].length,\n fix: [{\n message: () => _createVNode(\"span\", null, [_createVNode(\"code\", null, [fixValue]), _createTextVNode(\"\\u306B\\u4FEE\\u6B63\\u3059\\u308B\\u3002\")]),\n handler: () => {\n // eslint-disable-next-line no-console\n console.log('hoge');\n }\n }, {\n message: 'どうにかする',\n handler: () => {\n // eslint-disable-next-line no-console\n console.log('hoge');\n }\n }]\n });\n }\n });\n return this;\n }\n };\n}","import { EditorView } from '@tiptap/pm/view';\nimport {\n WysiwygLinterPlugin,\n WysiwygLinterResult as Issue,\n} from '../LinterPlugin';\n\nexport class WysiwygLinterHeadingLevel extends WysiwygLinterPlugin {\n fixHeader(level: number) {\n // eslint-disable-next-line func-names\n return function ({ state, dispatch }: EditorView, issue: Issue) {\n dispatch(state.tr.setNodeMarkup(issue.from - 1, undefined, { level }));\n };\n }\n\n scan() {\n let lastHeadLevel: number | null = null;\n\n this.doc.descendants((node, position) => {\n if (node.type.name === 'heading') {\n // Check whether heading levels fit under the current level\n const { level } = node.attrs;\n\n if (lastHeadLevel != null && level > lastHeadLevel + 1) {\n this.record({\n message: `Heading too small (${level} under ${lastHeadLevel})`,\n from: position + 1,\n to: position + 1 + node.content.size,\n fix: {\n message: '修正する',\n handler: this.fixHeader(lastHeadLevel + 1),\n },\n });\n }\n lastHeadLevel = level;\n }\n });\n\n return this;\n }\n}\n","import { EditorView } from '@tiptap/pm/view';\nimport {\n WysiwygLinterPlugin,\n WysiwygLinterResult as Issue,\n} from '../LinterPlugin';\n\nexport class WysiwygLinterPunctuation extends WysiwygLinterPlugin {\n public regex = / ([,.!?:]) ?/g;\n\n fix(replacement: any) {\n // eslint-disable-next-line func-names\n return function ({ state, dispatch }: EditorView, issue: Issue) {\n dispatch(\n state.tr.replaceWith(\n issue.from,\n issue.to,\n state.schema.text(replacement),\n ),\n );\n };\n }\n\n scan() {\n this.doc.descendants((node, position) => {\n if (!node.isText) {\n return;\n }\n\n if (!node.text) {\n return;\n }\n\n const matches = this.regex.exec(node.text);\n\n if (matches) {\n this.record({\n message: 'Suspicious spacing around punctuation',\n from: position + matches.index,\n to: position + matches.index + matches[0].length,\n fix: {\n message: 'Fix it!!!',\n handler: this.fix(`${matches[1]} `),\n },\n });\n }\n });\n\n return this;\n }\n}\n","import { Extension } from '@tiptap/vue-3';\nimport '@tiptap/extension-text-style';\n\nexport type WysiwygColorOptions = {\n types: string[];\n};\n\ndeclare module '@tiptap/vue-3' {\n interface Commands<ReturnType> {\n color: {\n /**\n * Set the text color\n */\n setColor: (color: string) => ReturnType;\n /**\n * Unset the text color\n */\n unsetColor: () => ReturnType;\n };\n }\n}\n\nexport const WysiwygColorExtension = Extension.create<WysiwygColorOptions>({\n name: 'color',\n\n addOptions() {\n return {\n types: ['textStyle'],\n };\n },\n\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n color: {\n default: null,\n parseHTML: (element) => element.style.color.replace(/['\"]+/g, ''),\n renderHTML: (attributes) => {\n if (!attributes.color) {\n return {};\n }\n\n return {\n style: `color: ${attributes.color}`,\n };\n },\n },\n },\n },\n ];\n },\n\n addCommands() {\n return {\n setColor:\n (color) =>\n ({ chain }) =>\n chain().setMark('textStyle', { color }).run(),\n unsetColor:\n () =>\n ({ chain }) =>\n chain()\n .setMark('textStyle', { color: null })\n .removeEmptyTextStyle()\n .run(),\n };\n },\n});\n","import { Extension, mergeAttributes, Mark } from '@tiptap/vue-3';\nimport '@tiptap/extension-text-style';\n// import '@tiptap/vue-3';\n\nexport type WysiwygCustomTagSettings = {\n /**\n * tag name\n *\n * Either the html default tag name or a custom tag name is acceptable\n *\n * @default \"span\"\n */\n tag: string;\n\n /**\n * HTML Attributes\n *\n * Attributes to be assigned to tags such as `class`, `data-xxx`, etc.\n */\n attrs?: Record<any, string>;\n};\n\ndeclare module '@tiptap/vue-3' {\n interface Commands<ReturnType> {\n customTag: {\n /**\n * Set the custom tag\n */\n setCustomTag: (markName: string) => ReturnType;\n /**\n * Toggle the custom tag\n */\n toggleCustomTag: (markName: string) => ReturnType;\n /**\n * Unset the custom tag\n */\n unsetCustomTag: (markName: string) => ReturnType;\n };\n }\n}\n\n// export type WysiwygCustomTagSettings = WysiwygCustomTagOptions & {\n// /**\n// * extension name\n// */\n// name: string;\n// };\n\nexport function createWysiwygCustomTagMark(\n name: string,\n settings: Partial<WysiwygCustomTagSettings>,\n) {\n const { tag = 'span', attrs } = settings;\n const attrEntries = attrs && Object.entries(attrs);\n // eslint-disable-next-line no-shadow\n const attrNames = attrEntries && attrEntries.map(([name]) => name);\n\n const getElementAttrs = (\n el: HTMLElement,\n ): Record<any, string> | undefined => {\n if (!attrNames) return;\n\n return (\n el\n .getAttributeNames()\n // eslint-disable-next-line no-shadow\n .reduce((acc, name) => ({ ...acc, [name]: el.getAttribute(name) }), {})\n );\n };\n\n const isMatchedElementAttrs = (elAttrs: Record<any, string>): boolean => {\n if (!attrEntries) return true;\n // eslint-disable-next-line no-shadow\n return attrEntries.every(([name, value]) => elAttrs[name] === value);\n };\n\n return Mark.create<WysiwygCustomTagSettings>({\n name,\n\n addOptions() {\n return {\n tag,\n attrs: attrs && { ...attrs },\n };\n },\n parseHTML() {\n return [\n {\n tag,\n getAttrs: (el: any) => {\n if (!attrs) return null;\n const elAttrs = getElementAttrs(el);\n if (!elAttrs) return false;\n return isMatchedElementAttrs(el) && null;\n },\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n tag,\n attrs ? mergeAttributes(attrs, HTMLAttributes) : HTMLAttributes,\n 0,\n ];\n },\n });\n}\n\nexport const WysiwygCustomTagExtension =\n Extension.create<WysiwygCustomTagSettings>({\n name: 'custom-tag',\n addCommands() {\n return {\n setCustomTag:\n (markName) =>\n ({ chain }) =>\n chain().setMark(markName).run(),\n unsetCustomTag:\n (markName) =>\n ({ chain }) =>\n chain().unsetMark(markName).run(),\n toggleCustomTag:\n (markName) =>\n ({ chain }) =>\n chain().toggleMark(markName).run(),\n };\n },\n });\n","import { BulletList, BulletListOptions } from '@tiptap/extension-bullet-list';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygBulletListTool: WysiwygEditorToolFactory<\n BulletListOptions\n> = (vui, options) => {\n const tool: WysiwygEditorTool = {\n key: 'bulletList',\n icon: vui.icon('editorformatListBulleted'),\n active: ({ editor }) => editor.isActive('bulletList'),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleBulletList().run();\n },\n floating: true,\n extensions: [BulletList.configure(options)],\n };\n return tool;\n};\n","import { Bold, BoldOptions } from '@tiptap/extension-bold';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygFormatBoldTool: WysiwygEditorToolFactory<BoldOptions> = (\n vui,\n options,\n) => {\n const tool: WysiwygEditorTool = {\n key: 'formatBold',\n icon: vui.icon('editorformatBold'),\n active: ({ editor }) => editor.isActive('bold'),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleBold().run();\n },\n floating: true,\n extensions: [Bold.configure(options)],\n };\n return tool;\n};\n","import { Italic, ItalicOptions } from '@tiptap/extension-italic';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygFormatItalicTool: WysiwygEditorToolFactory<\n ItalicOptions\n> = (vui, options) => {\n const tool: WysiwygEditorTool = {\n key: 'formatItalic',\n icon: vui.icon('editorformatItalic'),\n active: ({ editor }) => editor.isActive('italic'),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleItalic().run();\n },\n floating: true,\n extensions: [Italic.configure(options)],\n };\n return tool;\n};\n","import { Underline, UnderlineOptions } from '@tiptap/extension-underline';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygFormatUnderlineTool: WysiwygEditorToolFactory<\n UnderlineOptions\n> = (vui, options) => {\n const tool: WysiwygEditorTool = {\n key: 'formatUnderline',\n icon: vui.icon('editorformatUnderline'),\n active: ({ editor }) => editor.isActive('underline'),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleUnderline().run();\n },\n floating: true,\n extensions: [Underline.configure(options)],\n };\n return tool;\n};\n","import { History, HistoryOptions } from '@tiptap/extension-history';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygHistoryTool: WysiwygEditorToolFactory<HistoryOptions> = (\n vui,\n options,\n) => {\n const undo: WysiwygEditorTool = {\n key: 'history-undo',\n icon: vui.icon('editorUndo'),\n disabled: ({ editor }) => !editor.can().undo(),\n onClick: ({ editor }) => {\n editor.chain().focus().undo().run();\n },\n extensions: [History.configure(options)],\n };\n const redo: WysiwygEditorTool = {\n key: 'history-redo',\n icon: vui.icon('editorRedo'),\n disabled: ({ editor }) => !editor.can().redo(),\n onClick: ({ editor }) => {\n editor.chain().focus().redo().run();\n },\n };\n return [undo, redo];\n};\n","import { Link, LinkOptions } from '@tiptap/extension-link';\nimport { validateIf, url } from '@fastkit/vui';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygLinkTool: WysiwygEditorToolFactory<LinkOptions> = (\n vui,\n options,\n) => {\n const tool: WysiwygEditorTool = {\n key: 'link',\n icon: vui.icon('editorLink'),\n active: ({ editor }) => editor.isActive('link'),\n // eslint-disable-next-line no-shadow\n onClick: async ({ vui, editor }) => {\n const { href = '' } = editor.getAttributes('link');\n const result = await vui.prompt({\n input: {\n label: 'Link URL',\n rules: [validateIf, url],\n initialValue: href,\n size: 'sm',\n autofocus: true,\n },\n });\n\n if (result === undefined || result === false) {\n return;\n }\n\n const range = editor.chain().focus().extendMarkRange('link');\n\n if (!result) {\n range.unsetLink().run();\n } else {\n range\n .setLink({\n href: result,\n })\n .run();\n }\n },\n floating: true,\n extensions: [\n Link.configure({\n openOnClick: false,\n ...options,\n }),\n ],\n };\n return tool;\n};\n","import {\n OrderedList,\n OrderedListOptions,\n} from '@tiptap/extension-ordered-list';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygOrderedListTool: WysiwygEditorToolFactory<\n OrderedListOptions\n> = (vui, options) => {\n const tool: WysiwygEditorTool = {\n key: 'orderedList',\n icon: vui.icon('editorformatListNumbered'),\n active: ({ editor }) => editor.isActive('orderedList'),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleOrderedList().run();\n },\n floating: true,\n extensions: [OrderedList.configure(options)],\n };\n return tool;\n};\n","import { createVNode as _createVNode } from \"vue\";\nimport './color.scss';\nimport { VIcon } from '@fastkit/vui';\nimport TextStyle from '@tiptap/extension-text-style';\nimport { WysiwygColorExtension } from '../extensions';\nexport function createWysiwygColorTool(opts) {\n const WysiwygColorTool = vui => {\n const tool = {\n key: 'textColor',\n // active: ({ editor }) => editor.isActive('textStyle'),\n icon: ({\n editor\n }) => () => {\n const {\n color\n } = editor.getAttributes('textStyle');\n const style = {\n color\n };\n return _createVNode(\"span\", {\n \"class\": \"v-wysiwyg-color-tool__button\"\n }, [_createVNode(VIcon, {\n \"class\": \"v-wysiwyg-color-tool__button__icon\",\n \"name\": vui.icon('editorTextColor')\n }, null), _createVNode(\"span\", {\n \"class\": \"v-wysiwyg-color-tool__button__bar\",\n \"style\": style\n }, null)]);\n },\n onClick: (ctx, ev) => {\n ctx.vui.menu({\n class: 'v-wysiwyg-color-tool__menu',\n activator: ev,\n content: stack => _createVNode(\"div\", {\n \"class\": ['v-wysiwyg-color-tool__items', {\n 'v-wysiwyg-color-tool__items--with-label': opts.withLabel\n }]\n }, [opts.items.map((item, index) => _createVNode(\"button\", {\n \"key\": item.key == null ? index : item.key,\n \"class\": \"v-wysiwyg-color-tool__item\",\n \"type\": \"button\",\n \"onClick\": () => {\n const {\n color\n } = item;\n let command = ctx.editor.chain().focus();\n if (color) {\n command = command.setColor(color);\n } else {\n command = command.unsetColor();\n }\n command.run();\n stack.close();\n }\n }, [_createVNode(\"span\", {\n \"class\": \"v-wysiwyg-color-tool__item__color\",\n \"style\": item.color ? {\n color: item.color\n } : {}\n }, null), opts.withLabel && _createVNode(\"span\", {\n \"class\": \"v-wysiwyg-color-tool__item__name\"\n }, [item.name])]))])\n });\n },\n floating: true,\n extensions: [TextStyle, WysiwygColorExtension]\n };\n return tool;\n };\n return WysiwygColorTool;\n}","import { isVNode as _isVNode, createVNode as _createVNode } from \"vue\";\nimport { TextAlign } from '@tiptap/extension-text-align';\nimport { VButtonGroup, VButton } from '@fastkit/vui';\nfunction _isSlot(s) {\n return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);\n}\n/**\n * A list of available options for the text align attribute.\n * @remarks\n * `\"justify\"` has not yet been adopted because of ambiguity in browser support.\n */\nexport const WYSIWYG_TEXT_ALIGN_VALUES = ['left', 'center', 'right'\n// 'justify',\n];\n\n/** Text align value */\n\n/**\n * A list of nodes where the text align attribute should be applied to.\n */\nconst DEFAULT_TYPES = ['heading', 'paragraph'];\nconst conditions = WYSIWYG_TEXT_ALIGN_VALUES.map(value => [value, {\n textAlign: value\n}]);\nconst ICON_AT = {\n left: 'editorAlignLeft',\n center: 'editorAlignCenter',\n right: 'editorAlignRight'\n};\nfunction resolveOptions(rawOptions) {\n const types = rawOptions?.types || DEFAULT_TYPES.slice();\n const alignments = rawOptions?.alignments || WYSIWYG_TEXT_ALIGN_VALUES.slice();\n const defaultAlignment = rawOptions?.defaultAlignment || 'left';\n return {\n types,\n alignments,\n defaultAlignment\n };\n}\nfunction getCurrentAlign(editor, options) {\n for (const [align, condition] of conditions) {\n if (editor.isActive(condition)) return align;\n }\n return options.defaultAlignment;\n}\nexport const WysiwygTextAlignTool = (vui, options) => {\n const resolvedOptions = resolveOptions(options);\n const {\n alignments\n } = resolvedOptions;\n const getIcon = value => {\n const iconKey = ICON_AT[value];\n const icon = vui.icon(iconKey);\n if (icon === '$empty' || typeof icon === 'function') return;\n return icon;\n };\n const variant = vui.setting('plainVariant');\n const toolButtonActiveColor = vui.setting('primaryScope');\n const tool = {\n key: 'textAlign',\n icon: ({\n editor\n }) => getIcon(getCurrentAlign(editor, resolvedOptions)),\n // eslint-disable-next-line no-shadow\n onClick: async ({\n vui,\n editor\n }, ev) => {\n vui.menu({\n distance: 0,\n activator: ev,\n content: menu => {\n let _slot;\n return _createVNode(VButtonGroup, {\n \"variant\": variant\n }, _isSlot(_slot = alignments.map(value => {\n const isActive = editor.isActive({\n textAlign: value\n });\n return _createVNode(VButton, {\n \"tabindex\": -1,\n \"color\": isActive ? toolButtonActiveColor : undefined,\n \"key\": value,\n \"icon\": getIcon(value),\n \"onClick\": () => {\n editor.chain().focus().setTextAlign(value).run();\n }\n }, null);\n })) ? _slot : {\n default: () => [_slot]\n });\n }\n });\n },\n floating: true,\n extensions: [TextAlign.configure(resolvedOptions)]\n };\n return tool;\n};","import { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\nimport {\n createWysiwygCustomTagMark,\n WysiwygCustomTagSettings,\n WysiwygCustomTagExtension,\n} from '../extensions/custom-tag';\n\nexport interface WysiwygCustomTagToolSettings\n extends Pick<WysiwygEditorTool, 'icon' | 'floating'>,\n Partial<WysiwygCustomTagSettings> {}\n\n/**\n * Generate Custom Tag Tool\n *\n * @param markName - Mark name\n * @param settings - Tool Configuration\n * @returns Generated Tool\n */\nexport function createWysiwygCustomTagTool(\n markName: string,\n settings: WysiwygCustomTagToolSettings,\n): WysiwygEditorToolFactory {\n const Mark = createWysiwygCustomTagMark(markName, settings);\n const { icon, floating = true } = settings;\n\n return (vui) => {\n const tool: WysiwygEditorTool = {\n key: `customTag:${markName}`,\n icon,\n floating,\n active: ({ editor }) => editor.isActive(markName),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleCustomTag(markName).run();\n },\n extensions: [WysiwygCustomTagExtension, Mark.configure(settings)],\n };\n return tool;\n };\n}\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode, isVNode as _isVNode } from \"vue\";\nimport './VWysiwygEditor.scss';\nimport { defineComponent, computed, ref, watch, onBeforeUnmount } from 'vue';\nimport { createFormNodeWrapperProps, VFormControl, VControlField, createControlFieldProps, createTextableProps, createTextableEmits, TextableControl, createControlProps, useControl, createControlFieldProviderProps, useControlField, VTextCounter, defineSlots, useVui, VButton, VButtonGroup } from '@fastkit/vui';\nimport { EditorContent, useEditor, BubbleMenu } from '@tiptap/vue-3';\nimport { StarterKit } from '@tiptap/starter-kit';\nimport { VUI_WYSIWYG_EDITOR_SYMBOL } from '../../injections';\nimport { resolveRawWysiwygExtensions, resolveRawWysiwygEditorTools,\n// EditorEventsOptions,\nWysiwygEditorInitializeContext } from '../../schemes';\nfunction _isSlot(s) {\n return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);\n}\nconst slots = defineSlots();\nexport const VWysiwygEditor = defineComponent({\n name: 'VWysiwygEditor',\n props: {\n ...createTextableProps(),\n ...createFormNodeWrapperProps(),\n ...createControlFieldProps(),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n ...slots(),\n extensions: {\n type: Array,\n default: () => []\n },\n tools: {\n type: Array,\n default: () => []\n },\n floatingToolbar: Boolean,\n disabledMinHeight: Boolean,\n disabledMaxHeight: Boolean,\n removeDefaultWrapper: {\n type: Boolean,\n default: true\n }\n },\n emits: {\n ...createTextableEmits()\n },\n slots,\n setup(props, ctx) {\n const vui = useVui();\n const textRef = ref('');\n const toolButtonActiveColor = vui.setting('primaryScope');\n const wysiwygSettings = computed(() => resolveRawWysiwygEditorTools(props.tools, vui));\n const control = useControl(props);\n useControlField(props);\n const classes = computed(() => ['v-wysiwyg-editor', control.classes.value, `v-wysiwyg-editor--${control.size.value}`, {\n 'v-wysiwyg-editor--disabled-min-height': props.disabledMinHeight,\n 'v-wysiwyg-editor--disabled-max-height': props.disabledMaxHeight\n }]);\n const inputControl = new TextableControl(props, ctx, {\n nodeType: VUI_WYSIWYG_EDITOR_SYMBOL,\n validationValue: () => textRef.value\n });\n const getOutput = (editor, type) => {\n if (props.removeDefaultWrapper && editor.isEmpty) return '';\n if (type === 'html') return editor.getHTML();\n if (type === 'text') return editor.getText();\n return '';\n };\n const initializeCtx = new WysiwygEditorInitializeContext(() => vui, {\n onCreate: ({\n editor\n }) => {\n textRef.value = getOutput(editor, 'text');\n updateEditable();\n },\n onFocus: ({\n event\n }) => {\n inputControl.focusHandler(event);\n },\n onBlur: ({\n event\n }) => {\n inputControl.blurHandler(event);\n },\n onUpdate: ({\n editor\n }) => {\n inputControl.value = getOutput(editor, 'html');\n textRef.value = getOutput(editor, 'text');\n }\n });\n const extensions = [StarterKit.configure({\n bold: false,\n bulletList: false,\n orderedList: false,\n history: false,\n italic: false\n }), ...resolveRawWysiwygExtensions(props.extensions, initializeCtx), ...wysiwygSettings.value.extensions];\n const updateEditable = () => {\n if (!editor.value) return;\n editor.value.setEditable(inputControl.canOperation);\n };\n watch(() => inputControl.canOperation, updateEditable);\n watch(() => props.modelValue, modelValue => {\n const $editor = editor.value;\n if (!$editor || getOutput($editor, 'html') === modelValue) return;\n $editor.commands.setContent(modelValue == null ? '' : modelValue, false);\n textRef.value = getOutput($editor, 'text');\n });\n initializeCtx.on('create', ({\n editor\n }) => {\n textRef.value = getOutput(editor, 'text');\n updateEditable();\n });\n const editor = useEditor({\n ...initializeCtx.editorOptions(),\n autofocus: props.autofocus,\n content: props.modelValue,\n extensions,\n editorProps: {\n attributes: {\n class: 'v-wysiwyg-editor__input__prose'\n }\n }\n });\n const focus = (position, options) => editor.value?.chain().focus(position, options);\n const wysiwygContext = computed(() => ({\n vui,\n editor: editor.value\n }));\n const createTools = (bubbleMenu = false) => {\n let _slot;\n const {\n value: settings\n } = wysiwygSettings;\n const {\n value: context\n } = wysiwygContext;\n const tools = bubbleMenu ? settings.tools.filter(t => !!t.floating) : settings.tools;\n const _editor = editor.value;\n const variant = vui.setting(bubbleMenu ? 'containedVariant' : 'plainVariant');\n return _createVNode(VButtonGroup, {\n \"class\": ['v-wysiwyg-editor__toolbar', {\n 'v-wysiwyg-editor__floating-toolbar': props.floatingToolbar\n }],\n \"variant\": variant\n }, _isSlot(_slot = tools.map(({\n key,\n icon,\n onClick,\n disabled,\n active\n }) => {\n const isActive = !!_editor && resolveContextualValue(context, active);\n const isDisabled = !inputControl.canOperation || !!_editor && resolveContextualValue(context, disabled);\n let iconName;\n let child;\n if (typeof icon === 'function') {\n if (_editor) {\n const _child = icon(context);\n if (typeof _child === 'function') {\n child = _child();\n } else {\n iconName = _child;\n }\n }\n } else {\n iconName = icon;\n }\n if (!iconName && child == null) return;\n return _createVNode(VButton, {\n \"tabindex\": -1,\n \"key\": key,\n \"icon\": iconName,\n \"onClick\": ev => onClick(context, ev),\n \"color\": isActive ? toolButtonActiveColor : undefined,\n \"disabled\": isDisabled\n }, _isSlot(child) ? child : {\n default: () => [child]\n });\n })) ? _slot : {\n default: () => [_slot]\n });\n };\n onBeforeUnmount(() => {\n editor.value?.destroy();\n });\n const api = {\n get editor() {\n return editor.value;\n },\n control: inputControl\n };\n ctx.expose(api);\n const handleClickLabel = ev => {\n focus('start', {\n scrollIntoView: true\n });\n };\n const defaultSlot = () => {\n let _slot2;\n return _createVNode(\"div\", {\n \"class\": \"v-wysiwyg-editor__body\"\n }, [_createVNode(EditorContent, {\n \"class\": \"v-wysiwyg-editor__input__element wysiwyg\",\n \"editor\": editor.value\n }, null), !props.floatingToolbar && !!editor.value && !inputControl.isReadonly && _createVNode(BubbleMenu, {\n \"class\": \"v-wysiwyg-editor__bubble-menu\",\n \"editor\": editor.value\n }, _isSlot(_slot2 = createTools(true)) ? _slot2 : {\n default: () => [_slot2]\n })]);\n };\n const formControlDefaultSlot = () => _createVNode(\"div\", {\n \"class\": \"v-wysiwyg-editor__wrapper\"\n }, [!inputControl.isReadonly && createTools(), _createVNode(VControlField, {\n \"class\": \"v-wysiwyg-editor__input\",\n \"autoHeight\": true,\n \"startAdornment\": props.startAdornment,\n \"endAdornment\": props.endAdornment,\n \"size\": control.size.value\n }, {\n ...ctx.slots,\n default: defaultSlot\n })]);\n const infoAppendsSlot = () => {\n const {\n counterResult\n } = inputControl;\n if (!counterResult) return;\n return _createVNode(VTextCounter, counterResult, null);\n };\n return () => _createVNode(VFormControl, {\n \"nodeControl\": inputControl,\n \"class\": classes.value,\n \"label\": props.label,\n \"hint\": props.hint,\n \"hinttip\": props.hinttip,\n \"hiddenInfo\": props.hiddenInfo,\n \"requiredChip\": props.requiredChip,\n \"onClickLabel\": handleClickLabel\n }, {\n ...ctx.slots,\n default: formControlDefaultSlot,\n infoAppends: infoAppendsSlot\n });\n }\n});\nfunction resolveContextualValue(ctx,\n// eslint-disable-next-line no-shadow\nsource) {\n return typeof source === 'function' ? source(ctx) : source;\n}"]}
1
+ {"version":3,"sources":["../src/schemes.ts","../src/injections.ts","../src/extensions/linter/Linter.tsx","../src/extensions/linter/utils.ts","../src/extensions/linter/LinterPlugin.ts","../src/extensions/linter/plugins/BadWords.tsx","../src/extensions/linter/plugins/HeadingLevel.ts","../src/extensions/linter/plugins/Punctuation.ts","../src/extensions/color.ts","../src/extensions/custom-tag.ts","../src/tools/bullet-list.ts","../src/tools/format-bold.ts","../src/tools/format-italic.ts","../src/tools/format-underline.ts","../src/tools/history.ts","../src/tools/link.ts","../src/tools/ordered-list.ts","../src/tools/color.tsx","../src/tools/text-align.tsx","../src/tools/custom-tag.ts","../src/components/VWysiwygEditor/VWysiwygEditor.tsx"],"names":["_createVNode","_createTextVNode","Extension","name","vui","_isVNode","Mark","_isSlot","editor","VButtonGroup","VButton"],"mappings":"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","file":"vui-wysiwyg.mjs","sourcesContent":["import { type VuiService, type IconName } from '@fastkit/vui';\nimport {\n type Editor,\n type Extensions,\n type Node,\n type Extension,\n type Mark,\n type AnyExtension,\n type EditorOptions,\n} from '@tiptap/vue-3';\nimport { VNodeChild } from 'vue';\n\nconst EDITOR_EVENTS = [\n 'beforeCreate',\n 'create',\n 'update',\n 'selectionUpdate',\n 'transaction',\n 'focus',\n 'blur',\n 'destroy',\n] as const;\n\ntype PrefixedEventName<S extends string> = `on${Capitalize<S>}`;\n\nconst prefixedEventName = <S extends string>(source: S): PrefixedEventName<S> =>\n `on${source.charAt(0).toUpperCase()}${source.slice(1)}` as any;\n\nexport type WysiwygEditorEvent = (typeof EDITOR_EVENTS)[number];\n\nexport type WysiwygEditorPrefixedEvent = PrefixedEventName<WysiwygEditorEvent>;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface WysiwygEditorEventsOptions\n extends Partial<Pick<EditorOptions, WysiwygEditorPrefixedEvent>> {}\n\nexport type WysiwygEditorEventsBucket = {\n [EV in WysiwygEditorEvent]: NonNullable<\n WysiwygEditorEventsOptions[PrefixedEventName<EV>]\n >[];\n};\n\nexport class WysiwygEditorInitializeContext {\n readonly listeners: WysiwygEditorEventsBucket = {} as any;\n\n private readonly _vui: () => VuiService;\n\n get vui() {\n return this._vui();\n }\n\n constructor(\n vuiGetter: () => VuiService,\n opts: WysiwygEditorEventsOptions = {},\n ) {\n this._vui = vuiGetter;\n\n EDITOR_EVENTS.forEach((event) => {\n this.listeners[event] = [];\n const prefixed = prefixedEventName(event);\n const fn = opts[prefixed];\n fn && this.listeners[event].push(fn as any);\n });\n }\n\n on<EV extends WysiwygEditorEvent>(\n ev: EV,\n handler: NonNullable<WysiwygEditorEventsOptions[PrefixedEventName<EV>]>,\n ) {\n this.listeners[ev].push(handler);\n return () => this.off(ev, handler);\n }\n\n off<EV extends WysiwygEditorEvent>(\n ev: EV,\n handler: NonNullable<WysiwygEditorEventsOptions[PrefixedEventName<EV>]>,\n ) {\n this.listeners[ev] = this.listeners[ev].filter(\n (_handler) => _handler !== handler,\n ) as any;\n }\n\n editorOptions() {\n const opts: WysiwygEditorEventsOptions = {};\n\n EDITOR_EVENTS.forEach((event) => {\n const prefixed = prefixedEventName(event);\n opts[prefixed] = (props) => {\n const handlers = this.listeners[event];\n handlers.forEach((handler) => {\n handler(props as any);\n });\n };\n });\n\n return opts;\n }\n}\n\nexport interface WysiwygEditorContext {\n editor: Editor;\n vui: VuiService;\n}\n\nexport type WysiwygExtensionFactory<Options = any, Storage = any> = (\n ctx: WysiwygEditorInitializeContext,\n) =>\n | Extension<Options, Storage>\n | Node<Options, Storage>\n | Mark<Options, Storage>;\n\nexport interface CreatedWysiwygExtension<Options = any, Storage = any> {\n __isCreatedWysiwygExtension: true;\n _configs: Partial<Options>[];\n configure(\n options?: Partial<Options>,\n ): CreatedWysiwygExtension<Options, Storage>;\n raw: WysiwygExtensionSource<Options, Storage>;\n}\n\nexport type WysiwygExtensionSource<Options = any, Storage = any> =\n | Extension<Options, Storage>\n | Node<Options, Storage>\n | Mark<Options, Storage>\n | WysiwygExtensionFactory<Options, Storage>;\n\nexport type RawWysiwygExtension<Options = any, Storage = any> =\n | WysiwygExtensionSource<Options, Storage>\n | CreatedWysiwygExtension<Options, Storage>;\n\n// export function createWysiwygExtension<Options = any, Storage = any>(\n// extension: Extension<Options, Storage>,\n// ): Extension<Options, Storage>;\n// export function createWysiwygExtension<Options = any, Storage = any>(\n// node: Node<Options, Storage>,\n// ): Node<Options, Storage>;\n// export function createWysiwygExtension<Options = any, Storage = any>(\n// mark: Mark<Options, Storage>,\n// ): Mark<Options, Storage>;\n// export function createWysiwygExtension<Options = any, Storage = any>(\n// factory: WysiwygExtensionFactory<Options, Storage>,\n// ): WysiwygExtensionFactory<Options, Storage>;\n\nfunction isCreatedWysiwygExtension<Options = any, Storage = any>(\n source: unknown,\n): source is CreatedWysiwygExtension<Options, Storage> {\n return (\n !!source &&\n typeof source === 'object' &&\n (source as CreatedWysiwygExtension).__isCreatedWysiwygExtension === true\n );\n}\n\nexport function createWysiwygExtension<Options = any, Storage = any>(\n extension: WysiwygExtensionSource<Options, Storage>,\n) {\n const ext: CreatedWysiwygExtension<Options, Storage> = {\n __isCreatedWysiwygExtension: true,\n _configs: [],\n configure: (opts) => {\n opts && ext._configs.push(opts);\n return ext;\n },\n raw: extension,\n };\n return ext;\n}\n\nfunction resolveRawWysiwygExtension(\n raw: RawWysiwygExtension,\n ctx: WysiwygEditorInitializeContext,\n): AnyExtension {\n if (isCreatedWysiwygExtension(raw)) {\n const { raw: _raw, _configs } = raw;\n let ext = typeof _raw === 'function' ? _raw(ctx) : _raw;\n _configs.forEach((config) => {\n ext = ext.configure(config);\n });\n return ext;\n }\n return typeof raw === 'function' ? raw(ctx) : raw;\n}\n\nexport function resolveRawWysiwygExtensions(\n raws: RawWysiwygExtension[],\n ctx: WysiwygEditorInitializeContext,\n) {\n return raws.map((raw) => resolveRawWysiwygExtension(raw, ctx));\n}\n\nexport type WysiwygEditorToolIcon =\n | IconName\n | ((ctx: WysiwygEditorContext) => IconName | (() => VNodeChild) | undefined);\n\n/**\n * Tool Configuration\n */\nexport interface WysiwygEditorTool {\n /**\n * Tool Key\n *\n * Must be unique to identify the tool\n */\n key: string;\n /** Icons to be displayed on the toolbar */\n icon: WysiwygEditorToolIcon;\n /** Conditions for displaying the icon as active */\n active?: boolean | ((ctx: WysiwygEditorContext) => boolean);\n /** Conditions for deactivating the icon */\n disabled?: boolean | ((ctx: WysiwygEditorContext) => boolean);\n /** Handler when mark text is clicked */\n onClick: (ctx: WysiwygEditorContext, ev: MouseEvent) => any;\n /** Whether to display tools in floating menu or not */\n floating?: boolean;\n /** Extensions that the tool depends on */\n extensions?: Extensions;\n}\n\nexport type WysiwygEditorToolFactory<Options = void> = (\n vui: VuiService,\n options?: Options,\n) => WysiwygEditorTool | WysiwygEditorTool[];\n\nexport type RawWysiwygEditorTool =\n | WysiwygEditorTool\n | WysiwygEditorToolFactory<any>;\n\nfunction resolveRawWysiwygEditorTool(\n raw: RawWysiwygEditorTool,\n vui: VuiService,\n) {\n return typeof raw === 'function' ? raw(vui) : raw;\n}\n\nexport interface ResolvedWysiwygEditorSettings {\n tools: WysiwygEditorTool[];\n extensions: Extensions;\n}\n\nexport function resolveRawWysiwygEditorTools(\n rawTools: RawWysiwygEditorTool[],\n vui: VuiService,\n): ResolvedWysiwygEditorSettings {\n const tools: WysiwygEditorTool[] = [];\n const extensions: Extensions = [];\n\n rawTools.forEach((raw) => {\n let resolved = resolveRawWysiwygEditorTool(raw, vui);\n if (!Array.isArray(resolved)) {\n resolved = [resolved];\n }\n resolved.forEach((tool) => {\n tools.push(tool);\n if (tool.extensions) {\n extensions.push(...tool.extensions);\n }\n });\n });\n\n return {\n tools,\n extensions,\n };\n}\n","export const VUI_WYSIWYG_EDITOR_SYMBOL = 'vui-wysiwyg-editor';\n","import { createVNode as _createVNode } from \"vue\";\nimport './Linter.scss';\nimport { Extension } from '@tiptap/vue-3';\nimport { Decoration, DecorationSet } from '@tiptap/pm/view';\nimport { Plugin, PluginKey, TextSelection } from '@tiptap/pm/state';\nimport { createWysiwygExtension } from '../../schemes';\nconst PROBLEM_CLASS_NAME = 'v-linter__problem';\nconst ISSUE_ICON_CLASS_NAME = 'v-linter__issue-icon';\nconst ISSUE_DATASET_NAME = 'data-issue-id';\nfunction resolveWysiwygLinterFixMessage(message) {\n return typeof message === 'function' ? message() : message;\n}\nfunction renderIcon(view, issue) {\n const {\n level = 'warning'\n } = issue;\n const icon = document.createElement('div');\n const message = resolveWysiwygLinterFixMessage(issue.message);\n icon.className = `${ISSUE_ICON_CLASS_NAME} ${level}-scope`;\n icon.setAttribute(ISSUE_DATASET_NAME, issue.id);\n if (typeof message === 'string') {\n icon.title = message;\n }\n return icon;\n}\nfunction runAllLinterPlugins(doc, plugins) {\n const decorations = [];\n const issues = plugins.map(RegisteredLinterPlugin => new RegisteredLinterPlugin(doc).scan().getResults()).flat();\n issues.forEach(issue => {\n const {\n level = 'warning',\n icon\n } = issue;\n const message = resolveWysiwygLinterFixMessage(issue.message);\n decorations.push(Decoration.inline(issue.from, issue.to, {\n class: `${PROBLEM_CLASS_NAME} ${level}-scope`,\n 'data-issue-id': issue.id,\n title: typeof message === 'string' ? message : undefined\n }));\n if (icon) {\n decorations.push(Decoration.widget(issue.from, view => renderIcon(view, issue)));\n }\n });\n const decorationSet = DecorationSet.create(doc, decorations);\n return {\n issues,\n decorationSet\n };\n}\nexport const WysiwygLinter = createWysiwygExtension(ctx => {\n function showMenu(view, issue, event) {\n const message = resolveWysiwygLinterFixMessage(issue.message);\n const variant = ctx.vui.setting('containedVariant');\n const scope = ctx.vui.setting(`${issue.level}Scope`);\n return ctx.vui.menu({\n activator: event,\n content: stack => _createVNode(\"div\", {\n \"class\": \"v-linter__issue-menu__body\"\n }, [_createVNode(\"div\", {\n \"class\": ['v-linter__issue-menu__message', `${scope}-scope ${variant}`]\n }, [message]), issue.fix.length && _createVNode(\"div\", {\n \"class\": \"v-linter__issue-menu__fixers\"\n }, [issue.fix.map((fixer, index) => _createVNode(\"div\", {\n \"key\": index,\n \"class\": \"v-linter__issue-menu__fixer\"\n }, [_createVNode(\"button\", {\n \"type\": \"button\",\n \"class\": \"v-linter__issue-menu__fixer__button\",\n \"onClick\": () => {\n stack.close();\n fixer.handler(view, issue);\n }\n }, [_createVNode(\"span\", {\n \"class\": \"v-linter__issue-menu__fixer__button__message\"\n }, [resolveWysiwygLinterFixMessage(fixer.message)])])]))])])\n });\n }\n return Extension.create({\n name: 'linter',\n addOptions() {\n return {\n plugins: []\n };\n },\n addStorage() {\n return {\n issues: []\n };\n },\n addProseMirrorPlugins() {\n const {\n plugins\n } = this.options;\n const {\n storage\n } = this;\n const runAll = doc => {\n const {\n issues,\n decorationSet\n } = runAllLinterPlugins(doc, plugins);\n storage.issues = issues;\n return decorationSet;\n };\n const getIssue = id => storage.issues.find(issue => issue.id === id);\n const getIssueElementByEvent = source => {\n if (!source || !(source instanceof HTMLElement)) {\n return;\n }\n const issueId = source.getAttribute(ISSUE_DATASET_NAME);\n const issue = issueId && getIssue(issueId);\n if (!issue) return;\n return {\n issue\n };\n };\n const linterPlugin = new Plugin({\n key: new PluginKey('linter'),\n state: {\n init(_, {\n doc\n }) {\n return runAll(doc);\n },\n apply(transaction, oldState) {\n return transaction.docChanged ? runAll(transaction.doc) : oldState;\n }\n },\n props: {\n decorations(state) {\n return linterPlugin.getState(state);\n },\n handleClick(view, _, event) {\n const info = getIssueElementByEvent(event.target);\n if (!info) {\n return false;\n }\n const {\n issue\n } = info;\n const {\n from,\n to\n } = issue;\n const focus = () => view.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.doc, from, to)).scrollIntoView());\n focus();\n showMenu(view, issue, event);\n return true;\n }\n }\n });\n return [linterPlugin];\n }\n });\n});","/* eslint-disable eqeqeq */\n/* eslint-disable no-bitwise */\nlet IDX = 256;\nlet BUFFER: any;\nconst HEX: any = [];\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nexport function cheepUUID() {\n let i = 0;\n let num;\n let out = '';\n\n if (!BUFFER || IDX + 16 > 256) {\n BUFFER = Array((i = 256));\n while (i--) BUFFER[i] = (256 * Math.random()) | 0;\n // eslint-disable-next-line no-multi-assign\n i = IDX = 0;\n }\n\n for (; i < 16; i++) {\n num = BUFFER[IDX + i];\n if (i == 6) out += HEX[(num & 15) | 64];\n else if (i == 8) out += HEX[(num & 63) | 128];\n else out += HEX[num];\n\n if (i & 1 && i > 1 && i < 11) out += '-';\n }\n\n IDX++;\n return out;\n}\n","import { VNodeChild } from 'vue';\nimport { Node as ProsemirrorNode } from '@tiptap/pm/model';\nimport { EditorView } from '@tiptap/pm/view';\nimport { cheepUUID } from './utils';\n\nexport type WysiwygLinterFixFn = (\n view: EditorView,\n issue: WysiwygLinterResult,\n) => any;\n\nexport type WysiwygLinterFixMessage = string | (() => VNodeChild);\n\nexport interface WysiwygLinterFixer {\n message: WysiwygLinterFixMessage;\n handler: WysiwygLinterFixFn;\n}\n\nexport type WysiwygLinterResultLevel = 'warning' | 'error';\n\n// fixers\nexport interface WysiwygLinterResult {\n id: string;\n icon: boolean;\n level: WysiwygLinterResultLevel;\n message: WysiwygLinterFixMessage;\n from: number;\n to: number;\n fix: WysiwygLinterFixer[];\n}\n\nexport interface RawLinterResult\n extends Omit<WysiwygLinterResult, 'level' | 'fix' | 'id' | 'icon'> {\n level?: WysiwygLinterResultLevel;\n icon?: boolean;\n fix?: WysiwygLinterFixer | WysiwygLinterFixer[];\n}\n\nexport class WysiwygLinterPlugin {\n protected doc: ProsemirrorNode;\n\n private results: Array<WysiwygLinterResult> = [];\n\n constructor(doc: ProsemirrorNode) {\n this.doc = doc;\n }\n\n record(result: RawLinterResult) {\n const { fix = [], icon = false } = result;\n this.results.push({\n level: 'error',\n id: cheepUUID(),\n ...result,\n fix: Array.isArray(fix) ? fix : [fix],\n icon,\n });\n }\n\n scan() {\n return this;\n }\n\n getResults() {\n return this.results;\n }\n}\n","import { createTextVNode as _createTextVNode, createVNode as _createVNode } from \"vue\";\nimport { WysiwygLinterPlugin } from '../LinterPlugin';\nexport function WysiwygLinterBadWords(words) {\n const regex = new RegExp(`\\\\b(${words.join('|')})\\\\b`);\n\n // eslint-disable-next-line no-shadow\n return class WysiwygLinterBadWords extends WysiwygLinterPlugin {\n scan() {\n this.doc.descendants((node, position) => {\n if (!node.isText) {\n return;\n }\n const matches = regex.exec(node.text);\n if (matches) {\n const fixValue = `${matches[0]}!!!!!`;\n this.record({\n level: 'warning',\n message: `Try not to say '${matches[0]}'`,\n from: position + matches.index,\n to: position + matches.index + matches[0].length,\n fix: [{\n message: () => _createVNode(\"span\", null, [_createVNode(\"code\", null, [fixValue]), _createTextVNode(\"\\u306B\\u4FEE\\u6B63\\u3059\\u308B\\u3002\")]),\n handler: () => {\n // eslint-disable-next-line no-console\n console.log('hoge');\n }\n }, {\n message: 'どうにかする',\n handler: () => {\n // eslint-disable-next-line no-console\n console.log('hoge');\n }\n }]\n });\n }\n });\n return this;\n }\n };\n}","import { EditorView } from '@tiptap/pm/view';\nimport {\n WysiwygLinterPlugin,\n WysiwygLinterResult as Issue,\n} from '../LinterPlugin';\n\nexport class WysiwygLinterHeadingLevel extends WysiwygLinterPlugin {\n fixHeader(level: number) {\n // eslint-disable-next-line func-names\n return function ({ state, dispatch }: EditorView, issue: Issue) {\n dispatch(state.tr.setNodeMarkup(issue.from - 1, undefined, { level }));\n };\n }\n\n scan() {\n let lastHeadLevel: number | null = null;\n\n this.doc.descendants((node, position) => {\n if (node.type.name === 'heading') {\n // Check whether heading levels fit under the current level\n const { level } = node.attrs;\n\n if (lastHeadLevel != null && level > lastHeadLevel + 1) {\n this.record({\n message: `Heading too small (${level} under ${lastHeadLevel})`,\n from: position + 1,\n to: position + 1 + node.content.size,\n fix: {\n message: '修正する',\n handler: this.fixHeader(lastHeadLevel + 1),\n },\n });\n }\n lastHeadLevel = level;\n }\n });\n\n return this;\n }\n}\n","import { EditorView } from '@tiptap/pm/view';\nimport {\n WysiwygLinterPlugin,\n WysiwygLinterResult as Issue,\n} from '../LinterPlugin';\n\nexport class WysiwygLinterPunctuation extends WysiwygLinterPlugin {\n public regex = / ([,.!?:]) ?/g;\n\n fix(replacement: any) {\n // eslint-disable-next-line func-names\n return function ({ state, dispatch }: EditorView, issue: Issue) {\n dispatch(\n state.tr.replaceWith(\n issue.from,\n issue.to,\n state.schema.text(replacement),\n ),\n );\n };\n }\n\n scan() {\n this.doc.descendants((node, position) => {\n if (!node.isText) {\n return;\n }\n\n if (!node.text) {\n return;\n }\n\n const matches = this.regex.exec(node.text);\n\n if (matches) {\n this.record({\n message: 'Suspicious spacing around punctuation',\n from: position + matches.index,\n to: position + matches.index + matches[0].length,\n fix: {\n message: 'Fix it!!!',\n handler: this.fix(`${matches[1]} `),\n },\n });\n }\n });\n\n return this;\n }\n}\n","import { Extension } from '@tiptap/vue-3';\nimport '@tiptap/extension-text-style';\n\nexport type WysiwygColorOptions = {\n types: string[];\n};\n\ndeclare module '@tiptap/vue-3' {\n interface Commands<ReturnType> {\n color: {\n /**\n * Set the text color\n */\n setColor: (color: string) => ReturnType;\n /**\n * Unset the text color\n */\n unsetColor: () => ReturnType;\n };\n }\n}\n\nexport const WysiwygColorExtension = Extension.create<WysiwygColorOptions>({\n name: 'color',\n\n addOptions() {\n return {\n types: ['textStyle'],\n };\n },\n\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n color: {\n default: null,\n parseHTML: (element) => element.style.color.replace(/['\"]+/g, ''),\n renderHTML: (attributes) => {\n if (!attributes.color) {\n return {};\n }\n\n return {\n style: `color: ${attributes.color}`,\n };\n },\n },\n },\n },\n ];\n },\n\n addCommands() {\n return {\n setColor:\n (color) =>\n ({ chain }) =>\n chain().setMark('textStyle', { color }).run(),\n unsetColor:\n () =>\n ({ chain }) =>\n chain()\n .setMark('textStyle', { color: null })\n .removeEmptyTextStyle()\n .run(),\n };\n },\n});\n","import { Extension, mergeAttributes, Mark } from '@tiptap/vue-3';\nimport '@tiptap/extension-text-style';\n// import '@tiptap/vue-3';\n\nexport type WysiwygCustomTagSettings = {\n /**\n * tag name\n *\n * Either the html default tag name or a custom tag name is acceptable\n *\n * @default \"span\"\n */\n tag: string;\n\n /**\n * HTML Attributes\n *\n * Attributes to be assigned to tags such as `class`, `data-xxx`, etc.\n */\n attrs?: Record<any, string>;\n};\n\ndeclare module '@tiptap/vue-3' {\n interface Commands<ReturnType> {\n customTag: {\n /**\n * Set the custom tag\n */\n setCustomTag: (markName: string) => ReturnType;\n /**\n * Toggle the custom tag\n */\n toggleCustomTag: (markName: string) => ReturnType;\n /**\n * Unset the custom tag\n */\n unsetCustomTag: (markName: string) => ReturnType;\n };\n }\n}\n\n// export type WysiwygCustomTagSettings = WysiwygCustomTagOptions & {\n// /**\n// * extension name\n// */\n// name: string;\n// };\n\nexport function createWysiwygCustomTagMark(\n name: string,\n settings: Partial<WysiwygCustomTagSettings>,\n) {\n const { tag = 'span', attrs } = settings;\n const attrEntries = attrs && Object.entries(attrs);\n // eslint-disable-next-line no-shadow\n const attrNames = attrEntries && attrEntries.map(([name]) => name);\n\n const getElementAttrs = (\n el: HTMLElement,\n ): Record<any, string> | undefined => {\n if (!attrNames) return;\n\n return (\n el\n .getAttributeNames()\n // eslint-disable-next-line no-shadow\n .reduce((acc, name) => ({ ...acc, [name]: el.getAttribute(name) }), {})\n );\n };\n\n const isMatchedElementAttrs = (elAttrs: Record<any, string>): boolean => {\n if (!attrEntries) return true;\n // eslint-disable-next-line no-shadow\n return attrEntries.every(([name, value]) => elAttrs[name] === value);\n };\n\n return Mark.create<WysiwygCustomTagSettings>({\n name,\n\n addOptions() {\n return {\n tag,\n attrs: attrs && { ...attrs },\n };\n },\n parseHTML() {\n return [\n {\n tag,\n getAttrs: (el: any) => {\n if (!attrs) return null;\n const elAttrs = getElementAttrs(el);\n if (!elAttrs) return false;\n return isMatchedElementAttrs(el) && null;\n },\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n tag,\n attrs ? mergeAttributes(attrs, HTMLAttributes) : HTMLAttributes,\n 0,\n ];\n },\n });\n}\n\nexport const WysiwygCustomTagExtension =\n Extension.create<WysiwygCustomTagSettings>({\n name: 'custom-tag',\n addCommands() {\n return {\n setCustomTag:\n (markName) =>\n ({ chain }) =>\n chain().setMark(markName).run(),\n unsetCustomTag:\n (markName) =>\n ({ chain }) =>\n chain().unsetMark(markName).run(),\n toggleCustomTag:\n (markName) =>\n ({ chain }) =>\n chain().toggleMark(markName).run(),\n };\n },\n });\n","import { BulletList, BulletListOptions } from '@tiptap/extension-bullet-list';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygBulletListTool: WysiwygEditorToolFactory<\n BulletListOptions\n> = (vui, options) => {\n const tool: WysiwygEditorTool = {\n key: 'bulletList',\n icon: vui.icon('editorformatListBulleted'),\n active: ({ editor }) => editor.isActive('bulletList'),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleBulletList().run();\n },\n floating: true,\n extensions: [BulletList.configure(options)],\n };\n return tool;\n};\n","import { Bold, BoldOptions } from '@tiptap/extension-bold';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygFormatBoldTool: WysiwygEditorToolFactory<BoldOptions> = (\n vui,\n options,\n) => {\n const tool: WysiwygEditorTool = {\n key: 'formatBold',\n icon: vui.icon('editorformatBold'),\n active: ({ editor }) => editor.isActive('bold'),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleBold().run();\n },\n floating: true,\n extensions: [Bold.configure(options)],\n };\n return tool;\n};\n","import { Italic, ItalicOptions } from '@tiptap/extension-italic';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygFormatItalicTool: WysiwygEditorToolFactory<\n ItalicOptions\n> = (vui, options) => {\n const tool: WysiwygEditorTool = {\n key: 'formatItalic',\n icon: vui.icon('editorformatItalic'),\n active: ({ editor }) => editor.isActive('italic'),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleItalic().run();\n },\n floating: true,\n extensions: [Italic.configure(options)],\n };\n return tool;\n};\n","import { Underline, UnderlineOptions } from '@tiptap/extension-underline';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygFormatUnderlineTool: WysiwygEditorToolFactory<\n UnderlineOptions\n> = (vui, options) => {\n const tool: WysiwygEditorTool = {\n key: 'formatUnderline',\n icon: vui.icon('editorformatUnderline'),\n active: ({ editor }) => editor.isActive('underline'),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleUnderline().run();\n },\n floating: true,\n extensions: [Underline.configure(options)],\n };\n return tool;\n};\n","import { History, HistoryOptions } from '@tiptap/extension-history';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygHistoryTool: WysiwygEditorToolFactory<HistoryOptions> = (\n vui,\n options,\n) => {\n const undo: WysiwygEditorTool = {\n key: 'history-undo',\n icon: vui.icon('editorUndo'),\n disabled: ({ editor }) => !editor.can().undo(),\n onClick: ({ editor }) => {\n editor.chain().focus().undo().run();\n },\n extensions: [History.configure(options)],\n };\n const redo: WysiwygEditorTool = {\n key: 'history-redo',\n icon: vui.icon('editorRedo'),\n disabled: ({ editor }) => !editor.can().redo(),\n onClick: ({ editor }) => {\n editor.chain().focus().redo().run();\n },\n };\n return [undo, redo];\n};\n","import { Link, LinkOptions } from '@tiptap/extension-link';\nimport { validateIf, url } from '@fastkit/vui';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygLinkTool: WysiwygEditorToolFactory<LinkOptions> = (\n vui,\n options,\n) => {\n const tool: WysiwygEditorTool = {\n key: 'link',\n icon: vui.icon('editorLink'),\n active: ({ editor }) => editor.isActive('link'),\n // eslint-disable-next-line no-shadow\n onClick: async ({ vui, editor }) => {\n const { href = '' } = editor.getAttributes('link');\n const result = await vui.prompt({\n input: {\n label: 'Link URL',\n rules: [validateIf, url],\n initialValue: href,\n size: 'sm',\n autofocus: true,\n },\n });\n\n if (result === undefined || result === false) {\n return;\n }\n\n const range = editor.chain().focus().extendMarkRange('link');\n\n if (!result) {\n range.unsetLink().run();\n } else {\n range\n .setLink({\n href: result,\n })\n .run();\n }\n },\n floating: true,\n extensions: [\n Link.configure({\n openOnClick: false,\n ...options,\n }),\n ],\n };\n return tool;\n};\n","import {\n OrderedList,\n OrderedListOptions,\n} from '@tiptap/extension-ordered-list';\nimport { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\n\nexport const WysiwygOrderedListTool: WysiwygEditorToolFactory<\n OrderedListOptions\n> = (vui, options) => {\n const tool: WysiwygEditorTool = {\n key: 'orderedList',\n icon: vui.icon('editorformatListNumbered'),\n active: ({ editor }) => editor.isActive('orderedList'),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleOrderedList().run();\n },\n floating: true,\n extensions: [OrderedList.configure(options)],\n };\n return tool;\n};\n","import { createVNode as _createVNode } from \"vue\";\nimport './color.scss';\nimport { VIcon } from '@fastkit/vui';\nimport TextStyle from '@tiptap/extension-text-style';\nimport { WysiwygColorExtension } from '../extensions';\nexport function createWysiwygColorTool(opts) {\n const WysiwygColorTool = vui => {\n const tool = {\n key: 'textColor',\n // active: ({ editor }) => editor.isActive('textStyle'),\n icon: ({\n editor\n }) => () => {\n const {\n color\n } = editor.getAttributes('textStyle');\n const style = {\n color\n };\n return _createVNode(\"span\", {\n \"class\": \"v-wysiwyg-color-tool__button\"\n }, [_createVNode(VIcon, {\n \"class\": \"v-wysiwyg-color-tool__button__icon\",\n \"name\": vui.icon('editorTextColor')\n }, null), _createVNode(\"span\", {\n \"class\": \"v-wysiwyg-color-tool__button__bar\",\n \"style\": style\n }, null)]);\n },\n onClick: (ctx, ev) => {\n ctx.vui.menu({\n class: 'v-wysiwyg-color-tool__menu',\n activator: ev,\n content: stack => _createVNode(\"div\", {\n \"class\": ['v-wysiwyg-color-tool__items', {\n 'v-wysiwyg-color-tool__items--with-label': opts.withLabel\n }]\n }, [opts.items.map((item, index) => _createVNode(\"button\", {\n \"key\": item.key == null ? index : item.key,\n \"class\": \"v-wysiwyg-color-tool__item\",\n \"type\": \"button\",\n \"onClick\": () => {\n const {\n color\n } = item;\n let command = ctx.editor.chain().focus();\n if (color) {\n command = command.setColor(color);\n } else {\n command = command.unsetColor();\n }\n command.run();\n stack.close();\n }\n }, [_createVNode(\"span\", {\n \"class\": \"v-wysiwyg-color-tool__item__color\",\n \"style\": item.color ? {\n color: item.color\n } : {}\n }, null), opts.withLabel && _createVNode(\"span\", {\n \"class\": \"v-wysiwyg-color-tool__item__name\"\n }, [item.name])]))])\n });\n },\n floating: true,\n extensions: [TextStyle, WysiwygColorExtension]\n };\n return tool;\n };\n return WysiwygColorTool;\n}","import { isVNode as _isVNode, createVNode as _createVNode } from \"vue\";\nimport { TextAlign } from '@tiptap/extension-text-align';\nimport { VButtonGroup, VButton } from '@fastkit/vui';\nfunction _isSlot(s) {\n return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);\n}\n/**\n * A list of available options for the text align attribute.\n * @remarks\n * `\"justify\"` has not yet been adopted because of ambiguity in browser support.\n */\nexport const WYSIWYG_TEXT_ALIGN_VALUES = ['left', 'center', 'right'\n// 'justify',\n];\n\n/** Text align value */\n\n/**\n * A list of nodes where the text align attribute should be applied to.\n */\nconst DEFAULT_TYPES = ['heading', 'paragraph'];\nconst conditions = WYSIWYG_TEXT_ALIGN_VALUES.map(value => [value, {\n textAlign: value\n}]);\nconst ICON_AT = {\n left: 'editorAlignLeft',\n center: 'editorAlignCenter',\n right: 'editorAlignRight'\n};\nfunction resolveOptions(rawOptions) {\n const types = rawOptions?.types || DEFAULT_TYPES.slice();\n const alignments = rawOptions?.alignments || WYSIWYG_TEXT_ALIGN_VALUES.slice();\n const defaultAlignment = rawOptions?.defaultAlignment || 'left';\n return {\n types,\n alignments,\n defaultAlignment\n };\n}\nfunction getCurrentAlign(editor, options) {\n for (const [align, condition] of conditions) {\n if (editor.isActive(condition)) return align;\n }\n return options.defaultAlignment;\n}\nexport const WysiwygTextAlignTool = (vui, options) => {\n const resolvedOptions = resolveOptions(options);\n const {\n alignments\n } = resolvedOptions;\n const getIcon = value => {\n const iconKey = ICON_AT[value];\n const icon = vui.icon(iconKey);\n if (icon === '$empty' || typeof icon === 'function') return;\n return icon;\n };\n const variant = vui.setting('plainVariant');\n const toolButtonActiveColor = vui.setting('primaryScope');\n const tool = {\n key: 'textAlign',\n icon: ({\n editor\n }) => getIcon(getCurrentAlign(editor, resolvedOptions)),\n // eslint-disable-next-line no-shadow\n onClick: async ({\n vui,\n editor\n }, ev) => {\n vui.menu({\n distance: 0,\n activator: ev,\n content: menu => {\n let _slot;\n return _createVNode(VButtonGroup, {\n \"variant\": variant\n }, _isSlot(_slot = alignments.map(value => {\n const isActive = editor.isActive({\n textAlign: value\n });\n return _createVNode(VButton, {\n \"tabindex\": -1,\n \"color\": isActive ? toolButtonActiveColor : undefined,\n \"key\": value,\n \"icon\": getIcon(value),\n \"onClick\": () => {\n editor.chain().focus().setTextAlign(value).run();\n }\n }, null);\n })) ? _slot : {\n default: () => [_slot]\n });\n }\n });\n },\n floating: true,\n extensions: [TextAlign.configure(resolvedOptions)]\n };\n return tool;\n};","import { WysiwygEditorToolFactory, WysiwygEditorTool } from '../schemes';\nimport {\n createWysiwygCustomTagMark,\n WysiwygCustomTagSettings,\n WysiwygCustomTagExtension,\n} from '../extensions/custom-tag';\n\nexport interface WysiwygCustomTagToolSettings\n extends Pick<WysiwygEditorTool, 'icon' | 'floating'>,\n Partial<WysiwygCustomTagSettings> {}\n\n/**\n * Generate Custom Tag Tool\n *\n * @param markName - Mark name\n * @param settings - Tool Configuration\n * @returns Generated Tool\n */\nexport function createWysiwygCustomTagTool(\n markName: string,\n settings: WysiwygCustomTagToolSettings,\n): WysiwygEditorToolFactory {\n const Mark = createWysiwygCustomTagMark(markName, settings);\n const { icon, floating = true } = settings;\n\n return (vui) => {\n const tool: WysiwygEditorTool = {\n key: `customTag:${markName}`,\n icon,\n floating,\n active: ({ editor }) => editor.isActive(markName),\n onClick: ({ editor }) => {\n editor.chain().focus().toggleCustomTag(markName).run();\n },\n extensions: [WysiwygCustomTagExtension, Mark.configure(settings)],\n };\n return tool;\n };\n}\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode, isVNode as _isVNode } from \"vue\";\nimport './VWysiwygEditor.scss';\nimport { defineComponent, computed, ref, watch, onBeforeUnmount } from 'vue';\nimport { createFormNodeWrapperProps, VFormControl, VControlField, createControlFieldProps, createTextableProps, createTextableEmits, TextableControl, createControlProps, useControl, createControlFieldProviderProps, useControlField, VTextCounter, defineSlots, useVui, VButton, VButtonGroup } from '@fastkit/vui';\nimport { EditorContent, useEditor, BubbleMenu } from '@tiptap/vue-3';\nimport { StarterKit } from '@tiptap/starter-kit';\nimport { VUI_WYSIWYG_EDITOR_SYMBOL } from '../../injections';\nimport { resolveRawWysiwygExtensions, resolveRawWysiwygEditorTools,\n// EditorEventsOptions,\nWysiwygEditorInitializeContext } from '../../schemes';\nfunction _isSlot(s) {\n return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);\n}\nconst slots = defineSlots();\nexport const VWysiwygEditor = defineComponent({\n name: 'VWysiwygEditor',\n props: {\n ...createTextableProps(),\n ...createFormNodeWrapperProps(),\n ...createControlFieldProps(),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n ...slots(),\n extensions: {\n type: Array,\n default: () => []\n },\n tools: {\n type: Array,\n default: () => []\n },\n floatingToolbar: Boolean,\n disabledMinHeight: Boolean,\n disabledMaxHeight: Boolean,\n removeDefaultWrapper: {\n type: Boolean,\n default: true\n }\n },\n emits: {\n ...createTextableEmits()\n },\n slots,\n setup(props, ctx) {\n const vui = useVui();\n const textRef = ref('');\n const toolButtonActiveColor = vui.setting('primaryScope');\n const wysiwygSettings = computed(() => resolveRawWysiwygEditorTools(props.tools, vui));\n const control = useControl(props);\n useControlField(props);\n const classes = computed(() => ['v-wysiwyg-editor', control.classes.value, `v-wysiwyg-editor--${control.size.value}`, {\n 'v-wysiwyg-editor--disabled-min-height': props.disabledMinHeight,\n 'v-wysiwyg-editor--disabled-max-height': props.disabledMaxHeight\n }]);\n const inputControl = new TextableControl(props, ctx, {\n nodeType: VUI_WYSIWYG_EDITOR_SYMBOL,\n validationValue: () => textRef.value\n });\n const getOutput = (editor, type) => {\n if (props.removeDefaultWrapper && editor.isEmpty) return '';\n if (type === 'html') return editor.getHTML();\n if (type === 'text') return editor.getText();\n return '';\n };\n const initializeCtx = new WysiwygEditorInitializeContext(() => vui, {\n onCreate: ({\n editor\n }) => {\n textRef.value = getOutput(editor, 'text');\n updateEditable();\n },\n onFocus: ({\n event\n }) => {\n inputControl.focusHandler(event);\n },\n onBlur: ({\n event\n }) => {\n inputControl.blurHandler(event);\n },\n onUpdate: ({\n editor\n }) => {\n inputControl.value = getOutput(editor, 'html');\n textRef.value = getOutput(editor, 'text');\n }\n });\n const extensions = [StarterKit.configure({\n bold: false,\n bulletList: false,\n orderedList: false,\n history: false,\n italic: false\n }), ...resolveRawWysiwygExtensions(props.extensions, initializeCtx), ...wysiwygSettings.value.extensions];\n const updateEditable = () => {\n if (!editor.value) return;\n editor.value.setEditable(inputControl.canOperation);\n };\n watch(() => inputControl.canOperation, updateEditable);\n watch(() => props.modelValue, modelValue => {\n const $editor = editor.value;\n if (!$editor || getOutput($editor, 'html') === modelValue) return;\n $editor.commands.setContent(modelValue == null ? '' : modelValue, false);\n textRef.value = getOutput($editor, 'text');\n });\n initializeCtx.on('create', ({\n editor\n }) => {\n textRef.value = getOutput(editor, 'text');\n updateEditable();\n });\n const editor = useEditor({\n ...initializeCtx.editorOptions(),\n autofocus: props.autofocus,\n content: props.modelValue,\n extensions,\n editorProps: {\n attributes: {\n class: 'v-wysiwyg-editor__input__prose'\n }\n }\n });\n const focus = (position, options) => editor.value?.chain().focus(position, options);\n const wysiwygContext = computed(() => ({\n vui,\n editor: editor.value\n }));\n const createTools = (bubbleMenu = false) => {\n let _slot;\n const {\n value: settings\n } = wysiwygSettings;\n const {\n value: context\n } = wysiwygContext;\n const tools = bubbleMenu ? settings.tools.filter(t => !!t.floating) : settings.tools;\n const _editor = editor.value;\n const variant = vui.setting(bubbleMenu ? 'containedVariant' : 'plainVariant');\n return _createVNode(VButtonGroup, {\n \"class\": ['v-wysiwyg-editor__toolbar', {\n 'v-wysiwyg-editor__floating-toolbar': props.floatingToolbar\n }],\n \"variant\": variant\n }, _isSlot(_slot = tools.map(({\n key,\n icon,\n onClick,\n disabled,\n active\n }) => {\n const isActive = !!_editor && resolveContextualValue(context, active);\n const isDisabled = !inputControl.canOperation || !!_editor && resolveContextualValue(context, disabled);\n let iconName;\n let child;\n if (typeof icon === 'function') {\n if (_editor) {\n const _child = icon(context);\n if (typeof _child === 'function') {\n child = _child();\n } else {\n iconName = _child;\n }\n }\n } else {\n iconName = icon;\n }\n if (!iconName && child == null) return;\n return _createVNode(VButton, {\n \"tabindex\": -1,\n \"key\": key,\n \"icon\": iconName,\n \"onClick\": ev => onClick(context, ev),\n \"color\": isActive ? toolButtonActiveColor : undefined,\n \"disabled\": isDisabled\n }, _isSlot(child) ? child : {\n default: () => [child]\n });\n })) ? _slot : {\n default: () => [_slot]\n });\n };\n onBeforeUnmount(() => {\n editor.value?.destroy();\n });\n const api = {\n get editor() {\n return editor.value;\n },\n control: inputControl\n };\n ctx.expose(api);\n const handleClickLabel = ev => {\n focus('start', {\n scrollIntoView: true\n });\n };\n const defaultSlot = () => {\n let _slot2;\n return _createVNode(\"div\", {\n \"class\": \"v-wysiwyg-editor__body\"\n }, [_createVNode(EditorContent, {\n \"class\": \"v-wysiwyg-editor__input__element wysiwyg\",\n \"editor\": editor.value\n }, null), !props.floatingToolbar && !!editor.value && !inputControl.isReadonly && _createVNode(BubbleMenu, {\n \"class\": \"v-wysiwyg-editor__bubble-menu\",\n \"editor\": editor.value\n }, _isSlot(_slot2 = createTools(true)) ? _slot2 : {\n default: () => [_slot2]\n })]);\n };\n const formControlDefaultSlot = () => _createVNode(\"div\", {\n \"class\": \"v-wysiwyg-editor__wrapper\"\n }, [!inputControl.isReadonly && createTools(), _createVNode(VControlField, {\n \"class\": \"v-wysiwyg-editor__input\",\n \"autoHeight\": true,\n \"startAdornment\": props.startAdornment,\n \"endAdornment\": props.endAdornment,\n \"size\": control.size.value\n }, {\n ...ctx.slots,\n default: defaultSlot\n })]);\n const infoAppendsSlot = () => {\n const {\n counterResult\n } = inputControl;\n if (!counterResult) return;\n return _createVNode(VTextCounter, counterResult, null);\n };\n return () => _createVNode(VFormControl, {\n \"nodeControl\": inputControl,\n \"class\": classes.value,\n \"label\": props.label,\n \"hint\": props.hint,\n \"hinttip\": props.hinttip,\n \"hiddenInfo\": props.hiddenInfo,\n \"requiredChip\": props.requiredChip,\n \"onClickLabel\": handleClickLabel\n }, {\n ...ctx.slots,\n default: formControlDefaultSlot,\n infoAppends: infoAppendsSlot\n });\n }\n});\nfunction resolveContextualValue(ctx,\n// eslint-disable-next-line no-shadow\nsource) {\n return typeof source === 'function' ? source(ctx) : source;\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fastkit/vui-wysiwyg",
3
- "version": "7.0.36",
3
+ "version": "7.0.38",
4
4
  "description": "vui-wysiwyg",
5
5
  "keywords": [],
6
6
  "repository": {
@@ -286,26 +286,26 @@
286
286
  "dist"
287
287
  ],
288
288
  "dependencies": {
289
- "@tiptap/extension-bold": "^2.4.0",
290
- "@tiptap/extension-bullet-list": "^2.4.0",
291
- "@tiptap/extension-history": "^2.4.0",
292
- "@tiptap/extension-italic": "^2.4.0",
293
- "@tiptap/extension-link": "^2.4.0",
294
- "@tiptap/extension-ordered-list": "^2.4.0",
295
- "@tiptap/extension-text-align": "^2.4.0",
296
- "@tiptap/extension-text-style": "^2.4.0",
297
- "@tiptap/extension-underline": "^2.4.0",
298
- "@tiptap/pm": "^2.4.0",
299
- "@tiptap/starter-kit": "^2.4.0",
300
- "@tiptap/vue-3": "^2.4.0",
289
+ "@tiptap/extension-bold": "^2.5.4",
290
+ "@tiptap/extension-bullet-list": "^2.5.4",
291
+ "@tiptap/extension-history": "^2.5.4",
292
+ "@tiptap/extension-italic": "^2.5.4",
293
+ "@tiptap/extension-link": "^2.5.4",
294
+ "@tiptap/extension-ordered-list": "^2.5.4",
295
+ "@tiptap/extension-text-align": "^2.5.4",
296
+ "@tiptap/extension-text-style": "^2.5.4",
297
+ "@tiptap/extension-underline": "^2.5.4",
298
+ "@tiptap/pm": "^2.5.4",
299
+ "@tiptap/starter-kit": "^2.5.4",
300
+ "@tiptap/vue-3": "^2.5.4",
301
301
  "@types/markdown-it": "^14.1.1"
302
302
  },
303
303
  "devDependencies": {
304
- "@fastkit/vui": "^0.19.35"
304
+ "@fastkit/vui": "^0.19.37"
305
305
  },
306
306
  "peerDependencies": {
307
307
  "vue": "^3.4.0",
308
- "@fastkit/vui": "^0.19.35"
308
+ "@fastkit/vui": "^0.19.37"
309
309
  },
310
310
  "scripts": {
311
311
  "build": "plugboy build",