@deeksha2309/sunbird-collection-editor 8.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2022/lib/collection-editor-cursor.service.mjs +3 -0
- package/esm2022/lib/collection-editor-library.component.mjs +16 -0
- package/esm2022/lib/collection-editor-library.module.mjs +137 -0
- package/esm2022/lib/components/answer/answer.component.mjs +43 -0
- package/esm2022/lib/components/asset-browser/asset-browser.component.mjs +325 -0
- package/esm2022/lib/components/asset-browser/asset-browser.data.mjs +53 -0
- package/esm2022/lib/components/assign-page-number/assign-page-number.component.mjs +191 -0
- package/esm2022/lib/components/ckeditor-tool/ckeditor-tool.component.mjs +895 -0
- package/esm2022/lib/components/collection-icon/collection-icon.component.mjs +43 -0
- package/esm2022/lib/components/contentplayer-page/contentplayer-page.component.mjs +351 -0
- package/esm2022/lib/components/csv-upload/csv-upload.component.mjs +178 -0
- package/esm2022/lib/components/dialcode/dialcode.component.mjs +182 -0
- package/esm2022/lib/components/editor/editor.component.mjs +1125 -0
- package/esm2022/lib/components/fancy-tree/fancy-tree.component.mjs +529 -0
- package/esm2022/lib/components/header/header.component.mjs +123 -0
- package/esm2022/lib/components/library/library.component.mjs +242 -0
- package/esm2022/lib/components/library-filter/library-filter.component.mjs +149 -0
- package/esm2022/lib/components/library-list/library-list.component.mjs +92 -0
- package/esm2022/lib/components/library-player/library-player.component.mjs +62 -0
- package/esm2022/lib/components/manage-collaborator/manage-collaborator.component.mjs +256 -0
- package/esm2022/lib/components/meta-form/meta-form.component.mjs +377 -0
- package/esm2022/lib/components/options/options.component.mjs +144 -0
- package/esm2022/lib/components/plain-tree/plain-tree.component.mjs +125 -0
- package/esm2022/lib/components/progress-status/progress-status.component.mjs +46 -0
- package/esm2022/lib/components/publish-checklist/publish-checklist.component.mjs +67 -0
- package/esm2022/lib/components/quality-params-modal/quality-params-modal.component.mjs +52 -0
- package/esm2022/lib/components/question/question.component.mjs +1360 -0
- package/esm2022/lib/components/quml-player/quml-player.component.mjs +73 -0
- package/esm2022/lib/components/qumlplayer-page/qumlplayer-page.component.mjs +84 -0
- package/esm2022/lib/components/resource-reorder/resource-reorder.component.mjs +143 -0
- package/esm2022/lib/components/skeleton-loader/skeleton-loader.component.mjs +26 -0
- package/esm2022/lib/components/template/template.component.mjs +42 -0
- package/esm2022/lib/components/term-and-condition/term-and-condition.component.mjs +68 -0
- package/esm2022/lib/directives/telemetry-interact/telemetry-interact.directive.mjs +33 -0
- package/esm2022/lib/interfaces/McqForm.mjs +29 -0
- package/esm2022/lib/interfaces/editor.mjs +2 -0
- package/esm2022/lib/interfaces/framework.mjs +2 -0
- package/esm2022/lib/interfaces/httpOptions.mjs +2 -0
- package/esm2022/lib/interfaces/requestParam.mjs +2 -0
- package/esm2022/lib/interfaces/serverResponse.mjs +2 -0
- package/esm2022/lib/pipes/sanitize-html.pipe.mjs +20 -0
- package/esm2022/lib/services/config/category.config.json +8 -0
- package/esm2022/lib/services/config/config.service.mjs +27 -0
- package/esm2022/lib/services/config/editor.config.json +31 -0
- package/esm2022/lib/services/config/label.config.json +314 -0
- package/esm2022/lib/services/config/player.config.json +96 -0
- package/esm2022/lib/services/config/url.config.json +69 -0
- package/esm2022/lib/services/data/data.service.mjs +192 -0
- package/esm2022/lib/services/dialcode/dialcode.service.mjs +309 -0
- package/esm2022/lib/services/editor/editor.service.mjs +682 -0
- package/esm2022/lib/services/framework/framework.service.mjs +106 -0
- package/esm2022/lib/services/helper/helper.service.mjs +160 -0
- package/esm2022/lib/services/player/player.service.mjs +99 -0
- package/esm2022/lib/services/public-data/public-data.service.mjs +21 -0
- package/esm2022/lib/services/question/question.service.mjs +167 -0
- package/esm2022/lib/services/telemetry/telemetry.service.mjs +120 -0
- package/esm2022/lib/services/toaster/toaster.service.mjs +105 -0
- package/esm2022/lib/services/tree/tree.service.mjs +284 -0
- package/esm2022/project-sunbird-sunbird-collection-editor.mjs +5 -0
- package/esm2022/public-api.mjs +4 -0
- package/fesm2022/project-sunbird-sunbird-collection-editor.mjs +10138 -0
- package/fesm2022/project-sunbird-sunbird-collection-editor.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/assets/.gitkeep +0 -0
- package/lib/assets/images/MCQ.png +0 -0
- package/lib/assets/images/Spin.gif +0 -0
- package/lib/assets/images/bulkuploadfile.png +0 -0
- package/lib/assets/images/cancel-sign copy.png +0 -0
- package/lib/assets/images/cancel-sign.png +0 -0
- package/lib/assets/images/emptyResult.svg +1 -0
- package/lib/assets/images/icons-rtl.gif +0 -0
- package/lib/assets/images/icons.gif +0 -0
- package/lib/assets/images/imageicon.svg +16 -0
- package/lib/assets/images/imageicon_blue.svg +16 -0
- package/lib/assets/images/layoutoneicon.svg +16 -0
- package/lib/assets/images/layoutoneicon_blue.svg +16 -0
- package/lib/assets/images/layoutthreeicon.svg +18 -0
- package/lib/assets/images/layoutthreeicon_blue.svg +18 -0
- package/lib/assets/images/layouttwoicon.svg +18 -0
- package/lib/assets/images/layouttwoicon_blue.svg +18 -0
- package/lib/assets/images/leftalignicon.svg +17 -0
- package/lib/assets/images/leftalignicon_blue.svg +17 -0
- package/lib/assets/images/loader.gif +0 -0
- package/lib/assets/images/loader.svg +1 -0
- package/lib/assets/images/loading.gif +0 -0
- package/lib/assets/images/middlealignicon.svg +17 -0
- package/lib/assets/images/middlealignicon_blue.svg +17 -0
- package/lib/assets/images/question_collection.svg +18 -0
- package/lib/assets/images/rightalignicon.svg +17 -0
- package/lib/assets/images/rightalignicon_blue.svg +17 -0
- package/lib/assets/images/vline-rtl.gif +0 -0
- package/lib/assets/images/vline.gif +0 -0
- package/lib/assets/images/writing.png +0 -0
- package/lib/collection-editor-cursor.service.d.ts +5 -0
- package/lib/collection-editor-cursor.service.d.ts.map +1 -0
- package/lib/collection-editor-library.component.d.ts +9 -0
- package/lib/collection-editor-library.component.d.ts.map +1 -0
- package/lib/collection-editor-library.module.d.ts +50 -0
- package/lib/collection-editor-library.module.d.ts.map +1 -0
- package/lib/components/answer/answer.component.d.ts +24 -0
- package/lib/components/answer/answer.component.d.ts.map +1 -0
- package/lib/components/asset-browser/asset-browser.component.d.ts +81 -0
- package/lib/components/asset-browser/asset-browser.component.d.ts.map +1 -0
- package/lib/components/asset-browser/asset-browser.data.d.ts +52 -0
- package/lib/components/asset-browser/asset-browser.data.d.ts.map +1 -0
- package/lib/components/assign-page-number/assign-page-number.component.d.ts +38 -0
- package/lib/components/assign-page-number/assign-page-number.component.d.ts.map +1 -0
- package/lib/components/ckeditor-tool/ckeditor-tool.component.d.ts +161 -0
- package/lib/components/ckeditor-tool/ckeditor-tool.component.d.ts.map +1 -0
- package/lib/components/collection-icon/collection-icon.component.d.ts +18 -0
- package/lib/components/collection-icon/collection-icon.component.d.ts.map +1 -0
- package/lib/components/contentplayer-page/contentplayer-page.component.d.ts +54 -0
- package/lib/components/contentplayer-page/contentplayer-page.component.d.ts.map +1 -0
- package/lib/components/csv-upload/csv-upload.component.d.ts +42 -0
- package/lib/components/csv-upload/csv-upload.component.d.ts.map +1 -0
- package/lib/components/dialcode/dialcode.component.d.ts +48 -0
- package/lib/components/dialcode/dialcode.component.d.ts.map +1 -0
- package/lib/components/editor/editor.component.d.ts +146 -0
- package/lib/components/editor/editor.component.d.ts.map +1 -0
- package/lib/components/fancy-tree/fancy-tree.component.d.ts +77 -0
- package/lib/components/fancy-tree/fancy-tree.component.d.ts.map +1 -0
- package/lib/components/header/header.component.d.ts +46 -0
- package/lib/components/header/header.component.d.ts.map +1 -0
- package/lib/components/library/library.component.d.ts +69 -0
- package/lib/components/library/library.component.d.ts.map +1 -0
- package/lib/components/library-filter/library-filter.component.d.ts +47 -0
- package/lib/components/library-filter/library-filter.component.d.ts.map +1 -0
- package/lib/components/library-list/library-list.component.d.ts +32 -0
- package/lib/components/library-list/library-list.component.d.ts.map +1 -0
- package/lib/components/library-player/library-player.component.d.ts +24 -0
- package/lib/components/library-player/library-player.component.d.ts.map +1 -0
- package/lib/components/manage-collaborator/manage-collaborator.component.d.ts +75 -0
- package/lib/components/manage-collaborator/manage-collaborator.component.d.ts.map +1 -0
- package/lib/components/meta-form/meta-form.component.d.ts +51 -0
- package/lib/components/meta-form/meta-form.component.d.ts.map +1 -0
- package/lib/components/options/options.component.d.ts +53 -0
- package/lib/components/options/options.component.d.ts.map +1 -0
- package/lib/components/plain-tree/plain-tree.component.d.ts +20 -0
- package/lib/components/plain-tree/plain-tree.component.d.ts.map +1 -0
- package/lib/components/progress-status/progress-status.component.d.ts +25 -0
- package/lib/components/progress-status/progress-status.component.d.ts.map +1 -0
- package/lib/components/publish-checklist/publish-checklist.component.d.ts +23 -0
- package/lib/components/publish-checklist/publish-checklist.component.d.ts.map +1 -0
- package/lib/components/quality-params-modal/quality-params-modal.component.d.ts +24 -0
- package/lib/components/quality-params-modal/quality-params-modal.component.d.ts.map +1 -0
- package/lib/components/question/question.component.d.ts +215 -0
- package/lib/components/question/question.component.d.ts.map +1 -0
- package/lib/components/quml-player/quml-player.component.d.ts +26 -0
- package/lib/components/quml-player/quml-player.component.d.ts.map +1 -0
- package/lib/components/qumlplayer-page/qumlplayer-page.component.d.ts +31 -0
- package/lib/components/qumlplayer-page/qumlplayer-page.component.d.ts.map +1 -0
- package/lib/components/resource-reorder/resource-reorder.component.d.ts +45 -0
- package/lib/components/resource-reorder/resource-reorder.component.d.ts.map +1 -0
- package/lib/components/skeleton-loader/skeleton-loader.component.d.ts +13 -0
- package/lib/components/skeleton-loader/skeleton-loader.component.d.ts.map +1 -0
- package/lib/components/template/template.component.d.ts +21 -0
- package/lib/components/template/template.component.d.ts.map +1 -0
- package/lib/components/term-and-condition/term-and-condition.component.d.ts +26 -0
- package/lib/components/term-and-condition/term-and-condition.component.d.ts.map +1 -0
- package/lib/directives/telemetry-interact/telemetry-interact.directive.d.ts +27 -0
- package/lib/directives/telemetry-interact/telemetry-interact.directive.d.ts.map +1 -0
- package/lib/interfaces/McqForm.d.ts +32 -0
- package/lib/interfaces/McqForm.d.ts.map +1 -0
- package/lib/interfaces/editor.d.ts +78 -0
- package/lib/interfaces/editor.d.ts.map +1 -0
- package/lib/interfaces/framework.d.ts +46 -0
- package/lib/interfaces/framework.d.ts.map +1 -0
- package/lib/interfaces/httpOptions.d.ts +35 -0
- package/lib/interfaces/httpOptions.d.ts.map +1 -0
- package/lib/interfaces/requestParam.d.ts +24 -0
- package/lib/interfaces/requestParam.d.ts.map +1 -0
- package/lib/interfaces/serverResponse.d.ts +38 -0
- package/lib/interfaces/serverResponse.d.ts.map +1 -0
- package/lib/pipes/sanitize-html.pipe.d.ts +11 -0
- package/lib/pipes/sanitize-html.pipe.d.ts.map +1 -0
- package/lib/services/config/config.service.d.ts +13 -0
- package/lib/services/config/config.service.d.ts.map +1 -0
- package/lib/services/data/data.service.d.ts +85 -0
- package/lib/services/data/data.service.d.ts.map +1 -0
- package/lib/services/dialcode/dialcode.service.d.ts +36 -0
- package/lib/services/dialcode/dialcode.service.d.ts.map +1 -0
- package/lib/services/editor/editor.service.d.ts +150 -0
- package/lib/services/editor/editor.service.d.ts.map +1 -0
- package/lib/services/framework/framework.service.d.ts +35 -0
- package/lib/services/framework/framework.service.d.ts.map +1 -0
- package/lib/services/helper/helper.service.d.ts +41 -0
- package/lib/services/helper/helper.service.d.ts.map +1 -0
- package/lib/services/player/player.service.d.ts +33 -0
- package/lib/services/player/player.service.d.ts.map +1 -0
- package/lib/services/public-data/public-data.service.d.ts +15 -0
- package/lib/services/public-data/public-data.service.d.ts.map +1 -0
- package/lib/services/question/question.service.d.ts +30 -0
- package/lib/services/question/question.service.d.ts.map +1 -0
- package/lib/services/telemetry/telemetry.service.d.ts +45 -0
- package/lib/services/telemetry/telemetry.service.d.ts.map +1 -0
- package/lib/services/toaster/toaster.service.d.ts +50 -0
- package/lib/services/toaster/toaster.service.d.ts.map +1 -0
- package/lib/services/tree/tree.service.d.ts +51 -0
- package/lib/services/tree/tree.service.d.ts.map +1 -0
- package/package.json +32 -0
- package/project-sunbird-sunbird-collection-editor.d.ts.map +1 -0
- package/public-api.d.ts +4 -0
- package/public-api.d.ts.map +1 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/config/config.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@project-sunbird/ng2-semantic-ui";
|
|
6
|
+
import * as i4 from "@project-sunbird/common-form-elements-full";
|
|
7
|
+
export class QualityParamsModalComponent {
|
|
8
|
+
constructor(configService) {
|
|
9
|
+
this.configService = configService;
|
|
10
|
+
this.qualityParamChanged = new EventEmitter();
|
|
11
|
+
this.totalScoreValue = 0;
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
}
|
|
15
|
+
onStatusChanges(event) {
|
|
16
|
+
this.isApprovalBtnEnable = event?.isValid;
|
|
17
|
+
this.isRequestChangeBtnEnable = event?.isValid;
|
|
18
|
+
}
|
|
19
|
+
valueChanges(event) {
|
|
20
|
+
this.formData = event;
|
|
21
|
+
this.totalScoreValue = 0;
|
|
22
|
+
for (const key in this.formData) {
|
|
23
|
+
if (this.formData[key] && !isNaN(this.formData[key])) {
|
|
24
|
+
this.totalScoreValue += parseInt(this.formData[key]);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
submitApproval() {
|
|
29
|
+
this.qualityParamChanged.emit({ action: 'submit', data: this.formData });
|
|
30
|
+
}
|
|
31
|
+
requestChanges() {
|
|
32
|
+
this.qualityParamChanged.emit({ action: 'requestChange', data: this.formData });
|
|
33
|
+
}
|
|
34
|
+
onModalClose() {
|
|
35
|
+
this.qualityParamChanged.emit({ action: 'close' });
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: QualityParamsModalComponent, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: QualityParamsModalComponent, selector: "lib-quality-params-modal", inputs: { qualityFormConfig: "qualityFormConfig", showQualityParameterPopup: "showQualityParameterPopup", labelConfigData: "labelConfigData" }, outputs: { qualityParamChanged: "qualityParamChanged" }, ngImport: i0, template: "<sui-modal [mustScroll]=\"true\" *ngIf=\"showQualityParameterPopup\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal bx-none overflow-modal publish-checklist\" appBodyScroll #modal (dismissed)=\"onModalClose()\">\n <div class=\"sb-modal-header\">\n \n </div>\n <div class=\"sb-modal-content\">\n <h2> Score each parameter out of 5</h2>\n <div class=\"sb-form-fields\">\n <div class=\"form-container upload-form\">\n <sb-dynamic-form [config]=\"qualityFormConfig\" (statusChanges)=\"onStatusChanges($event)\"\n (valueChanges)=\"valueChanges($event)\"></sb-dynamic-form>\n </div>\n </div> \n <label>{{configService.labelConfig?.lbl?.totalScore}}: {{totalScoreValue}}</label>\n <p><em>{{configService.labelConfig?.lbl?.qualityReview}}</em></p>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" [disabled]=\"!isApprovalBtnEnable\" (click)=\"submitApproval()\">\n {{configService.labelConfig?.button_labels?.publish_collection_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" [disabled] = \"!isRequestChangeBtnEnable\" (click)=\"requestChanges()\">\n {{configService.labelConfig?.button_labels?.reject_collection_btn_label}}\n </button>\n </div>\n</sui-modal>\n\n", styles: ["::ng-deep .dynamic-form label,.add-to-library .dynamic-form .multi-select-container .list-border ul{font-size:1rem!important;line-height:1.4;font-weight:400}.sb-modal-content{padding:1.3rem}.sb-modal-content label{font-weight:bolder}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.SuiModal, selector: "sui-modal", inputs: ["isClosable", "closeResult", "size", "isCentered", "isFullScreen", "isBasic", "mustScroll", "isInverted", "transition", "transitionDuration"], outputs: ["approved", "denied", "dismissed"] }, { kind: "component", type: i4.DynamicFormComponent, selector: "sb-dynamic-form", inputs: ["config", "dataLoadStatusDelegate"], outputs: ["initialize", "finalize", "valueChanges", "statusChanges"] }] }); }
|
|
39
|
+
}
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: QualityParamsModalComponent, decorators: [{
|
|
41
|
+
type: Component,
|
|
42
|
+
args: [{ selector: 'lib-quality-params-modal', template: "<sui-modal [mustScroll]=\"true\" *ngIf=\"showQualityParameterPopup\" [transitionDuration]=\"0\" [size]=\"'normal'\"\n class=\"sb-modal bx-none overflow-modal publish-checklist\" appBodyScroll #modal (dismissed)=\"onModalClose()\">\n <div class=\"sb-modal-header\">\n \n </div>\n <div class=\"sb-modal-content\">\n <h2> Score each parameter out of 5</h2>\n <div class=\"sb-form-fields\">\n <div class=\"form-container upload-form\">\n <sb-dynamic-form [config]=\"qualityFormConfig\" (statusChanges)=\"onStatusChanges($event)\"\n (valueChanges)=\"valueChanges($event)\"></sb-dynamic-form>\n </div>\n </div> \n <label>{{configService.labelConfig?.lbl?.totalScore}}: {{totalScoreValue}}</label>\n <p><em>{{configService.labelConfig?.lbl?.qualityReview}}</em></p>\n </div>\n <div class=\"sb-modal-actions\">\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" [disabled]=\"!isApprovalBtnEnable\" (click)=\"submitApproval()\">\n {{configService.labelConfig?.button_labels?.publish_collection_btn_label}}\n </button>\n <button class=\"sb-btn sb-btn-normal sb-btn-outline-primary\" [disabled] = \"!isRequestChangeBtnEnable\" (click)=\"requestChanges()\">\n {{configService.labelConfig?.button_labels?.reject_collection_btn_label}}\n </button>\n </div>\n</sui-modal>\n\n", styles: ["::ng-deep .dynamic-form label,.add-to-library .dynamic-form .multi-select-container .list-border ul{font-size:1rem!important;line-height:1.4;font-weight:400}.sb-modal-content{padding:1.3rem}.sb-modal-content label{font-weight:bolder}\n"] }]
|
|
43
|
+
}], ctorParameters: function () { return [{ type: i1.ConfigService }]; }, propDecorators: { qualityFormConfig: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], showQualityParameterPopup: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], qualityParamChanged: [{
|
|
48
|
+
type: Output
|
|
49
|
+
}], labelConfigData: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}] } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbGl0eS1wYXJhbXMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sbGVjdGlvbi1lZGl0b3ItbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvcXVhbGl0eS1wYXJhbXMtbW9kYWwvcXVhbGl0eS1wYXJhbXMtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29sbGVjdGlvbi1lZGl0b3ItbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvcXVhbGl0eS1wYXJhbXMtbW9kYWwvcXVhbGl0eS1wYXJhbXMtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUTdFLE1BQU0sT0FBTywyQkFBMkI7SUFVcEMsWUFBbUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFQckMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUt4RCxvQkFBZSxHQUFHLENBQUMsQ0FBQztJQUdwQixDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSztRQUNqQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQztRQUMxQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUNuRCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUs7UUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztRQUN6QixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLGVBQWUsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3hEO1NBQ0o7SUFDTCxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDOytHQXpDUSwyQkFBMkI7bUdBQTNCLDJCQUEyQix5UUNSeEMsMHpDQTBCQTs7NEZEbEJhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDSSwwQkFBMEI7b0dBSzNCLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNFLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1xdWFsaXR5LXBhcmFtcy1tb2RhbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3F1YWxpdHktcGFyYW1zLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9xdWFsaXR5LXBhcmFtcy1tb2RhbC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVhbGl0eVBhcmFtc01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBxdWFsaXR5Rm9ybUNvbmZpZzogYW55O1xuICAgIEBJbnB1dCgpIHNob3dRdWFsaXR5UGFyYW1ldGVyUG9wdXA6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIHF1YWxpdHlQYXJhbUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBASW5wdXQoKSBsYWJlbENvbmZpZ0RhdGE6IGFueTtcbiAgICBmb3JtRGF0YTogYW55O1xuICAgIGlzQXBwcm92YWxCdG5FbmFibGU6IGJvb2xlYW47XG4gICAgaXNSZXF1ZXN0Q2hhbmdlQnRuRW5hYmxlOiBib29sZWFuO1xuICAgIHRvdGFsU2NvcmVWYWx1ZSA9IDA7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIH1cblxuICAgIG9uU3RhdHVzQ2hhbmdlcyhldmVudCkge1xuICAgICAgICB0aGlzLmlzQXBwcm92YWxCdG5FbmFibGUgPSBldmVudD8uaXNWYWxpZDtcbiAgICAgICAgdGhpcy5pc1JlcXVlc3RDaGFuZ2VCdG5FbmFibGUgPSBldmVudD8uaXNWYWxpZDtcbiAgICB9XG5cbiAgICB2YWx1ZUNoYW5nZXMoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5mb3JtRGF0YSA9IGV2ZW50O1xuICAgICAgICB0aGlzLnRvdGFsU2NvcmVWYWx1ZSA9IDA7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZm9ybURhdGEpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1EYXRhW2tleV0gJiYgIWlzTmFOKHRoaXMuZm9ybURhdGFba2V5XSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvdGFsU2NvcmVWYWx1ZSArPSBwYXJzZUludCh0aGlzLmZvcm1EYXRhW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3VibWl0QXBwcm92YWwoKSB7XG4gICAgICAgIHRoaXMucXVhbGl0eVBhcmFtQ2hhbmdlZC5lbWl0KHthY3Rpb246ICdzdWJtaXQnLCBkYXRhOiB0aGlzLmZvcm1EYXRhfSk7XG4gICAgfVxuXG4gICAgcmVxdWVzdENoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMucXVhbGl0eVBhcmFtQ2hhbmdlZC5lbWl0KHthY3Rpb246ICdyZXF1ZXN0Q2hhbmdlJywgZGF0YTogdGhpcy5mb3JtRGF0YX0pO1xuICAgIH1cblxuICAgIG9uTW9kYWxDbG9zZSgpIHtcbiAgICAgICAgdGhpcy5xdWFsaXR5UGFyYW1DaGFuZ2VkLmVtaXQoe2FjdGlvbjogJ2Nsb3NlJ30pO1xuICAgIH1cbn1cbiIsIjxzdWktbW9kYWwgW211c3RTY3JvbGxdPVwidHJ1ZVwiICpuZ0lmPVwic2hvd1F1YWxpdHlQYXJhbWV0ZXJQb3B1cFwiIFt0cmFuc2l0aW9uRHVyYXRpb25dPVwiMFwiIFtzaXplXT1cIidub3JtYWwnXCJcbiAgY2xhc3M9XCJzYi1tb2RhbCBieC1ub25lIG92ZXJmbG93LW1vZGFsIHB1Ymxpc2gtY2hlY2tsaXN0XCIgYXBwQm9keVNjcm9sbCAjbW9kYWwgKGRpc21pc3NlZCk9XCJvbk1vZGFsQ2xvc2UoKVwiPlxuICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtaGVhZGVyXCI+XG4gICAgICBcbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1jb250ZW50XCI+XG4gICA8aDI+IFNjb3JlIGVhY2ggcGFyYW1ldGVyIG91dCBvZiA1PC9oMj5cbiAgIDxkaXYgY2xhc3M9XCJzYi1mb3JtLWZpZWxkc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRhaW5lciB1cGxvYWQtZm9ybVwiPlxuICAgIDxzYi1keW5hbWljLWZvcm0gW2NvbmZpZ109XCJxdWFsaXR5Rm9ybUNvbmZpZ1wiIChzdGF0dXNDaGFuZ2VzKT1cIm9uU3RhdHVzQ2hhbmdlcygkZXZlbnQpXCJcbiAgICAodmFsdWVDaGFuZ2VzKT1cInZhbHVlQ2hhbmdlcygkZXZlbnQpXCI+PC9zYi1keW5hbWljLWZvcm0+XG4gICAgPC9kaXY+XG4gICAgPC9kaXY+IFxuICAgIDxsYWJlbD57e2NvbmZpZ1NlcnZpY2UubGFiZWxDb25maWc/LmxibD8udG90YWxTY29yZX19OiB7e3RvdGFsU2NvcmVWYWx1ZX19PC9sYWJlbD5cbiAgICA8cD48ZW0+e3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5sYmw/LnF1YWxpdHlSZXZpZXd9fTwvZW0+PC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWFjdGlvbnNcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLW91dGxpbmUtcHJpbWFyeVwiIFtkaXNhYmxlZF09XCIhaXNBcHByb3ZhbEJ0bkVuYWJsZVwiIChjbGljayk9XCJzdWJtaXRBcHByb3ZhbCgpXCI+XG4gICAgICAgIHt7Y29uZmlnU2VydmljZS5sYWJlbENvbmZpZz8uYnV0dG9uX2xhYmVscz8ucHVibGlzaF9jb2xsZWN0aW9uX2J0bl9sYWJlbH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1vdXRsaW5lLXByaW1hcnlcIiBbZGlzYWJsZWRdID0gXCIhaXNSZXF1ZXN0Q2hhbmdlQnRuRW5hYmxlXCIgKGNsaWNrKT1cInJlcXVlc3RDaGFuZ2VzKClcIj5cbiAgICAgICAge3tjb25maWdTZXJ2aWNlLmxhYmVsQ29uZmlnPy5idXR0b25fbGFiZWxzPy5yZWplY3RfY29sbGVjdGlvbl9idG5fbGFiZWx9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvc3VpLW1vZGFsPlxuXG4iXX0=
|