ng-configcat-publicapi-ui 4.1.2 → 4.2.0

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 (52) hide show
  1. package/esm2022/lib/_directives/input-display-normalizer.directive.mjs +4 -4
  2. package/esm2022/lib/_services/app-data-adapter.mjs +4 -4
  3. package/esm2022/lib/_services/comparison-value-list-helper.mjs +4 -4
  4. package/esm2022/lib/_services/form-generator.mjs +4 -4
  5. package/esm2022/lib/_services/messaging.service.mjs +4 -4
  6. package/esm2022/lib/_services/public-api.service.mjs +4 -4
  7. package/esm2022/lib/_services/setting-list-form-helper.mjs +4 -4
  8. package/esm2022/lib/_services/tracking.directive.mjs +4 -4
  9. package/esm2022/lib/ace-editor/ace-editor.component.mjs +4 -4
  10. package/esm2022/lib/authorization/authorization.component.mjs +4 -4
  11. package/esm2022/lib/base/base-select.component.mjs +4 -4
  12. package/esm2022/lib/base/base.component.mjs +4 -4
  13. package/esm2022/lib/configuration.mjs +4 -4
  14. package/esm2022/lib/dialogs/confirmation-dialog/confirmation-dialog.mjs +4 -4
  15. package/esm2022/lib/dialogs/delete-setting-dialog/delete-setting-dialog.component.mjs +4 -4
  16. package/esm2022/lib/dialogs/expand-dialog/expand-dialog.component.mjs +4 -4
  17. package/esm2022/lib/dialogs/info-dialog/info-dialog.mjs +4 -4
  18. package/esm2022/lib/dialogs/reason-dialog/reason-dialog.component.mjs +4 -4
  19. package/esm2022/lib/dialogs/reroute-dialog/reroute-dialog.mjs +4 -4
  20. package/esm2022/lib/dialogs/save-snackbar/save-snackbar.component.mjs +4 -4
  21. package/esm2022/lib/ng-configcat-publicapi-ui.module.mjs +5 -5
  22. package/esm2022/lib/selects/config-select/config-select.component.mjs +4 -4
  23. package/esm2022/lib/selects/environment-select/environment-select.component.mjs +4 -4
  24. package/esm2022/lib/selects/product-select/product-select.component.mjs +4 -4
  25. package/esm2022/lib/selects/setting-select/setting-select.component.mjs +4 -4
  26. package/esm2022/lib/setting-item/setting-item.component.mjs +4 -4
  27. package/esm2022/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +4 -4
  28. package/esm2022/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +4 -4
  29. package/esm2022/lib/setting-list/setting/setting.component.mjs +4 -4
  30. package/esm2022/lib/setting-list/setting/value/value.component.mjs +4 -4
  31. package/esm2022/lib/setting-list/setting-list.component.mjs +4 -4
  32. package/esm2022/lib/v2/feature-flag/date-time-picker/date-time-picker.component.mjs +4 -4
  33. package/esm2022/lib/v2/feature-flag/dependees-dialog/dependees-dialog.component.mjs +4 -4
  34. package/esm2022/lib/v2/feature-flag/evaluation-formula/evaluation-formula.component.mjs +5 -5
  35. package/esm2022/lib/v2/feature-flag/evaluation-formula/feature-flag-value/feature-flag-value.component.mjs +4 -4
  36. package/esm2022/lib/v2/feature-flag/evaluation-formula/popout-text-editor-dialog/popout-text-editor-dialog.component.mjs +4 -4
  37. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/condition-chip/condition-chip.component.mjs +4 -4
  38. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/conditions.component.mjs +5 -5
  39. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/prerequisite-flag-condition/prerequisite-flag-condition.component.mjs +4 -4
  40. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/segment-condition/segment-condition.component.mjs +4 -4
  41. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/comparator-dialog/comparator-dialog.component.mjs +4 -4
  42. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/popout-list-editor-dialog/popout-list-editor-dialog.component.mjs +5 -5
  43. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/user-condition.component.mjs +6 -6
  44. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/percentage-options/percentage-options.component.mjs +5 -5
  45. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/targeting-rule.component.mjs +5 -5
  46. package/esm2022/lib/v2/feature-flag/feature-flag.component.mjs +4 -4
  47. package/esm2022/lib/v2/feature-flag/percentage-evaluation-attribute-dialog/percentage-evaluation-attribute-dialog.component.mjs +4 -4
  48. package/esm2022/lib/v2/feature-flag-item.component.mjs +5 -5
  49. package/fesm2022/ng-configcat-publicapi-ui.mjs +153 -153
  50. package/fesm2022/ng-configcat-publicapi-ui.mjs.map +1 -1
  51. package/package.json +4 -4
  52. package/public-api.scss +7 -7
@@ -71,12 +71,12 @@ export class ConditionsComponent {
71
71
  }
72
72
  return true;
73
73
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ConditionsComponent, deps: [{ token: i1.FormGenerator }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: ConditionsComponent, selector: "app-conditions", inputs: { formArray: "formArray", segments: "segments", flagState: "flagState", targetingRuleIndex: "targetingRuleIndex", canManageSegments: "canManageSegments", featureFlagLimitations: "featureFlagLimitations" }, outputs: { createSegmentRequested: "createSegmentRequested", manageSegmentsRequested: "manageSegmentsRequested", addSegmentConditionRequestedWithoutSegments: "addSegmentConditionRequestedWithoutSegments", lastConditionDeleted: "lastConditionDeleted", subscriptionLimitReached: "subscriptionLimitReached", prerequisiteConditionChanged: "prerequisiteConditionChanged" }, ngImport: i0, template: "<div *ngFor=\"let condition of formArray.controls; let i = index\" class=\"condition\">\n <app-user-condition class=\"grow\" *ngIf=\"condition.controls.userCondition\" [readOnly]=\"flagState.readOnly\"\n [formGroup]=\"condition.controls.userCondition\" [featureFlagLimitations]=\"featureFlagLimitations\"\n [targetingRuleIndex]=\"targetingRuleIndex\" [conditionIndex]=\"i\"></app-user-condition>\n <app-segment-condition class=\"grow\" *ngIf=\"condition.controls.segmentCondition\"\n [formGroup]=\"condition.controls.segmentCondition\" [segments]=\"segments\" [canManageSegments]=\"canManageSegments\"\n (createSegmentRequested)=\"createSegmentRequested.emit()\"\n (manageSegmentsRequested)=\"manageSegmentsRequested.emit()\" [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"i\"></app-segment-condition>\n <app-prerequisite-flag-condition class=\"grow\" *ngIf=\"condition.controls.prerequisiteFlagCondition\"\n [formGroup]=\"condition.controls.prerequisiteFlagCondition\"\n [prerequisiteSettings]=\"flagState.prerequisiteSettings\"\n (prerequisiteConditionChanged)=\"prerequisiteConditionChanged.emit()\"\n [featureFlagLimitations]=\"featureFlagLimitations\" [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"i\"></app-prerequisite-flag-condition>\n <div class=\"delete-button\" *ngIf=\"formArray.controls.length > 1 && !flagState.readOnly\">\n <button type=\"button\" mat-icon-button matTooltip=\"Remove condition\" (click)=\"remove(i)\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"add-cond\" *ngIf=\"formArray.controls.length && !flagState.readOnly\">\n <div class=\"enter-sign\"><mat-icon>subdirectory_arrow_right</mat-icon></div>\n <div [matMenuTriggerFor]=\"andmenu\" matTooltip=\"Add AND condition\" class=\"add-btn add-and\">+ AND</div>\n</div>\n\n<mat-menu #andmenu class=\"menu-long-text-and\">\n <a mat-menu-item (click)=\"addUserCondition()\"><mat-icon>track_changes</mat-icon>Add user condition</a>\n <a mat-menu-item (click)=\"addSegmentCondition()\"><mat-icon>pie_chart</mat-icon>Add segment condition</a>\n <div matTooltip=\"There's no other flag in the Config to select as a prerequisite.\"\n [matTooltipDisabled]=\"flagState.prerequisiteSettings.length > 0\">\n <a mat-menu-item (click)=\"addPrerequisiteFlagCondition()\" [disabled]=\"!flagState.prerequisiteSettings.length\">\n <mat-icon>account_tree</mat-icon>Add flag condition (prerequisite)\n </a>\n </div>\n</mat-menu>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", "html{--mdc-text-button-container-height: 24px;--mdc-filled-button-container-height: 24px;--mdc-outlined-button-container-height: 24px;--mdc-protected-button-container-height: 24px;--mat-text-button-touch-target-display: none;--mat-filled-button-touch-target-display: none;--mat-protected-button-touch-target-display: none;--mat-outlined-button-touch-target-display: none}html{--mat-icon-button-touch-target-display: none}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 32px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:4px}.condition{display:flex;flex-wrap:nowrap}.condition .grow{flex-grow:1}.add-cond{display:flex;width:100%;margin-top:4px}.add-cond .enter-sign{color:#ccc;margin:2px 3px 0 8px}.add-cond .enter-sign mat-icon{font-size:16px;width:16px;height:16px}.add-cond .add-and{min-width:65px;padding:3px 2px 2px 5px}\n", ".add-btn{cursor:pointer;background-color:transparent;display:flex;font-size:10px;align-items:center;border:1px dashed rgb(168,168,168);color:#979797;border-radius:15px}.add-btn:hover{background-color:#ebebeb}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.UserConditionComponent, selector: "app-user-condition", inputs: ["targetingRuleIndex", "conditionIndex", "readOnly", "featureFlagLimitations", "formGroup"] }, { kind: "component", type: i9.SegmentConditionComponent, selector: "app-segment-condition", inputs: ["targetingRuleIndex", "conditionIndex", "formGroup", "segments", "canManageSegments"], outputs: ["createSegmentRequested", "manageSegmentsRequested"] }, { kind: "component", type: i10.PrerequisiteFlagConditionComponent, selector: "app-prerequisite-flag-condition", inputs: ["targetingRuleIndex", "conditionIndex", "formGroup", "prerequisiteSettings", "featureFlagLimitations"], outputs: ["prerequisiteConditionChanged"] }] }); }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConditionsComponent, deps: [{ token: i1.FormGenerator }], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ConditionsComponent, selector: "app-conditions", inputs: { formArray: "formArray", segments: "segments", flagState: "flagState", targetingRuleIndex: "targetingRuleIndex", canManageSegments: "canManageSegments", featureFlagLimitations: "featureFlagLimitations" }, outputs: { createSegmentRequested: "createSegmentRequested", manageSegmentsRequested: "manageSegmentsRequested", addSegmentConditionRequestedWithoutSegments: "addSegmentConditionRequestedWithoutSegments", lastConditionDeleted: "lastConditionDeleted", subscriptionLimitReached: "subscriptionLimitReached", prerequisiteConditionChanged: "prerequisiteConditionChanged" }, ngImport: i0, template: "<div *ngFor=\"let condition of formArray.controls; let i = index\" class=\"condition\">\n <app-user-condition class=\"grow\" *ngIf=\"condition.controls.userCondition\" [readOnly]=\"flagState.readOnly\"\n [formGroup]=\"condition.controls.userCondition\" [featureFlagLimitations]=\"featureFlagLimitations\"\n [targetingRuleIndex]=\"targetingRuleIndex\" [conditionIndex]=\"i\"></app-user-condition>\n <app-segment-condition class=\"grow\" *ngIf=\"condition.controls.segmentCondition\"\n [formGroup]=\"condition.controls.segmentCondition\" [segments]=\"segments\" [canManageSegments]=\"canManageSegments\"\n (createSegmentRequested)=\"createSegmentRequested.emit()\"\n (manageSegmentsRequested)=\"manageSegmentsRequested.emit()\" [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"i\"></app-segment-condition>\n <app-prerequisite-flag-condition class=\"grow\" *ngIf=\"condition.controls.prerequisiteFlagCondition\"\n [formGroup]=\"condition.controls.prerequisiteFlagCondition\"\n [prerequisiteSettings]=\"flagState.prerequisiteSettings\"\n (prerequisiteConditionChanged)=\"prerequisiteConditionChanged.emit()\"\n [featureFlagLimitations]=\"featureFlagLimitations\" [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"i\"></app-prerequisite-flag-condition>\n <div class=\"delete-button\" *ngIf=\"formArray.controls.length > 1 && !flagState.readOnly\">\n <button type=\"button\" mat-icon-button matTooltip=\"Remove condition\" (click)=\"remove(i)\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"add-cond\" *ngIf=\"formArray.controls.length && !flagState.readOnly\">\n <div class=\"enter-sign\"><mat-icon>subdirectory_arrow_right</mat-icon></div>\n <div [matMenuTriggerFor]=\"andmenu\" matTooltip=\"Add AND condition\" class=\"add-btn add-and\">+ AND</div>\n</div>\n\n<mat-menu #andmenu class=\"menu-long-text-and\">\n <a mat-menu-item (click)=\"addUserCondition()\"><mat-icon>track_changes</mat-icon>Add user condition</a>\n <a mat-menu-item (click)=\"addSegmentCondition()\"><mat-icon>pie_chart</mat-icon>Add segment condition</a>\n <div matTooltip=\"There's no other flag in the Config to select as a prerequisite.\"\n [matTooltipDisabled]=\"flagState.prerequisiteSettings.length > 0\">\n <a mat-menu-item (click)=\"addPrerequisiteFlagCondition()\" [disabled]=\"!flagState.prerequisiteSettings.length\">\n <mat-icon>account_tree</mat-icon>Add flag condition (prerequisite)\n </a>\n </div>\n</mat-menu>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", "html{--mdc-text-button-container-height: 24px;--mdc-filled-button-container-height: 24px;--mdc-protected-button-container-height: 24px;--mdc-outlined-button-container-height: 24px;--mat-text-button-touch-target-display: none;--mat-filled-button-touch-target-display: none;--mat-protected-button-touch-target-display: none;--mat-outlined-button-touch-target-display: none}html{--mat-icon-button-touch-target-display: none}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 32px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:4px}.condition{display:flex;flex-wrap:nowrap}.condition .grow{flex-grow:1}.add-cond{display:flex;width:100%;margin-top:4px}.add-cond .enter-sign{color:#ccc;margin:2px 3px 0 8px}.add-cond .enter-sign mat-icon{font-size:16px;width:16px;height:16px}.add-cond .add-and{min-width:65px;padding:3px 2px 2px 5px}\n", ".add-btn{cursor:pointer;background-color:transparent;display:flex;font-size:10px;align-items:center;border:1px dashed rgb(168,168,168);color:#979797;border-radius:15px}.add-btn:hover{background-color:#ebebeb}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.UserConditionComponent, selector: "app-user-condition", inputs: ["targetingRuleIndex", "conditionIndex", "readOnly", "featureFlagLimitations", "formGroup"] }, { kind: "component", type: i9.SegmentConditionComponent, selector: "app-segment-condition", inputs: ["targetingRuleIndex", "conditionIndex", "formGroup", "segments", "canManageSegments"], outputs: ["createSegmentRequested", "manageSegmentsRequested"] }, { kind: "component", type: i10.PrerequisiteFlagConditionComponent, selector: "app-prerequisite-flag-condition", inputs: ["targetingRuleIndex", "conditionIndex", "formGroup", "prerequisiteSettings", "featureFlagLimitations"], outputs: ["prerequisiteConditionChanged"] }] }); }
76
76
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ConditionsComponent, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConditionsComponent, decorators: [{
78
78
  type: Component,
79
- args: [{ selector: 'app-conditions', template: "<div *ngFor=\"let condition of formArray.controls; let i = index\" class=\"condition\">\n <app-user-condition class=\"grow\" *ngIf=\"condition.controls.userCondition\" [readOnly]=\"flagState.readOnly\"\n [formGroup]=\"condition.controls.userCondition\" [featureFlagLimitations]=\"featureFlagLimitations\"\n [targetingRuleIndex]=\"targetingRuleIndex\" [conditionIndex]=\"i\"></app-user-condition>\n <app-segment-condition class=\"grow\" *ngIf=\"condition.controls.segmentCondition\"\n [formGroup]=\"condition.controls.segmentCondition\" [segments]=\"segments\" [canManageSegments]=\"canManageSegments\"\n (createSegmentRequested)=\"createSegmentRequested.emit()\"\n (manageSegmentsRequested)=\"manageSegmentsRequested.emit()\" [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"i\"></app-segment-condition>\n <app-prerequisite-flag-condition class=\"grow\" *ngIf=\"condition.controls.prerequisiteFlagCondition\"\n [formGroup]=\"condition.controls.prerequisiteFlagCondition\"\n [prerequisiteSettings]=\"flagState.prerequisiteSettings\"\n (prerequisiteConditionChanged)=\"prerequisiteConditionChanged.emit()\"\n [featureFlagLimitations]=\"featureFlagLimitations\" [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"i\"></app-prerequisite-flag-condition>\n <div class=\"delete-button\" *ngIf=\"formArray.controls.length > 1 && !flagState.readOnly\">\n <button type=\"button\" mat-icon-button matTooltip=\"Remove condition\" (click)=\"remove(i)\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"add-cond\" *ngIf=\"formArray.controls.length && !flagState.readOnly\">\n <div class=\"enter-sign\"><mat-icon>subdirectory_arrow_right</mat-icon></div>\n <div [matMenuTriggerFor]=\"andmenu\" matTooltip=\"Add AND condition\" class=\"add-btn add-and\">+ AND</div>\n</div>\n\n<mat-menu #andmenu class=\"menu-long-text-and\">\n <a mat-menu-item (click)=\"addUserCondition()\"><mat-icon>track_changes</mat-icon>Add user condition</a>\n <a mat-menu-item (click)=\"addSegmentCondition()\"><mat-icon>pie_chart</mat-icon>Add segment condition</a>\n <div matTooltip=\"There's no other flag in the Config to select as a prerequisite.\"\n [matTooltipDisabled]=\"flagState.prerequisiteSettings.length > 0\">\n <a mat-menu-item (click)=\"addPrerequisiteFlagCondition()\" [disabled]=\"!flagState.prerequisiteSettings.length\">\n <mat-icon>account_tree</mat-icon>Add flag condition (prerequisite)\n </a>\n </div>\n</mat-menu>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", "html{--mdc-text-button-container-height: 24px;--mdc-filled-button-container-height: 24px;--mdc-outlined-button-container-height: 24px;--mdc-protected-button-container-height: 24px;--mat-text-button-touch-target-display: none;--mat-filled-button-touch-target-display: none;--mat-protected-button-touch-target-display: none;--mat-outlined-button-touch-target-display: none}html{--mat-icon-button-touch-target-display: none}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 32px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:4px}.condition{display:flex;flex-wrap:nowrap}.condition .grow{flex-grow:1}.add-cond{display:flex;width:100%;margin-top:4px}.add-cond .enter-sign{color:#ccc;margin:2px 3px 0 8px}.add-cond .enter-sign mat-icon{font-size:16px;width:16px;height:16px}.add-cond .add-and{min-width:65px;padding:3px 2px 2px 5px}\n", ".add-btn{cursor:pointer;background-color:transparent;display:flex;font-size:10px;align-items:center;border:1px dashed rgb(168,168,168);color:#979797;border-radius:15px}.add-btn:hover{background-color:#ebebeb}\n"] }]
79
+ args: [{ selector: 'app-conditions', template: "<div *ngFor=\"let condition of formArray.controls; let i = index\" class=\"condition\">\n <app-user-condition class=\"grow\" *ngIf=\"condition.controls.userCondition\" [readOnly]=\"flagState.readOnly\"\n [formGroup]=\"condition.controls.userCondition\" [featureFlagLimitations]=\"featureFlagLimitations\"\n [targetingRuleIndex]=\"targetingRuleIndex\" [conditionIndex]=\"i\"></app-user-condition>\n <app-segment-condition class=\"grow\" *ngIf=\"condition.controls.segmentCondition\"\n [formGroup]=\"condition.controls.segmentCondition\" [segments]=\"segments\" [canManageSegments]=\"canManageSegments\"\n (createSegmentRequested)=\"createSegmentRequested.emit()\"\n (manageSegmentsRequested)=\"manageSegmentsRequested.emit()\" [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"i\"></app-segment-condition>\n <app-prerequisite-flag-condition class=\"grow\" *ngIf=\"condition.controls.prerequisiteFlagCondition\"\n [formGroup]=\"condition.controls.prerequisiteFlagCondition\"\n [prerequisiteSettings]=\"flagState.prerequisiteSettings\"\n (prerequisiteConditionChanged)=\"prerequisiteConditionChanged.emit()\"\n [featureFlagLimitations]=\"featureFlagLimitations\" [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"i\"></app-prerequisite-flag-condition>\n <div class=\"delete-button\" *ngIf=\"formArray.controls.length > 1 && !flagState.readOnly\">\n <button type=\"button\" mat-icon-button matTooltip=\"Remove condition\" (click)=\"remove(i)\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"add-cond\" *ngIf=\"formArray.controls.length && !flagState.readOnly\">\n <div class=\"enter-sign\"><mat-icon>subdirectory_arrow_right</mat-icon></div>\n <div [matMenuTriggerFor]=\"andmenu\" matTooltip=\"Add AND condition\" class=\"add-btn add-and\">+ AND</div>\n</div>\n\n<mat-menu #andmenu class=\"menu-long-text-and\">\n <a mat-menu-item (click)=\"addUserCondition()\"><mat-icon>track_changes</mat-icon>Add user condition</a>\n <a mat-menu-item (click)=\"addSegmentCondition()\"><mat-icon>pie_chart</mat-icon>Add segment condition</a>\n <div matTooltip=\"There's no other flag in the Config to select as a prerequisite.\"\n [matTooltipDisabled]=\"flagState.prerequisiteSettings.length > 0\">\n <a mat-menu-item (click)=\"addPrerequisiteFlagCondition()\" [disabled]=\"!flagState.prerequisiteSettings.length\">\n <mat-icon>account_tree</mat-icon>Add flag condition (prerequisite)\n </a>\n </div>\n</mat-menu>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", "html{--mdc-text-button-container-height: 24px;--mdc-filled-button-container-height: 24px;--mdc-protected-button-container-height: 24px;--mdc-outlined-button-container-height: 24px;--mat-text-button-touch-target-display: none;--mat-filled-button-touch-target-display: none;--mat-protected-button-touch-target-display: none;--mat-outlined-button-touch-target-display: none}html{--mat-icon-button-touch-target-display: none}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 32px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:4px}.condition{display:flex;flex-wrap:nowrap}.condition .grow{flex-grow:1}.add-cond{display:flex;width:100%;margin-top:4px}.add-cond .enter-sign{color:#ccc;margin:2px 3px 0 8px}.add-cond .enter-sign mat-icon{font-size:16px;width:16px;height:16px}.add-cond .add-and{min-width:65px;padding:3px 2px 2px 5px}\n", ".add-btn{cursor:pointer;background-color:transparent;display:flex;font-size:10px;align-items:center;border:1px dashed rgb(168,168,168);color:#979797;border-radius:15px}.add-btn:hover{background-color:#ebebeb}\n"] }]
80
80
  }], ctorParameters: () => [{ type: i1.FormGenerator }], propDecorators: { formArray: [{
81
81
  type: Input
82
82
  }], segments: [{
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
102
102
  }], prerequisiteConditionChanged: [{
103
103
  type: Output
104
104
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL2NvbmRpdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvdGFyZ2V0aW5nLXJ1bGUvY29uZGl0aW9ucy9jb25kaXRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFFeUIsY0FBYyxFQUFZLGlCQUFpQixFQUMxRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7QUFXbEMsTUFBTSxPQUFPLG1CQUFtQjtJQWM5QixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVB0QywyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVDLDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsZ0RBQTJDLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRSx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLDZCQUF3QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUMsaUNBQTRCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUc1RCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUFFLE9BQU87UUFFckMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQztZQUN0RCxhQUFhLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUU7U0FDM0ksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFBRSxPQUFPO1FBRXJDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hELE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQztZQUN0RCxnQkFBZ0IsRUFBRSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtTQUMxRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUFFLE9BQU87UUFFckMsTUFBTSxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQWdCO1lBQ3JDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsK0NBQStDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1NBQzNILENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWE7UUFDbEIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQztRQUN2RixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztZQUNwRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQXJFVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw2bkJDaEJoQywrakZBb0NXOzs0RkRwQkUsbUJBQW1CO2tCQVQvQixTQUFTOytCQUNFLGdCQUFnQjtrRkFTakIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0ksc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFDRywyQ0FBMkM7c0JBQXBELE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHdCQUF3QjtzQkFBakMsTUFBTTtnQkFDRyw0QkFBNEI7c0JBQXJDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBJRmxhZ1N0YXRlLCBJRmVhdHVyZUZsYWdMaW1pdGF0aW9ucyxcbiAgQ29uZGl0aW9uRm9ybSwgRm9ybUdlbmVyYXRvciwgVXNlckNvbXBhcmF0b3IsIElTZWdtZW50LCBTZWdtZW50Q29tcGFyYXRvclxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi9ib290c3RyYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29uZGl0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25kaXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4uLy4uL2NvbXBvbmVudHMuc2NzcycsXG4gICAgJy4vY29uZGl0aW9ucy5jb21wb25lbnQuc2NzcycsXG4gICAgJy4uLy4uL2FkZC1idG4uc2NzcydcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb25kaXRpb25zQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZm9ybUFycmF5OiBGb3JtQXJyYXk8Rm9ybUdyb3VwPENvbmRpdGlvbkZvcm0+PjtcbiAgQElucHV0KCkgc2VnbWVudHM6IElTZWdtZW50W107XG4gIEBJbnB1dCgpIGZsYWdTdGF0ZTogSUZsYWdTdGF0ZTtcbiAgQElucHV0KCkgdGFyZ2V0aW5nUnVsZUluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNhbk1hbmFnZVNlZ21lbnRzOiBib29sZWFuO1xuICBASW5wdXQoKSBmZWF0dXJlRmxhZ0xpbWl0YXRpb25zOiBJRmVhdHVyZUZsYWdMaW1pdGF0aW9ucztcbiAgQE91dHB1dCgpIGNyZWF0ZVNlZ21lbnRSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBtYW5hZ2VTZWdtZW50c1JlcXVlc3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGFkZFNlZ21lbnRDb25kaXRpb25SZXF1ZXN0ZWRXaXRob3V0U2VnbWVudHMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBsYXN0Q29uZGl0aW9uRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHN1YnNjcmlwdGlvbkxpbWl0UmVhY2hlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtR2VuZXJhdG9yOiBGb3JtR2VuZXJhdG9yKSB7XG4gIH1cblxuICBhZGRVc2VyQ29uZGl0aW9uKCkge1xuICAgIGlmICghdGhpcy5jaGVja0xpbWl0YXRpb25zKCkpIHJldHVybjtcblxuICAgIGNvbnN0IGYgPSB0aGlzLmZvcm1HZW5lcmF0b3IuZ2VuZXJhdGVDb25kaXRpb25Gb3JtR3JvdXAoe1xuICAgICAgdXNlckNvbmRpdGlvbjogeyBjb21wYXJpc29uQXR0cmlidXRlOiAnSWRlbnRpZmllcicsIGNvbXBhcmF0b3I6IFVzZXJDb21wYXJhdG9yLlNlbnNpdGl2ZVRleHRFcXVhbHMsIGNvbXBhcmlzb25WYWx1ZTogeyBzdHJpbmdWYWx1ZTogJycgfSB9XG4gICAgfSwgdGhpcy5mbGFnU3RhdGUucmVhZE9ubHksIHRoaXMuZmxhZ1N0YXRlLnByZXJlcXVpc2l0ZVNldHRpbmdzLCB0aGlzLmZlYXR1cmVGbGFnTGltaXRhdGlvbnMpO1xuICAgIHRoaXMuZm9ybUFycmF5LnB1c2goZik7XG4gICAgZi5tYXJrQXNEaXJ0eSgpO1xuICB9XG5cbiAgYWRkU2VnbWVudENvbmRpdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tMaW1pdGF0aW9ucygpKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5zZWdtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWRkU2VnbWVudENvbmRpdGlvblJlcXVlc3RlZFdpdGhvdXRTZWdtZW50cy5lbWl0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGYgPSB0aGlzLmZvcm1HZW5lcmF0b3IuZ2VuZXJhdGVDb25kaXRpb25Gb3JtR3JvdXAoe1xuICAgICAgc2VnbWVudENvbmRpdGlvbjogeyBjb21wYXJhdG9yOiBTZWdtZW50Q29tcGFyYXRvci5Jc0luLCBzZWdtZW50SWQ6IG51bGwgfVxuICAgIH0sIHRoaXMuZmxhZ1N0YXRlLnJlYWRPbmx5LCB0aGlzLmZsYWdTdGF0ZS5wcmVyZXF1aXNpdGVTZXR0aW5ncywgdGhpcy5mZWF0dXJlRmxhZ0xpbWl0YXRpb25zKTtcbiAgICB0aGlzLmZvcm1BcnJheS5wdXNoKGYpO1xuICAgIGYubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIGFkZFByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrTGltaXRhdGlvbnMoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZiA9IG5ldyBGb3JtR3JvdXA8Q29uZGl0aW9uRm9ybT4oe1xuICAgICAgcHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbjogdGhpcy5mb3JtR2VuZXJhdG9yLmdlbmVyYXRlRW1wdHlQcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uRm9ybUdyb3VwKHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9ucylcbiAgICB9KTtcbiAgICB0aGlzLmZvcm1BcnJheS5wdXNoKGYpO1xuICAgIGYubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHJlbW92ZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3Qgc2hvdWxkRW1pdCA9ICEhdGhpcy5mb3JtQXJyYXkuY29udHJvbHNbaW5kZXhdLmNvbnRyb2xzLnByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb247XG4gICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICAgIHRoaXMuZm9ybUFycmF5Lm1hcmtBc0RpcnR5KCk7XG4gICAgaWYgKCF0aGlzLmZvcm1BcnJheS5jb250cm9scy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGFzdENvbmRpdGlvbkRlbGV0ZWQuZW1pdCgpO1xuICAgIH1cbiAgICBpZiAoc2hvdWxkRW1pdCkge1xuICAgICAgdGhpcy5wcmVyZXF1aXNpdGVDb25kaXRpb25DaGFuZ2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBjaGVja0xpbWl0YXRpb25zKCkge1xuICAgIGlmICh0aGlzLmZvcm1BcnJheS5jb250cm9scy5sZW5ndGggPj0gdGhpcy5mZWF0dXJlRmxhZ0xpbWl0YXRpb25zLm1heENvbmRpdGlvblBlclRhcmdldGluZ1J1bGVDb3VudCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25MaW1pdFJlYWNoZWQuZW1pdCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiAqbmdGb3I9XCJsZXQgY29uZGl0aW9uIG9mIGZvcm1BcnJheS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiY29uZGl0aW9uXCI+XG4gICAgPGFwcC11c2VyLWNvbmRpdGlvbiBjbGFzcz1cImdyb3dcIiAqbmdJZj1cImNvbmRpdGlvbi5jb250cm9scy51c2VyQ29uZGl0aW9uXCIgW3JlYWRPbmx5XT1cImZsYWdTdGF0ZS5yZWFkT25seVwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiY29uZGl0aW9uLmNvbnRyb2xzLnVzZXJDb25kaXRpb25cIiBbZmVhdHVyZUZsYWdMaW1pdGF0aW9uc109XCJmZWF0dXJlRmxhZ0xpbWl0YXRpb25zXCJcbiAgICAgICAgW3RhcmdldGluZ1J1bGVJbmRleF09XCJ0YXJnZXRpbmdSdWxlSW5kZXhcIiBbY29uZGl0aW9uSW5kZXhdPVwiaVwiPjwvYXBwLXVzZXItY29uZGl0aW9uPlxuICAgIDxhcHAtc2VnbWVudC1jb25kaXRpb24gY2xhc3M9XCJncm93XCIgKm5nSWY9XCJjb25kaXRpb24uY29udHJvbHMuc2VnbWVudENvbmRpdGlvblwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiY29uZGl0aW9uLmNvbnRyb2xzLnNlZ21lbnRDb25kaXRpb25cIiBbc2VnbWVudHNdPVwic2VnbWVudHNcIiBbY2FuTWFuYWdlU2VnbWVudHNdPVwiY2FuTWFuYWdlU2VnbWVudHNcIlxuICAgICAgICAoY3JlYXRlU2VnbWVudFJlcXVlc3RlZCk9XCJjcmVhdGVTZWdtZW50UmVxdWVzdGVkLmVtaXQoKVwiXG4gICAgICAgIChtYW5hZ2VTZWdtZW50c1JlcXVlc3RlZCk9XCJtYW5hZ2VTZWdtZW50c1JlcXVlc3RlZC5lbWl0KClcIiBbdGFyZ2V0aW5nUnVsZUluZGV4XT1cInRhcmdldGluZ1J1bGVJbmRleFwiXG4gICAgICAgIFtjb25kaXRpb25JbmRleF09XCJpXCI+PC9hcHAtc2VnbWVudC1jb25kaXRpb24+XG4gICAgPGFwcC1wcmVyZXF1aXNpdGUtZmxhZy1jb25kaXRpb24gY2xhc3M9XCJncm93XCIgKm5nSWY9XCJjb25kaXRpb24uY29udHJvbHMucHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvblwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiY29uZGl0aW9uLmNvbnRyb2xzLnByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb25cIlxuICAgICAgICBbcHJlcmVxdWlzaXRlU2V0dGluZ3NdPVwiZmxhZ1N0YXRlLnByZXJlcXVpc2l0ZVNldHRpbmdzXCJcbiAgICAgICAgKHByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQpPVwicHJlcmVxdWlzaXRlQ29uZGl0aW9uQ2hhbmdlZC5lbWl0KClcIlxuICAgICAgICBbZmVhdHVyZUZsYWdMaW1pdGF0aW9uc109XCJmZWF0dXJlRmxhZ0xpbWl0YXRpb25zXCIgW3RhcmdldGluZ1J1bGVJbmRleF09XCJ0YXJnZXRpbmdSdWxlSW5kZXhcIlxuICAgICAgICBbY29uZGl0aW9uSW5kZXhdPVwiaVwiPjwvYXBwLXByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLWJ1dHRvblwiICpuZ0lmPVwiZm9ybUFycmF5LmNvbnRyb2xzLmxlbmd0aCA+IDEgJiYgIWZsYWdTdGF0ZS5yZWFkT25seVwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gbWF0VG9vbHRpcD1cIlJlbW92ZSBjb25kaXRpb25cIiAoY2xpY2spPVwicmVtb3ZlKGkpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImFkZC1jb25kXCIgKm5nSWY9XCJmb3JtQXJyYXkuY29udHJvbHMubGVuZ3RoICYmICFmbGFnU3RhdGUucmVhZE9ubHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZW50ZXItc2lnblwiPjxtYXQtaWNvbj5zdWJkaXJlY3RvcnlfYXJyb3dfcmlnaHQ8L21hdC1pY29uPjwvZGl2PlxuICAgIDxkaXYgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFuZG1lbnVcIiBtYXRUb29sdGlwPVwiQWRkIEFORCBjb25kaXRpb25cIiBjbGFzcz1cImFkZC1idG4gYWRkLWFuZFwiPisgQU5EPC9kaXY+XG48L2Rpdj5cblxuPG1hdC1tZW51ICNhbmRtZW51IGNsYXNzPVwibWVudS1sb25nLXRleHQtYW5kXCI+XG4gICAgPGEgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYWRkVXNlckNvbmRpdGlvbigpXCI+PG1hdC1pY29uPnRyYWNrX2NoYW5nZXM8L21hdC1pY29uPkFkZCB1c2VyIGNvbmRpdGlvbjwvYT5cbiAgICA8YSBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhZGRTZWdtZW50Q29uZGl0aW9uKClcIj48bWF0LWljb24+cGllX2NoYXJ0PC9tYXQtaWNvbj5BZGQgc2VnbWVudCBjb25kaXRpb248L2E+XG4gICAgPGRpdiBtYXRUb29sdGlwPVwiVGhlcmUncyBubyBvdGhlciBmbGFnIGluIHRoZSBDb25maWcgdG8gc2VsZWN0IGFzIGEgcHJlcmVxdWlzaXRlLlwiXG4gICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiZmxhZ1N0YXRlLnByZXJlcXVpc2l0ZVNldHRpbmdzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGEgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYWRkUHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbigpXCIgW2Rpc2FibGVkXT1cIiFmbGFnU3RhdGUucHJlcmVxdWlzaXRlU2V0dGluZ3MubGVuZ3RoXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+YWNjb3VudF90cmVlPC9tYXQtaWNvbj5BZGQgZmxhZyBjb25kaXRpb24gKHByZXJlcXVpc2l0ZSlcbiAgICAgICAgPC9hPlxuICAgIDwvZGl2PlxuPC9tYXQtbWVudT4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL2NvbmRpdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvdGFyZ2V0aW5nLXJ1bGUvY29uZGl0aW9ucy9jb25kaXRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFFeUIsY0FBYyxFQUFZLGlCQUFpQixFQUMxRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7QUFXbEMsTUFBTSxPQUFPLG1CQUFtQjtJQWM5QixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVB0QywyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVDLDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsZ0RBQTJDLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRSx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLDZCQUF3QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUMsaUNBQTRCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUc1RCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUFFLE9BQU87UUFFckMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQztZQUN0RCxhQUFhLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUU7U0FDM0ksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFBRSxPQUFPO1FBRXJDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hELE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQztZQUN0RCxnQkFBZ0IsRUFBRSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtTQUMxRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUFFLE9BQU87UUFFckMsTUFBTSxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQWdCO1lBQ3JDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsK0NBQStDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1NBQzNILENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWE7UUFDbEIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQztRQUN2RixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztZQUNwRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQXJFVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw2bkJDaEJoQywrakZBb0NXOzsyRkRwQkUsbUJBQW1CO2tCQVQvQixTQUFTOytCQUNFLGdCQUFnQjtrRkFTakIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0ksc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFDRywyQ0FBMkM7c0JBQXBELE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHdCQUF3QjtzQkFBakMsTUFBTTtnQkFDRyw0QkFBNEI7c0JBQXJDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBJRmxhZ1N0YXRlLCBJRmVhdHVyZUZsYWdMaW1pdGF0aW9ucyxcbiAgQ29uZGl0aW9uRm9ybSwgRm9ybUdlbmVyYXRvciwgVXNlckNvbXBhcmF0b3IsIElTZWdtZW50LCBTZWdtZW50Q29tcGFyYXRvclxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi9ib290c3RyYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29uZGl0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25kaXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4uLy4uL2NvbXBvbmVudHMuc2NzcycsXG4gICAgJy4vY29uZGl0aW9ucy5jb21wb25lbnQuc2NzcycsXG4gICAgJy4uLy4uL2FkZC1idG4uc2NzcydcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb25kaXRpb25zQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZm9ybUFycmF5OiBGb3JtQXJyYXk8Rm9ybUdyb3VwPENvbmRpdGlvbkZvcm0+PjtcbiAgQElucHV0KCkgc2VnbWVudHM6IElTZWdtZW50W107XG4gIEBJbnB1dCgpIGZsYWdTdGF0ZTogSUZsYWdTdGF0ZTtcbiAgQElucHV0KCkgdGFyZ2V0aW5nUnVsZUluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNhbk1hbmFnZVNlZ21lbnRzOiBib29sZWFuO1xuICBASW5wdXQoKSBmZWF0dXJlRmxhZ0xpbWl0YXRpb25zOiBJRmVhdHVyZUZsYWdMaW1pdGF0aW9ucztcbiAgQE91dHB1dCgpIGNyZWF0ZVNlZ21lbnRSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBtYW5hZ2VTZWdtZW50c1JlcXVlc3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGFkZFNlZ21lbnRDb25kaXRpb25SZXF1ZXN0ZWRXaXRob3V0U2VnbWVudHMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBsYXN0Q29uZGl0aW9uRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHN1YnNjcmlwdGlvbkxpbWl0UmVhY2hlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtR2VuZXJhdG9yOiBGb3JtR2VuZXJhdG9yKSB7XG4gIH1cblxuICBhZGRVc2VyQ29uZGl0aW9uKCkge1xuICAgIGlmICghdGhpcy5jaGVja0xpbWl0YXRpb25zKCkpIHJldHVybjtcblxuICAgIGNvbnN0IGYgPSB0aGlzLmZvcm1HZW5lcmF0b3IuZ2VuZXJhdGVDb25kaXRpb25Gb3JtR3JvdXAoe1xuICAgICAgdXNlckNvbmRpdGlvbjogeyBjb21wYXJpc29uQXR0cmlidXRlOiAnSWRlbnRpZmllcicsIGNvbXBhcmF0b3I6IFVzZXJDb21wYXJhdG9yLlNlbnNpdGl2ZVRleHRFcXVhbHMsIGNvbXBhcmlzb25WYWx1ZTogeyBzdHJpbmdWYWx1ZTogJycgfSB9XG4gICAgfSwgdGhpcy5mbGFnU3RhdGUucmVhZE9ubHksIHRoaXMuZmxhZ1N0YXRlLnByZXJlcXVpc2l0ZVNldHRpbmdzLCB0aGlzLmZlYXR1cmVGbGFnTGltaXRhdGlvbnMpO1xuICAgIHRoaXMuZm9ybUFycmF5LnB1c2goZik7XG4gICAgZi5tYXJrQXNEaXJ0eSgpO1xuICB9XG5cbiAgYWRkU2VnbWVudENvbmRpdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tMaW1pdGF0aW9ucygpKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5zZWdtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWRkU2VnbWVudENvbmRpdGlvblJlcXVlc3RlZFdpdGhvdXRTZWdtZW50cy5lbWl0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGYgPSB0aGlzLmZvcm1HZW5lcmF0b3IuZ2VuZXJhdGVDb25kaXRpb25Gb3JtR3JvdXAoe1xuICAgICAgc2VnbWVudENvbmRpdGlvbjogeyBjb21wYXJhdG9yOiBTZWdtZW50Q29tcGFyYXRvci5Jc0luLCBzZWdtZW50SWQ6IG51bGwgfVxuICAgIH0sIHRoaXMuZmxhZ1N0YXRlLnJlYWRPbmx5LCB0aGlzLmZsYWdTdGF0ZS5wcmVyZXF1aXNpdGVTZXR0aW5ncywgdGhpcy5mZWF0dXJlRmxhZ0xpbWl0YXRpb25zKTtcbiAgICB0aGlzLmZvcm1BcnJheS5wdXNoKGYpO1xuICAgIGYubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIGFkZFByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrTGltaXRhdGlvbnMoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZiA9IG5ldyBGb3JtR3JvdXA8Q29uZGl0aW9uRm9ybT4oe1xuICAgICAgcHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbjogdGhpcy5mb3JtR2VuZXJhdG9yLmdlbmVyYXRlRW1wdHlQcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uRm9ybUdyb3VwKHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9ucylcbiAgICB9KTtcbiAgICB0aGlzLmZvcm1BcnJheS5wdXNoKGYpO1xuICAgIGYubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHJlbW92ZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3Qgc2hvdWxkRW1pdCA9ICEhdGhpcy5mb3JtQXJyYXkuY29udHJvbHNbaW5kZXhdLmNvbnRyb2xzLnByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb247XG4gICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICAgIHRoaXMuZm9ybUFycmF5Lm1hcmtBc0RpcnR5KCk7XG4gICAgaWYgKCF0aGlzLmZvcm1BcnJheS5jb250cm9scy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGFzdENvbmRpdGlvbkRlbGV0ZWQuZW1pdCgpO1xuICAgIH1cbiAgICBpZiAoc2hvdWxkRW1pdCkge1xuICAgICAgdGhpcy5wcmVyZXF1aXNpdGVDb25kaXRpb25DaGFuZ2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBjaGVja0xpbWl0YXRpb25zKCkge1xuICAgIGlmICh0aGlzLmZvcm1BcnJheS5jb250cm9scy5sZW5ndGggPj0gdGhpcy5mZWF0dXJlRmxhZ0xpbWl0YXRpb25zLm1heENvbmRpdGlvblBlclRhcmdldGluZ1J1bGVDb3VudCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25MaW1pdFJlYWNoZWQuZW1pdCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiAqbmdGb3I9XCJsZXQgY29uZGl0aW9uIG9mIGZvcm1BcnJheS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiY29uZGl0aW9uXCI+XG4gICAgPGFwcC11c2VyLWNvbmRpdGlvbiBjbGFzcz1cImdyb3dcIiAqbmdJZj1cImNvbmRpdGlvbi5jb250cm9scy51c2VyQ29uZGl0aW9uXCIgW3JlYWRPbmx5XT1cImZsYWdTdGF0ZS5yZWFkT25seVwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiY29uZGl0aW9uLmNvbnRyb2xzLnVzZXJDb25kaXRpb25cIiBbZmVhdHVyZUZsYWdMaW1pdGF0aW9uc109XCJmZWF0dXJlRmxhZ0xpbWl0YXRpb25zXCJcbiAgICAgICAgW3RhcmdldGluZ1J1bGVJbmRleF09XCJ0YXJnZXRpbmdSdWxlSW5kZXhcIiBbY29uZGl0aW9uSW5kZXhdPVwiaVwiPjwvYXBwLXVzZXItY29uZGl0aW9uPlxuICAgIDxhcHAtc2VnbWVudC1jb25kaXRpb24gY2xhc3M9XCJncm93XCIgKm5nSWY9XCJjb25kaXRpb24uY29udHJvbHMuc2VnbWVudENvbmRpdGlvblwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiY29uZGl0aW9uLmNvbnRyb2xzLnNlZ21lbnRDb25kaXRpb25cIiBbc2VnbWVudHNdPVwic2VnbWVudHNcIiBbY2FuTWFuYWdlU2VnbWVudHNdPVwiY2FuTWFuYWdlU2VnbWVudHNcIlxuICAgICAgICAoY3JlYXRlU2VnbWVudFJlcXVlc3RlZCk9XCJjcmVhdGVTZWdtZW50UmVxdWVzdGVkLmVtaXQoKVwiXG4gICAgICAgIChtYW5hZ2VTZWdtZW50c1JlcXVlc3RlZCk9XCJtYW5hZ2VTZWdtZW50c1JlcXVlc3RlZC5lbWl0KClcIiBbdGFyZ2V0aW5nUnVsZUluZGV4XT1cInRhcmdldGluZ1J1bGVJbmRleFwiXG4gICAgICAgIFtjb25kaXRpb25JbmRleF09XCJpXCI+PC9hcHAtc2VnbWVudC1jb25kaXRpb24+XG4gICAgPGFwcC1wcmVyZXF1aXNpdGUtZmxhZy1jb25kaXRpb24gY2xhc3M9XCJncm93XCIgKm5nSWY9XCJjb25kaXRpb24uY29udHJvbHMucHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvblwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiY29uZGl0aW9uLmNvbnRyb2xzLnByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb25cIlxuICAgICAgICBbcHJlcmVxdWlzaXRlU2V0dGluZ3NdPVwiZmxhZ1N0YXRlLnByZXJlcXVpc2l0ZVNldHRpbmdzXCJcbiAgICAgICAgKHByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQpPVwicHJlcmVxdWlzaXRlQ29uZGl0aW9uQ2hhbmdlZC5lbWl0KClcIlxuICAgICAgICBbZmVhdHVyZUZsYWdMaW1pdGF0aW9uc109XCJmZWF0dXJlRmxhZ0xpbWl0YXRpb25zXCIgW3RhcmdldGluZ1J1bGVJbmRleF09XCJ0YXJnZXRpbmdSdWxlSW5kZXhcIlxuICAgICAgICBbY29uZGl0aW9uSW5kZXhdPVwiaVwiPjwvYXBwLXByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLWJ1dHRvblwiICpuZ0lmPVwiZm9ybUFycmF5LmNvbnRyb2xzLmxlbmd0aCA+IDEgJiYgIWZsYWdTdGF0ZS5yZWFkT25seVwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gbWF0VG9vbHRpcD1cIlJlbW92ZSBjb25kaXRpb25cIiAoY2xpY2spPVwicmVtb3ZlKGkpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImFkZC1jb25kXCIgKm5nSWY9XCJmb3JtQXJyYXkuY29udHJvbHMubGVuZ3RoICYmICFmbGFnU3RhdGUucmVhZE9ubHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZW50ZXItc2lnblwiPjxtYXQtaWNvbj5zdWJkaXJlY3RvcnlfYXJyb3dfcmlnaHQ8L21hdC1pY29uPjwvZGl2PlxuICAgIDxkaXYgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFuZG1lbnVcIiBtYXRUb29sdGlwPVwiQWRkIEFORCBjb25kaXRpb25cIiBjbGFzcz1cImFkZC1idG4gYWRkLWFuZFwiPisgQU5EPC9kaXY+XG48L2Rpdj5cblxuPG1hdC1tZW51ICNhbmRtZW51IGNsYXNzPVwibWVudS1sb25nLXRleHQtYW5kXCI+XG4gICAgPGEgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYWRkVXNlckNvbmRpdGlvbigpXCI+PG1hdC1pY29uPnRyYWNrX2NoYW5nZXM8L21hdC1pY29uPkFkZCB1c2VyIGNvbmRpdGlvbjwvYT5cbiAgICA8YSBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhZGRTZWdtZW50Q29uZGl0aW9uKClcIj48bWF0LWljb24+cGllX2NoYXJ0PC9tYXQtaWNvbj5BZGQgc2VnbWVudCBjb25kaXRpb248L2E+XG4gICAgPGRpdiBtYXRUb29sdGlwPVwiVGhlcmUncyBubyBvdGhlciBmbGFnIGluIHRoZSBDb25maWcgdG8gc2VsZWN0IGFzIGEgcHJlcmVxdWlzaXRlLlwiXG4gICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiZmxhZ1N0YXRlLnByZXJlcXVpc2l0ZVNldHRpbmdzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGEgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYWRkUHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbigpXCIgW2Rpc2FibGVkXT1cIiFmbGFnU3RhdGUucHJlcmVxdWlzaXRlU2V0dGluZ3MubGVuZ3RoXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+YWNjb3VudF90cmVlPC9tYXQtaWNvbj5BZGQgZmxhZyBjb25kaXRpb24gKHByZXJlcXVpc2l0ZSlcbiAgICAgICAgPC9hPlxuICAgIDwvZGl2PlxuPC9tYXQtbWVudT4iXX0=
@@ -53,10 +53,10 @@ export class PrerequisiteFlagConditionComponent {
53
53
  throw new Error('Invalid SettingType');
54
54
  }
55
55
  }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: PrerequisiteFlagConditionComponent, deps: [{ token: i1.FormGenerator }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: PrerequisiteFlagConditionComponent, selector: "app-prerequisite-flag-condition", inputs: { targetingRuleIndex: "targetingRuleIndex", conditionIndex: "conditionIndex", formGroup: "formGroup", prerequisiteSettings: "prerequisiteSettings", featureFlagLimitations: "featureFlagLimitations" }, outputs: { prerequisiteConditionChanged: "prerequisiteConditionChanged" }, ngImport: i0, template: "<div class=\"targeting-rule-line smallest-form-field\">\n <div class=\"explanation-wrapper\">\n <app-condition-chip [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"conditionIndex\"></app-condition-chip>\n <div class=\"explanation\"><a href=\"https://configcat.com/docs/targeting/targeting-rule/flag-condition/\"\n target=\"_blank\" rel=\"noopener noreferrer\" class=\"user-link\">flag</a></div>\n </div>\n <div class=\"wrapper-group\">\n <div class=\"targeting-rule-component pad-right\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.prerequisiteSettingId\"\n (change)=\"prerequisiteSettingChanged()\" matTooltip=\"Prerequisite feature flag or setting key\">\n <option [ngValue]=\"null\" disabled selected hidden *ngIf=\"prerequisiteSettings.length\">Select feature\n flag ...</option>\n <option *ngFor=\"let setting of prerequisiteSettings\" [ngValue]=\"setting.settingId\">\n {{setting.key}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.prerequisiteSettingId.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.prerequisiteSettingId)}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"targeting-rule-component pad-right\" *ngIf=\"prerequisiteSettingType === SettingType.Boolean\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.comparator\"\n matTooltip=\"Prerequisite feature flag comparison value\">\n <option *ngFor=\"let prerequisiteComparator of booleanPrerequisiteComparators\"\n [ngValue]=\"prerequisiteComparator.value\">\n {{prerequisiteComparator.label}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.comparator.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.comparator)}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"targeting-rule-component pad-right\" *ngIf=\"prerequisiteSettingType !== SettingType.Boolean\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.comparator\" matTooltip=\"Comparator\">\n <option *ngFor=\"let prerequisiteComparator of prerequisiteComparators\"\n [ngValue]=\"prerequisiteComparator.value\">\n {{prerequisiteComparator.label}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.comparator.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.comparator)}}\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <app-feature-flag-value class=\"wrapper-group grow\" *ngIf=\"prerequisiteSettingType !== SettingType.Boolean\"\n tooltip=\"Prerequisite feature flag comparison value\"\n [formGroup]=\"formGroup.controls.prerequisiteComparisonValue\" [isPrerequisite]=\"true\"\n [featureFlagLimitations]=\"featureFlagLimitations\"></app-feature-flag-value>\n</div>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", "select.ng-invalid{color:#00000061}select.ng-invalid option{color:#000}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i7.FeatureFlagValueComponent, selector: "app-feature-flag-value", inputs: ["formGroup", "flagState", "featureFlagLimitations", "isPrerequisite", "tooltip"] }, { kind: "component", type: i8.ConditionChipComponent, selector: "app-condition-chip", inputs: ["targetingRuleIndex", "conditionIndex"] }] }); }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrerequisiteFlagConditionComponent, deps: [{ token: i1.FormGenerator }], target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: PrerequisiteFlagConditionComponent, selector: "app-prerequisite-flag-condition", inputs: { targetingRuleIndex: "targetingRuleIndex", conditionIndex: "conditionIndex", formGroup: "formGroup", prerequisiteSettings: "prerequisiteSettings", featureFlagLimitations: "featureFlagLimitations" }, outputs: { prerequisiteConditionChanged: "prerequisiteConditionChanged" }, ngImport: i0, template: "<div class=\"targeting-rule-line smallest-form-field\">\n <div class=\"explanation-wrapper\">\n <app-condition-chip [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"conditionIndex\"></app-condition-chip>\n <div class=\"explanation\"><a href=\"https://configcat.com/docs/targeting/targeting-rule/flag-condition/\"\n target=\"_blank\" rel=\"noopener noreferrer\" class=\"user-link\">flag</a></div>\n </div>\n <div class=\"wrapper-group\">\n <div class=\"targeting-rule-component pad-right\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.prerequisiteSettingId\"\n (change)=\"prerequisiteSettingChanged()\" matTooltip=\"Prerequisite feature flag or setting key\">\n <option [ngValue]=\"null\" disabled selected hidden *ngIf=\"prerequisiteSettings.length\">Select feature\n flag ...</option>\n <option *ngFor=\"let setting of prerequisiteSettings\" [ngValue]=\"setting.settingId\">\n {{setting.key}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.prerequisiteSettingId.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.prerequisiteSettingId)}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"targeting-rule-component pad-right\" *ngIf=\"prerequisiteSettingType === SettingType.Boolean\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.comparator\"\n matTooltip=\"Prerequisite feature flag comparison value\">\n <option *ngFor=\"let prerequisiteComparator of booleanPrerequisiteComparators\"\n [ngValue]=\"prerequisiteComparator.value\">\n {{prerequisiteComparator.label}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.comparator.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.comparator)}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"targeting-rule-component pad-right\" *ngIf=\"prerequisiteSettingType !== SettingType.Boolean\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.comparator\" matTooltip=\"Comparator\">\n <option *ngFor=\"let prerequisiteComparator of prerequisiteComparators\"\n [ngValue]=\"prerequisiteComparator.value\">\n {{prerequisiteComparator.label}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.comparator.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.comparator)}}\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <app-feature-flag-value class=\"wrapper-group grow\" *ngIf=\"prerequisiteSettingType !== SettingType.Boolean\"\n tooltip=\"Prerequisite feature flag comparison value\"\n [formGroup]=\"formGroup.controls.prerequisiteComparisonValue\" [isPrerequisite]=\"true\"\n [featureFlagLimitations]=\"featureFlagLimitations\"></app-feature-flag-value>\n</div>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", "select.ng-invalid{color:#00000061}select.ng-invalid option{color:#000}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i7.FeatureFlagValueComponent, selector: "app-feature-flag-value", inputs: ["formGroup", "flagState", "featureFlagLimitations", "isPrerequisite", "tooltip"] }, { kind: "component", type: i8.ConditionChipComponent, selector: "app-condition-chip", inputs: ["targetingRuleIndex", "conditionIndex"] }] }); }
58
58
  }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: PrerequisiteFlagConditionComponent, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrerequisiteFlagConditionComponent, decorators: [{
60
60
  type: Component,
61
61
  args: [{ selector: 'app-prerequisite-flag-condition', template: "<div class=\"targeting-rule-line smallest-form-field\">\n <div class=\"explanation-wrapper\">\n <app-condition-chip [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"conditionIndex\"></app-condition-chip>\n <div class=\"explanation\"><a href=\"https://configcat.com/docs/targeting/targeting-rule/flag-condition/\"\n target=\"_blank\" rel=\"noopener noreferrer\" class=\"user-link\">flag</a></div>\n </div>\n <div class=\"wrapper-group\">\n <div class=\"targeting-rule-component pad-right\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.prerequisiteSettingId\"\n (change)=\"prerequisiteSettingChanged()\" matTooltip=\"Prerequisite feature flag or setting key\">\n <option [ngValue]=\"null\" disabled selected hidden *ngIf=\"prerequisiteSettings.length\">Select feature\n flag ...</option>\n <option *ngFor=\"let setting of prerequisiteSettings\" [ngValue]=\"setting.settingId\">\n {{setting.key}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.prerequisiteSettingId.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.prerequisiteSettingId)}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"targeting-rule-component pad-right\" *ngIf=\"prerequisiteSettingType === SettingType.Boolean\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.comparator\"\n matTooltip=\"Prerequisite feature flag comparison value\">\n <option *ngFor=\"let prerequisiteComparator of booleanPrerequisiteComparators\"\n [ngValue]=\"prerequisiteComparator.value\">\n {{prerequisiteComparator.label}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.comparator.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.comparator)}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"targeting-rule-component pad-right\" *ngIf=\"prerequisiteSettingType !== SettingType.Boolean\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.comparator\" matTooltip=\"Comparator\">\n <option *ngFor=\"let prerequisiteComparator of prerequisiteComparators\"\n [ngValue]=\"prerequisiteComparator.value\">\n {{prerequisiteComparator.label}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.comparator.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.comparator)}}\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <app-feature-flag-value class=\"wrapper-group grow\" *ngIf=\"prerequisiteSettingType !== SettingType.Boolean\"\n tooltip=\"Prerequisite feature flag comparison value\"\n [formGroup]=\"formGroup.controls.prerequisiteComparisonValue\" [isPrerequisite]=\"true\"\n [featureFlagLimitations]=\"featureFlagLimitations\"></app-feature-flag-value>\n</div>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", "select.ng-invalid{color:#00000061}select.ng-invalid option{color:#000}\n"] }]
62
62
  }], ctorParameters: () => [{ type: i1.FormGenerator }], propDecorators: { targetingRuleIndex: [{
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
72
72
  }], prerequisiteConditionChanged: [{
73
73
  type: Output
74
74
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVxdWlzaXRlLWZsYWctY29uZGl0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3RhcmdldGluZy1ydWxlL2NvbmRpdGlvbnMvcHJlcmVxdWlzaXRlLWZsYWctY29uZGl0aW9uL3ByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL3ByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbi9wcmVyZXF1aXNpdGUtZmxhZy1jb25kaXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQ0wsVUFBVSxFQUFFLHNCQUFzQixFQUVOLFdBQVcsRUFDeEMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQVVyQyxNQUFNLE9BQU8sa0NBQWtDO0lBc0I3QyxZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWhCdEMsaUNBQTRCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1RCxnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUcxQixlQUFVLEdBQUcsVUFBVSxDQUFDO1FBRXhCLDRCQUF1QixHQUFHO1lBQ3hCLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ3pELEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO1NBQ3BFLENBQUM7UUFFRixtQ0FBOEIsR0FBRztZQUMvQixFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUN4RCxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtTQUNoRSxDQUFDO0lBRWtELENBQUM7SUFFckQsUUFBUTtRQUNOLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pJLE9BQU8sbUJBQW1CLEVBQUUsV0FBVyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDakUsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUNoRSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JELElBQUksMEJBQTBCLEtBQUssSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsNkJBQTZCLEVBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FDMUgsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsV0FBd0I7UUFDM0MsUUFBUSxXQUFXLEVBQUUsQ0FBQztZQUNwQixLQUFLLFdBQVcsQ0FBQyxPQUFPO2dCQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzdCLEtBQUssV0FBVyxDQUFDLE1BQU07Z0JBQ3JCLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDN0IsS0FBSyxXQUFXLENBQUMsR0FBRztnQkFDbEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN6QixLQUFLLFdBQVcsQ0FBQyxNQUFNO2dCQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzVCO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQzsrR0EzRFUsa0NBQWtDO21HQUFsQyxrQ0FBa0Msa1dDaEIvQywwaEhBdURNOzs0RkR2Q08sa0NBQWtDO2tCQVI5QyxTQUFTOytCQUNFLGlDQUFpQztrRkFRbEMsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNJLDRCQUE0QjtzQkFBckMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEZvcm1IZWxwZXIsIFByZXJlcXVpc2l0ZUNvbXBhcmF0b3IsIElGZWF0dXJlRmxhZ0xpbWl0YXRpb25zLFxuICBQcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uRm9ybSwgSVByZXJlcXVpc2l0ZVNldHRpbmcsXG4gIElWYWx1ZU1vZGVsLCBGb3JtR2VuZXJhdG9yLCBTZXR0aW5nVHlwZVxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9ib290c3RyYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcHJlcmVxdWlzaXRlLWZsYWctY29uZGl0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuLi8uLi8uLi9jb21wb25lbnRzLnNjc3MnLFxuICAgICcuL3ByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbi5jb21wb25lbnQuc2NzcydcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdGFyZ2V0aW5nUnVsZUluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNvbmRpdGlvbkluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cDogRm9ybUdyb3VwPFByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb25Gb3JtPjtcbiAgQElucHV0KCkgcHJlcmVxdWlzaXRlU2V0dGluZ3M6IElQcmVyZXF1aXNpdGVTZXR0aW5nW107XG4gIEBJbnB1dCgpIGZlYXR1cmVGbGFnTGltaXRhdGlvbnM6IElGZWF0dXJlRmxhZ0xpbWl0YXRpb25zO1xuICBAT3V0cHV0KCkgcHJlcmVxdWlzaXRlQ29uZGl0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgU2V0dGluZ1R5cGUgPSBTZXR0aW5nVHlwZTtcbiAgcHJlcmVxdWlzaXRlU2V0dGluZ1R5cGU6IFNldHRpbmdUeXBlO1xuXG4gIEZvcm1IZWxwZXIgPSBGb3JtSGVscGVyO1xuXG4gIHByZXJlcXVpc2l0ZUNvbXBhcmF0b3JzID0gW1xuICAgIHsgdmFsdWU6IFByZXJlcXVpc2l0ZUNvbXBhcmF0b3IuRXF1YWxzLCBsYWJlbDogJ0VRVUFMUycgfSxcbiAgICB7IHZhbHVlOiBQcmVyZXF1aXNpdGVDb21wYXJhdG9yLkRvZXNOb3RFcXVhbCwgbGFiZWw6ICdOT1QgRVFVQUxTJyB9LFxuICBdO1xuXG4gIGJvb2xlYW5QcmVyZXF1aXNpdGVDb21wYXJhdG9ycyA9IFtcbiAgICB7IHZhbHVlOiBQcmVyZXF1aXNpdGVDb21wYXJhdG9yLkVxdWFscywgbGFiZWw6ICdJUyBPTicgfSxcbiAgICB7IHZhbHVlOiBQcmVyZXF1aXNpdGVDb21wYXJhdG9yLkRvZXNOb3RFcXVhbCwgbGFiZWw6ICdJUyBPRkYnIH0sXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtR2VuZXJhdG9yOiBGb3JtR2VuZXJhdG9yKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnByZXJlcXVpc2l0ZVNldHRpbmdUeXBlID0gdGhpcy5nZXRTZXR0aW5nVHlwZSgpO1xuICB9XG5cbiAgZ2V0U2V0dGluZ1R5cGUoKSB7XG4gICAgY29uc3QgcHJlcmVxdWlzaXRlU2V0dGluZyA9IHRoaXMucHJlcmVxdWlzaXRlU2V0dGluZ3MuZmlsdGVyKHMgPT4gcy5zZXR0aW5nSWQgPT0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMucHJlcmVxdWlzaXRlU2V0dGluZ0lkLnZhbHVlKVswXTtcbiAgICByZXR1cm4gcHJlcmVxdWlzaXRlU2V0dGluZz8uc2V0dGluZ1R5cGUgPz8gU2V0dGluZ1R5cGUuQm9vbGVhbjtcbiAgfVxuXG4gIHByZXJlcXVpc2l0ZVNldHRpbmdDaGFuZ2VkKCkge1xuICAgIGNvbnN0IG9sZFByZXJlcXVpc2l0ZVNldHRpbmdUeXBlID0gdGhpcy5wcmVyZXF1aXNpdGVTZXR0aW5nVHlwZTtcbiAgICB0aGlzLnByZXJlcXVpc2l0ZVNldHRpbmdUeXBlID0gdGhpcy5nZXRTZXR0aW5nVHlwZSgpO1xuICAgIGlmIChvbGRQcmVyZXF1aXNpdGVTZXR0aW5nVHlwZSAhPT0gdGhpcy5wcmVyZXF1aXNpdGVTZXR0aW5nVHlwZSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuc2V0Q29udHJvbCgncHJlcmVxdWlzaXRlQ29tcGFyaXNvblZhbHVlJyxcbiAgICAgICAgdGhpcy5mb3JtR2VuZXJhdG9yLmdlbmVyYXRlVmFsdWVGb3JtR3JvdXAoXG4gICAgICAgICAgdGhpcy5nZXREZWZhdWx0VmFsdWVNb2RlbCh0aGlzLnByZXJlcXVpc2l0ZVNldHRpbmdUeXBlKSwgdGhpcy5wcmVyZXF1aXNpdGVTZXR0aW5nVHlwZSwgZmFsc2UsIHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9uc1xuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQuZW1pdCgpO1xuICB9XG5cbiAgZ2V0RGVmYXVsdFZhbHVlTW9kZWwoc2V0dGluZ1R5cGU6IFNldHRpbmdUeXBlKTogSVZhbHVlTW9kZWwge1xuICAgIHN3aXRjaCAoc2V0dGluZ1R5cGUpIHtcbiAgICAgIGNhc2UgU2V0dGluZ1R5cGUuQm9vbGVhbjpcbiAgICAgICAgcmV0dXJuIHsgYm9vbFZhbHVlOiB0cnVlIH07XG4gICAgICBjYXNlIFNldHRpbmdUeXBlLlN0cmluZzpcbiAgICAgICAgcmV0dXJuIHsgc3RyaW5nVmFsdWU6ICcnIH07XG4gICAgICBjYXNlIFNldHRpbmdUeXBlLkludDpcbiAgICAgICAgcmV0dXJuIHsgaW50VmFsdWU6IDAgfTtcbiAgICAgIGNhc2UgU2V0dGluZ1R5cGUuRG91YmxlOlxuICAgICAgICByZXR1cm4geyBkb3VibGVWYWx1ZTogMCB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFNldHRpbmdUeXBlJyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFyZ2V0aW5nLXJ1bGUtbGluZSBzbWFsbGVzdC1mb3JtLWZpZWxkXCI+XG4gICAgPGRpdiBjbGFzcz1cImV4cGxhbmF0aW9uLXdyYXBwZXJcIj5cbiAgICAgICAgPGFwcC1jb25kaXRpb24tY2hpcCBbdGFyZ2V0aW5nUnVsZUluZGV4XT1cInRhcmdldGluZ1J1bGVJbmRleFwiXG4gICAgICAgICAgICBbY29uZGl0aW9uSW5kZXhdPVwiY29uZGl0aW9uSW5kZXhcIj48L2FwcC1jb25kaXRpb24tY2hpcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV4cGxhbmF0aW9uXCI+PGEgaHJlZj1cImh0dHBzOi8vY29uZmlnY2F0LmNvbS9kb2NzL3RhcmdldGluZy90YXJnZXRpbmctcnVsZS9mbGFnLWNvbmRpdGlvbi9cIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBjbGFzcz1cInVzZXItbGlua1wiPmZsYWc8L2E+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIndyYXBwZXItZ3JvdXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLWNvbXBvbmVudCBwYWQtcmlnaHRcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IG1hdE5hdGl2ZUNvbnRyb2wgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5wcmVyZXF1aXNpdGVTZXR0aW5nSWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInByZXJlcXVpc2l0ZVNldHRpbmdDaGFuZ2VkKClcIiBtYXRUb29sdGlwPVwiUHJlcmVxdWlzaXRlIGZlYXR1cmUgZmxhZyBvciBzZXR0aW5nIGtleVwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIiBkaXNhYmxlZCBzZWxlY3RlZCBoaWRkZW4gKm5nSWY9XCJwcmVyZXF1aXNpdGVTZXR0aW5ncy5sZW5ndGhcIj5TZWxlY3QgZmVhdHVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgZmxhZyAuLi48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc2V0dGluZyBvZiBwcmVyZXF1aXNpdGVTZXR0aW5nc1wiIFtuZ1ZhbHVlXT1cInNldHRpbmcuc2V0dGluZ0lkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3NldHRpbmcua2V5fX1cbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Hcm91cC5jb250cm9scy5wcmVyZXF1aXNpdGVTZXR0aW5nSWQuaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICB7e0Zvcm1IZWxwZXIuZ2V0RXJyb3JNZXNzYWdlKGZvcm1Hcm91cC5jb250cm9scy5wcmVyZXF1aXNpdGVTZXR0aW5nSWQpfX1cbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0aW5nLXJ1bGUtY29tcG9uZW50IHBhZC1yaWdodFwiICpuZ0lmPVwicHJlcmVxdWlzaXRlU2V0dGluZ1R5cGUgPT09IFNldHRpbmdUeXBlLkJvb2xlYW5cIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IG1hdE5hdGl2ZUNvbnRyb2wgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5jb21wYXJhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlByZXJlcXVpc2l0ZSBmZWF0dXJlIGZsYWcgY29tcGFyaXNvbiB2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBwcmVyZXF1aXNpdGVDb21wYXJhdG9yIG9mIGJvb2xlYW5QcmVyZXF1aXNpdGVDb21wYXJhdG9yc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJwcmVyZXF1aXNpdGVDb21wYXJhdG9yLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3ByZXJlcXVpc2l0ZUNvbXBhcmF0b3IubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmNvbXBhcmF0b3IuaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICB7e0Zvcm1IZWxwZXIuZ2V0RXJyb3JNZXNzYWdlKGZvcm1Hcm91cC5jb250cm9scy5jb21wYXJhdG9yKX19XG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLWNvbXBvbmVudCBwYWQtcmlnaHRcIiAqbmdJZj1cInByZXJlcXVpc2l0ZVNldHRpbmdUeXBlICE9PSBTZXR0aW5nVHlwZS5Cb29sZWFuXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCBtYXROYXRpdmVDb250cm9sIFtmb3JtQ29udHJvbF09XCJmb3JtR3JvdXAuY29udHJvbHMuY29tcGFyYXRvclwiIG1hdFRvb2x0aXA9XCJDb21wYXJhdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHByZXJlcXVpc2l0ZUNvbXBhcmF0b3Igb2YgcHJlcmVxdWlzaXRlQ29tcGFyYXRvcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwicHJlcmVxdWlzaXRlQ29tcGFyYXRvci52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3twcmVyZXF1aXNpdGVDb21wYXJhdG9yLmxhYmVsfX1cbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Hcm91cC5jb250cm9scy5jb21wYXJhdG9yLmludmFsaWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3tGb3JtSGVscGVyLmdldEVycm9yTWVzc2FnZShmb3JtR3JvdXAuY29udHJvbHMuY29tcGFyYXRvcil9fVxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1mZWF0dXJlLWZsYWctdmFsdWUgY2xhc3M9XCJ3cmFwcGVyLWdyb3VwIGdyb3dcIiAqbmdJZj1cInByZXJlcXVpc2l0ZVNldHRpbmdUeXBlICE9PSBTZXR0aW5nVHlwZS5Cb29sZWFuXCJcbiAgICAgICAgdG9vbHRpcD1cIlByZXJlcXVpc2l0ZSBmZWF0dXJlIGZsYWcgY29tcGFyaXNvbiB2YWx1ZVwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwLmNvbnRyb2xzLnByZXJlcXVpc2l0ZUNvbXBhcmlzb25WYWx1ZVwiIFtpc1ByZXJlcXVpc2l0ZV09XCJ0cnVlXCJcbiAgICAgICAgW2ZlYXR1cmVGbGFnTGltaXRhdGlvbnNdPVwiZmVhdHVyZUZsYWdMaW1pdGF0aW9uc1wiPjwvYXBwLWZlYXR1cmUtZmxhZy12YWx1ZT5cbjwvZGl2PiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVxdWlzaXRlLWZsYWctY29uZGl0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL3RhcmdldGluZy1ydWxlL2NvbmRpdGlvbnMvcHJlcmVxdWlzaXRlLWZsYWctY29uZGl0aW9uL3ByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL3ByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbi9wcmVyZXF1aXNpdGUtZmxhZy1jb25kaXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQ0wsVUFBVSxFQUFFLHNCQUFzQixFQUVOLFdBQVcsRUFDeEMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQVVyQyxNQUFNLE9BQU8sa0NBQWtDO0lBc0I3QyxZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWhCdEMsaUNBQTRCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1RCxnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUcxQixlQUFVLEdBQUcsVUFBVSxDQUFDO1FBRXhCLDRCQUF1QixHQUFHO1lBQ3hCLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ3pELEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO1NBQ3BFLENBQUM7UUFFRixtQ0FBOEIsR0FBRztZQUMvQixFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUN4RCxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtTQUNoRSxDQUFDO0lBRWtELENBQUM7SUFFckQsUUFBUTtRQUNOLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pJLE9BQU8sbUJBQW1CLEVBQUUsV0FBVyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDakUsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUNoRSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JELElBQUksMEJBQTBCLEtBQUssSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsNkJBQTZCLEVBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FDMUgsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsV0FBd0I7UUFDM0MsUUFBUSxXQUFXLEVBQUUsQ0FBQztZQUNwQixLQUFLLFdBQVcsQ0FBQyxPQUFPO2dCQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzdCLEtBQUssV0FBVyxDQUFDLE1BQU07Z0JBQ3JCLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDN0IsS0FBSyxXQUFXLENBQUMsR0FBRztnQkFDbEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN6QixLQUFLLFdBQVcsQ0FBQyxNQUFNO2dCQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzVCO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQzs4R0EzRFUsa0NBQWtDO2tHQUFsQyxrQ0FBa0Msa1dDaEIvQywwaEhBdURNOzsyRkR2Q08sa0NBQWtDO2tCQVI5QyxTQUFTOytCQUNFLGlDQUFpQztrRkFRbEMsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNJLDRCQUE0QjtzQkFBckMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEZvcm1IZWxwZXIsIFByZXJlcXVpc2l0ZUNvbXBhcmF0b3IsIElGZWF0dXJlRmxhZ0xpbWl0YXRpb25zLFxuICBQcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uRm9ybSwgSVByZXJlcXVpc2l0ZVNldHRpbmcsXG4gIElWYWx1ZU1vZGVsLCBGb3JtR2VuZXJhdG9yLCBTZXR0aW5nVHlwZVxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9ib290c3RyYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcHJlcmVxdWlzaXRlLWZsYWctY29uZGl0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuLi8uLi8uLi9jb21wb25lbnRzLnNjc3MnLFxuICAgICcuL3ByZXJlcXVpc2l0ZS1mbGFnLWNvbmRpdGlvbi5jb21wb25lbnQuc2NzcydcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdGFyZ2V0aW5nUnVsZUluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNvbmRpdGlvbkluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cDogRm9ybUdyb3VwPFByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb25Gb3JtPjtcbiAgQElucHV0KCkgcHJlcmVxdWlzaXRlU2V0dGluZ3M6IElQcmVyZXF1aXNpdGVTZXR0aW5nW107XG4gIEBJbnB1dCgpIGZlYXR1cmVGbGFnTGltaXRhdGlvbnM6IElGZWF0dXJlRmxhZ0xpbWl0YXRpb25zO1xuICBAT3V0cHV0KCkgcHJlcmVxdWlzaXRlQ29uZGl0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgU2V0dGluZ1R5cGUgPSBTZXR0aW5nVHlwZTtcbiAgcHJlcmVxdWlzaXRlU2V0dGluZ1R5cGU6IFNldHRpbmdUeXBlO1xuXG4gIEZvcm1IZWxwZXIgPSBGb3JtSGVscGVyO1xuXG4gIHByZXJlcXVpc2l0ZUNvbXBhcmF0b3JzID0gW1xuICAgIHsgdmFsdWU6IFByZXJlcXVpc2l0ZUNvbXBhcmF0b3IuRXF1YWxzLCBsYWJlbDogJ0VRVUFMUycgfSxcbiAgICB7IHZhbHVlOiBQcmVyZXF1aXNpdGVDb21wYXJhdG9yLkRvZXNOb3RFcXVhbCwgbGFiZWw6ICdOT1QgRVFVQUxTJyB9LFxuICBdO1xuXG4gIGJvb2xlYW5QcmVyZXF1aXNpdGVDb21wYXJhdG9ycyA9IFtcbiAgICB7IHZhbHVlOiBQcmVyZXF1aXNpdGVDb21wYXJhdG9yLkVxdWFscywgbGFiZWw6ICdJUyBPTicgfSxcbiAgICB7IHZhbHVlOiBQcmVyZXF1aXNpdGVDb21wYXJhdG9yLkRvZXNOb3RFcXVhbCwgbGFiZWw6ICdJUyBPRkYnIH0sXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtR2VuZXJhdG9yOiBGb3JtR2VuZXJhdG9yKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnByZXJlcXVpc2l0ZVNldHRpbmdUeXBlID0gdGhpcy5nZXRTZXR0aW5nVHlwZSgpO1xuICB9XG5cbiAgZ2V0U2V0dGluZ1R5cGUoKSB7XG4gICAgY29uc3QgcHJlcmVxdWlzaXRlU2V0dGluZyA9IHRoaXMucHJlcmVxdWlzaXRlU2V0dGluZ3MuZmlsdGVyKHMgPT4gcy5zZXR0aW5nSWQgPT0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMucHJlcmVxdWlzaXRlU2V0dGluZ0lkLnZhbHVlKVswXTtcbiAgICByZXR1cm4gcHJlcmVxdWlzaXRlU2V0dGluZz8uc2V0dGluZ1R5cGUgPz8gU2V0dGluZ1R5cGUuQm9vbGVhbjtcbiAgfVxuXG4gIHByZXJlcXVpc2l0ZVNldHRpbmdDaGFuZ2VkKCkge1xuICAgIGNvbnN0IG9sZFByZXJlcXVpc2l0ZVNldHRpbmdUeXBlID0gdGhpcy5wcmVyZXF1aXNpdGVTZXR0aW5nVHlwZTtcbiAgICB0aGlzLnByZXJlcXVpc2l0ZVNldHRpbmdUeXBlID0gdGhpcy5nZXRTZXR0aW5nVHlwZSgpO1xuICAgIGlmIChvbGRQcmVyZXF1aXNpdGVTZXR0aW5nVHlwZSAhPT0gdGhpcy5wcmVyZXF1aXNpdGVTZXR0aW5nVHlwZSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuc2V0Q29udHJvbCgncHJlcmVxdWlzaXRlQ29tcGFyaXNvblZhbHVlJyxcbiAgICAgICAgdGhpcy5mb3JtR2VuZXJhdG9yLmdlbmVyYXRlVmFsdWVGb3JtR3JvdXAoXG4gICAgICAgICAgdGhpcy5nZXREZWZhdWx0VmFsdWVNb2RlbCh0aGlzLnByZXJlcXVpc2l0ZVNldHRpbmdUeXBlKSwgdGhpcy5wcmVyZXF1aXNpdGVTZXR0aW5nVHlwZSwgZmFsc2UsIHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9uc1xuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQuZW1pdCgpO1xuICB9XG5cbiAgZ2V0RGVmYXVsdFZhbHVlTW9kZWwoc2V0dGluZ1R5cGU6IFNldHRpbmdUeXBlKTogSVZhbHVlTW9kZWwge1xuICAgIHN3aXRjaCAoc2V0dGluZ1R5cGUpIHtcbiAgICAgIGNhc2UgU2V0dGluZ1R5cGUuQm9vbGVhbjpcbiAgICAgICAgcmV0dXJuIHsgYm9vbFZhbHVlOiB0cnVlIH07XG4gICAgICBjYXNlIFNldHRpbmdUeXBlLlN0cmluZzpcbiAgICAgICAgcmV0dXJuIHsgc3RyaW5nVmFsdWU6ICcnIH07XG4gICAgICBjYXNlIFNldHRpbmdUeXBlLkludDpcbiAgICAgICAgcmV0dXJuIHsgaW50VmFsdWU6IDAgfTtcbiAgICAgIGNhc2UgU2V0dGluZ1R5cGUuRG91YmxlOlxuICAgICAgICByZXR1cm4geyBkb3VibGVWYWx1ZTogMCB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFNldHRpbmdUeXBlJyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFyZ2V0aW5nLXJ1bGUtbGluZSBzbWFsbGVzdC1mb3JtLWZpZWxkXCI+XG4gICAgPGRpdiBjbGFzcz1cImV4cGxhbmF0aW9uLXdyYXBwZXJcIj5cbiAgICAgICAgPGFwcC1jb25kaXRpb24tY2hpcCBbdGFyZ2V0aW5nUnVsZUluZGV4XT1cInRhcmdldGluZ1J1bGVJbmRleFwiXG4gICAgICAgICAgICBbY29uZGl0aW9uSW5kZXhdPVwiY29uZGl0aW9uSW5kZXhcIj48L2FwcC1jb25kaXRpb24tY2hpcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV4cGxhbmF0aW9uXCI+PGEgaHJlZj1cImh0dHBzOi8vY29uZmlnY2F0LmNvbS9kb2NzL3RhcmdldGluZy90YXJnZXRpbmctcnVsZS9mbGFnLWNvbmRpdGlvbi9cIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBjbGFzcz1cInVzZXItbGlua1wiPmZsYWc8L2E+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIndyYXBwZXItZ3JvdXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLWNvbXBvbmVudCBwYWQtcmlnaHRcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IG1hdE5hdGl2ZUNvbnRyb2wgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5wcmVyZXF1aXNpdGVTZXR0aW5nSWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInByZXJlcXVpc2l0ZVNldHRpbmdDaGFuZ2VkKClcIiBtYXRUb29sdGlwPVwiUHJlcmVxdWlzaXRlIGZlYXR1cmUgZmxhZyBvciBzZXR0aW5nIGtleVwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIiBkaXNhYmxlZCBzZWxlY3RlZCBoaWRkZW4gKm5nSWY9XCJwcmVyZXF1aXNpdGVTZXR0aW5ncy5sZW5ndGhcIj5TZWxlY3QgZmVhdHVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgZmxhZyAuLi48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc2V0dGluZyBvZiBwcmVyZXF1aXNpdGVTZXR0aW5nc1wiIFtuZ1ZhbHVlXT1cInNldHRpbmcuc2V0dGluZ0lkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3NldHRpbmcua2V5fX1cbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Hcm91cC5jb250cm9scy5wcmVyZXF1aXNpdGVTZXR0aW5nSWQuaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICB7e0Zvcm1IZWxwZXIuZ2V0RXJyb3JNZXNzYWdlKGZvcm1Hcm91cC5jb250cm9scy5wcmVyZXF1aXNpdGVTZXR0aW5nSWQpfX1cbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0aW5nLXJ1bGUtY29tcG9uZW50IHBhZC1yaWdodFwiICpuZ0lmPVwicHJlcmVxdWlzaXRlU2V0dGluZ1R5cGUgPT09IFNldHRpbmdUeXBlLkJvb2xlYW5cIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IG1hdE5hdGl2ZUNvbnRyb2wgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5jb21wYXJhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlByZXJlcXVpc2l0ZSBmZWF0dXJlIGZsYWcgY29tcGFyaXNvbiB2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBwcmVyZXF1aXNpdGVDb21wYXJhdG9yIG9mIGJvb2xlYW5QcmVyZXF1aXNpdGVDb21wYXJhdG9yc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJwcmVyZXF1aXNpdGVDb21wYXJhdG9yLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3ByZXJlcXVpc2l0ZUNvbXBhcmF0b3IubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmNvbXBhcmF0b3IuaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICB7e0Zvcm1IZWxwZXIuZ2V0RXJyb3JNZXNzYWdlKGZvcm1Hcm91cC5jb250cm9scy5jb21wYXJhdG9yKX19XG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLWNvbXBvbmVudCBwYWQtcmlnaHRcIiAqbmdJZj1cInByZXJlcXVpc2l0ZVNldHRpbmdUeXBlICE9PSBTZXR0aW5nVHlwZS5Cb29sZWFuXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCBtYXROYXRpdmVDb250cm9sIFtmb3JtQ29udHJvbF09XCJmb3JtR3JvdXAuY29udHJvbHMuY29tcGFyYXRvclwiIG1hdFRvb2x0aXA9XCJDb21wYXJhdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHByZXJlcXVpc2l0ZUNvbXBhcmF0b3Igb2YgcHJlcmVxdWlzaXRlQ29tcGFyYXRvcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwicHJlcmVxdWlzaXRlQ29tcGFyYXRvci52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3twcmVyZXF1aXNpdGVDb21wYXJhdG9yLmxhYmVsfX1cbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Hcm91cC5jb250cm9scy5jb21wYXJhdG9yLmludmFsaWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3tGb3JtSGVscGVyLmdldEVycm9yTWVzc2FnZShmb3JtR3JvdXAuY29udHJvbHMuY29tcGFyYXRvcil9fVxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1mZWF0dXJlLWZsYWctdmFsdWUgY2xhc3M9XCJ3cmFwcGVyLWdyb3VwIGdyb3dcIiAqbmdJZj1cInByZXJlcXVpc2l0ZVNldHRpbmdUeXBlICE9PSBTZXR0aW5nVHlwZS5Cb29sZWFuXCJcbiAgICAgICAgdG9vbHRpcD1cIlByZXJlcXVpc2l0ZSBmZWF0dXJlIGZsYWcgY29tcGFyaXNvbiB2YWx1ZVwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwLmNvbnRyb2xzLnByZXJlcXVpc2l0ZUNvbXBhcmlzb25WYWx1ZVwiIFtpc1ByZXJlcXVpc2l0ZV09XCJ0cnVlXCJcbiAgICAgICAgW2ZlYXR1cmVGbGFnTGltaXRhdGlvbnNdPVwiZmVhdHVyZUZsYWdMaW1pdGF0aW9uc1wiPjwvYXBwLWZlYXR1cmUtZmxhZy12YWx1ZT5cbjwvZGl2PiJdfQ==
@@ -24,10 +24,10 @@ export class SegmentConditionComponent {
24
24
  createSegment() {
25
25
  this.createSegmentRequested.emit();
26
26
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: SegmentConditionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: SegmentConditionComponent, selector: "app-segment-condition", inputs: { targetingRuleIndex: "targetingRuleIndex", conditionIndex: "conditionIndex", formGroup: "formGroup", segments: "segments", canManageSegments: "canManageSegments" }, outputs: { createSegmentRequested: "createSegmentRequested", manageSegmentsRequested: "manageSegmentsRequested" }, ngImport: i0, template: "<div class=\"targeting-rule-line smallest-form-field\">\n <div class=\"explanation-wrapper\">\n <app-condition-chip [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"conditionIndex\"></app-condition-chip>\n\n <div class=\"explanation\"><a href=\"https://configcat.com/docs/targeting/targeting-rule/segment-condition/\" target=\"_blank\"\n rel=\"noopener noreferrer\" class=\"user-link\">user</a></div>\n </div>\n\n <div class=\"targeting-rule-component pad-right\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.comparator\" matTooltip=\"Segment comparator\">\n <option *ngFor=\"let comparator of segmentComparators\" [ngValue]=\"comparator.value\">\n {{comparator.label}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.comparator.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.comparator)}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"wrapper-group\">\n <div class=\"targeting-rule-component\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.segmentId\" matTooltip=\"Segment\">\n <option [ngValue]=\"null\" disabled selected hidden *ngIf=\"segments.length\">Select segment ...\n </option>\n <option *ngFor=\"let segment of segments\" [ngValue]=\"segment.segmentId\"\n [title]=\"segment.description\">\n {{segment.name}}\n </option>\n <option *ngIf=\"segments.length === 0\" disabled>\n no segments available\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.segmentId.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.segmentId)}}\n </mat-error>\n </mat-form-field>\n </div>\n <button class=\"segment-more\" type=\"button\" mat-icon-button *ngIf=\"canManageSegments\"\n matTooltip=\"Create and manage segments\" [matMenuTriggerFor]=\"segmentMenu\"\n [track]=\"['segment menu click', 'feature flags and settings']\">\n <mat-icon [inline]=\"true\">more_vert</mat-icon>\n </button>\n </div>\n</div>\n\n<mat-menu #segmentMenu=\"matMenu\">\n <ng-template matMenuContent>\n <a mat-menu-item (click)=\"createSegmentRequested.emit()\"\n [track]=\"['create segment click', 'Feature flags & settings V2 page']\">\n <mat-icon>add</mat-icon><span>Create new segment</span>\n </a>\n <a mat-menu-item (click)=\"manageSegmentsRequested.emit()\"\n [track]=\"['manage segment click', 'Feature flags & settings V2 page']\">\n <mat-icon>pie_chart</mat-icon><span>Manage segments</span>\n </a>\n </ng-template>\n</mat-menu>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", ".segment-more{--mat-icon-button-touch-target-display: none;padding:0;line-height:1;margin-top:4px;height:28px;width:28px;display:inline-flex;align-items:center;justify-content:center}.segment-more .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 28px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:2px}.segment-more mat-icon{font-size:18px;width:18px;height:18px;color:#818181}select.ng-invalid{color:#00000061}select.ng-invalid option{color:#000}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i9.ConditionChipComponent, selector: "app-condition-chip", inputs: ["targetingRuleIndex", "conditionIndex"] }, { kind: "directive", type: i10.TrackingDirective, selector: "[track]", inputs: ["track"] }] }); }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SegmentConditionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: SegmentConditionComponent, selector: "app-segment-condition", inputs: { targetingRuleIndex: "targetingRuleIndex", conditionIndex: "conditionIndex", formGroup: "formGroup", segments: "segments", canManageSegments: "canManageSegments" }, outputs: { createSegmentRequested: "createSegmentRequested", manageSegmentsRequested: "manageSegmentsRequested" }, ngImport: i0, template: "<div class=\"targeting-rule-line smallest-form-field\">\n <div class=\"explanation-wrapper\">\n <app-condition-chip [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"conditionIndex\"></app-condition-chip>\n\n <div class=\"explanation\"><a href=\"https://configcat.com/docs/targeting/targeting-rule/segment-condition/\" target=\"_blank\"\n rel=\"noopener noreferrer\" class=\"user-link\">user</a></div>\n </div>\n\n <div class=\"targeting-rule-component pad-right\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.comparator\" matTooltip=\"Segment comparator\">\n <option *ngFor=\"let comparator of segmentComparators\" [ngValue]=\"comparator.value\">\n {{comparator.label}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.comparator.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.comparator)}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"wrapper-group\">\n <div class=\"targeting-rule-component\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.segmentId\" matTooltip=\"Segment\">\n <option [ngValue]=\"null\" disabled selected hidden *ngIf=\"segments.length\">Select segment ...\n </option>\n <option *ngFor=\"let segment of segments\" [ngValue]=\"segment.segmentId\"\n [title]=\"segment.description\">\n {{segment.name}}\n </option>\n <option *ngIf=\"segments.length === 0\" disabled>\n no segments available\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.segmentId.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.segmentId)}}\n </mat-error>\n </mat-form-field>\n </div>\n <button class=\"segment-more\" type=\"button\" mat-icon-button *ngIf=\"canManageSegments\"\n matTooltip=\"Create and manage segments\" [matMenuTriggerFor]=\"segmentMenu\"\n [track]=\"['segment menu click', 'feature flags and settings']\">\n <mat-icon [inline]=\"true\">more_vert</mat-icon>\n </button>\n </div>\n</div>\n\n<mat-menu #segmentMenu=\"matMenu\">\n <ng-template matMenuContent>\n <a mat-menu-item (click)=\"createSegmentRequested.emit()\"\n [track]=\"['create segment click', 'Feature flags & settings V2 page']\">\n <mat-icon>add</mat-icon><span>Create new segment</span>\n </a>\n <a mat-menu-item (click)=\"manageSegmentsRequested.emit()\"\n [track]=\"['manage segment click', 'Feature flags & settings V2 page']\">\n <mat-icon>pie_chart</mat-icon><span>Manage segments</span>\n </a>\n </ng-template>\n</mat-menu>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", ".segment-more{--mat-icon-button-touch-target-display: none;padding:0;line-height:1;margin-top:4px;height:28px;width:28px;display:inline-flex;align-items:center;justify-content:center}.segment-more .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 28px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:2px}.segment-more mat-icon{font-size:18px;width:18px;height:18px;color:#818181}select.ng-invalid{color:#00000061}select.ng-invalid option{color:#000}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i9.ConditionChipComponent, selector: "app-condition-chip", inputs: ["targetingRuleIndex", "conditionIndex"] }, { kind: "directive", type: i10.TrackingDirective, selector: "[track]", inputs: ["track"] }] }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: SegmentConditionComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SegmentConditionComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'app-segment-condition', template: "<div class=\"targeting-rule-line smallest-form-field\">\n <div class=\"explanation-wrapper\">\n <app-condition-chip [targetingRuleIndex]=\"targetingRuleIndex\"\n [conditionIndex]=\"conditionIndex\"></app-condition-chip>\n\n <div class=\"explanation\"><a href=\"https://configcat.com/docs/targeting/targeting-rule/segment-condition/\" target=\"_blank\"\n rel=\"noopener noreferrer\" class=\"user-link\">user</a></div>\n </div>\n\n <div class=\"targeting-rule-component pad-right\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.comparator\" matTooltip=\"Segment comparator\">\n <option *ngFor=\"let comparator of segmentComparators\" [ngValue]=\"comparator.value\">\n {{comparator.label}}\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.comparator.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.comparator)}}\n </mat-error>\n </mat-form-field>\n </div>\n <div class=\"wrapper-group\">\n <div class=\"targeting-rule-component\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <select matNativeControl [formControl]=\"formGroup.controls.segmentId\" matTooltip=\"Segment\">\n <option [ngValue]=\"null\" disabled selected hidden *ngIf=\"segments.length\">Select segment ...\n </option>\n <option *ngFor=\"let segment of segments\" [ngValue]=\"segment.segmentId\"\n [title]=\"segment.description\">\n {{segment.name}}\n </option>\n <option *ngIf=\"segments.length === 0\" disabled>\n no segments available\n </option>\n </select>\n <mat-error *ngIf=\"formGroup.controls.segmentId.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.segmentId)}}\n </mat-error>\n </mat-form-field>\n </div>\n <button class=\"segment-more\" type=\"button\" mat-icon-button *ngIf=\"canManageSegments\"\n matTooltip=\"Create and manage segments\" [matMenuTriggerFor]=\"segmentMenu\"\n [track]=\"['segment menu click', 'feature flags and settings']\">\n <mat-icon [inline]=\"true\">more_vert</mat-icon>\n </button>\n </div>\n</div>\n\n<mat-menu #segmentMenu=\"matMenu\">\n <ng-template matMenuContent>\n <a mat-menu-item (click)=\"createSegmentRequested.emit()\"\n [track]=\"['create segment click', 'Feature flags & settings V2 page']\">\n <mat-icon>add</mat-icon><span>Create new segment</span>\n </a>\n <a mat-menu-item (click)=\"manageSegmentsRequested.emit()\"\n [track]=\"['manage segment click', 'Feature flags & settings V2 page']\">\n <mat-icon>pie_chart</mat-icon><span>Manage segments</span>\n </a>\n </ng-template>\n</mat-menu>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", ".segment-more{--mat-icon-button-touch-target-display: none;padding:0;line-height:1;margin-top:4px;height:28px;width:28px;display:inline-flex;align-items:center;justify-content:center}.segment-more .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 28px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:2px}.segment-more mat-icon{font-size:18px;width:18px;height:18px;color:#818181}select.ng-invalid{color:#00000061}select.ng-invalid option{color:#000}\n"] }]
33
33
  }], propDecorators: { targetingRuleIndex: [{
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
45
45
  }], manageSegmentsRequested: [{
46
46
  type: Output
47
47
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC1jb25kaXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvdGFyZ2V0aW5nLXJ1bGUvY29uZGl0aW9ucy9zZWdtZW50LWNvbmRpdGlvbi9zZWdtZW50LWNvbmRpdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL3NlZ21lbnQtY29uZGl0aW9uL3NlZ21lbnQtY29uZGl0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLFVBQVUsRUFBa0MsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBVTVHLE1BQU0sT0FBTyx5QkFBeUI7SUFSdEM7UUFjWSwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVDLDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkQsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUV4Qix1QkFBa0IsR0FBRztZQUNuQixFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtZQUN6RCxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFO1NBQ2pFLENBQUM7S0FLSDtJQUhDLGFBQWE7UUFDWCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQzsrR0FsQlUseUJBQXlCO21HQUF6Qix5QkFBeUIsOFZDWnRDLDhsR0EyRFc7OzRGRC9DRSx5QkFBeUI7a0JBUnJDLFNBQVM7K0JBQ0UsdUJBQXVCOzhCQVF4QixrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUhlbHBlciwgU2VnbWVudENvbmRpdGlvbkZvcm0sIElTZWdtZW50LCBTZWdtZW50Q29tcGFyYXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2Jvb3RzdHJhcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zZWdtZW50LWNvbmRpdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWdtZW50LWNvbmRpdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuLi8uLi8uLi9jb21wb25lbnRzLnNjc3MnLFxuICAgICcuL3NlZ21lbnQtY29uZGl0aW9uLmNvbXBvbmVudC5zY3NzJ1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlZ21lbnRDb25kaXRpb25Db21wb25lbnQge1xuICBASW5wdXQoKSB0YXJnZXRpbmdSdWxlSW5kZXg6IG51bWJlcjtcbiAgQElucHV0KCkgY29uZGl0aW9uSW5kZXg6IG51bWJlcjtcbiAgQElucHV0KCkgZm9ybUdyb3VwOiBGb3JtR3JvdXA8U2VnbWVudENvbmRpdGlvbkZvcm0+O1xuICBASW5wdXQoKSBzZWdtZW50czogSVNlZ21lbnRbXTtcbiAgQElucHV0KCkgY2FuTWFuYWdlU2VnbWVudHM6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBjcmVhdGVTZWdtZW50UmVxdWVzdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbWFuYWdlU2VnbWVudHNSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgRm9ybUhlbHBlciA9IEZvcm1IZWxwZXI7XG5cbiAgc2VnbWVudENvbXBhcmF0b3JzID0gW1xuICAgIHsgdmFsdWU6IFNlZ21lbnRDb21wYXJhdG9yLklzSW4sIGxhYmVsOiAnSVMgSU4gU0VHTUVOVCcgfSxcbiAgICB7IHZhbHVlOiBTZWdtZW50Q29tcGFyYXRvci5Jc05vdEluLCBsYWJlbDogJ0lTIE5PVCBJTiBTRUdNRU5UJyB9LFxuICBdO1xuXG4gIGNyZWF0ZVNlZ21lbnQoKSB7XG4gICAgdGhpcy5jcmVhdGVTZWdtZW50UmVxdWVzdGVkLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLWxpbmUgc21hbGxlc3QtZm9ybS1maWVsZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJleHBsYW5hdGlvbi13cmFwcGVyXCI+XG4gICAgICAgIDxhcHAtY29uZGl0aW9uLWNoaXAgW3RhcmdldGluZ1J1bGVJbmRleF09XCJ0YXJnZXRpbmdSdWxlSW5kZXhcIlxuICAgICAgICAgICAgW2NvbmRpdGlvbkluZGV4XT1cImNvbmRpdGlvbkluZGV4XCI+PC9hcHAtY29uZGl0aW9uLWNoaXA+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV4cGxhbmF0aW9uXCI+PGEgaHJlZj1cImh0dHBzOi8vY29uZmlnY2F0LmNvbS9kb2NzL3RhcmdldGluZy90YXJnZXRpbmctcnVsZS9zZWdtZW50LWNvbmRpdGlvbi9cIiB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBjbGFzcz1cInVzZXItbGlua1wiPnVzZXI8L2E+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0aW5nLXJ1bGUtY29tcG9uZW50IHBhZC1yaWdodFwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICAgICA8c2VsZWN0IG1hdE5hdGl2ZUNvbnRyb2wgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5jb21wYXJhdG9yXCIgbWF0VG9vbHRpcD1cIlNlZ21lbnQgY29tcGFyYXRvclwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGNvbXBhcmF0b3Igb2Ygc2VnbWVudENvbXBhcmF0b3JzXCIgW25nVmFsdWVdPVwiY29tcGFyYXRvci52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICB7e2NvbXBhcmF0b3IubGFiZWx9fVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmNvbXBhcmF0b3IuaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgIHt7Rm9ybUhlbHBlci5nZXRFcnJvck1lc3NhZ2UoZm9ybUdyb3VwLmNvbnRyb2xzLmNvbXBhcmF0b3IpfX1cbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyLWdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YXJnZXRpbmctcnVsZS1jb21wb25lbnRcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IG1hdE5hdGl2ZUNvbnRyb2wgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5zZWdtZW50SWRcIiBtYXRUb29sdGlwPVwiU2VnbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIiBkaXNhYmxlZCBzZWxlY3RlZCBoaWRkZW4gKm5nSWY9XCJzZWdtZW50cy5sZW5ndGhcIj5TZWxlY3Qgc2VnbWVudCAuLi5cbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHNlZ21lbnQgb2Ygc2VnbWVudHNcIiBbbmdWYWx1ZV09XCJzZWdtZW50LnNlZ21lbnRJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwic2VnbWVudC5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tzZWdtZW50Lm5hbWV9fVxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdJZj1cInNlZ21lbnRzLmxlbmd0aCA9PT0gMFwiIGRpc2FibGVkPlxuICAgICAgICAgICAgICAgICAgICAgICAgbm8gc2VnbWVudHMgYXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtR3JvdXAuY29udHJvbHMuc2VnbWVudElkLmludmFsaWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3tGb3JtSGVscGVyLmdldEVycm9yTWVzc2FnZShmb3JtR3JvdXAuY29udHJvbHMuc2VnbWVudElkKX19XG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNlZ21lbnQtbW9yZVwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJjYW5NYW5hZ2VTZWdtZW50c1wiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiQ3JlYXRlIGFuZCBtYW5hZ2Ugc2VnbWVudHNcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwic2VnbWVudE1lbnVcIlxuICAgICAgICAgICAgW3RyYWNrXT1cIlsnc2VnbWVudCBtZW51IGNsaWNrJywgJ2ZlYXR1cmUgZmxhZ3MgYW5kIHNldHRpbmdzJ11cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBbaW5saW5lXT1cInRydWVcIj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bWF0LW1lbnUgI3NlZ21lbnRNZW51PVwibWF0TWVudVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cbiAgICAgICAgPGEgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY3JlYXRlU2VnbWVudFJlcXVlc3RlZC5lbWl0KClcIlxuICAgICAgICAgICAgW3RyYWNrXT1cIlsnY3JlYXRlIHNlZ21lbnQgY2xpY2snLCAnRmVhdHVyZSBmbGFncyAmIHNldHRpbmdzIFYyIHBhZ2UnXVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+PHNwYW4+Q3JlYXRlIG5ldyBzZWdtZW50PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICAgIDxhIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm1hbmFnZVNlZ21lbnRzUmVxdWVzdGVkLmVtaXQoKVwiXG4gICAgICAgICAgICBbdHJhY2tdPVwiWydtYW5hZ2Ugc2VnbWVudCBjbGljaycsICdGZWF0dXJlIGZsYWdzICYgc2V0dGluZ3MgVjIgcGFnZSddXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+cGllX2NoYXJ0PC9tYXQtaWNvbj48c3Bhbj5NYW5hZ2Ugc2VnbWVudHM8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtbWVudT4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC1jb25kaXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvdGFyZ2V0aW5nLXJ1bGUvY29uZGl0aW9ucy9zZWdtZW50LWNvbmRpdGlvbi9zZWdtZW50LWNvbmRpdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL3NlZ21lbnQtY29uZGl0aW9uL3NlZ21lbnQtY29uZGl0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLFVBQVUsRUFBa0MsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBVTVHLE1BQU0sT0FBTyx5QkFBeUI7SUFSdEM7UUFjWSwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVDLDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkQsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUV4Qix1QkFBa0IsR0FBRztZQUNuQixFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtZQUN6RCxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFO1NBQ2pFLENBQUM7S0FLSDtJQUhDLGFBQWE7UUFDWCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQzs4R0FsQlUseUJBQXlCO2tHQUF6Qix5QkFBeUIsOFZDWnRDLDhsR0EyRFc7OzJGRC9DRSx5QkFBeUI7a0JBUnJDLFNBQVM7K0JBQ0UsdUJBQXVCOzhCQVF4QixrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUhlbHBlciwgU2VnbWVudENvbmRpdGlvbkZvcm0sIElTZWdtZW50LCBTZWdtZW50Q29tcGFyYXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2Jvb3RzdHJhcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zZWdtZW50LWNvbmRpdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWdtZW50LWNvbmRpdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuLi8uLi8uLi9jb21wb25lbnRzLnNjc3MnLFxuICAgICcuL3NlZ21lbnQtY29uZGl0aW9uLmNvbXBvbmVudC5zY3NzJ1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlZ21lbnRDb25kaXRpb25Db21wb25lbnQge1xuICBASW5wdXQoKSB0YXJnZXRpbmdSdWxlSW5kZXg6IG51bWJlcjtcbiAgQElucHV0KCkgY29uZGl0aW9uSW5kZXg6IG51bWJlcjtcbiAgQElucHV0KCkgZm9ybUdyb3VwOiBGb3JtR3JvdXA8U2VnbWVudENvbmRpdGlvbkZvcm0+O1xuICBASW5wdXQoKSBzZWdtZW50czogSVNlZ21lbnRbXTtcbiAgQElucHV0KCkgY2FuTWFuYWdlU2VnbWVudHM6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBjcmVhdGVTZWdtZW50UmVxdWVzdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbWFuYWdlU2VnbWVudHNSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgRm9ybUhlbHBlciA9IEZvcm1IZWxwZXI7XG5cbiAgc2VnbWVudENvbXBhcmF0b3JzID0gW1xuICAgIHsgdmFsdWU6IFNlZ21lbnRDb21wYXJhdG9yLklzSW4sIGxhYmVsOiAnSVMgSU4gU0VHTUVOVCcgfSxcbiAgICB7IHZhbHVlOiBTZWdtZW50Q29tcGFyYXRvci5Jc05vdEluLCBsYWJlbDogJ0lTIE5PVCBJTiBTRUdNRU5UJyB9LFxuICBdO1xuXG4gIGNyZWF0ZVNlZ21lbnQoKSB7XG4gICAgdGhpcy5jcmVhdGVTZWdtZW50UmVxdWVzdGVkLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLWxpbmUgc21hbGxlc3QtZm9ybS1maWVsZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJleHBsYW5hdGlvbi13cmFwcGVyXCI+XG4gICAgICAgIDxhcHAtY29uZGl0aW9uLWNoaXAgW3RhcmdldGluZ1J1bGVJbmRleF09XCJ0YXJnZXRpbmdSdWxlSW5kZXhcIlxuICAgICAgICAgICAgW2NvbmRpdGlvbkluZGV4XT1cImNvbmRpdGlvbkluZGV4XCI+PC9hcHAtY29uZGl0aW9uLWNoaXA+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV4cGxhbmF0aW9uXCI+PGEgaHJlZj1cImh0dHBzOi8vY29uZmlnY2F0LmNvbS9kb2NzL3RhcmdldGluZy90YXJnZXRpbmctcnVsZS9zZWdtZW50LWNvbmRpdGlvbi9cIiB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBjbGFzcz1cInVzZXItbGlua1wiPnVzZXI8L2E+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0aW5nLXJ1bGUtY29tcG9uZW50IHBhZC1yaWdodFwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICAgICA8c2VsZWN0IG1hdE5hdGl2ZUNvbnRyb2wgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5jb21wYXJhdG9yXCIgbWF0VG9vbHRpcD1cIlNlZ21lbnQgY29tcGFyYXRvclwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGNvbXBhcmF0b3Igb2Ygc2VnbWVudENvbXBhcmF0b3JzXCIgW25nVmFsdWVdPVwiY29tcGFyYXRvci52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICB7e2NvbXBhcmF0b3IubGFiZWx9fVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmNvbXBhcmF0b3IuaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgIHt7Rm9ybUhlbHBlci5nZXRFcnJvck1lc3NhZ2UoZm9ybUdyb3VwLmNvbnRyb2xzLmNvbXBhcmF0b3IpfX1cbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyLWdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YXJnZXRpbmctcnVsZS1jb21wb25lbnRcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IG1hdE5hdGl2ZUNvbnRyb2wgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5zZWdtZW50SWRcIiBtYXRUb29sdGlwPVwiU2VnbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIiBkaXNhYmxlZCBzZWxlY3RlZCBoaWRkZW4gKm5nSWY9XCJzZWdtZW50cy5sZW5ndGhcIj5TZWxlY3Qgc2VnbWVudCAuLi5cbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHNlZ21lbnQgb2Ygc2VnbWVudHNcIiBbbmdWYWx1ZV09XCJzZWdtZW50LnNlZ21lbnRJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwic2VnbWVudC5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tzZWdtZW50Lm5hbWV9fVxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdJZj1cInNlZ21lbnRzLmxlbmd0aCA9PT0gMFwiIGRpc2FibGVkPlxuICAgICAgICAgICAgICAgICAgICAgICAgbm8gc2VnbWVudHMgYXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtR3JvdXAuY29udHJvbHMuc2VnbWVudElkLmludmFsaWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3tGb3JtSGVscGVyLmdldEVycm9yTWVzc2FnZShmb3JtR3JvdXAuY29udHJvbHMuc2VnbWVudElkKX19XG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNlZ21lbnQtbW9yZVwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJjYW5NYW5hZ2VTZWdtZW50c1wiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiQ3JlYXRlIGFuZCBtYW5hZ2Ugc2VnbWVudHNcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwic2VnbWVudE1lbnVcIlxuICAgICAgICAgICAgW3RyYWNrXT1cIlsnc2VnbWVudCBtZW51IGNsaWNrJywgJ2ZlYXR1cmUgZmxhZ3MgYW5kIHNldHRpbmdzJ11cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBbaW5saW5lXT1cInRydWVcIj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bWF0LW1lbnUgI3NlZ21lbnRNZW51PVwibWF0TWVudVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cbiAgICAgICAgPGEgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY3JlYXRlU2VnbWVudFJlcXVlc3RlZC5lbWl0KClcIlxuICAgICAgICAgICAgW3RyYWNrXT1cIlsnY3JlYXRlIHNlZ21lbnQgY2xpY2snLCAnRmVhdHVyZSBmbGFncyAmIHNldHRpbmdzIFYyIHBhZ2UnXVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+PHNwYW4+Q3JlYXRlIG5ldyBzZWdtZW50PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICAgIDxhIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm1hbmFnZVNlZ21lbnRzUmVxdWVzdGVkLmVtaXQoKVwiXG4gICAgICAgICAgICBbdHJhY2tdPVwiWydtYW5hZ2Ugc2VnbWVudCBjbGljaycsICdGZWF0dXJlIGZsYWdzICYgc2V0dGluZ3MgVjIgcGFnZSddXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+cGllX2NoYXJ0PC9tYXQtaWNvbj48c3Bhbj5NYW5hZ2Ugc2VnbWVudHM8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtbWVudT4iXX0=