vcomply-workflow-engine 2.6.139 → 2.6.140

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 (63) hide show
  1. package/bundles/vcomply-workflow-engine.umd.js +647 -92
  2. package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
  3. package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.js +1 -1
  4. package/esm2015/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.js +1 -1
  5. package/esm2015/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.js +1 -1
  6. package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.js +1 -1
  7. package/esm2015/lib/log-an-issue/log-an-issue.component.js +1 -1
  8. package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.js +19 -4
  9. package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.ngfactory.js +43 -20
  10. package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.ngsummary.json +1 -1
  11. package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.js +1 -1
  12. package/esm2015/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.js +2 -2
  13. package/esm2015/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.ngfactory.js +28 -14
  14. package/esm2015/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.js +2 -2
  15. package/esm2015/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.ngfactory.js +32 -18
  16. package/esm2015/lib/sharedComponents/frequency/frequency-top/frequency-top.component.js +2 -2
  17. package/esm2015/lib/sharedComponents/frequency/frequency-top/frequency-top.component.ngfactory.js +23 -9
  18. package/esm2015/lib/sharedComponents/group-users-list/group-users-list.component.js +77 -6
  19. package/esm2015/lib/sharedComponents/group-users-list/group-users-list.component.ngfactory.js +72 -15
  20. package/esm2015/lib/sharedComponents/group-users-list/group-users-list.component.ngsummary.json +1 -1
  21. package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.js +1 -1
  22. package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +1 -1
  23. package/esm2015/lib/workflow-assessment/workflow-assessment.component.js +1 -1
  24. package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +378 -31
  25. package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngfactory.js +390 -189
  26. package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngsummary.json +1 -1
  27. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +4 -3
  28. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +2 -2
  29. package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
  30. package/esm2015/lib/workflow-interfaces/create-policy-form.js +1 -1
  31. package/esm2015/lib/workflow-policy/workflow-policy.component.js +99 -27
  32. package/esm2015/lib/workflow-policy/workflow-policy.component.ngfactory.js +195 -95
  33. package/esm2015/lib/workflow-policy/workflow-policy.component.ngsummary.json +1 -1
  34. package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.js +4 -2
  35. package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.ngfactory.js +3 -2
  36. package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.ngsummary.json +1 -1
  37. package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.js +1 -1
  38. package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.js +7 -3
  39. package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ngfactory.js +22 -8
  40. package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ngsummary.json +1 -1
  41. package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.js +1 -1
  42. package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.js +1 -1
  43. package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.js +14 -2
  44. package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngfactory.js +10 -7
  45. package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngsummary.json +1 -1
  46. package/esm2015/lib/workflow-program/workflow-program.component.js +19 -6
  47. package/esm2015/lib/workflow-risk/workflow-risk.component.js +1 -1
  48. package/esm2015/lib/workflow-services/responsibility.service.js +13 -1
  49. package/esm2015/lib/workflow-services/responsibility.service.ngsummary.json +1 -1
  50. package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.js +1 -1
  51. package/fesm2015/vcomply-workflow-engine.js +640 -92
  52. package/fesm2015/vcomply-workflow-engine.js.map +1 -1
  53. package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +4 -0
  54. package/lib/sharedComponents/group-users-list/group-users-list.component.d.ts +13 -0
  55. package/lib/workflow-compliance/workflow-compliance.component.d.ts +34 -0
  56. package/lib/workflow-interfaces/create-policy-form.d.ts +2 -0
  57. package/lib/workflow-policy/workflow-policy.component.d.ts +6 -0
  58. package/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.d.ts +1 -0
  59. package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +5 -0
  60. package/lib/workflow-program/workflow-program.component.d.ts +1 -0
  61. package/lib/workflow-services/responsibility.service.d.ts +2 -0
  62. package/package.json +1 -1
  63. package/vcomply-workflow-engine.metadata.json +1 -1
@@ -8,7 +8,9 @@ import * as i0 from "./frequency-top.component.less.shim.ngstyle";
8
8
  import * as i1 from "@angular/core";
9
9
  import * as i2 from "@angular/forms";
10
10
  import * as i3 from "@angular/common";
11
- import * as i4 from "./frequency-top.component";
11
+ import * as i4 from "ngx-material-timepicker";
12
+ import * as i5 from "../../../../../../../node_modules/ngx-material-timepicker/ngx-material-timepicker.ngfactory";
13
+ import * as i6 from "./frequency-top.component";
12
14
  var styles_FrequencyTopComponent = [i0.styles];
13
15
  var RenderType_FrequencyTopComponent = i1.ɵcrt({ encapsulation: 0, styles: styles_FrequencyTopComponent, data: {} });
14
16
  export { RenderType_FrequencyTopComponent as RenderType_FrequencyTopComponent };
@@ -40,7 +42,7 @@ function View_FrequencyTopComponent_4(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵel
40
42
  var pd_7 = (_co.enterYearDay($event) !== false);
41
43
  ad = (pd_7 && ad);
42
44
  } return ad; }, null, null)), i1.ɵdid(4, 16384, null, 0, i2.DefaultValueAccessor, [i1.Renderer2, i1.ElementRef, [2, i2.COMPOSITION_BUFFER_MODE]], null, null), i1.ɵdid(5, 16384, null, 0, i2.NumberValueAccessor, [i1.Renderer2, i1.ElementRef], null, null), i1.ɵdid(6, 540672, null, 0, i2.MinValidator, [], { min: [0, "min"] }, null), i1.ɵprd(1024, null, i2.NG_VALIDATORS, function (p0_0) { return [p0_0]; }, [i2.MinValidator]), i1.ɵprd(1024, null, i2.NG_VALUE_ACCESSOR, function (p0_0, p1_0) { return [p0_0, p1_0]; }, [i2.DefaultValueAccessor, i2.NumberValueAccessor]), i1.ɵdid(9, 671744, null, 0, i2.NgModel, [[8, null], [6, i2.NG_VALIDATORS], [8, null], [6, i2.NG_VALUE_ACCESSOR]], { model: [0, "model"] }, { update: "ngModelChange" }), i1.ɵprd(2048, null, i2.NgControl, null, [i2.NgModel]), i1.ɵdid(11, 16384, null, 0, i2.NgControlStatus, [[4, i2.NgControl]], null, null), (_l()(), i1.ɵeld(12, 0, null, null, 1, "span", [], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["by"]))], function (_ck, _v) { var _co = _v.component; var currVal_10 = "0"; _ck(_v, 6, 0, currVal_10); var currVal_11 = _co.yearlyDay; _ck(_v, 9, 0, currVal_11); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = ((_co.occurrenceFirst > 1) ? "years" : "year"); _ck(_v, 2, 0, currVal_0); var currVal_1 = ("occurrence-day" + _co.id); var tmp_2_0; var currVal_2 = ((((tmp_2_0 = i1.ɵnov(_v, 6).min) !== null) && (tmp_2_0 !== undefined)) ? tmp_2_0 : null); var currVal_3 = i1.ɵnov(_v, 11).is("untouched"); var currVal_4 = i1.ɵnov(_v, 11).is("touched"); var currVal_5 = i1.ɵnov(_v, 11).is("pristine"); var currVal_6 = i1.ɵnov(_v, 11).is("dirty"); var currVal_7 = i1.ɵnov(_v, 11).is("valid"); var currVal_8 = i1.ɵnov(_v, 11).is("invalid"); var currVal_9 = i1.ɵnov(_v, 11).is("pending"); _ck(_v, 3, 0, currVal_1, currVal_2, currVal_3, currVal_4, currVal_5, currVal_6, currVal_7, currVal_8, currVal_9); }); }
43
- export function View_FrequencyTopComponent_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 26, "div", [["class", "top-part"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 1, "span", [], null, null, null, null, null)), (_l()(), i1.ɵted(2, null, ["", ""])), (_l()(), i1.ɵeld(3, 0, null, null, 8, "input", [["class", "day-counter"], ["min", "0"], ["oninput", "this.value = Math.abs(this.value)"], ["onkeydown", "return event.keyCode !== 190"], ["type", "number"]], [[8, "id", 0], [1, "min", 0], [2, "ng-untouched", null], [2, "ng-touched", null], [2, "ng-pristine", null], [2, "ng-dirty", null], [2, "ng-valid", null], [2, "ng-invalid", null], [2, "ng-pending", null]], [[null, "ngModelChange"], [null, "focusout"], [null, "input"], [null, "blur"], [null, "compositionstart"], [null, "compositionend"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("input" === en)) {
45
+ export function View_FrequencyTopComponent_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 31, "div", [["class", "top-part"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 1, "span", [], null, null, null, null, null)), (_l()(), i1.ɵted(2, null, ["", ""])), (_l()(), i1.ɵeld(3, 0, null, null, 8, "input", [["class", "day-counter"], ["min", "0"], ["oninput", "this.value = Math.abs(this.value)"], ["onkeydown", "return event.keyCode !== 190"], ["type", "number"]], [[8, "id", 0], [1, "min", 0], [2, "ng-untouched", null], [2, "ng-touched", null], [2, "ng-pristine", null], [2, "ng-dirty", null], [2, "ng-valid", null], [2, "ng-invalid", null], [2, "ng-pending", null]], [[null, "ngModelChange"], [null, "focusout"], [null, "input"], [null, "blur"], [null, "compositionstart"], [null, "compositionend"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("input" === en)) {
44
46
  var pd_0 = (i1.ɵnov(_v, 4)._handleInput($event.target.value) !== false);
45
47
  ad = (pd_0 && ad);
46
48
  } if (("blur" === en)) {
@@ -64,7 +66,7 @@ export function View_FrequencyTopComponent_0(_l) { return i1.ɵvid(0, [(_l()(),
64
66
  } if (("focusout" === en)) {
65
67
  var pd_7 = (_co.enterValueFirst($event, "occurrenceFirst") !== false);
66
68
  ad = (pd_7 && ad);
67
- } return ad; }, null, null)), i1.ɵdid(4, 16384, null, 0, i2.DefaultValueAccessor, [i1.Renderer2, i1.ElementRef, [2, i2.COMPOSITION_BUFFER_MODE]], null, null), i1.ɵdid(5, 16384, null, 0, i2.NumberValueAccessor, [i1.Renderer2, i1.ElementRef], null, null), i1.ɵdid(6, 540672, null, 0, i2.MinValidator, [], { min: [0, "min"] }, null), i1.ɵprd(1024, null, i2.NG_VALIDATORS, function (p0_0) { return [p0_0]; }, [i2.MinValidator]), i1.ɵprd(1024, null, i2.NG_VALUE_ACCESSOR, function (p0_0, p1_0) { return [p0_0, p1_0]; }, [i2.DefaultValueAccessor, i2.NumberValueAccessor]), i1.ɵdid(9, 671744, null, 0, i2.NgModel, [[8, null], [6, i2.NG_VALIDATORS], [8, null], [6, i2.NG_VALUE_ACCESSOR]], { model: [0, "model"] }, { update: "ngModelChange" }), i1.ɵprd(2048, null, i2.NgControl, null, [i2.NgModel]), i1.ɵdid(11, 16384, null, 0, i2.NgControlStatus, [[4, i2.NgControl]], null, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_FrequencyTopComponent_1)), i1.ɵdid(13, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_FrequencyTopComponent_2)), i1.ɵdid(15, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_FrequencyTopComponent_3)), i1.ɵdid(17, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_FrequencyTopComponent_4)), i1.ɵdid(19, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵeld(20, 0, null, null, 6, "div", [["class", "time-picker"]], null, null, null, null, null)), (_l()(), i1.ɵeld(21, 0, null, null, 5, "input", [["placeholder", "Select Time"], ["readonly", ""], ["type", "text"]], [[8, "id", 0], [2, "ng-untouched", null], [2, "ng-touched", null], [2, "ng-pristine", null], [2, "ng-dirty", null], [2, "ng-valid", null], [2, "ng-invalid", null], [2, "ng-pending", null]], [[null, "ngModelChange"], [null, "input"], [null, "blur"], [null, "compositionstart"], [null, "compositionend"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("input" === en)) {
69
+ } return ad; }, null, null)), i1.ɵdid(4, 16384, null, 0, i2.DefaultValueAccessor, [i1.Renderer2, i1.ElementRef, [2, i2.COMPOSITION_BUFFER_MODE]], null, null), i1.ɵdid(5, 16384, null, 0, i2.NumberValueAccessor, [i1.Renderer2, i1.ElementRef], null, null), i1.ɵdid(6, 540672, null, 0, i2.MinValidator, [], { min: [0, "min"] }, null), i1.ɵprd(1024, null, i2.NG_VALIDATORS, function (p0_0) { return [p0_0]; }, [i2.MinValidator]), i1.ɵprd(1024, null, i2.NG_VALUE_ACCESSOR, function (p0_0, p1_0) { return [p0_0, p1_0]; }, [i2.DefaultValueAccessor, i2.NumberValueAccessor]), i1.ɵdid(9, 671744, null, 0, i2.NgModel, [[8, null], [6, i2.NG_VALIDATORS], [8, null], [6, i2.NG_VALUE_ACCESSOR]], { model: [0, "model"] }, { update: "ngModelChange" }), i1.ɵprd(2048, null, i2.NgControl, null, [i2.NgModel]), i1.ɵdid(11, 16384, null, 0, i2.NgControlStatus, [[4, i2.NgControl]], null, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_FrequencyTopComponent_1)), i1.ɵdid(13, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_FrequencyTopComponent_2)), i1.ɵdid(15, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_FrequencyTopComponent_3)), i1.ɵdid(17, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_FrequencyTopComponent_4)), i1.ɵdid(19, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵeld(20, 0, null, null, 11, "div", [["class", "time-picker"]], null, null, null, null, null)), (_l()(), i1.ɵeld(21, 0, null, null, 6, "input", [["aria-label", "12hr format"], ["placeholder", "Select Time"], ["readonly", ""], ["type", "text"]], [[8, "id", 0], [8, "disabled", 0], [2, "ng-untouched", null], [2, "ng-touched", null], [2, "ng-pristine", null], [2, "ng-dirty", null], [2, "ng-valid", null], [2, "ng-invalid", null], [2, "ng-pending", null]], [[null, "ngModelChange"], [null, "input"], [null, "blur"], [null, "compositionstart"], [null, "compositionend"], [null, "change"], [null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("input" === en)) {
68
70
  var pd_0 = (i1.ɵnov(_v, 22)._handleInput($event.target.value) !== false);
69
71
  ad = (pd_0 && ad);
70
72
  } if (("blur" === en)) {
@@ -76,11 +78,23 @@ export function View_FrequencyTopComponent_0(_l) { return i1.ɵvid(0, [(_l()(),
76
78
  } if (("compositionend" === en)) {
77
79
  var pd_3 = (i1.ɵnov(_v, 22)._compositionEnd($event.target.value) !== false);
78
80
  ad = (pd_3 && ad);
79
- } if (("ngModelChange" === en)) {
80
- var pd_4 = ((_co.inputTime = $event) !== false);
81
+ } if (("change" === en)) {
82
+ var pd_4 = (i1.ɵnov(_v, 23).updateValue($event.target.value) !== false);
81
83
  ad = (pd_4 && ad);
82
- } return ad; }, null, null)), i1.ɵdid(22, 16384, null, 0, i2.DefaultValueAccessor, [i1.Renderer2, i1.ElementRef, [2, i2.COMPOSITION_BUFFER_MODE]], null, null), i1.ɵprd(1024, null, i2.NG_VALUE_ACCESSOR, function (p0_0) { return [p0_0]; }, [i2.DefaultValueAccessor]), i1.ɵdid(24, 671744, null, 0, i2.NgModel, [[8, null], [8, null], [8, null], [6, i2.NG_VALUE_ACCESSOR]], { model: [0, "model"] }, { update: "ngModelChange" }), i1.ɵprd(2048, null, i2.NgControl, null, [i2.NgModel]), i1.ɵdid(26, 16384, null, 0, i2.NgControlStatus, [[4, i2.NgControl]], null, null)], function (_ck, _v) { var _co = _v.component; var currVal_10 = "0"; _ck(_v, 6, 0, currVal_10); var currVal_11 = _co.occurrenceFirst; _ck(_v, 9, 0, currVal_11); var currVal_12 = (_co.frequencyType === 0); _ck(_v, 13, 0, currVal_12); var currVal_13 = (_co.frequencyType === 1); _ck(_v, 15, 0, currVal_13); var currVal_14 = (((_co.id !== 0) && (_co.id !== 1)) && (_co.id !== 5)); _ck(_v, 17, 0, currVal_14); var currVal_15 = (_co.frequencyType === 2); _ck(_v, 19, 0, currVal_15); var currVal_24 = _co.inputTime; _ck(_v, 24, 0, currVal_24); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = ((((_co.id === 0) || (_co.id === 1)) || (_co.id === 5)) ? "Every" : "Day"); _ck(_v, 2, 0, currVal_0); var currVal_1 = ("occurrence" + _co.id); var tmp_2_0; var currVal_2 = ((((tmp_2_0 = i1.ɵnov(_v, 6).min) !== null) && (tmp_2_0 !== undefined)) ? tmp_2_0 : null); var currVal_3 = i1.ɵnov(_v, 11).is("untouched"); var currVal_4 = i1.ɵnov(_v, 11).is("touched"); var currVal_5 = i1.ɵnov(_v, 11).is("pristine"); var currVal_6 = i1.ɵnov(_v, 11).is("dirty"); var currVal_7 = i1.ɵnov(_v, 11).is("valid"); var currVal_8 = i1.ɵnov(_v, 11).is("invalid"); var currVal_9 = i1.ɵnov(_v, 11).is("pending"); _ck(_v, 3, 0, currVal_1, currVal_2, currVal_3, currVal_4, currVal_5, currVal_6, currVal_7, currVal_8, currVal_9); var currVal_16 = ("time-picker-input-top" + _co.id); var currVal_17 = i1.ɵnov(_v, 26).is("untouched"); var currVal_18 = i1.ɵnov(_v, 26).is("touched"); var currVal_19 = i1.ɵnov(_v, 26).is("pristine"); var currVal_20 = i1.ɵnov(_v, 26).is("dirty"); var currVal_21 = i1.ɵnov(_v, 26).is("valid"); var currVal_22 = i1.ɵnov(_v, 26).is("invalid"); var currVal_23 = i1.ɵnov(_v, 26).is("pending"); _ck(_v, 21, 0, currVal_16, currVal_17, currVal_18, currVal_19, currVal_20, currVal_21, currVal_22, currVal_23); }); }
83
- export function View_FrequencyTopComponent_Host_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "app-frequency-top", [], null, null, null, View_FrequencyTopComponent_0, RenderType_FrequencyTopComponent)), i1.ɵdid(1, 114688, null, 0, i4.FrequencyTopComponent, [], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }
84
- var FrequencyTopComponentNgFactory = i1.ɵccf("app-frequency-top", i4.FrequencyTopComponent, View_FrequencyTopComponent_Host_0, { occurrenceFirst: "occurrenceFirst", id: "id", inputTime: "inputTime", frequencyType: "frequencyType", yearlyDay: "yearlyDay" }, { valueChangedFirst: "valueChangedFirst", nextDisable: "nextDisable", timeChanged: "timeChanged", yearlyDateChanged: "yearlyDateChanged" }, []);
84
+ } if (("blur" === en)) {
85
+ var pd_5 = (i1.ɵnov(_v, 23).onTouched() !== false);
86
+ ad = (pd_5 && ad);
87
+ } if (("click" === en)) {
88
+ var pd_6 = (i1.ɵnov(_v, 23).onClick($event) !== false);
89
+ ad = (pd_6 && ad);
90
+ } if (("ngModelChange" === en)) {
91
+ var pd_7 = ((_co.inputTime = $event) !== false);
92
+ ad = (pd_7 && ad);
93
+ } return ad; }, null, null)), i1.ɵdid(22, 16384, null, 0, i2.DefaultValueAccessor, [i1.Renderer2, i1.ElementRef, [2, i2.COMPOSITION_BUFFER_MODE]], null, null), i1.ɵdid(23, 671744, null, 0, i4.TimepickerDirective, [i1.ElementRef, i4.ɵe], { timepicker: [0, "timepicker"] }, null), i1.ɵprd(1024, null, i2.NG_VALUE_ACCESSOR, function (p0_0, p1_0) { return [p0_0, p1_0]; }, [i2.DefaultValueAccessor, i4.TimepickerDirective]), i1.ɵdid(25, 671744, null, 0, i2.NgModel, [[8, null], [8, null], [8, null], [6, i2.NG_VALUE_ACCESSOR]], { model: [0, "model"] }, { update: "ngModelChange" }), i1.ɵprd(2048, null, i2.NgControl, null, [i2.NgModel]), i1.ɵdid(27, 16384, null, 0, i2.NgControlStatus, [[4, i2.NgControl]], null, null), (_l()(), i1.ɵeld(28, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["\uE955"])), (_l()(), i1.ɵeld(30, 0, null, null, 1, "ngx-material-timepicker", [], [[8, "id", 0]], [[null, "timeChanged"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("timeChanged" === en)) {
94
+ var pd_0 = (_co.onTimeChanged($event) !== false);
95
+ ad = (pd_0 && ad);
96
+ } return ad; }, i5.View_NgxMaterialTimepickerComponent_0, i5.RenderType_NgxMaterialTimepickerComponent)), i1.ɵdid(31, 49152, [["dailyTime", 4]], 0, i4.NgxMaterialTimepickerComponent, [i4.ɵa, i4.ɵb], null, { timeChanged: "timeChanged" })], function (_ck, _v) { var _co = _v.component; var currVal_10 = "0"; _ck(_v, 6, 0, currVal_10); var currVal_11 = _co.occurrenceFirst; _ck(_v, 9, 0, currVal_11); var currVal_12 = (_co.frequencyType === 0); _ck(_v, 13, 0, currVal_12); var currVal_13 = (_co.frequencyType === 1); _ck(_v, 15, 0, currVal_13); var currVal_14 = (((_co.id !== 0) && (_co.id !== 1)) && (_co.id !== 5)); _ck(_v, 17, 0, currVal_14); var currVal_15 = (_co.frequencyType === 2); _ck(_v, 19, 0, currVal_15); var currVal_25 = i1.ɵnov(_v, 31); _ck(_v, 23, 0, currVal_25); var currVal_26 = _co.inputTime; _ck(_v, 25, 0, currVal_26); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = ((((_co.id === 0) || (_co.id === 1)) || (_co.id === 5)) ? "Every" : "Day"); _ck(_v, 2, 0, currVal_0); var currVal_1 = ("occurrence" + _co.id); var tmp_2_0; var currVal_2 = ((((tmp_2_0 = i1.ɵnov(_v, 6).min) !== null) && (tmp_2_0 !== undefined)) ? tmp_2_0 : null); var currVal_3 = i1.ɵnov(_v, 11).is("untouched"); var currVal_4 = i1.ɵnov(_v, 11).is("touched"); var currVal_5 = i1.ɵnov(_v, 11).is("pristine"); var currVal_6 = i1.ɵnov(_v, 11).is("dirty"); var currVal_7 = i1.ɵnov(_v, 11).is("valid"); var currVal_8 = i1.ɵnov(_v, 11).is("invalid"); var currVal_9 = i1.ɵnov(_v, 11).is("pending"); _ck(_v, 3, 0, currVal_1, currVal_2, currVal_3, currVal_4, currVal_5, currVal_6, currVal_7, currVal_8, currVal_9); var currVal_16 = ("time-picker-input-top" + _co.id); var currVal_17 = i1.ɵnov(_v, 23).disabled; var currVal_18 = i1.ɵnov(_v, 27).is("untouched"); var currVal_19 = i1.ɵnov(_v, 27).is("touched"); var currVal_20 = i1.ɵnov(_v, 27).is("pristine"); var currVal_21 = i1.ɵnov(_v, 27).is("dirty"); var currVal_22 = i1.ɵnov(_v, 27).is("valid"); var currVal_23 = i1.ɵnov(_v, 27).is("invalid"); var currVal_24 = i1.ɵnov(_v, 27).is("pending"); _ck(_v, 21, 0, currVal_16, currVal_17, currVal_18, currVal_19, currVal_20, currVal_21, currVal_22, currVal_23, currVal_24); var currVal_27 = ("time-picker-top" + _co.id); _ck(_v, 30, 0, currVal_27); }); }
97
+ export function View_FrequencyTopComponent_Host_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "app-frequency-top", [], null, null, null, View_FrequencyTopComponent_0, RenderType_FrequencyTopComponent)), i1.ɵdid(1, 114688, null, 0, i6.FrequencyTopComponent, [], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }
98
+ var FrequencyTopComponentNgFactory = i1.ɵccf("app-frequency-top", i6.FrequencyTopComponent, View_FrequencyTopComponent_Host_0, { occurrenceFirst: "occurrenceFirst", id: "id", inputTime: "inputTime", frequencyType: "frequencyType", yearlyDay: "yearlyDay" }, { valueChangedFirst: "valueChangedFirst", nextDisable: "nextDisable", timeChanged: "timeChanged", yearlyDateChanged: "yearlyDateChanged" }, []);
85
99
  export { FrequencyTopComponentNgFactory as FrequencyTopComponentNgFactory };
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXRvcC5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXRvcC9mcmVxdWVuY3ktdG9wLmNvbXBvbmVudC5uZ2ZhY3RvcnkudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktdG9wL2ZyZXF1ZW5jeS10b3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Z0VDZUksNkVBQTBGLEtBQXZELG1MQUFnRDtnRUFDbkYsNkVBQTZGLEtBQTFELHFMQUFtRDtnRUFDdEYsNkVBQXdELEtBQVQsK0JBQUU7Z0VBRWpELDhFQUllLEtBSFgsNkVBQWlFLEtBQTNELHdDQUFvRCxNQUMxRDs7Ozs7Ozs7Ozs7Ozs7Ozs7d0JBQStOO01BQXpKOzt3QkFBdUI7TUFBQzs7d0JBQWlDO01BQS9ILG8yQkFBK04sSUFDL04sOEVBQWUsS0FBVCwrQkFBRSxtREFEa0ssb0JBQU8sRUFBakwsWUFBK04sRUFBckQsVUFBTyxHQUEzRyxvQkFBdUIsWUFBN0YsWUFBK04sRUFBekosVUFBdUIsbURBRHZGLHVGQUFvRCxHQUNqQix1Q0FBNEIsTUFBckUsNGNBQStOLEVBQXRMLFNBQTRCLEVBQXJFLHNGQUErTjt1RUFqQnZPLGtHQXlCTSxLQXhCRiw2RUFBbUUsS0FBN0QsZ0NBQXNELE1BQzVEOzs7Ozs7Ozs7Ozs7Ozs7Ozt3QkFPQztNQUpEOzt3QkFBNkI7TUFHN0I7O3dCQUF5RDtNQU56RCxvMkJBT0MsSUFFRCxzTEFBMEYsSUFDMUYsc0xBQTZGLElBQzdGLHNMQUF3RCxJQUV4RCxzTEFJZSxJQUNmLHFHQUlNLEtBSEY7Ozs7Ozs7Ozs7O3dCQUFpSDtNQUE1RDs7d0JBQXVCO01BQTVFLDRpQkFBaUgsaURBZDVFLG9CQUFPLEVBTGhELFlBT0MsRUFGd0MsVUFBTyxHQUZoRCxvQkFBNkIsa0JBSDdCLFlBT0MsRUFKRCxVQUE2QixHQU10Qix5Q0FBMkIsR0FBbEMsYUFBMEYsRUFBbkYsVUFBMkIsR0FDM0IseUNBQTJCLEdBQWxDLGFBQTZGLEVBQXRGLFVBQTJCLEdBQzVCLHFFQUF3QyxJQUE5QyxhQUF3RCxFQUFsRCxVQUF3QyxHQUVoQyx5Q0FBMkIsR0FBekMsYUFJZSxFQUpELFVBQTJCLEdBTWdCLG9CQUF1QixZQUE1RSxhQUFpSCxFQUE1RCxVQUF1QixtREFwQjFFLG1IQUFzRCxHQUc1RCxtQ0FBd0IsTUFGeEIsNGNBT0MsRUFMRCxTQUF3QixFQUZ4QixzRkFPQyxHQVlzQiwrQ0FBaUMsTUFBcEQsNFZBQWlILEVBQTlGLFVBQWlDLEVBQXBELGtGQUFpSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiIsIjwhLS0gPHA+ZnJlcXVlbmN5LXRvcCB3b3JrcyE8L3A+IC0tPlxyXG5cclxuXHJcbjwhLS0gPHA+ZnJlcXVlbmN5LXRvcCB3b3JrcyE8L3A+IC0tPlxyXG48ZGl2IGNsYXNzPVwidG9wLXBhcnRcIj5cclxuICAgIDxzcGFuPnt7aWQgPT09IDAgfHwgaWQgPT09IDEgfHwgaWQgPT09IDUgPyAnRXZlcnknIDogJ0RheSd9fTwvc3Bhbj5cclxuICAgIDxpbnB1dFxyXG4gICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICBbaWRdPVwiJ29jY3VycmVuY2UnICsgaWRcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJvY2N1cnJlbmNlRmlyc3RcIlxyXG4gICAgY2xhc3M9XCJkYXktY291bnRlclwiXHJcbiAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMFwiIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIlxyXG4gICAgKGZvY3Vzb3V0KSA9IFwiZW50ZXJWYWx1ZUZpcnN0KCRldmVudCwgJ29jY3VycmVuY2VGaXJzdCcpXCJcclxuICAgID5cclxuXHJcbiAgICA8c3BhbiAgKm5nSWY9XCJmcmVxdWVuY3lUeXBlID09PSAwXCI+ICB7eyBvY2N1cnJlbmNlRmlyc3QgPiAxID8gJ2RheXMnIDogJ2RheScgfX0gYnkgPC9zcGFuPlxyXG4gICAgPHNwYW4gICpuZ0lmPVwiZnJlcXVlbmN5VHlwZSA9PT0gMVwiPiAge3sgb2NjdXJyZW5jZUZpcnN0ID4gMSA/ICd3ZWVrcycgOiAnd2VlaycgfX0gYnkgIDwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ0lmPVwiaWQgIT09IDAgJiYgaWQgIT09IDEgJiYgaWQgIT09IDVcIj5ieTwvc3Bhbj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZnJlcXVlbmN5VHlwZSA9PT0gMlwiPlxyXG4gICAgICAgIDxzcGFuPiB7eyBvY2N1cnJlbmNlRmlyc3QgPiAxID8gJ3llYXJzJyA6ICd5ZWFyJyB9fSBvbiBkYXk8L3NwYW4+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZGF5LWNvdW50ZXJcIiB0eXBlPVwibnVtYmVyXCIgW2lkXT1cIidvY2N1cnJlbmNlLWRheScgKyBpZFwiIFsobmdNb2RlbCldPVwieWVhcmx5RGF5XCIgKGZvY3Vzb3V0KT1cImVudGVyWWVhckRheSgkZXZlbnQpXCIgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIwXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiLz5cclxuICAgICAgICA8c3Bhbj5ieTwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdiBjbGFzcz1cInRpbWUtcGlja2VyXCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cIid0aW1lLXBpY2tlci1pbnB1dC10b3AnK2lkXCIgWyhuZ01vZGVsKV09XCJpbnB1dFRpbWVcIiByZWFkb25seSAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVGltZVwiPlxyXG4gICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5NTU7PC9pPiAtLT5cclxuICAgICAgICA8IS0tIDxuZ3gtbWF0ZXJpYWwtdGltZXBpY2tlciBbaWRdPVwiJ3RpbWUtcGlja2VyLXRvcCcraWRcIiAodGltZUNoYW5nZWQpPVwib25UaW1lQ2hhbmdlZCgkZXZlbnQpXCIgI2RhaWx5VGltZT48L25neC1tYXRlcmlhbC10aW1lcGlja2VyPiAtLT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXRvcC5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXRvcC9mcmVxdWVuY3ktdG9wLmNvbXBvbmVudC5uZ2ZhY3RvcnkudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktdG9wL2ZyZXF1ZW5jeS10b3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztnRUNlSSw2RUFBMEYsS0FBdkQsbUxBQWdEO2dFQUNuRiw2RUFBNkYsS0FBMUQscUxBQW1EO2dFQUN0Riw2RUFBd0QsS0FBVCwrQkFBRTtnRUFFakQsOEVBSWUsS0FIWCw2RUFBaUUsS0FBM0Qsd0NBQW9ELE1BQzFEOzs7Ozs7Ozs7Ozs7Ozs7Ozt3QkFBK047TUFBeko7O3dCQUF1QjtNQUFDOzt3QkFBaUM7TUFBL0gsbzJCQUErTixJQUMvTiw4RUFBZSxLQUFULCtCQUFFLG1EQURrSyxvQkFBTyxFQUFqTCxZQUErTixFQUFyRCxVQUFPLEdBQTNHLG9CQUF1QixZQUE3RixZQUErTixFQUF6SixVQUF1QixtREFEdkYsdUZBQW9ELEdBQ2pCLHVDQUE0QixNQUFyRSw0Y0FBK04sRUFBdEwsU0FBNEIsRUFBckUsc0ZBQStOO3VFQWpCdk8sa0dBeUJNLEtBeEJGLDZFQUFtRSxLQUE3RCxnQ0FBc0QsTUFDNUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O3dCQU9DO01BSkQ7O3dCQUE2QjtNQUc3Qjs7d0JBQXlEO01BTnpELG8yQkFPQyxJQUVELHNMQUEwRixJQUMxRixzTEFBNkYsSUFDN0Ysc0xBQXdELElBRXhELHNMQUllLElBQ2Ysc0dBSU0sS0FIRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7d0JBQXFLO01BQWhIOzt3QkFBdUI7TUFBNUUsdXNCQUFxSyxJQUNySyw2RkFBNkIsS0FBWixtQ0FBUSxNQUN6QixxS0FBZ0ksWUFBM0U7O3dCQUFxQztNQUExRix1T0FBZ0ksbURBaEIzRixvQkFBTyxFQUxoRCxZQU9DLEVBRndDLFVBQU8sR0FGaEQsb0JBQTZCLGtCQUg3QixZQU9DLEVBSkQsVUFBNkIsR0FNdEIseUNBQTJCLEdBQWxDLGFBQTBGLEVBQW5GLFVBQTJCLEdBQzNCLHlDQUEyQixHQUFsQyxhQUE2RixFQUF0RixVQUEyQixHQUM1QixxRUFBd0MsSUFBOUMsYUFBd0QsRUFBbEQsVUFBd0MsR0FFaEMseUNBQTJCLEdBQXpDLGFBSWUsRUFKRCxVQUEyQixHQU0wRSwrQkFBMkIsR0FBMUksYUFBcUssRUFBdEQsVUFBMkIsR0FBckYsb0JBQXVCLFlBQTVFLGFBQXFLLEVBQWhILFVBQXVCLG1EQXBCMUUsbUhBQXNELEdBRzVELG1DQUF3QixNQUZ4Qiw0Y0FPQyxFQUxELFNBQXdCLEVBRnhCLHNGQU9DLEdBWXNCLCtDQUFpQyxNQUFwRCx1WUFBcUssRUFBbEosVUFBaUMsRUFBcEQsOEZBQXFLLEdBRTVJLHlDQUEyQixNQUFwRCxhQUFnSSxFQUF2RyxVQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiIsIjwhLS0gPHA+ZnJlcXVlbmN5LXRvcCB3b3JrcyE8L3A+IC0tPlxyXG5cclxuXHJcbjwhLS0gPHA+ZnJlcXVlbmN5LXRvcCB3b3JrcyE8L3A+IC0tPlxyXG48ZGl2IGNsYXNzPVwidG9wLXBhcnRcIj5cclxuICAgIDxzcGFuPnt7aWQgPT09IDAgfHwgaWQgPT09IDEgfHwgaWQgPT09IDUgPyAnRXZlcnknIDogJ0RheSd9fTwvc3Bhbj4gXHJcbiAgICA8aW5wdXQgXHJcbiAgICB0eXBlPVwibnVtYmVyXCIgXHJcbiAgICBbaWRdPVwiJ29jY3VycmVuY2UnICsgaWRcIiBcclxuICAgIFsobmdNb2RlbCldPVwib2NjdXJyZW5jZUZpcnN0XCIgXHJcbiAgICBjbGFzcz1cImRheS1jb3VudGVyXCIgXHJcbiAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMFwiIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIlxyXG4gICAgKGZvY3Vzb3V0KSA9IFwiZW50ZXJWYWx1ZUZpcnN0KCRldmVudCwgJ29jY3VycmVuY2VGaXJzdCcpXCJcclxuICAgID5cclxuICAgIFxyXG4gICAgPHNwYW4gICpuZ0lmPVwiZnJlcXVlbmN5VHlwZSA9PT0gMFwiPiAge3sgb2NjdXJyZW5jZUZpcnN0ID4gMSA/ICdkYXlzJyA6ICdkYXknIH19IGJ5IDwvc3Bhbj5cclxuICAgIDxzcGFuICAqbmdJZj1cImZyZXF1ZW5jeVR5cGUgPT09IDFcIj4gIHt7IG9jY3VycmVuY2VGaXJzdCA+IDEgPyAnd2Vla3MnIDogJ3dlZWsnIH19IGJ5ICA8L3NwYW4+XHJcbiAgICA8c3BhbiAqbmdJZj1cImlkICE9PSAwICYmIGlkICE9PSAxICYmIGlkICE9PSA1XCI+Ynk8L3NwYW4+XHJcbiAgICBcclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmcmVxdWVuY3lUeXBlID09PSAyXCI+XHJcbiAgICAgICAgPHNwYW4+IHt7IG9jY3VycmVuY2VGaXJzdCA+IDEgPyAneWVhcnMnIDogJ3llYXInIH19IG9uIGRheTwvc3Bhbj4gICBcclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJkYXktY291bnRlclwiIHR5cGU9XCJudW1iZXJcIiBbaWRdPVwiJ29jY3VycmVuY2UtZGF5JyArIGlkXCIgWyhuZ01vZGVsKV09XCJ5ZWFybHlEYXlcIiAoZm9jdXNvdXQpPVwiZW50ZXJZZWFyRGF5KCRldmVudClcIiAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiIG1pbj1cIjBcIiBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCIvPlxyXG4gICAgICAgIDxzcGFuPmJ5PC9zcGFuPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGltZS1waWNrZXJcIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbaWRdPVwiJ3RpbWUtcGlja2VyLWlucHV0LXRvcCcraWRcIiBbKG5nTW9kZWwpXT1cImlucHV0VGltZVwiIHJlYWRvbmx5IGFyaWEtbGFiZWw9XCIxMmhyIGZvcm1hdFwiIFtuZ3hUaW1lcGlja2VyXT1cImRhaWx5VGltZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFRpbWVcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk1NTs8L2k+XHJcbiAgICAgICAgPG5neC1tYXRlcmlhbC10aW1lcGlja2VyIFtpZF09XCIndGltZS1waWNrZXItdG9wJytpZFwiICh0aW1lQ2hhbmdlZCk9XCJvblRpbWVDaGFuZ2VkKCRldmVudClcIiAjZGFpbHlUaW1lPjwvbmd4LW1hdGVyaWFsLXRpbWVwaWNrZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
@@ -8,18 +8,26 @@ export class GroupUsersListComponent {
8
8
  this.groupsList = [];
9
9
  this.selectedUsers = [];
10
10
  this.userIdKey = '';
11
+ this.groupIdKey = '';
11
12
  this.openedFrom = '';
12
13
  this.saveSelectedList = new EventEmitter();
13
14
  this.closeUsersList = new EventEmitter();
15
+ this.selectedGroups = [];
16
+ this.assigneeGroupsList = [];
14
17
  this.search = '';
15
18
  this.selectedIds = [];
16
19
  this.animation = false;
20
+ this.selectedGroupIds = [];
21
+ this.selectedgroupList = [];
22
+ this.currentTab = 'USER';
17
23
  }
18
24
  ngOnChanges() {
19
- console.log("user list ", this.usersList);
20
25
  this.selectedIds = this.selectedUsers.map((ele) => { if (ele[this.userIdKey]) {
21
26
  return ele[this.userIdKey];
22
27
  } });
28
+ this.selectedGroupIds = this.selectedGroups.map((ele) => { if (ele[this.groupIdKey]) {
29
+ return ele[this.groupIdKey];
30
+ } });
23
31
  }
24
32
  ngOnInit() {
25
33
  this.animation = true;
@@ -42,6 +50,11 @@ export class GroupUsersListComponent {
42
50
  this.selectedIds.splice(index, 1);
43
51
  this.setList();
44
52
  }
53
+ deleteGroupEvent(event) {
54
+ const groupindex = this.selectedGroupIds.findIndex((element) => element == event['group_id']);
55
+ this.selectedGroupIds.splice(groupindex, 1);
56
+ this.setgroupList();
57
+ }
45
58
  selectAll(mode) {
46
59
  if (mode) {
47
60
  const list = [...this.usersList];
@@ -55,6 +68,21 @@ export class GroupUsersListComponent {
55
68
  }
56
69
  this.setList();
57
70
  }
71
+ selectAllGroups(mode) {
72
+ if (mode) {
73
+ const grouplist = [...this.assigneeGroupsList];
74
+ this.selectedGroupIds = [];
75
+ grouplist.forEach(element => {
76
+ this.selectedGroupIds.push(element[this.groupIdKey]);
77
+ });
78
+ this.selectedGroups = grouplist;
79
+ }
80
+ else {
81
+ this.selectedGroupIds = [];
82
+ this.selectedGroups = [];
83
+ }
84
+ this.setgroupList();
85
+ }
58
86
  validationCheck(isChecked) {
59
87
  if (isChecked) {
60
88
  this.snackbar.show('You can select a maximum of 19 users.', 'alert');
@@ -71,12 +99,34 @@ export class GroupUsersListComponent {
71
99
  });
72
100
  this.selectedUsers = data;
73
101
  }
102
+ setgroupList() {
103
+ const data = [];
104
+ const groupslist = cloneDeep(this.assigneeGroupsList);
105
+ const selectedGroupIds = cloneDeep(this.selectedGroupIds);
106
+ groupslist.forEach((element) => {
107
+ if (selectedGroupIds.includes(element[this.groupIdKey])) {
108
+ data.push(element);
109
+ }
110
+ });
111
+ this.selectedGroups = data;
112
+ }
74
113
  checkSelectAll() {
75
114
  const data = this.usersList.every((user) => this.selectedIds.includes(user[this.userIdKey]));
76
115
  return data;
77
116
  }
117
+ checkselectAllgroups() {
118
+ const data = this.assigneeGroupsList.every((group) => this.selectedGroupIds.includes(group[this.groupIdKey]));
119
+ return data;
120
+ }
78
121
  save(selectedIds) {
79
- this.saveSelectedList.emit(selectedIds);
122
+ let selectedData;
123
+ if (this.assigneeGroupsList.length) {
124
+ selectedData = { users: this.selectedIds, groups: this.selectedGroupIds };
125
+ }
126
+ else {
127
+ selectedData = selectedIds;
128
+ }
129
+ this.saveSelectedList.emit(selectedData);
80
130
  }
81
131
  close() {
82
132
  this.closeUsersList.emit();
@@ -97,30 +147,51 @@ export class GroupUsersListComponent {
97
147
  }
98
148
  this.setList();
99
149
  }
150
+ selectGroupElement(data, mode) {
151
+ if (mode) {
152
+ this.selectedgroupList.push(data);
153
+ this.selectedGroupIds.push(data[this.groupIdKey]);
154
+ }
155
+ else {
156
+ const index = this.selectedgroupList.findIndex((ele) => ele[this.groupIdKey] === data[this.groupIdKey]);
157
+ this.selectedgroupList.splice(index, 1);
158
+ const idIndex = this.selectedGroupIds.findIndex(ele => ele === data[this.groupIdKey]);
159
+ this.selectedGroupIds.splice(idIndex, 1);
160
+ }
161
+ this.setgroupList();
162
+ }
100
163
  checkGroupList(groupIds) {
101
164
  return groupIds.every((id) => this.selectedIds.includes(id));
102
165
  }
103
166
  hideGroup(groupIds) {
104
167
  return this.usersList.every((user) => !groupIds.includes(user[this.userIdKey]));
105
168
  }
169
+ switchTab(tab) {
170
+ this.currentTab = tab;
171
+ this.search = '';
172
+ }
106
173
  }
107
174
  GroupUsersListComponent.decorators = [
108
175
  { type: Component, args: [{
109
176
  selector: 'app-group-users-list',
110
- template: "<div class=\"add-risk-group-user-list\" [class.animate]=\"animation\">\r\n <div class=\"add-risk-group-user-list-head\">\r\n <h3 class=\"add-risk-group-user-list-title\">Select User(s)</h3>\r\n <!-- <button class=\"add-risk-group-user-list-close\" (click)=\"close()\">\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <div class=\"add-risk-group-user-list-body\">\r\n <div class=\"search-block\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search User\" />\r\n </div>\r\n <ng-container *ngIf=\"(usersList | filter:search) as userlist\">\r\n <ng-container *ngIf=\"(groupsList | filter:search) as grouplist\">\r\n <div class=\"body-top\" *ngIf=\"( userlist?.length > 0 || userlist?.length > 0 && grouplist?.length > 0) && search?.trim()?.length === 0\">\r\n <app-cs-checkbox\r\n *ngIf=\"(openedFrom === 'RISK_TREATMENT' && usersList?.length < 19) || openedFrom !== 'RISK_TREATMENT'\"\r\n [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\r\n <strong>\r\n {{checkSelectAll() ? 'Deselect All' : 'Select All'}}\r\n </strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"list-block\">\r\n\r\n <ul class=\"group-user-list\" *ngIf=\"grouplist?.length > 0\">\r\n <ng-container *ngFor=\"let group of grouplist\">\r\n <li *ngIf=\"!hideGroup(group.userIds)\">\r\n <app-cs-checkbox [ngValue]=\"checkGroupList(group.userIds) && group.userIds.length !== 0\"\r\n (ngValueChange)=\"selectGroup(group.userIds,$event)\"\r\n [disabled]=\"openedFrom === 'RISK_TREATMENT' && (selectedUsers.length + group.userIds.length) > 19 && !checkGroupList(group.userIds) || group.userIds.length === 0\"\r\n (click)=\"validationCheck((openedFrom === 'RISK_TREATMENT' && (selectedUsers.length + group.userIds.length) > 19 && !checkGroupList(group.userIds)))\">\r\n <span class=\"name\">{{group.groupName}}<span\r\n class=\"counter\">{{(group.userIds.length>1)?\r\n group.userIds.length+' USERS':group.userIds.length+' USER' }}</span></span>\r\n </app-cs-checkbox>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <ul class=\"group-user-list\" *ngIf=\"userlist?.length > 0\">\r\n <li *ngFor=\"let user of userlist\">\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(user[userIdKey])\"\r\n (ngValueChange)=\"selectUser(user[userIdKey],$event)\"\r\n [disabled]=\"openedFrom === 'RISK_TREATMENT' && selectedUsers.length === 19 && !(selectedIds.includes(user[userIdKey]))\"\r\n (click)=\"validationCheck((openedFrom === 'RISK_TREATMENT' && selectedUsers.length === 19 && !(selectedIds.includes(user[userIdKey]))))\">\r\n <span class=\"name\" [appTooltip]=\"user.employee_email\" placement=\"bottom-left\" delay=\"0\"\r\n [tooltipMandatory]=\"true\">{{user.employee_name}}</span>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data *ngIf=\"userlist?.length === 0 && grouplist?.length === 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"'No Users Found'\"></app-no-data>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n <app-floating-bar [selectedData]=\"selectedUsers\" [displayElementKey]=\"'employee_name'\" [elementId]=\"userIdKey\"\r\n [singularText]=\"'User selected'\" [pluralText]=\"'Users selected'\" (closeEvent)=\"save(selectedIds)\"\r\n (closeList)=\"close()\" (deleteEvent)=\"deleteEvent($event)\"\r\n [isDisabled]=\"(groupsList?.length + usersList?.length) === 0 || selectedUsers?.length === 0\">\r\n </app-floating-bar>\r\n</div>",
111
- styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .add-risk-group-user-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:500px;bottom:0;left:0}::ng-deep .add-risk-group-user-list-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .add-risk-group-user-list-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .add-risk-group-user-list-close{background:transparent;border:none;outline:none;cursor:pointer;color:#000;font-size:12px;display:inline-block;padding:0}::ng-deep .add-risk-group-user-list-body{padding:24px 40px 24px 36px;height:calc(100vh - 112px)}::ng-deep .add-risk-group-user-list-body.have-user{height:calc(100vh - 110px)}::ng-deep .add-risk-group-user-list-body .search-block{position:relative}::ng-deep .add-risk-group-user-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 .add-risk-group-user-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .add-risk-group-user-list-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .add-risk-group-user-list-body .body-top{display:flex;justify-content:space-between;padding:16px 0 0}::ng-deep .add-risk-group-user-list-body .body-top app-cs-checkbox{display:flex}::ng-deep .add-risk-group-user-list-body .body-top app-cs-checkbox label span.value strong{color:#161b2f;font-size:14px;font-weight:600;white-space:nowrap}::ng-deep .add-risk-group-user-list-body .body-top app-cs-checkbox label span.value span.name span.counter{padding:0 7px;color:#747576;background:#f1f1f1;min-height:20px;border-radius:2px;display:inline-flex;margin-left:4px}::ng-deep .add-risk-group-user-list-body .list-block{max-height:calc(100vh - 240px);min-height:calc(100vh - 240px);overflow:auto}::ng-deep .add-risk-group-user-list-body .list-block::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::ng-deep .add-risk-group-user-list-body .list-block::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .add-risk-group-user-list-body .list-block::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .add-risk-group-user-list-body .list-block.full-height{max-height:calc(100vh - 180px)}::ng-deep .add-risk-group-user-list-body .list-block app-no-data{height:calc(100vh - 240px)}::ng-deep .add-risk-group-user-list-body ul{padding:0;margin:0}::ng-deep .add-risk-group-user-list-body ul.group-user-list{display:flex;align-items:flex-start;flex-wrap:wrap}::ng-deep .add-risk-group-user-list-body ul.group-user-list li{width:50%;padding:16px 0 0;list-style:none}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio{display:flex}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label{width:100%}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;flex-wrap:wrap}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.name,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.name{color:#161b2f;font-weight:400;line-height:20px;display:block;width:100%;font-size:13px}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.position,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.position{border-radius:2px;display:inline-flex;height:12px;align-items:center;padding:0 2px;text-transform:uppercase;font-size:9px;line-height:12px;font-weight:500}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.position.admin,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.position.admin{background:#fff9e6;color:#f2bf19}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.position.key-admin,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.position.key-admin{background:#dff2e1;color:#34aa44}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.position.manager,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.position.manager{color:#4681ef;background:#d4e2fc}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.position.executive,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.position.executive{color:#747576;background:#f1f1f1}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox{display:flex}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:24px}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.name span.counter{padding:0 7px;color:#747576;background:#f1f1f1;min-height:20px;border-radius:2px;display:inline-flex;margin-left:4px}::ng-deep .add-risk-group-user-list-body app-no-data{display:block;height:calc(100% - 100px)}::ng-deep .add-risk-group-user-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}@-webkit-keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}"]
177
+ template: "<div class=\"add-risk-group-user-list\" [class.animate]=\"animation\">\r\n <div class=\"add-risk-group-user-list-head\">\r\n <h3 class=\"add-risk-group-user-list-title\">Select User(s)</h3>\r\n <!-- <button class=\"add-risk-group-user-list-close\" (click)=\"close()\">\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <div class=\"add-risk-group-user-list-body\">\r\n <div class=\"search-block\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"{{currentTab === 'USER' ? 'Search User(s)' :'Search User Group(s)'}} \" />\r\n </div>\r\n <div class=\"add-risk-group-user-list-tab vx-d-flex vx-align-center vx-mt-1 vx-mb-2\" *ngIf=\"groupsEnabled\">\r\n <button (click)=\"switchTab('USER')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'USER'\">USERS \r\n <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{ usersList?.length}}</span></button>\r\n <button (click)=\"switchTab('GROUP')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'GROUP'\">USER GROUPS \r\n <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{assigneeGroupsList?.length}}</span></button>\r\n </div>\r\n <ng-container *ngIf=\"!groupsEnabled\">\r\n <ng-container *ngIf=\"(usersList | filter:search) as userlist\">\r\n <ng-container *ngIf=\"(groupsList | filter:search) as grouplist\">\r\n <div class=\"body-top\" *ngIf=\"( userlist?.length > 0 || userlist?.length > 0 && grouplist?.length > 0) && search?.trim()?.length === 0\">\r\n <app-cs-checkbox\r\n *ngIf=\"(openedFrom === 'RISK_TREATMENT' && usersList?.length < 19) || openedFrom !== 'RISK_TREATMENT'\"\r\n [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\r\n <strong>\r\n {{checkSelectAll() ? 'Deselect All' : 'Select All'}}\r\n </strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"list-block\">\r\n \r\n <ul class=\"group-user-list\" *ngIf=\"grouplist?.length > 0\">\r\n <ng-container *ngFor=\"let group of grouplist\">\r\n <li *ngIf=\"!hideGroup(group.userIds)\">\r\n <app-cs-checkbox [ngValue]=\"checkGroupList(group.userIds) && group.userIds.length !== 0\"\r\n (ngValueChange)=\"selectGroup(group.userIds,$event)\"\r\n [disabled]=\"openedFrom === 'RISK_TREATMENT' && (selectedUsers.length + group.userIds.length) > 19 && !checkGroupList(group.userIds) || group.userIds.length === 0\"\r\n (click)=\"validationCheck((openedFrom === 'RISK_TREATMENT' && (selectedUsers.length + group.userIds.length) > 19 && !checkGroupList(group.userIds)))\">\r\n <span class=\"name\">{{group.groupName}}<span\r\n class=\"counter\">{{(group.userIds.length>1)?\r\n group.userIds.length+' USERS':group.userIds.length+' USER' }}</span></span>\r\n </app-cs-checkbox>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <ul class=\"group-user-list\" *ngIf=\"userlist?.length > 0\">\r\n <li *ngFor=\"let user of userlist\">\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(user[userIdKey])\"\r\n (ngValueChange)=\"selectUser(user[userIdKey],$event)\"\r\n [disabled]=\"openedFrom === 'RISK_TREATMENT' && selectedUsers.length === 19 && !(selectedIds.includes(user[userIdKey]))\"\r\n (click)=\"validationCheck((openedFrom === 'RISK_TREATMENT' && selectedUsers.length === 19 && !(selectedIds.includes(user[userIdKey]))))\">\r\n <span class=\"name\" [appTooltip]=\"user.employee_email\" placement=\"bottom-left\" delay=\"0\"\r\n [tooltipMandatory]=\"true\">{{user.employee_name}}</span>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data *ngIf=\"userlist?.length === 0 && grouplist?.length === 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"'No Users Found'\"></app-no-data>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"currentTab === 'USER' && groupsEnabled\">\r\n <ng-container *ngIf=\"(usersList | filter:search) as userlist\">\r\n <div class=\"body-top\" *ngIf=\"( userlist?.length > 0) && search?.trim()?.length === 0\">\r\n <app-cs-checkbox\r\n *ngIf=\"(openedFrom === 'RISK_TREATMENT' && usersList?.length < 19) || openedFrom !== 'RISK_TREATMENT'\"\r\n [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\r\n <strong>\r\n {{checkSelectAll() ? 'Deselect All' : 'Select All'}}\r\n </strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <!-- when pagination was show then with-pagination this class was true -->\r\n <div class=\"list-block\" [class.with-pagination]=\"false\">\r\n <ul class=\"group-user-list\" *ngIf=\"userlist?.length > 0\">\r\n <li *ngFor=\"let user of userlist\">\r\n <app-cs-checkbox [ngValue]=\"selectedIds.includes(user[userIdKey])\"\r\n (ngValueChange)=\"selectUser(user[userIdKey],$event)\"\r\n [disabled]=\"openedFrom === 'RISK_TREATMENT' && selectedUsers.length === 19 && !(selectedIds.includes(user[userIdKey]))\"\r\n (click)=\"validationCheck((openedFrom === 'RISK_TREATMENT' && selectedUsers.length === 19 && !(selectedIds.includes(user[userIdKey]))))\">\r\n <span class=\"name\" [appTooltip]=\"user.employee_email\" placement=\"bottom-left\" delay=\"0\"\r\n [tooltipMandatory]=\"true\">{{user.employee_name}}</span>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data *ngIf=\"userlist?.length === 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"'No Users Found'\"></app-no-data>\r\n </div>\r\n </ng-container> \r\n </ng-container>\r\n <ng-container *ngIf=\"currentTab === 'GROUP' && groupsEnabled\" >\r\n <ng-container *ngIf=\"(assigneeGroupsList | filter:search) as grouplist\">\r\n <div class=\"body-top\" *ngIf=\"grouplist?.length > 0 && search?.trim()?.length === 0\">\r\n <app-cs-checkbox [ngValue]=\"checkselectAllgroups()\" (ngValueChange)=\"selectAllGroups($event)\">\r\n <strong>\r\n {{checkselectAllgroups() ? 'Deselect All' : 'Select All'}}\r\n </strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"list-block\" [class.with-pagination]=\"false\">\r\n <ul class=\"group-user-list\" *ngIf=\"grouplist?.length > 0\">\r\n <ng-container>\r\n <li *ngFor=\"let group of grouplist; let i = index\">\r\n <app-cs-checkbox [ngValue]=\"selectedGroupIds.includes(group[groupIdKey])\"\r\n (ngValueChange)=\"selectGroupElement(group,$event)\"\r\n [disabled]=\"(openedFrom === 'RISK_TREATMENT' && (group.member_ids.length) > 19 && !checkGroupList(group))\"\r\n (click)=\"validationCheck((openedFrom === 'RISK_TREATMENT' && (group.member_ids.length) > 19 && !checkGroupList(group)))\">\r\n <span class=\"name\">{{group.group_name}}\r\n <span class=\"counter\">{{group[\"member_count\"]}} {{group?.member_count > 1 ? 'USERS' :'USER'}}</span>\r\n </span>\r\n </app-cs-checkbox>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <app-no-data *ngIf=\"grouplist?.length === 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"'No Groups Found'\"></app-no-data>\r\n </div> \r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n <app-floating-bar [selectedData]=\"selectedUsers\" [selectedGroups]=\"selectedGroups\" [displayElementKey]=\"'employee_name'\" [elementId]=\"userIdKey\"\r\n [singularText]=\"'User selected'\" [pluralText]=\"'Users selected'\" (closeEvent)=\"save(selectedIds)\"\r\n (closeList)=\"close()\" (deleteEvent)=\"deleteEvent($event)\" (deleteGroupEvent)=\"deleteGroupEvent($event)\" [groupsEnabled]=\"groupsEnabled\"\r\n [isDisabled]=\"(groupsList?.length + usersList?.length) === 0 || selectedUsers?.length === 0 && selectedGroups?.length === 0\">\r\n </app-floating-bar>\r\n</div>",
178
+ styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\");::ng-deep .add-risk-group-user-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:500px;bottom:0;left:0}::ng-deep .add-risk-group-user-list-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .add-risk-group-user-list-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .add-risk-group-user-list-close{background:transparent;border:none;outline:none;cursor:pointer;color:#000;font-size:12px;display:inline-block;padding:0}::ng-deep .add-risk-group-user-list-tab{border-bottom:1px solid #f1f1f1}::ng-deep .add-risk-group-user-list-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.1875rem solid transparent;margin-right:2.5rem!important}::ng-deep .add-risk-group-user-list-tab button.tab-btn span{border-radius:1.25rem;color:#74757680;min-width:1.5rem}::ng-deep .add-risk-group-user-list-tab button.active{pointer-events:none}::ng-deep .add-risk-group-user-list-tab button.active.tab-btn{border-color:#1e5dd3;color:#1e5dd3}::ng-deep .add-risk-group-user-list-tab button.active.tab-btn span{background:#1e5dd3;color:#fff;font-weight:500}::ng-deep .add-risk-group-user-list-body{padding:24px 40px 24px 36px;height:calc(100vh - 112px)}::ng-deep .add-risk-group-user-list-body.have-user{height:calc(100vh - 110px)}::ng-deep .add-risk-group-user-list-body .search-block{position:relative}::ng-deep .add-risk-group-user-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 .add-risk-group-user-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .add-risk-group-user-list-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .add-risk-group-user-list-body app-pagination .wk-pagination-sec-ds{padding-top:0!important}::ng-deep .add-risk-group-user-list-body .body-top{display:flex;justify-content:space-between}::ng-deep .add-risk-group-user-list-body .body-top app-cs-checkbox{display:flex}::ng-deep .add-risk-group-user-list-body .body-top app-cs-checkbox label span.value strong{color:#161b2f;font-size:12px;font-weight:600;white-space:nowrap}::ng-deep .add-risk-group-user-list-body .body-top app-cs-checkbox label span.value span.name span.counter{background:#f1f1f1;border-radius:.125rem;color:#042e7d;font-size:9px;font-weight:600;line-height:12px;text-transform:uppercase;padding:0 4px;margin-left:8px}::ng-deep .add-risk-group-user-list-body .list-block{height:calc(100vh - 244px);overflow:hidden;overflow-y:auto}::ng-deep .add-risk-group-user-list-body .list-block::-webkit-scrollbar-track{background-color:transparent}::ng-deep .add-risk-group-user-list-body .list-block::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .add-risk-group-user-list-body .list-block::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .add-risk-group-user-list-body .list-block.with-pagination{height:calc(100vh - 280px)}::ng-deep .add-risk-group-user-list-body .list-block.full-height{max-height:calc(100vh - 180px)}::ng-deep .add-risk-group-user-list-body .list-block app-no-data{height:calc(100vh - 240px)}::ng-deep .add-risk-group-user-list-body ul{padding:0;margin:0}::ng-deep .add-risk-group-user-list-body ul.group-user-list{display:flex;align-items:flex-start;flex-wrap:wrap}::ng-deep .add-risk-group-user-list-body ul.group-user-list li{width:50%;padding:16px 0 0;list-style:none}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio{display:flex}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label{width:100%}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;flex-wrap:wrap}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.name,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.name{color:#161b2f;font-weight:400;line-height:20px;display:block;width:100%;font-size:12px}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.position,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.position{border-radius:2px;display:inline-flex;height:12px;align-items:center;padding:0 2px;text-transform:uppercase;font-size:9px;line-height:12px;font-weight:500}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.position.admin,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.position.admin{background:#fff9e6;color:#f2bf19}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.position.key-admin,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.position.key-admin{background:#dff2e1;color:#34aa44}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.position.manager,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.position.manager{color:#4681ef;background:#d4e2fc}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.position.executive,::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-radio label span.value span.position.executive{color:#747576;background:#f1f1f1}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox{display:flex}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:24px}::ng-deep .add-risk-group-user-list-body ul.group-user-list li app-cs-checkbox label span.value span.name span.counter{background:#f1f1f1;border-radius:.125rem;color:#042e7d;font-size:9px;font-weight:600;line-height:12px;text-transform:uppercase;padding:0 4px;margin-left:8px}::ng-deep .add-risk-group-user-list-body app-no-data{display:block;height:calc(100% - 100px)}::ng-deep .add-risk-group-user-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}@-webkit-keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}"]
112
179
  },] }
113
180
  ];
114
181
  GroupUsersListComponent.ctorParameters = () => [
115
182
  { type: SnackBarService }
116
183
  ];
117
184
  GroupUsersListComponent.propDecorators = {
185
+ groupsEnabled: [{ type: Input }],
118
186
  usersList: [{ type: Input }],
119
187
  groupsList: [{ type: Input }],
120
188
  selectedUsers: [{ type: Input }],
121
189
  userIdKey: [{ type: Input }],
190
+ groupIdKey: [{ type: Input }],
122
191
  openedFrom: [{ type: Input }],
123
192
  saveSelectedList: [{ type: Output }],
124
- closeUsersList: [{ type: Output }]
193
+ closeUsersList: [{ type: Output }],
194
+ selectedGroups: [{ type: Input }],
195
+ assigneeGroupsList: [{ type: Input }]
125
196
  };
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtdXNlcnMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2dyb3VwLXVzZXJzLWxpc3QvZ3JvdXAtdXNlcnMtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFNbkMsTUFBTSxPQUFPLHVCQUF1QjtJQVlsQyxZQUFvQixRQUF5QjtRQUF6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQVhwQyxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUN2QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNmLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlDLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDO0lBQytCLENBQUM7SUFFbEQsV0FBVztRQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcs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Q0FBQyxRQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFRLEVBQUMsRUFBRSxDQUFBLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDOzs7WUFqSEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLG9rSkFBZ0Q7O2FBRWpEOzs7WUFOUSxlQUFlOzs7d0JBUXJCLEtBQUs7eUJBQ0wsS0FBSzs0QkFDTCxLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsS0FBSzsrQkFDTCxNQUFNOzZCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWdyb3VwLXVzZXJzLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncm91cC11c2Vycy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncm91cC11c2Vycy1saXN0LmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcm91cFVzZXJzTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSB1c2Vyc0xpc3QgPSBbXTtcclxuICBASW5wdXQoKSBncm91cHNMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkVXNlcnMgPSBbXTtcclxuICBASW5wdXQoKSB1c2VySWRLZXkgPSAnJztcclxuICBASW5wdXQoKSBvcGVuZWRGcm9tID0gJyc7XHJcbiAgQE91dHB1dCgpIHNhdmVTZWxlY3RlZExpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlVXNlcnNMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBzZWFyY2ggPSAnJztcclxuICBzZWxlY3RlZElkczogYW55W10gPSBbXTtcclxuICBhbmltYXRpb24gPSBmYWxzZTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNuYWNrYmFyOiBTbmFja0JhclNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwidXNlciBsaXN0IFwiLCB0aGlzLnVzZXJzTGlzdClcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSB0aGlzLnNlbGVjdGVkVXNlcnMubWFwKChlbGU6IGFueSkgPT4geyBpZiAoZWxlW3RoaXMudXNlcklkS2V5XSkgeyByZXR1cm4gZWxlW3RoaXMudXNlcklkS2V5XTsgfSB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcclxuICAgIH0sIDMwMCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RVc2VyKHVzZXI6IGFueSwgbW9kZTogYW55KSB7XHJcbiAgICBpZiAobW9kZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2godXNlcik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gdXNlcik7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdCgpO1xyXG5cclxuICB9XHJcbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleCgoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50W3RoaXMudXNlcklkS2V5XSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB0aGlzLnNldExpc3QoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEFsbChtb2RlOiBhbnkpIHtcclxuICAgIGlmIChtb2RlKSB7XHJcbiAgICAgIGNvbnN0IGxpc3QgPSBbLi4udGhpcy51c2Vyc0xpc3RdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSWRzID0gW107XHJcbiAgICAgIGxpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goZWxlbWVudFt0aGlzLnVzZXJJZEtleV0pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGlvbkNoZWNrKGlzQ2hlY2tlZDogYm9vbGVhbikge1xyXG4gICAgaWYoaXNDaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuc25hY2tiYXIuc2hvdygnWW91IGNhbiBzZWxlY3QgYSBtYXhpbXVtIG9mIDE5IHVzZXJzLicsICdhbGVydCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHNldExpc3QoKSB7XHJcbiAgICBjb25zdCBkYXRhOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IHVzZXJMaXN0ID0gY2xvbmVEZWVwKHRoaXMudXNlcnNMaXN0KTtcclxuICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRJZHMpO1xyXG4gICAgdXNlckxpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMudXNlcklkS2V5XSkpIHtcclxuICAgICAgICBkYXRhLnB1c2goZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gZGF0YTtcclxuICB9XHJcblxyXG4gIGNoZWNrU2VsZWN0QWxsKCkge1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMudXNlcnNMaXN0LmV2ZXJ5KCh1c2VyOiBhbnkpID0+IHRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXModXNlclt0aGlzLnVzZXJJZEtleV0pKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgc2F2ZShzZWxlY3RlZElkczogYW55KSB7XHJcbiAgICB0aGlzLnNhdmVTZWxlY3RlZExpc3QuZW1pdChzZWxlY3RlZElkcyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuY2xvc2VVc2Vyc0xpc3QuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0R3JvdXAoZ3JvdXBJZHM6IGFueSwgbW9kZTogYW55KSB7XHJcbiAgICBpZiAobW9kZSkge1xyXG4gICAgICBncm91cElkcy5mb3JFYWNoKCh1c2VySWQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyh1c2VySWQpKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2godXNlcklkKVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBncm91cElkcy5mb3JFYWNoKCh1c2VySWQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSB1c2VySWQpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3QoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrR3JvdXBMaXN0KGdyb3VwSWRzOiBhbnkpIHtcclxuICAgIHJldHVybiBncm91cElkcy5ldmVyeSgoaWQ6IGFueSkgPT4gdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyhpZCkpO1xyXG4gIH1cclxuXHJcbiAgaGlkZUdyb3VwKGdyb3VwSWRzOiBhbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMudXNlcnNMaXN0LmV2ZXJ5KCh1c2VyOmFueSk9PiFncm91cElkcy5pbmNsdWRlcyh1c2VyW3RoaXMudXNlcklkS2V5XSkpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtdXNlcnMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2dyb3VwLXVzZXJzLWxpc3QvZ3JvdXAtdXNlcnMtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFNbkMsTUFBTSxPQUFPLHVCQUF1QjtJQWtCbEMsWUFBb0IsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFoQnBDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixlQUFVLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZCxlQUFVLEdBQUUsRUFBRSxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDZixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3RDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxtQkFBYyxHQUFTLEVBQUUsQ0FBQztRQUMxQix1QkFBa0IsR0FBUyxFQUFFLENBQUM7UUFFdkMsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIscUJBQWdCLEdBQVMsRUFBRSxDQUFDO1FBQzVCLHNCQUFpQixHQUFTLEVBQUUsQ0FBQztRQTRKN0IsZUFBVSxHQUFHLE1BQU0sQ0FBQTtJQTNKOEIs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LEVBQUUsc0JBQXNCO2dCQUNoQyxnM1VBQWdEOzthQUVqRDs7O1lBTlEsZUFBZTs7OzRCQVFyQixLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsS0FBSzs0QkFDTCxLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsS0FBSzt5QkFDTCxLQUFLOytCQUNMLE1BQU07NkJBQ04sTUFBTTs2QkFDTixLQUFLO2lDQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWdyb3VwLXVzZXJzLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncm91cC11c2Vycy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncm91cC11c2Vycy1saXN0LmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcm91cFVzZXJzTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBncm91cHNFbmFibGVkIDogYW55O1xyXG4gIEBJbnB1dCgpIHVzZXJzTGlzdCA9IFtdO1xyXG4gIEBJbnB1dCgpIGdyb3Vwc0xpc3Q6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRVc2VycyA9IFtdO1xyXG4gIEBJbnB1dCgpIHVzZXJJZEtleSA9ICcnO1xyXG4gIEBJbnB1dCgpICBncm91cElkS2V5ID0nJzsgXHJcbiAgQElucHV0KCkgb3BlbmVkRnJvbSA9ICcnO1xyXG4gIEBPdXRwdXQoKSBzYXZlU2VsZWN0ZWRMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZVVzZXJzTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBzZWxlY3RlZEdyb3VwczogYW55W10gPVtdO1xyXG4gIEBJbnB1dCgpIGFzc2lnbmVlR3JvdXBzTGlzdDogYW55W10gPVtdO1xyXG5cclxuICBzZWFyY2ggPSAnJztcclxuICBzZWxlY3RlZElkczogYW55W10gPSBbXTtcclxuICBhbmltYXRpb24gPSBmYWxzZTtcclxuICBzZWxlY3RlZEdyb3VwSWRzOiBhbnlbXSA9W107XHJcbiAgc2VsZWN0ZWRncm91cExpc3Q6IGFueVtdID1bXTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNuYWNrYmFyOiBTbmFja0JhclNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSB0aGlzLnNlbGVjdGVkVXNlcnMubWFwKChlbGU6IGFueSkgPT4geyBpZiAoZWxlW3RoaXMudXNlcklkS2V5XSkgeyByZXR1cm4gZWxlW3RoaXMudXNlcklkS2V5XTsgfSB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMubWFwKChlbGU6IGFueSkgPT4geyBpZiAoZWxlW3RoaXMuZ3JvdXBJZEtleV0pIHsgcmV0dXJuIGVsZVt0aGlzLmdyb3VwSWRLZXldOyB9IH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFVzZXIodXNlcjogYW55LCBtb2RlOiBhbnkpIHtcclxuICAgIGlmIChtb2RlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaCh1c2VyKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSB1c2VyKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcblxyXG4gIH1cclxuICBkZWxldGVFdmVudChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gZXZlbnRbdGhpcy51c2VySWRLZXldKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlR3JvdXBFdmVudChldmVudCA6IGFueSl7XHJcbiAgICBjb25zdCBncm91cGluZGV4ID0gdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmZpbmRJbmRleCgoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50Wydncm91cF9pZCddKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcy5zcGxpY2UoZ3JvdXBpbmRleCwgMSk7XHJcbiAgICB0aGlzLnNldGdyb3VwTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsKG1vZGU6IGFueSkge1xyXG4gICAgaWYgKG1vZGUpIHtcclxuICAgICAgY29uc3QgbGlzdCA9IFsuLi50aGlzLnVzZXJzTGlzdF07XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgICAgbGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChlbGVtZW50W3RoaXMudXNlcklkS2V5XSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGxHcm91cHMobW9kZTogYW55KXtcclxuICAgIGlmKG1vZGUpe1xyXG4gICAgICBjb25zdCBncm91cGxpc3Q9Wy4uLnRoaXMuYXNzaWduZWVHcm91cHNMaXN0XTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gW107XHJcbiAgICAgIGdyb3VwbGlzdC5mb3JFYWNoKGVsZW1lbnQ9PntcclxuICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMucHVzaChlbGVtZW50W3RoaXMuZ3JvdXBJZEtleV0pO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3Vwcz1ncm91cGxpc3Q7XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBzID0gW107XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldGdyb3VwTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGlvbkNoZWNrKGlzQ2hlY2tlZDogYm9vbGVhbikge1xyXG4gICAgaWYoaXNDaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuc25hY2tiYXIuc2hvdygnWW91IGNhbiBzZWxlY3QgYSBtYXhpbXVtIG9mIDE5IHVzZXJzLicsICdhbGVydCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHNldExpc3QoKSB7XHJcbiAgICBjb25zdCBkYXRhOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IHVzZXJMaXN0ID0gY2xvbmVEZWVwKHRoaXMudXNlcnNMaXN0KTtcclxuICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRJZHMpO1xyXG4gICAgdXNlckxpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMudXNlcklkS2V5XSkpIHtcclxuICAgICAgICBkYXRhLnB1c2goZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gZGF0YTtcclxuICB9XHJcbiAgc2V0Z3JvdXBMaXN0KCl7XHJcbiAgICBjb25zdCBkYXRhOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGdyb3Vwc2xpc3QgPSBjbG9uZURlZXAodGhpcy5hc3NpZ25lZUdyb3Vwc0xpc3QpO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRHcm91cElkcyA9IGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkR3JvdXBJZHMpO1xyXG4gICAgZ3JvdXBzbGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkR3JvdXBJZHMuaW5jbHVkZXMoZWxlbWVudFt0aGlzLmdyb3VwSWRLZXldKSkge1xyXG4gICAgICAgIGRhdGEucHVzaChlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBzID0gZGF0YTtcclxuICB9XHJcblxyXG4gIGNoZWNrU2VsZWN0QWxsKCkge1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMudXNlcnNMaXN0LmV2ZXJ5KCh1c2VyOiBhbnkpID0+IHRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXModXNlclt0aGlzLnVzZXJJZEtleV0pKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tzZWxlY3RBbGxncm91cHMoKXtcclxuICAgIGNvbnN0IGRhdGEgPXRoaXMuYXNzaWduZWVHcm91cHNMaXN0LmV2ZXJ5KChncm91cDphbnkpPT4gdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmluY2x1ZGVzKGdyb3VwW3RoaXMuZ3JvdXBJZEtleV0pKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgc2F2ZShzZWxlY3RlZElkczogYW55KSB7XHJcbiAgICBsZXQgc2VsZWN0ZWREYXRhO1xyXG4gICAgaWYodGhpcy5hc3NpZ25lZUdyb3Vwc0xpc3QubGVuZ3RoKXtcclxuICAgICAgc2VsZWN0ZWREYXRhPSB7IHVzZXJzOiB0aGlzLnNlbGVjdGVkSWRzLCBncm91cHM6IHRoaXMuc2VsZWN0ZWRHcm91cElkcyB9XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHNlbGVjdGVkRGF0YSA9IHNlbGVjdGVkSWRzXHJcbiAgICB9XHJcbiAgICB0aGlzLnNhdmVTZWxlY3RlZExpc3QuZW1pdChzZWxlY3RlZERhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmNsb3NlVXNlcnNMaXN0LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEdyb3VwKGdyb3VwSWRzOiBhbnksIG1vZGU6IGFueSkge1xyXG4gICAgaWYgKG1vZGUpIHtcclxuICAgICAgZ3JvdXBJZHMuZm9yRWFjaCgodXNlcklkOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXModXNlcklkKSkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKHVzZXJJZClcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZ3JvdXBJZHMuZm9yRWFjaCgodXNlcklkOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gdXNlcklkKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RHcm91cEVsZW1lbnQoZGF0YTogYW55LCBtb2RlOiBhbnkpIHtcclxuICAgICAgaWYgKG1vZGUpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkZ3JvdXBMaXN0LnB1c2goZGF0YSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcy5wdXNoKGRhdGFbdGhpcy5ncm91cElkS2V5XSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRncm91cExpc3QuZmluZEluZGV4KChlbGU6IHsgW3g6IHN0cmluZ106IGFueTsgfSkgPT4gZWxlW3RoaXMuZ3JvdXBJZEtleV0gPT09IGRhdGFbdGhpcy5ncm91cElkS2V5XSk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkZ3JvdXBMaXN0LnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICBjb25zdCBpZEluZGV4ID0gdGhpcy5zZWxlY3RlZEdyb3VwSWRzLmZpbmRJbmRleChlbGUgPT4gZWxlID09PSBkYXRhW3RoaXMuZ3JvdXBJZEtleV0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzLnNwbGljZShpZEluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0Z3JvdXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBjaGVja0dyb3VwTGlzdChncm91cElkczogYW55KSB7ICAgIFxyXG4gICAgcmV0dXJuIGdyb3VwSWRzLmV2ZXJ5KChpZDogYW55KSA9PiB0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGlkKSk7XHJcbiAgfVxyXG5cclxuICBoaWRlR3JvdXAoZ3JvdXBJZHM6IGFueSl7XHJcbiAgICByZXR1cm4gdGhpcy51c2Vyc0xpc3QuZXZlcnkoKHVzZXI6YW55KT0+IWdyb3VwSWRzLmluY2x1ZGVzKHVzZXJbdGhpcy51c2VySWRLZXldKSk7XHJcbiAgfVxyXG5cclxuICBjdXJyZW50VGFiID0gJ1VTRVInXHJcbiAgc3dpdGNoVGFiKHRhYjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRUYWIgPSB0YWI7XHJcbiAgICB0aGlzLnNlYXJjaCA9Jyc7XHJcbiAgfVxyXG59XHJcbiJdfQ==