@deeksha2309/sunbird-collection-editor 8.0.7 → 8.0.8
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.
- package/deeksha2309-sunbird-collection-editor.d.ts.map +1 -0
- package/esm2022/deeksha2309-sunbird-collection-editor.mjs +5 -0
- package/esm2022/lib/collection-editor-library.module.mjs +30 -6
- package/esm2022/lib/components/answer/answer.component.mjs +6 -3
- package/esm2022/lib/components/app-loader/app-loader.component.mjs +30 -0
- package/esm2022/lib/components/asset-browser/asset-browser.component.mjs +30 -12
- package/esm2022/lib/components/assign-page-number/assign-page-number.component.mjs +1 -1
- package/esm2022/lib/components/bulk-upload/bulk-upload.component.mjs +447 -0
- package/esm2022/lib/components/ckeditor-tool/ckeditor-tool.component.mjs +30 -12
- package/esm2022/lib/components/collection-icon/collection-icon.component.mjs +3 -3
- package/esm2022/lib/components/csv-upload/csv-upload.component.mjs +2 -2
- package/esm2022/lib/components/editor/editor.component.mjs +143 -64
- package/esm2022/lib/components/fancy-tree/fancy-tree.component.mjs +91 -9
- package/esm2022/lib/components/header/header.component.mjs +27 -9
- package/esm2022/lib/components/library/library.component.mjs +4 -4
- package/esm2022/lib/components/library-list/library-list.component.mjs +4 -4
- package/esm2022/lib/components/library-player/library-player.component.mjs +4 -4
- package/esm2022/lib/components/meta-form/meta-form.component.mjs +10 -18
- package/esm2022/lib/components/options/options.component.mjs +40 -27
- package/esm2022/lib/components/progress-status/progress-status.component.mjs +1 -1
- package/esm2022/lib/components/publish-checklist/publish-checklist.component.mjs +6 -3
- package/esm2022/lib/components/question/question.component.mjs +185 -77
- package/esm2022/lib/components/question-option-sub-menu/question-option-sub-menu.component.mjs +36 -0
- package/esm2022/lib/components/quml-player/quml-player.component.mjs +2 -2
- package/esm2022/lib/components/qumlplayer-page/qumlplayer-page.component.mjs +3 -3
- package/esm2022/lib/components/relational-metadata/relational-metadata.component.mjs +80 -0
- package/esm2022/lib/components/resource-reorder/resource-reorder.component.mjs +3 -3
- package/esm2022/lib/components/slider/slider.component.mjs +46 -0
- package/esm2022/lib/components/template/template.component.mjs +3 -3
- package/esm2022/lib/components/translations/translations.component.mjs +132 -0
- package/esm2022/lib/directives/date-format/date-format.pipe.mjs +34 -0
- package/esm2022/lib/interfaces/CreationContext.mjs +2 -0
- package/esm2022/lib/interfaces/editor.mjs +1 -1
- package/esm2022/lib/interfaces/loader.mjs +2 -0
- package/esm2022/lib/pipes/interpolate.pipe.mjs +17 -0
- package/esm2022/lib/pipes/sanitize-html.pipe.mjs +6 -8
- package/esm2022/lib/services/bulk-job/bulk-job.service.mjs +67 -0
- package/esm2022/lib/services/config/category.config.json +1 -0
- package/esm2022/lib/services/config/editor.config.json +29 -2
- package/esm2022/lib/services/config/label.config.json +16 -3
- package/esm2022/lib/services/config/player.config.json +3 -0
- package/esm2022/lib/services/config/url.config.json +17 -1
- package/esm2022/lib/services/editor/editor.service.mjs +64 -26
- package/esm2022/lib/services/question/question.service.mjs +27 -35
- package/esm2022/lib/services/tree/tree.service.mjs +20 -5
- package/fesm2022/{project-sunbird-sunbird-collection-editor.mjs → deeksha2309-sunbird-collection-editor.mjs} +1779 -483
- package/fesm2022/deeksha2309-sunbird-collection-editor.mjs.map +1 -0
- package/index.d.ts +2 -2
- package/lib/collection-editor-library.module.d.ts +51 -43
- package/lib/collection-editor-library.module.d.ts.map +1 -1
- package/lib/components/answer/answer.component.d.ts +2 -1
- package/lib/components/answer/answer.component.d.ts.map +1 -1
- package/lib/components/app-loader/app-loader.component.d.ts +18 -0
- package/lib/components/app-loader/app-loader.component.d.ts.map +1 -0
- package/lib/components/asset-browser/asset-browser.component.d.ts.map +1 -1
- package/lib/components/bulk-upload/bulk-upload.component.d.ts +71 -0
- package/lib/components/bulk-upload/bulk-upload.component.d.ts.map +1 -0
- package/lib/components/ckeditor-tool/ckeditor-tool.component.d.ts +1 -1
- package/lib/components/ckeditor-tool/ckeditor-tool.component.d.ts.map +1 -1
- package/lib/components/editor/editor.component.d.ts +11 -7
- package/lib/components/editor/editor.component.d.ts.map +1 -1
- package/lib/components/fancy-tree/fancy-tree.component.d.ts +11 -3
- package/lib/components/fancy-tree/fancy-tree.component.d.ts.map +1 -1
- package/lib/components/header/header.component.d.ts +6 -2
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/library/library.component.d.ts +1 -1
- package/lib/components/library/library.component.d.ts.map +1 -1
- package/lib/components/meta-form/meta-form.component.d.ts +3 -4
- package/lib/components/meta-form/meta-form.component.d.ts.map +1 -1
- package/lib/components/options/options.component.d.ts +15 -7
- package/lib/components/options/options.component.d.ts.map +1 -1
- package/lib/components/publish-checklist/publish-checklist.component.d.ts +2 -1
- package/lib/components/publish-checklist/publish-checklist.component.d.ts.map +1 -1
- package/lib/components/question/question.component.d.ts +21 -28
- package/lib/components/question/question.component.d.ts.map +1 -1
- package/lib/components/question-option-sub-menu/question-option-sub-menu.component.d.ts +27 -0
- package/lib/components/question-option-sub-menu/question-option-sub-menu.component.d.ts.map +1 -0
- package/lib/components/relational-metadata/relational-metadata.component.d.ts +25 -0
- package/lib/components/relational-metadata/relational-metadata.component.d.ts.map +1 -0
- package/lib/components/slider/slider.component.d.ts +25 -0
- package/lib/components/slider/slider.component.d.ts.map +1 -0
- package/lib/components/translations/translations.component.d.ts +70 -0
- package/lib/components/translations/translations.component.d.ts.map +1 -0
- package/lib/directives/date-format/date-format.pipe.d.ts +20 -0
- package/lib/directives/date-format/date-format.pipe.d.ts.map +1 -0
- package/lib/interfaces/CreationContext.d.ts +11 -0
- package/lib/interfaces/CreationContext.d.ts.map +1 -0
- package/lib/interfaces/editor.d.ts +10 -5
- package/lib/interfaces/editor.d.ts.map +1 -1
- package/lib/interfaces/loader.d.ts +11 -0
- package/lib/interfaces/loader.d.ts.map +1 -0
- package/lib/pipes/interpolate.pipe.d.ts +8 -0
- package/lib/pipes/interpolate.pipe.d.ts.map +1 -0
- package/lib/pipes/sanitize-html.pipe.d.ts +4 -4
- package/lib/pipes/sanitize-html.pipe.d.ts.map +1 -1
- package/lib/services/bulk-job/bulk-job.service.d.ts +17 -0
- package/lib/services/bulk-job/bulk-job.service.d.ts.map +1 -0
- package/lib/services/editor/editor.service.d.ts +7 -4
- package/lib/services/editor/editor.service.d.ts.map +1 -1
- package/lib/services/question/question.service.d.ts +2 -2
- package/lib/services/question/question.service.d.ts.map +1 -1
- package/lib/services/tree/tree.service.d.ts +3 -1
- package/lib/services/tree/tree.service.d.ts.map +1 -1
- package/package.json +5 -5
- package/esm2022/project-sunbird-sunbird-collection-editor.mjs +0 -5
- package/fesm2022/project-sunbird-sunbird-collection-editor.mjs.map +0 -1
- package/project-sunbird-sunbird-collection-editor.d.ts.map +0 -1
|
@@ -3,29 +3,39 @@ import * as _ from 'lodash-es';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../services/telemetry/telemetry.service";
|
|
5
5
|
import * as i2 from "../../services/config/config.service";
|
|
6
|
-
import * as i3 from "
|
|
7
|
-
import * as i4 from "
|
|
8
|
-
import * as i5 from "@
|
|
9
|
-
import * as i6 from "
|
|
10
|
-
import * as i7 from "
|
|
11
|
-
import * as i8 from "
|
|
6
|
+
import * as i3 from "../../services/tree/tree.service";
|
|
7
|
+
import * as i4 from "../../services/editor/editor.service";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
import * as i6 from "@angular/forms";
|
|
10
|
+
import * as i7 from "@project-sunbird/ng2-semantic-ui";
|
|
11
|
+
import * as i8 from "../ckeditor-tool/ckeditor-tool.component";
|
|
12
|
+
import * as i9 from "../../directives/telemetry-interact/telemetry-interact.directive";
|
|
13
|
+
import * as i10 from "../question-option-sub-menu/question-option-sub-menu.component";
|
|
14
|
+
import * as i11 from "../../pipes/sanitize-html.pipe";
|
|
12
15
|
export class OptionsComponent {
|
|
13
|
-
constructor(telemetryService, configService) {
|
|
16
|
+
constructor(telemetryService, configService, treeService, editorService) {
|
|
14
17
|
this.telemetryService = telemetryService;
|
|
15
18
|
this.configService = configService;
|
|
16
|
-
this.
|
|
19
|
+
this.treeService = treeService;
|
|
20
|
+
this.editorService = editorService;
|
|
21
|
+
this.mapping = [];
|
|
17
22
|
this.editorDataOutput = new EventEmitter();
|
|
18
23
|
this.setCharacterLimit = 160;
|
|
19
24
|
this.setImageLimit = 1;
|
|
20
25
|
this.templateType = 'mcq-vertical';
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
26
|
+
this.hints = [];
|
|
27
|
+
this.showSubMenu = false;
|
|
23
28
|
}
|
|
24
29
|
ngOnInit() {
|
|
25
30
|
if (!_.isUndefined(this.editorState.templateId)) {
|
|
26
31
|
this.templateType = this.editorState.templateId;
|
|
27
32
|
}
|
|
28
33
|
this.editorDataHandler();
|
|
34
|
+
this.mapping = _.get(this.editorState, 'responseDeclaration.response1.mapping') || [];
|
|
35
|
+
if (!_.isUndefined(this.editorService.editorConfig.config.renderTaxonomy)) {
|
|
36
|
+
this.parentMeta = this.treeService.getFirstChild().data.metadata;
|
|
37
|
+
this.showSubMenu = true;
|
|
38
|
+
}
|
|
29
39
|
}
|
|
30
40
|
editorDataHandler(event) {
|
|
31
41
|
const body = this.prepareMcqBody(this.editorState);
|
|
@@ -46,15 +56,15 @@ export class OptionsComponent {
|
|
|
46
56
|
});
|
|
47
57
|
metadata = {
|
|
48
58
|
templateId: this.templateType,
|
|
49
|
-
name: 'Multiple Choice Question',
|
|
59
|
+
name: this.questionPrimaryCategory || 'Multiple Choice Question',
|
|
50
60
|
responseDeclaration: this.getResponseDeclaration(editorState),
|
|
51
61
|
interactionTypes: ['choice'],
|
|
52
62
|
interactions: this.getInteractions(editorState.options),
|
|
53
63
|
editorState: {
|
|
54
|
-
options
|
|
64
|
+
options,
|
|
55
65
|
},
|
|
56
66
|
qType: 'MCQ',
|
|
57
|
-
primaryCategory: 'Multiple Choice Question'
|
|
67
|
+
primaryCategory: this.questionPrimaryCategory || 'Multiple Choice Question',
|
|
58
68
|
};
|
|
59
69
|
return metadata;
|
|
60
70
|
}
|
|
@@ -66,9 +76,10 @@ export class OptionsComponent {
|
|
|
66
76
|
type: 'integer',
|
|
67
77
|
correctResponse: {
|
|
68
78
|
value: editorState.answer,
|
|
69
|
-
outcomes: { SCORE: 1 }
|
|
70
|
-
}
|
|
71
|
-
|
|
79
|
+
outcomes: { SCORE: 1 },
|
|
80
|
+
},
|
|
81
|
+
mapping: this.mapping,
|
|
82
|
+
},
|
|
72
83
|
};
|
|
73
84
|
return responseDeclaration;
|
|
74
85
|
}
|
|
@@ -76,13 +87,15 @@ export class OptionsComponent {
|
|
|
76
87
|
let index;
|
|
77
88
|
const interactOptions = _.map(options, (opt, key) => {
|
|
78
89
|
index = Number(key);
|
|
79
|
-
|
|
90
|
+
const hints = _.get(this.editorState, `interactions.response1.options[${index}].hints`);
|
|
91
|
+
return { label: opt.body, value: index, hints };
|
|
80
92
|
});
|
|
93
|
+
this.subMenuConfig(options);
|
|
81
94
|
const interactions = {
|
|
82
95
|
response1: {
|
|
83
96
|
type: 'choice',
|
|
84
|
-
options: interactOptions
|
|
85
|
-
}
|
|
97
|
+
options: interactOptions,
|
|
98
|
+
},
|
|
86
99
|
};
|
|
87
100
|
return interactions;
|
|
88
101
|
}
|
|
@@ -120,25 +133,25 @@ export class OptionsComponent {
|
|
|
120
133
|
this.mapping[scoreIndex] = obj;
|
|
121
134
|
this.editorDataHandler();
|
|
122
135
|
}
|
|
123
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionsComponent, deps: [{ token: i1.EditorTelemetryService }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
124
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OptionsComponent, selector: "lib-options", inputs: { editorState: "editorState", showFormError: "showFormError", sourcingSettings: "sourcingSettings", isReadOnlyMode: "isReadOnlyMode", showSubMenu: "showSubMenu", parentMeta: "parentMeta" }, outputs: { editorDataOutput: "editorDataOutput" }, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnlyMode; else readOnlyContainer\">\n <div class=\"pt-10 fs-0-92 sb-w-85\">\n <label class=\"fs-0-92 font-weight-bold\">{{configService.labelConfig?.lbl?.options}}<span class=\"sb-required\">*</span></label>\n <label class=\"fs-0-92 d-inline-block\">{{configService.labelConfig?.lbl?.selectLayout}}</label>\n <i class=\"icon info circle ml-8\" suiPopup popupDelay=\"500\" popupText={{configService.labelConfig?.lbl?.optionsPopupText}}></i>\n <span class=\"divider mr-8\"></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray mr-5 q-sb-layout-single\" [ngClass]=\"{active: 'mcq-vertical' === templateType}\" (click)=\"setTemplete('mcq-vertical')\"><i class=\"mr-10 h-7\"></i> {{configService.labelConfig?.lbl?.vertical}}</button></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray mr-5 q-sb-layout-two\" [ngClass]=\"{active: 'mcq-vertical-split' === templateType}\" (click)=\"setTemplete('mcq-vertical-split')\"><i class=\"mr-10 h-7 w-20\"></i>{{configService.labelConfig?.lbl?.grid}}</button></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray q-sb-layout-three\" [ngClass]=\"{active: 'mcq-horizontal' === templateType}\" (click)=\"setTemplete('mcq-horizontal')\"> <i class=\"mr-10 h-7\"></i> {{configService.labelConfig?.lbl?.horizontal}}</button></span>\n </div>\n <label *ngIf=\"showFormError && !editorState.answer && sourcingSettings?.enforceCorrectAnswer\" class=\"ui basic red error label pt-1 mt-10\">\n {{configService.labelConfig?.lbl?.selectOneAns}}</label>\n <div class=\"d-flex pt-10 flex-dc sb-mcq-form\">\n <div class=\"d-flex sb-mcq-item flex-w-wrap\" *ngFor=\"let option of editorState.options; let i = index\">\n <div class=\"sb-w-85 sb-ckeditor relative mb-15\">\n <button [disabled]=\"editorState.options.length < 3\" class=\"sb-btn sb-ckeditor-close absolute\"\n (click)=\"editorState.deleteOption(i);editorDataHandler($event);\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('delete_option','click','submit',telemetryService.telemetryPageId)\">\n <i class=\"icon close\"></i>\n </button>\n <lib-ckeditor-tool [setCharacterLimit]=\"setCharacterLimit\" (editorDataOutput)=\"option.body = $event.body; option.length = $event.length; editorDataHandler($event)\"\n [editorDataInput]=\"option.body\" class=\"ckeditor-tool__option mb-10\"\n [class.mb-5]=\"showFormError && ([undefined, ''].includes(option.body) || option.length > setCharacterLimit)\">\n </lib-ckeditor-tool>\n <label *ngIf=\"\n showFormError && (option.body === undefined || option.body === '')\n \" class=\"sb-color-error fs-0-785\">{{configService.labelConfig?.lbl?.fillThisOption}}</label>\n <label *ngIf=\"option.length > setCharacterLimit\" class=\"ui basic red error label pt-1\">\n {{configService.labelConfig?.lbl?.reduceSize}}</label>\n </div>\n <div class=\"sb-checkbox sb-checkbox-primary pl-10 mt-0 pt-0\" [class.selected]=\"editorState.answer === i.toString()\" *ngIf=\"sourcingSettings?.enforceCorrectAnswer !== false\">\n <input type=\"radio\" id=\"answer_{{ i + 1 }}\" name=\"example\" value=\"{{ i }}\" (change)=\"editorDataHandler($event);\"\n [(ngModel)]=\"editorState.answer\" [ngModelOptions]=\"{ standalone: true }\" [checked]=\"editorState.answer === i.toString()\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('mark_as_right_anwser','click',undefined,telemetryService.telemetryPageId,{answer:i.toString()})\" />\n <label for=\"answer_{{ i + 1 }}\" class=\"mr-0 fs-0-785\">{{configService.labelConfig?.lbl?.correctAns}}</label>\n </div>\n <div class=\"w-100\" *ngIf=\"showSubMenu\">\n <lib-question-option-sub-menu [subMenus]=\"subMenus[i]\" (onChange)=\"subMenuChange($event,i)\"></lib-question-option-sub-menu>\n <div *ngIf=\"parentMeta?.allowScoring === 'Yes'\">\n <label for=\"score\" class=\"d-block mt-10 optionLabel\">Score <span class=\"sb-required\">*</span></label>\n <input\n class=\"sb-textbox false mb-30\"\n [placeholder]=\"'Add score here'\"\n (change)=\"setScore($event.target.value,i)\"\n *ngIf=\"sourcingSettings.showAddScore\"\n type=\"number\"\n [value]=\"mapping[i]?.outcomes?.score\"\n />\n </div>\n </div>\n </div>\n <div class=\"d-flex\">\n <button *ngIf=\"editorState.options.length < editorState.maximumOptions\"\n class=\"sb-btn sb-btn-outline-primary sb-btn-xs sb-left-icon-btn text-inherit b-0 bg-none no-hover p-0 mb-10 mt-10\"\n (click)=\"editorState.addOptions();editorDataHandler($event);\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_option','click','submit',telemetryService.telemetryPageId)\" >\n <i class=\"plus circle icon fs-1-286 pull-left mr-0\" aria-hidden=\"true\"></i><span class=\"sb-line-height-24\">{{configService.labelConfig?.lbl?.addOption}}</span>\n </button>\n </div>\n </div>\n</ng-container>\n\n<ng-template #readOnlyContainer>\n <div class=\"row mb-0 p-0\" *ngFor=\"let option of editorState.options; let i=index\">\n <div class=\"twelve wide column p-0\">\n <div class=\"ckeditor-tool width-100\">\n <div class=\"ckeditor-tool__question-readonly mb-24\">\n <label class=\"px-16 py-8 fs-0-92 mb-0 ckeditor-tool__label width-100\">Option {{ i+1 }}</label>\n <div class=\"ckeditor-tool__solution__body\">\n <p class=\"fs-0-785 p-16\" [innerHTML]=\"option.body | sanitizeHtml\"></p>\n <div class=\"mcq-checkbox-answer\" *ngIf=\"editorState.answer === i.toString()\">\n <div class=\"sb-checkbox sb-checkbox-primary mr-auto selected\">\n <input type=\"checkbox\" id=\"check1\" name=\"example\" disabled checked>\n <label for=\"check1\">{{configService.labelConfig?.lbl?.correctAns}}</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"w-100\" *ngIf=\"showSubMenu\">\n <lib-question-option-sub-menu [subMenus]=\"subMenus[i]\" (onChange)=\"subMenuChange($event,i)\"></lib-question-option-sub-menu>\n <div *ngIf=\"parentMeta?.allowScoring === 'Yes'\">\n <label for=\"score\" class=\"d-block mt-10 optionLabel\">Score</label>\n <input\n class=\"sb-textbox false mb-30\"\n [placeholder]=\"'Add score here'\"\n (change)=\"setScore($event.target.value,i)\"\n *ngIf=\"sourcingSettings.showAddScore\"\n type=\"number\"\n [value]=\"mapping[i]?.outcomes?.score\" \n disabled\n />\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".q-sb-layout-single:before{content:url(/assets/images/layoutoneicon.svg)}.q-sb-layout-single.active,.q-sb-layout-single:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-single.active:before,.q-sb-layout-single:hover:before{content:url(/assets/images/layoutoneicon_blue.svg)}.q-sb-layout-two:before{content:url(/assets/images/layouttwoicon.svg)}.q-sb-layout-two.active,.q-sb-layout-two:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-two.active:before,.q-sb-layout-two:hover:before{content:url(/assets/images/layouttwoicon_blue.svg)}.q-sb-layout-three:before{content:url(/assets/images/layoutthreeicon.svg);top:-2px;position:relative}.q-sb-layout-three.active,.q-sb-layout-three:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-three.active:before,.q-sb-layout-three:hover:before{content:url(/assets/images/layoutthreeicon_blue.svg)}.q-sb-layout-imgoption:before{content:url(/assets/images/imageicon.svg)}.q-sb-layout-imgoption.active:before,.q-sb-layout-imgoption:hover:before{content:url(/assets/images/imageicon_blue.svg)}.q-sb-layout-alignleft:before{content:url(/assets/images/leftalignicon.svg)}.q-sb-layout-alignleft.active:before,.q-sb-layout-alignleft:hover:before{content:url(/assets/images/leftalignicon_blue.svg)}.q-sb-layout-aligncenter:before{content:url(/assets/images/middlealignicon.svg)}.q-sb-layout-aligncenter.active:before,.q-sb-layout-aligncenter:hover:before{content:url(/assets/images/middlealignicon_blue.svg)}.q-sb-layout-alignright:before{content:url(/assets/images/rightalignicon.svg)}.q-sb-layout-alignright.active:before,.q-sb-layout-alignright:hover:before{content:url(/assets/images/rightalignicon_blue.svg)}.h-7{height:7px}.w-20{width:20px}.b-0{border:0!important}.sb-line-height-24{line-height:24px}.bg-none{background-color:transparent!important}.bg-none:hover,.bg-none:focus{background-color:transparent!important}.sb-w-85 div[data-title]:hover:before{left:0%;top:-122%!important;width:256px}.sb-field-group .sb-left-icon-btn.sb-btn-xs{padding:0!important;margin-top:-10px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.SuiPopupDirective, selector: "[suiPopup]", inputs: ["popupHeader", "popupText", "popupInverted", "popupBasic", "popupInline", "popupFlowing", "popupTransition", "popupTransitionDuration", "popupPlacement", "popupWidth", "popupSize", "popupDelay", "popupTrigger", "popupTemplate", "popupTemplateContext", "popupConfig"], exportAs: ["suiPopup"] }, { kind: "component", type: i6.CkeditorToolComponent, selector: "lib-ckeditor-tool", inputs: ["editorDataInput", "videoShow", "setCharacterLimit", "setImageLimit"], outputs: ["editorDataOutput", "hasError", "videoDataOutput"] }, { kind: "directive", type: i7.TelemetryInteractDirective, selector: "[libTelemetryInteract]", inputs: ["telemetryInteractEdata"] }, { kind: "pipe", type: i8.SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
|
136
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionsComponent, deps: [{ token: i1.EditorTelemetryService }, { token: i2.ConfigService }, { token: i3.TreeService }, { token: i4.EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
137
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OptionsComponent, selector: "lib-options", inputs: { editorState: "editorState", showFormError: "showFormError", sourcingSettings: "sourcingSettings", questionPrimaryCategory: "questionPrimaryCategory", mapping: "mapping", isReadOnlyMode: "isReadOnlyMode" }, outputs: { editorDataOutput: "editorDataOutput" }, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnlyMode; else readOnlyContainer\">\n <div class=\"pt-10 fs-0-92 sb-w-85\">\n <label class=\"fs-0-92 font-weight-bold\">{{configService.labelConfig?.lbl?.options}}<span class=\"sb-required\">*</span></label>\n <label class=\"fs-0-92 d-inline-block\">{{configService.labelConfig?.lbl?.selectLayout}}</label>\n <i class=\"icon info circle ml-8\" suiPopup popupDelay=\"500\" popupText={{configService.labelConfig?.lbl?.optionsPopupText}}></i>\n <span class=\"divider mr-8\"></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray mr-5 q-sb-layout-single\" [ngClass]=\"{active: 'mcq-vertical' === templateType}\" (click)=\"setTemplete('mcq-vertical')\"><i class=\"mr-10 h-7\"></i> {{configService.labelConfig?.lbl?.vertical}}</button></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray mr-5 q-sb-layout-two\" [ngClass]=\"{active: 'mcq-vertical-split' === templateType}\" (click)=\"setTemplete('mcq-vertical-split')\"><i class=\"mr-10 h-7 w-20\"></i>{{configService.labelConfig?.lbl?.grid}}</button></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray q-sb-layout-three\" [ngClass]=\"{active: 'mcq-horizontal' === templateType}\" (click)=\"setTemplete('mcq-horizontal')\"> <i class=\"mr-10 h-7\"></i> {{configService.labelConfig?.lbl?.horizontal}}</button></span>\n </div>\n <label *ngIf=\"showFormError && !editorState.answer && sourcingSettings?.enforceCorrectAnswer\" class=\"ui basic red error label pt-1 mt-10\">\n {{configService.labelConfig?.lbl?.selectOneAns}}</label>\n <div class=\"d-flex pt-10 flex-dc sb-mcq-form\">\n <div class=\"d-flex sb-mcq-item flex-w-wrap\" *ngFor=\"let option of editorState.options; let i = index\">\n <div class=\"sb-w-85 sb-ckeditor relative mb-15\">\n <button [disabled]=\"editorState.options.length < 3\" class=\"sb-btn sb-ckeditor-close absolute\"\n (click)=\"editorState.deleteOption(i);editorDataHandler($event);\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('delete_option','click','submit',telemetryService.telemetryPageId)\">\n <i class=\"icon close\"></i>\n </button>\n <lib-ckeditor-tool [setCharacterLimit]=\"setCharacterLimit\" (editorDataOutput)=\"option.body = $event.body; option.length = $event.length; editorDataHandler($event)\"\n [editorDataInput]=\"option.body\" class=\"ckeditor-tool__option mb-10\"\n [class.mb-5]=\"showFormError && ([undefined, ''].includes(option.body) || option.length > setCharacterLimit)\">\n </lib-ckeditor-tool>\n <label *ngIf=\"\n showFormError && (option.body === undefined || option.body === '')\n \" class=\"sb-color-error fs-0-785\">{{configService.labelConfig?.lbl?.fillThisOption}}</label>\n <label *ngIf=\"option.length > setCharacterLimit\" class=\"ui basic red error label pt-1\">\n {{configService.labelConfig?.lbl?.reduceSize}}</label>\n </div>\n <div class=\"sb-checkbox sb-checkbox-primary pl-10 mt-0 pt-0\" [class.selected]=\"editorState.answer === i.toString()\" *ngIf=\"sourcingSettings?.enforceCorrectAnswer !== false\">\n <input type=\"radio\" id=\"answer_{{ i + 1 }}\" name=\"example\" value=\"{{ i }}\" (change)=\"editorDataHandler($event);\"\n [(ngModel)]=\"editorState.answer\" [ngModelOptions]=\"{ standalone: true }\" [checked]=\"editorState.answer === i.toString()\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('mark_as_right_anwser','click',undefined,telemetryService.telemetryPageId,{answer:i.toString()})\" />\n <label for=\"answer_{{ i + 1 }}\" class=\"mr-0 fs-0-785\">{{configService.labelConfig?.lbl?.correctAns}}</label>\n </div>\n <div class=\"w-100\" *ngIf=\"showSubMenu\">\n <lib-question-option-sub-menu [subMenus]=\"subMenus[i]\" (onChange)=\"subMenuChange($event,i)\"></lib-question-option-sub-menu>\n <div *ngIf=\"parentMeta?.allowScoring === 'Yes'\">\n <label for=\"score\" class=\"d-block mt-10 optionLabel\">Score <span class=\"sb-required\">*</span></label>\n <input\n class=\"sb-textbox false mb-30\"\n [placeholder]=\"'Add score here'\"\n (change)=\"setScore($event.target.value,i)\"\n *ngIf=\"sourcingSettings.showAddScore\"\n type=\"number\"\n [value]=\"mapping[i]?.outcomes?.score\"\n />\n </div>\n </div>\n </div>\n <div class=\"d-flex\">\n <button *ngIf=\"editorState.options.length < editorState.maximumOptions\"\n class=\"sb-btn sb-btn-outline-primary sb-btn-xs sb-left-icon-btn text-inherit b-0 bg-none no-hover p-0 mb-10 mt-10\"\n (click)=\"editorState.addOptions();editorDataHandler($event);\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_option','click','submit',telemetryService.telemetryPageId)\" >\n <i class=\"plus circle icon fs-1-286 pull-left mr-0\" aria-hidden=\"true\"></i><span class=\"sb-line-height-24\">{{configService.labelConfig?.lbl?.addOption}}</span>\n </button>\n </div>\n </div>\n</ng-container>\n\n<ng-template #readOnlyContainer>\n <div class=\"row mb-0 p-0\" *ngFor=\"let option of editorState.options; let i=index\">\n <div class=\"twelve wide column p-0\">\n <div class=\"ckeditor-tool width-100\">\n <div class=\"ckeditor-tool__question-readonly mb-24\">\n <label class=\"px-16 py-8 fs-0-92 mb-0 ckeditor-tool__label width-100\">Option {{ i+1 }}</label>\n <div class=\"ckeditor-tool__solution__body\">\n <p class=\"fs-0-785 p-16\" [innerHTML]=\"option.body | sanitizeHtml\"></p>\n <div class=\"mcq-checkbox-answer\" *ngIf=\"editorState.answer === i.toString()\">\n <div class=\"sb-checkbox sb-checkbox-primary mr-auto selected\">\n <input type=\"checkbox\" id=\"check1\" name=\"example\" disabled checked>\n <label for=\"check1\">{{configService.labelConfig?.lbl?.correctAns}}</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"w-100\" *ngIf=\"showSubMenu\">\n <lib-question-option-sub-menu [subMenus]=\"subMenus[i]\" (onChange)=\"subMenuChange($event,i)\"></lib-question-option-sub-menu>\n <div *ngIf=\"parentMeta?.allowScoring === 'Yes'\">\n <label for=\"score\" class=\"d-block mt-10 optionLabel\">Score</label>\n <input\n class=\"sb-textbox false mb-30\"\n [placeholder]=\"'Add score here'\"\n (change)=\"setScore($event.target.value,i)\"\n *ngIf=\"sourcingSettings.showAddScore\"\n type=\"number\"\n [value]=\"mapping[i]?.outcomes?.score\" \n disabled\n />\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".q-sb-layout-single:before{content:url(/assets/images/layoutoneicon.svg)}.q-sb-layout-single.active,.q-sb-layout-single:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-single.active:before,.q-sb-layout-single:hover:before{content:url(/assets/images/layoutoneicon_blue.svg)}.q-sb-layout-two:before{content:url(/assets/images/layouttwoicon.svg)}.q-sb-layout-two.active,.q-sb-layout-two:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-two.active:before,.q-sb-layout-two:hover:before{content:url(/assets/images/layouttwoicon_blue.svg)}.q-sb-layout-three:before{content:url(/assets/images/layoutthreeicon.svg);top:-2px;position:relative}.q-sb-layout-three.active,.q-sb-layout-three:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-three.active:before,.q-sb-layout-three:hover:before{content:url(/assets/images/layoutthreeicon_blue.svg)}.q-sb-layout-imgoption:before{content:url(/assets/images/imageicon.svg)}.q-sb-layout-imgoption.active:before,.q-sb-layout-imgoption:hover:before{content:url(/assets/images/imageicon_blue.svg)}.q-sb-layout-alignleft:before{content:url(/assets/images/leftalignicon.svg)}.q-sb-layout-alignleft.active:before,.q-sb-layout-alignleft:hover:before{content:url(/assets/images/leftalignicon_blue.svg)}.q-sb-layout-aligncenter:before{content:url(/assets/images/middlealignicon.svg)}.q-sb-layout-aligncenter.active:before,.q-sb-layout-aligncenter:hover:before{content:url(/assets/images/middlealignicon_blue.svg)}.q-sb-layout-alignright:before{content:url(/assets/images/rightalignicon.svg)}.q-sb-layout-alignright.active:before,.q-sb-layout-alignright:hover:before{content:url(/assets/images/rightalignicon_blue.svg)}.h-7{height:7px}.w-20{width:20px}.b-0{border:0!important}.sb-line-height-24{line-height:24px}.bg-none{background-color:transparent!important}.bg-none:hover,.bg-none:focus{background-color:transparent!important}.sb-w-85 div[data-title]:hover:before{left:0%;top:-122%!important;width:256px}.sb-field-group .sb-left-icon-btn.sb-btn-xs{padding:0!important;margin-top:-10px}.optionLabel{font-size:12px!important;margin-bottom:.5rem!important;color:#121213e0;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.SuiPopupDirective, selector: "[suiPopup]", inputs: ["popupHeader", "popupText", "popupInverted", "popupBasic", "popupInline", "popupFlowing", "popupTransition", "popupTransitionDuration", "popupPlacement", "popupWidth", "popupSize", "popupDelay", "popupTrigger", "popupTemplate", "popupTemplateContext", "popupConfig"], exportAs: ["suiPopup"] }, { kind: "component", type: i8.CkeditorToolComponent, selector: "lib-ckeditor-tool", inputs: ["editorDataInput", "videoShow", "setCharacterLimit", "setImageLimit"], outputs: ["editorDataOutput", "hasError", "videoDataOutput"] }, { kind: "directive", type: i9.TelemetryInteractDirective, selector: "[libTelemetryInteract]", inputs: ["telemetryInteractEdata"] }, { kind: "component", type: i10.QuestionOptionSubMenuComponent, selector: "lib-question-option-sub-menu", inputs: ["subMenus"], outputs: ["onChange"] }, { kind: "pipe", type: i11.SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
|
125
138
|
}
|
|
126
139
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionsComponent, decorators: [{
|
|
127
140
|
type: Component,
|
|
128
|
-
args: [{ selector: 'lib-options', template: "<ng-container *ngIf=\"!isReadOnlyMode; else readOnlyContainer\">\n <div class=\"pt-10 fs-0-92 sb-w-85\">\n <label class=\"fs-0-92 font-weight-bold\">{{configService.labelConfig?.lbl?.options}}<span class=\"sb-required\">*</span></label>\n <label class=\"fs-0-92 d-inline-block\">{{configService.labelConfig?.lbl?.selectLayout}}</label>\n <i class=\"icon info circle ml-8\" suiPopup popupDelay=\"500\" popupText={{configService.labelConfig?.lbl?.optionsPopupText}}></i>\n <span class=\"divider mr-8\"></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray mr-5 q-sb-layout-single\" [ngClass]=\"{active: 'mcq-vertical' === templateType}\" (click)=\"setTemplete('mcq-vertical')\"><i class=\"mr-10 h-7\"></i> {{configService.labelConfig?.lbl?.vertical}}</button></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray mr-5 q-sb-layout-two\" [ngClass]=\"{active: 'mcq-vertical-split' === templateType}\" (click)=\"setTemplete('mcq-vertical-split')\"><i class=\"mr-10 h-7 w-20\"></i>{{configService.labelConfig?.lbl?.grid}}</button></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray q-sb-layout-three\" [ngClass]=\"{active: 'mcq-horizontal' === templateType}\" (click)=\"setTemplete('mcq-horizontal')\"> <i class=\"mr-10 h-7\"></i> {{configService.labelConfig?.lbl?.horizontal}}</button></span>\n </div>\n <label *ngIf=\"showFormError && !editorState.answer && sourcingSettings?.enforceCorrectAnswer\" class=\"ui basic red error label pt-1 mt-10\">\n {{configService.labelConfig?.lbl?.selectOneAns}}</label>\n <div class=\"d-flex pt-10 flex-dc sb-mcq-form\">\n <div class=\"d-flex sb-mcq-item flex-w-wrap\" *ngFor=\"let option of editorState.options; let i = index\">\n <div class=\"sb-w-85 sb-ckeditor relative mb-15\">\n <button [disabled]=\"editorState.options.length < 3\" class=\"sb-btn sb-ckeditor-close absolute\"\n (click)=\"editorState.deleteOption(i);editorDataHandler($event);\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('delete_option','click','submit',telemetryService.telemetryPageId)\">\n <i class=\"icon close\"></i>\n </button>\n <lib-ckeditor-tool [setCharacterLimit]=\"setCharacterLimit\" (editorDataOutput)=\"option.body = $event.body; option.length = $event.length; editorDataHandler($event)\"\n [editorDataInput]=\"option.body\" class=\"ckeditor-tool__option mb-10\"\n [class.mb-5]=\"showFormError && ([undefined, ''].includes(option.body) || option.length > setCharacterLimit)\">\n </lib-ckeditor-tool>\n <label *ngIf=\"\n showFormError && (option.body === undefined || option.body === '')\n \" class=\"sb-color-error fs-0-785\">{{configService.labelConfig?.lbl?.fillThisOption}}</label>\n <label *ngIf=\"option.length > setCharacterLimit\" class=\"ui basic red error label pt-1\">\n {{configService.labelConfig?.lbl?.reduceSize}}</label>\n </div>\n <div class=\"sb-checkbox sb-checkbox-primary pl-10 mt-0 pt-0\" [class.selected]=\"editorState.answer === i.toString()\" *ngIf=\"sourcingSettings?.enforceCorrectAnswer !== false\">\n <input type=\"radio\" id=\"answer_{{ i + 1 }}\" name=\"example\" value=\"{{ i }}\" (change)=\"editorDataHandler($event);\"\n [(ngModel)]=\"editorState.answer\" [ngModelOptions]=\"{ standalone: true }\" [checked]=\"editorState.answer === i.toString()\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('mark_as_right_anwser','click',undefined,telemetryService.telemetryPageId,{answer:i.toString()})\" />\n <label for=\"answer_{{ i + 1 }}\" class=\"mr-0 fs-0-785\">{{configService.labelConfig?.lbl?.correctAns}}</label>\n </div>\n <div class=\"w-100\" *ngIf=\"showSubMenu\">\n <lib-question-option-sub-menu [subMenus]=\"subMenus[i]\" (onChange)=\"subMenuChange($event,i)\"></lib-question-option-sub-menu>\n <div *ngIf=\"parentMeta?.allowScoring === 'Yes'\">\n <label for=\"score\" class=\"d-block mt-10 optionLabel\">Score <span class=\"sb-required\">*</span></label>\n <input\n class=\"sb-textbox false mb-30\"\n [placeholder]=\"'Add score here'\"\n (change)=\"setScore($event.target.value,i)\"\n *ngIf=\"sourcingSettings.showAddScore\"\n type=\"number\"\n [value]=\"mapping[i]?.outcomes?.score\"\n />\n </div>\n </div>\n </div>\n <div class=\"d-flex\">\n <button *ngIf=\"editorState.options.length < editorState.maximumOptions\"\n class=\"sb-btn sb-btn-outline-primary sb-btn-xs sb-left-icon-btn text-inherit b-0 bg-none no-hover p-0 mb-10 mt-10\"\n (click)=\"editorState.addOptions();editorDataHandler($event);\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_option','click','submit',telemetryService.telemetryPageId)\" >\n <i class=\"plus circle icon fs-1-286 pull-left mr-0\" aria-hidden=\"true\"></i><span class=\"sb-line-height-24\">{{configService.labelConfig?.lbl?.addOption}}</span>\n </button>\n </div>\n </div>\n</ng-container>\n\n<ng-template #readOnlyContainer>\n <div class=\"row mb-0 p-0\" *ngFor=\"let option of editorState.options; let i=index\">\n <div class=\"twelve wide column p-0\">\n <div class=\"ckeditor-tool width-100\">\n <div class=\"ckeditor-tool__question-readonly mb-24\">\n <label class=\"px-16 py-8 fs-0-92 mb-0 ckeditor-tool__label width-100\">Option {{ i+1 }}</label>\n <div class=\"ckeditor-tool__solution__body\">\n <p class=\"fs-0-785 p-16\" [innerHTML]=\"option.body | sanitizeHtml\"></p>\n <div class=\"mcq-checkbox-answer\" *ngIf=\"editorState.answer === i.toString()\">\n <div class=\"sb-checkbox sb-checkbox-primary mr-auto selected\">\n <input type=\"checkbox\" id=\"check1\" name=\"example\" disabled checked>\n <label for=\"check1\">{{configService.labelConfig?.lbl?.correctAns}}</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"w-100\" *ngIf=\"showSubMenu\">\n <lib-question-option-sub-menu [subMenus]=\"subMenus[i]\" (onChange)=\"subMenuChange($event,i)\"></lib-question-option-sub-menu>\n <div *ngIf=\"parentMeta?.allowScoring === 'Yes'\">\n <label for=\"score\" class=\"d-block mt-10 optionLabel\">Score</label>\n <input\n class=\"sb-textbox false mb-30\"\n [placeholder]=\"'Add score here'\"\n (change)=\"setScore($event.target.value,i)\"\n *ngIf=\"sourcingSettings.showAddScore\"\n type=\"number\"\n [value]=\"mapping[i]?.outcomes?.score\" \n disabled\n />\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".q-sb-layout-single:before{content:url(/assets/images/layoutoneicon.svg)}.q-sb-layout-single.active,.q-sb-layout-single:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-single.active:before,.q-sb-layout-single:hover:before{content:url(/assets/images/layoutoneicon_blue.svg)}.q-sb-layout-two:before{content:url(/assets/images/layouttwoicon.svg)}.q-sb-layout-two.active,.q-sb-layout-two:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-two.active:before,.q-sb-layout-two:hover:before{content:url(/assets/images/layouttwoicon_blue.svg)}.q-sb-layout-three:before{content:url(/assets/images/layoutthreeicon.svg);top:-2px;position:relative}.q-sb-layout-three.active,.q-sb-layout-three:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-three.active:before,.q-sb-layout-three:hover:before{content:url(/assets/images/layoutthreeicon_blue.svg)}.q-sb-layout-imgoption:before{content:url(/assets/images/imageicon.svg)}.q-sb-layout-imgoption.active:before,.q-sb-layout-imgoption:hover:before{content:url(/assets/images/imageicon_blue.svg)}.q-sb-layout-alignleft:before{content:url(/assets/images/leftalignicon.svg)}.q-sb-layout-alignleft.active:before,.q-sb-layout-alignleft:hover:before{content:url(/assets/images/leftalignicon_blue.svg)}.q-sb-layout-aligncenter:before{content:url(/assets/images/middlealignicon.svg)}.q-sb-layout-aligncenter.active:before,.q-sb-layout-aligncenter:hover:before{content:url(/assets/images/middlealignicon_blue.svg)}.q-sb-layout-alignright:before{content:url(/assets/images/rightalignicon.svg)}.q-sb-layout-alignright.active:before,.q-sb-layout-alignright:hover:before{content:url(/assets/images/rightalignicon_blue.svg)}.h-7{height:7px}.w-20{width:20px}.b-0{border:0!important}.sb-line-height-24{line-height:24px}.bg-none{background-color:transparent!important}.bg-none:hover,.bg-none:focus{background-color:transparent!important}.sb-w-85 div[data-title]:hover:before{left:0%;top:-122%!important;width:256px}.sb-field-group .sb-left-icon-btn.sb-btn-xs{padding:0!important;margin-top:-10px}\n"] }]
|
|
129
|
-
}], ctorParameters: function () { return [{ type: i1.EditorTelemetryService }, { type: i2.ConfigService }]; }, propDecorators: { editorState: [{
|
|
141
|
+
args: [{ selector: 'lib-options', template: "<ng-container *ngIf=\"!isReadOnlyMode; else readOnlyContainer\">\n <div class=\"pt-10 fs-0-92 sb-w-85\">\n <label class=\"fs-0-92 font-weight-bold\">{{configService.labelConfig?.lbl?.options}}<span class=\"sb-required\">*</span></label>\n <label class=\"fs-0-92 d-inline-block\">{{configService.labelConfig?.lbl?.selectLayout}}</label>\n <i class=\"icon info circle ml-8\" suiPopup popupDelay=\"500\" popupText={{configService.labelConfig?.lbl?.optionsPopupText}}></i>\n <span class=\"divider mr-8\"></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray mr-5 q-sb-layout-single\" [ngClass]=\"{active: 'mcq-vertical' === templateType}\" (click)=\"setTemplete('mcq-vertical')\"><i class=\"mr-10 h-7\"></i> {{configService.labelConfig?.lbl?.vertical}}</button></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray mr-5 q-sb-layout-two\" [ngClass]=\"{active: 'mcq-vertical-split' === templateType}\" (click)=\"setTemplete('mcq-vertical-split')\"><i class=\"mr-10 h-7 w-20\"></i>{{configService.labelConfig?.lbl?.grid}}</button></span>\n <span><button class=\"sb-btn sb-btn-xs sb-btn-outline-gray q-sb-layout-three\" [ngClass]=\"{active: 'mcq-horizontal' === templateType}\" (click)=\"setTemplete('mcq-horizontal')\"> <i class=\"mr-10 h-7\"></i> {{configService.labelConfig?.lbl?.horizontal}}</button></span>\n </div>\n <label *ngIf=\"showFormError && !editorState.answer && sourcingSettings?.enforceCorrectAnswer\" class=\"ui basic red error label pt-1 mt-10\">\n {{configService.labelConfig?.lbl?.selectOneAns}}</label>\n <div class=\"d-flex pt-10 flex-dc sb-mcq-form\">\n <div class=\"d-flex sb-mcq-item flex-w-wrap\" *ngFor=\"let option of editorState.options; let i = index\">\n <div class=\"sb-w-85 sb-ckeditor relative mb-15\">\n <button [disabled]=\"editorState.options.length < 3\" class=\"sb-btn sb-ckeditor-close absolute\"\n (click)=\"editorState.deleteOption(i);editorDataHandler($event);\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('delete_option','click','submit',telemetryService.telemetryPageId)\">\n <i class=\"icon close\"></i>\n </button>\n <lib-ckeditor-tool [setCharacterLimit]=\"setCharacterLimit\" (editorDataOutput)=\"option.body = $event.body; option.length = $event.length; editorDataHandler($event)\"\n [editorDataInput]=\"option.body\" class=\"ckeditor-tool__option mb-10\"\n [class.mb-5]=\"showFormError && ([undefined, ''].includes(option.body) || option.length > setCharacterLimit)\">\n </lib-ckeditor-tool>\n <label *ngIf=\"\n showFormError && (option.body === undefined || option.body === '')\n \" class=\"sb-color-error fs-0-785\">{{configService.labelConfig?.lbl?.fillThisOption}}</label>\n <label *ngIf=\"option.length > setCharacterLimit\" class=\"ui basic red error label pt-1\">\n {{configService.labelConfig?.lbl?.reduceSize}}</label>\n </div>\n <div class=\"sb-checkbox sb-checkbox-primary pl-10 mt-0 pt-0\" [class.selected]=\"editorState.answer === i.toString()\" *ngIf=\"sourcingSettings?.enforceCorrectAnswer !== false\">\n <input type=\"radio\" id=\"answer_{{ i + 1 }}\" name=\"example\" value=\"{{ i }}\" (change)=\"editorDataHandler($event);\"\n [(ngModel)]=\"editorState.answer\" [ngModelOptions]=\"{ standalone: true }\" [checked]=\"editorState.answer === i.toString()\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('mark_as_right_anwser','click',undefined,telemetryService.telemetryPageId,{answer:i.toString()})\" />\n <label for=\"answer_{{ i + 1 }}\" class=\"mr-0 fs-0-785\">{{configService.labelConfig?.lbl?.correctAns}}</label>\n </div>\n <div class=\"w-100\" *ngIf=\"showSubMenu\">\n <lib-question-option-sub-menu [subMenus]=\"subMenus[i]\" (onChange)=\"subMenuChange($event,i)\"></lib-question-option-sub-menu>\n <div *ngIf=\"parentMeta?.allowScoring === 'Yes'\">\n <label for=\"score\" class=\"d-block mt-10 optionLabel\">Score <span class=\"sb-required\">*</span></label>\n <input\n class=\"sb-textbox false mb-30\"\n [placeholder]=\"'Add score here'\"\n (change)=\"setScore($event.target.value,i)\"\n *ngIf=\"sourcingSettings.showAddScore\"\n type=\"number\"\n [value]=\"mapping[i]?.outcomes?.score\"\n />\n </div>\n </div>\n </div>\n <div class=\"d-flex\">\n <button *ngIf=\"editorState.options.length < editorState.maximumOptions\"\n class=\"sb-btn sb-btn-outline-primary sb-btn-xs sb-left-icon-btn text-inherit b-0 bg-none no-hover p-0 mb-10 mt-10\"\n (click)=\"editorState.addOptions();editorDataHandler($event);\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('add_option','click','submit',telemetryService.telemetryPageId)\" >\n <i class=\"plus circle icon fs-1-286 pull-left mr-0\" aria-hidden=\"true\"></i><span class=\"sb-line-height-24\">{{configService.labelConfig?.lbl?.addOption}}</span>\n </button>\n </div>\n </div>\n</ng-container>\n\n<ng-template #readOnlyContainer>\n <div class=\"row mb-0 p-0\" *ngFor=\"let option of editorState.options; let i=index\">\n <div class=\"twelve wide column p-0\">\n <div class=\"ckeditor-tool width-100\">\n <div class=\"ckeditor-tool__question-readonly mb-24\">\n <label class=\"px-16 py-8 fs-0-92 mb-0 ckeditor-tool__label width-100\">Option {{ i+1 }}</label>\n <div class=\"ckeditor-tool__solution__body\">\n <p class=\"fs-0-785 p-16\" [innerHTML]=\"option.body | sanitizeHtml\"></p>\n <div class=\"mcq-checkbox-answer\" *ngIf=\"editorState.answer === i.toString()\">\n <div class=\"sb-checkbox sb-checkbox-primary mr-auto selected\">\n <input type=\"checkbox\" id=\"check1\" name=\"example\" disabled checked>\n <label for=\"check1\">{{configService.labelConfig?.lbl?.correctAns}}</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"w-100\" *ngIf=\"showSubMenu\">\n <lib-question-option-sub-menu [subMenus]=\"subMenus[i]\" (onChange)=\"subMenuChange($event,i)\"></lib-question-option-sub-menu>\n <div *ngIf=\"parentMeta?.allowScoring === 'Yes'\">\n <label for=\"score\" class=\"d-block mt-10 optionLabel\">Score</label>\n <input\n class=\"sb-textbox false mb-30\"\n [placeholder]=\"'Add score here'\"\n (change)=\"setScore($event.target.value,i)\"\n *ngIf=\"sourcingSettings.showAddScore\"\n type=\"number\"\n [value]=\"mapping[i]?.outcomes?.score\" \n disabled\n />\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".q-sb-layout-single:before{content:url(/assets/images/layoutoneicon.svg)}.q-sb-layout-single.active,.q-sb-layout-single:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-single.active:before,.q-sb-layout-single:hover:before{content:url(/assets/images/layoutoneicon_blue.svg)}.q-sb-layout-two:before{content:url(/assets/images/layouttwoicon.svg)}.q-sb-layout-two.active,.q-sb-layout-two:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-two.active:before,.q-sb-layout-two:hover:before{content:url(/assets/images/layouttwoicon_blue.svg)}.q-sb-layout-three:before{content:url(/assets/images/layoutthreeicon.svg);top:-2px;position:relative}.q-sb-layout-three.active,.q-sb-layout-three:hover{border-color:var(--primary-400);background-color:#fff;color:var(--primary-400)}.q-sb-layout-three.active:before,.q-sb-layout-three:hover:before{content:url(/assets/images/layoutthreeicon_blue.svg)}.q-sb-layout-imgoption:before{content:url(/assets/images/imageicon.svg)}.q-sb-layout-imgoption.active:before,.q-sb-layout-imgoption:hover:before{content:url(/assets/images/imageicon_blue.svg)}.q-sb-layout-alignleft:before{content:url(/assets/images/leftalignicon.svg)}.q-sb-layout-alignleft.active:before,.q-sb-layout-alignleft:hover:before{content:url(/assets/images/leftalignicon_blue.svg)}.q-sb-layout-aligncenter:before{content:url(/assets/images/middlealignicon.svg)}.q-sb-layout-aligncenter.active:before,.q-sb-layout-aligncenter:hover:before{content:url(/assets/images/middlealignicon_blue.svg)}.q-sb-layout-alignright:before{content:url(/assets/images/rightalignicon.svg)}.q-sb-layout-alignright.active:before,.q-sb-layout-alignright:hover:before{content:url(/assets/images/rightalignicon_blue.svg)}.h-7{height:7px}.w-20{width:20px}.b-0{border:0!important}.sb-line-height-24{line-height:24px}.bg-none{background-color:transparent!important}.bg-none:hover,.bg-none:focus{background-color:transparent!important}.sb-w-85 div[data-title]:hover:before{left:0%;top:-122%!important;width:256px}.sb-field-group .sb-left-icon-btn.sb-btn-xs{padding:0!important;margin-top:-10px}.optionLabel{font-size:12px!important;margin-bottom:.5rem!important;color:#121213e0;font-weight:600}\n"] }]
|
|
142
|
+
}], ctorParameters: function () { return [{ type: i1.EditorTelemetryService }, { type: i2.ConfigService }, { type: i3.TreeService }, { type: i4.EditorService }]; }, propDecorators: { editorState: [{
|
|
130
143
|
type: Input
|
|
131
144
|
}], showFormError: [{
|
|
132
145
|
type: Input
|
|
133
146
|
}], sourcingSettings: [{
|
|
134
147
|
type: Input
|
|
135
|
-
}],
|
|
148
|
+
}], questionPrimaryCategory: [{
|
|
136
149
|
type: Input
|
|
137
|
-
}],
|
|
150
|
+
}], mapping: [{
|
|
138
151
|
type: Input
|
|
139
|
-
}],
|
|
152
|
+
}], isReadOnlyMode: [{
|
|
140
153
|
type: Input
|
|
141
154
|
}], editorDataOutput: [{
|
|
142
155
|
type: Output
|
|
143
156
|
}] } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xsZWN0aW9uLWVkaXRvci1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vcHRpb25zL29wdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sbGVjdGlvbi1lZGl0b3ItbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvb3B0aW9ucy9vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sS0FBSyxDQUFDLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7O0FBUS9CLE1BQU0sT0FBTyxnQkFBZ0I7SUFhM0IsWUFBbUIsZ0JBQXdDLEVBQVMsYUFBNEI7UUFBN0UscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBUnZGLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTVCLHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pFLHNCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUN4QixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixpQkFBWSxHQUFHLGNBQWMsQ0FBQztRQUM5QixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLFlBQU8sR0FBUSxFQUFFLENBQUM7SUFDMkUsQ0FBQztJQUVyRyxRQUFRO1FBQ04sSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLGlC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QUcsQ0FBQztRQUMvQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQXhIVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQiw0U0NUN0IsNDFOQW9HQTs7NEZEM0ZhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhO3lJQUtkLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEVkaXRvclRlbGVtZXRyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90ZWxlbWV0cnkvdGVsZW1ldHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmZpZy9jb25maWcuc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItb3B0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3B0aW9ucy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBPcHRpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZWRpdG9yU3RhdGU6IGFueTtcbiAgQElucHV0KCkgc2hvd0Zvcm1FcnJvcjtcbiAgQElucHV0KCkgc291cmNpbmdTZXR0aW5nczogYW55O1xuICBASW5wdXQoKSBpc1JlYWRPbmx5TW9kZTogYm9vbGVhbjtcbiAgQElucHV0KCkgc2hvd1N1Yk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcGFyZW50TWV0YTogYW55O1xuICBAT3V0cHV0KCkgZWRpdG9yRGF0YU91dHB1dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIHNldENoYXJhY3RlckxpbWl0ID0gMTYwO1xuICBwdWJsaWMgc2V0SW1hZ2VMaW1pdCA9IDE7XG4gIHB1YmxpYyB0ZW1wbGF0ZVR5cGUgPSAnbWNxLXZlcnRpY2FsJztcbiAgcHVibGljIHN1Yk1lbnVzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgbWFwcGluZzogYW55ID0ge307XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZWxlbWV0cnlTZXJ2aWNlOiBFZGl0b3JUZWxlbWV0cnlTZXJ2aWNlLCBwdWJsaWMgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuZWRpdG9yU3RhdGUudGVtcGxhdGVJZCkpIHtcbiAgICAgIHRoaXMudGVtcGxhdGVUeXBlID0gdGhpcy5lZGl0b3JTdGF0ZS50ZW1wbGF0ZUlkO1xuICAgIH1cbiAgICB0aGlzLmVkaXRvckRhdGFIYW5kbGVyKCk7XG4gIH1cblxuICBlZGl0b3JEYXRhSGFuZGxlcihldmVudD8pIHtcbiAgICBjb25zdCBib2R5ID0gdGhpcy5wcmVwYXJlTWNxQm9keSh0aGlzLmVkaXRvclN0YXRlKTtcbiAgICB0aGlzLmVkaXRvckRhdGFPdXRwdXQuZW1pdCh7IGJvZHksIG1lZGlhb2JqOiBldmVudCA/IGV2ZW50Lm1lZGlhb2JqIDogdW5kZWZpbmVkIH0pO1xuICB9XG5cbiAgcHJlcGFyZU1jcUJvZHkoZWRpdG9yU3RhdGUpIHtcbiAgICBsZXQgbWV0YWRhdGE6IGFueTtcbiAgICBjb25zdCBjb3JyZWN0QW5zd2VyID0gZWRpdG9yU3RhdGUuYW5zd2VyO1xuICAgIGxldCByZXNpbmRleDtcbiAgICBjb25zdCBvcHRpb25zID0gXy5tYXAoZWRpdG9yU3RhdGUub3B0aW9ucywgKG9wdCwga2V5KSA9PiB7XG4gICAgICByZXNpbmRleCA9IE51bWJlcihrZXkpO1xuICAgICAgaWYgKE51bWJlcihjb3JyZWN0QW5zd2VyKSA9PT0ga2V5KSB7XG4gICAgICAgIHJldHVybiB7IGFuc3dlcjogdHJ1ZSwgdmFsdWU6IHsgYm9keTogb3B0LmJvZHksIHZhbHVlOiByZXNpbmRleCB9IH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4geyBhbnN3ZXI6IGZhbHNlLCB2YWx1ZTogeyBib2R5OiBvcHQuYm9keSwgdmFsdWU6IHJlc2luZGV4IH0gfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBtZXRhZGF0YSA9IHtcbiAgICAgIHRlbXBsYXRlSWQ6IHRoaXMudGVtcGxhdGVUeXBlLFxuICAgICAgbmFtZTogJ011bHRpcGxlIENob2ljZSBRdWVzdGlvbicsXG4gICAgICByZXNwb25zZURlY2xhcmF0aW9uOiB0aGlzLmdldFJlc3BvbnNlRGVjbGFyYXRpb24oZWRpdG9yU3RhdGUpLFxuICAgICAgaW50ZXJhY3Rpb25UeXBlczogWydjaG9pY2UnXSxcbiAgICAgIGludGVyYWN0aW9uczogdGhpcy5nZXRJbnRlcmFjdGlvbnMoZWRpdG9yU3RhdGUub3B0aW9ucyksXG4gICAgICBlZGl0b3JTdGF0ZToge1xuICAgICAgICBvcHRpb25zXG4gICAgICB9LFxuICAgICAgcVR5cGU6ICdNQ1EnLFxuICAgICAgcHJpbWFyeUNhdGVnb3J5OiAnTXVsdGlwbGUgQ2hvaWNlIFF1ZXN0aW9uJ1xuICAgIH07XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9XG5cbiAgZ2V0UmVzcG9uc2VEZWNsYXJhdGlvbihlZGl0b3JTdGF0ZSkge1xuICAgIGNvbnN0IHJlc3BvbnNlRGVjbGFyYXRpb24gPSB7XG4gICAgICByZXNwb25zZTE6IHtcbiAgICAgICAgbWF4U2NvcmU6IDEsXG4gICAgICAgIGNhcmRpbmFsaXR5OiAnc2luZ2xlJyxcbiAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICBjb3JyZWN0UmVzcG9uc2U6IHtcbiAgICAgICAgICB2YWx1ZTogZWRpdG9yU3RhdGUuYW5zd2VyLFxuICAgICAgICAgIG91dGNvbWVzOiB7IFNDT1JFOiAxIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHJlc3BvbnNlRGVjbGFyYXRpb247XG4gIH1cblxuICBnZXRJbnRlcmFjdGlvbnMob3B0aW9ucykge1xuICAgIGxldCBpbmRleDtcbiAgICBjb25zdCBpbnRlcmFjdE9wdGlvbnMgPSBfLm1hcChvcHRpb25zLCAob3B0LCBrZXkpID0+IHtcbiAgICAgIGluZGV4ID0gTnVtYmVyKGtleSk7XG4gICAgICByZXR1cm4geyBsYWJlbDogb3B0LmJvZHksIHZhbHVlOiBpbmRleCB9O1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVyYWN0aW9ucyA9IHtcbiAgICAgIHJlc3BvbnNlMToge1xuICAgICAgICB0eXBlOiAnY2hvaWNlJyxcbiAgICAgICAgb3B0aW9uczogaW50ZXJhY3RPcHRpb25zXG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gaW50ZXJhY3Rpb25zO1xuICB9XG5cbiAgc2V0VGVtcGxldGUodGVtcGxhdGUpIHtcbiAgICB0aGlzLnRlbXBsYXRlVHlwZSA9IHRlbXBsYXRlO1xuICAgIHRoaXMuZWRpdG9yRGF0YUhhbmRsZXIoKTtcbiAgfVxuXG4gIHN1Yk1lbnVDaGFuZ2UoeyBpbmRleCwgdmFsdWUgfSwgb3B0aW9uSW5kZXgpIHtcbiAgICBfLnNldCh0aGlzLmVkaXRvclN0YXRlLCBgaW50ZXJhY3Rpb25zLnJlc3BvbnNlMS5vcHRpb25zWyR7b3B0aW9uSW5kZXh9XS5oaW50cy5lbmAsIHZhbHVlKVxuICB9XG5cbiAgc3ViTWVudUNvbmZpZyhvcHRpb25zKSB7XG4gICAgdGhpcy5zdWJNZW51cyA9IFtdXG4gICAgb3B0aW9ucy5tYXAoKG9wdCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gXy5nZXQodGhpcy5lZGl0b3JTdGF0ZSwgYGludGVyYWN0aW9ucy5yZXNwb25zZTEub3B0aW9uc1ske2luZGV4fV0uaGludHMuZW5gKVxuICAgICAgdGhpcy5zdWJNZW51c1tpbmRleF0gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2FkZEhpbnQnLFxuICAgICAgICAgIG5hbWU6ICdBZGQgSGludCcsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgbGFiZWw6ICdIaW50JyxcbiAgICAgICAgICBlbmFibGVkOiB2YWx1ZSA/IHRydWUgOiBmYWxzZSxcbiAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgIHNob3c6IF8uZ2V0KHRoaXMuc291cmNpbmdTZXR0aW5ncywgJ3Nob3dBZGRIaW50cycpLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldFNjb3JlKHZhbHVlLCBzY29yZUluZGV4KSB7XG4gICAgY29uc3Qgb2JqID0ge1xuICAgICAgcmVzcG9uc2U6IHNjb3JlSW5kZXgsXG4gICAgICBvdXRjb21lczoge1xuICAgICAgICBzY29yZTogdmFsdWUsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tYXBwaW5nW3Njb3JlSW5kZXhdID0gb2JqO1xuICAgIHRoaXMuZWRpdG9yRGF0YUhhbmRsZXIoKTtcbiAgfVxufVxuXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUmVhZE9ubHlNb2RlOyBlbHNlIHJlYWRPbmx5Q29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJwdC0xMCBmcy0wLTkyIHNiLXctODVcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJmcy0wLTkyIGZvbnQtd2VpZ2h0LWJvbGRcIj57e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8ub3B0aW9uc319PHNwYW4gY2xhc3M9XCJzYi1yZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cbiAgICA8bGFiZWwgY2xhc3M9XCJmcy0wLTkyIGQtaW5saW5lLWJsb2NrXCI+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LnNlbGVjdExheW91dH19PC9sYWJlbD5cbiAgICA8aSBjbGFzcz1cImljb24gaW5mbyBjaXJjbGUgbWwtOFwiIHN1aVBvcHVwIHBvcHVwRGVsYXk9XCI1MDBcIiBwb3B1cFRleHQ9e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/Lm9wdGlvbnNQb3B1cFRleHR9fT48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyIG1yLThcIj48L3NwYW4+XG4gICAgPHNwYW4+PGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4teHMgc2ItYnRuLW91dGxpbmUtZ3JheSBtci01IHEtc2ItbGF5b3V0LXNpbmdsZVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6ICdtY3EtdmVydGljYWwnID09PSB0ZW1wbGF0ZVR5cGV9XCIgKGNsaWNrKT1cInNldFRlbXBsZXRlKCdtY3EtdmVydGljYWwnKVwiPjxpIGNsYXNzPVwibXItMTAgaC03XCI+PC9pPiB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8udmVydGljYWx9fTwvYnV0dG9uPjwvc3Bhbj5cbiAgICA8c3Bhbj48YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi14cyBzYi1idG4tb3V0bGluZS1ncmF5IG1yLTUgcS1zYi1sYXlvdXQtdHdvXCIgW25nQ2xhc3NdPVwie2FjdGl2ZTogJ21jcS12ZXJ0aWNhbC1zcGxpdCcgPT09IHRlbXBsYXRlVHlwZX1cIiAoY2xpY2spPVwic2V0VGVtcGxldGUoJ21jcS12ZXJ0aWNhbC1zcGxpdCcpXCI+PGkgY2xhc3M9XCJtci0xMCBoLTcgdy0yMFwiPjwvaT57e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8uZ3JpZH19PC9idXR0b24+PC9zcGFuPlxuICAgIDxzcGFuPjxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLXhzIHNiLWJ0bi1vdXRsaW5lLWdyYXkgcS1zYi1sYXlvdXQtdGhyZWVcIiBbbmdDbGFzc109XCJ7YWN0aXZlOiAnbWNxLWhvcml6b250YWwnID09PSB0ZW1wbGF0ZVR5cGV9XCIgKGNsaWNrKT1cInNldFRlbXBsZXRlKCdtY3EtaG9yaXpvbnRhbCcpXCI+IDxpIGNsYXNzPVwibXItMTAgaC03XCI+PC9pPiB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8uaG9yaXpvbnRhbH19PC9idXR0b24+PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGxhYmVsICpuZ0lmPVwic2hvd0Zvcm1FcnJvciAmJiAhZWRpdG9yU3RhdGUuYW5zd2VyICYmIHNvdXJjaW5nU2V0dGluZ3M/LmVuZm9yY2VDb3JyZWN0QW5zd2VyXCIgY2xhc3M9XCJ1aSBiYXNpYyByZWQgZXJyb3IgbGFiZWwgcHQtMSBtdC0xMFwiPlxuICAgIHt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5zZWxlY3RPbmVBbnN9fTwvbGFiZWw+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggcHQtMTAgZmxleC1kYyBzYi1tY3EtZm9ybVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggc2ItbWNxLWl0ZW0gZmxleC13LXdyYXBcIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGVkaXRvclN0YXRlLm9wdGlvbnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYi13LTg1IHNiLWNrZWRpdG9yIHJlbGF0aXZlIG1iLTE1XCI+XG4gICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImVkaXRvclN0YXRlLm9wdGlvbnMubGVuZ3RoIDwgM1wiIGNsYXNzPVwic2ItYnRuIHNiLWNrZWRpdG9yLWNsb3NlIGFic29sdXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdG9yU3RhdGUuZGVsZXRlT3B0aW9uKGkpO2VkaXRvckRhdGFIYW5kbGVyKCRldmVudCk7XCJcbiAgICAgICAgICBsaWJUZWxlbWV0cnlJbnRlcmFjdFxuICAgICAgICAgIFt0ZWxlbWV0cnlJbnRlcmFjdEVkYXRhXT1cInRlbGVtZXRyeVNlcnZpY2UuZ2V0VGVsZW1ldHJ5SW50ZXJhY3RFZGF0YSgnZGVsZXRlX29wdGlvbicsJ2NsaWNrJywnc3VibWl0Jyx0ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZClcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImljb24gY2xvc2VcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bGliLWNrZWRpdG9yLXRvb2wgW3NldENoYXJhY3RlckxpbWl0XT1cInNldENoYXJhY3RlckxpbWl0XCIgKGVkaXRvckRhdGFPdXRwdXQpPVwib3B0aW9uLmJvZHkgPSAkZXZlbnQuYm9keTsgb3B0aW9uLmxlbmd0aCA9ICRldmVudC5sZW5ndGg7IGVkaXRvckRhdGFIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgIFtlZGl0b3JEYXRhSW5wdXRdPVwib3B0aW9uLmJvZHlcIiBjbGFzcz1cImNrZWRpdG9yLXRvb2xfX29wdGlvbiBtYi0xMFwiXG4gICAgICAgICAgW2NsYXNzLm1iLTVdPVwic2hvd0Zvcm1FcnJvciAmJiAoW3VuZGVmaW5lZCwgJyddLmluY2x1ZGVzKG9wdGlvbi5ib2R5KSB8fCBvcHRpb24ubGVuZ3RoID4gc2V0Q2hhcmFjdGVyTGltaXQpXCI+XG4gICAgICAgIDwvbGliLWNrZWRpdG9yLXRvb2w+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cIlxuICAgICAgICAgICAgc2hvd0Zvcm1FcnJvciAmJiAob3B0aW9uLmJvZHkgPT09IHVuZGVmaW5lZCB8fCBvcHRpb24uYm9keSA9PT0gJycpXG4gICAgICAgICAgXCIgY2xhc3M9XCJzYi1jb2xvci1lcnJvciBmcy0wLTc4NVwiPnt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5maWxsVGhpc09wdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwib3B0aW9uLmxlbmd0aCA+IHNldENoYXJhY3RlckxpbWl0XCIgY2xhc3M9XCJ1aSBiYXNpYyByZWQgZXJyb3IgbGFiZWwgcHQtMVwiPlxuICAgICAgICAgIHt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5yZWR1Y2VTaXplfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2ItY2hlY2tib3ggc2ItY2hlY2tib3gtcHJpbWFyeSBwbC0xMCBtdC0wIHB0LTBcIiBbY2xhc3Muc2VsZWN0ZWRdPVwiZWRpdG9yU3RhdGUuYW5zd2VyID09PSBpLnRvU3RyaW5nKClcIiAqbmdJZj1cInNvdXJjaW5nU2V0dGluZ3M/LmVuZm9yY2VDb3JyZWN0QW5zd2VyICE9PSBmYWxzZVwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJhbnN3ZXJfe3sgaSArIDEgfX1cIiBuYW1lPVwiZXhhbXBsZVwiIHZhbHVlPVwie3sgaSB9fVwiICAoY2hhbmdlKT1cImVkaXRvckRhdGFIYW5kbGVyKCRldmVudCk7XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0b3JTdGF0ZS5hbnN3ZXJcIiBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIiBbY2hlY2tlZF09XCJlZGl0b3JTdGF0ZS5hbnN3ZXIgPT09IGkudG9TdHJpbmcoKVwiXG4gICAgICAgIGxpYlRlbGVtZXRyeUludGVyYWN0XG4gICAgICAgIFt0ZWxlbWV0cnlJbnRlcmFjdEVkYXRhXT1cInRlbGVtZXRyeVNlcnZpY2UuZ2V0VGVsZW1ldHJ5SW50ZXJhY3RFZGF0YSgnbWFya19hc19yaWdodF9hbndzZXInLCdjbGljaycsdW5kZWZpbmVkLHRlbGVtZXRyeVNlcnZpY2UudGVsZW1ldHJ5UGFnZUlkLHthbnN3ZXI6aS50b1N0cmluZygpfSlcIiAvPlxuICAgICAgICA8bGFiZWwgZm9yPVwiYW5zd2VyX3t7IGkgKyAxIH19XCIgY2xhc3M9XCJtci0wIGZzLTAtNzg1XCI+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmNvcnJlY3RBbnN9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiICpuZ0lmPVwic2hvd1N1Yk1lbnVcIj5cbiAgICAgICAgPGxpYi1xdWVzdGlvbi1vcHRpb24tc3ViLW1lbnUgW3N1Yk1lbnVzXT1cInN1Yk1lbnVzW2ldXCIgKG9uQ2hhbmdlKT1cInN1Yk1lbnVDaGFuZ2UoJGV2ZW50LGkpXCI+PC9saWItcXVlc3Rpb24tb3B0aW9uLXN1Yi1tZW51PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicGFyZW50TWV0YT8uYWxsb3dTY29yaW5nID09PSAnWWVzJ1wiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJzY29yZVwiIGNsYXNzPVwiZC1ibG9jayBtdC0xMCBvcHRpb25MYWJlbFwiPlNjb3JlIDxzcGFuIGNsYXNzPVwic2ItcmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cInNiLXRleHRib3ggZmFsc2UgbWItMzBcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBZGQgc2NvcmUgaGVyZSdcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRTY29yZSgkZXZlbnQudGFyZ2V0LnZhbHVlLGkpXCJcbiAgICAgICAgICAgICpuZ0lmPVwic291cmNpbmdTZXR0aW5ncy5zaG93QWRkU2NvcmVcIlxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICBbdmFsdWVdPVwibWFwcGluZ1tpXT8ub3V0Y29tZXM/LnNjb3JlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJlZGl0b3JTdGF0ZS5vcHRpb25zLmxlbmd0aCA8IGVkaXRvclN0YXRlLm1heGltdW1PcHRpb25zXCJcbiAgICAgICAgY2xhc3M9XCJzYi1idG4gc2ItYnRuLW91dGxpbmUtcHJpbWFyeSBzYi1idG4teHMgc2ItbGVmdC1pY29uLWJ0biB0ZXh0LWluaGVyaXQgYi0wIGJnLW5vbmUgbm8taG92ZXIgcC0wIG1iLTEwIG10LTEwXCJcbiAgICAgICAgKGNsaWNrKT1cImVkaXRvclN0YXRlLmFkZE9wdGlvbnMoKTtlZGl0b3JEYXRhSGFuZGxlcigkZXZlbnQpO1wiXG4gICAgICAgIGxpYlRlbGVtZXRyeUludGVyYWN0XG4gICAgICAgIFt0ZWxlbWV0cnlJbnRlcmFjdEVkYXRhXT1cInRlbGVtZXRyeVNlcnZpY2UuZ2V0VGVsZW1ldHJ5SW50ZXJhY3RFZGF0YSgnYWRkX29wdGlvbicsJ2NsaWNrJywnc3VibWl0Jyx0ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZClcIiA+XG4gICAgICAgIDxpIGNsYXNzPVwicGx1cyBjaXJjbGUgaWNvbiBmcy0xLTI4NiBwdWxsLWxlZnQgbXItMFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48c3BhbiBjbGFzcz1cInNiLWxpbmUtaGVpZ2h0LTI0XCI+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmFkZE9wdGlvbn19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjcmVhZE9ubHlDb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJyb3cgbWItMCBwLTBcIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGVkaXRvclN0YXRlLm9wdGlvbnM7IGxldCBpPWluZGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cInR3ZWx2ZSB3aWRlIGNvbHVtbiBwLTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJja2VkaXRvci10b29sIHdpZHRoLTEwMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2tlZGl0b3ItdG9vbF9fcXVlc3Rpb24tcmVhZG9ubHkgbWItMjRcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJweC0xNiBweS04IGZzLTAtOTIgbWItMCBja2VkaXRvci10b29sX19sYWJlbCB3aWR0aC0xMDBcIj5PcHRpb24ge3sgaSsxIH19PC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2tlZGl0b3ItdG9vbF9fc29sdXRpb25fX2JvZHlcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiZnMtMC03ODUgcC0xNlwiIFtpbm5lckhUTUxdPVwib3B0aW9uLmJvZHkgIHwgc2FuaXRpemVIdG1sXCI+PC9wPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1jcS1jaGVja2JveC1hbnN3ZXJcIiAqbmdJZj1cImVkaXRvclN0YXRlLmFuc3dlciA9PT0gaS50b1N0cmluZygpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYi1jaGVja2JveCBzYi1jaGVja2JveC1wcmltYXJ5IG1yLWF1dG8gc2VsZWN0ZWRcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJjaGVjazFcIiBuYW1lPVwiZXhhbXBsZVwiIGRpc2FibGVkIGNoZWNrZWQ+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNoZWNrMVwiPnt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5jb3JyZWN0QW5zfX08L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCIgKm5nSWY9XCJzaG93U3ViTWVudVwiPlxuICAgICAgICA8bGliLXF1ZXN0aW9uLW9wdGlvbi1zdWItbWVudSBbc3ViTWVudXNdPVwic3ViTWVudXNbaV1cIiAob25DaGFuZ2UpPVwic3ViTWVudUNoYW5nZSgkZXZlbnQsaSlcIj48L2xpYi1xdWVzdGlvbi1vcHRpb24tc3ViLW1lbnU+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJwYXJlbnRNZXRhPy5hbGxvd1Njb3JpbmcgPT09ICdZZXMnXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInNjb3JlXCIgY2xhc3M9XCJkLWJsb2NrIG10LTEwIG9wdGlvbkxhYmVsXCI+U2NvcmU8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJzYi10ZXh0Ym94IGZhbHNlIG1iLTMwXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQWRkIHNjb3JlIGhlcmUnXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0U2NvcmUoJGV2ZW50LnRhcmdldC52YWx1ZSxpKVwiXG4gICAgICAgICAgICAqbmdJZj1cInNvdXJjaW5nU2V0dGluZ3Muc2hvd0FkZFNjb3JlXCJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm1hcHBpbmdbaV0/Lm91dGNvbWVzPy5zY29yZVwiIFxuICAgICAgICAgICAgZGlzYWJsZWRcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2xsZWN0aW9uLWVkaXRvci1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vcHRpb25zL29wdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sbGVjdGlvbi1lZGl0b3ItbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvb3B0aW9ucy9vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sS0FBSyxDQUFDLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBVy9CLE1BQU0sT0FBTyxnQkFBZ0I7SUFlM0IsWUFDUyxnQkFBd0MsRUFDeEMsYUFBNEIsRUFDNUIsV0FBd0IsRUFDdkIsYUFBNEI7UUFIN0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWQ3QixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRVoscUJBQWdCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDakUsc0JBQWlCLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsY0FBYyxDQUFDO1FBRXJDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFTLEtBQUssQ0FBQztJQU92QixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUU7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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBFZGl0b3JUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVsZW1ldHJ5L3RlbGVtZXRyeS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViTWVudSB9IGZyb20gJy4uL3F1ZXN0aW9uLW9wdGlvbi1zdWItbWVudS9xdWVzdGlvbi1vcHRpb24tc3ViLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJlZS90cmVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VkaXRvci9lZGl0b3Iuc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItb3B0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3B0aW9ucy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBPcHRpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZWRpdG9yU3RhdGU6IGFueTtcbiAgQElucHV0KCkgc2hvd0Zvcm1FcnJvcjtcbiAgQElucHV0KCkgc291cmNpbmdTZXR0aW5ncztcbiAgQElucHV0KCkgcXVlc3Rpb25QcmltYXJ5Q2F0ZWdvcnk7XG4gIEBJbnB1dCgpIG1hcHBpbmcgPSBbXTtcbiAgQElucHV0KCkgaXNSZWFkT25seU1vZGU7XG4gIEBPdXRwdXQoKSBlZGl0b3JEYXRhT3V0cHV0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBwdWJsaWMgc2V0Q2hhcmFjdGVyTGltaXQgPSAxNjA7XG4gIHB1YmxpYyBzZXRJbWFnZUxpbWl0ID0gMTtcbiAgcHVibGljIHRlbXBsYXRlVHlwZSA9ICdtY3EtdmVydGljYWwnO1xuICBzdWJNZW51czogU3ViTWVudVtdW107XG4gIGhpbnRzID0gW107XG4gIHNob3dTdWJNZW51OmJvb2xlYW49ZmFsc2U7XG4gIHBhcmVudE1ldGE6IGFueTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbGVtZXRyeVNlcnZpY2U6IEVkaXRvclRlbGVtZXRyeVNlcnZpY2UsXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHVibGljIHRyZWVTZXJ2aWNlOiBUcmVlU2VydmljZSxcbiAgICBwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghXy5pc1VuZGVmaW5lZCh0aGlzLmVkaXRvclN0YXRlLnRlbXBsYXRlSWQpKSB7XG4gICAgICB0aGlzLnRlbXBsYXRlVHlwZSA9IHRoaXMuZWRpdG9yU3RhdGUudGVtcGxhdGVJZDtcbiAgICB9XG4gICAgdGhpcy5lZGl0b3JEYXRhSGFuZGxlcigpO1xuICAgIHRoaXMubWFwcGluZyA9IF8uZ2V0KHRoaXMuZWRpdG9yU3RhdGUsICdyZXNwb25zZURlY2xhcmF0aW9uLnJlc3BvbnNlMS5tYXBwaW5nJykgfHwgW107XG4gICAgaWYoIV8uaXNVbmRlZmluZWQodGhpcy5lZGl0b3JTZXJ2aWNlLmVkaXRvckNvbmZpZy5jb25maWcucmVuZGVyVGF4b25vbXkpKXtcbiAgICAgIHRoaXMucGFyZW50TWV0YSA9IHRoaXMudHJlZVNlcnZpY2UuZ2V0Rmlyc3RDaGlsZCgpLmRhdGEubWV0YWRhdGE7XG4gICAgICB0aGlzLnNob3dTdWJNZW51PXRydWU7XG4gICAgfVxuICB9XG5cbiAgZWRpdG9yRGF0YUhhbmRsZXIoZXZlbnQ/KSB7XG4gICAgY29uc3QgYm9keSA9IHRoaXMucHJlcGFyZU1jcUJvZHkodGhpcy5lZGl0b3JTdGF0ZSk7XG4gICAgdGhpcy5lZGl0b3JEYXRhT3V0cHV0LmVtaXQoeyBib2R5LCBtZWRpYW9iajogZXZlbnQgPyBldmVudC5tZWRpYW9iaiA6IHVuZGVmaW5lZCB9KTtcbiAgfVxuXG4gIHByZXBhcmVNY3FCb2R5KGVkaXRvclN0YXRlKSB7XG4gICAgbGV0IG1ldGFkYXRhOiBhbnk7XG4gICAgY29uc3QgY29ycmVjdEFuc3dlciA9IGVkaXRvclN0YXRlLmFuc3dlcjtcbiAgICBsZXQgcmVzaW5kZXg7XG4gICAgY29uc3Qgb3B0aW9ucyA9IF8ubWFwKGVkaXRvclN0YXRlLm9wdGlvbnMsIChvcHQsIGtleSkgPT4ge1xuICAgICAgcmVzaW5kZXggPSBOdW1iZXIoa2V5KTtcbiAgICAgIGlmIChOdW1iZXIoY29ycmVjdEFuc3dlcikgPT09IGtleSkge1xuICAgICAgICByZXR1cm4geyBhbnN3ZXI6IHRydWUsIHZhbHVlOiB7IGJvZHk6IG9wdC5ib2R5LCB2YWx1ZTogcmVzaW5kZXggfSB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHsgYW5zd2VyOiBmYWxzZSwgdmFsdWU6IHsgYm9keTogb3B0LmJvZHksIHZhbHVlOiByZXNpbmRleCB9IH07XG4gICAgICB9XG4gICAgfSk7XG4gICAgbWV0YWRhdGEgPSB7XG4gICAgICB0ZW1wbGF0ZUlkOiB0aGlzLnRlbXBsYXRlVHlwZSxcbiAgICAgIG5hbWU6IHRoaXMucXVlc3Rpb25QcmltYXJ5Q2F0ZWdvcnkgfHwgJ011bHRpcGxlIENob2ljZSBRdWVzdGlvbicsXG4gICAgICByZXNwb25zZURlY2xhcmF0aW9uOiB0aGlzLmdldFJlc3BvbnNlRGVjbGFyYXRpb24oZWRpdG9yU3RhdGUpLFxuICAgICAgaW50ZXJhY3Rpb25UeXBlczogWydjaG9pY2UnXSxcbiAgICAgIGludGVyYWN0aW9uczogdGhpcy5nZXRJbnRlcmFjdGlvbnMoZWRpdG9yU3RhdGUub3B0aW9ucyksXG4gICAgICBlZGl0b3JTdGF0ZToge1xuICAgICAgICBvcHRpb25zLFxuICAgICAgfSxcbiAgICAgIHFUeXBlOiAnTUNRJyxcbiAgICAgIHByaW1hcnlDYXRlZ29yeTogdGhpcy5xdWVzdGlvblByaW1hcnlDYXRlZ29yeSB8fCAnTXVsdGlwbGUgQ2hvaWNlIFF1ZXN0aW9uJyxcbiAgICB9O1xuICAgIHJldHVybiBtZXRhZGF0YTtcbiAgfVxuXG4gIGdldFJlc3BvbnNlRGVjbGFyYXRpb24oZWRpdG9yU3RhdGUpIHtcbiAgICBjb25zdCByZXNwb25zZURlY2xhcmF0aW9uID0ge1xuICAgICAgcmVzcG9uc2UxOiB7XG4gICAgICAgIG1heFNjb3JlOiAxLFxuICAgICAgICBjYXJkaW5hbGl0eTogJ3NpbmdsZScsXG4gICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgY29ycmVjdFJlc3BvbnNlOiB7XG4gICAgICAgICAgdmFsdWU6IGVkaXRvclN0YXRlLmFuc3dlcixcbiAgICAgICAgICBvdXRjb21lczogeyBTQ09SRTogMSB9LFxuICAgICAgICB9LFxuICAgICAgICBtYXBwaW5nOiB0aGlzLm1hcHBpbmcsXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIHJlc3BvbnNlRGVjbGFyYXRpb247XG4gIH1cblxuICBnZXRJbnRlcmFjdGlvbnMob3B0aW9ucykge1xuICAgIGxldCBpbmRleDtcbiAgICBjb25zdCBpbnRlcmFjdE9wdGlvbnMgPSBfLm1hcChvcHRpb25zLCAob3B0LCBrZXkpID0+IHtcbiAgICAgIGluZGV4ID0gTnVtYmVyKGtleSk7XG4gICAgICBjb25zdCBoaW50cyAgPSBfLmdldCh0aGlzLmVkaXRvclN0YXRlLCBgaW50ZXJhY3Rpb25zLnJlc3BvbnNlMS5vcHRpb25zWyR7aW5kZXh9XS5oaW50c2ApXG4gICAgICByZXR1cm4geyBsYWJlbDogb3B0LmJvZHksIHZhbHVlOiBpbmRleCwgaGludHMgfTtcbiAgICB9KTtcbiAgICB0aGlzLnN1Yk1lbnVDb25maWcob3B0aW9ucyk7XG4gICAgY29uc3QgaW50ZXJhY3Rpb25zID0ge1xuICAgICAgcmVzcG9uc2UxOiB7XG4gICAgICAgIHR5cGU6ICdjaG9pY2UnLFxuICAgICAgICBvcHRpb25zOiBpbnRlcmFjdE9wdGlvbnMsXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIGludGVyYWN0aW9ucztcbiAgfVxuXG4gIHNldFRlbXBsZXRlKHRlbXBsYXRlKSB7XG4gICAgdGhpcy50ZW1wbGF0ZVR5cGUgPSB0ZW1wbGF0ZTtcbiAgICB0aGlzLmVkaXRvckRhdGFIYW5kbGVyKCk7XG4gIH1cblxuICBzdWJNZW51Q2hhbmdlKHsgaW5kZXgsIHZhbHVlIH0sIG9wdGlvbkluZGV4KSB7XG4gICAgXy5zZXQodGhpcy5lZGl0b3JTdGF0ZSwgYGludGVyYWN0aW9ucy5yZXNwb25zZTEub3B0aW9uc1ske29wdGlvbkluZGV4fV0uaGludHMuZW5gLCB2YWx1ZSlcbiAgfVxuXG4gIHN1Yk1lbnVDb25maWcob3B0aW9ucykge1xuICAgIHRoaXMuc3ViTWVudXMgPSBbXVxuICAgIG9wdGlvbnMubWFwKChvcHQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSAgPSBfLmdldCh0aGlzLmVkaXRvclN0YXRlLCBgaW50ZXJhY3Rpb25zLnJlc3BvbnNlMS5vcHRpb25zWyR7aW5kZXh9XS5oaW50cy5lbmApXG4gICAgICB0aGlzLnN1Yk1lbnVzW2luZGV4XSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnYWRkSGludCcsXG4gICAgICAgICAgbmFtZTogJ0FkZCBIaW50JyxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBsYWJlbDogJ0hpbnQnLFxuICAgICAgICAgIGVuYWJsZWQ6IHZhbHVlID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgc2hvdzogXy5nZXQodGhpcy5zb3VyY2luZ1NldHRpbmdzLCAnc2hvd0FkZEhpbnRzJyksXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0U2NvcmUodmFsdWUsIHNjb3JlSW5kZXgpIHtcbiAgICBjb25zdCBvYmogPSB7XG4gICAgICByZXNwb25zZTogc2NvcmVJbmRleCxcbiAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgIHNjb3JlOiB2YWx1ZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLm1hcHBpbmdbc2NvcmVJbmRleF0gPSBvYmo7XG4gICAgdGhpcy5lZGl0b3JEYXRhSGFuZGxlcigpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUmVhZE9ubHlNb2RlOyBlbHNlIHJlYWRPbmx5Q29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJwdC0xMCBmcy0wLTkyIHNiLXctODVcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJmcy0wLTkyIGZvbnQtd2VpZ2h0LWJvbGRcIj57e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8ub3B0aW9uc319PHNwYW4gY2xhc3M9XCJzYi1yZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cbiAgICA8bGFiZWwgY2xhc3M9XCJmcy0wLTkyIGQtaW5saW5lLWJsb2NrXCI+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LnNlbGVjdExheW91dH19PC9sYWJlbD5cbiAgICA8aSBjbGFzcz1cImljb24gaW5mbyBjaXJjbGUgbWwtOFwiIHN1aVBvcHVwIHBvcHVwRGVsYXk9XCI1MDBcIiBwb3B1cFRleHQ9e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/Lm9wdGlvbnNQb3B1cFRleHR9fT48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyIG1yLThcIj48L3NwYW4+XG4gICAgPHNwYW4+PGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4teHMgc2ItYnRuLW91dGxpbmUtZ3JheSBtci01IHEtc2ItbGF5b3V0LXNpbmdsZVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6ICdtY3EtdmVydGljYWwnID09PSB0ZW1wbGF0ZVR5cGV9XCIgKGNsaWNrKT1cInNldFRlbXBsZXRlKCdtY3EtdmVydGljYWwnKVwiPjxpIGNsYXNzPVwibXItMTAgaC03XCI+PC9pPiB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8udmVydGljYWx9fTwvYnV0dG9uPjwvc3Bhbj5cbiAgICA8c3Bhbj48YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi14cyBzYi1idG4tb3V0bGluZS1ncmF5IG1yLTUgcS1zYi1sYXlvdXQtdHdvXCIgW25nQ2xhc3NdPVwie2FjdGl2ZTogJ21jcS12ZXJ0aWNhbC1zcGxpdCcgPT09IHRlbXBsYXRlVHlwZX1cIiAoY2xpY2spPVwic2V0VGVtcGxldGUoJ21jcS12ZXJ0aWNhbC1zcGxpdCcpXCI+PGkgY2xhc3M9XCJtci0xMCBoLTcgdy0yMFwiPjwvaT57e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8uZ3JpZH19PC9idXR0b24+PC9zcGFuPlxuICAgIDxzcGFuPjxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLXhzIHNiLWJ0bi1vdXRsaW5lLWdyYXkgcS1zYi1sYXlvdXQtdGhyZWVcIiBbbmdDbGFzc109XCJ7YWN0aXZlOiAnbWNxLWhvcml6b250YWwnID09PSB0ZW1wbGF0ZVR5cGV9XCIgKGNsaWNrKT1cInNldFRlbXBsZXRlKCdtY3EtaG9yaXpvbnRhbCcpXCI+IDxpIGNsYXNzPVwibXItMTAgaC03XCI+PC9pPiB7e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8uaG9yaXpvbnRhbH19PC9idXR0b24+PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGxhYmVsICpuZ0lmPVwic2hvd0Zvcm1FcnJvciAmJiAhZWRpdG9yU3RhdGUuYW5zd2VyICYmIHNvdXJjaW5nU2V0dGluZ3M/LmVuZm9yY2VDb3JyZWN0QW5zd2VyXCIgY2xhc3M9XCJ1aSBiYXNpYyByZWQgZXJyb3IgbGFiZWwgcHQtMSBtdC0xMFwiPlxuICAgIHt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5zZWxlY3RPbmVBbnN9fTwvbGFiZWw+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggcHQtMTAgZmxleC1kYyBzYi1tY3EtZm9ybVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggc2ItbWNxLWl0ZW0gZmxleC13LXdyYXBcIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGVkaXRvclN0YXRlLm9wdGlvbnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYi13LTg1IHNiLWNrZWRpdG9yIHJlbGF0aXZlIG1iLTE1XCI+XG4gICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImVkaXRvclN0YXRlLm9wdGlvbnMubGVuZ3RoIDwgM1wiIGNsYXNzPVwic2ItYnRuIHNiLWNrZWRpdG9yLWNsb3NlIGFic29sdXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdG9yU3RhdGUuZGVsZXRlT3B0aW9uKGkpO2VkaXRvckRhdGFIYW5kbGVyKCRldmVudCk7XCJcbiAgICAgICAgICBsaWJUZWxlbWV0cnlJbnRlcmFjdFxuICAgICAgICAgIFt0ZWxlbWV0cnlJbnRlcmFjdEVkYXRhXT1cInRlbGVtZXRyeVNlcnZpY2UuZ2V0VGVsZW1ldHJ5SW50ZXJhY3RFZGF0YSgnZGVsZXRlX29wdGlvbicsJ2NsaWNrJywnc3VibWl0Jyx0ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZClcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImljb24gY2xvc2VcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bGliLWNrZWRpdG9yLXRvb2wgW3NldENoYXJhY3RlckxpbWl0XT1cInNldENoYXJhY3RlckxpbWl0XCIgKGVkaXRvckRhdGFPdXRwdXQpPVwib3B0aW9uLmJvZHkgPSAkZXZlbnQuYm9keTsgb3B0aW9uLmxlbmd0aCA9ICRldmVudC5sZW5ndGg7IGVkaXRvckRhdGFIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgIFtlZGl0b3JEYXRhSW5wdXRdPVwib3B0aW9uLmJvZHlcIiBjbGFzcz1cImNrZWRpdG9yLXRvb2xfX29wdGlvbiBtYi0xMFwiXG4gICAgICAgICAgW2NsYXNzLm1iLTVdPVwic2hvd0Zvcm1FcnJvciAmJiAoW3VuZGVmaW5lZCwgJyddLmluY2x1ZGVzKG9wdGlvbi5ib2R5KSB8fCBvcHRpb24ubGVuZ3RoID4gc2V0Q2hhcmFjdGVyTGltaXQpXCI+XG4gICAgICAgIDwvbGliLWNrZWRpdG9yLXRvb2w+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cIlxuICAgICAgICAgICAgc2hvd0Zvcm1FcnJvciAmJiAob3B0aW9uLmJvZHkgPT09IHVuZGVmaW5lZCB8fCBvcHRpb24uYm9keSA9PT0gJycpXG4gICAgICAgICAgXCIgY2xhc3M9XCJzYi1jb2xvci1lcnJvciBmcy0wLTc4NVwiPnt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5maWxsVGhpc09wdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwib3B0aW9uLmxlbmd0aCA+IHNldENoYXJhY3RlckxpbWl0XCIgY2xhc3M9XCJ1aSBiYXNpYyByZWQgZXJyb3IgbGFiZWwgcHQtMVwiPlxuICAgICAgICAgIHt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5yZWR1Y2VTaXplfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2ItY2hlY2tib3ggc2ItY2hlY2tib3gtcHJpbWFyeSBwbC0xMCBtdC0wIHB0LTBcIiBbY2xhc3Muc2VsZWN0ZWRdPVwiZWRpdG9yU3RhdGUuYW5zd2VyID09PSBpLnRvU3RyaW5nKClcIiAqbmdJZj1cInNvdXJjaW5nU2V0dGluZ3M/LmVuZm9yY2VDb3JyZWN0QW5zd2VyICE9PSBmYWxzZVwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJhbnN3ZXJfe3sgaSArIDEgfX1cIiBuYW1lPVwiZXhhbXBsZVwiIHZhbHVlPVwie3sgaSB9fVwiICAoY2hhbmdlKT1cImVkaXRvckRhdGFIYW5kbGVyKCRldmVudCk7XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0b3JTdGF0ZS5hbnN3ZXJcIiBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIiBbY2hlY2tlZF09XCJlZGl0b3JTdGF0ZS5hbnN3ZXIgPT09IGkudG9TdHJpbmcoKVwiXG4gICAgICAgIGxpYlRlbGVtZXRyeUludGVyYWN0XG4gICAgICAgIFt0ZWxlbWV0cnlJbnRlcmFjdEVkYXRhXT1cInRlbGVtZXRyeVNlcnZpY2UuZ2V0VGVsZW1ldHJ5SW50ZXJhY3RFZGF0YSgnbWFya19hc19yaWdodF9hbndzZXInLCdjbGljaycsdW5kZWZpbmVkLHRlbGVtZXRyeVNlcnZpY2UudGVsZW1ldHJ5UGFnZUlkLHthbnN3ZXI6aS50b1N0cmluZygpfSlcIiAvPlxuICAgICAgICA8bGFiZWwgZm9yPVwiYW5zd2VyX3t7IGkgKyAxIH19XCIgY2xhc3M9XCJtci0wIGZzLTAtNzg1XCI+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmNvcnJlY3RBbnN9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiICpuZ0lmPVwic2hvd1N1Yk1lbnVcIj5cbiAgICAgICAgPGxpYi1xdWVzdGlvbi1vcHRpb24tc3ViLW1lbnUgW3N1Yk1lbnVzXT1cInN1Yk1lbnVzW2ldXCIgKG9uQ2hhbmdlKT1cInN1Yk1lbnVDaGFuZ2UoJGV2ZW50LGkpXCI+PC9saWItcXVlc3Rpb24tb3B0aW9uLXN1Yi1tZW51PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicGFyZW50TWV0YT8uYWxsb3dTY29yaW5nID09PSAnWWVzJ1wiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJzY29yZVwiIGNsYXNzPVwiZC1ibG9jayBtdC0xMCBvcHRpb25MYWJlbFwiPlNjb3JlIDxzcGFuIGNsYXNzPVwic2ItcmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cInNiLXRleHRib3ggZmFsc2UgbWItMzBcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBZGQgc2NvcmUgaGVyZSdcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRTY29yZSgkZXZlbnQudGFyZ2V0LnZhbHVlLGkpXCJcbiAgICAgICAgICAgICpuZ0lmPVwic291cmNpbmdTZXR0aW5ncy5zaG93QWRkU2NvcmVcIlxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICBbdmFsdWVdPVwibWFwcGluZ1tpXT8ub3V0Y29tZXM/LnNjb3JlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJlZGl0b3JTdGF0ZS5vcHRpb25zLmxlbmd0aCA8IGVkaXRvclN0YXRlLm1heGltdW1PcHRpb25zXCJcbiAgICAgICAgY2xhc3M9XCJzYi1idG4gc2ItYnRuLW91dGxpbmUtcHJpbWFyeSBzYi1idG4teHMgc2ItbGVmdC1pY29uLWJ0biB0ZXh0LWluaGVyaXQgYi0wIGJnLW5vbmUgbm8taG92ZXIgcC0wIG1iLTEwIG10LTEwXCJcbiAgICAgICAgKGNsaWNrKT1cImVkaXRvclN0YXRlLmFkZE9wdGlvbnMoKTtlZGl0b3JEYXRhSGFuZGxlcigkZXZlbnQpO1wiXG4gICAgICAgIGxpYlRlbGVtZXRyeUludGVyYWN0XG4gICAgICAgIFt0ZWxlbWV0cnlJbnRlcmFjdEVkYXRhXT1cInRlbGVtZXRyeVNlcnZpY2UuZ2V0VGVsZW1ldHJ5SW50ZXJhY3RFZGF0YSgnYWRkX29wdGlvbicsJ2NsaWNrJywnc3VibWl0Jyx0ZWxlbWV0cnlTZXJ2aWNlLnRlbGVtZXRyeVBhZ2VJZClcIiA+XG4gICAgICAgIDxpIGNsYXNzPVwicGx1cyBjaXJjbGUgaWNvbiBmcy0xLTI4NiBwdWxsLWxlZnQgbXItMFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48c3BhbiBjbGFzcz1cInNiLWxpbmUtaGVpZ2h0LTI0XCI+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LmFkZE9wdGlvbn19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjcmVhZE9ubHlDb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJyb3cgbWItMCBwLTBcIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGVkaXRvclN0YXRlLm9wdGlvbnM7IGxldCBpPWluZGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cInR3ZWx2ZSB3aWRlIGNvbHVtbiBwLTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJja2VkaXRvci10b29sIHdpZHRoLTEwMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2tlZGl0b3ItdG9vbF9fcXVlc3Rpb24tcmVhZG9ubHkgbWItMjRcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJweC0xNiBweS04IGZzLTAtOTIgbWItMCBja2VkaXRvci10b29sX19sYWJlbCB3aWR0aC0xMDBcIj5PcHRpb24ge3sgaSsxIH19PC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2tlZGl0b3ItdG9vbF9fc29sdXRpb25fX2JvZHlcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiZnMtMC03ODUgcC0xNlwiIFtpbm5lckhUTUxdPVwib3B0aW9uLmJvZHkgIHwgc2FuaXRpemVIdG1sXCI+PC9wPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1jcS1jaGVja2JveC1hbnN3ZXJcIiAqbmdJZj1cImVkaXRvclN0YXRlLmFuc3dlciA9PT0gaS50b1N0cmluZygpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYi1jaGVja2JveCBzYi1jaGVja2JveC1wcmltYXJ5IG1yLWF1dG8gc2VsZWN0ZWRcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJjaGVjazFcIiBuYW1lPVwiZXhhbXBsZVwiIGRpc2FibGVkIGNoZWNrZWQ+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNoZWNrMVwiPnt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5jb3JyZWN0QW5zfX08L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCIgKm5nSWY9XCJzaG93U3ViTWVudVwiPlxuICAgICAgICA8bGliLXF1ZXN0aW9uLW9wdGlvbi1zdWItbWVudSBbc3ViTWVudXNdPVwic3ViTWVudXNbaV1cIiAob25DaGFuZ2UpPVwic3ViTWVudUNoYW5nZSgkZXZlbnQsaSlcIj48L2xpYi1xdWVzdGlvbi1vcHRpb24tc3ViLW1lbnU+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJwYXJlbnRNZXRhPy5hbGxvd1Njb3JpbmcgPT09ICdZZXMnXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInNjb3JlXCIgY2xhc3M9XCJkLWJsb2NrIG10LTEwIG9wdGlvbkxhYmVsXCI+U2NvcmU8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJzYi10ZXh0Ym94IGZhbHNlIG1iLTMwXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQWRkIHNjb3JlIGhlcmUnXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0U2NvcmUoJGV2ZW50LnRhcmdldC52YWx1ZSxpKVwiXG4gICAgICAgICAgICAqbmdJZj1cInNvdXJjaW5nU2V0dGluZ3Muc2hvd0FkZFNjb3JlXCJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm1hcHBpbmdbaV0/Lm91dGNvbWVzPy5zY29yZVwiIFxuICAgICAgICAgICAgZGlzYWJsZWRcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -35,7 +35,7 @@ export class ProgressStatusComponent {
|
|
|
35
35
|
this.expandedElement = (this.expandedElement == event.criteria) ? "" : event.criteria;
|
|
36
36
|
}
|
|
37
37
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressStatusComponent, deps: [{ token: i1.EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgressStatusComponent, selector: "lib-progress-status", 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 </div>\n <!-- Right Player Sections -->\n <div class=\"eight wide column bg-white pl-40 mb-10 w-73\">\n <table aria-describedby=\"progress\">\n <thead>\n <tr>\n <th class=\"width-40\">Criteria</th>\n <th class=\"width-13\">Max Score</th>\n <th class=\"width-13\">Min Score</th>\n <th class=\"width-24\">Questions Created</th>\n <th class=\"width-10\"></th>\n </tr>\n </thead>\n <tbody *ngFor=\"let item of data;let i=index\">\n <tr>\n <td class=\"padding-x-25 font-blue font-bold\">{{item.criteria}}</td>\n <td><input type=\"number\" value=\"{{item.maxScore}}\" disabled></td>\n <td><input type=\"number\" value=\"{{item.minScore}}\" disabled></td>\n <td><input type=\"number\" value=\"{{item.questionsCreated}}\" disabled></td>\n <td class=\"border flex\" (click)=\"expand(item)\"><i [class]=\"expandedElement==item?.criteria ? 'chevron up icon font-blue' : 'chevron down icon font-blue'\"></i></td>\n </tr>\n <tr *ngIf=\"expandedElement==item?.criteria\" class=\"hidden-block\">\n <td class=\"padding-x-20\"></td>\n <td><div><label class=\"label\">Level 1</label></div><input class=\"hidden-input\" type=\"number\" value=\"{{item.maxScore}}\" disabled></td>\n <td><div><label class=\"label\">Level 2</label></div><input class=\"hidden-input\" type=\"number\" value=\"{{item.minScore}}\" disabled></td>\n <td><div><label class=\"label\">Level 3</label></div><input class=\"hidden-input\" type=\"number\" value=\"{{item.questionsCreated}}\" disabled></td>\n <td class=\"flex\"></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;width:97%;border-collapse:collapse}table thead tr .width-40{width:40%}table thead tr .width-13{width:13%}table thead tr .width-24{width:24%}table thead tr .width-10{width:10%}table tbody{border-top:15px solid white;font-family:arial,sans-serif}table tbody tr{height:60px;background:#e9e8e8}table tbody tr td input{max-width:37%;box-sizing:border-box;height:43px;border-radius:6px;text-align:center;background:#fff}table tbody tr td .hidden-input{margin-bottom:10px}table tbody tr td .label{font-size:18px!important;margin-top:5px}table tbody tr .padding-x-25{padding:0 25px}table tbody tr .font-blue{color:#2f2fb0}table tbody tr .font-bold{font-weight:700}.border{border-left:1px solid rgb(126,126,126)}.flex{display:flex;justify-content:center;height:inherit;align-items:center}.hidden-block{display:table-row;background:#fff!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.HeaderComponent, selector: "lib-header", inputs: ["pageId", "labelConfigData", "buttonLoaders", "showComment", "publishchecklist", "requestChange"], outputs: ["toolbarEmitter", "qualityParamEmitter"] }] }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgressStatusComponent, selector: "lib-progress-status", 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 </div>\n <!-- Right Player Sections -->\n <div class=\"eight wide column bg-white pl-40 mb-10 w-73\">\n <table aria-describedby=\"progress\">\n <thead>\n <tr>\n <th class=\"width-40\">Criteria</th>\n <th class=\"width-13\">Max Score</th>\n <th class=\"width-13\">Min Score</th>\n <th class=\"width-24\">Questions Created</th>\n <th class=\"width-10\"></th>\n </tr>\n </thead>\n <tbody *ngFor=\"let item of data;let i=index\">\n <tr>\n <td class=\"padding-x-25 font-blue font-bold\">{{item.criteria}}</td>\n <td><input type=\"number\" value=\"{{item.maxScore}}\" disabled></td>\n <td><input type=\"number\" value=\"{{item.minScore}}\" disabled></td>\n <td><input type=\"number\" value=\"{{item.questionsCreated}}\" disabled></td>\n <td class=\"border flex\" (click)=\"expand(item)\"><i [class]=\"expandedElement==item?.criteria ? 'chevron up icon font-blue' : 'chevron down icon font-blue'\"></i></td>\n </tr>\n <tr *ngIf=\"expandedElement==item?.criteria\" class=\"hidden-block\">\n <td class=\"padding-x-20\"></td>\n <td><div><label class=\"label\">Level 1</label></div><input class=\"hidden-input\" type=\"number\" value=\"{{item.maxScore}}\" disabled></td>\n <td><div><label class=\"label\">Level 2</label></div><input class=\"hidden-input\" type=\"number\" value=\"{{item.minScore}}\" disabled></td>\n <td><div><label class=\"label\">Level 3</label></div><input class=\"hidden-input\" type=\"number\" value=\"{{item.questionsCreated}}\" disabled></td>\n <td class=\"flex\"></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;width:97%;border-collapse:collapse}table thead tr .width-40{width:40%}table thead tr .width-13{width:13%}table thead tr .width-24{width:24%}table thead tr .width-10{width:10%}table tbody{border-top:15px solid white;font-family:arial,sans-serif}table tbody tr{height:60px;background:#e9e8e8}table tbody tr td input{max-width:37%;box-sizing:border-box;height:43px;border-radius:6px;text-align:center;background:#fff}table tbody tr td .hidden-input{margin-bottom:10px}table tbody tr td .label{font-size:18px!important;margin-top:5px}table tbody tr .padding-x-25{padding:0 25px}table tbody tr .font-blue{color:#2f2fb0}table tbody tr .font-bold{font-weight:700}.border{border-left:1px solid rgb(126,126,126)}.flex{display:flex;justify-content:center;height:inherit;align-items:center}.hidden-block{display:table-row;background:#fff!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.HeaderComponent, selector: "lib-header", inputs: ["pageId", "labelConfigData", "buttonLoaders", "showComment", "publishchecklist", "requestChange"], outputs: ["toolbarEmitter", "bulkUploadEmitter", "qualityParamEmitter"] }] }); }
|
|
39
39
|
}
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressStatusComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
@@ -7,6 +7,7 @@ import * as i3 from "@angular/common";
|
|
|
7
7
|
import * as i4 from "@project-sunbird/ng2-semantic-ui";
|
|
8
8
|
import * as i5 from "@project-sunbird/common-form-elements-full";
|
|
9
9
|
import * as i6 from "../../directives/telemetry-interact/telemetry-interact.directive";
|
|
10
|
+
import * as i7 from "../../pipes/interpolate.pipe";
|
|
10
11
|
export class PublishChecklistComponent {
|
|
11
12
|
constructor(telemetryService, configService) {
|
|
12
13
|
this.telemetryService = telemetryService;
|
|
@@ -52,16 +53,18 @@ export class PublishChecklistComponent {
|
|
|
52
53
|
this.fieldsAvailable = event;
|
|
53
54
|
}
|
|
54
55
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PublishChecklistComponent, deps: [{ token: i1.EditorTelemetryService }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PublishChecklistComponent, selector: "lib-publish-checklist", inputs: { publishchecklist: "publishchecklist", actionType: "actionType" }, outputs: { publishEmitter: "publishEmitter" }, ngImport: i0, template: "<sui-modal [mustScroll]=\"true\" [isClosable]=\"isClosable\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal bx-none overflow-modal publish-checklist\" appBodyScroll (dismissed)=\"isClosable = false\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.publishCollection}}\n </div>\n <div class=\"sb-modal-content\">\n <span *ngIf=\"!publishchecklist?.length\"> {{configService.labelConfig?.lbl?.confirmPublishCollection}} </span>\n <div class=\"sectionTitle\" *ngIf=\"publishchecklist?.length\">{{configService.labelConfig?.lbl?.publishchecklistTitle}}</div>\n <sb-dynamic-form *ngIf=\"publishchecklist?.length\" [config]=\"publishchecklist\"\n (initialize)=\"outputData($event)\" (statusChanges)=\"onStatusChanges($event)\" (valueChanges)=\"valueChanges($event)\">\n </sb-dynamic-form>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal\"\n [ngClass]=\"{'sb-btn-primary': isButtonEnable, 'sb-btn-disabled': !isButtonEnable}\" [disabled]=\"!isButtonEnable\"\n (click)=\"handlePopUpEvents('submit', modal)\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('yes','click','submit', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'publish_collection'})\">\n {{configService.labelConfig?.button_labels?.yes_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"handlePopUpEvents('closeModal', modal)\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('no','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'add_review_comments'})\">\n {{configService.labelConfig?.button_labels?.no_btn_label}}\n </button>\n </div>\n</sui-modal
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PublishChecklistComponent, selector: "lib-publish-checklist", inputs: { publishchecklist: "publishchecklist", actionType: "actionType", objectType: "objectType" }, outputs: { publishEmitter: "publishEmitter" }, ngImport: i0, template: "<sui-modal [mustScroll]=\"true\" [isClosable]=\"isClosable\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal bx-none overflow-modal publish-checklist\" appBodyScroll (dismissed)=\"isClosable = false\" #modal>\n <div class=\"sb-modal-header\">\n {{ configService.labelConfig?.lbl?.publishCollection | interpolate: '${objectType}': objectType }}\n </div>\n <div class=\"sb-modal-content\">\n <span *ngIf=\"!publishchecklist?.length\"> {{configService.labelConfig?.lbl?.confirmPublishCollection | interpolate: '${objectType}': objectType}} </span>\n <div class=\"sectionTitle\" *ngIf=\"publishchecklist?.length\">{{configService.labelConfig?.lbl?.publishchecklistTitle}}</div>\n <sb-dynamic-form *ngIf=\"publishchecklist?.length\" [config]=\"publishchecklist\"\n (initialize)=\"outputData($event)\" (statusChanges)=\"onStatusChanges($event)\" (valueChanges)=\"valueChanges($event)\">\n </sb-dynamic-form>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal\"\n [ngClass]=\"{'sb-btn-primary': isButtonEnable, 'sb-btn-disabled': !isButtonEnable}\" [disabled]=\"!isButtonEnable\"\n (click)=\"handlePopUpEvents('submit', modal)\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('yes','click','submit', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'publish_collection'})\">\n {{configService.labelConfig?.button_labels?.yes_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"handlePopUpEvents('closeModal', modal)\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('no','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'add_review_comments'})\">\n {{configService.labelConfig?.button_labels?.no_btn_label}}\n </button>\n </div>\n</sui-modal>\n", styles: [".sb-modal-content sb-dynamic-checkbox{margin:0!important}.sb-modal-content .sb-checkbox{padding:0!important;margin:0!important}.sectionTitle{font-size:1rem;font-weight:600;line-height:1.4;padding:7px 0 20px}.formSection{padding:0!important}.display-sectionName .sectionName{display:block}.hidden-sectionName .sectionName,.two-column-grid .sectionName{display:none}.sectionName{font-size:1rem!important;font-weight:600}.d-grid{display:grid;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-2{display:grid;grid-template-columns:auto auto;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-3{display:grid;grid-template-columns:auto auto auto;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-inline-1{display:inline-grid;width:100%;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-inline-2{display:inline-grid;width:50%;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-inline-3{display:inline-grid;width:33.3%;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-inline-4{display:inline-grid;width:25%;grid-column-gap:1rem;grid-row-gap:1rem}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SuiModal, selector: "sui-modal", inputs: ["isClosable", "closeResult", "size", "isCentered", "isFullScreen", "isBasic", "mustScroll", "isInverted", "transition", "transitionDuration"], outputs: ["approved", "denied", "dismissed"] }, { kind: "component", type: i5.DynamicFormComponent, selector: "sb-dynamic-form", inputs: ["config", "dataLoadStatusDelegate"], outputs: ["initialize", "finalize", "valueChanges", "statusChanges"] }, { kind: "directive", type: i6.TelemetryInteractDirective, selector: "[libTelemetryInteract]", inputs: ["telemetryInteractEdata"] }, { kind: "pipe", type: i7.InterpolatePipe, name: "interpolate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
56
57
|
}
|
|
57
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PublishChecklistComponent, decorators: [{
|
|
58
59
|
type: Component,
|
|
59
|
-
args: [{ selector: 'lib-publish-checklist', encapsulation: ViewEncapsulation.None, template: "<sui-modal [mustScroll]=\"true\" [isClosable]=\"isClosable\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal bx-none overflow-modal publish-checklist\" appBodyScroll (dismissed)=\"isClosable = false\" #modal>\n <div class=\"sb-modal-header\">\n {{configService.labelConfig?.lbl?.publishCollection}}\n </div>\n <div class=\"sb-modal-content\">\n <span *ngIf=\"!publishchecklist?.length\"> {{configService.labelConfig?.lbl?.confirmPublishCollection}} </span>\n <div class=\"sectionTitle\" *ngIf=\"publishchecklist?.length\">{{configService.labelConfig?.lbl?.publishchecklistTitle}}</div>\n <sb-dynamic-form *ngIf=\"publishchecklist?.length\" [config]=\"publishchecklist\"\n (initialize)=\"outputData($event)\" (statusChanges)=\"onStatusChanges($event)\" (valueChanges)=\"valueChanges($event)\">\n </sb-dynamic-form>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal\"\n [ngClass]=\"{'sb-btn-primary': isButtonEnable, 'sb-btn-disabled': !isButtonEnable}\" [disabled]=\"!isButtonEnable\"\n (click)=\"handlePopUpEvents('submit', modal)\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('yes','click','submit', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'publish_collection'})\">\n {{configService.labelConfig?.button_labels?.yes_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"handlePopUpEvents('closeModal', modal)\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('no','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'add_review_comments'})\">\n {{configService.labelConfig?.button_labels?.no_btn_label}}\n </button>\n </div>\n</sui-modal
|
|
60
|
+
args: [{ selector: 'lib-publish-checklist', encapsulation: ViewEncapsulation.None, template: "<sui-modal [mustScroll]=\"true\" [isClosable]=\"isClosable\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal bx-none overflow-modal publish-checklist\" appBodyScroll (dismissed)=\"isClosable = false\" #modal>\n <div class=\"sb-modal-header\">\n {{ configService.labelConfig?.lbl?.publishCollection | interpolate: '${objectType}': objectType }}\n </div>\n <div class=\"sb-modal-content\">\n <span *ngIf=\"!publishchecklist?.length\"> {{configService.labelConfig?.lbl?.confirmPublishCollection | interpolate: '${objectType}': objectType}} </span>\n <div class=\"sectionTitle\" *ngIf=\"publishchecklist?.length\">{{configService.labelConfig?.lbl?.publishchecklistTitle}}</div>\n <sb-dynamic-form *ngIf=\"publishchecklist?.length\" [config]=\"publishchecklist\"\n (initialize)=\"outputData($event)\" (statusChanges)=\"onStatusChanges($event)\" (valueChanges)=\"valueChanges($event)\">\n </sb-dynamic-form>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal\"\n [ngClass]=\"{'sb-btn-primary': isButtonEnable, 'sb-btn-disabled': !isButtonEnable}\" [disabled]=\"!isButtonEnable\"\n (click)=\"handlePopUpEvents('submit', modal)\" libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('yes','click','submit', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'publish_collection'})\">\n {{configService.labelConfig?.button_labels?.yes_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" (click)=\"handlePopUpEvents('closeModal', modal)\"\n libTelemetryInteract\n [telemetryInteractEdata]=\"telemetryService.getTelemetryInteractEdata('no','click','cancel', telemetryService.telemetryPageId, {key: 'dialog_id', value: 'add_review_comments'})\">\n {{configService.labelConfig?.button_labels?.no_btn_label}}\n </button>\n </div>\n</sui-modal>\n", styles: [".sb-modal-content sb-dynamic-checkbox{margin:0!important}.sb-modal-content .sb-checkbox{padding:0!important;margin:0!important}.sectionTitle{font-size:1rem;font-weight:600;line-height:1.4;padding:7px 0 20px}.formSection{padding:0!important}.display-sectionName .sectionName{display:block}.hidden-sectionName .sectionName,.two-column-grid .sectionName{display:none}.sectionName{font-size:1rem!important;font-weight:600}.d-grid{display:grid;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-2{display:grid;grid-template-columns:auto auto;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-3{display:grid;grid-template-columns:auto auto auto;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-inline-1{display:inline-grid;width:100%;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-inline-2{display:inline-grid;width:50%;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-inline-3{display:inline-grid;width:33.3%;grid-column-gap:1rem;grid-row-gap:1rem}.d-grid-inline-4{display:inline-grid;width:25%;grid-column-gap:1rem;grid-row-gap:1rem}\n"] }]
|
|
60
61
|
}], ctorParameters: function () { return [{ type: i1.EditorTelemetryService }, { type: i2.ConfigService }]; }, propDecorators: { publishchecklist: [{
|
|
61
62
|
type: Input
|
|
62
63
|
}], actionType: [{
|
|
63
64
|
type: Input
|
|
65
|
+
}], objectType: [{
|
|
66
|
+
type: Input
|
|
64
67
|
}], publishEmitter: [{
|
|
65
68
|
type: Output
|
|
66
69
|
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC1jaGVja2xpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sbGVjdGlvbi1lZGl0b3ItbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvcHVibGlzaC1jaGVja2xpc3QvcHVibGlzaC1jaGVja2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sbGVjdGlvbi1lZGl0b3ItbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvcHVibGlzaC1jaGVja2xpc3QvcHVibGlzaC1jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdsRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7O0FBTy9CLE1BQU0sT0FBTyx5QkFBeUI7SUFRcEMsWUFDUyxnQkFBd0MsRUFDeEMsYUFBNEI7UUFENUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQU4zQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDNUMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztJQUdlLENBQUM7SUFFMUMsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDeEUsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQUksRUFBRSxLQUFLO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO2FBQU0sSUFBSSxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDMUYsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFBO1lBQ3JCLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQTtZQUNwQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDdkUsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLFVBQVUsRUFBRTtvQkFDdkcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQy9CO3FCQUFNO29CQUNMLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxxRkFBcUY7aUJBQ2xKO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUN2QyxXQUFXLENBQUMsa0JBQWtCLENBQUMsR0FBRyxZQUFZLENBQUM7YUFDaEQ7WUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDO1NBQ2hGO2FBQU0sSUFBSSxJQUFJLEtBQUssWUFBWSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDNUM7UUFDRCxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsVUFBVSxDQUFDLFNBQWMsSUFBSSxDQUFDO0lBRTlCLGVBQWUsQ0FBQyxLQUFLO1FBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQzsrR0EvQ1UseUJBQXlCO21HQUF6Qix5QkFBeUIsa05DVnRDLHc1REEwQkE7OzRGRGhCYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0UsdUJBQXVCLGlCQUdsQixpQkFBaUIsQ0FBQyxJQUFJO3lJQUc1QixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yVGVsZW1ldHJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbGVtZXRyeS90ZWxlbWV0cnkuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoLWVzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wdWJsaXNoLWNoZWNrbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdWJsaXNoLWNoZWNrbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B1Ymxpc2gtY2hlY2tsaXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFB1Ymxpc2hDaGVja2xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaXNoY2hlY2tsaXN0OiBhbnk7XG4gIEBJbnB1dCgpIGFjdGlvblR5cGU6IGFueTtcbiAgQElucHV0KCkgb2JqZWN0VHlwZTogc3RyaW5nO1xuICBAT3V0cHV0KCkgcHVibGlzaEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGlzQnV0dG9uRW5hYmxlID0gZmFsc2U7XG4gIHB1YmxpYyBmaWVsZHNBdmFpbGFibGU6IGFueTtcbiAgcHVibGljIGlzQ2xvc2FibGUgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbGVtZXRyeVNlcnZpY2U6IEVkaXRvclRlbGVtZXRyeVNlcnZpY2UsXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNCdXR0b25FbmFibGUgPSBfLmlzRW1wdHkodGhpcy5wdWJsaXNoY2hlY2tsaXN0KSA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIGhhbmRsZVBvcFVwRXZlbnRzKHR5cGUsIG1vZGFsKSB7XG4gICAgdGhpcy5pc0Nsb3NhYmxlID0gdHJ1ZTtcbiAgICBpZiAodHlwZSA9PT0gJ3N1Ym1pdCcgJiYgXy5pc0VtcHR5KHRoaXMucHVibGlzaGNoZWNrbGlzdCkpIHtcbiAgICAgIHRoaXMucHVibGlzaEVtaXR0ZXIuZW1pdCh7IGJ1dHRvbjogdGhpcy5hY3Rpb25UeXBlIH0pO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3N1Ym1pdCcgJiYgdGhpcy5wdWJsaXNoY2hlY2tsaXN0ICYmICFfLmlzRW1wdHkodGhpcy5wdWJsaXNoY2hlY2tsaXN0KSkge1xuICAgICAgbGV0IGNoZWNrQm94RGF0YSA9IFtdXG4gICAgICBsZXQgcHVibGlzaERhdGEgPSB7fVxuICAgICAgXy5mb3JFYWNoKF8uZmxhdHRlbkRlZXAoXy5tYXAodGhpcy5wdWJsaXNoY2hlY2tsaXN0LCAnZmllbGRzJykpLCBmaWVsZCA9PiB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkc0F2YWlsYWJsZSAmJiB0aGlzLmZpZWxkc0F2YWlsYWJsZVtmaWVsZC5jb2RlXSA9PT0gdHJ1ZSAmJiBmaWVsZC5pbnB1dFR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgICAgICBjaGVja0JveERhdGEucHVzaChmaWVsZC5uYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwdWJsaXNoRGF0YVtmaWVsZC5jb2RlXSA9IHRoaXMuZmllbGRzQXZhaWxhYmxlW2ZpZWxkLmNvZGVdOyAvLyBhc2lnbiB2YWx1ZSB0byBmaWVsZCBvdGhlciB0aGFuIGNoZWNrYm94J3MgZXhhbXBsZSBwdWJsaXNoQ29tbWVudCA9ICdzb21lIGNvbW1lbnQnXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKGNoZWNrQm94RGF0YSAmJiBjaGVja0JveERhdGEubGVuZ3RoKSB7XG4gICAgICAgIHB1Ymxpc2hEYXRhWydwdWJsaXNoQ2hlY2tsaXN0J10gPSBjaGVja0JveERhdGE7XG4gICAgICB9XG4gICAgICB0aGlzLnB1Ymxpc2hFbWl0dGVyLmVtaXQoeyBidXR0b246IHRoaXMuYWN0aW9uVHlwZSwgcHVibGlzaERhdGE6IHB1Ymxpc2hEYXRhfSk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnY2xvc2VNb2RhbCcpIHtcbiAgICAgIHRoaXMucHVibGlzaEVtaXR0ZXIuZW1pdCh7IGJ1dHRvbjogdHlwZSB9KTtcbiAgICB9XG4gICAgbW9kYWwuZGVueSgpO1xuICB9XG4gIG91dHB1dERhdGEoZXZlbnREYXRhOiBhbnkpIHsgfVxuXG4gIG9uU3RhdHVzQ2hhbmdlcyhldmVudCkge1xuICAgIHRoaXMuaXNCdXR0b25FbmFibGUgPSBldmVudC5pc1ZhbGlkO1xuICB9XG5cbiAgdmFsdWVDaGFuZ2VzKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmZpZWxkc0F2YWlsYWJsZSA9IGV2ZW50O1xuICB9XG59XG4iLCI8c3VpLW1vZGFsIFttdXN0U2Nyb2xsXT1cInRydWVcIiBbaXNDbG9zYWJsZV09XCJpc0Nsb3NhYmxlXCIgW3RyYW5zaXRpb25EdXJhdGlvbl09XCIwXCIgW3NpemVdPVwiJ25vcm1hbCdcIlxuICBjbGFzcz1cInNiLW1vZGFsIGJ4LW5vbmUgb3ZlcmZsb3ctbW9kYWwgcHVibGlzaC1jaGVja2xpc3RcIiBhcHBCb2R5U2Nyb2xsIChkaXNtaXNzZWQpPVwiaXNDbG9zYWJsZSA9IGZhbHNlXCIgI21vZGFsPlxuICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtaGVhZGVyXCI+XG4gICAge3sgY29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5wdWJsaXNoQ29sbGVjdGlvbiB8IGludGVycG9sYXRlOiAnJHtvYmplY3RUeXBlfSc6IG9iamVjdFR5cGUgfX1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1jb250ZW50XCI+XG4gICAgPHNwYW4gKm5nSWY9XCIhcHVibGlzaGNoZWNrbGlzdD8ubGVuZ3RoXCI+IHt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5jb25maXJtUHVibGlzaENvbGxlY3Rpb24gfCBpbnRlcnBvbGF0ZTogJyR7b2JqZWN0VHlwZX0nOiBvYmplY3RUeXBlfX0gPC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uVGl0bGVcIiAqbmdJZj1cInB1Ymxpc2hjaGVja2xpc3Q/Lmxlbmd0aFwiPnt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8ubGJsPy5wdWJsaXNoY2hlY2tsaXN0VGl0bGV9fTwvZGl2PlxuICAgIDxzYi1keW5hbWljLWZvcm0gKm5nSWY9XCJwdWJsaXNoY2hlY2tsaXN0Py5sZW5ndGhcIiBbY29uZmlnXT1cInB1Ymxpc2hjaGVja2xpc3RcIlxuICAgICAgKGluaXRpYWxpemUpPVwib3V0cHV0RGF0YSgkZXZlbnQpXCIgKHN0YXR1c0NoYW5nZXMpPVwib25TdGF0dXNDaGFuZ2VzKCRldmVudClcIiAodmFsdWVDaGFuZ2VzKT1cInZhbHVlQ2hhbmdlcygkZXZlbnQpXCI+XG4gICAgPC9zYi1keW5hbWljLWZvcm0+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtYWN0aW9uc1wiPlxuICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbFwiXG4gICAgICBbbmdDbGFzc109XCJ7J3NiLWJ0bi1wcmltYXJ5JzogaXNCdXR0b25FbmFibGUsICdzYi1idG4tZGlzYWJsZWQnOiAhaXNCdXR0b25FbmFibGV9XCIgW2Rpc2FibGVkXT1cIiFpc0J1dHRvbkVuYWJsZVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlUG9wVXBFdmVudHMoJ3N1Ym1pdCcsIG1vZGFsKVwiIGxpYlRlbGVtZXRyeUludGVyYWN0XG4gICAgICBbdGVsZW1ldHJ5SW50ZXJhY3RFZGF0YV09XCJ0ZWxlbWV0cnlTZXJ2aWNlLmdldFRlbGVtZXRyeUludGVyYWN0RWRhdGEoJ3llcycsJ2NsaWNrJywnc3VibWl0JywgdGVsZW1ldHJ5U2VydmljZS50ZWxlbWV0cnlQYWdlSWQsICB7a2V5OiAnZGlhbG9nX2lkJywgdmFsdWU6ICdwdWJsaXNoX2NvbGxlY3Rpb24nfSlcIj5cbiAgICAgIHt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8uYnV0dG9uX2xhYmVscz8ueWVzX2J0bl9sYWJlbH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwiaGFuZGxlUG9wVXBFdmVudHMoJ2Nsb3NlTW9kYWwnLCBtb2RhbClcIlxuICAgICAgbGliVGVsZW1ldHJ5SW50ZXJhY3RcbiAgICAgIFt0ZWxlbWV0cnlJbnRlcmFjdEVkYXRhXT1cInRlbGVtZXRyeVNlcnZpY2UuZ2V0VGVsZW1ldHJ5SW50ZXJhY3RFZGF0YSgnbm8nLCdjbGljaycsJ2NhbmNlbCcsIHRlbGVtZXRyeVNlcnZpY2UudGVsZW1ldHJ5UGFnZUlkLCAge2tleTogJ2RpYWxvZ19pZCcsIHZhbHVlOiAnYWRkX3Jldmlld19jb21tZW50cyd9KVwiPlxuICAgICAge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5idXR0b25fbGFiZWxzPy5ub19idG5fbGFiZWx9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvc3VpLW1vZGFsPlxuIl19
|