@opentiny/fluent-editor 3.25.3 → 4.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/es/attributors/font-style.es.js +1 -1
  2. package/es/attributors/font-style.es.js.map +1 -1
  3. package/es/attributors/line-height.es.js +1 -1
  4. package/es/attributors/line-height.es.js.map +1 -1
  5. package/es/config/editor.utils.es.js +0 -9
  6. package/es/config/editor.utils.es.js.map +1 -1
  7. package/es/config/i18n/en-us.es.js +33 -4
  8. package/es/config/i18n/en-us.es.js.map +1 -1
  9. package/es/config/i18n/zh-cn.es.js +33 -4
  10. package/es/config/i18n/zh-cn.es.js.map +1 -1
  11. package/es/config/index.es.js +1 -2
  12. package/es/core/fluent-editor.es.js +3 -0
  13. package/es/core/fluent-editor.es.js.map +1 -1
  14. package/es/fluent-editor.es.js +12 -9
  15. package/es/fluent-editor.es.js.map +1 -1
  16. package/es/index.es.js +5 -2
  17. package/es/index.es.js.map +1 -1
  18. package/es/modules/custom-clipboard.es.js +1 -57
  19. package/es/modules/custom-clipboard.es.js.map +1 -1
  20. package/es/modules/custom-image/image-bar.es.js +2 -1
  21. package/es/modules/custom-image/image-bar.es.js.map +1 -1
  22. package/es/modules/i18n.es.js +4 -3
  23. package/es/modules/i18n.es.js.map +1 -1
  24. package/es/modules/link/index.es.js +0 -17
  25. package/es/modules/link/index.es.js.map +1 -1
  26. package/es/modules/mathlive/tooltip.es.js +8 -3
  27. package/es/modules/mathlive/tooltip.es.js.map +1 -1
  28. package/es/modules/shortcut-key/index.es.js +213 -0
  29. package/es/modules/shortcut-key/index.es.js.map +1 -0
  30. package/es/modules/table-up/index.es.js +61 -0
  31. package/es/modules/table-up/index.es.js.map +1 -0
  32. package/es/modules/toolbar/better-picker.es.js +21 -269
  33. package/es/modules/toolbar/better-picker.es.js.map +1 -1
  34. package/es/modules/toolbar/index.es.js +0 -1
  35. package/es/modules/toolbar/index.es.js.map +1 -1
  36. package/es/modules/toolbar/toolbar-tip.es.js +38 -8
  37. package/es/modules/toolbar/toolbar-tip.es.js.map +1 -1
  38. package/es/themes/snow.es.js +185 -46
  39. package/es/themes/snow.es.js.map +1 -1
  40. package/es/ui/icons.config.es.js +6 -5
  41. package/es/ui/icons.config.es.js.map +1 -1
  42. package/es/ui/icons.es.js +3 -12
  43. package/es/ui/icons.es.js.map +1 -1
  44. package/lib/attributors/font-style.cjs.js +1 -1
  45. package/lib/attributors/font-style.cjs.js.map +1 -1
  46. package/lib/attributors/line-height.cjs.js +1 -1
  47. package/lib/attributors/line-height.cjs.js.map +1 -1
  48. package/lib/config/editor.utils.cjs.js +0 -9
  49. package/lib/config/editor.utils.cjs.js.map +1 -1
  50. package/lib/config/i18n/en-us.cjs.js +33 -4
  51. package/lib/config/i18n/en-us.cjs.js.map +1 -1
  52. package/lib/config/i18n/zh-cn.cjs.js +33 -4
  53. package/lib/config/i18n/zh-cn.cjs.js.map +1 -1
  54. package/lib/config/index.cjs.js +0 -1
  55. package/lib/config/index.cjs.js.map +1 -1
  56. package/lib/core/fluent-editor.cjs.js +3 -0
  57. package/lib/core/fluent-editor.cjs.js.map +1 -1
  58. package/lib/fluent-editor.cjs.js +12 -9
  59. package/lib/fluent-editor.cjs.js.map +1 -1
  60. package/lib/index.cjs.js +7 -1
  61. package/lib/index.cjs.js.map +1 -1
  62. package/lib/modules/custom-clipboard.cjs.js +0 -56
  63. package/lib/modules/custom-clipboard.cjs.js.map +1 -1
  64. package/lib/modules/custom-image/image-bar.cjs.js +2 -1
  65. package/lib/modules/custom-image/image-bar.cjs.js.map +1 -1
  66. package/lib/modules/i18n.cjs.js +4 -3
  67. package/lib/modules/i18n.cjs.js.map +1 -1
  68. package/lib/modules/link/index.cjs.js +0 -17
  69. package/lib/modules/link/index.cjs.js.map +1 -1
  70. package/lib/modules/mathlive/tooltip.cjs.js +8 -3
  71. package/lib/modules/mathlive/tooltip.cjs.js.map +1 -1
  72. package/lib/modules/shortcut-key/index.cjs.js +213 -0
  73. package/lib/modules/shortcut-key/index.cjs.js.map +1 -0
  74. package/lib/modules/table-up/index.cjs.js +61 -0
  75. package/lib/modules/table-up/index.cjs.js.map +1 -0
  76. package/lib/modules/toolbar/better-picker.cjs.js +21 -270
  77. package/lib/modules/toolbar/better-picker.cjs.js.map +1 -1
  78. package/lib/modules/toolbar/index.cjs.js +0 -1
  79. package/lib/modules/toolbar/index.cjs.js.map +1 -1
  80. package/lib/modules/toolbar/toolbar-tip.cjs.js +38 -8
  81. package/lib/modules/toolbar/toolbar-tip.cjs.js.map +1 -1
  82. package/lib/themes/snow.cjs.js +187 -48
  83. package/lib/themes/snow.cjs.js.map +1 -1
  84. package/lib/ui/icons.cjs.js +2 -11
  85. package/lib/ui/icons.cjs.js.map +1 -1
  86. package/lib/ui/icons.config.cjs.js +6 -5
  87. package/lib/ui/icons.config.cjs.js.map +1 -1
  88. package/package.json +5 -3
  89. package/style.css +315 -2135
  90. package/types/attributors/font-style.d.ts +1 -1
  91. package/types/config/editor.config.d.ts +62 -6
  92. package/types/config/editor.utils.d.ts +0 -1
  93. package/types/config/i18n/en-us.d.ts +31 -3
  94. package/types/config/i18n/zh-cn.d.ts +31 -3
  95. package/types/config/types/toolbar-item.interface.d.ts +11 -11
  96. package/types/core/fluent-editor.d.ts +1 -0
  97. package/types/index.d.ts +2 -0
  98. package/types/modules/i18n.d.ts +1 -1
  99. package/types/modules/shortcut-key/index.d.ts +97 -0
  100. package/types/modules/table-up/index.d.ts +66 -0
  101. package/types/modules/toolbar/better-picker.d.ts +15 -0
  102. package/types/themes/snow.d.ts +10 -2
  103. package/types/ui/icons.config.d.ts +2 -2
  104. package/es/modules/global-link/constants.es.js +0 -9
  105. package/es/modules/global-link/constants.es.js.map +0 -1
  106. package/es/modules/global-link/formats/customer-widget-link.es.js +0 -28
  107. package/es/modules/global-link/formats/customer-widget-link.es.js.map +0 -1
  108. package/es/modules/global-link/formats/doc-link.es.js +0 -42
  109. package/es/modules/global-link/formats/doc-link.es.js.map +0 -1
  110. package/es/modules/global-link/formats/wiki-link.es.js +0 -34
  111. package/es/modules/global-link/formats/wiki-link.es.js.map +0 -1
  112. package/es/modules/global-link/formats/work-item-link.es.js +0 -36
  113. package/es/modules/global-link/formats/work-item-link.es.js.map +0 -1
  114. package/es/modules/global-link/global-link-panel.es.js +0 -2
  115. package/es/modules/global-link/global-link-panel.es.js.map +0 -1
  116. package/es/modules/global-link/index.es.js +0 -139
  117. package/es/modules/global-link/index.es.js.map +0 -1
  118. package/es/modules/global-link/utils/createTable.es.js +0 -50
  119. package/es/modules/global-link/utils/createTable.es.js.map +0 -1
  120. package/es/modules/quick-menu.es.js +0 -82
  121. package/es/modules/quick-menu.es.js.map +0 -1
  122. package/es/modules/table/better-table.es.js +0 -485
  123. package/es/modules/table/better-table.es.js.map +0 -1
  124. package/es/modules/table/formats/header.es.js +0 -94
  125. package/es/modules/table/formats/header.es.js.map +0 -1
  126. package/es/modules/table/formats/list.es.js +0 -163
  127. package/es/modules/table/formats/list.es.js.map +0 -1
  128. package/es/modules/table/formats/table.es.js +0 -969
  129. package/es/modules/table/formats/table.es.js.map +0 -1
  130. package/es/modules/table/modules/table-column-tool.es.js +0 -400
  131. package/es/modules/table/modules/table-column-tool.es.js.map +0 -1
  132. package/es/modules/table/modules/table-operation-menu.es.js +0 -475
  133. package/es/modules/table/modules/table-operation-menu.es.js.map +0 -1
  134. package/es/modules/table/modules/table-scroll-bar.es.js +0 -190
  135. package/es/modules/table/modules/table-scroll-bar.es.js.map +0 -1
  136. package/es/modules/table/modules/table-selection.es.js +0 -305
  137. package/es/modules/table/modules/table-selection.es.js.map +0 -1
  138. package/es/modules/table/modules/table-selector.es.js +0 -158
  139. package/es/modules/table/modules/table-selector.es.js.map +0 -1
  140. package/es/modules/table/table-config.es.js +0 -74
  141. package/es/modules/table/table-config.es.js.map +0 -1
  142. package/es/modules/table/utils/index.es.js +0 -54
  143. package/es/modules/table/utils/index.es.js.map +0 -1
  144. package/es/modules/table/utils/node-matchers.es.js +0 -292
  145. package/es/modules/table/utils/node-matchers.es.js.map +0 -1
  146. package/lib/modules/global-link/constants.cjs.js +0 -9
  147. package/lib/modules/global-link/constants.cjs.js.map +0 -1
  148. package/lib/modules/global-link/formats/customer-widget-link.cjs.js +0 -28
  149. package/lib/modules/global-link/formats/customer-widget-link.cjs.js.map +0 -1
  150. package/lib/modules/global-link/formats/doc-link.cjs.js +0 -42
  151. package/lib/modules/global-link/formats/doc-link.cjs.js.map +0 -1
  152. package/lib/modules/global-link/formats/wiki-link.cjs.js +0 -34
  153. package/lib/modules/global-link/formats/wiki-link.cjs.js.map +0 -1
  154. package/lib/modules/global-link/formats/work-item-link.cjs.js +0 -36
  155. package/lib/modules/global-link/formats/work-item-link.cjs.js.map +0 -1
  156. package/lib/modules/global-link/global-link-panel.cjs.js +0 -2
  157. package/lib/modules/global-link/global-link-panel.cjs.js.map +0 -1
  158. package/lib/modules/global-link/index.cjs.js +0 -139
  159. package/lib/modules/global-link/index.cjs.js.map +0 -1
  160. package/lib/modules/global-link/utils/createTable.cjs.js +0 -50
  161. package/lib/modules/global-link/utils/createTable.cjs.js.map +0 -1
  162. package/lib/modules/quick-menu.cjs.js +0 -82
  163. package/lib/modules/quick-menu.cjs.js.map +0 -1
  164. package/lib/modules/table/better-table.cjs.js +0 -485
  165. package/lib/modules/table/better-table.cjs.js.map +0 -1
  166. package/lib/modules/table/formats/header.cjs.js +0 -94
  167. package/lib/modules/table/formats/header.cjs.js.map +0 -1
  168. package/lib/modules/table/formats/list.cjs.js +0 -163
  169. package/lib/modules/table/formats/list.cjs.js.map +0 -1
  170. package/lib/modules/table/formats/table.cjs.js +0 -969
  171. package/lib/modules/table/formats/table.cjs.js.map +0 -1
  172. package/lib/modules/table/modules/table-column-tool.cjs.js +0 -400
  173. package/lib/modules/table/modules/table-column-tool.cjs.js.map +0 -1
  174. package/lib/modules/table/modules/table-operation-menu.cjs.js +0 -475
  175. package/lib/modules/table/modules/table-operation-menu.cjs.js.map +0 -1
  176. package/lib/modules/table/modules/table-scroll-bar.cjs.js +0 -190
  177. package/lib/modules/table/modules/table-scroll-bar.cjs.js.map +0 -1
  178. package/lib/modules/table/modules/table-selection.cjs.js +0 -305
  179. package/lib/modules/table/modules/table-selection.cjs.js.map +0 -1
  180. package/lib/modules/table/modules/table-selector.cjs.js +0 -158
  181. package/lib/modules/table/modules/table-selector.cjs.js.map +0 -1
  182. package/lib/modules/table/table-config.cjs.js +0 -74
  183. package/lib/modules/table/table-config.cjs.js.map +0 -1
  184. package/lib/modules/table/utils/index.cjs.js +0 -54
  185. package/lib/modules/table/utils/index.cjs.js.map +0 -1
  186. package/lib/modules/table/utils/node-matchers.cjs.js +0 -292
  187. package/lib/modules/table/utils/node-matchers.cjs.js.map +0 -1
  188. package/types/modules/global-link/constants.d.ts +0 -3
  189. package/types/modules/global-link/formats/customer-widget-link.d.ts +0 -14
  190. package/types/modules/global-link/formats/doc-link.d.ts +0 -17
  191. package/types/modules/global-link/formats/wiki-link.d.ts +0 -16
  192. package/types/modules/global-link/formats/work-item-link.d.ts +0 -16
  193. package/types/modules/global-link/global-link-panel.d.ts +0 -19
  194. package/types/modules/global-link/index.d.ts +0 -18
  195. package/types/modules/global-link/utils/createTable.d.ts +0 -1
  196. package/types/modules/quick-menu.d.ts +0 -22
  197. package/types/modules/table/better-table.d.ts +0 -35
  198. package/types/modules/table/formats/header.d.ts +0 -23
  199. package/types/modules/table/formats/list.d.ts +0 -34
  200. package/types/modules/table/formats/table.d.ts +0 -147
  201. package/types/modules/table/modules/table-column-tool.d.ts +0 -23
  202. package/types/modules/table/modules/table-operation-menu.d.ts +0 -38
  203. package/types/modules/table/modules/table-scroll-bar.d.ts +0 -33
  204. package/types/modules/table/modules/table-selection.d.ts +0 -37
  205. package/types/modules/table/modules/table-selector.d.ts +0 -22
  206. package/types/modules/table/table-config.d.ts +0 -38
  207. package/types/modules/table/utils/index.d.ts +0 -17
  208. package/types/modules/table/utils/node-matchers.d.ts +0 -9
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const ON_WIKI_LINK_REMOVE = "wiki-link/remove";
4
- const ON_DOC_LINK_REMOVE = "doc-link/remove";
5
- const ON_WORK_ITEM_LINK_REMOVE = "work-item-link/remove";
6
- exports.ON_DOC_LINK_REMOVE = ON_DOC_LINK_REMOVE;
7
- exports.ON_WIKI_LINK_REMOVE = ON_WIKI_LINK_REMOVE;
8
- exports.ON_WORK_ITEM_LINK_REMOVE = ON_WORK_ITEM_LINK_REMOVE;
9
- //# sourceMappingURL=constants.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.cjs.js","sources":["../../../../src/modules/global-link/constants.ts"],"sourcesContent":["export const ON_WIKI_LINK_REMOVE = 'wiki-link/remove'\r\nexport const ON_DOC_LINK_REMOVE = 'doc-link/remove'\r\nexport const ON_WORK_ITEM_LINK_REMOVE = 'work-item-link/remove'\r\n"],"names":[],"mappings":";;AAAO,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB;AAC3B,MAAM,2BAA2B;;;;"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const Quill = require("quill");
4
- const BlockEmbed = Quill.imports["blots/block/embed"];
5
- class CustomerWidgetLink extends BlockEmbed {
6
- static create(value) {
7
- const node = super.create(value);
8
- node.setAttribute("data-widget-type", value.type);
9
- node.setAttribute("data-widget-id", value.id);
10
- node.setAttribute("src", value.value);
11
- return node;
12
- }
13
- static value(domNode) {
14
- return {
15
- type: domNode.getAttribute("data-widget-type"),
16
- id: domNode.getAttribute("data-widget-id"),
17
- value: domNode.getAttribute("src")
18
- };
19
- }
20
- constructor(scroll, domNode, data) {
21
- super(scroll, domNode, data);
22
- }
23
- }
24
- CustomerWidgetLink.blotName = "customer-widget-link";
25
- CustomerWidgetLink.tagName = "img";
26
- CustomerWidgetLink.className = "ql-customer-widget-link";
27
- exports.default = CustomerWidgetLink;
28
- //# sourceMappingURL=customer-widget-link.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"customer-widget-link.cjs.js","sources":["../../../../../src/modules/global-link/formats/customer-widget-link.ts"],"sourcesContent":["import Quill from 'quill'\r\n\r\nconst BlockEmbed = Quill.imports['blots/block/embed']\r\n\r\n// @dynamic\r\nclass CustomerWidgetLink extends BlockEmbed {\r\n static blotName: string\r\n static tagName: string\r\n static className: string\r\n\r\n static create(value) {\r\n const node = super.create(value)\r\n node.setAttribute('data-widget-type', value.type)\r\n node.setAttribute('data-widget-id', value.id)\r\n node.setAttribute('src', value.value)\r\n return node\r\n }\r\n\r\n static value(domNode) {\r\n return {\r\n type: domNode.getAttribute('data-widget-type'),\r\n id: domNode.getAttribute('data-widget-id'),\r\n value: domNode.getAttribute('src'),\r\n }\r\n }\r\n\r\n constructor(scroll, domNode, data) {\r\n super(scroll, domNode, data)\r\n }\r\n}\r\n\r\nCustomerWidgetLink.blotName = 'customer-widget-link'\r\nCustomerWidgetLink.tagName = 'img'\r\nCustomerWidgetLink.className = 'ql-customer-widget-link'\r\n\r\nexport default CustomerWidgetLink\r\n"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,MAAM,QAAQ,mBAAmB;AAGpD,MAAM,2BAA2B,WAAW;AAAA,EAK1C,OAAO,OAAO,OAAO;AACb,UAAA,OAAO,MAAM,OAAO,KAAK;AAC1B,SAAA,aAAa,oBAAoB,MAAM,IAAI;AAC3C,SAAA,aAAa,kBAAkB,MAAM,EAAE;AACvC,SAAA,aAAa,OAAO,MAAM,KAAK;AAC7B,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,SAAS;AACb,WAAA;AAAA,MACL,MAAM,QAAQ,aAAa,kBAAkB;AAAA,MAC7C,IAAI,QAAQ,aAAa,gBAAgB;AAAA,MACzC,OAAO,QAAQ,aAAa,KAAK;AAAA,IACnC;AAAA,EAAA;AAAA,EAGF,YAAY,QAAQ,SAAS,MAAM;AAC3B,UAAA,QAAQ,SAAS,IAAI;AAAA,EAAA;AAE/B;AAEA,mBAAmB,WAAW;AAC9B,mBAAmB,UAAU;AAC7B,mBAAmB,YAAY;;"}
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const Quill = require("quill");
4
- const constants = require("../constants.cjs.js");
5
- const Embed = Quill.imports["blots/embed"];
6
- class DocumentLink extends Embed {
7
- static create(value) {
8
- const node = super.create(value);
9
- node.setAttribute("href", value.link);
10
- node.setAttribute("title", value.text);
11
- node.setAttribute("target", "_blank");
12
- node.setAttribute("icon-link", value.icon);
13
- const icon = document.createElement("span");
14
- icon.classList.add("ql-doc-link-icon");
15
- icon.style.background = `url(${value.icon}) no-repeat center`;
16
- icon.style.backgroundSize = "contain";
17
- node.insertAdjacentElement("afterbegin", icon);
18
- const text = document.createTextNode(value.text);
19
- node.appendChild(text);
20
- return node;
21
- }
22
- static value(domNode) {
23
- return {
24
- link: domNode.getAttribute("href"),
25
- icon: domNode.getAttribute("icon-link"),
26
- text: domNode.textContent
27
- };
28
- }
29
- constructor(scroll, domNode, data) {
30
- super(scroll, domNode, data);
31
- this.docData = data;
32
- }
33
- remove() {
34
- this.scroll.emitter.emit(constants.ON_DOC_LINK_REMOVE, this.docData);
35
- return super.remove();
36
- }
37
- }
38
- DocumentLink.blotName = "doc-link";
39
- DocumentLink.tagName = "A";
40
- DocumentLink.className = "ql-doc-link";
41
- exports.default = DocumentLink;
42
- //# sourceMappingURL=doc-link.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-link.cjs.js","sources":["../../../../../src/modules/global-link/formats/doc-link.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { ON_DOC_LINK_REMOVE } from '../constants'\r\n\r\nconst Embed = Quill.imports['blots/embed']\r\n\r\n// @dynamic\r\nclass DocumentLink extends Embed {\r\n static blotName: string\r\n static tagName: string\r\n static className: string\r\n docData: any\r\n scroll: any\r\n\r\n static create(value) {\r\n const node = super.create(value)\r\n node.setAttribute('href', value.link)\r\n node.setAttribute('title', value.text)\r\n node.setAttribute('target', '_blank')\r\n node.setAttribute('icon-link', value.icon)\r\n\r\n const icon = document.createElement('span')\r\n icon.classList.add('ql-doc-link-icon')\r\n icon.style.background = `url(${value.icon}) no-repeat center`\r\n icon.style.backgroundSize = 'contain'\r\n\r\n node.insertAdjacentElement('afterbegin', icon)\r\n const text = document.createTextNode(value.text)\r\n node.appendChild(text)\r\n return node\r\n }\r\n\r\n static value(domNode) {\r\n return {\r\n link: domNode.getAttribute('href'),\r\n icon: domNode.getAttribute('icon-link'),\r\n text: domNode.textContent,\r\n }\r\n }\r\n\r\n constructor(scroll, domNode, data) {\r\n super(scroll, domNode, data)\r\n this.docData = data\r\n }\r\n\r\n remove() {\r\n this.scroll.emitter.emit(ON_DOC_LINK_REMOVE, this.docData)\r\n return super.remove()\r\n }\r\n}\r\n\r\nDocumentLink.blotName = 'doc-link'\r\nDocumentLink.tagName = 'A'\r\nDocumentLink.className = 'ql-doc-link'\r\n\r\nexport default DocumentLink\r\n"],"names":["ON_DOC_LINK_REMOVE"],"mappings":";;;;AAGA,MAAM,QAAQ,MAAM,QAAQ,aAAa;AAGzC,MAAM,qBAAqB,MAAM;AAAA,EAO/B,OAAO,OAAO,OAAO;AACb,UAAA,OAAO,MAAM,OAAO,KAAK;AAC1B,SAAA,aAAa,QAAQ,MAAM,IAAI;AAC/B,SAAA,aAAa,SAAS,MAAM,IAAI;AAChC,SAAA,aAAa,UAAU,QAAQ;AAC/B,SAAA,aAAa,aAAa,MAAM,IAAI;AAEnC,UAAA,OAAO,SAAS,cAAc,MAAM;AACrC,SAAA,UAAU,IAAI,kBAAkB;AACrC,SAAK,MAAM,aAAa,OAAO,MAAM,IAAI;AACzC,SAAK,MAAM,iBAAiB;AAEvB,SAAA,sBAAsB,cAAc,IAAI;AAC7C,UAAM,OAAO,SAAS,eAAe,MAAM,IAAI;AAC/C,SAAK,YAAY,IAAI;AACd,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,SAAS;AACb,WAAA;AAAA,MACL,MAAM,QAAQ,aAAa,MAAM;AAAA,MACjC,MAAM,QAAQ,aAAa,WAAW;AAAA,MACtC,MAAM,QAAQ;AAAA,IAChB;AAAA,EAAA;AAAA,EAGF,YAAY,QAAQ,SAAS,MAAM;AAC3B,UAAA,QAAQ,SAAS,IAAI;AAC3B,SAAK,UAAU;AAAA,EAAA;AAAA,EAGjB,SAAS;AACP,SAAK,OAAO,QAAQ,KAAKA,UAAA,oBAAoB,KAAK,OAAO;AACzD,WAAO,MAAM,OAAO;AAAA,EAAA;AAExB;AAEA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,YAAY;;"}
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const Quill = require("quill");
4
- const constants = require("../constants.cjs.js");
5
- const Embed = Quill.imports["blots/embed"];
6
- class WikiLink extends Embed {
7
- static create(value) {
8
- const node = super.create(value);
9
- node.setAttribute("href", value.link);
10
- node.setAttribute("target", "_blank");
11
- node.setAttribute("title", value.text);
12
- node.textContent = value.text;
13
- return node;
14
- }
15
- static value(domNode) {
16
- return {
17
- link: domNode.getAttribute("href"),
18
- text: domNode.textContent
19
- };
20
- }
21
- constructor(scroll, domNode, data) {
22
- super(scroll, domNode, data);
23
- this.wikiData = data;
24
- }
25
- remove() {
26
- this.scroll.emitter.emit(constants.ON_WIKI_LINK_REMOVE, this.wikiData);
27
- return super.remove();
28
- }
29
- }
30
- WikiLink.blotName = "wiki-link";
31
- WikiLink.tagName = "A";
32
- WikiLink.className = "ql-wiki-link";
33
- exports.default = WikiLink;
34
- //# sourceMappingURL=wiki-link.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wiki-link.cjs.js","sources":["../../../../../src/modules/global-link/formats/wiki-link.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { ON_WIKI_LINK_REMOVE } from '../constants'\r\n\r\nconst Embed = Quill.imports['blots/embed']\r\n\r\n// @dynamic\r\nclass WikiLink extends Embed {\r\n static blotName: string\r\n static tagName: string\r\n static className: string\r\n wikiData: any\r\n scroll: any\r\n\r\n static create(value) {\r\n const node = super.create(value)\r\n node.setAttribute('href', value.link)\r\n node.setAttribute('target', '_blank')\r\n node.setAttribute('title', value.text)\r\n node.textContent = value.text\r\n return node\r\n }\r\n\r\n static value(domNode) {\r\n return {\r\n link: domNode.getAttribute('href'),\r\n text: domNode.textContent,\r\n }\r\n }\r\n\r\n constructor(scroll, domNode, data) {\r\n super(scroll, domNode, data)\r\n this.wikiData = data\r\n }\r\n\r\n remove() {\r\n this.scroll.emitter.emit(ON_WIKI_LINK_REMOVE, this.wikiData)\r\n return super.remove()\r\n }\r\n}\r\n\r\nWikiLink.blotName = 'wiki-link'\r\nWikiLink.tagName = 'A'\r\nWikiLink.className = 'ql-wiki-link'\r\n\r\nexport default WikiLink\r\n"],"names":["ON_WIKI_LINK_REMOVE"],"mappings":";;;;AAGA,MAAM,QAAQ,MAAM,QAAQ,aAAa;AAGzC,MAAM,iBAAiB,MAAM;AAAA,EAO3B,OAAO,OAAO,OAAO;AACb,UAAA,OAAO,MAAM,OAAO,KAAK;AAC1B,SAAA,aAAa,QAAQ,MAAM,IAAI;AAC/B,SAAA,aAAa,UAAU,QAAQ;AAC/B,SAAA,aAAa,SAAS,MAAM,IAAI;AACrC,SAAK,cAAc,MAAM;AAClB,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,SAAS;AACb,WAAA;AAAA,MACL,MAAM,QAAQ,aAAa,MAAM;AAAA,MACjC,MAAM,QAAQ;AAAA,IAChB;AAAA,EAAA;AAAA,EAGF,YAAY,QAAQ,SAAS,MAAM;AAC3B,UAAA,QAAQ,SAAS,IAAI;AAC3B,SAAK,WAAW;AAAA,EAAA;AAAA,EAGlB,SAAS;AACP,SAAK,OAAO,QAAQ,KAAKA,UAAA,qBAAqB,KAAK,QAAQ;AAC3D,WAAO,MAAM,OAAO;AAAA,EAAA;AAExB;AAEA,SAAS,WAAW;AACpB,SAAS,UAAU;AACnB,SAAS,YAAY;;"}
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const Quill = require("quill");
4
- const constants = require("../constants.cjs.js");
5
- const createTable = require("../utils/createTable.cjs.js");
6
- const BlockEmbed = Quill.imports["blots/block/embed"];
7
- class WorkItemLink extends BlockEmbed {
8
- static create(value) {
9
- const node = super.create(value);
10
- node.setAttribute("contenteditable", "false");
11
- node.setAttribute("href", value.link);
12
- node.setAttribute("__work_item_data__", JSON.stringify(value.data));
13
- const table = createTable.createTable(value.data);
14
- node.appendChild(table);
15
- return node;
16
- }
17
- static value(domNode) {
18
- return {
19
- link: domNode.getAttribute("href"),
20
- data: JSON.parse(domNode.getAttribute("__work_item_data__"))
21
- };
22
- }
23
- constructor(scroll, domNode, data) {
24
- super(scroll, domNode, data);
25
- this.workItemData = data;
26
- }
27
- remove() {
28
- this.scroll.emitter.emit(constants.ON_WORK_ITEM_LINK_REMOVE, this.workItemData);
29
- return super.remove();
30
- }
31
- }
32
- WorkItemLink.blotName = "work-item-link";
33
- WorkItemLink.tagName = "div";
34
- WorkItemLink.className = "ql-work-item-link";
35
- exports.default = WorkItemLink;
36
- //# sourceMappingURL=work-item-link.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"work-item-link.cjs.js","sources":["../../../../../src/modules/global-link/formats/work-item-link.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { ON_WORK_ITEM_LINK_REMOVE } from '../constants'\r\nimport { createTable } from '../utils/createTable'\r\n\r\nconst BlockEmbed = Quill.imports['blots/block/embed']\r\n\r\n// @dynamic\r\nclass WorkItemLink extends BlockEmbed {\r\n static blotName: string\r\n static tagName: string\r\n static className: string\r\n workItemData: any\r\n scroll: any\r\n\r\n static create(value) {\r\n const node = super.create(value)\r\n node.setAttribute('contenteditable', 'false')\r\n node.setAttribute('href', value.link)\r\n node.setAttribute('__work_item_data__', JSON.stringify(value.data))\r\n const table = createTable(value.data)\r\n node.appendChild(table)\r\n return node\r\n }\r\n\r\n static value(domNode) {\r\n return {\r\n link: domNode.getAttribute('href'),\r\n data: JSON.parse(domNode.getAttribute('__work_item_data__')),\r\n }\r\n }\r\n\r\n constructor(scroll, domNode, data) {\r\n super(scroll, domNode, data)\r\n this.workItemData = data\r\n }\r\n\r\n remove() {\r\n this.scroll.emitter.emit(ON_WORK_ITEM_LINK_REMOVE, this.workItemData)\r\n return super.remove()\r\n }\r\n}\r\n\r\nWorkItemLink.blotName = 'work-item-link'\r\nWorkItemLink.tagName = 'div'\r\nWorkItemLink.className = 'ql-work-item-link'\r\n\r\nexport default WorkItemLink\r\n"],"names":["createTable","ON_WORK_ITEM_LINK_REMOVE"],"mappings":";;;;;AAIA,MAAM,aAAa,MAAM,QAAQ,mBAAmB;AAGpD,MAAM,qBAAqB,WAAW;AAAA,EAOpC,OAAO,OAAO,OAAO;AACb,UAAA,OAAO,MAAM,OAAO,KAAK;AAC1B,SAAA,aAAa,mBAAmB,OAAO;AACvC,SAAA,aAAa,QAAQ,MAAM,IAAI;AACpC,SAAK,aAAa,sBAAsB,KAAK,UAAU,MAAM,IAAI,CAAC;AAC5D,UAAA,QAAQA,YAAAA,YAAY,MAAM,IAAI;AACpC,SAAK,YAAY,KAAK;AACf,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,SAAS;AACb,WAAA;AAAA,MACL,MAAM,QAAQ,aAAa,MAAM;AAAA,MACjC,MAAM,KAAK,MAAM,QAAQ,aAAa,oBAAoB,CAAC;AAAA,IAC7D;AAAA,EAAA;AAAA,EAGF,YAAY,QAAQ,SAAS,MAAM;AAC3B,UAAA,QAAQ,SAAS,IAAI;AAC3B,SAAK,eAAe;AAAA,EAAA;AAAA,EAGtB,SAAS;AACP,SAAK,OAAO,QAAQ,KAAKC,UAAA,0BAA0B,KAAK,YAAY;AACpE,WAAO,MAAM,OAAO;AAAA,EAAA;AAExB;AAEA,aAAa,WAAW;AACxB,aAAa,UAAU;AACvB,aAAa,YAAY;;"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=global-link-panel.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"global-link-panel.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,139 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const Quill = require("quill");
4
- const editor_utils = require("../../config/editor.utils.cjs.js");
5
- const customerWidgetLink = require("./formats/customer-widget-link.cjs.js");
6
- const docLink = require("./formats/doc-link.cjs.js");
7
- const wikiLink = require("./formats/wiki-link.cjs.js");
8
- const workItemLink = require("./formats/work-item-link.cjs.js");
9
- const Module = Quill.imports["core/module"];
10
- const Delta = Quill.imports.delta;
11
- class GlobalLink extends Module {
12
- static register() {
13
- Quill.register("formats/wiki-link", wikiLink.default);
14
- Quill.register("formats/doc-link", docLink.default);
15
- Quill.register("formats/work-item-link", workItemLink.default);
16
- Quill.register("formats/customer-widget-link", customerWidgetLink.default);
17
- }
18
- constructor(quill, options) {
19
- super(quill, options);
20
- const toolbar = quill.getModule("toolbar");
21
- this.open = false;
22
- this.panel = options.component;
23
- this.wrap = options.wrap;
24
- const globalLinkBtn = toolbar.container && toolbar.container.querySelector(".ql-global-link");
25
- toolbar.addHandler("global-link", this.handleGlobalLinkButtonClick.bind(this));
26
- quill.root.addEventListener("click", this.onEditorClick.bind(this));
27
- document.body.addEventListener("click", (evt) => {
28
- if (!this.wrap.contains(evt.target) && !(globalLinkBtn && globalLinkBtn.contains(evt.target))) {
29
- this.open = false;
30
- this.wrap.classList.add("global-link-hide");
31
- }
32
- });
33
- this.panel.wikiLink.subscribe(this.addWikiLink.bind(this));
34
- this.panel.docLink.subscribe(this.addDocLink.bind(this));
35
- this.panel.workItemLink.subscribe(this.addWorkItemLink.bind(this));
36
- if (this.panel.close) {
37
- this.panel.close.subscribe(this.closePanel.bind(this));
38
- }
39
- }
40
- onEditorClick(evt) {
41
- if (!evt.ctrlKey) return;
42
- const path = editor_utils.getEventComposedPath(evt);
43
- if (!path || path.length <= 0) return;
44
- const linkNode = path.filter((node) => {
45
- return node.classList && (node.classList.contains(wikiLink.default.className) || node.classList.contains(docLink.default.className) || node.classList.contains(workItemLink.default.className));
46
- })[0];
47
- if (!linkNode) return;
48
- if (linkNode.classList.contains(wikiLink.default.className)) {
49
- this.handleLinkClick(linkNode);
50
- } else if (linkNode.classList.contains(docLink.default.className)) {
51
- this.handleLinkClick(linkNode);
52
- } else if (linkNode.classList.contains(workItemLink.default.className)) {
53
- const tableRow = path.filter((node) => {
54
- return node.tagName && node.tagName.toUpperCase() === "TR";
55
- })[0];
56
- if (tableRow) {
57
- this.handleLinkClick(tableRow);
58
- }
59
- }
60
- }
61
- handleLinkClick(linkNode) {
62
- const href = linkNode.getAttribute("href");
63
- if (href) {
64
- window.open(href);
65
- }
66
- }
67
- handleGlobalLinkButtonClick(_value) {
68
- this.open = !this.open;
69
- this.triggerPanel();
70
- }
71
- triggerPanel() {
72
- if (this.open) {
73
- this.wrap.classList.remove("global-link-hide");
74
- } else {
75
- this.wrap.classList.add("global-link-hide");
76
- }
77
- }
78
- addWikiLink(wikiData) {
79
- const index = this.quill.getSelection(true).index;
80
- const arr = [];
81
- const delta = arr.reduce.call(wikiData, (op, wiki) => {
82
- op.insert({
83
- [wikiLink.default.blotName]: {
84
- link: wiki.link,
85
- text: wiki.text
86
- }
87
- });
88
- return op;
89
- }, new Delta().retain(index));
90
- this.quill.updateContents(delta, Quill.sources.USER);
91
- this.quill.setSelection(index + 1, Quill.sources.USER);
92
- if (this.panel.autoClose) {
93
- this.closePanel();
94
- }
95
- }
96
- addDocLink(docData) {
97
- const index = this.quill.getSelection(true).index;
98
- const arr = [];
99
- const delta = arr.reduce.call(docData, (op, doc) => {
100
- op.insert({
101
- [docLink.default.blotName]: {
102
- link: doc.link,
103
- text: doc.text,
104
- icon: doc.icon
105
- }
106
- });
107
- return op;
108
- }, new Delta().retain(index));
109
- this.quill.updateContents(delta, Quill.sources.USER);
110
- this.quill.setSelection(index + 1, Quill.sources.USER);
111
- if (this.panel.autoClose) {
112
- this.closePanel();
113
- }
114
- }
115
- addWorkItemLink(workItemData) {
116
- const index = this.quill.getSelection(true).index;
117
- const arr = [];
118
- const delta = arr.reduce.call(workItemData, (op, workItem) => {
119
- op.insert({
120
- [workItemLink.default.blotName]: {
121
- link: workItem.url,
122
- data: workItem.table
123
- }
124
- });
125
- return op;
126
- }, new Delta().retain(index));
127
- this.quill.updateContents(delta, Quill.sources.USER);
128
- this.quill.setSelection(index + 1, Quill.sources.USER);
129
- if (this.panel.autoClose) {
130
- this.closePanel();
131
- }
132
- }
133
- closePanel() {
134
- this.open = false;
135
- this.triggerPanel();
136
- }
137
- }
138
- exports.default = GlobalLink;
139
- //# sourceMappingURL=index.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../../src/modules/global-link/index.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { getEventComposedPath } from '../../config/editor.utils'\r\nimport CustomerWidgetLink from './formats/customer-widget-link'\r\nimport DocumentLink from './formats/doc-link'\r\nimport WikiLink from './formats/wiki-link'\r\nimport WorkItemLink from './formats/work-item-link'\r\n\r\nconst Module = Quill.imports['core/module']\r\nconst Delta = Quill.imports.delta\r\n\r\n// @dynamic\r\nclass GlobalLink extends Module {\r\n open: boolean\r\n wrap: any\r\n panel: any\r\n quill: any\r\n\r\n static register() {\r\n Quill.register('formats/wiki-link', WikiLink)\r\n Quill.register('formats/doc-link', DocumentLink)\r\n Quill.register('formats/work-item-link', WorkItemLink)\r\n Quill.register('formats/customer-widget-link', CustomerWidgetLink)\r\n }\r\n\r\n constructor(quill, options) {\r\n super(quill, options)\r\n const toolbar = quill.getModule('toolbar')\r\n this.open = false\r\n this.panel = options.component\r\n this.wrap = options.wrap\r\n const globalLinkBtn = toolbar.container && toolbar.container.querySelector('.ql-global-link')\r\n toolbar.addHandler('global-link', this.handleGlobalLinkButtonClick.bind(this))\r\n quill.root.addEventListener('click', this.onEditorClick.bind(this))\r\n document.body.addEventListener('click', (evt) => {\r\n if (!this.wrap.contains(evt.target) && !(globalLinkBtn && globalLinkBtn.contains(evt.target))) {\r\n this.open = false\r\n this.wrap.classList.add('global-link-hide')\r\n }\r\n })\r\n this.panel.wikiLink.subscribe(this.addWikiLink.bind(this))\r\n this.panel.docLink.subscribe(this.addDocLink.bind(this))\r\n this.panel.workItemLink.subscribe(this.addWorkItemLink.bind(this))\r\n if (this.panel.close) {\r\n this.panel.close.subscribe(this.closePanel.bind(this))\r\n }\r\n }\r\n\r\n onEditorClick(evt: any) {\r\n if (!evt.ctrlKey) return\r\n const path = getEventComposedPath(evt)\r\n if (!path || path.length <= 0) return\r\n const linkNode = path.filter((node) => {\r\n return node.classList && (node.classList.contains(WikiLink.className)\r\n || node.classList.contains(DocumentLink.className)\r\n || node.classList.contains(WorkItemLink.className))\r\n })[0]\r\n\r\n if (!linkNode) return\r\n\r\n if (linkNode.classList.contains(WikiLink.className)) {\r\n this.handleLinkClick(linkNode)\r\n }\r\n else if (linkNode.classList.contains(DocumentLink.className)) {\r\n this.handleLinkClick(linkNode)\r\n }\r\n else if (linkNode.classList.contains(WorkItemLink.className)) {\r\n const tableRow = path.filter((node) => {\r\n return node.tagName && node.tagName.toUpperCase() === 'TR'\r\n })[0]\r\n\r\n if (tableRow) {\r\n this.handleLinkClick(tableRow)\r\n }\r\n }\r\n }\r\n\r\n handleLinkClick(linkNode) {\r\n const href = linkNode.getAttribute('href')\r\n if (href) {\r\n window.open(href)\r\n }\r\n }\r\n\r\n handleGlobalLinkButtonClick(_value) {\r\n this.open = !this.open\r\n this.triggerPanel()\r\n }\r\n\r\n triggerPanel() {\r\n if (this.open) {\r\n this.wrap.classList.remove('global-link-hide')\r\n }\r\n else {\r\n this.wrap.classList.add('global-link-hide')\r\n }\r\n }\r\n\r\n addWikiLink(wikiData) {\r\n const index = this.quill.getSelection(true).index\r\n const arr: { link: any, text: any } [] = []\r\n const delta = arr.reduce.call(wikiData, (op: any, wiki) => {\r\n op.insert({\r\n [WikiLink.blotName]: {\r\n link: wiki.link,\r\n text: wiki.text,\r\n },\r\n })\r\n return op\r\n }, new Delta().retain(index))\r\n\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n this.quill.setSelection(index + 1, Quill.sources.USER)\r\n if (this.panel.autoClose) {\r\n this.closePanel()\r\n }\r\n }\r\n\r\n addDocLink(docData) {\r\n const index = this.quill.getSelection(true).index\r\n const arr: { link: any, text: any, icon: any } [] = []\r\n const delta = arr.reduce.call(docData, (op: any, doc) => {\r\n op.insert({\r\n [DocumentLink.blotName]: {\r\n link: doc.link,\r\n text: doc.text,\r\n icon: doc.icon,\r\n },\r\n })\r\n return op\r\n }, new Delta().retain(index))\r\n\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n this.quill.setSelection(index + 1, Quill.sources.USER)\r\n if (this.panel.autoClose) {\r\n this.closePanel()\r\n }\r\n }\r\n\r\n addWorkItemLink(workItemData) {\r\n const index = this.quill.getSelection(true).index\r\n const arr: { url: any, table: any } [] = []\r\n const delta = arr.reduce.call(workItemData, (op: any, workItem) => {\r\n op.insert({\r\n [WorkItemLink.blotName]: {\r\n link: workItem.url,\r\n data: workItem.table,\r\n },\r\n })\r\n return op\r\n }, new Delta().retain(index))\r\n\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n this.quill.setSelection(index + 1, Quill.sources.USER)\r\n if (this.panel.autoClose) {\r\n this.closePanel()\r\n }\r\n }\r\n\r\n closePanel() {\r\n this.open = false\r\n this.triggerPanel()\r\n }\r\n}\r\n\r\nexport default GlobalLink\r\n"],"names":["WikiLink","DocumentLink","WorkItemLink","CustomerWidgetLink","getEventComposedPath"],"mappings":";;;;;;;;AAOA,MAAM,SAAS,MAAM,QAAQ,aAAa;AAC1C,MAAM,QAAQ,MAAM,QAAQ;AAG5B,MAAM,mBAAmB,OAAO;AAAA,EAM9B,OAAO,WAAW;AACV,UAAA,SAAS,qBAAqBA,gBAAQ;AACtC,UAAA,SAAS,oBAAoBC,eAAY;AACzC,UAAA,SAAS,0BAA0BC,oBAAY;AAC/C,UAAA,SAAS,gCAAgCC,0BAAkB;AAAA,EAAA;AAAA,EAGnE,YAAY,OAAO,SAAS;AAC1B,UAAM,OAAO,OAAO;AACd,UAAA,UAAU,MAAM,UAAU,SAAS;AACzC,SAAK,OAAO;AACZ,SAAK,QAAQ,QAAQ;AACrB,SAAK,OAAO,QAAQ;AACpB,UAAM,gBAAgB,QAAQ,aAAa,QAAQ,UAAU,cAAc,iBAAiB;AAC5F,YAAQ,WAAW,eAAe,KAAK,4BAA4B,KAAK,IAAI,CAAC;AAC7E,UAAM,KAAK,iBAAiB,SAAS,KAAK,cAAc,KAAK,IAAI,CAAC;AAClE,aAAS,KAAK,iBAAiB,SAAS,CAAC,QAAQ;AAC/C,UAAI,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,iBAAiB,cAAc,SAAS,IAAI,MAAM,IAAI;AAC7F,aAAK,OAAO;AACP,aAAA,KAAK,UAAU,IAAI,kBAAkB;AAAA,MAAA;AAAA,IAC5C,CACD;AACD,SAAK,MAAM,SAAS,UAAU,KAAK,YAAY,KAAK,IAAI,CAAC;AACzD,SAAK,MAAM,QAAQ,UAAU,KAAK,WAAW,KAAK,IAAI,CAAC;AACvD,SAAK,MAAM,aAAa,UAAU,KAAK,gBAAgB,KAAK,IAAI,CAAC;AAC7D,QAAA,KAAK,MAAM,OAAO;AACpB,WAAK,MAAM,MAAM,UAAU,KAAK,WAAW,KAAK,IAAI,CAAC;AAAA,IAAA;AAAA,EACvD;AAAA,EAGF,cAAc,KAAU;AAClB,QAAA,CAAC,IAAI,QAAS;AACZ,UAAA,OAAOC,kCAAqB,GAAG;AACrC,QAAI,CAAC,QAAQ,KAAK,UAAU,EAAG;AAC/B,UAAM,WAAW,KAAK,OAAO,CAAC,SAAS;AACrC,aAAO,KAAK,cAAc,KAAK,UAAU,SAASJ,SAAA,QAAS,SAAS,KAC/D,KAAK,UAAU,SAASC,QAAAA,QAAa,SAAS,KAC9C,KAAK,UAAU,SAASC,qBAAa,SAAS;AAAA,IACpD,CAAA,EAAE,CAAC;AAEJ,QAAI,CAAC,SAAU;AAEf,QAAI,SAAS,UAAU,SAASF,SAAA,QAAS,SAAS,GAAG;AACnD,WAAK,gBAAgB,QAAQ;AAAA,IAAA,WAEtB,SAAS,UAAU,SAASC,QAAA,QAAa,SAAS,GAAG;AAC5D,WAAK,gBAAgB,QAAQ;AAAA,IAAA,WAEtB,SAAS,UAAU,SAASC,aAAA,QAAa,SAAS,GAAG;AAC5D,YAAM,WAAW,KAAK,OAAO,CAAC,SAAS;AACrC,eAAO,KAAK,WAAW,KAAK,QAAQ,YAAkB,MAAA;AAAA,MACvD,CAAA,EAAE,CAAC;AAEJ,UAAI,UAAU;AACZ,aAAK,gBAAgB,QAAQ;AAAA,MAAA;AAAA,IAC/B;AAAA,EACF;AAAA,EAGF,gBAAgB,UAAU;AAClB,UAAA,OAAO,SAAS,aAAa,MAAM;AACzC,QAAI,MAAM;AACR,aAAO,KAAK,IAAI;AAAA,IAAA;AAAA,EAClB;AAAA,EAGF,4BAA4B,QAAQ;AAC7B,SAAA,OAAO,CAAC,KAAK;AAClB,SAAK,aAAa;AAAA,EAAA;AAAA,EAGpB,eAAe;AACb,QAAI,KAAK,MAAM;AACR,WAAA,KAAK,UAAU,OAAO,kBAAkB;AAAA,IAAA,OAE1C;AACE,WAAA,KAAK,UAAU,IAAI,kBAAkB;AAAA,IAAA;AAAA,EAC5C;AAAA,EAGF,YAAY,UAAU;AACpB,UAAM,QAAQ,KAAK,MAAM,aAAa,IAAI,EAAE;AAC5C,UAAM,MAAmC,CAAC;AAC1C,UAAM,QAAQ,IAAI,OAAO,KAAK,UAAU,CAAC,IAAS,SAAS;AACzD,SAAG,OAAO;AAAA,QACR,CAACF,SAAAA,QAAS,QAAQ,GAAG;AAAA,UACnB,MAAM,KAAK;AAAA,UACX,MAAM,KAAK;AAAA,QAAA;AAAA,MACb,CACD;AACM,aAAA;AAAA,OACN,IAAI,MAAA,EAAQ,OAAO,KAAK,CAAC;AAE5B,SAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AACnD,SAAK,MAAM,aAAa,QAAQ,GAAG,MAAM,QAAQ,IAAI;AACjD,QAAA,KAAK,MAAM,WAAW;AACxB,WAAK,WAAW;AAAA,IAAA;AAAA,EAClB;AAAA,EAGF,WAAW,SAAS;AAClB,UAAM,QAAQ,KAAK,MAAM,aAAa,IAAI,EAAE;AAC5C,UAAM,MAA8C,CAAC;AACrD,UAAM,QAAQ,IAAI,OAAO,KAAK,SAAS,CAAC,IAAS,QAAQ;AACvD,SAAG,OAAO;AAAA,QACR,CAACC,QAAAA,QAAa,QAAQ,GAAG;AAAA,UACvB,MAAM,IAAI;AAAA,UACV,MAAM,IAAI;AAAA,UACV,MAAM,IAAI;AAAA,QAAA;AAAA,MACZ,CACD;AACM,aAAA;AAAA,OACN,IAAI,MAAA,EAAQ,OAAO,KAAK,CAAC;AAE5B,SAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AACnD,SAAK,MAAM,aAAa,QAAQ,GAAG,MAAM,QAAQ,IAAI;AACjD,QAAA,KAAK,MAAM,WAAW;AACxB,WAAK,WAAW;AAAA,IAAA;AAAA,EAClB;AAAA,EAGF,gBAAgB,cAAc;AAC5B,UAAM,QAAQ,KAAK,MAAM,aAAa,IAAI,EAAE;AAC5C,UAAM,MAAmC,CAAC;AAC1C,UAAM,QAAQ,IAAI,OAAO,KAAK,cAAc,CAAC,IAAS,aAAa;AACjE,SAAG,OAAO;AAAA,QACR,CAACC,aAAAA,QAAa,QAAQ,GAAG;AAAA,UACvB,MAAM,SAAS;AAAA,UACf,MAAM,SAAS;AAAA,QAAA;AAAA,MACjB,CACD;AACM,aAAA;AAAA,OACN,IAAI,MAAA,EAAQ,OAAO,KAAK,CAAC;AAE5B,SAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AACnD,SAAK,MAAM,aAAa,QAAQ,GAAG,MAAM,QAAQ,IAAI;AACjD,QAAA,KAAK,MAAM,WAAW;AACxB,WAAK,WAAW;AAAA,IAAA;AAAA,EAClB;AAAA,EAGF,aAAa;AACX,SAAK,OAAO;AACZ,SAAK,aAAa;AAAA,EAAA;AAEtB;;"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const tableConfig = [
4
- { title: "Number", field: "id", width: "100" },
5
- { title: "Title", field: "subject", width: "200" },
6
- { title: "Priority", field: "priority", width: "100" },
7
- { title: "Iteration", field: "iteration", width: "100" },
8
- { title: "Status", field: "status", width: "100" },
9
- { title: "Conductor", field: "assigned_to", width: "100" }
10
- ];
11
- function createTable(data) {
12
- const table = document.createElement("table");
13
- createColGroup(table);
14
- createTableHead(table);
15
- createTableBody(table, data);
16
- return table;
17
- }
18
- function createColGroup(table) {
19
- const colGroup = document.createElement("colgroup");
20
- tableConfig.forEach(({ width }) => {
21
- const col = document.createElement("col");
22
- col.setAttribute("width", width);
23
- colGroup.appendChild(col);
24
- });
25
- table.insertAdjacentElement("afterbegin", colGroup);
26
- }
27
- function createTableHead(table) {
28
- const tHead = table.createTHead();
29
- const tRow = tHead.insertRow();
30
- tableConfig.forEach(({ title }) => {
31
- const tCell = tRow.insertCell();
32
- tCell.textContent = title;
33
- });
34
- return tHead;
35
- }
36
- function createTableBody(table, data) {
37
- const tBody = table.createTBody();
38
- [].forEach.call(data, (d) => {
39
- const tRow = tBody.insertRow();
40
- tRow.setAttribute("href", d.url);
41
- tableConfig.forEach(({ field }) => {
42
- const tCell = tRow.insertCell();
43
- tCell.classList.add(`work-item-${field}`);
44
- tCell.textContent = d[field];
45
- });
46
- });
47
- return tBody;
48
- }
49
- exports.createTable = createTable;
50
- //# sourceMappingURL=createTable.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createTable.cjs.js","sources":["../../../../../src/modules/global-link/utils/createTable.ts"],"sourcesContent":["const tableConfig = [\r\n { title: 'Number', field: 'id', width: '100' },\r\n { title: 'Title', field: 'subject', width: '200' },\r\n { title: 'Priority', field: 'priority', width: '100' },\r\n { title: 'Iteration', field: 'iteration', width: '100' },\r\n { title: 'Status', field: 'status', width: '100' },\r\n { title: 'Conductor', field: 'assigned_to', width: '100' },\r\n]\r\n\r\nexport function createTable(data: any[]) {\r\n const table = document.createElement<'table'>('table')\r\n createColGroup(table)\r\n createTableHead(table)\r\n createTableBody(table, data)\r\n return table\r\n}\r\n\r\nfunction createColGroup(table: HTMLTableElement) {\r\n const colGroup = document.createElement<'colgroup'>('colgroup')\r\n tableConfig.forEach(({ width }) => {\r\n const col = document.createElement<'col'>('col')\r\n col.setAttribute('width', width)\r\n colGroup.appendChild(col)\r\n })\r\n table.insertAdjacentElement('afterbegin', colGroup)\r\n}\r\n\r\nfunction createTableHead(table: HTMLTableElement) {\r\n const tHead = table.createTHead()\r\n const tRow = tHead.insertRow()\r\n tableConfig.forEach(({ title }) => {\r\n const tCell = tRow.insertCell()\r\n tCell.textContent = title\r\n })\r\n return tHead\r\n}\r\n\r\nfunction createTableBody(table: HTMLTableElement, data: any[]) {\r\n const tBody = table.createTBody();\r\n\r\n [].forEach.call(data, (d) => {\r\n const tRow = tBody.insertRow()\r\n // @ts-ignore\r\n tRow.setAttribute('href', d.url)\r\n tableConfig.forEach(({ field }) => {\r\n const tCell = tRow.insertCell()\r\n tCell.classList.add(`work-item-${field}`)\r\n // @ts-ignore\r\n tCell.textContent = d[field]\r\n })\r\n })\r\n\r\n return tBody\r\n}\r\n"],"names":[],"mappings":";;AAAA,MAAM,cAAc;AAAA,EAClB,EAAE,OAAO,UAAU,OAAO,MAAM,OAAO,MAAM;AAAA,EAC7C,EAAE,OAAO,SAAS,OAAO,WAAW,OAAO,MAAM;AAAA,EACjD,EAAE,OAAO,YAAY,OAAO,YAAY,OAAO,MAAM;AAAA,EACrD,EAAE,OAAO,aAAa,OAAO,aAAa,OAAO,MAAM;AAAA,EACvD,EAAE,OAAO,UAAU,OAAO,UAAU,OAAO,MAAM;AAAA,EACjD,EAAE,OAAO,aAAa,OAAO,eAAe,OAAO,MAAM;AAC3D;AAEO,SAAS,YAAY,MAAa;AACjC,QAAA,QAAQ,SAAS,cAAuB,OAAO;AACrD,iBAAe,KAAK;AACpB,kBAAgB,KAAK;AACrB,kBAAgB,OAAO,IAAI;AACpB,SAAA;AACT;AAEA,SAAS,eAAe,OAAyB;AACzC,QAAA,WAAW,SAAS,cAA0B,UAAU;AAC9D,cAAY,QAAQ,CAAC,EAAE,YAAY;AAC3B,UAAA,MAAM,SAAS,cAAqB,KAAK;AAC3C,QAAA,aAAa,SAAS,KAAK;AAC/B,aAAS,YAAY,GAAG;AAAA,EAAA,CACzB;AACK,QAAA,sBAAsB,cAAc,QAAQ;AACpD;AAEA,SAAS,gBAAgB,OAAyB;AAC1C,QAAA,QAAQ,MAAM,YAAY;AAC1B,QAAA,OAAO,MAAM,UAAU;AAC7B,cAAY,QAAQ,CAAC,EAAE,YAAY;AAC3B,UAAA,QAAQ,KAAK,WAAW;AAC9B,UAAM,cAAc;AAAA,EAAA,CACrB;AACM,SAAA;AACT;AAEA,SAAS,gBAAgB,OAAyB,MAAa;AACvD,QAAA,QAAQ,MAAM,YAAY;AAEhC,GAAA,EAAG,QAAQ,KAAK,MAAM,CAAC,MAAM;AACrB,UAAA,OAAO,MAAM,UAAU;AAExB,SAAA,aAAa,QAAQ,EAAE,GAAG;AAC/B,gBAAY,QAAQ,CAAC,EAAE,YAAY;AAC3B,YAAA,QAAQ,KAAK,WAAW;AAC9B,YAAM,UAAU,IAAI,aAAa,KAAK,EAAE;AAElC,YAAA,cAAc,EAAE,KAAK;AAAA,IAAA,CAC5B;AAAA,EAAA,CACF;AAEM,SAAA;AACT;;"}
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- class QuickMenu {
4
- // @ts-ignore
5
- constructor(quill, options) {
6
- this.quill = quill;
7
- this.options = options;
8
- this.handleSlashKeyDown = (_range, context) => {
9
- const index = this.quill.selection.savedRange.index;
10
- this.quill.insertText(index, "/");
11
- const shouldTriggerQuickMenu = context.prefix === "" && Object.keys(context.format).length === 0;
12
- if (shouldTriggerQuickMenu) {
13
- const cursorIndex = this.quill.selection.savedRange.index;
14
- const cursorBounds = this.quill.getBounds(cursorIndex);
15
- const { left, top } = cursorBounds;
16
- const { left: editorLeft, top: editorTop } = this.container.getBoundingClientRect();
17
- const { left: hostElementLeft, top: hostElementTop } = this.hostElement.getBoundingClientRect();
18
- const relativeLeft = editorLeft - hostElementLeft;
19
- const relativeTop = editorTop - hostElementTop;
20
- const menuLeft = left + relativeLeft - 5;
21
- const menuTop = top + relativeTop + 20;
22
- this.quickMenu.style.display = "block";
23
- const zIndex = this.quill.options.modules.quickmenu.zIndex;
24
- let style = `left:${menuLeft}px;top:${menuTop}px;`;
25
- if (zIndex || zIndex === 0) {
26
- style += `z-index:${zIndex}`;
27
- }
28
- this.quickMenuContainer.setAttribute("style", style);
29
- this.options.component.activeIndex = 0;
30
- } else {
31
- this.quickMenu.style.display = "none";
32
- }
33
- };
34
- this.hideQuickMenu = (event) => {
35
- if (this.quickMenuContainer && !this.quickMenuContainer.contains(event.target)) {
36
- this.quickMenuContainer.style.display = "none";
37
- }
38
- };
39
- this.handleArrowUpKey = (_range, _context) => {
40
- if (this.isOpen()) {
41
- const index = this.options.component.activeIndex;
42
- const total = this.options.component.quickMenus.length;
43
- this.options.component.activeIndex = (index + total - 1) % total;
44
- return false;
45
- }
46
- return true;
47
- };
48
- this.handleArrowDownKey = (_range, _context) => {
49
- if (this.isOpen()) {
50
- const index = this.options.component.activeIndex;
51
- const total = this.options.component.quickMenus.length;
52
- this.options.component.activeIndex = (index + 1) % total;
53
- return false;
54
- }
55
- return true;
56
- };
57
- this.handleEnterKey = (_range, _context) => {
58
- if (this.isOpen()) {
59
- this.options.component.onEnter();
60
- return false;
61
- }
62
- return true;
63
- };
64
- this.quill = quill;
65
- this.options = options;
66
- this.container = this.quill.container;
67
- this.hostElement = this.container.parentNode;
68
- this.quickMenu = this.hostElement.querySelector(".quick-menu");
69
- this.quickMenuContainer = this.quickMenu.querySelector(".quick-menu-container");
70
- quill.keyboard.addBinding({ key: "/" }, this.handleSlashKeyDown);
71
- quill.keyboard.addBinding({ key: "ArrowUp" }, this.handleArrowUpKey);
72
- quill.keyboard.addBinding({ key: "ArrowDown" }, this.handleArrowDownKey);
73
- quill.keyboard.addBinding({ key: "Enter" }, this.handleEnterKey);
74
- quill.keyboard.bindings.Enter.unshift(quill.keyboard.bindings.Enter.pop());
75
- document.body.addEventListener("click", this.hideQuickMenu.bind(this));
76
- }
77
- isOpen() {
78
- return this.quickMenuContainer.style.display !== "none" && this.quickMenu.style.display === "block";
79
- }
80
- }
81
- exports.default = QuickMenu;
82
- //# sourceMappingURL=quick-menu.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quick-menu.cjs.js","sources":["../../../src/modules/quick-menu.ts"],"sourcesContent":["import type Quill from 'quill'\r\n\r\ninterface QuickMenuOptions {\r\n container: string\r\n component: any\r\n}\r\n\r\nclass QuickMenu {\r\n private container: HTMLDivElement\r\n private hostElement: HTMLDivElement\r\n private quickMenu: HTMLDivElement\r\n private quickMenuContainer: HTMLDivElement\r\n\r\n // @ts-ignore\r\n constructor(private quill: Quill, private options: QuickMenuOptions) {\r\n this.quill = quill\r\n this.options = options\r\n this.container = this.quill.container\r\n this.hostElement = this.container.parentNode as HTMLDivElement\r\n this.quickMenu = this.hostElement.querySelector('.quick-menu')\r\n this.quickMenuContainer = this.quickMenu.querySelector('.quick-menu-container')\r\n quill.keyboard.addBinding({ key: '/' }, this.handleSlashKeyDown)\r\n quill.keyboard.addBinding({ key: 'ArrowUp' }, this.handleArrowUpKey)\r\n quill.keyboard.addBinding({ key: 'ArrowDown' }, this.handleArrowDownKey)\r\n quill.keyboard.addBinding({ key: 'Enter' }, this.handleEnterKey)\r\n quill.keyboard.bindings.Enter.unshift(quill.keyboard.bindings.Enter.pop())\r\n document.body.addEventListener('click', this.hideQuickMenu.bind(this))\r\n }\r\n\r\n handleSlashKeyDown = (_range, context) => {\r\n const index = this.quill.selection.savedRange.index\r\n this.quill.insertText(index, '/')\r\n\r\n // 一行的第一个字符为 '/',且没有格式化,则触发快捷菜单\r\n const shouldTriggerQuickMenu = context.prefix === '' && Object.keys(context.format).length === 0\r\n if (shouldTriggerQuickMenu) {\r\n const cursorIndex = this.quill.selection.savedRange.index\r\n const cursorBounds = this.quill.getBounds(cursorIndex)\r\n const { left, top } = cursorBounds\r\n const { left: editorLeft, top: editorTop } = this.container.getBoundingClientRect()\r\n const { left: hostElementLeft, top: hostElementTop } = this.hostElement.getBoundingClientRect()\r\n const relativeLeft = editorLeft - hostElementLeft\r\n const relativeTop = editorTop - hostElementTop\r\n const menuLeft = left + relativeLeft - 5\r\n const menuTop = top + relativeTop + 20\r\n\r\n this.quickMenu.style.display = 'block'\r\n const zIndex = this.quill.options.modules.quickmenu.zIndex\r\n let style = `left:${menuLeft}px;top:${menuTop}px;`\r\n if (zIndex || zIndex === 0) {\r\n style += `z-index:${zIndex}`\r\n }\r\n this.quickMenuContainer.setAttribute('style', style)\r\n this.options.component.activeIndex = 0\r\n }\r\n else {\r\n this.quickMenu.style.display = 'none'\r\n }\r\n }\r\n\r\n private isOpen() {\r\n return this.quickMenuContainer.style.display !== 'none' && this.quickMenu.style.display === 'block'\r\n }\r\n\r\n hideQuickMenu = (event) => {\r\n if (this.quickMenuContainer && !this.quickMenuContainer.contains(event.target)) {\r\n this.quickMenuContainer.style.display = 'none'\r\n }\r\n }\r\n\r\n handleArrowUpKey = (_range, _context) => {\r\n if (this.isOpen()) {\r\n const index = this.options.component.activeIndex\r\n const total = this.options.component.quickMenus.length\r\n this.options.component.activeIndex = (index + total - 1) % total\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n handleArrowDownKey = (_range, _context) => {\r\n if (this.isOpen()) {\r\n const index = this.options.component.activeIndex\r\n const total = this.options.component.quickMenus.length\r\n this.options.component.activeIndex = (index + 1) % total\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n handleEnterKey = (_range, _context) => {\r\n if (this.isOpen()) {\r\n this.options.component.onEnter()\r\n return false\r\n }\r\n return true\r\n }\r\n}\r\n\r\nexport default QuickMenu\r\n"],"names":[],"mappings":"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"}