vcomply-workflow-engine 2.3.18 → 2.3.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/bundles/vcomply-workflow-engine.umd.js +331 -119
  2. package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
  3. package/esm2015/lib/more-option/more-option.component.js +14 -14
  4. package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.js +1 -1
  5. package/esm2015/lib/sharedComponents/program-listing/program-list-model.js +2 -0
  6. package/esm2015/lib/sharedComponents/program-listing/program-list-model.ngsummary.json +1 -0
  7. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.js +166 -18
  8. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngfactory.js +126 -56
  9. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngsummary.json +1 -1
  10. package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +74 -56
  11. package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngfactory.js +80 -80
  12. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +14 -8
  13. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +7 -4
  14. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngsummary.json +1 -1
  15. package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
  16. package/esm2015/lib/workflow-program/constants.js +5 -4
  17. package/esm2015/lib/workflow-program/constants.ngsummary.json +1 -1
  18. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.js +3 -2
  19. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngfactory.js +38 -39
  20. package/esm2015/lib/workflow-program/create-program-ui/custom-field/custom-field.component.js +2 -2
  21. package/esm2015/lib/workflow-program/create-program-ui/custom-field/custom-field.component.ngfactory.js +1 -1
  22. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.js +1 -1
  23. package/esm2015/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.js +3 -3
  24. package/esm2015/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.ngsummary.json +1 -1
  25. package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.js +2 -2
  26. package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.ngfactory.js +1 -1
  27. package/esm2015/lib/workflow-program/workflow-program.component.js +59 -22
  28. package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +141 -139
  29. package/esm2015/lib/workflow-program/workflow-program.component.ngsummary.json +1 -1
  30. package/fesm2015/vcomply-workflow-engine.js +333 -122
  31. package/fesm2015/vcomply-workflow-engine.js.map +1 -1
  32. package/lib/sharedComponents/program-listing/program-list-model.d.ts +25 -0
  33. package/lib/sharedComponents/program-listing/program-listing.component.d.ts +25 -12
  34. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -0
  35. package/lib/workflow-program/constants.d.ts +1 -0
  36. package/lib/workflow-program/workflow-program.component.d.ts +5 -0
  37. package/package.json +1 -1
  38. package/vcomply-workflow-engine.metadata.json +1 -1
@@ -22,14 +22,15 @@ export const CONSTANTS = {
22
22
  colorPalette: true,
23
23
  link: true,
24
24
  file: true,
25
- placeholder: 'Add a description',
25
+ id: 'description',
26
+ placeholder: 'Add a description for this Program',
26
27
  },
27
28
  objective: {
28
29
  mode: 'prime',
29
30
  colorPalette: true,
30
31
  link: true,
31
- file: true,
32
- id: 'vksvdslkvdslkvjdskljv',
32
+ file: false,
33
+ id: 'objective',
33
34
  placeholder: 'What is the objective of this program?',
34
35
  },
35
36
  additionalOption: {
@@ -40,4 +41,4 @@ export const CONSTANTS = {
40
41
  CUSTOM_FIELDS: false
41
42
  }
42
43
  };
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3JCLFlBQVksRUFBRztRQUNYLEVBQUMsS0FBSyxFQUFDLGFBQWEsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDO1FBQzdCLEVBQUMsS0FBSyxFQUFDLFdBQVcsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDO1FBQzNCLEVBQUMsS0FBSyxFQUFDLG1CQUFtQixFQUFDLEtBQUssRUFBQyxDQUFDLEVBQUM7UUFDbkMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxDQUFDLEVBQUM7S0FDekI7SUFDRCxzQkFBc0IsRUFBRztRQUN2QixFQUFDLEtBQUssRUFBQyxrQkFBa0IsRUFBQyxLQUFLLEVBQUMsWUFBWSxFQUFDO1FBQzdDLEVBQUMsS0FBSyxFQUFDLHdCQUF3QixFQUFDLEtBQUssRUFBQyxnQkFBZ0IsRUFBQztLQUN4RDtJQUNELFVBQVUsRUFBRztRQUNYLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLFdBQVcsRUFBQyxLQUFLO1FBQ2pCLFdBQVcsRUFBQyxLQUFLO1FBQ2pCLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUNyQztJQUNELFdBQVcsRUFBSTtRQUNiLElBQUksRUFBRSxPQUFPO1FBQ2IsWUFBWSxFQUFFLElBQUk7UUFDbEIsSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUMsSUFBSTtRQUNULFdBQVcsRUFBRSxtQkFBbUI7S0FDakM7SUFFRCxTQUFTLEVBQUc7UUFDVixJQUFJLEVBQUUsT0FBTztRQUNiLFlBQVksRUFBRSxJQUFJO1FBQ2xCLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFDLElBQUk7UUFDVCxFQUFFLEVBQUMsdUJBQXVCO1FBQzFCLFdBQVcsRUFBRSx3Q0FBd0M7S0FDdEQ7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixRQUFRLEVBQUUsS0FBSztRQUNmLFFBQVEsRUFBRSxLQUFLO1FBQ2YsVUFBVSxFQUFFLEtBQUs7UUFDakIsZ0JBQWdCLEVBQUUsS0FBSztRQUN2QixhQUFhLEVBQUUsS0FBSztLQUNyQjtDQUNOLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ09OU1RBTlRTID0ge1xyXG4gICAgY2F0ZWdvcnlUeXBlIDogW1xyXG4gICAgICAgIHtsYWJlbDonUkVHVUxBVElPTlMnLHZhbHVlOjF9LFxyXG4gICAgICAgIHtsYWJlbDonU1RBTkRBUkRTJyx2YWx1ZToyfSxcclxuICAgICAgICB7bGFiZWw6J0lOVEVSTkFMIENPTlRST0xTJyx2YWx1ZTozfSxcclxuICAgICAgICB7bGFiZWw6J09USEVSUycsdmFsdWU6MH1cclxuICAgICAgXSxcclxuICAgICAgcGVyZm9ybWFuY2VDYWxjdWxhdGlvbiA6IFtcclxuICAgICAgICB7bGFiZWw6J1BBU1QgRVZFTlRTIE9OTFknLHZhbHVlOidQQVNUX0VWRU5UJ30sXHJcbiAgICAgICAge2xhYmVsOidQQVNUICYgVVBDT01JTkcgRVZFTlRTJyx2YWx1ZTonVVBDT01JTkdfRVZFTlQnfSxcclxuICAgICAgXSxcclxuICAgICAgZGF0ZUNvbmZpZyA6IHtcclxuICAgICAgICBkaXNhYmxlS2V5cHJlc3M6IHRydWUsXHJcbiAgICAgICAgZm9ybWF0OiAnREQgTU1NIFlZWVknLFxyXG4gICAgICAgIHVuU2VsZWN0T25DbGljazogdHJ1ZSxcclxuICAgICAgICBvcGVuT25DbGljazpmYWxzZSxcclxuICAgICAgICBvcGVuT25Gb2N1czpmYWxzZSxcclxuICAgICAgICBtaW46IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAgIHtcclxuICAgICAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICBsaW5rOiB0cnVlLFxyXG4gICAgICAgIGZpbGU6dHJ1ZSxcclxuICAgICAgICBwbGFjZWhvbGRlcjogJ0FkZCBhIGRlc2NyaXB0aW9uJyxcclxuICAgICAgfSxcclxuICAgIFxyXG4gICAgICBvYmplY3RpdmU6ICB7XHJcbiAgICAgICAgbW9kZTogJ3ByaW1lJyxcclxuICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICBmaWxlOnRydWUsXHJcbiAgICAgICAgaWQ6J3Zrc3Zkc2xrdmRzbGt2amRza2xqdicsXHJcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdXaGF0IGlzIHRoZSBvYmplY3RpdmUgb2YgdGhpcyBwcm9ncmFtPycsXHJcbiAgICAgIH0sXHJcbiAgICAgIGFkZGl0aW9uYWxPcHRpb246IHtcclxuICAgICAgICBSRVZJRVdFUjogZmFsc2UsXHJcbiAgICAgICAgT1ZFUlNFRVI6IGZhbHNlLFxyXG4gICAgICAgIEFTU0VTU01FTlQ6IGZhbHNlLFxyXG4gICAgICAgIEZPUk1BVEVfRVZJREVOQ0U6IGZhbHNlLFxyXG4gICAgICAgIENVU1RPTV9GSUVMRFM6IGZhbHNlXHJcbiAgICAgIH1cclxufSJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3JCLFlBQVksRUFBRztRQUNYLEVBQUMsS0FBSyxFQUFDLGFBQWEsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDO1FBQzdCLEVBQUMsS0FBSyxFQUFDLFdBQVcsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDO1FBQzNCLEVBQUMsS0FBSyxFQUFDLG1CQUFtQixFQUFDLEtBQUssRUFBQyxDQUFDLEVBQUM7UUFDbkMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxDQUFDLEVBQUM7S0FDekI7SUFDRCxzQkFBc0IsRUFBRztRQUN2QixFQUFDLEtBQUssRUFBQyxrQkFBa0IsRUFBQyxLQUFLLEVBQUMsWUFBWSxFQUFDO1FBQzdDLEVBQUMsS0FBSyxFQUFDLHdCQUF3QixFQUFDLEtBQUssRUFBQyxnQkFBZ0IsRUFBQztLQUN4RDtJQUNELFVBQVUsRUFBRztRQUNYLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLFdBQVcsRUFBQyxLQUFLO1FBQ2pCLFdBQVcsRUFBQyxLQUFLO1FBQ2pCLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUNyQztJQUNELFdBQVcsRUFBSTtRQUNiLElBQUksRUFBRSxPQUFPO1FBQ2IsWUFBWSxFQUFFLElBQUk7UUFDbEIsSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUMsSUFBSTtRQUNULEVBQUUsRUFBQyxhQUFhO1FBQ2hCLFdBQVcsRUFBRSxvQ0FBb0M7S0FDbEQ7SUFFRCxTQUFTLEVBQUc7UUFDVixJQUFJLEVBQUUsT0FBTztRQUNiLFlBQVksRUFBRSxJQUFJO1FBQ2xCLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFDLEtBQUs7UUFDVixFQUFFLEVBQUMsV0FBVztRQUNkLFdBQVcsRUFBRSx3Q0FBd0M7S0FDdEQ7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixRQUFRLEVBQUUsS0FBSztRQUNmLFFBQVEsRUFBRSxLQUFLO1FBQ2YsVUFBVSxFQUFFLEtBQUs7UUFDakIsZ0JBQWdCLEVBQUUsS0FBSztRQUN2QixhQUFhLEVBQUUsS0FBSztLQUNyQjtDQUNOLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ09OU1RBTlRTID0ge1xyXG4gICAgY2F0ZWdvcnlUeXBlIDogW1xyXG4gICAgICAgIHtsYWJlbDonUkVHVUxBVElPTlMnLHZhbHVlOjF9LFxyXG4gICAgICAgIHtsYWJlbDonU1RBTkRBUkRTJyx2YWx1ZToyfSxcclxuICAgICAgICB7bGFiZWw6J0lOVEVSTkFMIENPTlRST0xTJyx2YWx1ZTozfSxcclxuICAgICAgICB7bGFiZWw6J09USEVSUycsdmFsdWU6MH1cclxuICAgICAgXSxcclxuICAgICAgcGVyZm9ybWFuY2VDYWxjdWxhdGlvbiA6IFtcclxuICAgICAgICB7bGFiZWw6J1BBU1QgRVZFTlRTIE9OTFknLHZhbHVlOidQQVNUX0VWRU5UJ30sXHJcbiAgICAgICAge2xhYmVsOidQQVNUICYgVVBDT01JTkcgRVZFTlRTJyx2YWx1ZTonVVBDT01JTkdfRVZFTlQnfSxcclxuICAgICAgXSxcclxuICAgICAgZGF0ZUNvbmZpZyA6IHtcclxuICAgICAgICBkaXNhYmxlS2V5cHJlc3M6IHRydWUsXHJcbiAgICAgICAgZm9ybWF0OiAnREQgTU1NIFlZWVknLFxyXG4gICAgICAgIHVuU2VsZWN0T25DbGljazogdHJ1ZSxcclxuICAgICAgICBvcGVuT25DbGljazpmYWxzZSxcclxuICAgICAgICBvcGVuT25Gb2N1czpmYWxzZSxcclxuICAgICAgICBtaW46IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAgIHtcclxuICAgICAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICBsaW5rOiB0cnVlLFxyXG4gICAgICAgIGZpbGU6dHJ1ZSxcclxuICAgICAgICBpZDonZGVzY3JpcHRpb24nLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnQWRkIGEgZGVzY3JpcHRpb24gZm9yIHRoaXMgUHJvZ3JhbScsXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBvYmplY3RpdmU6ICB7XHJcbiAgICAgICAgbW9kZTogJ3ByaW1lJyxcclxuICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICBmaWxlOmZhbHNlLFxyXG4gICAgICAgIGlkOidvYmplY3RpdmUnLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnV2hhdCBpcyB0aGUgb2JqZWN0aXZlIG9mIHRoaXMgcHJvZ3JhbT8nLFxyXG4gICAgICB9LFxyXG4gICAgICBhZGRpdGlvbmFsT3B0aW9uOiB7XHJcbiAgICAgICAgUkVWSUVXRVI6IGZhbHNlLFxyXG4gICAgICAgIE9WRVJTRUVSOiBmYWxzZSxcclxuICAgICAgICBBU1NFU1NNRU5UOiBmYWxzZSxcclxuICAgICAgICBGT1JNQVRFX0VWSURFTkNFOiBmYWxzZSxcclxuICAgICAgICBDVVNUT01fRklFTERTOiBmYWxzZVxyXG4gICAgICB9XHJcbn1cclxuIl19
@@ -1 +1 @@
1
- {"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"categoryType":[{"label":"REGULATIONS","value":1},{"label":"STANDARDS","value":2},{"label":"INTERNAL CONTROLS","value":3},{"label":"OTHERS","value":0}],"performanceCalculation":[{"label":"PAST EVENTS ONLY","value":"PAST_EVENT"},{"label":"PAST & UPCOMING EVENTS","value":"UPCOMING_EVENT"}],"dateConfig":{"disableKeypress":true,"format":"DD MMM YYYY","unSelectOnClick":true,"openOnClick":false,"openOnFocus":false,"min":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"new"},"member":"getDate"}},"member":"toString"}}},"description":{"mode":"prime","colorPalette":true,"link":true,"file":true,"placeholder":"Add a description"},"objective":{"mode":"prime","colorPalette":true,"link":true,"file":true,"id":"vksvdslkvdslkvjdskljv","placeholder":"What is the objective of this program?"},"additionalOption":{"REVIEWER":false,"OVERSEER":false,"ASSESSMENT":false,"FORMATE_EVIDENCE":false,"CUSTOM_FIELDS":false}}}],"symbols":[{"__symbol":0,"name":"CONSTANTS","filePath":"./constants"}]}
1
+ {"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"categoryType":[{"label":"REGULATIONS","value":1},{"label":"STANDARDS","value":2},{"label":"INTERNAL CONTROLS","value":3},{"label":"OTHERS","value":0}],"performanceCalculation":[{"label":"PAST EVENTS ONLY","value":"PAST_EVENT"},{"label":"PAST & UPCOMING EVENTS","value":"UPCOMING_EVENT"}],"dateConfig":{"disableKeypress":true,"format":"DD MMM YYYY","unSelectOnClick":true,"openOnClick":false,"openOnFocus":false,"min":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"new"},"member":"getDate"}},"member":"toString"}}},"description":{"mode":"prime","colorPalette":true,"link":true,"file":true,"id":"description","placeholder":"Add a description for this Program"},"objective":{"mode":"prime","colorPalette":true,"link":true,"file":false,"id":"objective","placeholder":"What is the objective of this program?"},"additionalOption":{"REVIEWER":false,"OVERSEER":false,"ASSESSMENT":false,"FORMATE_EVIDENCE":false,"CUSTOM_FIELDS":false}}}],"symbols":[{"__symbol":0,"name":"CONSTANTS","filePath":"./constants"}]}
@@ -237,6 +237,7 @@ export class AssessmentPickerComponent {
237
237
  var _a;
238
238
  this.selectedAssessmentCategoriesIds = (_a = this.selectedAssessmentArr.filter((cat) => { var _a; return ((_a = cat === null || cat === void 0 ? void 0 : cat.assessmentIds) === null || _a === void 0 ? void 0 : _a.length) > 0; })) === null || _a === void 0 ? void 0 : _a.map((ele) => ele === null || ele === void 0 ? void 0 : ele.category_id).flat();
239
239
  this.selectedAssessmentIds = this.selectedAssessmentArr.map((cat) => cat === null || cat === void 0 ? void 0 : cat.assessmentIds.map((ele) => ele === null || ele === void 0 ? void 0 : ele.id)).flat();
240
+ console.log("this.selectedAssessmentIds ==>", this.selectedAssessmentIds);
240
241
  this.selectedAssessment = this.selectedAssessmentArr.map((cat) => cat === null || cat === void 0 ? void 0 : cat.assessmentIds.map((ele) => ele)).flat();
241
242
  }
242
243
  // TODO: Display selected data in bottom floating bar with next enabled button having
@@ -265,7 +266,7 @@ export class AssessmentPickerComponent {
265
266
  AssessmentPickerComponent.decorators = [
266
267
  { type: Component, args: [{
267
268
  selector: 'assessment-picker',
268
- template: "<app-preview *ngIf=\"isPreview\" [questionData]=\"previewQuestionData\" (previewBack)=\"previewBack()\"></app-preview>\r\n<div class=\"assessment-list\" [class.animate]=\"animation\">\r\n\r\n <ng-container >\r\n <div class=\"assessment-list-head\">\r\n <button class=\"back-btn\">\r\n <!-- <i class=\"icons\">&#xe91d;</i> -->\r\n </button>\r\n <h3 class=\"assessment-list-title\">Select an Assessment</h3>\r\n </div>\r\n <div class=\"assessment-list-body\">\r\n <div class=\"search-block\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"searchAssessments\" (change)=\"onAssessmentSearch($event.target.value)\" placeholder=\"Search Assessment Category\" />\r\n </div>\r\n <pagination\r\n\r\n [pageCount]=\"assessmentCategory?.totalPage\"\r\n [total]=\"assessmentCategory?.totalRecords\"\r\n [start]=\"assessmentCategory?.start_value\"\r\n [end]=\"assessmentCategory?.end_value\"\r\n [activeAlphabet]=\"''\"\r\n (selectedAlphabet)=\"onAlphabetSelected($event)\"\r\n (selectedPage)=\"onPageSelection($event)\"\r\n ></pagination>\r\n <div *ngIf=\"assessmentCategory.data.length === 0 && !isLoader\" class=\"assessment-list-part\">\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Assessments Found.'\"></app-no-data>\r\n </div>\r\n <div *ngIf=\"assessmentCategory.data.length || isLoader\" class=\"assessment-list-part\">\r\n <div *ngIf=\"isEdit && selectedAssessment?.assessmentDetails?.assessment_name\" class=\"assessment-list-selected\">\r\n <div class=\"assessment-list-heading\">Assessment already selected for this responsibility</div>\r\n <div class=\"assessment-list-item\">\r\n <div class=\"table-row\">\r\n <div class=\"table-column serial disabled\">\r\n <app-cs-radio [disabled]=\"true\" class=\"disabled\" [checked]=\"true\" [readonly]=\"true\"></app-cs-radio>\r\n </div>\r\n <div class=\"table-column sub-name\">\r\n <div class=\"name-inner\">\r\n <div class=\"value\" [appTooltip]=\"selectedAssessment?.assessmentDetails?.assessment_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedAssessment?.assessmentDetails?.assessment_name}}</div>\r\n <div class=\"within-part\">\r\n <span class=\"within-box\">Within</span>\r\n <span class=\"value\" [appTooltip]=\"selectedAssessment?.category_details?.category_name + (selectedAssessment?.category_details?.parent_tree ? ' > ' + selectedAssessment?.category_details?.parent_tree : '')\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedAssessment?.category_details?.category_name + (selectedAssessment?.category_details?.parent_tree ? ' > ' + selectedAssessment?.category_details?.parent_tree : '')}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column question\">\r\n <div class=\"label\">{{selectedAssessment?.assessmentDetails?.questions}} {{selectedAssessment?.assessmentDetails?.questions > 1 ? 'Questions': 'Question'}}</div>\r\n <div class=\"buttons\">\r\n <button class=\"action-btn\" (click)=\"preview(selectedAssessment?.assessmentDetails)\"><i class=\"icons\">&#xeae5;</i> Preview</button>\r\n <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe90c;</i> Edit</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"assessment-list-heading\">Select an Assessment for this responsibility</div>\r\n\r\n <!--\r\n Assessment category list\r\n active class is used for highlighting opened element\r\n -->\r\n <ng-container *ngIf=\"!isLoader\">\r\n <div *ngFor=\"let data of assessmentCategory.data; let i = index;\" class=\"assessment-list-item\" [class.active]=\"openedCategory.includes(data?.id) || data.id === selectedAssessment?.category_id\">\r\n <div class=\"table-row main-list\" (click)=\"expandCategory(data?.id)\" [class.disabled]=\"data?.assessmentcount < 1\">\r\n <div class=\"table-column serial\">\r\n <div [id]=\"'sr-no' + i\" class=\"sr-no\" [appTooltip]=\"i + 1\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}</div>\r\n </div>\r\n <div class=\"table-column name\">\r\n <div class=\"name-inner\">\r\n <div class=\"value\" [appTooltip]=\"data.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.category_name}}</div>\r\n <div class=\"within-part\" *ngIf=\"data?.parent_tree\">\r\n <span class=\"within-box\">Within</span>\r\n <span class=\"value\" [appTooltip]=\"data.parent_tree\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.parent_tree}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column action\">\r\n <button [id]=\"'arrow' + i\" class=\"arrow\" [class.disabled] = \"data?.assessmentcount < 1\" [disabled]=\"data?.assessmentcount < 1\">\r\n <i *ngIf=\"!openedCategory.includes(data?.id)\" class=\"icons\">&#xe970;</i>\r\n <i *ngIf=\"openedCategory.includes(data?.id)\" class=\"icons\">&#xe9e8;</i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Assessment list start from here -->\r\n <div *ngIf=\"openedCategory.includes(data?.id)\" class=\"sub-list\">\r\n <ng-container *ngIf=\"data.assessmentData?.length > 0\">\r\n <div class=\"table-row\" *ngFor=\"let assessment of data.assessmentData; let j = index\" [class.active]=\"(selectedAssessmentData |selectedAssessment: data.id).includes(assessment.id)\">\r\n <div class=\"table-column serial\">\r\n <div [id]=\"'sub-sr-no'+ i+j\" class=\"sr-no active\" appTooltip=\"{{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}.{{j + 1}}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\r\n {{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}.{{j + 1}}\r\n <!-- <app-cs-radio name=\"assessment\" [value]=\"assessment.id\" [checked]=\"assessment?.id === selectedAssessment?.assessment_id && data?.id === selectedAssessment?.category_id\"\r\n (checkedEvent)=\"setAssessment(data, assessment)\"></app-cs-radio> -->\r\n <!-- (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds.includes(group?.group_id)\" -->\r\n\r\n <vui-checkbox [checked]=\"(selectedAssessmentIds).includes(assessment.id)\" (change)=\"selectAssessment($event,assessment, data)\"></vui-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"table-column sub-name\">\r\n <div class=\"value\" [appTooltip]=\"'Mission and message, communications to external audiences'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{assessment?.assessment_name}}</div>\r\n </div>\r\n <div class=\"table-column question\">\r\n <div class=\"label\">{{assessment?.questions}} {{assessment?.questions > 1 ? 'Questions' : 'Question'}}</div>\r\n <div class=\"buttons\">\r\n <button class=\"action-btn\" (click)=\"preview(assessment)\"><i class=\"icons\">&#xeae5;</i> Preview</button>\r\n <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe9ba;</i> Edit</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Loader loading isLoader -->\r\n <assessment-sub-loader *ngIf=\"!data.assessmentData?.length\"></assessment-sub-loader>\r\n <!-- <app-line-loader *ngIf=\"!data.assessmentData?.length\" [loaderHeight]=\"'5'\"></app-line-loader> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Loader loading isLoader -->\r\n <assessment-loader *ngIf=\"isLoader\"></assessment-loader>\r\n </div>\r\n <!-- No data image -->\r\n <app-no-data *ngIf=\"!assessmentCategory.data.length && !isLoader\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Data to Display'\"></app-no-data>\r\n </div>\r\n <!--\r\n bottom floating bar which includes cancel, next button\r\n closing tab\r\n -->\r\n\r\n\r\n <vui-floating-bar (closeEvent)=\"save()\" (closeList)=\"close()\">\r\n <div class=\"counter\" *ngIf=\"selectedAssessment?.length\" appPopover (click)=\"assessmentCount.popover()\"\r\n placement=\"left\">{{selectedAssessment?.length}}</div>\r\n <div class=\"name\">\r\n <span *ngIf=\"selectedAssessment?.length === 1\">Assessment selected</span>\r\n <span *ngIf=\"selectedAssessment?.length > 1\">Assessments selected</span>\r\n </div>\r\n <app-popover #assessmentCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedAssessment; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <!-- <i class=\"icons\"\r\n (click)=\"selectAssessment({target:{checked:false}},element)\">&#xe90d;</i> -->\r\n {{element?.assessment_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n </vui-floating-bar>\r\n\r\n </ng-container>\r\n</div>\r\n",
269
+ template: "<app-preview *ngIf=\"isPreview\" [questionData]=\"previewQuestionData\" (previewBack)=\"previewBack()\"></app-preview>\r\n<div class=\"assessment-list\" [class.animate]=\"animation\">\r\n\r\n <ng-container >\r\n <div class=\"assessment-list-head\">\r\n <button class=\"back-btn\">\r\n <!-- <i class=\"icons\">&#xe91d;</i> -->\r\n </button>\r\n <h3 class=\"assessment-list-title\">Select an Assessment</h3>\r\n </div>\r\n <div class=\"assessment-list-body\">\r\n <div class=\"search-block\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"searchAssessments\" (change)=\"onAssessmentSearch($event.target.value)\" placeholder=\"Search Assessment Category\" />\r\n </div>\r\n <pagination\r\n\r\n [pageCount]=\"assessmentCategory?.totalPage\"\r\n [total]=\"assessmentCategory?.totalRecords\"\r\n [start]=\"assessmentCategory?.start_value\"\r\n [end]=\"assessmentCategory?.end_value\"\r\n [activeAlphabet]=\"''\"\r\n (selectedAlphabet)=\"onAlphabetSelected($event)\"\r\n (selectedPage)=\"onPageSelection($event)\"\r\n ></pagination>\r\n <div *ngIf=\"assessmentCategory.data.length === 0 && !isLoader\" class=\"assessment-list-part\">\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Assessments Found.'\"></app-no-data>\r\n </div>\r\n <div *ngIf=\"assessmentCategory.data.length || isLoader\" class=\"assessment-list-part\">\r\n <div *ngIf=\"isEdit && selectedAssessment?.assessmentDetails?.assessment_name\" class=\"assessment-list-selected\">\r\n <div class=\"assessment-list-heading\">Assessment already selected for this responsibility</div>\r\n <div class=\"assessment-list-item\">\r\n <div class=\"table-row\">\r\n <div class=\"table-column serial disabled\">\r\n <app-cs-radio [disabled]=\"true\" class=\"disabled\" [checked]=\"true\" [readonly]=\"true\"></app-cs-radio>\r\n </div>\r\n <div class=\"table-column sub-name\">\r\n <div class=\"name-inner\">\r\n <div class=\"value\" [appTooltip]=\"selectedAssessment?.assessmentDetails?.assessment_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedAssessment?.assessmentDetails?.assessment_name}}</div>\r\n <div class=\"within-part\">\r\n <span class=\"within-box\">Within</span>\r\n <span class=\"value\" [appTooltip]=\"selectedAssessment?.category_details?.category_name + (selectedAssessment?.category_details?.parent_tree ? ' > ' + selectedAssessment?.category_details?.parent_tree : '')\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedAssessment?.category_details?.category_name + (selectedAssessment?.category_details?.parent_tree ? ' > ' + selectedAssessment?.category_details?.parent_tree : '')}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column question\">\r\n <div class=\"label\">{{selectedAssessment?.assessmentDetails?.questions}} {{selectedAssessment?.assessmentDetails?.questions > 1 ? 'Questions': 'Question'}}</div>\r\n <div class=\"buttons\">\r\n <button class=\"action-btn\" (click)=\"preview(selectedAssessment?.assessmentDetails)\"><i class=\"icons\">&#xeae5;</i> Preview</button>\r\n <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe90c;</i> Edit</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"assessment-list-heading\">Select an Assessment for this responsibility</div>\r\n\r\n <!--\r\n Assessment category list\r\n active class is used for highlighting opened element\r\n -->\r\n <ng-container *ngIf=\"!isLoader\">\r\n <div *ngFor=\"let data of assessmentCategory.data; let i = index;\" class=\"assessment-list-item\" [class.active]=\"openedCategory.includes(data?.id) || data.id === selectedAssessment?.category_id\">\r\n <div class=\"table-row main-list\" (click)=\"expandCategory(data?.id)\" [class.disabled]=\"data?.assessmentcount < 1\">\r\n <div class=\"table-column serial\">\r\n <div [id]=\"'sr-no' + i\" class=\"sr-no\" [appTooltip]=\"i + 1\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}</div>\r\n </div>\r\n <div class=\"table-column name\">\r\n <div class=\"name-inner\">\r\n <div class=\"value\" [appTooltip]=\"data.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.category_name}}</div>\r\n <div class=\"within-part\" *ngIf=\"data?.parent_tree\">\r\n <span class=\"within-box\">Within</span>\r\n <span class=\"value\" [appTooltip]=\"data.parent_tree\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.parent_tree}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column action\">\r\n <button [id]=\"'arrow' + i\" class=\"arrow\" [class.disabled] = \"data?.assessmentcount < 1\" [disabled]=\"data?.assessmentcount < 1\">\r\n <i *ngIf=\"!openedCategory.includes(data?.id)\" class=\"icons\">&#xe970;</i>\r\n <i *ngIf=\"openedCategory.includes(data?.id)\" class=\"icons\">&#xe9e8;</i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Assessment list start from here -->\r\n <div *ngIf=\"openedCategory.includes(data?.id)\" class=\"sub-list\">\r\n <ng-container *ngIf=\"data.assessmentData?.length > 0\">\r\n <div class=\"table-row\" *ngFor=\"let assessment of data.assessmentData; let j = index\" [class.active]=\"(selectedAssessmentIds).includes(assessment.id)\">\r\n <div class=\"table-column serial\">\r\n <div [id]=\"'sub-sr-no'+ i+j\" class=\"sr-no active\" appTooltip=\"{{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}.{{j + 1}}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\r\n {{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}.{{j + 1}}\r\n <!-- <app-cs-radio name=\"assessment\" [value]=\"assessment.id\" [checked]=\"assessment?.id === selectedAssessment?.assessment_id && data?.id === selectedAssessment?.category_id\"\r\n (checkedEvent)=\"setAssessment(data, assessment)\"></app-cs-radio> -->\r\n <!-- (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds.includes(group?.group_id)\" -->\r\n\r\n <vui-checkbox [checked]=\"(selectedAssessmentIds).includes(assessment.id)\" (change)=\"selectAssessment($event,assessment, data)\"></vui-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"table-column sub-name\">\r\n <div class=\"value\" [appTooltip]=\"'Mission and message, communications to external audiences'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{assessment?.assessment_name}}</div>\r\n </div>\r\n <div class=\"table-column question\">\r\n <div class=\"label\">{{assessment?.questions}} {{assessment?.questions > 1 ? 'Questions' : 'Question'}}</div>\r\n <div class=\"buttons\">\r\n <button class=\"action-btn\" (click)=\"preview(assessment)\"><i class=\"icons\">&#xeae5;</i> Preview</button>\r\n <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe9ba;</i> Edit</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Loader loading isLoader -->\r\n <assessment-sub-loader *ngIf=\"!data.assessmentData?.length\"></assessment-sub-loader>\r\n <!-- <app-line-loader *ngIf=\"!data.assessmentData?.length\" [loaderHeight]=\"'5'\"></app-line-loader> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Loader loading isLoader -->\r\n <assessment-loader *ngIf=\"isLoader\"></assessment-loader>\r\n </div>\r\n <!-- No data image -->\r\n <app-no-data *ngIf=\"!assessmentCategory.data.length && !isLoader\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Data to Display'\"></app-no-data>\r\n </div>\r\n <!--\r\n bottom floating bar which includes cancel, next button\r\n closing tab\r\n -->\r\n\r\n\r\n <vui-floating-bar (closeEvent)=\"save()\" (closeList)=\"close()\">\r\n <div class=\"counter\" *ngIf=\"selectedAssessment?.length\" appPopover (click)=\"assessmentCount.popover()\"\r\n placement=\"left\">{{selectedAssessment?.length}}</div>\r\n <div class=\"name\">\r\n <span *ngIf=\"selectedAssessment?.length === 1\">Assessment selected</span>\r\n <span *ngIf=\"selectedAssessment?.length > 1\">Assessments selected</span>\r\n </div>\r\n <app-popover #assessmentCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedAssessment; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <!-- <i class=\"icons\"\r\n (click)=\"selectAssessment({target:{checked:false}},element)\">&#xe90d;</i> -->\r\n {{element?.assessment_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n </vui-floating-bar>\r\n\r\n </ng-container>\r\n</div>\r\n",
269
270
  styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .assessment-list{background:#fff;border-top:3px solid #1e5dd3;position:fixed;top:0;right:500px;bottom:0;left:0;z-index:1}::ng-deep .assessment-list.animate{-webkit-animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .assessment-list-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .assessment-list-head button.back-btn{background:transparent;border-radius:0;border:0;color:#161b2f;font-size:16px;padding:0;margin:0 8px 0 0}::ng-deep .assessment-list-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .assessment-list-close{background:transparent;border:none;outline:none;cursor:pointer;color:#000;font-size:12px;display:inline-block;padding:0}::ng-deep .assessment-list-body{padding:24px 40px 24px 36px;height:calc(100vh - 112px)}::ng-deep .assessment-list-body .search-block{position:relative}::ng-deep .assessment-list-body .search-block input{height:44px;line-height:24px;padding:10px 15px 10px 40px;outline:none;border:1px solid #7475763f;border-radius:4px;width:100%;font-size:14px;color:#747576}::ng-deep .assessment-list-body .search-block input::-moz-placeholder{font-weight:400}::ng-deep .assessment-list-body .search-block input:-ms-input-placeholder{font-weight:400}::ng-deep .assessment-list-body .search-block input::placeholder{font-weight:400}::ng-deep .assessment-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .assessment-list-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .assessment-list-body .assessment-list-part{height:calc(100vh - 228px);overflow:auto;padding:8px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-selected{margin-bottom:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-heading{color:#161b2f;font-size:12px;font-weight:600;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item{border:1px solid #f1f1f1;border-radius:2px;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .main-list{cursor:pointer}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item.active{border-color:#1e5dd3;box-shadow:0 3px 6px #4681ef26}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row{display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row.disabled{pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column{color:#747576;height:48px;position:relative;width:100%;display:flex;align-items:center;padding:0 4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no{width:16px;background:#f8f8f8;-ms-writing-mode:tb-lr;writing-mode:vertical-lr;color:#747576;font-size:10px;font-weight:500;display:flex;height:100%;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no vui-checkbox{position:absolute;top:8px;left:0;opacity:0;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no vui-checkbox label.checkbox-item{position:unset}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name{width:calc(100% - 64px);min-width:calc(100% - 64px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner .value{color:#161b2f;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.arrow{background:transparent;border:none;border-radius:0;color:#747576;font-size:12px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;height:100%;width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.disabled{opacity:.5!important;pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name{width:calc(100% - 232px);min-width:calc(100% - 232px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .value{color:#747576;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question{width:200px;max-width:200px;justify-content:flex-end}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-right:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons{display:flex;width:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:24px;text-transform:uppercase;padding:0 8px;display:flex;align-items:center;margin:0}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row:hover .table-column.question .buttons{width:86px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row{border-top:1px solid #f1f1f1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no{color:#f8f8f8}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no vui-checkbox,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no vui-checkbox{opacity:1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row .table-column{height:32px}::ng-deep .assessment-list-body ul{padding:0;margin:0}::ng-deep .assessment-list-body ul.assessment{max-height:calc(100vh - 240px);overflow:auto;padding:16px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body ul.assessment li{padding:0 0 12px;list-style:none;display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body ul.assessment li vui-checkbox{width:calc(100% - 260px)}::ng-deep .assessment-list-body ul.assessment li vui-checkbox .radio-item .value .name{font-size:12px;color:#161b2f;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .assessment-list-body ul.assessment li .right{display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px}::ng-deep .assessment-list-body ul.assessment li .right .buttons{display:flex;width:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:24px;text-transform:uppercase;padding:0 8px;margin-left:12px;display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body ul.assessment li:hover .right .buttons{width:156px}.within-part{display:flex;align-items:center;padding-right:12px}.within-part .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:12px;color:#747576}.within-box{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding:0 4px;margin-right:8px;line-height:12px}@-webkit-keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}.action-list{width:220px}.action-list ul{padding:0;margin:0;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.action-list ul.action-item{display:block}.action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.action-list ul.action-item li button i{font-size:17px;margin-right:10px;color:#1c5bd1}.action-list ul.action-item li button:hover{background:#f3f3f3}.action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.action-list ul.action-item li .avatar-card.within-con{display:block}.action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#4681ef;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;-moz-text-align-last:left;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#1c5bd1;cursor:pointer;margin-right:5px}.action-list ul.action-item li .avatar-card.no-image{display:block}.action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.action-list ul.action-item li .chip-item span.id{font-size:9px}.action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.action-list ul.action-item li:first-child{-webkit-animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(2){-webkit-animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(3){-webkit-animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(4){-webkit-animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(5){-webkit-animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(6){-webkit-animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(7){-webkit-animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(8){-webkit-animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(9){-webkit-animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(10){-webkit-animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}"]
270
271
  },] }
271
272
  ];
@@ -280,4 +281,4 @@ AssessmentPickerComponent.propDecorators = {
280
281
  onAssessmentSelect: [{ type: Output }],
281
282
  cancelAssessment: [{ type: Output }]
282
283
  };
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jcmVhdGUtcHJvZ3JhbS11aS9hc3Nlc3NtZW50LXBpY2tlci9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFRekQsTUFBTSxPQUFPLHlCQUF5QjtJQXFEcEMsWUFDVSxpQkFBb0MsRUFDcEMsSUFBaUI7UUFEakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBdEQzQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDUCxXQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLG1CQUFjLEdBQWtCLEVBQUUsQ0FBQztRQUNuQyxzQkFBaUIsR0FBRztZQUNsQixZQUFZLEVBQUMsRUFBRTtZQUNmLE9BQU8sRUFBQyxHQUFHO1lBQ1gsS0FBSyxFQUFDLFFBQVE7WUFDZCxXQUFXLEVBQUUsRUFBRTtZQUNmLGVBQWUsRUFBRSxFQUFFO1NBQ3BCLENBQUE7UUFFRCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQix1QkFBa0IsR0FBTztZQUN2QixJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxDQUFDO1lBQ1osWUFBWSxFQUFFLENBQUM7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TUFBTTsrQkFFTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi9hc3Nlc3NtZW50LnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXNzZXNzbWVudC1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXNzbWVudFBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWREYXRhOiBhbnk7XHJcbiAgc3ViTGlzdCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzRWRpdCA9IGZhbHNlXHJcbiAgb3BlbmVkQ2F0ZWdvcnk6IEFycmF5PG51bWJlcj4gPSBbXTtcclxuICBhc3Nlc3NtZW50UGF5bG9hZCA9IHtcclxuICAgIHNlYXJjaF90aXRsZTpcIlwiLFxyXG4gICAgcGFnZV9ubzpcIjFcIixcclxuICAgIHN0YXRlOlwiQUNUSVZFXCIsXHJcbiAgICBzZWFyY2hfdGV4dDogJycsXHJcbiAgICBhbHBoYWJldF9maWx0ZXI6ICcnXHJcbiAgfVxyXG5cclxuICBkYXRhUGVyUGFnZSA9IDA7XHJcblxyXG4gIGFzc2Vzc21lbnRDYXRlZ29yeTogYW55ID17XHJcbiAgICBkYXRhOiBbXSxcclxuICAgIHRvdGFsUGFnZTogMCxcclxuICAgIHRvdGFsUmVjb3JkczogMCxcclxuICAgIHN0YXJ0X3ZhbHVlOiAwLFxyXG4gICAgZW5kX3ZhbHVlOiAwLFxyXG4gICAgY3VycmVudFBhZ2U6IDBcclxuICB9O1xyXG4gIGlzTG9hZGVyID0gZmFsc2VcclxuXHJcblxyXG4gIEBJbnB1dCgnc2VsZWN0ZWRBc3Nlc3NtZW50Jykgc2V0IHNldFNlbGVjdGVkKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBbLi4udmFsdWVdO1xyXG4gICAgIC8vdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5mb3JFYWNoKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5LnB1c2goZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgICAvLyAgIHRoaXMuc2hvd1N1Ykxpc3QoaW5kZXgsZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgICAgfSlcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgaXNEZWxldGVkID0gZmFsc2U7XHJcblxyXG4gIHNlYXJjaEFzc2Vzc21lbnRzID0gJyc7XHJcbiAgcHJldmlld1F1ZXN0aW9uRGF0YSAhOiBhbnk7XHJcbiAgaXNQcmV2aWV3ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRBc3Nlc3NtZW50RGF0YTogYW55ID0gW107XHJcblxyXG4gIEBPdXRwdXQoKSBvbkFzc2Vzc21lbnRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBjYW5jZWxBc3Nlc3NtZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBzZWxlY3RlZEFzc2Vzc21lbnRBcnI6IGFueSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXNzZXNzbWVudFNlcnZpY2U6IEFzc2Vzc21lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoIDpBdXRoU2VydmljZVxyXG4gICkge1xyXG5cclxuICAgIHRoaXMuZGF0YVBlclBhZ2UgPSAzMDtcclxuICB9XHJcblxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhcImNoYW5nZXMgPT09PT5cIiwgY2hhbmdlcywgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnREYXRhLCB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeSk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIG9uQXNzZXNzbWVudFNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwcmV2aWV3KGV2dDphbnkpe1xyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRRdWVzdGlvbnMoZXZ0Py5pZCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJyZXNcIixyZXMpO1xyXG4gICAgICAgICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpXHJcbiAgICAgICAgICB0aGlzLmlzUHJldmlldyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnByZXZpZXdRdWVzdGlvbkRhdGEgPSByZXM7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByZXZpZXdCYWNrKCl7XHJcbiAgICB0aGlzLmlzUHJldmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy5wcmV2aWV3UXVlc3Rpb25EYXRhID0ge307XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoZmFsc2UpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpbmRleCA6IEFjY2VwdCBpbmRleCBvZiBlbGVtZW50UG9zaXRpb25cclxuICAgKlxyXG4gICAqL1xyXG4gIHNob3dTdWJMaXN0KGluZGV4OiBudW1iZXIsIGlkOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5vcGVuZWRDYXRlZ29yeWRhc2FzZnNhID09PlwiLCB0aGlzLm9wZW5lZENhdGVnb3J5LGluZGV4LGlkKVxyXG4gICAgaWYodGhpcy5vcGVuZWRDYXRlZ29yeS5pbmNsdWRlcyhpZCkpIHtcclxuICAgICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IHRoaXMub3BlbmVkQ2F0ZWdvcnkuZmlsdGVyKGVsZSA9PiBlbGUgIT09IGlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkucHVzaChpZCk7XHJcbiAgICAgIHRoaXMuZ2V0QXNzZXNzbWVudExpc3QoaWQpXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcInRoaXMub3BlbmVkQ2F0ZWdvcnkgPT0+XCIsIHRoaXMub3BlbmVkQ2F0ZWdvcnkpXHJcbiAgICByZXR1cm4gIHRoaXMub3BlbmVkQ2F0ZWdvcnlcclxuICB9XHJcblxyXG5cclxuICBleHBhbmRDYXRlZ29yeShjYXRlZ29yeUlkOmFueSl7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuYXNzZXNzbWVudENhdGVnb3J5Py5kYXRhPy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT09IGNhdGVnb3J5SWQpO1xyXG4gICAgIGlmKHRoaXMub3BlbmVkQ2F0ZWdvcnkuaW5jbHVkZXMoY2F0ZWdvcnlJZCkgJiYgIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5LmRhdGFbaW5kZXhdLmFzc2Vzc21lbnREYXRhICl7XHJcblxyXG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gdGhpcy5vcGVuZWRDYXRlZ29yeS5maWx0ZXIoZWxlID0+IGVsZSAhPT0gY2F0ZWdvcnlJZCk7XHJcbiAgICAgfWVsc2V7XHJcblxyXG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5LnB1c2goY2F0ZWdvcnlJZCk7XHJcbiAgICAgIHRoaXMuZ2V0QXNzZXNzbWVudExpc3QoY2F0ZWdvcnlJZClcclxuICAgICB9XHJcbiAgfVxyXG4gIC8vIFRPRE86IFBhZ2luYXRpb25cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBldmVudCA6IHBhZ2UgbnVtYmVyIHRoYXQgaGFzIGJlZW4gc2VsZWN0ZWRcclxuICAgKi9cclxuICBvblBhZ2VTZWxlY3Rpb24oZXZlbnQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IFtdO1xyXG4gICAgY29uc29sZS5sb2coXCIxMTFcIilcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQucGFnZV9ubyA9IGV2ZW50LnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE86IFNlYXJjaFxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNlYXJjaCA6IHNlYXJjaCB0ZXh0XHJcbiAgICovXHJcbiAgb25Bc3Nlc3NtZW50U2VhcmNoKHNlYXJjaDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gW107XHJcbiAgICBjb25zb2xlLmxvZyhcIjIyMlwiKVxyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5wYWdlX25vID0gXCIxXCI7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnNlYXJjaF90aXRsZSA9IHNlYXJjaDtcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuc2VhcmNoX3RleHQgPSBzZWFyY2g7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE86IEZpbHRlciBieSBhbHBoYWJldFxyXG4vKipcclxuICpcclxuICogQHBhcmFtIGV2ZW50IDogQXNzZXNzbWVudCBjYXRlZ29yeSBmaWx0ZXIgb2YgQWxwaGFiZXRcclxuICovXHJcbiAgb25BbHBoYWJldFNlbGVjdGVkKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkgPSBbXTtcclxuICAgIGNvbnNvbGUubG9nKFwiMzMzXCIpXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnBhZ2Vfbm8gPSBcIjFcIjtcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuYWxwaGFiZXRfZmlsdGVyID0gZXZlbnQ7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnNlYXJjaF90ZXh0ID0gJyc7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLy8gVE9ETzogQ2FsbCBBUEkgbWV0aG9kXHJcbiAgZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpIHtcclxuICAgIHRoaXMuaXNMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnkodGhpcy5hc3Nlc3NtZW50UGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeSA9IHJlcztcclxuICAgICAgXHJcbiAgICAgIGlmKHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyPy5sZW5ndGgpIHtcclxuICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyID0gIFsuLi4gbmV3IFNldCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycildXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuXHJcblxyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSByZXMuZGF0YS5maW5kSW5kZXgoKGFzc2Vzc21lbnQ6IGFueSkgPT4gYXNzZXNzbWVudC5pZCA9PT0gZWxlLmNhdGVnb3J5X2lkKTtcclxuICAgICAgICAgIHRoaXMuZXhwYW5kQ2F0ZWdvcnkoZWxlLmNhdGVnb3J5X2lkKTtcclxuXHJcbiAgICAgICAgfSlcclxuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5mb3JFYWNoKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICAgIC8vICAgdGhpcy5vcGVuZWRDYXRlZ29yeS5wdXNoKGVsZT8uY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIC8vICAgdGhpcy5zaG93U3ViTGlzdChpbmRleCxlbGU/LmNhdGVnb3J5X2lkKTtcclxuICAgICAgICAvLyB9KVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzogQ2FsbCBTdWIgZGF0YSBBUEkgbWV0aG9kXHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIDogQXNzZXNzbWVudCBjYXRlZ29yeSBpZFxyXG4gICAqL1xyXG4gIGdldEFzc2Vzc21lbnRMaXN0KGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiYXNzc1wiLGlkKVxyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgc2VhcmNoX3RpdGxlOlwiXCIsXHJcbiAgICB9XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRMaXN0KHBheWxvYWQsIGlkKS5zdWJzY3JpYmUoKHJlczogQXJyYXk8YW55PikgPT4ge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuYXNzZXNzbWVudENhdGVnb3J5Py5kYXRhPy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT09IGlkKTtcclxuICAgICAgY29uc29sZS5sb2coXCJpbmRleGVyXCIsaW5kZXgsdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnkpXHJcbiAgICAgIGlmKGluZGV4ID4gLTEgKXtcclxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeS5kYXRhW2luZGV4XS5hc3Nlc3NtZW50RGF0YSA9IFsuLi5uZXcgU2V0KHJlcyldO1xyXG4gICAgICB9XHJcbiAgICAgXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiYXNzXCIsKVxyXG4gICAgICBpZih0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PT0gaWQpO1xyXG4gICAgICAgIC8vIGlmKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgIC8vICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMgID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMubWFwKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vICAgICBlbGUgPSByZXMuZmluZCgoZGF0YTogYW55KSA9PiBkYXRhLmlkID09PSBlbGUpO1xyXG4gICAgICAgIC8vICAgICByZXR1cm4gZWxlO1xyXG4gICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkQXNzZXNzbWVudENhdGVnb3JpZXNJZHM6YW55ID0gW107XHJcbiAgc2VsZWN0ZWRBc3Nlc3NtZW50SWRzOmFueSA9IFtdO1xyXG4gIHNlbGVjdGVkQXNzZXNzbWVudDphbnkgPSBbXTtcclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogU2VsZWN0cyBpdGVtIG9yIGRlc2VsZWN0IGEgaXRtZVxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIHNlbGVjdEFzc2Vzc21lbnQoZXZ0OiBhbnksIHBheWxvYWQ6IGFueSwgY2F0ZWdvcnk6IGFueSkge1xyXG4gICBpZihldnQ/LnRhcmdldD8uY2hlY2tlZCl7XHJcbiAgICAgY29uc29sZS5sb2coXCJzZWxlY3RlZFwiLHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyKVxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT09IGNhdGVnb3J5LmlkKTtcclxuICAgIGlmKGluZGV4ID4gLTEpIHtcclxuICAgICBjb25zdCAgY3VycmVudENhdGVnb3J5QXNzZXNzbWVudCA9ICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcztcclxuICAgICBjdXJyZW50Q2F0ZWdvcnlBc3Nlc3NtZW50LnB1c2gocGF5bG9hZCk7XHJcbiAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChjdXJyZW50Q2F0ZWdvcnlBc3Nlc3NtZW50LCdpZCcpXHJcbiAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpIFxyXG4gICAgIHRoaXMuc2V0Q2F0ZWdvcnlBbmRBc3Nlc3NtZW50KCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIucHVzaCh7XHJcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5LmlkLFxyXG4gICAgICAgIGFzc2Vzc21lbnRJZHM6IFtwYXlsb2FkXVxyXG4gICAgICB9KVxyXG4gICAgIFxyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciA9IGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycikgXHJcbiAgICAgIHRoaXMuc2V0Q2F0ZWdvcnlBbmRBc3Nlc3NtZW50KCk7XHJcbiAgICB9XHJcbiAgIH1lbHNle1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT09IGNhdGVnb3J5LmlkKTtcclxuICAgIGlmKGluZGV4ID4gLTEpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcyA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzLmZpbHRlcigoYXNzZXNzbWVudDogYW55KSA9PiBhc3Nlc3NtZW50LmlkICE9PSBwYXlsb2FkLmlkKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpIFxyXG4gICAgICB0aGlzLnNldENhdGVnb3J5QW5kQXNzZXNzbWVudCgpO1xyXG4gICAgICBpZiggdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHM/Lmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5zcGxpY2UoaW5kZXgpO1xyXG4gICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpIFxyXG4gICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICB9XHJcblxyXG59XHJcblxyXG5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKXtcclxuICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudENhdGVnb3JpZXNJZHMgPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maWx0ZXIoKGNhdDphbnkpID0+IGNhdD8uYXNzZXNzbWVudElkcz8ubGVuZ3RoID4gMCk/Lm1hcCgoZWxlOmFueSkgPT4gZWxlPy5jYXRlZ29yeV9pZCkuZmxhdCgpO1xyXG4gIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50SWRzID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIubWFwKChjYXQ6YW55KSA9PiBjYXQ/LmFzc2Vzc21lbnRJZHMubWFwKChlbGU6YW55KSA9PiBlbGU/LmlkKSkuZmxhdCgpO1xyXG4gIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50ID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIubWFwKChjYXQ6YW55KSA9PiBjYXQ/LmFzc2Vzc21lbnRJZHMubWFwKChlbGU6YW55KSA9PiBlbGUpKS5mbGF0KCk7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiAgLy8gVE9ETzogRGlzcGxheSBzZWxlY3RlZCBkYXRhIGluIGJvdHRvbSBmbG9hdGluZyBiYXIgd2l0aCBuZXh0IGVuYWJsZWQgYnV0dG9uIGhhdmluZ1xyXG5cclxuICAvLyBUT0RPOiBTZW5kIGRhdGEgaW4gcGF5bG9hZCBvZiBjcmVhdGUgUmVzcG9uc2liaWxpdHkgZm9ybVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5vbkFzc2Vzc21lbnRTZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jYW5jZWxBc3Nlc3NtZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gICAgLyoqXHJcbiAqICMjIyMgRGVzY3JpcHRpb25cclxuICpcclxuICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAqIEBwYXJhbSBhcnJheVxyXG4gKiBAcGFyYW0ga2V5XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG4gICAgdW5pcXVlQnlQcm9wKGFycmF5OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICAgICAucmVkdWNlKFxyXG4gICAgICAgICAgICAoYWNjOiBhbnksIGl0ZW06IGFueSkgPT4gKFxyXG4gICAgICAgICAgICAgIGl0ZW0gJiYgaXRlbVtrZXldICYmIGFjYy5zZXQoaXRlbVtrZXldLCBpdGVtKSxcclxuICAgICAgICAgICAgICBhY2NcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgbmV3IE1hcCgpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudmFsdWVzKClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jcmVhdGUtcHJvZ3JhbS11aS9hc3Nlc3NtZW50LXBpY2tlci9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFRekQsTUFBTSxPQUFPLHlCQUF5QjtJQXFEcEMsWUFDVSxpQkFBb0MsRUFDcEMsSUFBaUI7UUFEakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBdEQzQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDUCxXQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLG1CQUFjLEdBQWtCLEVBQUUsQ0FBQztRQUNuQyxzQkFBaUIsR0FBRztZQUNsQixZQUFZLEVBQUMsRUFBRTtZQUNmLE9BQU8sRUFBQyxHQUFHO1lBQ1gsS0FBSyxFQUFDLFFBQVE7WUFDZCxXQUFXLEVBQUUsRUFBRTtZQUNmLGVBQWUsRUFBRSxFQUFFO1NBQ3BCLENBQUE7UUFFRCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQix1QkFBa0IsR0FBTztZQUN2QixJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxDQUFDO1lBQ1osWUFBWSxFQUFFLENBQUM7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akIsV0FBVzs7O3FCQWFqQixLQUFLOzBCQXVCTCxLQUFLLFNBQUMsb0JBQW9CO3FDQWtCMUIsS0FBSztpQ0FFTCxNQUFNOytCQUVOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXNzZXNzbWVudFNlcnZpY2UgfSBmcm9tICcuL2Fzc2Vzc21lbnQuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhc3Nlc3NtZW50LXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Fzc2Vzc21lbnQtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3Nlc3NtZW50UGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBhbmltYXRpb24gPSBmYWxzZTtcclxuICBzZWxlY3RlZERhdGE6IGFueTtcclxuICBzdWJMaXN0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNFZGl0ID0gZmFsc2VcclxuICBvcGVuZWRDYXRlZ29yeTogQXJyYXk8bnVtYmVyPiA9IFtdO1xyXG4gIGFzc2Vzc21lbnRQYXlsb2FkID0ge1xyXG4gICAgc2VhcmNoX3RpdGxlOlwiXCIsXHJcbiAgICBwYWdlX25vOlwiMVwiLFxyXG4gICAgc3RhdGU6XCJBQ1RJVkVcIixcclxuICAgIHNlYXJjaF90ZXh0OiAnJyxcclxuICAgIGFscGhhYmV0X2ZpbHRlcjogJydcclxuICB9XHJcblxyXG4gIGRhdGFQZXJQYWdlID0gMDtcclxuXHJcbiAgYXNzZXNzbWVudENhdGVnb3J5OiBhbnkgPXtcclxuICAgIGRhdGE6IFtdLFxyXG4gICAgdG90YWxQYWdlOiAwLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gICAgc3RhcnRfdmFsdWU6IDAsXHJcbiAgICBlbmRfdmFsdWU6IDAsXHJcbiAgICBjdXJyZW50UGFnZTogMFxyXG4gIH07XHJcbiAgaXNMb2FkZXIgPSBmYWxzZVxyXG5cclxuXHJcbiAgQElucHV0KCdzZWxlY3RlZEFzc2Vzc21lbnQnKSBzZXQgc2V0U2VsZWN0ZWQodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlPy5sZW5ndGgpIHtcclxuICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciA9IFsuLi52YWx1ZV07XHJcbiAgICAgLy90aGlzLnNldENhdGVnb3J5QW5kQXNzZXNzbWVudCgpO1xyXG4gICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZvckVhY2goKGVsZTphbnksaW5kZXg6YW55KSA9PiB7XHJcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkucHVzaChlbGU/LmNhdGVnb3J5X2lkKTtcclxuICAgIC8vICAgdGhpcy5zaG93U3ViTGlzdChpbmRleCxlbGU/LmNhdGVnb3J5X2lkKTtcclxuICAgICB9KVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBpc0RlbGV0ZWQgPSBmYWxzZTtcclxuXHJcbiAgc2VhcmNoQXNzZXNzbWVudHMgPSAnJztcclxuICBwcmV2aWV3UXVlc3Rpb25EYXRhICE6IGFueTtcclxuICBpc1ByZXZpZXcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWxlY3RlZEFzc2Vzc21lbnREYXRhOiBhbnkgPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQXNzZXNzbWVudFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIGNhbmNlbEFzc2Vzc21lbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHNlbGVjdGVkQXNzZXNzbWVudEFycjogYW55ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGggOkF1dGhTZXJ2aWNlXHJcbiAgKSB7XHJcblxyXG4gICAgdGhpcy5kYXRhUGVyUGFnZSA9IDMwO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwiY2hhbmdlcyA9PT09PlwiLCBjaGFuZ2VzLCB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudERhdGEsIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMuZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gIH1cclxuXHJcbiAgb25Bc3Nlc3NtZW50U2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHByZXZpZXcoZXZ0OmFueSl7XHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZ2V0QXNzZXNzbWVudFF1ZXN0aW9ucyhldnQ/LmlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInJlc1wiLHJlcyk7XHJcbiAgICAgICAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQodHJ1ZSlcclxuICAgICAgICAgIHRoaXMuaXNQcmV2aWV3ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMucHJldmlld1F1ZXN0aW9uRGF0YSA9IHJlcztcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJldmlld0JhY2soKXtcclxuICAgIHRoaXMuaXNQcmV2aWV3ID0gZmFsc2U7XHJcbiAgICB0aGlzLnByZXZpZXdRdWVzdGlvbkRhdGEgPSB7fTtcclxuICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGluZGV4IDogQWNjZXB0IGluZGV4IG9mIGVsZW1lbnRQb3NpdGlvblxyXG4gICAqXHJcbiAgICovXHJcbiAgc2hvd1N1Ykxpc3QoaW5kZXg6IG51bWJlciwgaWQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLm9wZW5lZENhdGVnb3J5ZGFzYXNmc2EgPT0+XCIsIHRoaXMub3BlbmVkQ2F0ZWdvcnksaW5kZXgsaWQpXHJcbiAgICBpZih0aGlzLm9wZW5lZENhdGVnb3J5LmluY2x1ZGVzKGlkKSkge1xyXG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gdGhpcy5vcGVuZWRDYXRlZ29yeS5maWx0ZXIoZWxlID0+IGVsZSAhPT0gaWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVuZWRDYXRlZ29yeS5wdXNoKGlkKTtcclxuICAgICAgdGhpcy5nZXRBc3Nlc3NtZW50TGlzdChpZClcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5vcGVuZWRDYXRlZ29yeSA9PT5cIiwgdGhpcy5vcGVuZWRDYXRlZ29yeSlcclxuICAgIHJldHVybiAgdGhpcy5vcGVuZWRDYXRlZ29yeVxyXG4gIH1cclxuXHJcblxyXG4gIGV4cGFuZENhdGVnb3J5KGNhdGVnb3J5SWQ6YW55KXtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnk/LmRhdGE/LmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5pZCA9PT0gY2F0ZWdvcnlJZCk7XHJcbiAgICAgaWYodGhpcy5vcGVuZWRDYXRlZ29yeS5pbmNsdWRlcyhjYXRlZ29yeUlkKSAmJiAgdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnkuZGF0YVtpbmRleF0uYXNzZXNzbWVudERhdGEgKXtcclxuXHJcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkgPSB0aGlzLm9wZW5lZENhdGVnb3J5LmZpbHRlcihlbGUgPT4gZWxlICE9PSBjYXRlZ29yeUlkKTtcclxuICAgICB9ZWxzZXtcclxuXHJcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkucHVzaChjYXRlZ29yeUlkKTtcclxuICAgICAgdGhpcy5nZXRBc3Nlc3NtZW50TGlzdChjYXRlZ29yeUlkKVxyXG4gICAgIH1cclxuICB9XHJcbiAgLy8gVE9ETzogUGFnaW5hdGlvblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGV2ZW50IDogcGFnZSBudW1iZXIgdGhhdCBoYXMgYmVlbiBzZWxlY3RlZFxyXG4gICAqL1xyXG4gIG9uUGFnZVNlbGVjdGlvbihldmVudDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gW107XHJcbiAgICBjb25zb2xlLmxvZyhcIjExMVwiKVxyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5wYWdlX25vID0gZXZlbnQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzogU2VhcmNoXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc2VhcmNoIDogc2VhcmNoIHRleHRcclxuICAgKi9cclxuICBvbkFzc2Vzc21lbnRTZWFyY2goc2VhcmNoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkgPSBbXTtcclxuICAgIGNvbnNvbGUubG9nKFwiMjIyXCIpXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnBhZ2Vfbm8gPSBcIjFcIjtcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuc2VhcmNoX3RpdGxlID0gc2VhcmNoO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5zZWFyY2hfdGV4dCA9IHNlYXJjaDtcclxuICAgIHRoaXMuZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzogRmlsdGVyIGJ5IGFscGhhYmV0XHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0gZXZlbnQgOiBBc3Nlc3NtZW50IGNhdGVnb3J5IGZpbHRlciBvZiBBbHBoYWJldFxyXG4gKi9cclxuICBvbkFscGhhYmV0U2VsZWN0ZWQoZXZlbnQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IFtdO1xyXG4gICAgY29uc29sZS5sb2coXCIzMzNcIilcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQucGFnZV9ubyA9IFwiMVwiO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5hbHBoYWJldF9maWx0ZXIgPSBldmVudDtcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuc2VhcmNoX3RleHQgPSAnJztcclxuICAgIHRoaXMuZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLyBUT0RPOiBDYWxsIEFQSSBtZXRob2RcclxuICBnZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCkge1xyXG4gICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRDYXRlZ29yeSh0aGlzLmFzc2Vzc21lbnRQYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5ID0gcmVzO1xyXG5cclxuICAgICAgaWYodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnI/Lmxlbmd0aCkge1xyXG4gICAgICAgLy8gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSAgWy4uLiBuZXcgU2V0KHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyKV1cclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG5cclxuXHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHJlcy5kYXRhLmZpbmRJbmRleCgoYXNzZXNzbWVudDogYW55KSA9PiBhc3Nlc3NtZW50LmlkID09PSBlbGUuY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgICAgdGhpcy5leHBhbmRDYXRlZ29yeShlbGUuY2F0ZWdvcnlfaWQpO1xyXG5cclxuICAgICAgICB9KVxyXG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZvckVhY2goKGVsZTphbnksaW5kZXg6YW55KSA9PiB7XHJcbiAgICAgICAgLy8gICB0aGlzLm9wZW5lZENhdGVnb3J5LnB1c2goZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgICAgICAgLy8gICB0aGlzLnNob3dTdWJMaXN0KGluZGV4LGVsZT8uY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIC8vIH0pXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBDYWxsIFN1YiBkYXRhIEFQSSBtZXRob2RcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgOiBBc3Nlc3NtZW50IGNhdGVnb3J5IGlkXHJcbiAgICovXHJcbiAgZ2V0QXNzZXNzbWVudExpc3QoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2coXCJhc3NzXCIsaWQpXHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBzZWFyY2hfdGl0bGU6XCJcIixcclxuICAgIH1cclxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZ2V0QXNzZXNzbWVudExpc3QocGF5bG9hZCwgaWQpLnN1YnNjcmliZSgocmVzOiBBcnJheTxhbnk+KSA9PiB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnk/LmRhdGE/LmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5pZCA9PT0gaWQpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcImluZGV4ZXJcIixpbmRleCx0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeSlcclxuICAgICAgaWYoaW5kZXggPiAtMSApe1xyXG4gICAgICAgIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5LmRhdGFbaW5kZXhdLmFzc2Vzc21lbnREYXRhID0gWy4uLm5ldyBTZXQocmVzKV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiYXNzXCIsKVxyXG4gICAgICBpZih0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PT0gaWQpO1xyXG4gICAgICAgIC8vIGlmKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgIC8vICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMgID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMubWFwKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vICAgICBlbGUgPSByZXMuZmluZCgoZGF0YTogYW55KSA9PiBkYXRhLmlkID09PSBlbGUpO1xyXG4gICAgICAgIC8vICAgICByZXR1cm4gZWxlO1xyXG4gICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkQXNzZXNzbWVudENhdGVnb3JpZXNJZHM6YW55ID0gW107XHJcbiAgc2VsZWN0ZWRBc3Nlc3NtZW50SWRzOmFueSA9IFtdO1xyXG4gIHNlbGVjdGVkQXNzZXNzbWVudDphbnkgPSBbXTtcclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogU2VsZWN0cyBpdGVtIG9yIGRlc2VsZWN0IGEgaXRtZVxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIHNlbGVjdEFzc2Vzc21lbnQoZXZ0OiBhbnksIHBheWxvYWQ6IGFueSwgY2F0ZWdvcnk6IGFueSkge1xyXG4gICBpZihldnQ/LnRhcmdldD8uY2hlY2tlZCl7XHJcbiAgICAgY29uc29sZS5sb2coXCJzZWxlY3RlZFwiLHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyKVxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT09IGNhdGVnb3J5LmlkKTtcclxuICAgIGlmKGluZGV4ID4gLTEpIHtcclxuICAgICBjb25zdCAgY3VycmVudENhdGVnb3J5QXNzZXNzbWVudCA9ICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcztcclxuICAgICBjdXJyZW50Q2F0ZWdvcnlBc3Nlc3NtZW50LnB1c2gocGF5bG9hZCk7XHJcbiAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChjdXJyZW50Q2F0ZWdvcnlBc3Nlc3NtZW50LCdpZCcpXHJcbiAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpXHJcbiAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5wdXNoKHtcclxuICAgICAgICBjYXRlZ29yeV9pZDogY2F0ZWdvcnkuaWQsXHJcbiAgICAgICAgYXNzZXNzbWVudElkczogW3BheWxvYWRdXHJcbiAgICAgIH0pXHJcblxyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciA9IGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgIH1cclxuICAgfWVsc2V7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PT0gY2F0ZWdvcnkuaWQpO1xyXG4gICAgaWYoaW5kZXggPiAtMSl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMuZmlsdGVyKChhc3Nlc3NtZW50OiBhbnkpID0+IGFzc2Vzc21lbnQuaWQgIT09IHBheWxvYWQuaWQpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciA9IGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICAgaWYoIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzPy5sZW5ndGggPT09IDApe1xyXG4gICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIuc3BsaWNlKGluZGV4KTtcclxuICAgICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyID0gY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyKVxyXG4gICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICB9XHJcblxyXG59XHJcblxyXG5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKXtcclxuICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudENhdGVnb3JpZXNJZHMgPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maWx0ZXIoKGNhdDphbnkpID0+IGNhdD8uYXNzZXNzbWVudElkcz8ubGVuZ3RoID4gMCk/Lm1hcCgoZWxlOmFueSkgPT4gZWxlPy5jYXRlZ29yeV9pZCkuZmxhdCgpO1xyXG4gIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50SWRzID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIubWFwKChjYXQ6YW55KSA9PiBjYXQ/LmFzc2Vzc21lbnRJZHMubWFwKChlbGU6YW55KSA9PiBlbGU/LmlkKSkuZmxhdCgpO1xyXG4gIGNvbnNvbGUubG9nKFwidGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRJZHMgPT0+XCIsIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50SWRzKVxyXG4gIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50ID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIubWFwKChjYXQ6YW55KSA9PiBjYXQ/LmFzc2Vzc21lbnRJZHMubWFwKChlbGU6YW55KSA9PiBlbGUpKS5mbGF0KCk7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiAgLy8gVE9ETzogRGlzcGxheSBzZWxlY3RlZCBkYXRhIGluIGJvdHRvbSBmbG9hdGluZyBiYXIgd2l0aCBuZXh0IGVuYWJsZWQgYnV0dG9uIGhhdmluZ1xyXG5cclxuICAvLyBUT0RPOiBTZW5kIGRhdGEgaW4gcGF5bG9hZCBvZiBjcmVhdGUgUmVzcG9uc2liaWxpdHkgZm9ybVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5vbkFzc2Vzc21lbnRTZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jYW5jZWxBc3Nlc3NtZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gICAgLyoqXHJcbiAqICMjIyMgRGVzY3JpcHRpb25cclxuICpcclxuICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAqIEBwYXJhbSBhcnJheVxyXG4gKiBAcGFyYW0ga2V5XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG4gICAgdW5pcXVlQnlQcm9wKGFycmF5OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICAgICAucmVkdWNlKFxyXG4gICAgICAgICAgICAoYWNjOiBhbnksIGl0ZW06IGFueSkgPT4gKFxyXG4gICAgICAgICAgICAgIGl0ZW0gJiYgaXRlbVtrZXldICYmIGFjYy5zZXQoaXRlbVtrZXldLCBpdGVtKSxcclxuICAgICAgICAgICAgICBhY2NcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgbmV3IE1hcCgpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudmFsdWVzKClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19