@flogeez/angular-tiptap-editor 3.1.3 → 3.1.5

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 (117) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +2 -2
  3. package/esm2022/flogeez-angular-tiptap-editor.mjs +5 -0
  4. package/esm2022/lib/ate-editor.provider.mjs +38 -0
  5. package/esm2022/lib/components/bubble-menus/base/ate-base-bubble-menu.mjs +207 -0
  6. package/esm2022/lib/components/bubble-menus/base/ate-base-sub-bubble-menu.mjs +137 -0
  7. package/esm2022/lib/components/bubble-menus/color/ate-color-bubble-menu.component.mjs +365 -0
  8. package/esm2022/lib/components/bubble-menus/image/ate-image-bubble-menu.component.mjs +309 -0
  9. package/esm2022/lib/components/bubble-menus/link/ate-link-bubble-menu.component.mjs +247 -0
  10. package/esm2022/lib/components/bubble-menus/table/ate-cell-bubble-menu.component.mjs +126 -0
  11. package/esm2022/lib/components/bubble-menus/table/ate-table-bubble-menu.component.mjs +271 -0
  12. package/esm2022/lib/components/bubble-menus/text/ate-bubble-menu.component.mjs +272 -0
  13. package/esm2022/lib/components/color-picker/ate-color-picker.component.mjs +123 -0
  14. package/esm2022/lib/components/edit-toggle/ate-edit-toggle.component.mjs +42 -0
  15. package/esm2022/lib/components/editor/angular-tiptap-editor.component.mjs +1032 -0
  16. package/esm2022/lib/components/editor/ate-block-controls.component.mjs +256 -0
  17. package/esm2022/lib/components/slash-commands/ate-slash-commands.component.mjs +328 -0
  18. package/esm2022/lib/components/toolbar/ate-toolbar.component.mjs +531 -0
  19. package/esm2022/lib/components/ui/ate-button.component.mjs +91 -0
  20. package/esm2022/lib/components/ui/ate-separator.component.mjs +11 -0
  21. package/esm2022/lib/config/ate-editor.config.mjs +133 -0
  22. package/esm2022/lib/config/ate-global-config.token.mjs +6 -0
  23. package/esm2022/lib/config/ate-slash-commands.config.mjs +130 -0
  24. package/esm2022/lib/directives/ate-noop-value-accessor.directive.mjs +40 -0
  25. package/esm2022/lib/directives/ate-tooltip.directive.mjs +138 -0
  26. package/esm2022/lib/extensions/ate-block-controls.extension.mjs +156 -0
  27. package/esm2022/lib/extensions/ate-link-click-behavior.extension.mjs +32 -0
  28. package/esm2022/lib/extensions/ate-resizable-image.extension.mjs +277 -0
  29. package/esm2022/lib/extensions/ate-table.extension.mjs +27 -0
  30. package/esm2022/lib/extensions/ate-tiptap-state.extension.mjs +85 -0
  31. package/esm2022/lib/extensions/ate-upload-progress.extension.mjs +195 -0
  32. package/esm2022/lib/extensions/calculators/ate-discovery.calculator.mjs +62 -0
  33. package/esm2022/lib/extensions/calculators/ate-image.calculator.mjs +8 -0
  34. package/esm2022/lib/extensions/calculators/ate-marks.calculator.mjs +75 -0
  35. package/esm2022/lib/extensions/calculators/ate-selection.calculator.mjs +35 -0
  36. package/esm2022/lib/extensions/calculators/ate-structure.calculator.mjs +34 -0
  37. package/esm2022/lib/extensions/calculators/ate-table.calculator.mjs +38 -0
  38. package/esm2022/lib/models/ate-bubble-menu.model.mjs +53 -0
  39. package/esm2022/lib/models/ate-editor-config.model.mjs +2 -0
  40. package/esm2022/lib/models/ate-editor-state.model.mjs +90 -0
  41. package/esm2022/lib/models/ate-image.model.mjs +2 -0
  42. package/esm2022/lib/models/ate-slash-command.model.mjs +2 -0
  43. package/esm2022/lib/models/ate-toolbar.model.mjs +35 -0
  44. package/esm2022/lib/node-view/ate-angular-node-view.mjs +97 -0
  45. package/esm2022/lib/node-view/ate-injector.registry.mjs +16 -0
  46. package/esm2022/lib/node-view/ate-node-view.factory.mjs +125 -0
  47. package/esm2022/lib/node-view/ate-node-view.models.mjs +2 -0
  48. package/esm2022/lib/node-view/ate-node-view.renderer.mjs +154 -0
  49. package/esm2022/lib/node-view/ate-register-angular-component.mjs +49 -0
  50. package/esm2022/lib/services/ate-color-picker.service.mjs +194 -0
  51. package/esm2022/lib/services/ate-editor-commands.service.mjs +507 -0
  52. package/esm2022/lib/services/ate-export.service.mjs +71 -0
  53. package/esm2022/lib/services/ate-i18n.service.mjs +449 -0
  54. package/esm2022/lib/services/ate-image.service.mjs +459 -0
  55. package/esm2022/lib/services/ate-link.service.mjs +99 -0
  56. package/esm2022/lib/utils/ate-color.utils.mjs +60 -0
  57. package/esm2022/lib/utils/ate-markdown.utils.mjs +179 -0
  58. package/esm2022/public-api.mjs +41 -0
  59. package/fesm2022/flogeez-angular-tiptap-editor.mjs +627 -354
  60. package/fesm2022/flogeez-angular-tiptap-editor.mjs.map +1 -1
  61. package/index.d.ts +3 -1734
  62. package/lib/ate-editor.provider.d.ts +21 -0
  63. package/lib/components/bubble-menus/base/ate-base-bubble-menu.d.ts +71 -0
  64. package/lib/components/bubble-menus/base/ate-base-sub-bubble-menu.d.ts +60 -0
  65. package/lib/components/bubble-menus/color/ate-color-bubble-menu.component.d.ts +77 -0
  66. package/lib/components/bubble-menus/image/ate-image-bubble-menu.component.d.ts +49 -0
  67. package/lib/components/bubble-menus/link/ate-link-bubble-menu.component.d.ts +55 -0
  68. package/lib/components/bubble-menus/table/ate-cell-bubble-menu.component.d.ts +16 -0
  69. package/lib/components/bubble-menus/table/ate-table-bubble-menu.component.d.ts +25 -0
  70. package/lib/components/bubble-menus/text/ate-bubble-menu.component.d.ts +53 -0
  71. package/lib/components/color-picker/ate-color-picker.component.d.ts +54 -0
  72. package/lib/components/edit-toggle/ate-edit-toggle.component.d.ts +13 -0
  73. package/lib/components/editor/angular-tiptap-editor.component.d.ts +242 -0
  74. package/lib/components/editor/ate-block-controls.component.d.ts +44 -0
  75. package/lib/components/slash-commands/ate-slash-commands.component.d.ts +34 -0
  76. package/lib/components/toolbar/ate-toolbar.component.d.ts +47 -0
  77. package/lib/components/ui/ate-button.component.d.ts +25 -0
  78. package/lib/components/ui/ate-separator.component.d.ts +5 -0
  79. package/lib/config/ate-editor.config.d.ts +19 -0
  80. package/lib/config/ate-global-config.token.d.ts +6 -0
  81. package/lib/config/ate-slash-commands.config.d.ts +41 -0
  82. package/lib/directives/ate-noop-value-accessor.directive.d.ts +13 -0
  83. package/lib/directives/ate-tooltip.directive.d.ts +30 -0
  84. package/lib/extensions/ate-block-controls.extension.d.ts +10 -0
  85. package/lib/extensions/ate-link-click-behavior.extension.d.ts +2 -0
  86. package/lib/extensions/ate-resizable-image.extension.d.ts +27 -0
  87. package/lib/extensions/ate-table.extension.d.ts +2 -0
  88. package/lib/extensions/ate-tiptap-state.extension.d.ts +7 -0
  89. package/lib/extensions/ate-upload-progress.extension.d.ts +7 -0
  90. package/lib/extensions/calculators/ate-discovery.calculator.d.ts +7 -0
  91. package/lib/extensions/calculators/ate-image.calculator.d.ts +2 -0
  92. package/lib/extensions/calculators/ate-marks.calculator.d.ts +2 -0
  93. package/lib/extensions/calculators/ate-selection.calculator.d.ts +2 -0
  94. package/lib/extensions/calculators/ate-structure.calculator.d.ts +2 -0
  95. package/lib/extensions/calculators/ate-table.calculator.d.ts +2 -0
  96. package/lib/models/ate-bubble-menu.model.d.ts +33 -0
  97. package/lib/models/ate-editor-config.model.d.ts +113 -0
  98. package/lib/models/ate-editor-state.model.d.ts +109 -0
  99. package/lib/models/ate-image.model.d.ts +104 -0
  100. package/lib/models/ate-slash-command.model.d.ts +17 -0
  101. package/lib/models/ate-toolbar.model.d.ts +18 -0
  102. package/lib/node-view/ate-angular-node-view.d.ts +115 -0
  103. package/lib/node-view/ate-injector.registry.d.ts +3 -0
  104. package/lib/node-view/ate-node-view.factory.d.ts +10 -0
  105. package/lib/node-view/ate-node-view.models.d.ts +138 -0
  106. package/lib/node-view/ate-node-view.renderer.d.ts +23 -0
  107. package/lib/node-view/ate-register-angular-component.d.ts +35 -0
  108. package/lib/services/ate-color-picker.service.d.ts +65 -0
  109. package/lib/services/ate-editor-commands.service.d.ts +89 -0
  110. package/lib/services/ate-export.service.d.ts +27 -0
  111. package/lib/services/ate-i18n.service.d.ts +432 -0
  112. package/lib/services/ate-image.service.d.ts +82 -0
  113. package/lib/services/ate-link.service.d.ts +42 -0
  114. package/lib/utils/ate-color.utils.d.ts +12 -0
  115. package/lib/utils/ate-markdown.utils.d.ts +4 -0
  116. package/package.json +3 -1
  117. package/public-api.d.ts +32 -0
@@ -0,0 +1,90 @@
1
+ export const ATE_INITIAL_EDITOR_STATE = {
2
+ isFocused: false,
3
+ isEditable: true,
4
+ selection: {
5
+ type: "none",
6
+ from: 0,
7
+ to: 0,
8
+ empty: true,
9
+ isSingleCell: false,
10
+ },
11
+ marks: {
12
+ bold: false,
13
+ italic: false,
14
+ underline: false,
15
+ strike: false,
16
+ code: false,
17
+ superscript: false,
18
+ subscript: false,
19
+ highlight: false,
20
+ link: false,
21
+ linkHref: null,
22
+ color: null,
23
+ computedColor: null,
24
+ background: null,
25
+ computedBackground: null,
26
+ linkOpenOnClick: false,
27
+ },
28
+ can: {
29
+ toggleBold: false,
30
+ toggleItalic: false,
31
+ toggleUnderline: false,
32
+ toggleStrike: false,
33
+ toggleCode: false,
34
+ toggleHighlight: false,
35
+ toggleLink: false,
36
+ toggleSuperscript: false,
37
+ toggleSubscript: false,
38
+ setColor: false,
39
+ setHighlight: false,
40
+ undo: false,
41
+ redo: false,
42
+ addRowBefore: false,
43
+ addRowAfter: false,
44
+ deleteRow: false,
45
+ addColumnBefore: false,
46
+ addColumnAfter: false,
47
+ deleteColumn: false,
48
+ deleteTable: false,
49
+ mergeCells: false,
50
+ splitCell: false,
51
+ toggleHeaderRow: false,
52
+ toggleHeaderColumn: false,
53
+ toggleHeading1: false,
54
+ toggleHeading2: false,
55
+ toggleHeading3: false,
56
+ toggleBulletList: false,
57
+ toggleOrderedList: false,
58
+ toggleBlockquote: false,
59
+ toggleCodeBlock: false,
60
+ setTextAlignLeft: false,
61
+ setTextAlignCenter: false,
62
+ setTextAlignRight: false,
63
+ setTextAlignJustify: false,
64
+ insertHorizontalRule: false,
65
+ insertTable: false,
66
+ insertImage: false,
67
+ },
68
+ nodes: {
69
+ isTable: false,
70
+ isTableNodeSelected: false,
71
+ isTableCell: false,
72
+ isImage: false,
73
+ isBlockquote: false,
74
+ isCodeBlock: false,
75
+ isBulletList: false,
76
+ isOrderedList: false,
77
+ h1: false,
78
+ h2: false,
79
+ h3: false,
80
+ alignLeft: false,
81
+ alignCenter: false,
82
+ alignRight: false,
83
+ alignJustify: false,
84
+ isTableHeaderRow: false,
85
+ isTableHeaderColumn: false,
86
+ activeNodeName: null,
87
+ },
88
+ custom: {},
89
+ };
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWVkaXRvci1zdGF0ZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL21vZGVscy9hdGUtZWRpdG9yLXN0YXRlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRIQSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBMkI7SUFDOUQsU0FBUyxFQUFFLEtBQUs7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJLEVBQUUsQ0FBQztRQUNQLEVBQUUsRUFBRSxDQUFDO1FBQ0wsS0FBSyxFQUFFLElBQUk7UUFDWCxZQUFZLEVBQUUsS0FBSztLQUNwQjtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLEtBQUs7UUFDYixTQUFTLEVBQUUsS0FBSztRQUNoQixNQUFNLEVBQUUsS0FBSztRQUNiLElBQUksRUFBRSxLQUFLO1FBQ1gsV0FBVyxFQUFFLEtBQUs7UUFDbEIsU0FBUyxFQUFFLEtBQUs7UUFDaEIsU0FBUyxFQUFFLEtBQUs7UUFDaEIsSUFBSSxFQUFFLEtBQUs7UUFDWCxRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRSxJQUFJO1FBQ1gsYUFBYSxFQUFFLElBQUk7UUFDbkIsVUFBVSxFQUFFLElBQUk7UUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtRQUN4QixlQUFlLEVBQUUsS0FBSztLQUN2QjtJQUNELEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxLQUFLO1FBQ2pCLFlBQVksRUFBRSxLQUFLO1FBQ25CLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLFlBQVksRUFBRSxLQUFLO1FBQ25CLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLGlCQUFpQixFQUFFLEtBQUs7UUFDeEIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsS0FBSztRQUNuQixJQUFJLEVBQUUsS0FBSztRQUNYLElBQUksRUFBRSxLQUFLO1FBQ1gsWUFBWSxFQUFFLEtBQUs7UUFDbkIsV0FBVyxFQUFFLEtBQUs7UUFDbEIsU0FBUyxFQUFFLEtBQUs7UUFDaEIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsY0FBYyxFQUFFLEtBQUs7UUFDckIsWUFBWSxFQUFFLEtBQUs7UUFDbkIsV0FBVyxFQUFFLEtBQUs7UUFDbEIsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLEtBQUs7UUFDaEIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsa0JBQWtCLEVBQUUsS0FBSztRQUN6QixjQUFjLEVBQUUsS0FBSztRQUNyQixjQUFjLEVBQUUsS0FBSztRQUNyQixjQUFjLEVBQUUsS0FBSztRQUNyQixnQkFBZ0IsRUFBRSxLQUFLO1FBQ3ZCLGlCQUFpQixFQUFFLEtBQUs7UUFDeEIsZ0JBQWdCLEVBQUUsS0FBSztRQUN2QixlQUFlLEVBQUUsS0FBSztRQUN0QixnQkFBZ0IsRUFBRSxLQUFLO1FBQ3ZCLGtCQUFrQixFQUFFLEtBQUs7UUFDekIsaUJBQWlCLEVBQUUsS0FBSztRQUN4QixtQkFBbUIsRUFBRSxLQUFLO1FBQzFCLG9CQUFvQixFQUFFLEtBQUs7UUFDM0IsV0FBVyxFQUFFLEtBQUs7UUFDbEIsV0FBVyxFQUFFLEtBQUs7S0FDbkI7SUFDRCxLQUFLLEVBQUU7UUFDTCxPQUFPLEVBQUUsS0FBSztRQUNkLG1CQUFtQixFQUFFLEtBQUs7UUFDMUIsV0FBVyxFQUFFLEtBQUs7UUFDbEIsT0FBTyxFQUFFLEtBQUs7UUFDZCxZQUFZLEVBQUUsS0FBSztRQUNuQixXQUFXLEVBQUUsS0FBSztRQUNsQixZQUFZLEVBQUUsS0FBSztRQUNuQixhQUFhLEVBQUUsS0FBSztRQUNwQixFQUFFLEVBQUUsS0FBSztRQUNULEVBQUUsRUFBRSxLQUFLO1FBQ1QsRUFBRSxFQUFFLEtBQUs7UUFDVCxTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsS0FBSztRQUNsQixVQUFVLEVBQUUsS0FBSztRQUNqQixZQUFZLEVBQUUsS0FBSztRQUNuQixnQkFBZ0IsRUFBRSxLQUFLO1FBQ3ZCLG1CQUFtQixFQUFFLEtBQUs7UUFDMUIsY0FBYyxFQUFFLElBQUk7S0FDckI7SUFDRCxNQUFNLEVBQUUsRUFBRTtDQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5cbmV4cG9ydCB0eXBlIEF0ZVN0YXRlQ2FsY3VsYXRvciA9IChlZGl0b3I6IEVkaXRvcikgPT4gUGFydGlhbDx7XG4gIFtLIGluIGtleW9mIEF0ZUVkaXRvclN0YXRlU25hcHNob3RdOiBBdGVFZGl0b3JTdGF0ZVNuYXBzaG90W0tdIGV4dGVuZHMgb2JqZWN0XG4gICAgPyBQYXJ0aWFsPEF0ZUVkaXRvclN0YXRlU25hcHNob3RbS10+XG4gICAgOiBBdGVFZGl0b3JTdGF0ZVNuYXBzaG90W0tdO1xufT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXRlRWRpdG9yU3RhdGVTbmFwc2hvdCB7XG4gIC8qKiBHbG9iYWwgZWRpdG9yIHN0YXRlcyAqL1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW47XG4gIGlzRWRpdGFibGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERldGFpbGVkIHNlbGVjdGlvbiBpbmZvcm1hdGlvbiB0byBhdm9pZCBvdmVybGFwIGJldHdlZW4gbWVudXNcbiAgICovXG4gIHNlbGVjdGlvbjoge1xuICAgIHR5cGU6IFwidGV4dFwiIHwgXCJub2RlXCIgfCBcImNlbGxcIiB8IFwibm9uZVwiO1xuICAgIGZyb206IG51bWJlcjtcbiAgICB0bzogbnVtYmVyO1xuICAgIGVtcHR5OiBib29sZWFuO1xuICAgIC8qKiBTcGVjaWZpYyBmb3IgQ2VsbFNlbGVjdGlvbiAqL1xuICAgIGlzU2luZ2xlQ2VsbDogYm9vbGVhbjtcbiAgfTtcblxuICAvKiogVGV4dCBmb3JtYXR0aW5nIHN0YXRlcyAoTWFya3MpICovXG4gIG1hcmtzOiB7XG4gICAgYm9sZDogYm9vbGVhbjtcbiAgICBpdGFsaWM6IGJvb2xlYW47XG4gICAgdW5kZXJsaW5lOiBib29sZWFuO1xuICAgIHN0cmlrZTogYm9vbGVhbjtcbiAgICBjb2RlOiBib29sZWFuO1xuICAgIHN1cGVyc2NyaXB0OiBib29sZWFuO1xuICAgIHN1YnNjcmlwdDogYm9vbGVhbjtcbiAgICBoaWdobGlnaHQ6IGJvb2xlYW47XG4gICAgbGluazogYm9vbGVhbjtcbiAgICBsaW5rSHJlZjogc3RyaW5nIHwgbnVsbDtcbiAgICBjb2xvcjogc3RyaW5nIHwgbnVsbDtcbiAgICBjb21wdXRlZENvbG9yOiBzdHJpbmcgfCBudWxsO1xuICAgIGJhY2tncm91bmQ6IHN0cmluZyB8IG51bGw7XG4gICAgY29tcHV0ZWRCYWNrZ3JvdW5kOiBzdHJpbmcgfCBudWxsO1xuICAgIGxpbmtPcGVuT25DbGljazogYm9vbGVhbjtcbiAgfTtcblxuICAvKiogQ2FwYWJpbGl0eSBzdGF0ZXMgKGNhbkV4ZWN1dGUpICovXG4gIGNhbjoge1xuICAgIHRvZ2dsZUJvbGQ6IGJvb2xlYW47XG4gICAgdG9nZ2xlSXRhbGljOiBib29sZWFuO1xuICAgIHRvZ2dsZVVuZGVybGluZTogYm9vbGVhbjtcbiAgICB0b2dnbGVTdHJpa2U6IGJvb2xlYW47XG4gICAgdG9nZ2xlQ29kZTogYm9vbGVhbjtcbiAgICB0b2dnbGVIaWdobGlnaHQ6IGJvb2xlYW47XG4gICAgdG9nZ2xlTGluazogYm9vbGVhbjtcbiAgICB0b2dnbGVTdXBlcnNjcmlwdDogYm9vbGVhbjtcbiAgICB0b2dnbGVTdWJzY3JpcHQ6IGJvb2xlYW47XG4gICAgc2V0Q29sb3I6IGJvb2xlYW47XG4gICAgc2V0SGlnaGxpZ2h0OiBib29sZWFuO1xuICAgIHVuZG86IGJvb2xlYW47XG4gICAgcmVkbzogYm9vbGVhbjtcblxuICAgIC8qKiBUYWJsZSBzcGVjaWZpYyBjYXBhYmlsaXRpZXMgKi9cbiAgICBhZGRSb3dCZWZvcmU6IGJvb2xlYW47XG4gICAgYWRkUm93QWZ0ZXI6IGJvb2xlYW47XG4gICAgZGVsZXRlUm93OiBib29sZWFuO1xuICAgIGFkZENvbHVtbkJlZm9yZTogYm9vbGVhbjtcbiAgICBhZGRDb2x1bW5BZnRlcjogYm9vbGVhbjtcbiAgICBkZWxldGVDb2x1bW46IGJvb2xlYW47XG4gICAgZGVsZXRlVGFibGU6IGJvb2xlYW47XG4gICAgbWVyZ2VDZWxsczogYm9vbGVhbjtcbiAgICBzcGxpdENlbGw6IGJvb2xlYW47XG4gICAgdG9nZ2xlSGVhZGVyUm93OiBib29sZWFuO1xuICAgIHRvZ2dsZUhlYWRlckNvbHVtbjogYm9vbGVhbjtcblxuICAgIC8qKiBTdHJ1Y3R1cmUvTm9kZSBjYXBhYmlsaXRpZXMgKi9cbiAgICB0b2dnbGVIZWFkaW5nMTogYm9vbGVhbjtcbiAgICB0b2dnbGVIZWFkaW5nMjogYm9vbGVhbjtcbiAgICB0b2dnbGVIZWFkaW5nMzogYm9vbGVhbjtcbiAgICB0b2dnbGVCdWxsZXRMaXN0OiBib29sZWFuO1xuICAgIHRvZ2dsZU9yZGVyZWRMaXN0OiBib29sZWFuO1xuICAgIHRvZ2dsZUJsb2NrcXVvdGU6IGJvb2xlYW47XG4gICAgdG9nZ2xlQ29kZUJsb2NrOiBib29sZWFuO1xuICAgIHNldFRleHRBbGlnbkxlZnQ6IGJvb2xlYW47XG4gICAgc2V0VGV4dEFsaWduQ2VudGVyOiBib29sZWFuO1xuICAgIHNldFRleHRBbGlnblJpZ2h0OiBib29sZWFuO1xuICAgIHNldFRleHRBbGlnbkp1c3RpZnk6IGJvb2xlYW47XG4gICAgaW5zZXJ0SG9yaXpvbnRhbFJ1bGU6IGJvb2xlYW47XG4gICAgaW5zZXJ0VGFibGU6IGJvb2xlYW47XG4gICAgaW5zZXJ0SW1hZ2U6IGJvb2xlYW47XG4gIH07XG5cbiAgLyoqIEN1cnJlbnQgbm9kZSBjb250ZXh0ICovXG4gIG5vZGVzOiB7XG4gICAgaXNUYWJsZTogYm9vbGVhbjtcbiAgICBpc1RhYmxlTm9kZVNlbGVjdGVkOiBib29sZWFuO1xuICAgIGlzVGFibGVDZWxsOiBib29sZWFuO1xuICAgIGlzSW1hZ2U6IGJvb2xlYW47XG4gICAgaXNCbG9ja3F1b3RlOiBib29sZWFuO1xuICAgIGlzQ29kZUJsb2NrOiBib29sZWFuO1xuICAgIGlzQnVsbGV0TGlzdDogYm9vbGVhbjtcbiAgICBpc09yZGVyZWRMaXN0OiBib29sZWFuO1xuXG4gICAgLyoqIEhlYWRpbmdzICovXG4gICAgaDE6IGJvb2xlYW47XG4gICAgaDI6IGJvb2xlYW47XG4gICAgaDM6IGJvb2xlYW47XG5cbiAgICAvKiogQWxpZ25tZW50ICovXG4gICAgYWxpZ25MZWZ0OiBib29sZWFuO1xuICAgIGFsaWduQ2VudGVyOiBib29sZWFuO1xuICAgIGFsaWduUmlnaHQ6IGJvb2xlYW47XG4gICAgYWxpZ25KdXN0aWZ5OiBib29sZWFuO1xuXG4gICAgLyoqIFRhYmxlIHNwZWNpZmljICovXG4gICAgaXNUYWJsZUhlYWRlclJvdzogYm9vbGVhbjtcbiAgICBpc1RhYmxlSGVhZGVyQ29sdW1uOiBib29sZWFuO1xuXG4gICAgLyoqIE5hbWUgb2YgdGhlIGFjdGl2ZSBub2RlIGF0IHNlbGVjdGlvbiBoZWFkICovXG4gICAgYWN0aXZlTm9kZU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIH07XG5cbiAgLyoqIFBsYWNlaG9sZGVyIGZvciBjdXN0b20gZXh0ZW5zaW9uIHN0YXRlcyAqL1xuICBjdXN0b206IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgY29uc3QgQVRFX0lOSVRJQUxfRURJVE9SX1NUQVRFOiBBdGVFZGl0b3JTdGF0ZVNuYXBzaG90ID0ge1xuICBpc0ZvY3VzZWQ6IGZhbHNlLFxuICBpc0VkaXRhYmxlOiB0cnVlLFxuICBzZWxlY3Rpb246IHtcbiAgICB0eXBlOiBcIm5vbmVcIixcbiAgICBmcm9tOiAwLFxuICAgIHRvOiAwLFxuICAgIGVtcHR5OiB0cnVlLFxuICAgIGlzU2luZ2xlQ2VsbDogZmFsc2UsXG4gIH0sXG4gIG1hcmtzOiB7XG4gICAgYm9sZDogZmFsc2UsXG4gICAgaXRhbGljOiBmYWxzZSxcbiAgICB1bmRlcmxpbmU6IGZhbHNlLFxuICAgIHN0cmlrZTogZmFsc2UsXG4gICAgY29kZTogZmFsc2UsXG4gICAgc3VwZXJzY3JpcHQ6IGZhbHNlLFxuICAgIHN1YnNjcmlwdDogZmFsc2UsXG4gICAgaGlnaGxpZ2h0OiBmYWxzZSxcbiAgICBsaW5rOiBmYWxzZSxcbiAgICBsaW5rSHJlZjogbnVsbCxcbiAgICBjb2xvcjogbnVsbCxcbiAgICBjb21wdXRlZENvbG9yOiBudWxsLFxuICAgIGJhY2tncm91bmQ6IG51bGwsXG4gICAgY29tcHV0ZWRCYWNrZ3JvdW5kOiBudWxsLFxuICAgIGxpbmtPcGVuT25DbGljazogZmFsc2UsXG4gIH0sXG4gIGNhbjoge1xuICAgIHRvZ2dsZUJvbGQ6IGZhbHNlLFxuICAgIHRvZ2dsZUl0YWxpYzogZmFsc2UsXG4gICAgdG9nZ2xlVW5kZXJsaW5lOiBmYWxzZSxcbiAgICB0b2dnbGVTdHJpa2U6IGZhbHNlLFxuICAgIHRvZ2dsZUNvZGU6IGZhbHNlLFxuICAgIHRvZ2dsZUhpZ2hsaWdodDogZmFsc2UsXG4gICAgdG9nZ2xlTGluazogZmFsc2UsXG4gICAgdG9nZ2xlU3VwZXJzY3JpcHQ6IGZhbHNlLFxuICAgIHRvZ2dsZVN1YnNjcmlwdDogZmFsc2UsXG4gICAgc2V0Q29sb3I6IGZhbHNlLFxuICAgIHNldEhpZ2hsaWdodDogZmFsc2UsXG4gICAgdW5kbzogZmFsc2UsXG4gICAgcmVkbzogZmFsc2UsXG4gICAgYWRkUm93QmVmb3JlOiBmYWxzZSxcbiAgICBhZGRSb3dBZnRlcjogZmFsc2UsXG4gICAgZGVsZXRlUm93OiBmYWxzZSxcbiAgICBhZGRDb2x1bW5CZWZvcmU6IGZhbHNlLFxuICAgIGFkZENvbHVtbkFmdGVyOiBmYWxzZSxcbiAgICBkZWxldGVDb2x1bW46IGZhbHNlLFxuICAgIGRlbGV0ZVRhYmxlOiBmYWxzZSxcbiAgICBtZXJnZUNlbGxzOiBmYWxzZSxcbiAgICBzcGxpdENlbGw6IGZhbHNlLFxuICAgIHRvZ2dsZUhlYWRlclJvdzogZmFsc2UsXG4gICAgdG9nZ2xlSGVhZGVyQ29sdW1uOiBmYWxzZSxcbiAgICB0b2dnbGVIZWFkaW5nMTogZmFsc2UsXG4gICAgdG9nZ2xlSGVhZGluZzI6IGZhbHNlLFxuICAgIHRvZ2dsZUhlYWRpbmczOiBmYWxzZSxcbiAgICB0b2dnbGVCdWxsZXRMaXN0OiBmYWxzZSxcbiAgICB0b2dnbGVPcmRlcmVkTGlzdDogZmFsc2UsXG4gICAgdG9nZ2xlQmxvY2txdW90ZTogZmFsc2UsXG4gICAgdG9nZ2xlQ29kZUJsb2NrOiBmYWxzZSxcbiAgICBzZXRUZXh0QWxpZ25MZWZ0OiBmYWxzZSxcbiAgICBzZXRUZXh0QWxpZ25DZW50ZXI6IGZhbHNlLFxuICAgIHNldFRleHRBbGlnblJpZ2h0OiBmYWxzZSxcbiAgICBzZXRUZXh0QWxpZ25KdXN0aWZ5OiBmYWxzZSxcbiAgICBpbnNlcnRIb3Jpem9udGFsUnVsZTogZmFsc2UsXG4gICAgaW5zZXJ0VGFibGU6IGZhbHNlLFxuICAgIGluc2VydEltYWdlOiBmYWxzZSxcbiAgfSxcbiAgbm9kZXM6IHtcbiAgICBpc1RhYmxlOiBmYWxzZSxcbiAgICBpc1RhYmxlTm9kZVNlbGVjdGVkOiBmYWxzZSxcbiAgICBpc1RhYmxlQ2VsbDogZmFsc2UsXG4gICAgaXNJbWFnZTogZmFsc2UsXG4gICAgaXNCbG9ja3F1b3RlOiBmYWxzZSxcbiAgICBpc0NvZGVCbG9jazogZmFsc2UsXG4gICAgaXNCdWxsZXRMaXN0OiBmYWxzZSxcbiAgICBpc09yZGVyZWRMaXN0OiBmYWxzZSxcbiAgICBoMTogZmFsc2UsXG4gICAgaDI6IGZhbHNlLFxuICAgIGgzOiBmYWxzZSxcbiAgICBhbGlnbkxlZnQ6IGZhbHNlLFxuICAgIGFsaWduQ2VudGVyOiBmYWxzZSxcbiAgICBhbGlnblJpZ2h0OiBmYWxzZSxcbiAgICBhbGlnbkp1c3RpZnk6IGZhbHNlLFxuICAgIGlzVGFibGVIZWFkZXJSb3c6IGZhbHNlLFxuICAgIGlzVGFibGVIZWFkZXJDb2x1bW46IGZhbHNlLFxuICAgIGFjdGl2ZU5vZGVOYW1lOiBudWxsLFxuICB9LFxuICBjdXN0b206IHt9LFxufTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWltYWdlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvbW9kZWxzL2F0ZS1pbWFnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXRlSW1hZ2VEYXRhIHtcbiAgc3JjOiBzdHJpbmc7XG4gIGFsdD86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXRlSW1hZ2VVcGxvYWRSZXN1bHQge1xuICBzcmM6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzaXplOiBudW1iZXI7XG4gIHR5cGU6IHN0cmluZztcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgb3JpZ2luYWxTaXplPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF0ZVJlc2l6ZU9wdGlvbnMge1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBtYWludGFpbkFzcGVjdFJhdGlvPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdGVJbWFnZVVwbG9hZE9wdGlvbnMge1xuICBxdWFsaXR5PzogbnVtYmVyO1xuICBtYXhXaWR0aD86IG51bWJlcjtcbiAgbWF4SGVpZ2h0PzogbnVtYmVyO1xuICBtYXhTaXplPzogbnVtYmVyOyAvLyBpbiBieXRlc1xuICBhbGxvd2VkVHlwZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBDb250ZXh0IHBhc3NlZCB0byB0aGUgaW1hZ2UgdXBsb2FkIGhhbmRsZXIgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW1hZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdGVJbWFnZVVwbG9hZENvbnRleHQge1xuICAvKiogT3JpZ2luYWwgZmlsZSBiZWluZyB1cGxvYWRlZCAqL1xuICBmaWxlOiBGaWxlO1xuICAvKiogV2lkdGggb2YgdGhlIHByb2Nlc3NlZCBpbWFnZSAqL1xuICB3aWR0aDogbnVtYmVyO1xuICAvKiogSGVpZ2h0IG9mIHRoZSBwcm9jZXNzZWQgaW1hZ2UgKi9cbiAgaGVpZ2h0OiBudW1iZXI7XG4gIC8qKiBNSU1FIHR5cGUgb2YgdGhlIGltYWdlICovXG4gIHR5cGU6IHN0cmluZztcbiAgLyoqIEJhc2U2NCBkYXRhIFVSTCBvZiB0aGUgcHJvY2Vzc2VkIGltYWdlIChhZnRlciBjb21wcmVzc2lvbi9yZXNpemUpICovXG4gIGJhc2U2NDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3VsdCBleHBlY3RlZCBmcm9tIGEgY3VzdG9tIGltYWdlIHVwbG9hZCBoYW5kbGVyLlxuICogTXVzdCBjb250YWluIGF0IGxlYXN0IHRoZSBgc3JjYCBwcm9wZXJ0eSB3aXRoIHRoZSBpbWFnZSBVUkwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXRlSW1hZ2VVcGxvYWRIYW5kbGVyUmVzdWx0IHtcbiAgLyoqIFVSTCBvZiB0aGUgdXBsb2FkZWQgaW1hZ2UgKGNhbiBiZSBhIHJlbW90ZSBVUkwgb3IgYW55IHN0cmluZykgKi9cbiAgc3JjOiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBjdXN0b20gYWx0IHRleHQgKi9cbiAgYWx0Pzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgY3VzdG9tIHRpdGxlICovXG4gIHRpdGxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEN1c3RvbSBoYW5kbGVyIGZ1bmN0aW9uIGZvciBpbWFnZSB1cGxvYWRzLlxuICogQWxsb3dzIHVzZXJzIHRvIGltcGxlbWVudCB0aGVpciBvd24gaW1hZ2Ugc3RvcmFnZSBsb2dpYyAoZS5nLiwgdXBsb2FkIHRvIFMzLCBDbG91ZGluYXJ5LCBldGMuKVxuICpcbiAqIENhbiByZXR1cm4gZWl0aGVyIGEgUHJvbWlzZSBvciBhbiBPYnNlcnZhYmxlIChBbmd1bGFyLWZyaWVuZGx5KS5cbiAqXG4gKiBAcGFyYW0gY29udGV4dCAtIENvbnRleHQgY29udGFpbmluZyB0aGUgaW1hZ2UgZmlsZSBhbmQgbWV0YWRhdGFcbiAqIEByZXR1cm5zIFByb21pc2Ugb3IgT2JzZXJ2YWJsZSByZXNvbHZpbmcgdG8gSW1hZ2VVcGxvYWRIYW5kbGVyUmVzdWx0XG4gKlxuICogQGV4YW1wbGUgVXNpbmcgUHJvbWlzZSAoYXN5bmMvYXdhaXQpXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiB1cGxvYWRIYW5kbGVyOiBJbWFnZVVwbG9hZEhhbmRsZXIgPSBhc3luYyAoY3R4KSA9PiB7XG4gKiAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gKiAgIGZvcm1EYXRhLmFwcGVuZCgnaW1hZ2UnLCBjdHguZmlsZSk7XG4gKiAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wb3N0PHt1cmw6IHN0cmluZ30+KCcvYXBpL3VwbG9hZCcsIGZvcm1EYXRhKSk7XG4gKiAgIHJldHVybiB7IHNyYzogcmVzdWx0LnVybCB9O1xuICogfTtcbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFVzaW5nIE9ic2VydmFibGUgKEFuZ3VsYXIgSHR0cENsaWVudClcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHVwbG9hZEhhbmRsZXI6IEltYWdlVXBsb2FkSGFuZGxlciA9IChjdHgpID0+IHtcbiAqICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAqICAgZm9ybURhdGEuYXBwZW5kKCdpbWFnZScsIGN0eC5maWxlKTtcbiAqICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHt1cmw6IHN0cmluZ30+KCcvYXBpL3VwbG9hZCcsIGZvcm1EYXRhKS5waXBlKFxuICogICAgIG1hcChyZXN1bHQgPT4gKHsgc3JjOiByZXN1bHQudXJsIH0pKVxuICogICApO1xuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgdHlwZSBBdGVJbWFnZVVwbG9hZEhhbmRsZXIgPSAoXG4gIGNvbnRleHQ6IEF0ZUltYWdlVXBsb2FkQ29udGV4dFxuKSA9PiBQcm9taXNlPEF0ZUltYWdlVXBsb2FkSGFuZGxlclJlc3VsdD4gfCBPYnNlcnZhYmxlPEF0ZUltYWdlVXBsb2FkSGFuZGxlclJlc3VsdD47XG5cbi8qKlxuICogSW50ZXJmYWNlIGRlZGljYXRlZCB0byBpbWFnZSB1cGxvYWQgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdGVJbWFnZVVwbG9hZENvbmZpZyB7XG4gIC8qKiBDYWxsYmFjayBmdW5jdGlvbiB0byBoYW5kbGUgdXBsb2FkIChQcm9taXNlIG9yIE9ic2VydmFibGUpICovXG4gIGhhbmRsZXI/OiBBdGVJbWFnZVVwbG9hZEhhbmRsZXI7XG4gIC8qKiBDb21wcmVzc2lvbiBxdWFsaXR5ICgwIHRvIDEpICovXG4gIHF1YWxpdHk/OiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIGFsbG93ZWQgd2lkdGggaW4gcGl4ZWxzICovXG4gIG1heFdpZHRoPzogbnVtYmVyO1xuICAvKiogTWF4aW11bSBhbGxvd2VkIGhlaWdodCBpbiBwaXhlbHMgKi9cbiAgbWF4SGVpZ2h0PzogbnVtYmVyO1xuICAvKiogTWF4aW11bSBhbGxvd2VkIHNpemUgaW4gTUIgKi9cbiAgbWF4U2l6ZT86IG51bWJlcjtcbiAgLyoqIEFjY2VwdGVkIGZpbGUgdHlwZXMgKGUuZy4sIFsnaW1hZ2UvanBlZycsICdpbWFnZS9wbmcnXSkgKi9cbiAgYWxsb3dlZFR5cGVzPzogc3RyaW5nW107XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXNsYXNoLWNvbW1hbmQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9tb2RlbHMvYXRlLXNsYXNoLWNvbW1hbmQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciB9IGZyb20gXCJAdGlwdGFwL2NvcmVcIjtcblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgc2luZ2xlIGl0ZW0gaW4gdGhlIHNsYXNoIGNvbW1hbmRzIG1lbnUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXRlU2xhc2hDb21tYW5kSXRlbSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAga2V5d29yZHM6IHN0cmluZ1tdO1xuICBjb21tYW5kOiAoZWRpdG9yOiBFZGl0b3IpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQ3VzdG9tIHNsYXNoIGNvbW1hbmRzIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXRlQ3VzdG9tU2xhc2hDb21tYW5kcyB7XG4gIGNvbW1hbmRzPzogQXRlU2xhc2hDb21tYW5kSXRlbVtdO1xufVxuIl19
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Clés des boutons de la barre d'outils native
3
+ */
4
+ export const ATE_TOOLBAR_KEYS = [
5
+ "bold",
6
+ "italic",
7
+ "underline",
8
+ "strike",
9
+ "code",
10
+ "codeBlock",
11
+ "superscript",
12
+ "subscript",
13
+ "highlight",
14
+ "highlightPicker",
15
+ "heading1",
16
+ "heading2",
17
+ "heading3",
18
+ "bulletList",
19
+ "orderedList",
20
+ "blockquote",
21
+ "alignLeft",
22
+ "alignCenter",
23
+ "alignRight",
24
+ "alignJustify",
25
+ "link",
26
+ "image",
27
+ "horizontalRule",
28
+ "table",
29
+ "undo",
30
+ "redo",
31
+ "clear",
32
+ "textColor",
33
+ "separator",
34
+ ];
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXRvb2xiYXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9tb2RlbHMvYXRlLXRvb2xiYXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixNQUFNO0lBQ04sUUFBUTtJQUNSLFdBQVc7SUFDWCxRQUFRO0lBQ1IsTUFBTTtJQUNOLFdBQVc7SUFDWCxhQUFhO0lBQ2IsV0FBVztJQUNYLFdBQVc7SUFDWCxpQkFBaUI7SUFDakIsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsWUFBWTtJQUNaLGFBQWE7SUFDYixZQUFZO0lBQ1osV0FBVztJQUNYLGFBQWE7SUFDYixZQUFZO0lBQ1osY0FBYztJQUNkLE1BQU07SUFDTixPQUFPO0lBQ1AsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxNQUFNO0lBQ04sTUFBTTtJQUNOLE9BQU87SUFDUCxXQUFXO0lBQ1gsV0FBVztDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5cbi8qKlxuICogQ2zDqXMgZGVzIGJvdXRvbnMgZGUgbGEgYmFycmUgZCdvdXRpbHMgbmF0aXZlXG4gKi9cbmV4cG9ydCBjb25zdCBBVEVfVE9PTEJBUl9LRVlTID0gW1xuICBcImJvbGRcIixcbiAgXCJpdGFsaWNcIixcbiAgXCJ1bmRlcmxpbmVcIixcbiAgXCJzdHJpa2VcIixcbiAgXCJjb2RlXCIsXG4gIFwiY29kZUJsb2NrXCIsXG4gIFwic3VwZXJzY3JpcHRcIixcbiAgXCJzdWJzY3JpcHRcIixcbiAgXCJoaWdobGlnaHRcIixcbiAgXCJoaWdobGlnaHRQaWNrZXJcIixcbiAgXCJoZWFkaW5nMVwiLFxuICBcImhlYWRpbmcyXCIsXG4gIFwiaGVhZGluZzNcIixcbiAgXCJidWxsZXRMaXN0XCIsXG4gIFwib3JkZXJlZExpc3RcIixcbiAgXCJibG9ja3F1b3RlXCIsXG4gIFwiYWxpZ25MZWZ0XCIsXG4gIFwiYWxpZ25DZW50ZXJcIixcbiAgXCJhbGlnblJpZ2h0XCIsXG4gIFwiYWxpZ25KdXN0aWZ5XCIsXG4gIFwibGlua1wiLFxuICBcImltYWdlXCIsXG4gIFwiaG9yaXpvbnRhbFJ1bGVcIixcbiAgXCJ0YWJsZVwiLFxuICBcInVuZG9cIixcbiAgXCJyZWRvXCIsXG4gIFwiY2xlYXJcIixcbiAgXCJ0ZXh0Q29sb3JcIixcbiAgXCJzZXBhcmF0b3JcIixcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEF0ZVRvb2xiYXJLZXkgPSAodHlwZW9mIEFURV9UT09MQkFSX0tFWVMpW251bWJlcl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXRlVG9vbGJhckNvbmZpZyBleHRlbmRzIFBhcnRpYWw8UmVjb3JkPEF0ZVRvb2xiYXJLZXksIGJvb2xlYW4+PiB7XG4gIC8qKlxuICAgKiBCb3V0b25zIHBlcnNvbm5hbGlzw6lzIMOgIGFqb3V0ZXJcbiAgICovXG4gIGN1c3RvbT86IEF0ZUN1c3RvbVRvb2xiYXJJdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXRlQ3VzdG9tVG9vbGJhckl0ZW0ge1xuICBrZXk6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBjb21tYW5kOiAoZWRpdG9yOiBFZGl0b3IpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xufVxuIl19
@@ -0,0 +1,97 @@
1
+ import { Directive, signal } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Base abstract class for custom 'Angular Nodes'.
5
+ *
6
+ * Extend this class in your custom components to automatically receive TipTap editor
7
+ * properties (node attributes, selection state, etc.) as reactive Signals.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * @Component({
12
+ * selector: 'app-counter',
13
+ * template: `
14
+ * <div>
15
+ * <button (click)="increment()">Count: {{ node().attrs['count'] }}</button>
16
+ * </div>
17
+ * `
18
+ * })
19
+ * export class CounterComponent extends AteAngularNodeView {
20
+ * increment() {
21
+ * const count = this.node().attrs['count'] || 0;
22
+ * this.updateAttributes({ count: count + 1 });
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ export class AteAngularNodeView {
28
+ /**
29
+ * Internal method to initialize the component with NodeView props.
30
+ * This is called by the AngularNodeViewRenderer.
31
+ *
32
+ * @internal
33
+ */
34
+ _initNodeView(props) {
35
+ // Create signals from the props
36
+ const editorSignal = signal(props.editor);
37
+ const nodeSignal = signal(props.node);
38
+ const decorationsSignal = signal(props.decorations);
39
+ const selectedSignal = signal(props.selected);
40
+ const extensionSignal = signal(props.extension);
41
+ // Assign to the component
42
+ this.editor = editorSignal.asReadonly();
43
+ this.node = nodeSignal.asReadonly();
44
+ this.decorations = decorationsSignal.asReadonly();
45
+ this.selected = selectedSignal.asReadonly();
46
+ this.extension = extensionSignal.asReadonly();
47
+ this.getPos = props.getPos;
48
+ this.updateAttributes = props.updateAttributes;
49
+ this.deleteNode = props.deleteNode;
50
+ // Store writable signals for updates
51
+ this._writableSignals = {
52
+ node: nodeSignal,
53
+ decorations: decorationsSignal,
54
+ selected: selectedSignal,
55
+ };
56
+ }
57
+ /**
58
+ * Internal method to update the component when the node changes.
59
+ * This is called by the AngularNodeViewRenderer.
60
+ *
61
+ * @internal
62
+ */
63
+ _updateNodeView(node, decorations) {
64
+ if (this._writableSignals) {
65
+ this._writableSignals.node.set(node);
66
+ this._writableSignals.decorations.set(decorations);
67
+ }
68
+ }
69
+ /**
70
+ * Internal method to update the selection state.
71
+ * This is called by the AngularNodeViewRenderer.
72
+ *
73
+ * @internal
74
+ */
75
+ _selectNodeView() {
76
+ if (this._writableSignals) {
77
+ this._writableSignals.selected.set(true);
78
+ }
79
+ }
80
+ /**
81
+ * Internal method to update the deselection state.
82
+ * This is called by the AngularNodeViewRenderer.
83
+ *
84
+ * @internal
85
+ */
86
+ _deselectNodeView() {
87
+ if (this._writableSignals) {
88
+ this._writableSignals.selected.set(false);
89
+ }
90
+ }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteAngularNodeView, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
92
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: AteAngularNodeView, ngImport: i0 }); }
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteAngularNodeView, decorators: [{
95
+ type: Directive
96
+ }] });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWFuZ3VsYXItbm9kZS12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvbm9kZS12aWV3L2F0ZS1hbmd1bGFyLW5vZGUtdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBMEIsTUFBTSxlQUFlLENBQUM7O0FBbUIxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFFSCxNQUFNLE9BQWdCLGtCQUFrQjtJQXVEdEM7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUMsS0FBOEI7UUFDMUMsZ0NBQWdDO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhELDBCQUEwQjtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUVuQyxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3RCLElBQUksRUFBRSxVQUFVO1lBQ2hCLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsUUFBUSxFQUFFLGNBQWM7U0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxJQUFxQixFQUFFLFdBQWtDO1FBQ3ZFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUI7UUFDZixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDOytHQTFIbUIsa0JBQWtCO21HQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRHZDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIHNpZ25hbCwgU2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOb2RlIGFzIFByb3NlTWlycm9yTm9kZSB9IGZyb20gXCJAdGlwdGFwL3BtL21vZGVsXCI7XG5pbXBvcnQgeyBEZWNvcmF0aW9uIH0gZnJvbSBcIkB0aXB0YXAvcG0vdmlld1wiO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSBcIkB0aXB0YXAvY29yZVwiO1xuXG4vKipcbiAqIFByb3BzIHRoYXQgYXJlIGluamVjdGVkIGludG8gQW5ndWxhciBOb2RlVmlldyBjb21wb25lbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXRlQW5ndWxhck5vZGVWaWV3UHJvcHMge1xuICBlZGl0b3I6IEVkaXRvcjtcbiAgbm9kZTogUHJvc2VNaXJyb3JOb2RlO1xuICBkZWNvcmF0aW9uczogcmVhZG9ubHkgRGVjb3JhdGlvbltdO1xuICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgZXh0ZW5zaW9uOiB1bmtub3duO1xuICBnZXRQb3M6ICgpID0+IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgdXBkYXRlQXR0cmlidXRlczogKGF0dHJzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdm9pZDtcbiAgZGVsZXRlTm9kZTogKCkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBCYXNlIGFic3RyYWN0IGNsYXNzIGZvciBjdXN0b20gJ0FuZ3VsYXIgTm9kZXMnLlxuICpcbiAqIEV4dGVuZCB0aGlzIGNsYXNzIGluIHlvdXIgY3VzdG9tIGNvbXBvbmVudHMgdG8gYXV0b21hdGljYWxseSByZWNlaXZlIFRpcFRhcCBlZGl0b3JcbiAqIHByb3BlcnRpZXMgKG5vZGUgYXR0cmlidXRlcywgc2VsZWN0aW9uIHN0YXRlLCBldGMuKSBhcyByZWFjdGl2ZSBTaWduYWxzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBAQ29tcG9uZW50KHtcbiAqICAgc2VsZWN0b3I6ICdhcHAtY291bnRlcicsXG4gKiAgIHRlbXBsYXRlOiBgXG4gKiAgICAgPGRpdj5cbiAqICAgICAgIDxidXR0b24gKGNsaWNrKT1cImluY3JlbWVudCgpXCI+Q291bnQ6IHt7IG5vZGUoKS5hdHRyc1snY291bnQnXSB9fTwvYnV0dG9uPlxuICogICAgIDwvZGl2PlxuICogICBgXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIENvdW50ZXJDb21wb25lbnQgZXh0ZW5kcyBBdGVBbmd1bGFyTm9kZVZpZXcge1xuICogICBpbmNyZW1lbnQoKSB7XG4gKiAgICAgY29uc3QgY291bnQgPSB0aGlzLm5vZGUoKS5hdHRyc1snY291bnQnXSB8fCAwO1xuICogICAgIHRoaXMudXBkYXRlQXR0cmlidXRlcyh7IGNvdW50OiBjb3VudCArIDEgfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdGVBbmd1bGFyTm9kZVZpZXcge1xuICAvKipcbiAgICogVGhlIFRpcFRhcCBlZGl0b3IgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBlZGl0b3IhOiBTaWduYWw8RWRpdG9yPjtcblxuICAvKipcbiAgICogVGhlIFByb3NlTWlycm9yIG5vZGVcbiAgICovXG4gIHB1YmxpYyBub2RlITogU2lnbmFsPFByb3NlTWlycm9yTm9kZT47XG5cbiAgLyoqXG4gICAqIERlY29yYXRpb25zIGFwcGxpZWQgdG8gdGhpcyBub2RlXG4gICAqL1xuICBwdWJsaWMgZGVjb3JhdGlvbnMhOiBTaWduYWw8cmVhZG9ubHkgRGVjb3JhdGlvbltdPjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbm9kZSBpcyBjdXJyZW50bHkgc2VsZWN0ZWRcbiAgICovXG4gIHB1YmxpYyBzZWxlY3RlZCE6IFNpZ25hbDxib29sZWFuPjtcblxuICAvKipcbiAgICogVGhlIGV4dGVuc2lvbiBpbnN0YW5jZSB0aGF0IGNyZWF0ZWQgdGhpcyBub2RlXG4gICAqL1xuICBwdWJsaWMgZXh0ZW5zaW9uITogU2lnbmFsPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBnZXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhpcyBub2RlIGluIHRoZSBkb2N1bWVudFxuICAgKi9cbiAgcHVibGljIGdldFBvcyE6ICgpID0+IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBhdHRyaWJ1dGVzIG9mIHRoaXMgbm9kZVxuICAgKlxuICAgKiBAcGFyYW0gYXR0cnMgLSBQYXJ0aWFsIGF0dHJpYnV0ZXMgdG8gdXBkYXRlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogdGhpcy51cGRhdGVBdHRyaWJ1dGVzKHsgY291bnQ6IDUsIGNvbG9yOiAnYmx1ZScgfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUF0dHJpYnV0ZXMhOiAoYXR0cnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBEZWxldGUgdGhpcyBub2RlIGZyb20gdGhlIGRvY3VtZW50XG4gICAqL1xuICBwdWJsaWMgZGVsZXRlTm9kZSE6ICgpID0+IHZvaWQ7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcml2YXRlIF93cml0YWJsZVNpZ25hbHM/OiB7XG4gICAgbm9kZTogV3JpdGFibGVTaWduYWw8UHJvc2VNaXJyb3JOb2RlPjtcbiAgICBkZWNvcmF0aW9uczogV3JpdGFibGVTaWduYWw8cmVhZG9ubHkgRGVjb3JhdGlvbltdPjtcbiAgICBzZWxlY3RlZDogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj47XG4gIH07XG5cbiAgLyoqXG4gICAqIEludGVybmFsIG1ldGhvZCB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnQgd2l0aCBOb2RlVmlldyBwcm9wcy5cbiAgICogVGhpcyBpcyBjYWxsZWQgYnkgdGhlIEFuZ3VsYXJOb2RlVmlld1JlbmRlcmVyLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9pbml0Tm9kZVZpZXcocHJvcHM6IEF0ZUFuZ3VsYXJOb2RlVmlld1Byb3BzKTogdm9pZCB7XG4gICAgLy8gQ3JlYXRlIHNpZ25hbHMgZnJvbSB0aGUgcHJvcHNcbiAgICBjb25zdCBlZGl0b3JTaWduYWwgPSBzaWduYWwocHJvcHMuZWRpdG9yKTtcbiAgICBjb25zdCBub2RlU2lnbmFsID0gc2lnbmFsKHByb3BzLm5vZGUpO1xuICAgIGNvbnN0IGRlY29yYXRpb25zU2lnbmFsID0gc2lnbmFsKHByb3BzLmRlY29yYXRpb25zKTtcbiAgICBjb25zdCBzZWxlY3RlZFNpZ25hbCA9IHNpZ25hbChwcm9wcy5zZWxlY3RlZCk7XG4gICAgY29uc3QgZXh0ZW5zaW9uU2lnbmFsID0gc2lnbmFsKHByb3BzLmV4dGVuc2lvbik7XG5cbiAgICAvLyBBc3NpZ24gdG8gdGhlIGNvbXBvbmVudFxuICAgIHRoaXMuZWRpdG9yID0gZWRpdG9yU2lnbmFsLmFzUmVhZG9ubHkoKTtcbiAgICB0aGlzLm5vZGUgPSBub2RlU2lnbmFsLmFzUmVhZG9ubHkoKTtcbiAgICB0aGlzLmRlY29yYXRpb25zID0gZGVjb3JhdGlvbnNTaWduYWwuYXNSZWFkb25seSgpO1xuICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZFNpZ25hbC5hc1JlYWRvbmx5KCk7XG4gICAgdGhpcy5leHRlbnNpb24gPSBleHRlbnNpb25TaWduYWwuYXNSZWFkb25seSgpO1xuICAgIHRoaXMuZ2V0UG9zID0gcHJvcHMuZ2V0UG9zO1xuICAgIHRoaXMudXBkYXRlQXR0cmlidXRlcyA9IHByb3BzLnVwZGF0ZUF0dHJpYnV0ZXM7XG4gICAgdGhpcy5kZWxldGVOb2RlID0gcHJvcHMuZGVsZXRlTm9kZTtcblxuICAgIC8vIFN0b3JlIHdyaXRhYmxlIHNpZ25hbHMgZm9yIHVwZGF0ZXNcbiAgICB0aGlzLl93cml0YWJsZVNpZ25hbHMgPSB7XG4gICAgICBub2RlOiBub2RlU2lnbmFsLFxuICAgICAgZGVjb3JhdGlvbnM6IGRlY29yYXRpb25zU2lnbmFsLFxuICAgICAgc2VsZWN0ZWQ6IHNlbGVjdGVkU2lnbmFsLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIHVwZGF0ZSB0aGUgY29tcG9uZW50IHdoZW4gdGhlIG5vZGUgY2hhbmdlcy5cbiAgICogVGhpcyBpcyBjYWxsZWQgYnkgdGhlIEFuZ3VsYXJOb2RlVmlld1JlbmRlcmVyLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF91cGRhdGVOb2RlVmlldyhub2RlOiBQcm9zZU1pcnJvck5vZGUsIGRlY29yYXRpb25zOiByZWFkb25seSBEZWNvcmF0aW9uW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fd3JpdGFibGVTaWduYWxzKSB7XG4gICAgICB0aGlzLl93cml0YWJsZVNpZ25hbHMubm9kZS5zZXQobm9kZSk7XG4gICAgICB0aGlzLl93cml0YWJsZVNpZ25hbHMuZGVjb3JhdGlvbnMuc2V0KGRlY29yYXRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIHVwZGF0ZSB0aGUgc2VsZWN0aW9uIHN0YXRlLlxuICAgKiBUaGlzIGlzIGNhbGxlZCBieSB0aGUgQW5ndWxhck5vZGVWaWV3UmVuZGVyZXIuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX3NlbGVjdE5vZGVWaWV3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl93cml0YWJsZVNpZ25hbHMpIHtcbiAgICAgIHRoaXMuX3dyaXRhYmxlU2lnbmFscy5zZWxlY3RlZC5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEludGVybmFsIG1ldGhvZCB0byB1cGRhdGUgdGhlIGRlc2VsZWN0aW9uIHN0YXRlLlxuICAgKiBUaGlzIGlzIGNhbGxlZCBieSB0aGUgQW5ndWxhck5vZGVWaWV3UmVuZGVyZXIuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX2Rlc2VsZWN0Tm9kZVZpZXcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3dyaXRhYmxlU2lnbmFscykge1xuICAgICAgdGhpcy5fd3JpdGFibGVTaWduYWxzLnNlbGVjdGVkLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Internal registry to store the root injector for the editor.
3
+ * This allows registerAngularComponent to work without explicitly passing the injector.
4
+ * @internal
5
+ */
6
+ let globalInjector = null;
7
+ export function setGlobalInjector(injector) {
8
+ globalInjector = injector;
9
+ }
10
+ export function getGlobalInjector() {
11
+ if (!globalInjector) {
12
+ throw new Error("[ATE] Global Injector not found. Make sure to call provideAteEditor() in your app.config.ts or main.ts.");
13
+ }
14
+ return globalInjector;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWluamVjdG9yLnJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvbm9kZS12aWV3L2F0ZS1pbmplY3Rvci5yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsSUFBSSxjQUFjLEdBQW9CLElBQUksQ0FBQztBQUUzQyxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBa0I7SUFDbEQsY0FBYyxHQUFHLFFBQVEsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FDYix5R0FBeUcsQ0FDMUcsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG4vKipcbiAqIEludGVybmFsIHJlZ2lzdHJ5IHRvIHN0b3JlIHRoZSByb290IGluamVjdG9yIGZvciB0aGUgZWRpdG9yLlxuICogVGhpcyBhbGxvd3MgcmVnaXN0ZXJBbmd1bGFyQ29tcG9uZW50IHRvIHdvcmsgd2l0aG91dCBleHBsaWNpdGx5IHBhc3NpbmcgdGhlIGluamVjdG9yLlxuICogQGludGVybmFsXG4gKi9cbmxldCBnbG9iYWxJbmplY3RvcjogSW5qZWN0b3IgfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldEdsb2JhbEluamVjdG9yKGluamVjdG9yOiBJbmplY3Rvcik6IHZvaWQge1xuICBnbG9iYWxJbmplY3RvciA9IGluamVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2xvYmFsSW5qZWN0b3IoKTogSW5qZWN0b3Ige1xuICBpZiAoIWdsb2JhbEluamVjdG9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJbQVRFXSBHbG9iYWwgSW5qZWN0b3Igbm90IGZvdW5kLiBNYWtlIHN1cmUgdG8gY2FsbCBwcm92aWRlQXRlRWRpdG9yKCkgaW4geW91ciBhcHAuY29uZmlnLnRzIG9yIG1haW4udHMuXCJcbiAgICApO1xuICB9XG4gIHJldHVybiBnbG9iYWxJbmplY3Rvcjtcbn1cbiJdfQ==
@@ -0,0 +1,125 @@
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { AteAngularNodeView } from "./ate-angular-node-view";
3
+ import { AteNodeViewRenderer } from "./ate-node-view.renderer";
4
+ const RESERVED_NAMES = [
5
+ "doc",
6
+ "paragraph",
7
+ "text",
8
+ "hardBreak",
9
+ "bulletList",
10
+ "orderedList",
11
+ "listItem",
12
+ "blockquote",
13
+ "codeBlock",
14
+ "heading",
15
+ "horizontalRule",
16
+ ];
17
+ /**
18
+ * Derives the TipTap node name and HTML tag from a component class.
19
+ */
20
+ function deriveMetadata(component, customName) {
21
+ let nodeName = customName;
22
+ if (!nodeName) {
23
+ nodeName = component.name
24
+ .replace(/Component$/, "")
25
+ .replace(/Node$/, "")
26
+ .replace(/^([A-Z])/, m => m.toLowerCase());
27
+ console.warn(`[ATE] Auto-deriving node name '${nodeName}' for component ${component.name}. ` +
28
+ `Provide an explicit 'name' in options to avoid potential naming collisions.`);
29
+ }
30
+ if (RESERVED_NAMES.includes(nodeName)) {
31
+ throw new Error(`[ATE] The name '${nodeName}' is a reserved TipTap node name. ` +
32
+ `Please provide a unique name for your custom component.`);
33
+ }
34
+ const tag = nodeName.toLowerCase().replace(/([A-Z])/g, "-$1");
35
+ return { nodeName, tag };
36
+ }
37
+ /**
38
+ * Creates TipTap attributes from component inputs (Standard Mode).
39
+ */
40
+ function createStandardAttributes(defaultInputs = {}) {
41
+ const tiptapAttributes = {};
42
+ Object.entries(defaultInputs).forEach(([key, defaultValue]) => {
43
+ tiptapAttributes[key] = {
44
+ default: defaultValue,
45
+ parseHTML: (element) => {
46
+ const attr = element.getAttribute(`data-${key}`);
47
+ if (attr === null) {
48
+ return defaultValue;
49
+ }
50
+ try {
51
+ return JSON.parse(attr);
52
+ }
53
+ catch {
54
+ return attr;
55
+ }
56
+ },
57
+ renderHTML: (attrs) => {
58
+ const value = attrs[key];
59
+ if (value === undefined || value === null) {
60
+ return {};
61
+ }
62
+ const serialized = typeof value === "object" ? JSON.stringify(value) : String(value);
63
+ return { [`data-${key}`]: serialized };
64
+ },
65
+ };
66
+ });
67
+ return tiptapAttributes;
68
+ }
69
+ /**
70
+ * Factory to transform an Angular component into a TipTap Node extension.
71
+ * Supports both "TipTap-Aware" and "Standard" modes.
72
+ *
73
+ * @internal
74
+ */
75
+ export function createAngularComponentExtension(injector, options) {
76
+ const { component, name: customName, attributes, defaultInputs, contentSelector, contentMode = "block", editableContent = false, group = "block", draggable = true, ignoreMutation = true, onOutput, HTMLAttributes = {}, parseHTML: customParseHTML, renderHTML: customRenderHTML, } = options;
77
+ const { nodeName, tag } = deriveMetadata(component, customName);
78
+ const isTipTapAware = Object.prototype.isPrototypeOf.call(AteAngularNodeView, component);
79
+ const atom = !editableContent;
80
+ // 1. Prepare Attributes
81
+ const tiptapAttributes = isTipTapAware
82
+ ? attributes || {}
83
+ : createStandardAttributes(defaultInputs);
84
+ // 2. Create Node Extension
85
+ return Node.create({
86
+ name: nodeName,
87
+ group,
88
+ inline: group === "inline",
89
+ atom,
90
+ draggable,
91
+ content: editableContent ? (contentMode === "inline" ? "inline*" : "block*") : undefined,
92
+ addAttributes() {
93
+ return tiptapAttributes;
94
+ },
95
+ parseHTML() {
96
+ if (customParseHTML) {
97
+ return customParseHTML.call(this);
98
+ }
99
+ return [{ tag }, { tag: `div[data-component="${nodeName}"]` }];
100
+ },
101
+ renderHTML({ node, HTMLAttributes: attrs }) {
102
+ if (customRenderHTML) {
103
+ return customRenderHTML.call(this, { node, HTMLAttributes: attrs });
104
+ }
105
+ return [tag, mergeAttributes(HTMLAttributes, attrs, { "data-component": nodeName })];
106
+ },
107
+ addNodeView() {
108
+ return AteNodeViewRenderer(component, {
109
+ injector,
110
+ inputs: defaultInputs,
111
+ wrapperTag: group === "inline" ? "span" : "div",
112
+ wrapperClass: isTipTapAware
113
+ ? `ate-node-${nodeName}`
114
+ : `embedded-component embedded-${nodeName}`,
115
+ atom,
116
+ editableContent,
117
+ contentSelector,
118
+ contentMode,
119
+ onOutput,
120
+ ignoreMutation,
121
+ });
122
+ },
123
+ });
124
+ }
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLW5vZGUtdmlldy5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvbm9kZS12aWV3L2F0ZS1ub2RlLXZpZXcuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxNQUFNLGNBQWMsR0FBRztJQUNyQixLQUFLO0lBQ0wsV0FBVztJQUNYLE1BQU07SUFDTixXQUFXO0lBQ1gsWUFBWTtJQUNaLGFBQWE7SUFDYixVQUFVO0lBQ1YsWUFBWTtJQUNaLFdBQVc7SUFDWCxTQUFTO0lBQ1QsZ0JBQWdCO0NBQ2pCLENBQUM7QUFFRjs7R0FFRztBQUNILFNBQVMsY0FBYyxDQUFDLFNBQXdCLEVBQUUsVUFBbUI7SUFDbkUsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBRTFCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSTthQUN0QixPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQzthQUN6QixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQzthQUNwQixPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFN0MsT0FBTyxDQUFDLElBQUksQ0FDVixrQ0FBa0MsUUFBUSxtQkFBbUIsU0FBUyxDQUFDLElBQUksSUFBSTtZQUM3RSw2RUFBNkUsQ0FDaEYsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFD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USxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQy9DLFlBQVksRUFBRSxhQUFhO29CQUN6QixDQUFDLENBQUMsWUFBWSxRQUFRLEVBQUU7b0JBQ3hCLENBQUMsQ0FBQywrQkFBK0IsUUFBUSxFQUFFO2dCQUM3QyxJQUFJO2dCQUNKLGVBQWU7Z0JBQ2YsZUFBZTtnQkFDZixXQUFXO2dCQUNYLFFBQVE7Z0JBQ1IsY0FBYzthQUNmLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTm9kZSwgbWVyZ2VBdHRyaWJ1dGVzIH0gZnJvbSBcIkB0aXB0YXAvY29yZVwiO1xuaW1wb3J0IHsgQXRlQW5ndWxhck5vZGVWaWV3IH0gZnJvbSBcIi4vYXRlLWFuZ3VsYXItbm9kZS12aWV3XCI7XG5pbXBvcnQgeyBSZWdpc3RlckFuZ3VsYXJDb21wb25lbnRPcHRpb25zIH0gZnJvbSBcIi4vYXRlLW5vZGUtdmlldy5tb2RlbHNcIjtcbmltcG9ydCB7IEF0ZU5vZGVWaWV3UmVuZGVyZXIgfSBmcm9tIFwiLi9hdGUtbm9kZS12aWV3LnJlbmRlcmVyXCI7XG5cbmNvbnN0IFJFU0VSVkVEX05BTUVTID0gW1xuICBcImRvY1wiLFxuICBcInBhcmFncmFwaFwiLFxuICBcInRleHRcIixcbiAgXCJoYXJkQnJlYWtcIixcbiAgXCJidWxsZXRMaXN0XCIsXG4gIFwib3JkZXJlZExpc3RcIixcbiAgXCJsaXN0SXRlbVwiLFxuICBcImJsb2NrcXVvdGVcIixcbiAgXCJjb2RlQmxvY2tcIixcbiAgXCJoZWFkaW5nXCIsXG4gIFwiaG9yaXpvbnRhbFJ1bGVcIixcbl07XG5cbi8qKlxuICogRGVyaXZlcyB0aGUgVGlwVGFwIG5vZGUgbmFtZSBhbmQgSFRNTCB0YWcgZnJvbSBhIGNvbXBvbmVudCBjbGFzcy5cbiAqL1xuZnVuY3Rpb24gZGVyaXZlTWV0YWRhdGEoY29tcG9uZW50OiBUeXBlPHVua25vd24+LCBjdXN0b21OYW1lPzogc3RyaW5nKSB7XG4gIGxldCBub2RlTmFtZSA9IGN1c3RvbU5hbWU7XG5cbiAgaWYgKCFub2RlTmFtZSkge1xuICAgIG5vZGVOYW1lID0gY29tcG9uZW50Lm5hbWVcbiAgICAgIC5yZXBsYWNlKC9Db21wb25lbnQkLywgXCJcIilcbiAgICAgIC5yZXBsYWNlKC9Ob2RlJC8sIFwiXCIpXG4gICAgICAucmVwbGFjZSgvXihbQS1aXSkvLCBtID0+IG0udG9Mb3dlckNhc2UoKSk7XG5cbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgW0FURV0gQXV0by1kZXJpdmluZyBub2RlIG5hbWUgJyR7bm9kZU5hbWV9JyBmb3IgY29tcG9uZW50ICR7Y29tcG9uZW50Lm5hbWV9LiBgICtcbiAgICAgICAgYFByb3ZpZGUgYW4gZXhwbGljaXQgJ25hbWUnIGluIG9wdGlvbnMgdG8gYXZvaWQgcG90ZW50aWFsIG5hbWluZyBjb2xsaXNpb25zLmBcbiAgICApO1xuICB9XG5cbiAgaWYgKFJFU0VSVkVEX05BTUVTLmluY2x1ZGVzKG5vZGVOYW1lKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBbQVRFXSBUaGUgbmFtZSAnJHtub2RlTmFtZX0nIGlzIGEgcmVzZXJ2ZWQgVGlwVGFwIG5vZGUgbmFtZS4gYCArXG4gICAgICAgIGBQbGVhc2UgcHJvdmlkZSBhIHVuaXF1ZSBuYW1lIGZvciB5b3VyIGN1c3RvbSBjb21wb25lbnQuYFxuICAgICk7XG4gIH1cblxuICBjb25zdCB0YWcgPSBub2RlTmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbQS1aXSkvZywgXCItJDFcIik7XG4gIHJldHVybiB7IG5vZGVOYW1lLCB0YWcgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIFRpcFRhcCBhdHRyaWJ1dGVzIGZyb20gY29tcG9uZW50IGlucHV0cyAoU3RhbmRhcmQgTW9kZSkuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVN0YW5kYXJkQXR0cmlidXRlcyhkZWZhdWx0SW5wdXRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9KSB7XG4gIGNvbnN0IHRpcHRhcEF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgT2JqZWN0LmVudHJpZXMoZGVmYXVsdElucHV0cykuZm9yRWFjaCgoW2tleSwgZGVmYXVsdFZhbHVlXSkgPT4ge1xuICAgIHRpcHRhcEF0dHJpYnV0ZXNba2V5XSA9IHtcbiAgICAgIGRlZmF1bHQ6IGRlZmF1bHRWYWx1ZSxcbiAgICAgIHBhcnNlSFRNTDogKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGF0dHIgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShgZGF0YS0ke2tleX1gKTtcbiAgICAgICAgaWYgKGF0dHIgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoYXR0cik7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBhdHRyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVuZGVySFRNTDogKGF0dHJzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHJzW2tleV07XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICByZXR1cm4geyBbYGRhdGEtJHtrZXl9YF06IHNlcmlhbGl6ZWQgfTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIHRpcHRhcEF0dHJpYnV0ZXM7XG59XG5cbi8qKlxuICogRmFjdG9yeSB0byB0cmFuc2Zvcm0gYW4gQW5ndWxhciBjb21wb25lbnQgaW50byBhIFRpcFRhcCBOb2RlIGV4dGVuc2lvbi5cbiAqIFN1cHBvcnRzIGJvdGggXCJUaXBUYXAtQXdhcmVcIiBhbmQgXCJTdGFuZGFyZFwiIG1vZGVzLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5ndWxhckNvbXBvbmVudEV4dGVuc2lvbjxUID0gdW5rbm93bj4oXG4gIGluamVjdG9yOiBJbmplY3RvcixcbiAgb3B0aW9uczogUmVnaXN0ZXJBbmd1bGFyQ29tcG9uZW50T3B0aW9uczxUPlxuKTogTm9kZSB7XG4gIGNvbnN0IHtcbiAgICBjb21wb25lbnQsXG4gICAgbmFtZTogY3VzdG9tTmFtZSxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGRlZmF1bHRJbnB1dHMsXG4gICAgY29udGVudFNlbGVjdG9yLFxuICAgIGNvbnRlbnRNb2RlID0gXCJibG9ja1wiLFxuICAgIGVkaXRhYmxlQ29udGVudCA9IGZhbHNlLFxuICAgIGdyb3VwID0gXCJibG9ja1wiLFxuICAgIGRyYWdnYWJsZSA9IHRydWUsXG4gICAgaWdub3JlTXV0YXRpb24gPSB0cnVlLFxuICAgIG9uT3V0cHV0LFxuICAgIEhUTUxBdHRyaWJ1dGVzID0ge30sXG4gICAgcGFyc2VIVE1MOiBjdXN0b21QYXJzZUhUTUwsXG4gICAgcmVuZGVySFRNTDogY3VzdG9tUmVuZGVySFRNTCxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgeyBub2RlTmFtZSwgdGFnIH0gPSBkZXJpdmVNZXRhZGF0YShjb21wb25lbnQsIGN1c3RvbU5hbWUpO1xuICBjb25zdCBpc1RpcFRhcEF3YXJlID0gT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoQXRlQW5ndWxhck5vZGVWaWV3LCBjb21wb25lbnQpO1xuICBjb25zdCBhdG9tID0gIWVkaXRhYmxlQ29udGVudDtcblxuICAvLyAxLiBQcmVwYXJlIEF0dHJpYnV0ZXNcbiAgY29uc3QgdGlwdGFwQXR0cmlidXRlcyA9IGlzVGlwVGFwQXdhcmVcbiAgICA/IGF0dHJpYnV0ZXMgfHwge31cbiAgICA6IGNyZWF0ZVN0YW5kYXJkQXR0cmlidXRlcyhkZWZhdWx0SW5wdXRzKTtcblxuICAvLyAyLiBDcmVhdGUgTm9kZSBFeHRlbnNpb25cbiAgcmV0dXJuIE5vZGUuY3JlYXRlKHtcbiAgICBuYW1lOiBub2RlTmFtZSxcbiAgICBncm91cCxcbiAgICBpbmxpbmU6IGdyb3VwID09PSBcImlubGluZVwiLFxuICAgIGF0b20sXG4gICAgZHJhZ2dhYmxlLFxuICAgIGNvbnRlbnQ6IGVkaXRhYmxlQ29udGVudCA/IChjb250ZW50TW9kZSA9PT0gXCJpbmxpbmVcIiA/IFwiaW5saW5lKlwiIDogXCJibG9jaypcIikgOiB1bmRlZmluZWQsXG5cbiAgICBhZGRBdHRyaWJ1dGVzKCkge1xuICAgICAgcmV0dXJuIHRpcHRhcEF0dHJpYnV0ZXM7XG4gICAgfSxcblxuICAgIHBhcnNlSFRNTCgpIHtcbiAgICAgIGlmIChjdXN0b21QYXJzZUhUTUwpIHtcbiAgICAgICAgcmV0dXJuIGN1c3RvbVBhcnNlSFRNTC5jYWxsKHRoaXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFt7IHRhZyB9LCB7IHRhZzogYGRpdltkYXRhLWNvbXBvbmVudD1cIiR7bm9kZU5hbWV9XCJdYCB9XTtcbiAgICB9LFxuXG4gICAgcmVuZGVySFRNTCh7IG5vZGUsIEhUTUxBdHRyaWJ1dGVzOiBhdHRycyB9KSB7XG4gICAgICBpZiAoY3VzdG9tUmVuZGVySFRNTCkge1xuICAgICAgICByZXR1cm4gY3VzdG9tUmVuZGVySFRNTC5jYWxsKHRoaXMsIHsgbm9kZSwgSFRNTEF0dHJpYnV0ZXM6IGF0dHJzIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFt0YWcsIG1lcmdlQXR0cmlidXRlcyhIVE1MQXR0cmlidXRlcywgYXR0cnMsIHsgXCJkYXRhLWNvbXBvbmVudFwiOiBub2RlTmFtZSB9KV07XG4gICAgfSxcblxuICAgIGFkZE5vZGVWaWV3KCkge1xuICAgICAgcmV0dXJuIEF0ZU5vZGVWaWV3UmVuZGVyZXIoY29tcG9uZW50LCB7XG4gICAgICAgIGluamVjdG9yLFxuICAgICAgICBpbnB1dHM6IGRlZmF1bHRJbnB1dHMsXG4gICAgICAgIHdyYXBwZXJUYWc6IGdyb3VwID09PSBcImlubGluZVwiID8gXCJzcGFuXCIgOiBcImRpdlwiLFxuICAgICAgICB3cmFwcGVyQ2xhc3M6IGlzVGlwVGFwQXdhcmVcbiAgICAgICAgICA/IGBhdGUtbm9kZS0ke25vZGVOYW1lfWBcbiAgICAgICAgICA6IGBlbWJlZGRlZC1jb21wb25lbnQgZW1iZWRkZWQtJHtub2RlTmFtZX1gLFxuICAgICAgICBhdG9tLFxuICAgICAgICBlZGl0YWJsZUNvbnRlbnQsXG4gICAgICAgIGNvbnRlbnRTZWxlY3RvcixcbiAgICAgICAgY29udGVudE1vZGUsXG4gICAgICAgIG9uT3V0cHV0LFxuICAgICAgICBpZ25vcmVNdXRhdGlvbixcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLW5vZGUtdmlldy5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9ub2RlLXZpZXcvYXRlLW5vZGUtdmlldy5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5vZGVDb25maWcgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBOb2RlIGFzIFByb3NlTWlycm9yTm9kZSB9IGZyb20gXCJAdGlwdGFwL3BtL21vZGVsXCI7XG5cbi8qKlxuICogQ29tbW9uIG9wdGlvbnMgZm9yIHJlbmRlcmluZyBhbnkgQW5ndWxhciBjb21wb25lbnQgYXMgYSBUaXBUYXAgTm9kZVZpZXdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdGVDb21wb25lbnRSZW5kZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFuZ3VsYXIgaW5qZWN0b3IgdG8gdXNlIGZvciBjcmVhdGluZyB0aGUgY29tcG9uZW50XG4gICAqL1xuICBpbmplY3RvcjogSW5qZWN0b3I7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgaW5wdXRzIHRvIHBhc3MgdG8gdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgaW5wdXRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEN1c3RvbSB3cmFwcGVyIGVsZW1lbnQgdGFnIChkZWZhdWx0OiAnZGl2JylcbiAgICovXG4gIHdyYXBwZXJUYWc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzc2VzIHRvIGFkZCB0byB0aGUgd3JhcHBlciBlbGVtZW50XG4gICAqL1xuICB3cmFwcGVyQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG5vZGUgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gYXRvbSAobm90IGVkaXRhYmxlKVxuICAgKiBEZWZhdWx0OiB0cnVlXG4gICAqL1xuICBhdG9tPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyBlZGl0YWJsZSBjb250ZW50IGZvciA8bmctY29udGVudD4uXG4gICAqIElmIHRydWUsIFRpcFRhcCB3aWxsIHRyZWF0IHRoZSBjb21wb25lbnQncyBjb250ZW50IGFzIGVkaXRhYmxlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZWRpdGFibGVDb250ZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgQ1NTIHNlbGVjdG9yIHRvIHRhcmdldCBhbiBpbnRlcm5hbCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQgYXMgdGhlIGVkaXRhYmxlIGFyZWEuXG4gICAqL1xuICBjb250ZW50U2VsZWN0b3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgY29udGVudCBhbGxvd2VkIGluIHRoZSBlZGl0YWJsZSBhcmVhLlxuICAgKi9cbiAgY29udGVudE1vZGU/OiBcImJsb2NrXCIgfCBcImlubGluZVwiO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGlnbm9yZSBtdXRhdGlvbnMgaW4gdGhlIGNvbXBvbmVudCdzIERPTS5cbiAgICogSWYgdHJ1ZSwgVGlwVGFwIHdvbid0IHRyeSB0byBzeW5jIGNoYW5nZXMgZnJvbSB0aGUgY29tcG9uZW50J3MgRE9NIGJhY2sgdG8gdGhlIGVkaXRvciBzdGF0ZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgaWdub3JlTXV0YXRpb24/OlxuICAgIHwgYm9vbGVhblxuICAgIHwgKChtdXRhdGlvbjogTXV0YXRpb25SZWNvcmQgfCB7IHR5cGU6IFwic2VsZWN0aW9uXCI7IHRhcmdldDogTm9kZSB9KSA9PiBib29sZWFuKTtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgY2FsbGVkIHdoZW4gYW4gT3V0cHV0IGV2ZW50IGlzIGVtaXR0ZWQgYnkgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIG9uT3V0cHV0PzogKG91dHB1dE5hbWU6IHN0cmluZywgdmFsdWU6IHVua25vd24pID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGNhbGxlZCB3aGVuIHRoZSBub2RlIGlzIHVwZGF0ZWQuXG4gICAqL1xuICBvblVwZGF0ZT86IChub2RlOiBQcm9zZU1pcnJvck5vZGUpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxuICAgKi9cbiAgb25EZXN0cm95PzogKCkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBVbmlmaWVkIGNvbmZpZ3VyYXRpb24gZm9yIHJlZ2lzdGVyaW5nIGFuIEFuZ3VsYXIgY29tcG9uZW50IGFzIGFuIGludGVyYWN0aXZlICdBbmd1bGFyIE5vZGUnLlxuICogVGhpcyBwcm92aWRlcyBoaWdoLWxldmVsIG9wdGlvbnMgdG8gbWFwIEFuZ3VsYXIgY29tcG9uZW50IGxvZ2ljIChpbnB1dHMsIG91dHB1dHMsIGxpZmVzdHlsZSlcbiAqIGRpcmVjdGx5IHRvIFRpcFRhcCdzIGRvY3VtZW50IHN0cnVjdHVyZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlckFuZ3VsYXJDb21wb25lbnRPcHRpb25zPFQgPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBUaGUgQW5ndWxhciBjb21wb25lbnQgdG8gcmVnaXN0ZXJcbiAgICovXG4gIGNvbXBvbmVudDogVHlwZTxUPjtcblxuICAvKipcbiAgICogVW5pcXVlIG5hbWUgZm9yIHRoZSBUaXBUYXAgbm9kZVxuICAgKi9cbiAgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRGVmYXVsdCBpbnB1dHMgKGZvciBzdGFuZGFyZCBjb21wb25lbnRzKVxuICAgKi9cbiAgZGVmYXVsdElucHV0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBUaXBUYXAgYXR0cmlidXRlcyAoZm9yIFRpcFRhcC1hd2FyZSBjb21wb25lbnRzKVxuICAgKi9cbiAgYXR0cmlidXRlcz86IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAge1xuICAgICAgZGVmYXVsdD86IHVua25vd247XG4gICAgICBwYXJzZUhUTUw/OiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHVua25vd247XG4gICAgICByZW5kZXJIVE1MPzogKGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGw7XG4gICAgfVxuICA+O1xuXG4gIC8qKlxuICAgKiBDU1Mgc2VsZWN0b3IgZm9yIHRoZSBlZGl0YWJsZSBhcmVhIGluc2lkZSB0aGUgY29tcG9uZW50XG4gICAqL1xuICBjb250ZW50U2VsZWN0b3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnRlbnQgbW9kZSBmb3IgdGhlIGVkaXRhYmxlIGFyZWFcbiAgICovXG4gIGNvbnRlbnRNb2RlPzogXCJibG9ja1wiIHwgXCJpbmxpbmVcIjtcblxuICAvKipcbiAgICogRW5hYmxlIGVkaXRhYmxlIGNvbnRlbnQgdmlhIDxuZy1jb250ZW50PiBvciBjb250ZW50U2VsZWN0b3JcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGVkaXRhYmxlQ29udGVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5vZGUgZ3JvdXAgKGJsb2NrIG9yIGlubGluZSlcbiAgICogQGRlZmF1bHQgJ2Jsb2NrJ1xuICAgKi9cbiAgZ3JvdXA/OiBcImJsb2NrXCIgfCBcImlubGluZVwiO1xuXG4gIC8qKlxuICAgKiBJcyB0aGUgbm9kZSBkcmFnZ2FibGU/XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaWdub3JlIG11dGF0aW9ucyBpbiB0aGUgY29tcG9uZW50J3MgRE9NLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBpZ25vcmVNdXRhdGlvbj86XG4gICAgfCBib29sZWFuXG4gICAgfCAoKG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCB8IHsgdHlwZTogXCJzZWxlY3Rpb25cIjsgdGFyZ2V0OiBOb2RlIH0pID0+IGJvb2xlYW4pO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gSFRNTCBhdHRyaWJ1dGVzIGZvciB0aGUgd3JhcHBlclxuICAgKi9cbiAgSFRNTEF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKipcbiAgICogQ3VzdG9tIHBhcnNlSFRNTCBydWxlc1xuICAgKi9cbiAgcGFyc2VIVE1MPzogTm9kZUNvbmZpZ1tcInBhcnNlSFRNTFwiXTtcblxuICAvKipcbiAgICogQ3VzdG9tIHJlbmRlckhUTUwgZnVuY3Rpb25cbiAgICovXG4gIHJlbmRlckhUTUw/OiBOb2RlQ29uZmlnW1wicmVuZGVySFRNTFwiXTtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgY2FsbGVkIHdoZW4gYW4gT3V0cHV0IGV2ZW50IGlzIGVtaXR0ZWQgYnkgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIG9uT3V0cHV0PzogKG91dHB1dE5hbWU6IHN0cmluZywgdmFsdWU6IHVua25vd24pID0+IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,154 @@
1
+ import { ApplicationRef, createComponent, EnvironmentInjector, } from "@angular/core";
2
+ import { AteAngularNodeView } from "./ate-angular-node-view";
3
+ import { Subscription } from "rxjs";
4
+ /**
5
+ * Universal Renderer for Angular Components as TipTap NodeViews.
6
+ *
7
+ * Supports:
8
+ * - TipTap-Aware components (extending AteAngularNodeView)
9
+ * - Standard library components (automatic @Input() sync)
10
+ * - Signal-based inputs and outputs (Angular 18+)
11
+ * - Content projection (editableContent)
12
+ * - Unified lifecycle and event management
13
+ */
14
+ export function AteNodeViewRenderer(component, options) {
15
+ return props => {
16
+ const { node, view: _view, getPos, decorations, editor, extension } = props;
17
+ const { injector, inputs = {}, wrapperTag = "div", wrapperClass, editableContent = false, contentSelector, onOutput, ignoreMutation = true, } = options;
18
+ const dom = document.createElement(wrapperTag);
19
+ if (wrapperClass) {
20
+ dom.className = wrapperClass;
21
+ }
22
+ const applicationRef = injector.get(ApplicationRef);
23
+ const environmentInjector = injector.get(EnvironmentInjector);
24
+ // 1. Setup Content Projection (ng-content)
25
+ let initialNodes = [];
26
+ let contentDOM = null;
27
+ if (editableContent && !contentSelector) {
28
+ contentDOM = document.createElement("div");
29
+ contentDOM.setAttribute("data-node-view-content", "");
30
+ initialNodes = [[contentDOM]];
31
+ }
32
+ // 2. Create the Angular Component
33
+ const componentRef = createComponent(component, {
34
+ environmentInjector,
35
+ elementInjector: injector,
36
+ projectableNodes: initialNodes,
37
+ });
38
+ const instance = componentRef.instance;
39
+ const subscriptions = [];
40
+ // 3. Initialize TipTap-Aware instances
41
+ if (instance instanceof AteAngularNodeView) {
42
+ instance._initNodeView({
43
+ editor,
44
+ node,
45
+ decorations,
46
+ selected: false,
47
+ extension,
48
+ getPos,
49
+ updateAttributes: attrs => editor.commands.updateAttributes(node.type.name, attrs),
50
+ deleteNode: () => {
51
+ const pos = getPos();
52
+ if (pos !== undefined) {
53
+ editor.commands.deleteRange({ from: pos, to: pos + node.nodeSize });
54
+ }
55
+ },
56
+ });
57
+ }
58
+ // 4. Synchronize Inputs (Handles standard @Input and Signal-based inputs)
59
+ const syncInputs = (nodeToSync) => {
60
+ // Combine base inputs from options with dynamic node attributes
61
+ const mergedInputs = { ...inputs, ...nodeToSync.attrs };
62
+ Object.entries(mergedInputs).forEach(([key, value]) => {
63
+ if (key !== "id" && value !== null && value !== undefined) {
64
+ try {
65
+ componentRef.setInput(key, value);
66
+ }
67
+ catch {
68
+ // Silently ignore inputs that don't exist on the component
69
+ }
70
+ }
71
+ });
72
+ };
73
+ syncInputs(node);
74
+ // 5. Setup Outputs (Handles EventEmitter and OutputRef)
75
+ if (onOutput) {
76
+ Object.entries(instance).forEach(([key, potentialOutput]) => {
77
+ if (potentialOutput &&
78
+ typeof potentialOutput
79
+ .subscribe === "function") {
80
+ const sub = potentialOutput.subscribe((value) => {
81
+ onOutput(key, value);
82
+ });
83
+ if (sub instanceof Subscription) {
84
+ subscriptions.push(sub);
85
+ }
86
+ }
87
+ });
88
+ }
89
+ // 6. Attach to DOM and ApplicationRef
90
+ applicationRef.attachView(componentRef.hostView);
91
+ const componentElement = componentRef.location.nativeElement;
92
+ // Target specific element for content if selector provided
93
+ if (editableContent && contentSelector) {
94
+ contentDOM = componentElement.querySelector(contentSelector);
95
+ }
96
+ dom.appendChild(componentElement);
97
+ // Initial detection to ensure the component is rendered
98
+ componentRef.changeDetectorRef.detectChanges();
99
+ // 7. Return the TipTap NodeView Interface
100
+ return {
101
+ dom,
102
+ contentDOM,
103
+ update: (updatedNode, updatedDecorations) => {
104
+ if (updatedNode.type !== node.type) {
105
+ return false;
106
+ }
107
+ // Update Aware component signals
108
+ if (instance instanceof AteAngularNodeView) {
109
+ instance._updateNodeView(updatedNode, updatedDecorations);
110
+ }
111
+ // Update inputs
112
+ syncInputs(updatedNode);
113
+ // Notify and Detect changes
114
+ componentRef.changeDetectorRef.detectChanges();
115
+ if (options.onUpdate) {
116
+ options.onUpdate(updatedNode);
117
+ }
118
+ return true;
119
+ },
120
+ selectNode: () => {
121
+ if (instance instanceof AteAngularNodeView) {
122
+ instance._selectNodeView();
123
+ }
124
+ dom.classList.add("ProseMirror-selectednode");
125
+ },
126
+ deselectNode: () => {
127
+ if (instance instanceof AteAngularNodeView) {
128
+ instance._deselectNodeView();
129
+ }
130
+ dom.classList.remove("ProseMirror-selectednode");
131
+ },
132
+ destroy: () => {
133
+ if (options.onDestroy) {
134
+ options.onDestroy();
135
+ }
136
+ subscriptions.forEach(s => s.unsubscribe());
137
+ applicationRef.detachView(componentRef.hostView);
138
+ componentRef.destroy();
139
+ },
140
+ stopEvent: event => {
141
+ const target = event.target;
142
+ const isEditable = target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.isContentEditable;
143
+ return isEditable;
144
+ },
145
+ ignoreMutation: mutation => {
146
+ if (typeof ignoreMutation === "function") {
147
+ return ignoreMutation(mutation);
148
+ }
149
+ return ignoreMutation;
150
+ },
151
+ };
152
+ };
153
+ }
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLW5vZGUtdmlldy5yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL25vZGUtdmlldy9hdGUtbm9kZS12aWV3LnJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBQ2QsZUFBZSxFQUNmLG1CQUFtQixHQUdwQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsU0FBa0IsRUFDbEIsT0FBa0M7SUFTbEMsT0FBTyxLQUFLLENBQUMsRUFBRTtRQUNiLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDNUUsTUFBTSxFQUNKLFFBQVEsRUFDUixNQUFNLEdBQUcsRUFBRSxFQUNYLFVBQVUsR0FBRyxLQUFLLEVBQ2xCLFlBQVksRUFDWixlQUFlLEdBQUcsS0FBSyxFQUN2QixlQUFlLEVBQ2YsUUFBUSxFQUNSLGNBQWMsR0FBRyxJQUFJLEdBQ3RCLEdBQUcsT0FBTyxDQUFDO1FBRVosTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO1FBQy9CLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFD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SyxVQUFVLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDO2dCQUMxRixPQUFPLFVBQVUsQ0FBQztZQUNwQixDQUFDO1lBRUQsY0FBYyxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUN6QixJQUFJLE9BQU8sY0FBYyxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUN6QyxPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbEMsQ0FBQztnQkFDRCxPQUFPLGNBQWMsQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgY3JlYXRlQ29tcG9uZW50LFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBUeXBlLFxuICBDb21wb25lbnRSZWYsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOb2RlVmlldywgRGVjb3JhdGlvbiwgRWRpdG9yVmlldyB9IGZyb20gXCJAdGlwdGFwL3BtL3ZpZXdcIjtcbmltcG9ydCB7IE5vZGUgYXMgUHJvc2VNaXJyb3JOb2RlIH0gZnJvbSBcIkB0aXB0YXAvcG0vbW9kZWxcIjtcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gXCJAdGlwdGFwL2NvcmVcIjtcbmltcG9ydCB7IEF0ZUFuZ3VsYXJOb2RlVmlldyB9IGZyb20gXCIuL2F0ZS1hbmd1bGFyLW5vZGUtdmlld1wiO1xuaW1wb3J0IHsgQXRlQ29tcG9uZW50UmVuZGVyT3B0aW9ucyB9IGZyb20gXCIuL2F0ZS1ub2RlLXZpZXcubW9kZWxzXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuXG4vKipcbiAqIFVuaXZlcnNhbCBSZW5kZXJlciBmb3IgQW5ndWxhciBDb21wb25lbnRzIGFzIFRpcFRhcCBOb2RlVmlld3MuXG4gKlxuICogU3VwcG9ydHM6XG4gKiAtIFRpcFRhcC1Bd2FyZSBjb21wb25lbnRzIChleHRlbmRpbmcgQXRlQW5ndWxhck5vZGVWaWV3KVxuICogLSBTdGFuZGFyZCBsaWJyYXJ5IGNvbXBvbmVudHMgKGF1dG9tYXRpYyBASW5wdXQoKSBzeW5jKVxuICogLSBTaWduYWwtYmFzZWQgaW5wdXRzIGFuZCBvdXRwdXRzIChBbmd1bGFyIDE4KylcbiAqIC0gQ29udGVudCBwcm9qZWN0aW9uIChlZGl0YWJsZUNvbnRlbnQpXG4gKiAtIFVuaWZpZWQgbGlmZWN5Y2xlIGFuZCBldmVudCBtYW5hZ2VtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBBdGVOb2RlVmlld1JlbmRlcmVyPFQ+KFxuICBjb21wb25lbnQ6IFR5cGU8VD4sXG4gIG9wdGlvbnM6IEF0ZUNvbXBvbmVudFJlbmRlck9wdGlvbnNcbik6IChwcm9wczoge1xuICBub2RlOiBQcm9zZU1pcnJvck5vZGU7XG4gIHZpZXc6IEVkaXRvclZpZXc7XG4gIGdldFBvczogKCkgPT4gbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBkZWNvcmF0aW9uczogcmVhZG9ubHkgRGVjb3JhdGlvbltdO1xuICBlZGl0b3I6IEVkaXRvcjtcbiAgZXh0ZW5zaW9uOiB1bmtub3duO1xufSkgPT4gTm9kZVZpZXcge1xuICByZXR1cm4gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgbm9kZSwgdmlldzogX3ZpZXcsIGdldFBvcywgZGVjb3JhdGlvbnMsIGVkaXRvciwgZXh0ZW5zaW9uIH0gPSBwcm9wcztcbiAgICBjb25zdCB7XG4gICAgICBpbmplY3RvcixcbiAgICAgIGlucHV0cyA9IHt9LFxuICAgICAgd3JhcHBlclRhZyA9IFwiZGl2XCIsXG4gICAgICB3cmFwcGVyQ2xhc3MsXG4gICAgICBlZGl0YWJsZUNvbnRlbnQgPSBmYWxzZSxcbiAgICAgIGNvbnRlbnRTZWxlY3RvcixcbiAgICAgIG9uT3V0cHV0LFxuICAgICAgaWdub3JlTXV0YXRpb24gPSB0cnVlLFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgZG9tID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh3cmFwcGVyVGFnKTtcbiAgICBpZiAod3JhcHBlckNsYXNzKSB7XG4gICAgICBkb20uY2xhc3NOYW1lID0gd3JhcHBlckNsYXNzO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcGxpY2F0aW9uUmVmID0gaW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uUmVmKTtcbiAgICBjb25zdCBlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0b3IuZ2V0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gICAgLy8gMS4gU2V0dXAgQ29udGVudCBQcm9qZWN0aW9uIChuZy1jb250ZW50KVxuICAgIGxldCBpbml0aWFsTm9kZXM6IE5vZGVbXVtdID0gW107XG4gICAgbGV0IGNvbnRlbnRET006IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAoZWRpdGFibGVDb250ZW50ICYmICFjb250ZW50U2VsZWN0b3IpIHtcbiAgICAgIGNvbnRlbnRET00gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgY29udGVudERPTS5zZXRBdHRyaWJ1dGUoXCJkYXRhLW5vZGUtdmlldy1jb250ZW50XCIsIFwiXCIpO1xuICAgICAgaW5pdGlhbE5vZGVzID0gW1tjb250ZW50RE9NXV07XG4gICAgfVxuXG4gICAgLy8gMi4gQ3JlYXRlIHRoZSBBbmd1bGFyIENvbXBvbmVudFxuICAgIGNvbnN0IGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+ID0gY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwge1xuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgIGVsZW1lbnRJbmplY3RvcjogaW5qZWN0b3IsXG4gICAgICBwcm9qZWN0YWJsZU5vZGVzOiBpbml0aWFsTm9kZXMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgLy8gMy4gSW5pdGlhbGl6ZSBUaXBUYXAtQXdhcmUgaW5zdGFuY2VzXG4gICAgaWYgKGluc3RhbmNlIGluc3RhbmNlb2YgQXRlQW5ndWxhck5vZGVWaWV3KSB7XG4gICAgICBpbnN0YW5jZS5faW5pdE5vZGVWaWV3KHtcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBub2RlLFxuICAgICAgICBkZWNvcmF0aW9ucyxcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb24sXG4gICAgICAgIGdldFBvcyxcbiAgICAgICAgdXBkYXRlQXR0cmlidXRlczogYXR0cnMgPT4gZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMobm9kZS50eXBlLm5hbWUsIGF0dHJzKSxcbiAgICAgICAgZGVsZXRlTm9kZTogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBvcyA9IGdldFBvcygpO1xuICAgICAgICAgIGlmIChwb3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZWRpdG9yLmNvbW1hbmRzLmRlbGV0ZVJhbmdlKHsgZnJvbTogcG9zLCB0bzogcG9zICsgbm9kZS5ub2RlU2l6ZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyA0LiBTeW5jaHJvbml6ZSBJbnB1dHMgKEhhbmRsZXMgc3RhbmRhcmQgQElucHV0IGFuZCBTaWduYWwtYmFzZWQgaW5wdXRzKVxuICAgIGNvbnN0IHN5bmNJbnB1dHMgPSAobm9kZVRvU3luYzogUHJvc2VNaXJyb3JOb2RlKSA9PiB7XG4gICAgICAvLyBDb21iaW5lIGJhc2UgaW5wdXRzIGZyb20gb3B0aW9ucyB3aXRoIGR5bmFtaWMgbm9kZSBhdHRyaWJ1dGVzXG4gICAgICBjb25zdCBtZXJnZWRJbnB1dHMgPSB7IC4uLmlucHV0cywgLi4ubm9kZVRvU3luYy5hdHRycyB9O1xuICAgICAgT2JqZWN0LmVudHJpZXMobWVyZ2VkSW5wdXRzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJpZFwiICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgdmFsdWUpO1xuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gU2lsZW50bHkgaWdub3JlIGlucHV0cyB0aGF0IGRvbid0IGV4aXN0IG9uIHRoZSBjb21wb25lbnRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBzeW5jSW5wdXRzKG5vZGUpO1xuXG4gICAgLy8gNS4gU2V0dXAgT3V0cHV0cyAoSGFuZGxlcyBFdmVudEVtaXR0ZXIgYW5kIE91dHB1dFJlZilcbiAgICBpZiAob25PdXRwdXQpIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKGluc3RhbmNlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5mb3JFYWNoKChba2V5LCBwb3RlbnRpYWxPdXRwdXRdKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwb3RlbnRpYWxPdXRwdXQgJiZcbiAgICAgICAgICB0eXBlb2YgKHBvdGVudGlhbE91dHB1dCBhcyB7IHN1YnNjcmliZT86IChjYjogKHZhbDogdW5rbm93bikgPT4gdm9pZCkgPT4gdm9pZCB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IHN1YiA9IChcbiAgICAgICAgICAgIHBvdGVudGlhbE91dHB1dCBhcyB7IHN1YnNjcmliZTogKGNiOiAodmFsOiB1bmtub3duKSA9PiB2b2lkKSA9PiBTdWJzY3JpcHRpb24gfVxuICAgICAgICAgICkuc3Vic2NyaWJlKCh2YWx1ZTogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgb25PdXRwdXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKHN1YiBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHN1Yik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyA2LiBBdHRhY2ggdG8gRE9NIGFuZCBBcHBsaWNhdGlvblJlZlxuICAgIGFwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICBjb25zdCBjb21wb25lbnRFbGVtZW50ID0gY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvLyBUYXJnZXQgc3BlY2lmaWMgZWxlbWVudCBmb3IgY29udGVudCBpZiBzZWxlY3RvciBwcm92aWRlZFxuICAgIGlmIChlZGl0YWJsZUNvbnRlbnQgJiYgY29udGVudFNlbGVjdG9yKSB7XG4gICAgICBjb250ZW50RE9NID0gY29tcG9uZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKGNvbnRlbnRTZWxlY3Rvcik7XG4gICAgfVxuXG4gICAgZG9tLmFwcGVuZENoaWxkKGNvbXBvbmVudEVsZW1lbnQpO1xuXG4gICAgLy8gSW5pdGlhbCBkZXRlY3Rpb24gdG8gZW5zdXJlIHRoZSBjb21wb25lbnQgaXMgcmVuZGVyZWRcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgLy8gNy4gUmV0dXJuIHRoZSBUaXBUYXAgTm9kZVZpZXcgSW50ZXJmYWNlXG4gICAgcmV0dXJuIHtcbiAgICAgIGRvbSxcbiAgICAgIGNvbnRlbnRET00sXG5cbiAgICAgIHVwZGF0ZTogKHVwZGF0ZWROb2RlLCB1cGRhdGVkRGVjb3JhdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKHVwZGF0ZWROb2RlLnR5cGUgIT09IG5vZGUudHlwZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVwZGF0ZSBBd2FyZSBjb21wb25lbnQgc2lnbmFsc1xuICAgICAgICBpZiAoaW5zdGFuY2UgaW5zdGFuY2VvZiBBdGVBbmd1bGFyTm9kZVZpZXcpIHtcbiAgICAgICAgICBpbnN0YW5jZS5fdXBkYXRlTm9kZVZpZXcodXBkYXRlZE5vZGUsIHVwZGF0ZWREZWNvcmF0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVcGRhdGUgaW5wdXRzXG4gICAgICAgIHN5bmNJbnB1dHModXBkYXRlZE5vZGUpO1xuXG4gICAgICAgIC8vIE5vdGlmeSBhbmQgRGV0ZWN0IGNoYW5nZXNcbiAgICAgICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgaWYgKG9wdGlvbnMub25VcGRhdGUpIHtcbiAgICAgICAgICBvcHRpb25zLm9uVXBkYXRlKHVwZGF0ZWROb2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSxcblxuICAgICAgc2VsZWN0Tm9kZTogKCkgPT4ge1xuICAgICAgICBpZiAoaW5zdGFuY2UgaW5zdGFuY2VvZiBBdGVBbmd1bGFyTm9kZVZpZXcpIHtcbiAgICAgICAgICBpbnN0YW5jZS5fc2VsZWN0Tm9kZVZpZXcoKTtcbiAgICAgICAgfVxuICAgICAgICBkb20uY2xhc3NMaXN0LmFkZChcIlByb3NlTWlycm9yLXNlbGVjdGVkbm9kZVwiKTtcbiAgICAgIH0sXG5cbiAgICAgIGRlc2VsZWN0Tm9kZTogKCkgPT4ge1xuICAgICAgICBpZiAoaW5zdGFuY2UgaW5zdGFuY2VvZiBBdGVBbmd1bGFyTm9kZVZpZXcpIHtcbiAgICAgICAgICBpbnN0YW5jZS5fZGVzZWxlY3ROb2RlVmlldygpO1xuICAgICAgICB9XG4gICAgICAgIGRvbS5jbGFzc0xpc3QucmVtb3ZlKFwiUHJvc2VNaXJyb3Itc2VsZWN0ZWRub2RlXCIpO1xuICAgICAgfSxcblxuICAgICAgZGVzdHJveTogKCkgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucy5vbkRlc3Ryb3kpIHtcbiAgICAgICAgICBvcHRpb25zLm9uRGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIHN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIGFwcGxpY2F0aW9uUmVmLmRldGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgIH0sXG5cbiAgICAgIHN0b3BFdmVudDogZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGlzRWRpdGFibGUgPVxuICAgICAgICAgIHRhcmdldC50YWdOYW1lID09PSBcIklOUFVUXCIgfHwgdGFyZ2V0LnRhZ05hbWUgPT09IFwiVEVYVEFSRUFcIiB8fCB0YXJnZXQuaXNDb250ZW50RWRpdGFibGU7XG4gICAgICAgIHJldHVybiBpc0VkaXRhYmxlO1xuICAgICAgfSxcblxuICAgICAgaWdub3JlTXV0YXRpb246IG11dGF0aW9uID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBpZ25vcmVNdXRhdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgcmV0dXJuIGlnbm9yZU11dGF0aW9uKG11dGF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaWdub3JlTXV0YXRpb247XG4gICAgICB9LFxuICAgIH07XG4gIH07XG59XG4iXX0=