qms-angular 1.0.72 → 1.0.76

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 (190) hide show
  1. package/bundles/qms-angular.umd.js +826 -467
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/components/button/button.js +1 -1
  4. package/esm2015/lib/components/comment/comment.js +2 -2
  5. package/esm2015/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.js +12 -8
  6. package/esm2015/lib/components/qms-navigation-drawer/qms-navigation-drawer.module.js +4 -4
  7. package/esm2015/lib/components/qms-paginator/qms-paginator.component.js +5 -3
  8. package/esm2015/lib/components/qms-stepper/qms-stepper.component.js +1 -1
  9. package/esm2015/lib/components/related/popup/related-popup.component.js +10 -10
  10. package/esm2015/lib/components/select-include-children/select-include-children.component.js +112 -45
  11. package/esm2015/lib/components/select-process-document/select-process-document.component.js +64 -143
  12. package/esm2015/lib/components/side-sheet/directives/drawer-content.directive.js +20 -0
  13. package/esm2015/lib/components/side-sheet/directives/drawer-header-action.directive.js +20 -0
  14. package/esm2015/lib/components/side-sheet/directives/drawer-header.directive.js +20 -0
  15. package/esm2015/lib/components/side-sheet/directives/drawer.directive.js +20 -0
  16. package/esm2015/lib/components/side-sheet/index.js +2 -0
  17. package/esm2015/lib/components/side-sheet/public-api.js +6 -0
  18. package/esm2015/lib/components/side-sheet/side-sheet.module.js +28 -0
  19. package/esm2015/lib/components/tree/tree.component.js +10 -14
  20. package/esm2015/lib/directives/table/table-row.directive.js +50 -0
  21. package/esm2015/lib/directives/table/table.directive.js +18 -61
  22. package/esm2015/lib/model/en.js +19 -2
  23. package/esm2015/lib/model/no.js +19 -2
  24. package/esm2015/lib/qms-angular.module.js +5 -18
  25. package/esm2015/lib/qms-ckeditor-components/common/classes/qmsUploadAdapter.js +89 -0
  26. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.js +3 -1
  27. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.js +1 -1
  28. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-video-tree.model.js +4 -0
  29. package/esm2015/lib/qms-ckeditor-components/common/models/wproofreader-config.model.js +6 -0
  30. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.js +38 -0
  31. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +22 -3
  32. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +9 -8
  33. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +4 -1
  34. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +3 -4
  35. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +161 -11
  36. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +7 -3
  37. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.js +4 -1
  38. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-upload.service.js +20 -0
  39. package/esm2015/public-api.js +4 -5
  40. package/esm2015/qms-angular.js +6 -4
  41. package/fesm2015/qms-angular.js +744 -418
  42. package/fesm2015/qms-angular.js.map +1 -1
  43. package/lib/components/button/button.d.ts +1 -1
  44. package/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.d.ts +2 -2
  45. package/lib/components/select-include-children/select-include-children.component.d.ts +2 -1
  46. package/lib/components/select-process-document/select-process-document.component.d.ts +3 -0
  47. package/lib/{directives/side-sheet → components/side-sheet/directives}/drawer-content.directive.d.ts +0 -0
  48. package/lib/{directives/side-sheet → components/side-sheet/directives}/drawer-header-action.directive.d.ts +0 -0
  49. package/lib/{directives/side-sheet → components/side-sheet/directives}/drawer-header.directive.d.ts +0 -0
  50. package/lib/{directives/side-sheet → components/side-sheet/directives}/drawer.directive.d.ts +0 -0
  51. package/lib/components/side-sheet/index.d.ts +1 -0
  52. package/lib/components/side-sheet/public-api.d.ts +5 -0
  53. package/lib/components/side-sheet/side-sheet.module.d.ts +2 -0
  54. package/lib/directives/table/table-row.directive.d.ts +13 -0
  55. package/lib/directives/table/table.directive.d.ts +2 -11
  56. package/lib/model/en.d.ts +17 -0
  57. package/lib/model/no.d.ts +17 -0
  58. package/lib/qms-ckeditor-components/common/classes/qmsUploadAdapter.d.ts +18 -0
  59. package/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.d.ts +2 -0
  60. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.d.ts +4 -0
  61. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-video-tree.model.d.ts +5 -0
  62. package/lib/qms-ckeditor-components/common/models/wproofreader-config.model.d.ts +25 -0
  63. package/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.d.ts +15 -0
  64. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +4 -1
  65. package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.d.ts +2 -1
  66. package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +15 -1
  67. package/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.d.ts +2 -0
  68. package/lib/qms-ckeditor-components/services/qms-ckeditor-upload.service.d.ts +5 -0
  69. package/lib.theme.scss +1 -0
  70. package/package.json +1 -1
  71. package/public-api.d.ts +2 -4
  72. package/qms-angular.d.ts +5 -3
  73. package/qms-angular.metadata.json +1 -1
  74. package/src/assets/images/ckeditor5.svg +1 -0
  75. package/src/assets/jointjs/scss/rappid.scss +1 -1
  76. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
  77. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  78. package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -1
  79. package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -1
  80. package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -1
  81. package/src/assets/qms-ckeditor-plugin/build/translations/de-ch.js +1 -1
  82. package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -1
  83. package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -1
  84. package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -1
  85. package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -1
  86. package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -1
  87. package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -1
  88. package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -1
  89. package/src/assets/qms-ckeditor-plugin/build/translations/he.js +1 -1
  90. package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -1
  91. package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -1
  92. package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -1
  93. package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -1
  94. package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -1
  95. package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -1
  96. package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -1
  97. package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -1
  98. package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -1
  99. package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -1
  100. package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -1
  101. package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -1
  102. package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -1
  103. package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -1
  104. package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -1
  105. package/src/assets/qms-ckeditor-plugin/build/translations/sl.js +1 -1
  106. package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -1
  107. package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -1
  108. package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -1
  109. package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -1
  110. package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -1
  111. package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -1
  112. package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -1
  113. package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -1
  114. package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -1
  115. package/src/assets/qms-ckeditor-plugin/package-lock.json +23 -0
  116. package/src/assets/qms-ckeditor-plugin/package.json +2 -0
  117. package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +18 -4
  118. package/src/assets/qms-ckeditor-plugin/src/plugins/aboutckeditor/aboutckeditor.js +28 -0
  119. package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/bpmndialogcommand.js +74 -0
  120. package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/qmsCKEditorBpmnPlugin.js +5 -68
  121. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/contexts.json +3 -0
  122. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/de.po +21 -0
  123. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/en.po +21 -0
  124. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/gl.po +21 -0
  125. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/hu.po +21 -0
  126. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/it.po +21 -0
  127. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/ru.po +21 -0
  128. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/zh.po +21 -0
  129. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/src/index.js +10 -0
  130. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/src/sourceediting.js +386 -0
  131. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/src/utils/formathtml.js +142 -0
  132. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/theme/icons/source-editing.svg +1 -0
  133. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/theme/sourceediting.css +48 -0
  134. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +4 -0
  135. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorService.js +21 -0
  136. package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/qmsCKEditorFullscreenPlugin.js +1 -5
  137. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapcommand.js +1 -0
  138. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/utils.js +1 -1
  139. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkcommand.js +131 -176
  140. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkdialogcommand.js +88 -0
  141. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkediting.js +2 -0
  142. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkui.js +41 -32
  143. package/src/assets/qms-ckeditor-plugin/src/plugins/tableofcontents/tableofcontents.js +14 -0
  144. package/src/assets/qms-ckeditor-plugin/src/plugins/tableofcontents/tableofcontentscommand.js +87 -0
  145. package/src/assets/qms-ckeditor-plugin/src/plugins/tableofcontents/tableofcontentsediting.js +59 -0
  146. package/src/assets/qms-ckeditor-plugin/src/plugins/tableofcontents/tableofcontentsui.js +35 -0
  147. package/src/assets/qms-ckeditor-plugin/src/plugins/tableofcontents/utils.js +62 -0
  148. package/src/assets/qms-ckeditor-plugin/src/plugins/template/loadtemplatedialogcommand.js +14 -0
  149. package/src/assets/qms-ckeditor-plugin/src/plugins/template/qmsCKEditorLoadTemplatePlugin.js +10 -12
  150. package/src/assets/qms-ckeditor-plugin/src/plugins/template/qmsCKEdtiorTemplatePlugin.js +10 -7
  151. package/src/assets/qms-ckeditor-plugin/src/plugins/template/templatedialogcommand.js +9 -0
  152. package/src/assets/qms-ckeditor-plugin/src/plugins/timestamp/timestamp.js +15 -18
  153. package/src/assets/qms-ckeditor-plugin/src/plugins/timestamp/timestampcommand.js +17 -0
  154. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/removetooltipcommand.js +42 -26
  155. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltip.js +3 -3
  156. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipcommand.js +75 -0
  157. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipdialogcommand.js +68 -0
  158. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipediting.js +206 -131
  159. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipui.js +424 -136
  160. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/ui/actionsview.js +67 -12
  161. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/utils.js +17 -55
  162. package/src/assets/qms-ckeditor-plugin/src/plugins/video/autovideo.js +1 -5
  163. package/src/assets/qms-ckeditor-plugin/src/plugins/video/video/videoediting.js +5 -2
  164. package/src/assets/qms-ckeditor-plugin/src/plugins/video/videoupload/browsevideodialogcommand.js +25 -0
  165. package/src/assets/qms-ckeditor-plugin/src/plugins/video/videoupload/uploadvideocommand.js +3 -16
  166. package/src/assets/qms-ckeditor-plugin/src/plugins/video/videoupload/videouploadediting.js +4 -0
  167. package/src/assets/qms-ckeditor-plugin/src/plugins/video/videoupload/videouploadui.js +12 -23
  168. package/src/assets/qms-ckeditor-plugin/src/themes/icons/information.svg +1 -50
  169. package/src/assets/qms-ckeditor-plugin/src/themes/icons/table-excel.svg +44 -0
  170. package/src/assets/qms-ckeditor-plugin/src/themes/icons/timestamp.svg +1 -1
  171. package/src/assets/qms-ckeditor-plugin/src/themes/icons/tooltip.svg +1 -0
  172. package/src/assets/qms-ckeditor-plugin/src/themes/styles/heading.css +54 -0
  173. package/src/assets/qms-ckeditor-plugin/src/themes/styles/tooltip.css +11 -53
  174. package/src/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.scss +47 -23
  175. package/src/lib/components/qms-paginator/qms-paginator.component.scss +40 -3
  176. package/src/lib/components/qms-stepper/qms-stepper.component.scss +2 -1
  177. package/src/lib/components/select-process-document/select-process-document.component.scss +2 -2
  178. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.scss +16 -0
  179. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.scss +25 -23
  180. package/src/lib/qms-ckeditor-components/qms-ckeditor.component.scss +11 -11
  181. package/src/themes/core/_range-slider.scss +10 -12
  182. package/src/themes/core/_side-sheet.scss +2 -2
  183. package/src/themes/core/_table.scss +176 -37
  184. package/esm2015/lib/directives/side-sheet/drawer-content.directive.js +0 -20
  185. package/esm2015/lib/directives/side-sheet/drawer-header-action.directive.js +0 -20
  186. package/esm2015/lib/directives/side-sheet/drawer-header.directive.js +0 -20
  187. package/esm2015/lib/directives/side-sheet/drawer.directive.js +0 -20
  188. package/esm2015/lib/qms-ckeditor-components/common/classes/uploadAdapter.js +0 -26
  189. package/lib/qms-ckeditor-components/common/classes/uploadAdapter.d.ts +0 -5
  190. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/inserttooltipcommand.js +0 -88
@@ -1,31 +1,47 @@
1
- import { Command } from 'ckeditor5/src/core';
2
- import { findAttributeRange } from 'ckeditor5/src/typing';
3
- import { TOOLTIP_ATTRIBUTE } from './utils';
1
+
4
2
 
5
- export default class RemoveTooltipCommand extends Command {
6
- refresh() {
7
- const model = this.editor.model;
8
- this.isEnabled = model.schema.checkAttributeInSelection(model.document.selection, TOOLTIP_ATTRIBUTE);
9
- }
3
+ import { Command } from '@ckeditor/ckeditor5-core';
4
+ import { findAttributeRange } from '@ckeditor/ckeditor5-typing';
5
+ import { first } from '@ckeditor/ckeditor5-utils';
6
+ import { isImageAllowed } from './utils';
7
+ import { TOOLTIP_COMMANDS, HTML_ATTRIBUTE, HTML_CLASS, TOOLTIP_ATTRIBUTE, TOOLTIP_CUSTOM_PROPERTY } from './utils';
10
8
 
11
- execute() {
12
- const editor = this.editor;
13
- const model = editor.model;
14
- const selection = model.document.selection;
9
+ export default class RemoveTooltipCommand extends Command {
10
+
11
+ refresh() {
12
+ const model = this.editor.model;
13
+ const doc = model.document;
14
+ const selectedElement = first(doc.selection.getSelectedBlocks());
15
15
 
16
- model.change(writer => {
17
- const selectedRanges = selection.isCollapsed ?
18
- [findAttributeRange(
19
- selection.getFirstPosition(),
20
- TOOLTIP_ATTRIBUTE,
21
- selection.getAttribute(TOOLTIP_ATTRIBUTE),
22
- model
23
- )] :
24
- model.schema.getValidRanges(selection.getRanges(), TOOLTIP_ATTRIBUTE);
16
+ // A check for the `LinkImage` plugin. If the selection contains an image element, get values from the element.
17
+ // Currently the selection reads attributes from text nodes only. See #7429 and #7465.
18
+ if (isImageAllowed(selectedElement, model.schema)) {
19
+ this.isEnabled = model.schema.checkAttribute(selectedElement, TOOLTIP_ATTRIBUTE);
20
+ } else {
21
+ this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, TOOLTIP_ATTRIBUTE);
22
+ }
23
+ }
24
+
25
+ execute() {
26
+ const editor = this.editor;
27
+ const model = editor.model;
28
+ const selection = model.document.selection;
29
+
30
+ model.change(writer => {
31
+ // Get ranges to unlink.
32
+ const rangesToUnlink = selection.isCollapsed ?
33
+ [findAttributeRange(
34
+ selection.getFirstPosition(),
35
+ TOOLTIP_ATTRIBUTE,
36
+ selection.getAttribute(TOOLTIP_ATTRIBUTE),
37
+ model
38
+ )] :
39
+ model.schema.getValidRanges(selection.getRanges(), TOOLTIP_ATTRIBUTE);
25
40
 
26
- for (const range of selectedRanges) {
27
- writer.removeAttribute(TOOLTIP_ATTRIBUTE, range);
28
- }
29
- });
30
- }
41
+ // Remove `qmsTooltip` attribute from specified ranges.
42
+ for (const range of rangesToUnlink) {
43
+ writer.removeAttribute(TOOLTIP_ATTRIBUTE, range);
44
+ }
45
+ });
46
+ }
31
47
  }
@@ -1,14 +1,14 @@
1
-
2
1
  import { Plugin } from '@ckeditor/ckeditor5-core';
3
2
  import TooltipEditing from './tooltipediting';
4
3
  import TooltipUI from './tooltipui';
5
4
 
6
5
  export default class Tooltip extends Plugin {
6
+
7
7
  static get requires() {
8
- return [TooltipEditing, TooltipUI];
8
+ return [ TooltipEditing, TooltipUI ];
9
9
  }
10
10
 
11
11
  static get pluginName() {
12
12
  return 'Tooltip';
13
13
  }
14
- }
14
+ }
@@ -0,0 +1,75 @@
1
+ import { Command } from '@ckeditor/ckeditor5-core';
2
+ import { findAttributeRange } from '@ckeditor/ckeditor5-typing';
3
+ import { toMap, first } from '@ckeditor/ckeditor5-utils';
4
+ import { isImageAllowed, TOOLTIP_ATTRIBUTE } from './utils';
5
+
6
+ export default class TooltipCommand extends Command {
7
+
8
+ refresh() {
9
+ const model = this.editor.model;
10
+ const doc = model.document;
11
+ const selectedElement = first(doc.selection.getSelectedBlocks());
12
+
13
+ // A check for the `LinkImage` plugin. If the selection contains an element, get values from the element.
14
+ // Currently the selection reads attributes from text nodes only. See #7429 and #7465.
15
+ if (isImageAllowed(selectedElement, model.schema)) {
16
+ this.isEnabled = model.schema.checkAttribute(selectedElement, TOOLTIP_ATTRIBUTE);
17
+ } else {
18
+ this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, TOOLTIP_ATTRIBUTE);
19
+ }
20
+ }
21
+
22
+ execute(options) {
23
+ const model = this.editor.model;
24
+ const selection = model.document.selection;
25
+ model.change(writer => {
26
+ // If selection is collapsed then update selected link or insert new one at the place of caret.
27
+ if (selection.isCollapsed) {
28
+ const position = selection.getFirstPosition();
29
+
30
+ // When selection is inside text with `qmsTooltip` attribute.
31
+ if (selection.hasAttribute(TOOLTIP_ATTRIBUTE)) {
32
+ // Then update `qmsTooltip` value.
33
+ const linkRange = findAttributeRange(position, TOOLTIP_ATTRIBUTE, selection.getAttribute(TOOLTIP_ATTRIBUTE), model);
34
+
35
+ const attributes = toMap(selection.getAttributes());
36
+
37
+ attributes.set(TOOLTIP_ATTRIBUTE, options.content);
38
+
39
+ const { end: positionAfter } = model.insertContent(writer.createText(options.text, attributes), linkRange);
40
+
41
+ // Put the selection at the end of the inserted link.
42
+ // Using end of range returned from insertContent in case nodes with the same attributes got merged.
43
+ writer.setSelection(positionAfter);
44
+ }
45
+ else if (options.text !== '') {
46
+ const attributes = toMap(selection.getAttributes());
47
+
48
+ attributes.set(TOOLTIP_ATTRIBUTE, options.content);
49
+
50
+ const { end: positionAfter } = model.insertContent(writer.createText(options.text, attributes), position);
51
+
52
+ // Put the selection at the end of the inserted link.
53
+ // Using end of range returned from insertContent in case nodes with the same attributes got merged.
54
+ writer.setSelection(positionAfter);
55
+ }
56
+ } else {
57
+ const attributes = toMap(selection.getAttributes());
58
+
59
+ attributes.set(TOOLTIP_ATTRIBUTE, options.content);
60
+
61
+ const { end: positionAfter } = model.insertContent(writer.createText(options.text, attributes), selection);
62
+
63
+ writer.setSelection(positionAfter);
64
+ }
65
+ // Remove the `qmsTooltip` attribute and all link decorators from the selection.
66
+ // It stops adding a new content into the link element.
67
+ [TOOLTIP_ATTRIBUTE].forEach(item => {
68
+ writer.removeSelectionAttribute(item);
69
+ });
70
+ console.log('this.editor.getData()' + new Date().toISOString());
71
+ console.log(this.editor.getData());
72
+ });
73
+ }
74
+ }
75
+
@@ -0,0 +1,68 @@
1
+ import { Command } from '@ckeditor/ckeditor5-core';
2
+ import { findAttributeRange } from '@ckeditor/ckeditor5-typing';
3
+ import { first } from '@ckeditor/ckeditor5-utils';
4
+ import * as QMSCKEditorConstant from '../common/qmsCKEditorConstant';
5
+ import * as QMSCKEditorService from '../common/qmsCKEditorService';
6
+ import { isImageAllowed, TOOLTIP_COMMANDS, TOOLTIP_ATTRIBUTE } from './utils';
7
+
8
+ export default class TooltipDialogCommand extends Command {
9
+
10
+ refresh() {
11
+ const model = this.editor.model;
12
+ const doc = model.document;
13
+ const selectedElement = first(doc.selection.getSelectedBlocks());
14
+ // A check for the `LinkImage` plugin. If the selection contains an element, get values from the element.
15
+ // Currently the selection reads attributes from text nodes only. See #7429 and #7465.
16
+ if (isImageAllowed(selectedElement, model.schema)) {
17
+ this.value = selectedElement.getAttribute(TOOLTIP_ATTRIBUTE);
18
+ this.isEnabled = model.schema.checkAttribute(selectedElement, TOOLTIP_ATTRIBUTE);
19
+ } else {
20
+ this.value = doc.selection.getAttribute(TOOLTIP_ATTRIBUTE);
21
+ this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, TOOLTIP_ATTRIBUTE);
22
+ }
23
+ }
24
+
25
+ execute() {
26
+ const editor = this.editor;
27
+ const model = editor.model;
28
+ const selection = model.document.selection;
29
+ const tooltip = { text: '', content: '' };
30
+ if(selection.isCollapsed){
31
+ if(selection.hasAttribute(TOOLTIP_ATTRIBUTE)){
32
+ const linkRange = findAttributeRange(selection.getFirstPosition(), TOOLTIP_ATTRIBUTE, selection.getAttribute(TOOLTIP_ATTRIBUTE), model);
33
+ for (const node of linkRange.getItems()) {
34
+ if ((node.is('text') || node.is('textProxy')) && node.hasAttribute(TOOLTIP_ATTRIBUTE)) {
35
+ tooltip.text = node.data;
36
+ tooltip.content = node.getAttribute(TOOLTIP_ATTRIBUTE);
37
+ break;
38
+ }
39
+ }
40
+ }
41
+ }
42
+ else
43
+ {
44
+ const ranges = selection.getFirstRange();
45
+ if(ranges)
46
+ {
47
+ for (const item of ranges.getItems()) {
48
+ if (item.data) {
49
+ tooltip.text = tooltip.text + item.data;
50
+ }
51
+ }
52
+ }
53
+ }
54
+
55
+ QMSCKEditorService.tooltipNotify(tooltip);
56
+ window[QMSCKEditorConstant.QMSCK_TOOLTIP_IS_PROCESSING] = false;
57
+
58
+ window.addEventListener(QMSCKEditorConstant.QMSCK_TOOLTIP_PLUGIN_RESP, function (evt) {
59
+ if (window[QMSCKEditorConstant.QMSCK_TOOLTIP_IS_PROCESSING]) {
60
+ return;
61
+ }
62
+ const options = evt.detail;
63
+ editor.commands.get(TOOLTIP_COMMANDS.TOOLTIP).execute(options);
64
+ window[QMSCKEditorConstant.QMSCK_TOOLTIP_IS_PROCESSING] = true;
65
+ }, { once: true });
66
+ }
67
+ }
68
+