@deeksha2309/sunbird-collection-editor 8.0.7

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 (204) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/collection-editor-cursor.service.mjs +3 -0
  3. package/esm2022/lib/collection-editor-library.component.mjs +16 -0
  4. package/esm2022/lib/collection-editor-library.module.mjs +137 -0
  5. package/esm2022/lib/components/answer/answer.component.mjs +43 -0
  6. package/esm2022/lib/components/asset-browser/asset-browser.component.mjs +325 -0
  7. package/esm2022/lib/components/asset-browser/asset-browser.data.mjs +53 -0
  8. package/esm2022/lib/components/assign-page-number/assign-page-number.component.mjs +191 -0
  9. package/esm2022/lib/components/ckeditor-tool/ckeditor-tool.component.mjs +895 -0
  10. package/esm2022/lib/components/collection-icon/collection-icon.component.mjs +43 -0
  11. package/esm2022/lib/components/contentplayer-page/contentplayer-page.component.mjs +351 -0
  12. package/esm2022/lib/components/csv-upload/csv-upload.component.mjs +178 -0
  13. package/esm2022/lib/components/dialcode/dialcode.component.mjs +182 -0
  14. package/esm2022/lib/components/editor/editor.component.mjs +1125 -0
  15. package/esm2022/lib/components/fancy-tree/fancy-tree.component.mjs +529 -0
  16. package/esm2022/lib/components/header/header.component.mjs +123 -0
  17. package/esm2022/lib/components/library/library.component.mjs +242 -0
  18. package/esm2022/lib/components/library-filter/library-filter.component.mjs +149 -0
  19. package/esm2022/lib/components/library-list/library-list.component.mjs +92 -0
  20. package/esm2022/lib/components/library-player/library-player.component.mjs +62 -0
  21. package/esm2022/lib/components/manage-collaborator/manage-collaborator.component.mjs +256 -0
  22. package/esm2022/lib/components/meta-form/meta-form.component.mjs +377 -0
  23. package/esm2022/lib/components/options/options.component.mjs +144 -0
  24. package/esm2022/lib/components/plain-tree/plain-tree.component.mjs +125 -0
  25. package/esm2022/lib/components/progress-status/progress-status.component.mjs +46 -0
  26. package/esm2022/lib/components/publish-checklist/publish-checklist.component.mjs +67 -0
  27. package/esm2022/lib/components/quality-params-modal/quality-params-modal.component.mjs +52 -0
  28. package/esm2022/lib/components/question/question.component.mjs +1360 -0
  29. package/esm2022/lib/components/quml-player/quml-player.component.mjs +73 -0
  30. package/esm2022/lib/components/qumlplayer-page/qumlplayer-page.component.mjs +84 -0
  31. package/esm2022/lib/components/resource-reorder/resource-reorder.component.mjs +143 -0
  32. package/esm2022/lib/components/skeleton-loader/skeleton-loader.component.mjs +26 -0
  33. package/esm2022/lib/components/template/template.component.mjs +42 -0
  34. package/esm2022/lib/components/term-and-condition/term-and-condition.component.mjs +68 -0
  35. package/esm2022/lib/directives/telemetry-interact/telemetry-interact.directive.mjs +33 -0
  36. package/esm2022/lib/interfaces/McqForm.mjs +29 -0
  37. package/esm2022/lib/interfaces/editor.mjs +2 -0
  38. package/esm2022/lib/interfaces/framework.mjs +2 -0
  39. package/esm2022/lib/interfaces/httpOptions.mjs +2 -0
  40. package/esm2022/lib/interfaces/requestParam.mjs +2 -0
  41. package/esm2022/lib/interfaces/serverResponse.mjs +2 -0
  42. package/esm2022/lib/pipes/sanitize-html.pipe.mjs +20 -0
  43. package/esm2022/lib/services/config/category.config.json +8 -0
  44. package/esm2022/lib/services/config/config.service.mjs +27 -0
  45. package/esm2022/lib/services/config/editor.config.json +31 -0
  46. package/esm2022/lib/services/config/label.config.json +314 -0
  47. package/esm2022/lib/services/config/player.config.json +96 -0
  48. package/esm2022/lib/services/config/url.config.json +69 -0
  49. package/esm2022/lib/services/data/data.service.mjs +192 -0
  50. package/esm2022/lib/services/dialcode/dialcode.service.mjs +309 -0
  51. package/esm2022/lib/services/editor/editor.service.mjs +682 -0
  52. package/esm2022/lib/services/framework/framework.service.mjs +106 -0
  53. package/esm2022/lib/services/helper/helper.service.mjs +160 -0
  54. package/esm2022/lib/services/player/player.service.mjs +99 -0
  55. package/esm2022/lib/services/public-data/public-data.service.mjs +21 -0
  56. package/esm2022/lib/services/question/question.service.mjs +167 -0
  57. package/esm2022/lib/services/telemetry/telemetry.service.mjs +120 -0
  58. package/esm2022/lib/services/toaster/toaster.service.mjs +105 -0
  59. package/esm2022/lib/services/tree/tree.service.mjs +284 -0
  60. package/esm2022/project-sunbird-sunbird-collection-editor.mjs +5 -0
  61. package/esm2022/public-api.mjs +4 -0
  62. package/fesm2022/project-sunbird-sunbird-collection-editor.mjs +10138 -0
  63. package/fesm2022/project-sunbird-sunbird-collection-editor.mjs.map +1 -0
  64. package/index.d.ts +6 -0
  65. package/lib/assets/.gitkeep +0 -0
  66. package/lib/assets/images/MCQ.png +0 -0
  67. package/lib/assets/images/Spin.gif +0 -0
  68. package/lib/assets/images/bulkuploadfile.png +0 -0
  69. package/lib/assets/images/cancel-sign copy.png +0 -0
  70. package/lib/assets/images/cancel-sign.png +0 -0
  71. package/lib/assets/images/emptyResult.svg +1 -0
  72. package/lib/assets/images/icons-rtl.gif +0 -0
  73. package/lib/assets/images/icons.gif +0 -0
  74. package/lib/assets/images/imageicon.svg +16 -0
  75. package/lib/assets/images/imageicon_blue.svg +16 -0
  76. package/lib/assets/images/layoutoneicon.svg +16 -0
  77. package/lib/assets/images/layoutoneicon_blue.svg +16 -0
  78. package/lib/assets/images/layoutthreeicon.svg +18 -0
  79. package/lib/assets/images/layoutthreeicon_blue.svg +18 -0
  80. package/lib/assets/images/layouttwoicon.svg +18 -0
  81. package/lib/assets/images/layouttwoicon_blue.svg +18 -0
  82. package/lib/assets/images/leftalignicon.svg +17 -0
  83. package/lib/assets/images/leftalignicon_blue.svg +17 -0
  84. package/lib/assets/images/loader.gif +0 -0
  85. package/lib/assets/images/loader.svg +1 -0
  86. package/lib/assets/images/loading.gif +0 -0
  87. package/lib/assets/images/middlealignicon.svg +17 -0
  88. package/lib/assets/images/middlealignicon_blue.svg +17 -0
  89. package/lib/assets/images/question_collection.svg +18 -0
  90. package/lib/assets/images/rightalignicon.svg +17 -0
  91. package/lib/assets/images/rightalignicon_blue.svg +17 -0
  92. package/lib/assets/images/vline-rtl.gif +0 -0
  93. package/lib/assets/images/vline.gif +0 -0
  94. package/lib/assets/images/writing.png +0 -0
  95. package/lib/collection-editor-cursor.service.d.ts +5 -0
  96. package/lib/collection-editor-cursor.service.d.ts.map +1 -0
  97. package/lib/collection-editor-library.component.d.ts +9 -0
  98. package/lib/collection-editor-library.component.d.ts.map +1 -0
  99. package/lib/collection-editor-library.module.d.ts +50 -0
  100. package/lib/collection-editor-library.module.d.ts.map +1 -0
  101. package/lib/components/answer/answer.component.d.ts +24 -0
  102. package/lib/components/answer/answer.component.d.ts.map +1 -0
  103. package/lib/components/asset-browser/asset-browser.component.d.ts +81 -0
  104. package/lib/components/asset-browser/asset-browser.component.d.ts.map +1 -0
  105. package/lib/components/asset-browser/asset-browser.data.d.ts +52 -0
  106. package/lib/components/asset-browser/asset-browser.data.d.ts.map +1 -0
  107. package/lib/components/assign-page-number/assign-page-number.component.d.ts +38 -0
  108. package/lib/components/assign-page-number/assign-page-number.component.d.ts.map +1 -0
  109. package/lib/components/ckeditor-tool/ckeditor-tool.component.d.ts +161 -0
  110. package/lib/components/ckeditor-tool/ckeditor-tool.component.d.ts.map +1 -0
  111. package/lib/components/collection-icon/collection-icon.component.d.ts +18 -0
  112. package/lib/components/collection-icon/collection-icon.component.d.ts.map +1 -0
  113. package/lib/components/contentplayer-page/contentplayer-page.component.d.ts +54 -0
  114. package/lib/components/contentplayer-page/contentplayer-page.component.d.ts.map +1 -0
  115. package/lib/components/csv-upload/csv-upload.component.d.ts +42 -0
  116. package/lib/components/csv-upload/csv-upload.component.d.ts.map +1 -0
  117. package/lib/components/dialcode/dialcode.component.d.ts +48 -0
  118. package/lib/components/dialcode/dialcode.component.d.ts.map +1 -0
  119. package/lib/components/editor/editor.component.d.ts +146 -0
  120. package/lib/components/editor/editor.component.d.ts.map +1 -0
  121. package/lib/components/fancy-tree/fancy-tree.component.d.ts +77 -0
  122. package/lib/components/fancy-tree/fancy-tree.component.d.ts.map +1 -0
  123. package/lib/components/header/header.component.d.ts +46 -0
  124. package/lib/components/header/header.component.d.ts.map +1 -0
  125. package/lib/components/library/library.component.d.ts +69 -0
  126. package/lib/components/library/library.component.d.ts.map +1 -0
  127. package/lib/components/library-filter/library-filter.component.d.ts +47 -0
  128. package/lib/components/library-filter/library-filter.component.d.ts.map +1 -0
  129. package/lib/components/library-list/library-list.component.d.ts +32 -0
  130. package/lib/components/library-list/library-list.component.d.ts.map +1 -0
  131. package/lib/components/library-player/library-player.component.d.ts +24 -0
  132. package/lib/components/library-player/library-player.component.d.ts.map +1 -0
  133. package/lib/components/manage-collaborator/manage-collaborator.component.d.ts +75 -0
  134. package/lib/components/manage-collaborator/manage-collaborator.component.d.ts.map +1 -0
  135. package/lib/components/meta-form/meta-form.component.d.ts +51 -0
  136. package/lib/components/meta-form/meta-form.component.d.ts.map +1 -0
  137. package/lib/components/options/options.component.d.ts +53 -0
  138. package/lib/components/options/options.component.d.ts.map +1 -0
  139. package/lib/components/plain-tree/plain-tree.component.d.ts +20 -0
  140. package/lib/components/plain-tree/plain-tree.component.d.ts.map +1 -0
  141. package/lib/components/progress-status/progress-status.component.d.ts +25 -0
  142. package/lib/components/progress-status/progress-status.component.d.ts.map +1 -0
  143. package/lib/components/publish-checklist/publish-checklist.component.d.ts +23 -0
  144. package/lib/components/publish-checklist/publish-checklist.component.d.ts.map +1 -0
  145. package/lib/components/quality-params-modal/quality-params-modal.component.d.ts +24 -0
  146. package/lib/components/quality-params-modal/quality-params-modal.component.d.ts.map +1 -0
  147. package/lib/components/question/question.component.d.ts +215 -0
  148. package/lib/components/question/question.component.d.ts.map +1 -0
  149. package/lib/components/quml-player/quml-player.component.d.ts +26 -0
  150. package/lib/components/quml-player/quml-player.component.d.ts.map +1 -0
  151. package/lib/components/qumlplayer-page/qumlplayer-page.component.d.ts +31 -0
  152. package/lib/components/qumlplayer-page/qumlplayer-page.component.d.ts.map +1 -0
  153. package/lib/components/resource-reorder/resource-reorder.component.d.ts +45 -0
  154. package/lib/components/resource-reorder/resource-reorder.component.d.ts.map +1 -0
  155. package/lib/components/skeleton-loader/skeleton-loader.component.d.ts +13 -0
  156. package/lib/components/skeleton-loader/skeleton-loader.component.d.ts.map +1 -0
  157. package/lib/components/template/template.component.d.ts +21 -0
  158. package/lib/components/template/template.component.d.ts.map +1 -0
  159. package/lib/components/term-and-condition/term-and-condition.component.d.ts +26 -0
  160. package/lib/components/term-and-condition/term-and-condition.component.d.ts.map +1 -0
  161. package/lib/directives/telemetry-interact/telemetry-interact.directive.d.ts +27 -0
  162. package/lib/directives/telemetry-interact/telemetry-interact.directive.d.ts.map +1 -0
  163. package/lib/interfaces/McqForm.d.ts +32 -0
  164. package/lib/interfaces/McqForm.d.ts.map +1 -0
  165. package/lib/interfaces/editor.d.ts +78 -0
  166. package/lib/interfaces/editor.d.ts.map +1 -0
  167. package/lib/interfaces/framework.d.ts +46 -0
  168. package/lib/interfaces/framework.d.ts.map +1 -0
  169. package/lib/interfaces/httpOptions.d.ts +35 -0
  170. package/lib/interfaces/httpOptions.d.ts.map +1 -0
  171. package/lib/interfaces/requestParam.d.ts +24 -0
  172. package/lib/interfaces/requestParam.d.ts.map +1 -0
  173. package/lib/interfaces/serverResponse.d.ts +38 -0
  174. package/lib/interfaces/serverResponse.d.ts.map +1 -0
  175. package/lib/pipes/sanitize-html.pipe.d.ts +11 -0
  176. package/lib/pipes/sanitize-html.pipe.d.ts.map +1 -0
  177. package/lib/services/config/config.service.d.ts +13 -0
  178. package/lib/services/config/config.service.d.ts.map +1 -0
  179. package/lib/services/data/data.service.d.ts +85 -0
  180. package/lib/services/data/data.service.d.ts.map +1 -0
  181. package/lib/services/dialcode/dialcode.service.d.ts +36 -0
  182. package/lib/services/dialcode/dialcode.service.d.ts.map +1 -0
  183. package/lib/services/editor/editor.service.d.ts +150 -0
  184. package/lib/services/editor/editor.service.d.ts.map +1 -0
  185. package/lib/services/framework/framework.service.d.ts +35 -0
  186. package/lib/services/framework/framework.service.d.ts.map +1 -0
  187. package/lib/services/helper/helper.service.d.ts +41 -0
  188. package/lib/services/helper/helper.service.d.ts.map +1 -0
  189. package/lib/services/player/player.service.d.ts +33 -0
  190. package/lib/services/player/player.service.d.ts.map +1 -0
  191. package/lib/services/public-data/public-data.service.d.ts +15 -0
  192. package/lib/services/public-data/public-data.service.d.ts.map +1 -0
  193. package/lib/services/question/question.service.d.ts +30 -0
  194. package/lib/services/question/question.service.d.ts.map +1 -0
  195. package/lib/services/telemetry/telemetry.service.d.ts +45 -0
  196. package/lib/services/telemetry/telemetry.service.d.ts.map +1 -0
  197. package/lib/services/toaster/toaster.service.d.ts +50 -0
  198. package/lib/services/toaster/toaster.service.d.ts.map +1 -0
  199. package/lib/services/tree/tree.service.d.ts +51 -0
  200. package/lib/services/tree/tree.service.d.ts.map +1 -0
  201. package/package.json +32 -0
  202. package/project-sunbird-sunbird-collection-editor.d.ts.map +1 -0
  203. package/public-api.d.ts +4 -0
  204. package/public-api.d.ts.map +1 -0
@@ -0,0 +1,284 @@
1
+ import { Injectable } from '@angular/core';
2
+ import 'jquery.fancytree';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+ import * as _ from 'lodash-es';
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import { skipWhile } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../toaster/toaster.service";
9
+ import * as i2 from "../helper/helper.service";
10
+ import * as i3 from "../config/config.service";
11
+ export class TreeService {
12
+ constructor(toasterService, helperService, configService) {
13
+ this.toasterService = toasterService;
14
+ this.helperService = helperService;
15
+ this.configService = configService;
16
+ this.treeCache = {
17
+ nodesModified: {},
18
+ nodes: []
19
+ };
20
+ // tslint:disable-next-line:variable-name
21
+ this._treeStatus$ = new BehaviorSubject(undefined);
22
+ this.treeStatus$ = this._treeStatus$
23
+ .asObservable().pipe(skipWhile(status => status === undefined || status === null));
24
+ }
25
+ initialize(editorConfig) {
26
+ this.config = editorConfig.config;
27
+ this.omitFalseyProps = _.get(this.configService.editorConfig, 'omitFalseyProperties');
28
+ }
29
+ nextTreeStatus(status) {
30
+ this._treeStatus$.next(status);
31
+ }
32
+ setTreeElement(el) {
33
+ this.treeNativeElement = el;
34
+ }
35
+ updateNode(metadata, nodeToBeUpdated, primaryCategory) {
36
+ this.setNodeTitle(metadata.name);
37
+ this.updateTreeNodeMetadata(metadata, nodeToBeUpdated, primaryCategory);
38
+ }
39
+ updateAppIcon(appIconUrl) {
40
+ const activeNode = this.getActiveNode();
41
+ const nodeId = activeNode.data.id;
42
+ activeNode.data.metadata = { ...activeNode.data.metadata, appIcon: appIconUrl };
43
+ this.setTreeCache(nodeId, { appIcon: appIconUrl }, activeNode.data);
44
+ }
45
+ updateMetaDataProperty(key, value) {
46
+ const node = this.getFirstChild();
47
+ const nodeId = node.data.id;
48
+ node.data.metadata = { ...node.data.metadata, [key]: value };
49
+ this.setTreeCache(nodeId, _.merge({}, { [key]: value }, _.pick(node.data.metadata, ['objectType'])));
50
+ }
51
+ updateTreeNodeMetadata(newData, nodeToBeUpdated, primaryCategory, objectType) {
52
+ const activeNode = !_.isUndefined(nodeToBeUpdated) ? this.getNodeById(nodeToBeUpdated) : this.getActiveNode();
53
+ const nodeId = nodeToBeUpdated || activeNode.data.id;
54
+ if (newData.instructions) {
55
+ newData.instructions = { default: newData.instructions };
56
+ }
57
+ activeNode.data.metadata = { ...activeNode.data.metadata, ...newData };
58
+ activeNode.title = newData.name;
59
+ newData = _.omitBy(newData, (v, key) => _.isUndefined(v) || _.isNull(v) || (v === '' && _.includes(this.omitFalseyProps, key)));
60
+ newData = _.merge({}, newData, _.pick(activeNode.data.metadata, ['objectType', 'contentType', 'primaryCategory']));
61
+ const attributions = newData.attributions;
62
+ if (attributions && _.isString(attributions)) {
63
+ newData.attributions = attributions.split(',');
64
+ }
65
+ else {
66
+ newData.attributions = [];
67
+ }
68
+ const { maxTime, warningTime, copyrightYear } = newData;
69
+ if (copyrightYear) {
70
+ newData.copyrightYear = _.toNumber(copyrightYear);
71
+ }
72
+ if (objectType) {
73
+ newData.objectType = objectType;
74
+ }
75
+ const timeLimits = {};
76
+ if (maxTime) {
77
+ timeLimits.maxTime = this.helperService.hmsToSeconds(maxTime);
78
+ }
79
+ if (warningTime) {
80
+ timeLimits.warningTime = this.helperService.hmsToSeconds(warningTime);
81
+ }
82
+ if (!_.isEmpty(timeLimits)) {
83
+ newData.timeLimits = timeLimits;
84
+ }
85
+ delete newData.maxTime;
86
+ delete newData.warningTime;
87
+ this.setTreeCache(nodeId, newData, activeNode.data);
88
+ }
89
+ addNode(createType) {
90
+ let newNode;
91
+ const selectedNode = this.getActiveNode();
92
+ // tslint:disable-next-line:max-line-length
93
+ const nodeConfig = (createType === 'sibling') ? this.config.hierarchy[`level${selectedNode.getLevel() - 1}`] : this.config.hierarchy[`level${selectedNode.getLevel()}`];
94
+ const uniqueId = uuidv4();
95
+ const nodeTitle = _.get(nodeConfig, 'name');
96
+ const node = {
97
+ id: uniqueId,
98
+ title: nodeTitle,
99
+ tooltip: nodeTitle,
100
+ ...(nodeConfig.contentType && { contentType: nodeConfig.contentType }),
101
+ primaryCategory: _.get(nodeConfig, 'primaryCategory'),
102
+ objectType: _.get(this.config, 'objectType'),
103
+ root: false,
104
+ folder: true,
105
+ icon: _.get(nodeConfig, 'iconClass'),
106
+ metadata: {
107
+ mimeType: _.get(nodeConfig, 'mimeType'),
108
+ code: uniqueId,
109
+ name: nodeTitle,
110
+ visibility: 'Parent'
111
+ }
112
+ };
113
+ node.metadata = _.merge({}, node.metadata, _.pick(node, ['contentType', 'objectType', 'primaryCategory']));
114
+ newNode = (createType === 'sibling') ? selectedNode.appendSibling(node) : selectedNode.addChildren(node);
115
+ this.setTreeCache(node.id, node.metadata);
116
+ newNode.setActive();
117
+ selectedNode.setExpanded();
118
+ $('span.fancytree-title').attr('style', 'width:11em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden');
119
+ $(this.treeNativeElement).scrollLeft($('.fancytree-lastsib').width());
120
+ $(this.treeNativeElement).scrollTop($('.fancytree-lastsib').height());
121
+ this.nextTreeStatus('added');
122
+ }
123
+ removeNode() {
124
+ const selectedNode = this.getActiveNode();
125
+ const afterDeleteNode = selectedNode.getPrevSibling() ? selectedNode.getPrevSibling() : selectedNode.getParent();
126
+ this.setActiveNode(afterDeleteNode);
127
+ selectedNode.remove();
128
+ this.clearTreeCache(selectedNode.data);
129
+ $('span.fancytree-title').attr('style', 'width:11em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden');
130
+ $(this.treeNativeElement).scrollLeft($('.fancytree-lastsib').width());
131
+ $(this.treeNativeElement).scrollTop($('.fancytree-lastsib').height());
132
+ this.nextTreeStatus('removed');
133
+ }
134
+ getTreeObject() {
135
+ return $(this.treeNativeElement).fancytree('getTree');
136
+ }
137
+ getActiveNode() {
138
+ let activeNode;
139
+ try {
140
+ activeNode = this.getTreeObject().getActiveNode();
141
+ }
142
+ catch {
143
+ activeNode = {};
144
+ }
145
+ return activeNode;
146
+ }
147
+ getParent() {
148
+ const activeNode = this.getActiveNode();
149
+ return activeNode?.getParent ? activeNode.getParent() : null;
150
+ }
151
+ setActiveNode(node) {
152
+ const rootFirstChildNode = this.getFirstChild();
153
+ if (node) {
154
+ node.setActive(true);
155
+ }
156
+ else {
157
+ rootFirstChildNode.setActive(true);
158
+ }
159
+ }
160
+ getFirstChild() {
161
+ let treeData;
162
+ try {
163
+ treeData = $(this.treeNativeElement).fancytree('getRootNode').getFirstChild();
164
+ }
165
+ catch {
166
+ treeData = {};
167
+ }
168
+ return treeData;
169
+ }
170
+ findNode(nodeId) {
171
+ return this.getTreeObject().findFirst((node) => node.data.id === nodeId);
172
+ }
173
+ expandNode(nodeId) {
174
+ this.findNode(nodeId).setExpanded(true);
175
+ }
176
+ replaceNodeId(identifiers) {
177
+ this.getTreeObject().visit((node) => {
178
+ if (identifiers[node.data.id]) {
179
+ node.data.id = identifiers[node.data.id];
180
+ }
181
+ });
182
+ }
183
+ getNodeById(id) {
184
+ // tslint:disable-next-line:variable-name
185
+ let _node;
186
+ this.getTreeObject().visit((node) => {
187
+ if (node.data.id === id) {
188
+ _node = node;
189
+ }
190
+ });
191
+ return _node;
192
+ }
193
+ // Generate a flat list of node children and sub children
194
+ getChildren() {
195
+ const nodes = [];
196
+ this.getActiveNode().visit((node) => {
197
+ nodes.push(node);
198
+ });
199
+ return nodes;
200
+ }
201
+ highlightNode(nodeId, action) {
202
+ const nodeElem = this.getNodeById(nodeId);
203
+ if (!nodeElem) {
204
+ return;
205
+ }
206
+ if (action === 'add') {
207
+ nodeElem.span.childNodes[1].classList.add('highlightNode');
208
+ nodeElem.span.childNodes[2].classList.add('highlightNode');
209
+ }
210
+ else if (action === 'remove') {
211
+ nodeElem.span.childNodes[1].classList.remove('highlightNode');
212
+ nodeElem.span.childNodes[2].classList.remove('highlightNode');
213
+ }
214
+ else { }
215
+ }
216
+ setTreeCache(nodeId, metadata, activeNode) {
217
+ if (this.treeCache.nodesModified[nodeId]) {
218
+ // tslint:disable-next-line:max-line-length
219
+ this.treeCache.nodesModified[nodeId].metadata = _.assign(this.treeCache.nodesModified[nodeId].metadata, _.omit(metadata, 'objectType'));
220
+ }
221
+ else {
222
+ this.treeCache.nodesModified[nodeId] = {
223
+ root: activeNode && activeNode.root ? true : false,
224
+ objectType: metadata.objectType,
225
+ metadata: { ..._.omit(metadata, ['objectType']) },
226
+ ...(nodeId.includes('do_') ? { isNew: false } : { isNew: true })
227
+ };
228
+ this.treeCache.nodes.push(nodeId); // To track sequence of modifiation
229
+ }
230
+ }
231
+ clearTreeCache(node) {
232
+ if (node) {
233
+ delete this.treeCache.nodesModified[node.id];
234
+ _.remove(this.treeCache.nodes, val => val === node.id);
235
+ }
236
+ else {
237
+ this.treeCache.nodesModified = {};
238
+ this.treeCache.nodes = [];
239
+ }
240
+ }
241
+ setNodeTitle(title) {
242
+ if (!title) {
243
+ title = 'Untitled';
244
+ }
245
+ title = this.removeSpecialChars(title);
246
+ this.getActiveNode().applyPatch({ title }).done((a, b) => { });
247
+ $('span.fancytree-title').attr('style', 'width:11em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden');
248
+ }
249
+ removeSpecialChars(text) {
250
+ if (text) {
251
+ // tslint:disable-next-line:quotemark
252
+ const iChars = "!`~@#$^*+=[]\\\'{}|\"<>%/";
253
+ for (let i = 0; i < text.length; i++) {
254
+ if (iChars.indexOf(text.charAt(i)) !== -1) {
255
+ this.toasterService.error('Special character "' + text.charAt(i) + '" is not allowed');
256
+ }
257
+ }
258
+ // tslint:disable-next-line:max-line-length
259
+ text = text.replace(/[^\u0600-\u06FF\uFB50-\uFDFF\uFE70-\uFEFF\uFB50-\uFDFF\u0980-\u09FF\u0900-\u097F\u0D00-\u0D7F\u0A80-\u0AFF\u0C80-\u0CFF\u0B00-\u0B7F\u0A00-\u0A7F\u0B80-\u0BFF\u0C00-\u0C7F\w:&_\-.(\),\/\s]|[/]/g, '');
260
+ return text;
261
+ }
262
+ }
263
+ closePrevOpenedDropDown() {
264
+ this.getTreeObject().visit((node) => {
265
+ const nSpan = $(node.span);
266
+ const dropDownElement = $(nSpan[0]).find(`#contextMenuDropDown`);
267
+ dropDownElement.addClass('hidden');
268
+ dropDownElement.removeClass('visible');
269
+ });
270
+ }
271
+ reloadTree(nodes) {
272
+ this.getTreeObject().reload(nodes);
273
+ $('span.fancytree-title').attr('style', 'width:15em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden');
274
+ }
275
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService, deps: [{ token: i1.ToasterService }, { token: i2.HelperService }, { token: i3.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
276
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService, providedIn: 'root' }); }
277
+ }
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService, decorators: [{
279
+ type: Injectable,
280
+ args: [{
281
+ providedIn: 'root'
282
+ }]
283
+ }], ctorParameters: function () { return [{ type: i1.ToasterService }, { type: i2.HelperService }, { type: i3.ConfigService }]; } });
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sbGVjdGlvbi1lZGl0b3ItbGlicmFyeS9zcmMvbGliL3NlcnZpY2VzL3RyZWUvdHJlZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEtBQUssQ0FBQyxNQUFNLFdBQVcsQ0FBQztBQUkvQixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFLM0MsTUFBTSxPQUFPLFdBQVc7SUFhdEIsWUFBb0IsY0FBOEIsRUFBVSxhQUE0QixFQUFTLGFBQTRCO1FBQXpHLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFYN0gsY0FBUyxHQUFHO1lBQ1YsYUFBYSxFQUFFLEVBQUU7WUFDakIsS0FBSyxFQUFFLEVBQUU7U0FDVixDQUFDO1FBR0YseUNBQXlDO1FBQ2pDLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDM0MsZ0JBQVcsR0FBb0IsSUFBSSxDQUFDLFlBQVk7YUFDN0QsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFNEMsQ0FBQztJQUUzSCxVQUFVLENBQUMsWUFBMkI7UUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMs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QUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLHNFQUFzRSxDQUFDLENBQUM7SUFDbEgsQ0FBQzsrR0F0UlUsV0FBVzttSEFBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgJ2pxdWVyeS5mYW5jeXRyZWUnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5kZWNsYXJlIHZhciAkOiBhbnk7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBJRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lZGl0b3InO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICcuLi90b2FzdGVyL3RvYXN0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vaGVscGVyL2hlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2NvbmZpZy9jb25maWcuc2VydmljZSc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUcmVlU2VydmljZSB7XG4gIHB1YmxpYyBjb25maWc6IGFueTtcbiAgdHJlZUNhY2hlID0ge1xuICAgIG5vZGVzTW9kaWZpZWQ6IHt9LFxuICAgIG5vZGVzOiBbXVxuICB9O1xuICB0cmVlTmF0aXZlRWxlbWVudDogYW55O1xuICBvbWl0RmFsc2V5UHJvcHM6IGFueTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgcHJpdmF0ZSBfdHJlZVN0YXR1cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IHRyZWVTdGF0dXMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl90cmVlU3RhdHVzJFxuICAgIC5hc09ic2VydmFibGUoKS5waXBlKHNraXBXaGlsZShzdGF0dXMgPT4gc3RhdHVzID09PSB1bmRlZmluZWQgfHwgc3RhdHVzID09PSBudWxsKSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UsIHByaXZhdGUgaGVscGVyU2VydmljZTogSGVscGVyU2VydmljZSwgcHVibGljIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHsgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKGVkaXRvckNvbmZpZzogSUVkaXRvckNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnID0gZWRpdG9yQ29uZmlnLmNvbmZpZztcbiAgICB0aGlzLm9taXRGYWxzZXlQcm9wcyA9IF8uZ2V0KHRoaXMuY29uZmlnU2VydmljZS5lZGl0b3JDb25maWcsICdvbWl0RmFsc2V5UHJvcGVydGllcycpO1xuICB9XG5cbiAgbmV4dFRyZWVTdGF0dXMoc3RhdHVzKSB7XG4gICAgdGhpcy5fdHJlZVN0YXR1cyQubmV4dChzdGF0dXMpO1xuICB9XG5cbiAgc2V0VHJlZUVsZW1lbnQoZWwpIHtcbiAgICB0aGlzLnRyZWVOYXRpdmVFbGVtZW50ID0gZWw7XG4gIH1cblxuICB1cGRhdGVOb2RlKG1ldGFkYXRhLCBub2RlVG9CZVVwZGF0ZWQ/LCBwcmltYXJ5Q2F0ZWdvcnk/KSB7XG4gICAgdGhpcy5zZXROb2RlVGl0bGUobWV0YWRhdGEubmFtZSk7XG4gICAgdGhpcy51cGRhdGVUcmVlTm9kZU1ldGFkYXRhKG1ldGFkYXRhLCBub2RlVG9CZVVwZGF0ZWQsIHByaW1hcnlDYXRlZ29yeSk7XG4gIH1cblxuICB1cGRhdGVBcHBJY29uKGFwcEljb25VcmwpIHtcbiAgICBjb25zdCBhY3RpdmVOb2RlID0gdGhpcy5nZXRBY3RpdmVOb2RlKCk7XG4gICAgY29uc3Qgbm9kZUlkID0gYWN0aXZlTm9kZS5kYXRhLmlkO1xuICAgIGFjdGl2ZU5vZGUuZGF0YS5tZXRhZGF0YSA9IHsgLi4uYWN0aXZlTm9kZS5kYXRhLm1ldGFkYXRhLCBhcHBJY29uOiBhcHBJY29uVXJsIH07XG4gICAgdGhpcy5zZXRUcmVlQ2FjaGUobm9kZUlkLCB7IGFwcEljb246IGFwcEljb25VcmwgfSwgYWN0aXZlTm9kZS5kYXRhKTtcbiAgfVxuXG4gIHVwZGF0ZU1ldGFEYXRhUHJvcGVydHkoa2V5LCB2YWx1ZSkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldEZpcnN0Q2hpbGQoKTtcbiAgICBjb25zdCBub2RlSWQgPSBub2RlLmRhdGEuaWQ7XG4gICAgbm9kZS5kYXRhLm1ldGFkYXRhID0geyAuLi5ub2RlLmRhdGEubWV0YWRhdGEsIFtrZXldOiB2YWx1ZSB9O1xuICAgIHRoaXMuc2V0VHJlZUNhY2hlKG5vZGVJZCwgXy5tZXJnZSh7fSwgeyBba2V5XTogdmFsdWUgfSwgXy5waWNrKG5vZGUuZGF0YS5tZXRhZGF0YSwgWydvYmplY3RUeXBlJ10pKSk7XG4gIH1cblxuICB1cGRhdGVUcmVlTm9kZU1ldGFkYXRhKG5ld0RhdGE6IGFueSwgbm9kZVRvQmVVcGRhdGVkPzogYW55LCBwcmltYXJ5Q2F0ZWdvcnk/OiBhbnksIG9iamVjdFR5cGU/OiBhbnkpIHtcbiAgICBjb25zdCBhY3RpdmVOb2RlID0gIV8uaXNVbmRlZmluZWQobm9kZVRvQmVVcGRhdGVkKSA/IHRoaXMuZ2V0Tm9kZUJ5SWQobm9kZVRvQmVVcGRhdGVkKSA6IHRoaXMuZ2V0QWN0aXZlTm9kZSgpO1xuICAgIGNvbnN0IG5vZGVJZCA9IG5vZGVUb0JlVXBkYXRlZCB8fCBhY3RpdmVOb2RlLmRhdGEuaWQ7XG4gICAgaWYgKG5ld0RhdGEuaW5zdHJ1Y3Rpb25zKSB7XG4gICAgICBuZXdEYXRhLmluc3RydWN0aW9ucyA9IHsgZGVmYXVsdDogbmV3RGF0YS5pbnN0cnVjdGlvbnMgfTtcbiAgICB9XG4gICAgYWN0aXZlTm9kZS5kYXRhLm1ldGFkYXRhID0geyAuLi5hY3RpdmVOb2RlLmRhdGEubWV0YWRhdGEsIC4uLm5ld0RhdGEgfTtcbiAgICBhY3RpdmVOb2RlLnRpdGxlID0gbmV3RGF0YS5uYW1lO1xuICAgIG5ld0RhdGEgPSBfLm9taXRCeShuZXdEYXRhLCAodiwga2V5KSA9PiBfLmlzVW5kZWZpbmVkKHYpIHx8IF8uaXNOdWxsKHYpIHx8ICh2ID09PSAnJyAmJiBfLmluY2x1ZGVzKHRoaXMub21pdEZhbHNleVByb3BzLCBrZXkpKSk7XG4gICAgbmV3RGF0YSA9IF8ubWVyZ2Uoe30sIG5ld0RhdGEsIF8ucGljayhhY3RpdmVOb2RlLmRhdGEubWV0YWRhdGEsIFsnb2JqZWN0VHlwZScsICdjb250ZW50VHlwZScsICdwcmltYXJ5Q2F0ZWdvcnknXSkpO1xuICAgIGNvbnN0IGF0dHJpYnV0aW9ucyA9IG5ld0RhdGEuYXR0cmlidXRpb25zO1xuICAgIGlmIChhdHRyaWJ1dGlvbnMgJiYgXy5pc1N0cmluZyhhdHRyaWJ1dGlvbnMpKSB7XG4gICAgICBuZXdEYXRhLmF0dHJpYnV0aW9ucyA9IGF0dHJpYnV0aW9ucy5zcGxpdCgnLCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdEYXRhLmF0dHJpYnV0aW9ucyA9IFtdO1xuICAgIH1cbiAgICBjb25zdCB7IG1heFRpbWUsIHdhcm5pbmdUaW1lLCBjb3B5cmlnaHRZZWFyIH0gPSBuZXdEYXRhO1xuXG4gICAgaWYgKGNvcHlyaWdodFllYXIpIHtcbiAgICAgIG5ld0RhdGEuY29weXJpZ2h0WWVhciA9IF8udG9OdW1iZXIoY29weXJpZ2h0WWVhcik7XG4gICAgfVxuICAgIGlmIChvYmplY3RUeXBlKSB7XG4gICAgICBuZXdEYXRhLm9iamVjdFR5cGUgPSBvYmplY3RUeXBlO1xuICAgIH1cbiAgICBjb25zdCB0aW1lTGltaXRzOiBhbnkgPSB7fTtcbiAgICBpZiAobWF4VGltZSkge1xuICAgICAgdGltZUxpbWl0cy5tYXhUaW1lID0gdGhpcy5oZWxwZXJTZXJ2aWNlLmhtc1RvU2Vjb25kcyhtYXhUaW1lKTtcbiAgICB9XG4gICAgaWYgKHdhcm5pbmdUaW1lKSB7XG4gICAgICB0aW1lTGltaXRzLndhcm5pbmdUaW1lID0gdGhpcy5oZWxwZXJTZXJ2aWNlLmhtc1RvU2Vjb25kcyh3YXJuaW5nVGltZSk7XG4gICAgfVxuICAgIGlmICghXy5pc0VtcHR5KHRpbWVMaW1pdHMpKSB7XG4gICAgICBuZXdEYXRhLnRpbWVMaW1pdHMgPSB0aW1lTGltaXRzO1xuICAgIH1cbiAgICBkZWxldGUgbmV3RGF0YS5tYXhUaW1lO1xuICAgIGRlbGV0ZSBuZXdEYXRhLndhcm5pbmdUaW1lO1xuICAgIHRoaXMuc2V0VHJlZUNhY2hlKG5vZGVJZCwgbmV3RGF0YSwgYWN0aXZlTm9kZS5kYXRhKTtcbiAgfVxuXG4gIGFkZE5vZGUoY3JlYXRlVHlwZSkge1xuICAgIGxldCBuZXdOb2RlO1xuICAgIGNvbnN0IHNlbGVjdGVkTm9kZSA9IHRoaXMuZ2V0QWN0aXZlTm9kZSgpO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICBjb25zdCBub2RlQ29uZmlnID0gKGNyZWF0ZVR5cGUgPT09ICdzaWJsaW5nJykgPyB0aGlzLmNvbmZpZy5oaWVyYXJjaHlbYGxldmVsJHtzZWxlY3RlZE5vZGUuZ2V0TGV2ZWwoKSAtIDF9YF0gOiB0aGlzLmNvbmZpZy5oaWVyYXJjaHlbYGxldmVsJHtzZWxlY3RlZE5vZGUuZ2V0TGV2ZWwoKX1gXTtcbiAgICBjb25zdCB1bmlxdWVJZCA9IHV1aWR2NCgpO1xuICAgIGNvbnN0IG5vZGVUaXRsZSA9IF8uZ2V0KG5vZGVDb25maWcsICduYW1lJyk7XG4gICAgY29uc3Qgbm9kZTogYW55ID0ge1xuICAgICAgaWQ6IHVuaXF1ZUlkLFxuICAgICAgdGl0bGU6IG5vZGVUaXRsZSxcbiAgICAgIHRvb2x0aXA6IG5vZGVUaXRsZSxcbiAgICAgIC4uLihub2RlQ29uZmlnLmNvbnRlbnRUeXBlICYmIHsgY29udGVudFR5cGU6IG5vZGVDb25maWcuY29udGVudFR5cGUgfSksXG4gICAgICBwcmltYXJ5Q2F0ZWdvcnk6IF8uZ2V0KG5vZGVDb25maWcsICdwcmltYXJ5Q2F0ZWdvcnknKSxcbiAgICAgIG9iamVjdFR5cGU6IF8uZ2V0KHRoaXMuY29uZmlnLCAnb2JqZWN0VHlwZScpLFxuICAgICAgcm9vdDogZmFsc2UsXG4gICAgICBmb2xkZXI6IHRydWUsXG4gICAgICBpY29uOiBfLmdldChub2RlQ29uZmlnLCAnaWNvbkNsYXNzJyksXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBtaW1lVHlwZTogXy5nZXQobm9kZUNvbmZpZywgJ21pbWVUeXBlJyksXG4gICAgICAgIGNvZGU6IHVuaXF1ZUlkLFxuICAgICAgICBuYW1lOiBub2RlVGl0bGUsXG4gICAgICAgIHZpc2liaWxpdHk6ICdQYXJlbnQnXG4gICAgICB9XG4gICAgfTtcbiAgICBub2RlLm1ldGFkYXRhID0gXy5tZXJnZSh7fSwgbm9kZS5tZXRhZGF0YSwgXy5waWNrKG5vZGUsIFsnY29udGVudFR5cGUnLCAnb2JqZWN0VHlwZScsICdwcmltYXJ5Q2F0ZWdvcnknXSkpO1xuICAgIG5ld05vZGUgPSAoY3JlYXRlVHlwZSA9PT0gJ3NpYmxpbmcnKSA/IHNlbGVjdGVkTm9kZS5hcHBlbmRTaWJsaW5nKG5vZGUpIDogc2VsZWN0ZWROb2RlLmFkZENoaWxkcmVuKG5vZGUpO1xuICAgIHRoaXMuc2V0VHJlZUNhY2hlKG5vZGUuaWQsIG5vZGUubWV0YWRhdGEpO1xuICAgIG5ld05vZGUuc2V0QWN0aXZlKCk7XG4gICAgc2VsZWN0ZWROb2RlLnNldEV4cGFuZGVkKCk7XG4gICAgJCgnc3Bhbi5mYW5jeXRyZWUtdGl0bGUnKS5hdHRyKCdzdHlsZScsICd3aWR0aDoxMWVtO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbicpO1xuICAgICQodGhpcy50cmVlTmF0aXZlRWxlbWVudCkuc2Nyb2xsTGVmdCgkKCcuZmFuY3l0cmVlLWxhc3RzaWInKS53aWR0aCgpKTtcbiAgICAkKHRoaXMudHJlZU5hdGl2ZUVsZW1lbnQpLnNjcm9sbFRvcCgkKCcuZmFuY3l0cmVlLWxhc3RzaWInKS5oZWlnaHQoKSk7XG4gICAgdGhpcy5uZXh0VHJlZVN0YXR1cygnYWRkZWQnKTtcbiAgfVxuXG4gIHJlbW92ZU5vZGUoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWROb2RlID0gdGhpcy5nZXRBY3RpdmVOb2RlKCk7XG4gICAgY29uc3QgYWZ0ZXJEZWxldGVOb2RlID0gc2VsZWN0ZWROb2RlLmdldFByZXZTaWJsaW5nKCkgPyBzZWxlY3RlZE5vZGUuZ2V0UHJldlNpYmxpbmcoKSA6IHNlbGVjdGVkTm9kZS5nZXRQYXJlbnQoKTtcbiAgICB0aGlzLnNldEFjdGl2ZU5vZGUoYWZ0ZXJEZWxldGVOb2RlKTtcbiAgICBzZWxlY3RlZE5vZGUucmVtb3ZlKCk7XG4gICAgdGhpcy5jbGVhclRyZWVDYWNoZShzZWxlY3RlZE5vZGUuZGF0YSk7XG4gICAgJCgnc3Bhbi5mYW5jeXRyZWUtdGl0bGUnKS5hdHRyKCdzdHlsZScsICd3aWR0aDoxMWVtO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbicpO1xuICAgICQodGhpcy50cmVlTmF0aXZlRWxlbWVudCkuc2Nyb2xsTGVmdCgkKCcuZmFuY3l0cmVlLWxhc3RzaWInKS53aWR0aCgpKTtcbiAgICAkKHRoaXMudHJlZU5hdGl2ZUVsZW1lbnQpLnNjcm9sbFRvcCgkKCcuZmFuY3l0cmVlLWxhc3RzaWInKS5oZWlnaHQoKSk7XG4gICAgdGhpcy5uZXh0VHJlZVN0YXR1cygncmVtb3ZlZCcpO1xuICB9XG5cbiAgZ2V0VHJlZU9iamVjdCgpIHtcbiAgICByZXR1cm4gJCh0aGlzLnRyZWVOYXRpdmVFbGVtZW50KS5mYW5jeXRyZWUoJ2dldFRyZWUnKTtcbiAgfVxuXG4gIGdldEFjdGl2ZU5vZGUoKSB7XG4gICAgbGV0IGFjdGl2ZU5vZGU7XG4gICAgdHJ5IHtcbiAgICAgIGFjdGl2ZU5vZGUgPSB0aGlzLmdldFRyZWVPYmplY3QoKS5nZXRBY3RpdmVOb2RlKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBhY3RpdmVOb2RlID0ge307XG4gICAgfVxuICAgIHJldHVybiBhY3RpdmVOb2RlO1xuICB9XG5cbiAgZ2V0UGFyZW50KCkge1xuICAgIGNvbnN0IGFjdGl2ZU5vZGUgPSB0aGlzLmdldEFjdGl2ZU5vZGUoKTtcbiAgICByZXR1cm4gYWN0aXZlTm9kZT8uZ2V0UGFyZW50ID8gYWN0aXZlTm9kZS5nZXRQYXJlbnQoKSA6IG51bGw7XG4gIH1cblxuICBzZXRBY3RpdmVOb2RlKG5vZGU/KSB7XG4gICAgY29uc3Qgcm9vdEZpcnN0Q2hpbGROb2RlID0gdGhpcy5nZXRGaXJzdENoaWxkKCk7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIG5vZGUuc2V0QWN0aXZlKHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByb290Rmlyc3RDaGlsZE5vZGUuc2V0QWN0aXZlKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpcnN0Q2hpbGQoKSB7XG4gICAgbGV0IHRyZWVEYXRhO1xuICAgIHRyeSB7XG4gICAgICB0cmVlRGF0YSA9ICQodGhpcy50cmVlTmF0aXZlRWxlbWVudCkuZmFuY3l0cmVlKCdnZXRSb290Tm9kZScpLmdldEZpcnN0Q2hpbGQoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRyZWVEYXRhID0ge307XG4gICAgfVxuICAgIHJldHVybiB0cmVlRGF0YTtcbiAgfVxuXG4gIGZpbmROb2RlKG5vZGVJZCkge1xuICAgIHJldHVybiB0aGlzLmdldFRyZWVPYmplY3QoKS5maW5kRmlyc3QoKG5vZGUpID0+IG5vZGUuZGF0YS5pZCA9PT0gbm9kZUlkKTtcbiAgfVxuXG4gIGV4cGFuZE5vZGUobm9kZUlkKSB7XG4gICAgdGhpcy5maW5kTm9kZShub2RlSWQpLnNldEV4cGFuZGVkKHRydWUpO1xuICB9XG5cbiAgcmVwbGFjZU5vZGVJZChpZGVudGlmaWVycykge1xuICAgIHRoaXMuZ2V0VHJlZU9iamVjdCgpLnZpc2l0KChub2RlKSA9PiB7XG4gICAgICBpZiAoaWRlbnRpZmllcnNbbm9kZS5kYXRhLmlkXSkge1xuICAgICAgICBub2RlLmRhdGEuaWQgPSBpZGVudGlmaWVyc1tub2RlLmRhdGEuaWRdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Tm9kZUJ5SWQoaWQpIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICAgIGxldCBfbm9kZTogYW55O1xuICAgIHRoaXMuZ2V0VHJlZU9iamVjdCgpLnZpc2l0KChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5kYXRhLmlkID09PSBpZCkgeyBfbm9kZSA9IG5vZGU7IH1cbiAgICB9KTtcbiAgICByZXR1cm4gX25vZGU7XG4gIH1cblxuICAvLyBHZW5lcmF0ZSBhIGZsYXQgbGlzdCBvZiBub2RlIGNoaWxkcmVuIGFuZCBzdWIgY2hpbGRyZW5cbiAgZ2V0Q2hpbGRyZW4oKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBbXTtcbiAgICB0aGlzLmdldEFjdGl2ZU5vZGUoKS52aXNpdCgobm9kZSkgPT4ge1xuICAgICAgbm9kZXMucHVzaChub2RlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cblxuICBoaWdobGlnaHROb2RlKG5vZGVJZDogc3RyaW5nLCBhY3Rpb246IHN0cmluZykge1xuICAgIGNvbnN0IG5vZGVFbGVtID0gdGhpcy5nZXROb2RlQnlJZChub2RlSWQpO1xuICAgIGlmICghbm9kZUVsZW0pIHsgcmV0dXJuOyB9XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2FkZCcpIHtcbiAgICAgIG5vZGVFbGVtLnNwYW4uY2hpbGROb2Rlc1sxXS5jbGFzc0xpc3QuYWRkKCdoaWdobGlnaHROb2RlJyk7XG4gICAgICBub2RlRWxlbS5zcGFuLmNoaWxkTm9kZXNbMl0uY2xhc3NMaXN0LmFkZCgnaGlnaGxpZ2h0Tm9kZScpO1xuICAgIH0gZWxzZSBpZiAoYWN0aW9uID09PSAncmVtb3ZlJykge1xuICAgICAgbm9kZUVsZW0uc3Bhbi5jaGlsZE5vZGVzWzFdLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZ2hsaWdodE5vZGUnKTtcbiAgICAgIG5vZGVFbGVtLnNwYW4uY2hpbGROb2Rlc1syXS5jbGFzc0xpc3QucmVtb3ZlKCdoaWdobGlnaHROb2RlJyk7XG4gICAgfSBlbHNlIHsgfVxuICB9XG5cbiAgc2V0VHJlZUNhY2hlKG5vZGVJZCwgbWV0YWRhdGEsIGFjdGl2ZU5vZGU/KSB7XG4gICAgaWYgKHRoaXMudHJlZUNhY2hlLm5vZGVzTW9kaWZpZWRbbm9kZUlkXSkge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgdGhpcy50cmVlQ2FjaGUubm9kZXNNb2RpZmllZFtub2RlSWRdLm1ldGFkYXRhID0gXy5hc3NpZ24odGhpcy50cmVlQ2FjaGUubm9kZXNNb2RpZmllZFtub2RlSWRdLm1ldGFkYXRhLCBfLm9taXQobWV0YWRhdGEsICdvYmplY3RUeXBlJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyZWVDYWNoZS5ub2Rlc01vZGlmaWVkW25vZGVJZF0gPSB7XG4gICAgICAgIHJvb3Q6IGFjdGl2ZU5vZGUgJiYgYWN0aXZlTm9kZS5yb290ID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICBvYmplY3RUeXBlOiBtZXRhZGF0YS5vYmplY3RUeXBlLFxuICAgICAgICBtZXRhZGF0YTogeyAuLi5fLm9taXQobWV0YWRhdGEsIFsnb2JqZWN0VHlwZSddKSB9LFxuICAgICAgICAuLi4obm9kZUlkLmluY2x1ZGVzKCdkb18nKSA/IHsgaXNOZXc6IGZhbHNlIH0gOiB7IGlzTmV3OiB0cnVlIH0pXG4gICAgICB9O1xuICAgICAgdGhpcy50cmVlQ2FjaGUubm9kZXMucHVzaChub2RlSWQpOyAvLyBUbyB0cmFjayBzZXF1ZW5jZSBvZiBtb2RpZmlhdGlvblxuICAgIH1cbiAgfVxuXG4gIGNsZWFyVHJlZUNhY2hlKG5vZGU/KSB7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLnRyZWVDYWNoZS5ub2Rlc01vZGlmaWVkW25vZGUuaWRdO1xuICAgICAgXy5yZW1vdmUodGhpcy50cmVlQ2FjaGUubm9kZXMsIHZhbCA9PiB2YWwgPT09IG5vZGUuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyZWVDYWNoZS5ub2Rlc01vZGlmaWVkID0ge307XG4gICAgICB0aGlzLnRyZWVDYWNoZS5ub2RlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHNldE5vZGVUaXRsZSh0aXRsZSkge1xuICAgIGlmICghdGl0bGUpIHtcbiAgICAgIHRpdGxlID0gJ1VudGl0bGVkJztcbiAgICB9XG4gICAgdGl0bGUgPSB0aGlzLnJlbW92ZVNwZWNpYWxDaGFycyh0aXRsZSk7XG4gICAgdGhpcy5nZXRBY3RpdmVOb2RlKCkuYXBwbHlQYXRjaCh7IHRpdGxlIH0pLmRvbmUoKGEsIGIpID0+IHsgfSk7XG4gICAgJCgnc3Bhbi5mYW5jeXRyZWUtdGl0bGUnKS5hdHRyKCdzdHlsZScsICd3aWR0aDoxMWVtO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbicpO1xuICB9XG5cbiAgcmVtb3ZlU3BlY2lhbENoYXJzKHRleHQpIHtcbiAgICBpZiAodGV4dCkge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnF1b3RlbWFya1xuICAgICAgY29uc3QgaUNoYXJzID0gXCIhYH5AIyReKis9W11cXFxcXFwne318XFxcIjw+JS9cIjtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaUNoYXJzLmluZGV4T2YodGV4dC5jaGFyQXQoaSkpICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoJ1NwZWNpYWwgY2hhcmFjdGVyIFwiJyArIHRleHQuY2hhckF0KGkpICsgJ1wiIGlzIG5vdCBhbGxvd2VkJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoL1teXFx1MDYwMC1cXHUwNkZGXFx1RkI1MC1cXHVGREZGXFx1RkU3MC1cXHVGRUZGXFx1RkI1MC1cXHVGREZGXFx1MDk4MC1cXHUwOUZGXFx1MDkwMC1cXHUwOTdGXFx1MEQwMC1cXHUwRDdGXFx1MEE4MC1cXHUwQUZGXFx1MEM4MC1cXHUwQ0ZGXFx1MEIwMC1cXHUwQjdGXFx1MEEwMC1cXHUwQTdGXFx1MEI4MC1cXHUwQkZGXFx1MEMwMC1cXHUwQzdGXFx3OiZfXFwtLihcXCksXFwvXFxzXXxbL10vZywgJycpO1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VQcmV2T3BlbmVkRHJvcERvd24oKSB7XG4gICAgdGhpcy5nZXRUcmVlT2JqZWN0KCkudmlzaXQoKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG5TcGFuID0gJChub2RlLnNwYW4pO1xuICAgICAgY29uc3QgZHJvcERvd25FbGVtZW50ID0gJChuU3BhblswXSkuZmluZChgI2NvbnRleHRNZW51RHJvcERvd25gKTtcbiAgICAgIGRyb3BEb3duRWxlbWVudC5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICBkcm9wRG93bkVsZW1lbnQucmVtb3ZlQ2xhc3MoJ3Zpc2libGUnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbG9hZFRyZWUobm9kZXM6IGFueSkge1xuICAgIHRoaXMuZ2V0VHJlZU9iamVjdCgpLnJlbG9hZChub2Rlcyk7XG4gICAgJCgnc3Bhbi5mYW5jeXRyZWUtdGl0bGUnKS5hdHRyKCdzdHlsZScsICd3aWR0aDoxNWVtO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbicpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1zdW5iaXJkLXN1bmJpcmQtY29sbGVjdGlvbi1lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb2xsZWN0aW9uLWVkaXRvci1saWJyYXJ5L3NyYy9wcm9qZWN0LXN1bmJpcmQtc3VuYmlyZC1jb2xsZWN0aW9uLWVkaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,4 @@
1
+ export * from './lib/collection-editor-library.module';
2
+ export * from './lib/collection-editor-cursor.service';
3
+ export * from './lib/components/editor/editor.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbGxlY3Rpb24tZWRpdG9yLWxpYnJhcnkvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9uLWVkaXRvci1saWJyYXJ5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9uLWVkaXRvci1jdXJzb3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50JzsiXX0=