@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,191 @@
1
+ import { Component, EventEmitter, Output } from '@angular/core';
2
+ import * as _ from 'lodash-es';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/editor/editor.service";
5
+ import * as i2 from "../../services/tree/tree.service";
6
+ import * as i3 from "../../services/question/question.service";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "../header/header.component";
9
+ import * as i6 from "../plain-tree/plain-tree.component";
10
+ export class AssignPageNumberComponent {
11
+ constructor(editorService, treeService, questionService) {
12
+ this.editorService = editorService;
13
+ this.treeService = treeService;
14
+ this.questionService = questionService;
15
+ this.toolbarConfig = {};
16
+ this.pageId = 'pagination';
17
+ this.questions = [];
18
+ this.assignPageEmitter = new EventEmitter();
19
+ this.createArray = [];
20
+ this.pageNumArray = [];
21
+ this.numArray = [];
22
+ }
23
+ ngOnInit() {
24
+ this.toolbarConfig = this.editorService.getToolbarConfig();
25
+ this.toolbarConfig.title = 'Observation Form';
26
+ this.treeData = this.editorService.treeData;
27
+ this.createSequence(this.treeData);
28
+ this.treeEventListener({
29
+ identifier: _.get(this.treeData[0], 'children[0].id'),
30
+ criteriaName: _.get(this.treeData[0], 'children[0].title')
31
+ });
32
+ }
33
+ toolbarEventListener(event) {
34
+ switch (event.button) {
35
+ case 'backContent':
36
+ this.redirectToQuestionSet();
37
+ break;
38
+ }
39
+ }
40
+ redirectToQuestionSet() {
41
+ this.assignPageEmitter.emit({ status: false });
42
+ }
43
+ treeEventListener(event) {
44
+ this.createArray = [];
45
+ this.criteriaId = event?.identifier;
46
+ const data = this.treeService.getFirstChild();
47
+ const hierarchy = this.editorService.getHierarchyObj(data, '', event?.identifier);
48
+ this.questionService.getQuestionList(_.get(hierarchy[event?.identifier], 'children'), 'editorState')
49
+ .subscribe((response) => {
50
+ this.questions = [];
51
+ const questionsArray = _.get(response, 'result.questions');
52
+ questionsArray.forEach(element => {
53
+ this.questions.push({
54
+ question: element?.editorState?.question,
55
+ identifier: element?.identifier,
56
+ page_no: null,
57
+ });
58
+ });
59
+ this.setPageNumber(event);
60
+ }, (error) => {
61
+ console.log(error);
62
+ });
63
+ }
64
+ setPageNumber(event) {
65
+ this.pageNumArray = this.findSequenceCriteria().pages;
66
+ this.pageNumArray.forEach((entry, index) => {
67
+ if (!_.isEmpty(entry)) {
68
+ entry.forEach((identifier) => {
69
+ const getQuestion = this.questions.find((el) => el.identifier === identifier);
70
+ getQuestion.page_no = index + 1;
71
+ });
72
+ }
73
+ });
74
+ }
75
+ updateRenderingSequence() {
76
+ let newArray;
77
+ if (this.createArray.length === this.pageNumArray.length) {
78
+ this.createArray = this.pageNumArray;
79
+ }
80
+ else if (this.pageNumArray.length > this.createArray.length) {
81
+ const result = this.pageNumArray.slice(0);
82
+ newArray = result.splice.apply(result, [0, this.createArray.length].concat(this.createArray));
83
+ }
84
+ else {
85
+ newArray = [...this.pageNumArray, ...this.createArray.slice(this.pageNumArray.length)];
86
+ }
87
+ this.createArray = newArray ? newArray : this.pageNumArray;
88
+ }
89
+ onValueChange(event, question, index) {
90
+ if (+event === 0) {
91
+ this.createArrayBySubjects(index, question);
92
+ this.setNewArrayToCreateArray();
93
+ this.pageNumArray = this.findSequenceCriteria().pages;
94
+ this.updateRenderingSequence();
95
+ return true;
96
+ }
97
+ question.page_no = +event;
98
+ this.addArrayToPage();
99
+ this.pageNumArray = this.findSequenceCriteria().pages;
100
+ if (this.pageNumArray.length !== 0) {
101
+ this.setNewArrayToCreateArray();
102
+ this.updateRenderingSequence();
103
+ this.pageNumArray = [];
104
+ }
105
+ else {
106
+ this.setNewArrayToCreateArray();
107
+ }
108
+ _.forEach(this.rendering_sequence?.sequence, (data) => {
109
+ if (data.value === this.criteriaId) {
110
+ this.createArray.filter((arr, index1) => arr.some((e, index2) => {
111
+ if (e === question.identifier) {
112
+ this.createArray[index1].splice(index2, 1);
113
+ }
114
+ }));
115
+ this.createArray[Number(event) - 1].push(question.identifier);
116
+ data.pages = this.createArray;
117
+ }
118
+ });
119
+ }
120
+ setNewArrayToCreateArray() {
121
+ for (let i = 0; i < Math.max(...this.numArray); i++) {
122
+ if (!this.createArray[i]) {
123
+ this.createArray[i] = new Array();
124
+ }
125
+ }
126
+ }
127
+ createArrayBySubjects(index, question) {
128
+ const subjectObject = this.findSequenceCriteria();
129
+ if (subjectObject) {
130
+ const questionsIdArray = subjectObject.pages[question.page_no - 1];
131
+ const questionIndex = questionsIdArray.indexOf(question.identifier);
132
+ questionsIdArray.splice(questionIndex, 1);
133
+ }
134
+ this.questions[index].page_no = null;
135
+ this.addArrayToPage();
136
+ this.createArray = [];
137
+ }
138
+ addArrayToPage() {
139
+ this.numArray = [];
140
+ // tslint:disable-nevxt-line:no-shadowed-variable
141
+ _.forEach(this.questions, (data) => {
142
+ this.numArray.push(data.page_no);
143
+ });
144
+ this.createArray = [];
145
+ }
146
+ clearInput(event, question, index) {
147
+ this.createArrayBySubjects(index, question);
148
+ this.setNewArrayToCreateArray();
149
+ this.pageNumArray = this.findSequenceCriteria().pages;
150
+ this.updateRenderingSequence();
151
+ }
152
+ findSequenceCriteria() {
153
+ return _.find(this.rendering_sequence?.sequence, (data) => {
154
+ return data.value === this.criteriaId;
155
+ });
156
+ }
157
+ createSequence(data) {
158
+ this.recordedBy = _.get(this.treeService.getFirstChild(), 'data.metadata.recordedBy');
159
+ // tslint:disable-next-line:variable-name
160
+ const dataArray = [];
161
+ // tslint:disable-next-line:variable-name
162
+ this.rendering_sequence = {
163
+ name: this.recordedBy === 'Self' ? 'Criteria' : 'Ecm',
164
+ sequence: []
165
+ };
166
+ _.forEach(data, (child) => {
167
+ if (child.children) {
168
+ _.forEach(child.children, (seq) => {
169
+ dataArray.push(seq);
170
+ });
171
+ }
172
+ });
173
+ _.forEach(dataArray, (seq, i) => {
174
+ this.rendering_sequence.sequence.push({
175
+ value: seq?.id,
176
+ name: seq?.title,
177
+ pages: [],
178
+ index: i
179
+ });
180
+ });
181
+ }
182
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AssignPageNumberComponent, deps: [{ token: i1.EditorService }, { token: i2.TreeService }, { token: i3.QuestionService }], target: i0.ɵɵFactoryTarget.Component }); }
183
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AssignPageNumberComponent, selector: "lib-assign-page-number", outputs: { assignPageEmitter: "assignPageEmitter" }, ngImport: i0, template: "<div class=\"sb-editor-container mb-0\">\n <lib-header [labelConfigData]=\"toolbarConfig\" [pageId]=\"pageId\" (toolbarEmitter)=\"toolbarEventListener($event)\">\n </lib-header>\n <div class=\"add-to-library mb-0\">\n <div class=\"h-100vh sb-bg-white\">\n <div class=\"ui\">\n <div class=\"ui twelve column grid m-0\">\n <div class=\"three wide column p-0 overflow-y mb-40 h-100vh\">\n <lib-plain-tree class=\"sb-collectionTree-fancyTree sb-collectionTree-fancyTreelist sb-questionset-scroll\"\n [treeData]=\"treeData\" (treeEmitter)=\"treeEventListener($event)\">\n </lib-plain-tree>\n </div>\n <!-- Right Player Sections -->\n <div class=\"eight wide column bg-white pl-40 mb-10 w-73\">\n <table aria-describedby=\"pagination\">\n <thead>\n <tr>\n <th>Questions</th>\n <th class=\"right\">Page no</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let question of questions; let i=index\">\n <td innerHtml=\"{{question?.question}}\"></td>\n <td><i [ngStyle]=\"{'visibility:hidden':question?.page_no > 0 && question?.page_no}\" [ngClass]=\"{'close-button-dynamic':question?.page_no > 0 }\" class=\"close icon close-button\" (click)=\"clearInput($event.target.value, question, i)\"></i>\n <input type=\"number\" name=\"pageNo\" pattern=\"^[1-9][0-9]*$\" oninput=\"if(!this.value.match('^[1-9][0-9]*$'))this.value='';\"\n (input)=\"onValueChange($event.target.value,question, i)\" value=\"{{question?.page_no}}\" /></td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: ["table{font-family:arial,sans-serif;border-collapse:collapse;width:97%;border:1px solid #cccccc;margin:15px 25px 15px 15px}table thead tr{background-color:#ededed}table thead tr th{margin-right:86px}td,th{text-align:left;padding:15px}tr:nth-child(2n){background-color:#f3f7fa}tr{border:2px solid #cccccc}tr td input{float:right;width:14%;border-radius:6px;border-width:1px;height:42px;text-align:center;margin-right:10px}tr .right{float:right}h2{margin-left:15px}.close-button{opacity:0;float:right;margin-top:5px;margin-right:15px;color:#8b8080;font-size:20px}.close-button-dynamic{opacity:1;color:#8b8080;float:right;margin-top:5px;margin-right:15px;font-size:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i5.HeaderComponent, selector: "lib-header", inputs: ["pageId", "labelConfigData", "buttonLoaders", "showComment", "publishchecklist", "requestChange"], outputs: ["toolbarEmitter", "qualityParamEmitter"] }, { kind: "component", type: i6.PlainTreeComponent, selector: "lib-plain-tree", inputs: ["treeData"], outputs: ["treeEmitter"] }] }); }
184
+ }
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AssignPageNumberComponent, decorators: [{
186
+ type: Component,
187
+ args: [{ selector: 'lib-assign-page-number', template: "<div class=\"sb-editor-container mb-0\">\n <lib-header [labelConfigData]=\"toolbarConfig\" [pageId]=\"pageId\" (toolbarEmitter)=\"toolbarEventListener($event)\">\n </lib-header>\n <div class=\"add-to-library mb-0\">\n <div class=\"h-100vh sb-bg-white\">\n <div class=\"ui\">\n <div class=\"ui twelve column grid m-0\">\n <div class=\"three wide column p-0 overflow-y mb-40 h-100vh\">\n <lib-plain-tree class=\"sb-collectionTree-fancyTree sb-collectionTree-fancyTreelist sb-questionset-scroll\"\n [treeData]=\"treeData\" (treeEmitter)=\"treeEventListener($event)\">\n </lib-plain-tree>\n </div>\n <!-- Right Player Sections -->\n <div class=\"eight wide column bg-white pl-40 mb-10 w-73\">\n <table aria-describedby=\"pagination\">\n <thead>\n <tr>\n <th>Questions</th>\n <th class=\"right\">Page no</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let question of questions; let i=index\">\n <td innerHtml=\"{{question?.question}}\"></td>\n <td><i [ngStyle]=\"{'visibility:hidden':question?.page_no > 0 && question?.page_no}\" [ngClass]=\"{'close-button-dynamic':question?.page_no > 0 }\" class=\"close icon close-button\" (click)=\"clearInput($event.target.value, question, i)\"></i>\n <input type=\"number\" name=\"pageNo\" pattern=\"^[1-9][0-9]*$\" oninput=\"if(!this.value.match('^[1-9][0-9]*$'))this.value='';\"\n (input)=\"onValueChange($event.target.value,question, i)\" value=\"{{question?.page_no}}\" /></td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: ["table{font-family:arial,sans-serif;border-collapse:collapse;width:97%;border:1px solid #cccccc;margin:15px 25px 15px 15px}table thead tr{background-color:#ededed}table thead tr th{margin-right:86px}td,th{text-align:left;padding:15px}tr:nth-child(2n){background-color:#f3f7fa}tr{border:2px solid #cccccc}tr td input{float:right;width:14%;border-radius:6px;border-width:1px;height:42px;text-align:center;margin-right:10px}tr .right{float:right}h2{margin-left:15px}.close-button{opacity:0;float:right;margin-top:5px;margin-right:15px;color:#8b8080;font-size:20px}.close-button-dynamic{opacity:1;color:#8b8080;float:right;margin-top:5px;margin-right:15px;font-size:20px}\n"] }]
188
+ }], ctorParameters: function () { return [{ type: i1.EditorService }, { type: i2.TreeService }, { type: i3.QuestionService }]; }, propDecorators: { assignPageEmitter: [{
189
+ type: Output
190
+ }] } });
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLXBhZ2UtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbGxlY3Rpb24tZWRpdG9yLWxpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2Fzc2lnbi1wYWdlLW51bWJlci9hc3NpZ24tcGFnZS1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sbGVjdGlvbi1lZGl0b3ItbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvYXNzaWduLXBhZ2UtbnVtYmVyL2Fzc2lnbi1wYWdlLW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJeEUsT0FBTyxLQUFLLENBQUMsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7O0FBTy9CLE1BQU0sT0FBTyx5QkFBeUI7SUFlcEMsWUFBb0IsYUFBNEIsRUFBVSxXQUF3QixFQUM5RCxlQUFnQztRQURoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQzlELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQWRwRCxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixXQUFNLEdBQUcsWUFBWSxDQUFDO1FBRXRCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFHTCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBR3RELGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxFQUFFLENBQUM7SUFHMEMsQ0FBQztJQUV6RCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFD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TSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDckQsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO1FBQ0YsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUM3QixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNoQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDcEMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUNkLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSztnQkFDaEIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLENBQUM7YUFDVCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBL0xVLHlCQUF5QjttR0FBekIseUJBQXlCLG1IQ1h0QyxvMERBbUNNOzs0RkR4Qk8seUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3Qjs0SkFZeEIsaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWRpdG9yL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFF1ZXN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3F1ZXN0aW9uL3F1ZXN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJlZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmVlL3RyZWUuc2VydmljZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hc3NpZ24tcGFnZS1udW1iZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNzaWduLXBhZ2UtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXNzaWduLXBhZ2UtbnVtYmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXNzaWduUGFnZU51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgdG9vbGJhckNvbmZpZzogYW55ID0ge307XG4gIHBhZ2VJZCA9ICdwYWdpbmF0aW9uJztcbiAgdHJlZURhdGE6IGFueTtcbiAgcXVlc3Rpb25zID0gW107XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHJlbmRlcmluZ19zZXF1ZW5jZTogYW55O1xuICBAT3V0cHV0KCkgYXNzaWduUGFnZUVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcmVjb3JkZWRCeTogYW55O1xuICBjcml0ZXJpYUlkOiBhbnk7XG4gIGNyZWF0ZUFycmF5ID0gW107XG4gIHBhZ2VOdW1BcnJheSA9IFtdO1xuICBudW1BcnJheSA9IFtdO1xu4oCLXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSwgcHJpdmF0ZSB0cmVlU2VydmljZTogVHJlZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcXVlc3Rpb25TZXJ2aWNlOiBRdWVzdGlvblNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHRoaXMuZWRpdG9yU2VydmljZS5nZXRUb29sYmFyQ29uZmlnKCk7XG4gICAgdGhpcy50b29sYmFyQ29uZmlnLnRpdGxlID0gJ09ic2VydmF0aW9uIEZvcm0nO1xuICAgIHRoaXMudHJlZURhdGEgPSB0aGlzLmVkaXRvclNlcnZpY2UudHJlZURhdGE7XG4gICAgdGhpcy5jcmVhdGVTZXF1ZW5jZSh0aGlzLnRyZWVEYXRhKTtcbiAgICB0aGlzLnRyZWVFdmVudExpc3RlbmVyKHtcbiAgICAgIGlkZW50aWZpZXI6IF8uZ2V0KHRoaXMudHJlZURhdGFbMF0sICdjaGlsZHJlblswXS5pZCcpLFxuICAgICAgY3JpdGVyaWFOYW1lOiBfLmdldCh0aGlzLnRyZWVEYXRhWzBdLCAnY2hpbGRyZW5bMF0udGl0bGUnKVxuICAgIH0pO1xuICB9XG5cbiAgdG9vbGJhckV2ZW50TGlzdGVuZXIoZXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmJ1dHRvbikge1xuICAgICAgY2FzZSAnYmFja0NvbnRlbnQnOlxuICAgICAgICB0aGlzLnJlZGlyZWN0VG9RdWVzdGlvblNldCgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZWRpcmVjdFRvUXVlc3Rpb25TZXQoKSB7XG4gICAgICB0aGlzLmFzc2lnblBhZ2VFbWl0dGVyLmVtaXQoeyBzdGF0dXM6IGZhbHNlIH0pO1xuICB9XG5cbiAgdHJlZUV2ZW50TGlzdGVuZXIoZXZlbnQpIHtcbiAgICB0aGlzLmNyZWF0ZUFycmF5ID0gW107XG4gICAgdGhpcy5jcml0ZXJpYUlkID0gZXZlbnQ/LmlkZW50aWZpZXI7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMudHJlZVNlcnZpY2UuZ2V0Rmlyc3RDaGlsZCgpO1xuICAgIGNvbnN0IGhpZXJhcmNoeSA9IHRoaXMuZWRpdG9yU2VydmljZS5nZXRIaWVyYXJjaHlPYmooZGF0YSwgJycsIGV2ZW50Py5pZGVudGlmaWVyKTtcbiAgICB0aGlzLnF1ZXN0aW9uU2VydmljZS5nZXRRdWVzdGlvbkxpc3QoXy5nZXQoaGllcmFyY2h5W2V2ZW50Py5pZGVudGlmaWVyXSwgJ2NoaWxkcmVuJyksICdlZGl0b3JTdGF0ZScpXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucXVlc3Rpb25zID0gW107XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uc0FycmF5ID0gXy5nZXQocmVzcG9uc2UsICdyZXN1bHQucXVlc3Rpb25zJyk7XG4gICAgICAgIHF1ZXN0aW9uc0FycmF5LmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgdGhpcy5xdWVzdGlvbnMucHVzaCh7XG4gICAgICAgICAgICBxdWVzdGlvbjogZWxlbWVudD8uZWRpdG9yU3RhdGU/LnF1ZXN0aW9uLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogZWxlbWVudD8uaWRlbnRpZmllcixcbiAgICAgICAgICAgIHBhZ2Vfbm86IG51bGwsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNldFBhZ2VOdW1iZXIoZXZlbnQpO1xuICAgICAgfSwgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfSk7XG4gIH1cbuKAi1xuICBzZXRQYWdlTnVtYmVyKGV2ZW50KSB7XG4gICAgdGhpcy5wYWdlTnVtQXJyYXkgPSB0aGlzLmZpbmRTZXF1ZW5jZUNyaXRlcmlhKCkucGFnZXM7XG4gICAgdGhpcy5wYWdlTnVtQXJyYXkuZm9yRWFjaCgoZW50cnksIGluZGV4KSA9PiB7XG4gICAgICBpZiAoIV8uaXNFbXB0eShlbnRyeSkpIHtcbiAgICAgICAgZW50cnkuZm9yRWFjaCgoaWRlbnRpZmllcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGdldFF1ZXN0aW9uID0gdGhpcy5xdWVzdGlvbnMuZmluZCgoZWwpID0+IGVsLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpO1xuICAgICAgICAgIGdldFF1ZXN0aW9uLnBhZ2Vfbm8gPSBpbmRleCArIDE7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG7igItcbnVwZGF0ZVJlbmRlcmluZ1NlcXVlbmNlKCkge1xuICAgIGxldCBuZXdBcnJheTtcbiAgICBpZiAodGhpcy5jcmVhdGVBcnJheS5sZW5ndGggPT09IHRoaXMucGFnZU51bUFycmF5Lmxlbmd0aCkge1xuICAgICAgdGhpcy5jcmVhdGVBcnJheSA9IHRoaXMucGFnZU51bUFycmF5O1xuICAgIH0gZWxzZSBpZiAodGhpcy5wYWdlTnVtQXJyYXkubGVuZ3RoID4gdGhpcy5jcmVhdGVBcnJheS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMucGFnZU51bUFycmF5LnNsaWNlKDApO1xuICAgICAgbmV3QXJyYXkgPSByZXN1bHQuc3BsaWNlLmFwcGx5KHJlc3VsdCwgWzAsIHRoaXMuY3JlYXRlQXJyYXkubGVuZ3RoXS5jb25jYXQodGhpcy5jcmVhdGVBcnJheSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdBcnJheSA9IFsuLi50aGlzLnBhZ2VOdW1BcnJheSwgLi4udGhpcy5jcmVhdGVBcnJheS5zbGljZSh0aGlzLnBhZ2VOdW1BcnJheS5sZW5ndGgpXTtcbiAgICB9XG4gICAgdGhpcy5jcmVhdGVBcnJheSA9IG5ld0FycmF5ID8gbmV3QXJyYXkgOiB0aGlzLnBhZ2VOdW1BcnJheTtcbiAgfVxu4oCLXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQsIHF1ZXN0aW9uLCBpbmRleCkge1xuICAgIGlmICgrZXZlbnQgPT09IDApIHtcbiAgICAgIHRoaXMuY3JlYXRlQXJyYXlCeVN1YmplY3RzKGluZGV4LCBxdWVzdGlvbik7XG4gICAgICB0aGlzLnNldE5ld0FycmF5VG9DcmVhdGVBcnJheSgpO1xuICAgICAgdGhpcy5wYWdlTnVtQXJyYXkgPSB0aGlzLmZpbmRTZXF1ZW5jZUNyaXRlcmlhKCkucGFnZXM7XG4gICAgICB0aGlzLnVwZGF0ZVJlbmRlcmluZ1NlcXVlbmNlKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG7igItcbiAgICBxdWVzdGlvbi5wYWdlX25vID0gK2V2ZW50O1xuICAgIHRoaXMuYWRkQXJyYXlUb1BhZ2UoKTtcbiAgICB0aGlzLnBhZ2VOdW1BcnJheSA9IHRoaXMuZmluZFNlcXVlbmNlQ3JpdGVyaWEoKS5wYWdlcztcbuKAi1xuICAgIGlmICh0aGlzLnBhZ2VOdW1BcnJheS5sZW5ndGggIT09IDApIHtcbiAgICAgIHRoaXMuc2V0TmV3QXJyYXlUb0NyZWF0ZUFycmF5KCk7XG4gICAgICB0aGlzLnVwZGF0ZVJlbmRlcmluZ1NlcXVlbmNlKCk7XG4gICAgICB0aGlzLnBhZ2VOdW1BcnJheSA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldE5ld0FycmF5VG9DcmVhdGVBcnJheSgpO1xuICAgIH1cbuKAi1xuICAgIF8uZm9yRWFjaCh0aGlzLnJlbmRlcmluZ19zZXF1ZW5jZT8uc2VxdWVuY2UsIChkYXRhKSA9PiB7XG4gICAgICBpZiAoZGF0YS52YWx1ZSA9PT0gdGhpcy5jcml0ZXJpYUlkKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlQXJyYXkuZmlsdGVyKChhcnIsIGluZGV4MSkgPT4gYXJyLnNvbWUoKGUsIGluZGV4MikgPT4ge1xuICAgICAgICAgIGlmIChlID09PSBxdWVzdGlvbi5pZGVudGlmaWVyKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFycmF5W2luZGV4MV0uc3BsaWNlKGluZGV4MiwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMuY3JlYXRlQXJyYXlbTnVtYmVyKGV2ZW50KSAtIDFdLnB1c2gocXVlc3Rpb24uaWRlbnRpZmllcik7XG4gICAgICAgIGRhdGEucGFnZXMgPSB0aGlzLmNyZWF0ZUFycmF5O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0TmV3QXJyYXlUb0NyZWF0ZUFycmF5KCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTWF0aC5tYXgoLi4udGhpcy5udW1BcnJheSk7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmNyZWF0ZUFycmF5W2ldKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlQXJyYXlbaV0gPSBuZXcgQXJyYXkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjcmVhdGVBcnJheUJ5U3ViamVjdHMoaW5kZXgsIHF1ZXN0aW9uKSB7XG4gICAgY29uc3Qgc3ViamVjdE9iamVjdCA9IHRoaXMuZmluZFNlcXVlbmNlQ3JpdGVyaWEoKTtcbiAgICDigItcbiAgICBpZiAoc3ViamVjdE9iamVjdCkge1xuICAgICAgY29uc3QgcXVlc3Rpb25zSWRBcnJheSA9IHN1YmplY3RPYmplY3QucGFnZXNbcXVlc3Rpb24ucGFnZV9ubyAtIDFdO1xuICAgICAgY29uc3QgcXVlc3Rpb25JbmRleCA9IHF1ZXN0aW9uc0lkQXJyYXkuaW5kZXhPZihxdWVzdGlvbi5pZGVudGlmaWVyKTtcbiAgICAgIHF1ZXN0aW9uc0lkQXJyYXkuc3BsaWNlKHF1ZXN0aW9uSW5kZXgsIDEpO1xuICAgIH1cbiAgICB0aGlzLnF1ZXN0aW9uc1tpbmRleF0ucGFnZV9ubyA9IG51bGw7XG4gICAgdGhpcy5hZGRBcnJheVRvUGFnZSgpO1xuICAgIHRoaXMuY3JlYXRlQXJyYXkgPSBbXTtcblxuICB9XG5cbiAgYWRkQXJyYXlUb1BhZ2UoKSB7XG4gICAgdGhpcy5udW1BcnJheSA9IFtdO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5ldnh0LWxpbmU6bm8tc2hhZG93ZWQtdmFyaWFibGVcbiAgICBfLmZvckVhY2godGhpcy5xdWVzdGlvbnMsIChkYXRhKSA9PiB7XG4gICAgICB0aGlzLm51bUFycmF5LnB1c2goZGF0YS5wYWdlX25vKTtcbiAgICB9KTtcbuKAi1xuICAgIHRoaXMuY3JlYXRlQXJyYXkgPSBbXTtcbiAgfVxuXG4gIGNsZWFySW5wdXQoZXZlbnQsIHF1ZXN0aW9uLCBpbmRleCkge1xuICAgIHRoaXMuY3JlYXRlQXJyYXlCeVN1YmplY3RzKGluZGV4LCBxdWVzdGlvbik7XG4gICAgdGhpcy5zZXROZXdBcnJheVRvQ3JlYXRlQXJyYXkoKTtcbiAgICB0aGlzLnBhZ2VOdW1BcnJheSA9IHRoaXMuZmluZFNlcXVlbmNlQ3JpdGVyaWEoKS5wYWdlcztcbiAgICB0aGlzLnVwZGF0ZVJlbmRlcmluZ1NlcXVlbmNlKCk7XG4gIH1cblxuICBmaW5kU2VxdWVuY2VDcml0ZXJpYSgpIHtcbiAgICByZXR1cm4gXy5maW5kKHRoaXMucmVuZGVyaW5nX3NlcXVlbmNlPy5zZXF1ZW5jZSwgKGRhdGEpID0+IHtcbiAgICAgIHJldHVybiBkYXRhLnZhbHVlID09PSB0aGlzLmNyaXRlcmlhSWQ7XG4gICAgfSk7XG4gIH1cbuKAi1xuICBjcmVhdGVTZXF1ZW5jZShkYXRhKSB7XG4gICAgdGhpcy5yZWNvcmRlZEJ5ID0gXy5nZXQodGhpcy50cmVlU2VydmljZS5nZXRGaXJzdENoaWxkKCksICdkYXRhLm1ldGFkYXRhLnJlY29yZGVkQnknKTtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICAgIGNvbnN0IGRhdGFBcnJheSA9IFtdO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gICAgdGhpcy5yZW5kZXJpbmdfc2VxdWVuY2UgPSB7XG4gICAgICBuYW1lOiB0aGlzLnJlY29yZGVkQnkgPT09ICdTZWxmJyA/ICdDcml0ZXJpYScgOiAnRWNtJyxcbiAgICAgIHNlcXVlbmNlOiBbXVxuICAgIH07XG4gICAgXy5mb3JFYWNoKGRhdGEsIChjaGlsZDogYW55KSA9PiB7XG4gICAgICBpZiAoY2hpbGQuY2hpbGRyZW4pIHtcbiAgICAgICAgXy5mb3JFYWNoKGNoaWxkLmNoaWxkcmVuLCAoc2VxKSA9PiB7XG4gICAgICAgICAgZGF0YUFycmF5LnB1c2goc2VxKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXy5mb3JFYWNoKGRhdGFBcnJheSwgKHNlcSwgaSkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJpbmdfc2VxdWVuY2Uuc2VxdWVuY2UucHVzaCh7XG4gICAgICAgIHZhbHVlOiBzZXE/LmlkLFxuICAgICAgICBuYW1lOiBzZXE/LnRpdGxlLFxuICAgICAgICBwYWdlczogW10sXG4gICAgICAgIGluZGV4OiBpXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNiLWVkaXRvci1jb250YWluZXIgbWItMFwiPlxuICA8bGliLWhlYWRlciBbbGFiZWxDb25maWdEYXRhXT1cInRvb2xiYXJDb25maWdcIiBbcGFnZUlkXT1cInBhZ2VJZFwiICh0b29sYmFyRW1pdHRlcik9XCJ0b29sYmFyRXZlbnRMaXN0ZW5lcigkZXZlbnQpXCI+XG4gIDwvbGliLWhlYWRlcj5cbiAgPGRpdiBjbGFzcz1cImFkZC10by1saWJyYXJ5IG1iLTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaC0xMDB2aCBzYi1iZy13aGl0ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInVpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aSB0d2VsdmUgY29sdW1uIGdyaWQgbS0wXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRocmVlIHdpZGUgY29sdW1uIHAtMCBvdmVyZmxvdy15ICBtYi00MCBoLTEwMHZoXCI+XG4gICAgICAgICAgICA8bGliLXBsYWluLXRyZWUgY2xhc3M9XCJzYi1jb2xsZWN0aW9uVHJlZS1mYW5jeVRyZWUgc2ItY29sbGVjdGlvblRyZWUtZmFuY3lUcmVlbGlzdCBzYi1xdWVzdGlvbnNldC1zY3JvbGxcIlxuICAgICAgICAgICAgICBbdHJlZURhdGFdPVwidHJlZURhdGFcIiAodHJlZUVtaXR0ZXIpPVwidHJlZUV2ZW50TGlzdGVuZXIoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9saWItcGxhaW4tdHJlZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIFJpZ2h0IFBsYXllciBTZWN0aW9ucyAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWlnaHQgd2lkZSBjb2x1bW4gYmctd2hpdGUgcGwtNDAgbWItMTAgdy03M1wiPlxuICAgICAgICAgICAgPHRhYmxlIGFyaWEtZGVzY3JpYmVkYnk9XCJwYWdpbmF0aW9uXCI+XG4gICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICA8dGg+UXVlc3Rpb25zPC90aD5cbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInJpZ2h0XCI+UGFnZSBubzwvdGg+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgcXVlc3Rpb25zOyBsZXQgaT1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgPHRkIGlubmVySHRtbD1cInt7cXVlc3Rpb24/LnF1ZXN0aW9ufX1cIj48L3RkPlxuICAgICAgICAgICAgICAgICAgPHRkPjxpIFtuZ1N0eWxlXT1cInsndmlzaWJpbGl0eTpoaWRkZW4nOnF1ZXN0aW9uPy5wYWdlX25vID4gMCAmJiBxdWVzdGlvbj8ucGFnZV9ub31cIiBbbmdDbGFzc109XCJ7J2Nsb3NlLWJ1dHRvbi1keW5hbWljJzpxdWVzdGlvbj8ucGFnZV9ubyA+IDAgfVwiIGNsYXNzPVwiY2xvc2UgaWNvbiBjbG9zZS1idXR0b25cIiAoY2xpY2spPVwiY2xlYXJJbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlLCBxdWVzdGlvbiwgaSlcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgbmFtZT1cInBhZ2VOb1wiIHBhdHRlcm49XCJeWzEtOV1bMC05XSokXCIgb25pbnB1dD1cImlmKCF0aGlzLnZhbHVlLm1hdGNoKCdeWzEtOV1bMC05XSokJykpdGhpcy52YWx1ZT0nJztcIlxuICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUscXVlc3Rpb24sIGkpXCIgdmFsdWU9XCJ7e3F1ZXN0aW9uPy5wYWdlX25vfX1cIiAgLz48L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==