ngx-histaff-alpha 4.0.0 → 4.0.1

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 (17) hide show
  1. package/esm2022/lib/app/libraries/core-button-group-vns/action-svg-edit/action-svg-edit.component.mjs +1 -1
  2. package/esm2022/lib/app/libraries/core-button-group-vns/core-button-group-vns/core-button-group-vns.component.mjs +6 -4
  3. package/esm2022/lib/app/libraries/core-button-group-vns/core-button-vns/core-button-vns.component.mjs +15 -10
  4. package/esm2022/lib/app/libraries/core-form/core-form/core-form.component.mjs +1 -1
  5. package/esm2022/lib/app/libraries/core-form-lite/core-form-lite.component.mjs +1 -1
  6. package/esm2022/lib/app/libraries/core-form-tab/core-form-tab.component.mjs +1 -1
  7. package/esm2022/lib/app/libraries/core-page-header/core-page-header/core-page-header.component.mjs +1 -1
  8. package/esm2022/lib/app/libraries/core-tags/core-tags/core-tags.component.mjs +1 -1
  9. package/esm2022/lib/app/libraries/core-tree-grid/core-tree-grid/core-tree-grid.component.mjs +3 -3
  10. package/esm2022/lib/app/libraries/evaluate-dialog/evaluate-dialog.component.mjs +2 -2
  11. package/esm2022/lib/app/libraries/navigator/navigator/menu-item-svg-edit/menu-item-svg-edit.component.mjs +1 -1
  12. package/esm2022/lib/app/root/sys-function-action-mapper/sys-function-action-mapper.component.mjs +2 -2
  13. package/fesm2022/ngx-histaff-alpha.mjs +30 -23
  14. package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
  15. package/lib/app/libraries/core-button-group-vns/core-button-group-vns/core-button-group-vns.component.d.ts +2 -1
  16. package/lib/app/libraries/core-button-group-vns/core-button-vns/core-button-vns.component.d.ts +2 -1
  17. package/package.json +1 -1
@@ -131,7 +131,7 @@ export class ActionSvgEditComponent extends BaseComponent {
131
131
  });
132
132
  }
133
133
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ActionSvgEditComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.ActionService }, { token: i3.AppService }, { token: i4.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ActionSvgEditComponent, isStandalone: true, selector: "core-action-svg-edit", usesInheritance: true, ngImport: i0, template: "<div class=\"modal-container\">\r\n <div class=\"modal-container-root\">\r\n <div class=\"edit-container\">\r\n\r\n <core-page-header [title]=\"'EDIT_ACTION_SVG_ICON'\" [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n <div class=\"object-property w-100 fw700 color-gray\">\r\n <div>{{ id }} <span> \u2022 </span> {{ code }} <span> \u2022 </span> {{ (code || '') | translate: lang }} </div>\r\n </div>\r\n\r\n <div class=\"h15\"></div>\r\n\r\n <div class=\"d-flex d-flex-between\">\r\n\r\n <div class=\"entry\">\r\n <div class=\"label\">Enter Svg element here:</div>\r\n <textarea class=\"form-control\" [(ngModel)]=\"svg\" [rows]=\"'10'\"\r\n [ngStyle]=\"{ height: 'unset'}\"></textarea>\r\n </div>\r\n <div class=\"preview d-flex d-flex-v d-flex-between\">\r\n <div class=\"label\">Preview:</div>\r\n <div class=\"preview-icon\" [innerHtml]=\"svg | stringHtml\">\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"h15\"></div>\r\n <div class=\"d-flex d-flex-end\">\r\n <core-button-group-vns [showCaption]=\"true\" [forHeader]=\"false\" (buttonClick)=\"onButtonClick($event)\"\r\n [shownItems]=\"buttonItems\" class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".edit-container{width:800px;height:400px;padding:0 15px 15px;background-color:#fff}.edit-container .entry{width:655px}.edit-container .preview{width:100px;height:100px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup"], outputs: ["buttonClick"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ActionSvgEditComponent, isStandalone: true, selector: "core-action-svg-edit", usesInheritance: true, ngImport: i0, template: "<div class=\"modal-container\">\r\n <div class=\"modal-container-root\">\r\n <div class=\"edit-container\">\r\n\r\n <core-page-header [title]=\"'EDIT_ACTION_SVG_ICON'\" [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n <div class=\"object-property w-100 fw700 color-gray\">\r\n <div>{{ id }} <span> \u2022 </span> {{ code }} <span> \u2022 </span> {{ (code || '') | translate: lang }} </div>\r\n </div>\r\n\r\n <div class=\"h15\"></div>\r\n\r\n <div class=\"d-flex d-flex-between\">\r\n\r\n <div class=\"entry\">\r\n <div class=\"label\">Enter Svg element here:</div>\r\n <textarea class=\"form-control\" [(ngModel)]=\"svg\" [rows]=\"'10'\"\r\n [ngStyle]=\"{ height: 'unset'}\"></textarea>\r\n </div>\r\n <div class=\"preview d-flex d-flex-v d-flex-between\">\r\n <div class=\"label\">Preview:</div>\r\n <div class=\"preview-icon\" [innerHtml]=\"svg | stringHtml\">\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"h15\"></div>\r\n <div class=\"d-flex d-flex-end\">\r\n <core-button-group-vns [showCaption]=\"true\" [forHeader]=\"false\" (buttonClick)=\"onButtonClick($event)\"\r\n [shownItems]=\"buttonItems\" class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".edit-container{width:800px;height:400px;padding:0 15px 15px;background-color:#fff}.edit-container .entry{width:655px}.edit-container .preview{width:100px;height:100px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup"], outputs: ["buttonClick"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption", "lastChildEffectOff"], outputs: ["buttonClick"] }] }); }
135
135
  }
136
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ActionSvgEditComponent, decorators: [{
137
137
  type: Component,
@@ -30,6 +30,7 @@ export class CoreButtonGroupVnsComponent extends BaseComponent {
30
30
  this.alertService = alertService;
31
31
  this.coreButtonGroupService = coreButtonGroupService;
32
32
  this.actionService = actionService;
33
+ this.lastChildEffectOff = false;
33
34
  this.buttonClick = new EventEmitter();
34
35
  this.buttons = [];
35
36
  this.thisRouteFunction = undefined;
@@ -121,7 +122,6 @@ export class CoreButtonGroupVnsComponent extends BaseComponent {
121
122
  this.buttonClick.emit(e);
122
123
  }
123
124
  onMapperClick() {
124
- debugger;
125
125
  if (!!this.thisRouteFunction) {
126
126
  this.router.navigate([
127
127
  '/root',
@@ -141,7 +141,7 @@ export class CoreButtonGroupVnsComponent extends BaseComponent {
141
141
  this.coreButtonGroupService.instances = newInstances;
142
142
  }
143
143
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonGroupVnsComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.Router }, { token: i3.AuthService }, { token: i4.RoutingService }, { token: i5.AlertService }, { token: i6.CoreButtonGroupService }, { token: i7.ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
144
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreButtonGroupVnsComponent, isStandalone: true, selector: "core-button-group-vns", inputs: { height: "height", instanceNumber: "instanceNumber", forHeader: "forHeader", fixedShow: "fixedShow", shownItems: "shownItems", showCaption: "showCaption" }, outputs: { buttonClick: "buttonClick" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-group-vns-container\" [ngStyle]=\"{\r\n display: 'flex',\r\n alignItems: 'center',\r\n}\">\r\n\r\n @if (!!isRootUser && !!forHeader) {\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"setting-trigger d-flex d-flex-center\" (click)=\"onMapperClick()\"\r\n [appTooltip]=\"'UI_BUTTON_GROUP_SETTING_ADD_REMOVE_ACTION_ITEM_FOR_THIS_SCREEN' | translate : lang\"\r\n position=\"left\">\r\n <i class=\"feather-settings\"></i>\r\n </div>\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"debugging d-flex d-flex-center\" (click)=\"onDefaultActionListenerToggle($event)\"\r\n [appTooltip]=\"'UI_BUTTON_GROUP_DEBUGGING_TOGGLE' | translate : lang\">\r\n <i [class.feather-play]=\"!!debugging\" [class.feather-stop-circle]=\"!debugging\"></i>\r\n </div>\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"separator mr15\"></div>\r\n }\r\n\r\n @for (button of buttons; track $index) {\r\n @if (!button.hidden) {\r\n <core-button-vns [showCaption]=\"showCaption\" [data]=\"button\" [instanceNumber]=\"instanceNumber\"\r\n (buttonClick)=\"onButtonClick($event)\"></core-button-vns>\r\n }\r\n }\r\n\r\n @if (!!isRootUser && !!forHeader && !!!buttons.length) {\r\n <span>{{ currentFunctionAssigmentDone ? ('UI_BUTTON_GROUP_NO_ITEM_AVAILABLE_YET' | translate : lang) : '' }}</span>\r\n }\r\n</div>", styles: [".core-button-group-vns-container *{box-sizing:border-box;margin-top:0!important;margin-bottom:0!important}.core-button-group-vns-container .action-wrapper{height:30px;width:30px;display:flex;align-items:center;justify-content:center;padding:0;margin:0}.core-button-group-vns-container .action-wrapper>i{font-size:16px;height:24px;width:24;display:flex;align-items:center;justify-content:center}.core-button-group-vns-container .setting-trigger,.core-button-group-vns-container .debugging{color:#464646;margin-top:3px;background-color:#fff;cursor:pointer;height:28px;width:28px;font-size:20px;border-radius:50px;transition:0s!important;display:flex;align-items:center;justify-content:center}.core-button-group-vns-container .setting-trigger:hover,.core-button-group-vns-container .debugging:hover{background-color:#e7e7e7}.core-button-group-vns-container .setting-trigger i,.core-button-group-vns-container .debugging i{color:#464646}.core-button-group-vns-container .separator{width:1px;height:30px;background-color:#d9d9d9;margin:0 10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i8.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoreButtonVnsComponent, selector: "core-button-vns", inputs: ["height", "data", "instanceNumber", "disabled", "showCaption"], outputs: ["buttonClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }] }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreButtonGroupVnsComponent, isStandalone: true, selector: "core-button-group-vns", inputs: { height: "height", instanceNumber: "instanceNumber", forHeader: "forHeader", fixedShow: "fixedShow", shownItems: "shownItems", showCaption: "showCaption", lastChildEffectOff: "lastChildEffectOff" }, outputs: { buttonClick: "buttonClick" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-group-vns-container\" [ngStyle]=\"{\r\n display: 'flex',\r\n alignItems: 'center',\r\n}\">\r\n\r\n @if (!!isRootUser && !!forHeader) {\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"setting-trigger d-flex d-flex-center\" (click)=\"onMapperClick()\"\r\n [appTooltip]=\"'UI_BUTTON_GROUP_SETTING_ADD_REMOVE_ACTION_ITEM_FOR_THIS_SCREEN' | translate : lang\"\r\n position=\"left\">\r\n <i class=\"feather-settings\"></i>\r\n </div>\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"debugging d-flex d-flex-center\" (click)=\"onDefaultActionListenerToggle($event)\"\r\n [appTooltip]=\"'UI_BUTTON_GROUP_DEBUGGING_TOGGLE' | translate : lang\">\r\n <i [class.feather-play]=\"!!debugging\" [class.feather-stop-circle]=\"!debugging\"></i>\r\n </div>\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"separator mr15\"></div>\r\n }\r\n\r\n @for (button of buttons; track $index) {\r\n @if (!button.hidden) {\r\n <core-button-vns [showCaption]=\"showCaption\" [data]=\"button\" [lastChildEffectOff]=\"lastChildEffectOff\" [instanceNumber]=\"instanceNumber\"\r\n (buttonClick)=\"onButtonClick($event)\"></core-button-vns>\r\n }\r\n }\r\n\r\n @if (!!isRootUser && !!forHeader && !!!buttons.length) {\r\n <span>{{ currentFunctionAssigmentDone ? ('UI_BUTTON_GROUP_NO_ITEM_AVAILABLE_YET' | translate : lang) : '' }}</span>\r\n }\r\n</div>", styles: [".core-button-group-vns-container *{box-sizing:border-box;margin-top:0!important;margin-bottom:0!important}.core-button-group-vns-container .action-wrapper{height:30px;width:30px;display:flex;align-items:center;justify-content:center;padding:0;margin:0}.core-button-group-vns-container .action-wrapper>i{font-size:16px;height:24px;width:24;display:flex;align-items:center;justify-content:center}.core-button-group-vns-container .setting-trigger,.core-button-group-vns-container .debugging{color:#464646;margin-top:3px;background-color:#fff;cursor:pointer;height:28px;width:28px;font-size:20px;border-radius:50px;transition:0s!important;display:flex;align-items:center;justify-content:center}.core-button-group-vns-container .setting-trigger:hover,.core-button-group-vns-container .debugging:hover{background-color:#e7e7e7}.core-button-group-vns-container .setting-trigger i,.core-button-group-vns-container .debugging i{color:#464646}.core-button-group-vns-container .separator{width:1px;height:30px;background-color:#d9d9d9;margin:0 10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i8.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoreButtonVnsComponent, selector: "core-button-vns", inputs: ["height", "data", "instanceNumber", "disabled", "showCaption", "lastChildEffectOff"], outputs: ["buttonClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }] }); }
145
145
  }
146
146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonGroupVnsComponent, decorators: [{
147
147
  type: Component,
@@ -151,7 +151,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
151
151
  MapAvatarToServerPipe,
152
152
  TranslatePipe,
153
153
  TooltipDirective
154
- ], template: "<div class=\"core-button-group-vns-container\" [ngStyle]=\"{\r\n display: 'flex',\r\n alignItems: 'center',\r\n}\">\r\n\r\n @if (!!isRootUser && !!forHeader) {\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"setting-trigger d-flex d-flex-center\" (click)=\"onMapperClick()\"\r\n [appTooltip]=\"'UI_BUTTON_GROUP_SETTING_ADD_REMOVE_ACTION_ITEM_FOR_THIS_SCREEN' | translate : lang\"\r\n position=\"left\">\r\n <i class=\"feather-settings\"></i>\r\n </div>\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"debugging d-flex d-flex-center\" (click)=\"onDefaultActionListenerToggle($event)\"\r\n [appTooltip]=\"'UI_BUTTON_GROUP_DEBUGGING_TOGGLE' | translate : lang\">\r\n <i [class.feather-play]=\"!!debugging\" [class.feather-stop-circle]=\"!debugging\"></i>\r\n </div>\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"separator mr15\"></div>\r\n }\r\n\r\n @for (button of buttons; track $index) {\r\n @if (!button.hidden) {\r\n <core-button-vns [showCaption]=\"showCaption\" [data]=\"button\" [instanceNumber]=\"instanceNumber\"\r\n (buttonClick)=\"onButtonClick($event)\"></core-button-vns>\r\n }\r\n }\r\n\r\n @if (!!isRootUser && !!forHeader && !!!buttons.length) {\r\n <span>{{ currentFunctionAssigmentDone ? ('UI_BUTTON_GROUP_NO_ITEM_AVAILABLE_YET' | translate : lang) : '' }}</span>\r\n }\r\n</div>", styles: [".core-button-group-vns-container *{box-sizing:border-box;margin-top:0!important;margin-bottom:0!important}.core-button-group-vns-container .action-wrapper{height:30px;width:30px;display:flex;align-items:center;justify-content:center;padding:0;margin:0}.core-button-group-vns-container .action-wrapper>i{font-size:16px;height:24px;width:24;display:flex;align-items:center;justify-content:center}.core-button-group-vns-container .setting-trigger,.core-button-group-vns-container .debugging{color:#464646;margin-top:3px;background-color:#fff;cursor:pointer;height:28px;width:28px;font-size:20px;border-radius:50px;transition:0s!important;display:flex;align-items:center;justify-content:center}.core-button-group-vns-container .setting-trigger:hover,.core-button-group-vns-container .debugging:hover{background-color:#e7e7e7}.core-button-group-vns-container .setting-trigger i,.core-button-group-vns-container .debugging i{color:#464646}.core-button-group-vns-container .separator{width:1px;height:30px;background-color:#d9d9d9;margin:0 10px}\n"] }]
154
+ ], template: "<div class=\"core-button-group-vns-container\" [ngStyle]=\"{\r\n display: 'flex',\r\n alignItems: 'center',\r\n}\">\r\n\r\n @if (!!isRootUser && !!forHeader) {\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"setting-trigger d-flex d-flex-center\" (click)=\"onMapperClick()\"\r\n [appTooltip]=\"'UI_BUTTON_GROUP_SETTING_ADD_REMOVE_ACTION_ITEM_FOR_THIS_SCREEN' | translate : lang\"\r\n position=\"left\">\r\n <i class=\"feather-settings\"></i>\r\n </div>\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"debugging d-flex d-flex-center\" (click)=\"onDefaultActionListenerToggle($event)\"\r\n [appTooltip]=\"'UI_BUTTON_GROUP_DEBUGGING_TOGGLE' | translate : lang\">\r\n <i [class.feather-play]=\"!!debugging\" [class.feather-stop-circle]=\"!debugging\"></i>\r\n </div>\r\n <div [ngStyle]=\"{ height: height + 'px' }\" class=\"separator mr15\"></div>\r\n }\r\n\r\n @for (button of buttons; track $index) {\r\n @if (!button.hidden) {\r\n <core-button-vns [showCaption]=\"showCaption\" [data]=\"button\" [lastChildEffectOff]=\"lastChildEffectOff\" [instanceNumber]=\"instanceNumber\"\r\n (buttonClick)=\"onButtonClick($event)\"></core-button-vns>\r\n }\r\n }\r\n\r\n @if (!!isRootUser && !!forHeader && !!!buttons.length) {\r\n <span>{{ currentFunctionAssigmentDone ? ('UI_BUTTON_GROUP_NO_ITEM_AVAILABLE_YET' | translate : lang) : '' }}</span>\r\n }\r\n</div>", styles: [".core-button-group-vns-container *{box-sizing:border-box;margin-top:0!important;margin-bottom:0!important}.core-button-group-vns-container .action-wrapper{height:30px;width:30px;display:flex;align-items:center;justify-content:center;padding:0;margin:0}.core-button-group-vns-container .action-wrapper>i{font-size:16px;height:24px;width:24;display:flex;align-items:center;justify-content:center}.core-button-group-vns-container .setting-trigger,.core-button-group-vns-container .debugging{color:#464646;margin-top:3px;background-color:#fff;cursor:pointer;height:28px;width:28px;font-size:20px;border-radius:50px;transition:0s!important;display:flex;align-items:center;justify-content:center}.core-button-group-vns-container .setting-trigger:hover,.core-button-group-vns-container .debugging:hover{background-color:#e7e7e7}.core-button-group-vns-container .setting-trigger i,.core-button-group-vns-container .debugging i{color:#464646}.core-button-group-vns-container .separator{width:1px;height:30px;background-color:#d9d9d9;margin:0 10px}\n"] }]
155
155
  }], ctorParameters: () => [{ type: i1.MultiLanguageService }, { type: i2.Router }, { type: i3.AuthService }, { type: i4.RoutingService }, { type: i5.AlertService }, { type: i6.CoreButtonGroupService }, { type: i7.ActionService }], propDecorators: { height: [{
156
156
  type: Input
157
157
  }], instanceNumber: [{
@@ -164,7 +164,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
164
164
  type: Input
165
165
  }], showCaption: [{
166
166
  type: Input
167
+ }], lastChildEffectOff: [{
168
+ type: Input
167
169
  }], buttonClick: [{
168
170
  type: Output
169
171
  }] } });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tZ3JvdXAtdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF5QixNQUFNLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBR25JLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUd6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxn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QUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzFFLENBQUM7SUFFUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqSCxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQztJQUN2RCxDQUFDOzhHQWhLVSwyQkFBMkI7a0dBQTNCLDJCQUEyQiw0VUNsQ3hDLG03Q0E0Qk0seWtDREhGLFlBQVksb0hBQ1osc0JBQXNCLDBKQUV0QixhQUFhLGtEQUNiLGdCQUFnQjs7MkZBS1AsMkJBQTJCO2tCQWJ2QyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCO2lRQU1RLE1BQU07c0JBQWQsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIE9uRGVzdHJveSwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IElDb3JlQnV0dG9uVk5TIH0gZnJvbSAnLi9JQ29yZUJ1dHRvblZOUyc7XHJcbmltcG9ydCB7IEVudW1Db3JlQnV0dG9uVk5TQ29kZSB9IGZyb20gJy4vRW51bUNvcmVCdXR0b25WTlNDb2RlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZUJ1dHRvbkdyb3VwU2VydmljZSB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IElGdW5jdGlvbldpdGhGdWxsQWN0aW9ucywgUm91dGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yb3V0aW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IGFsZXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXBBdmF0YXJUb1NlcnZlclBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvbWFwLWF2YXRhci10by1zZXJ2ZXIucGlwZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBDb3JlQnV0dG9uVm5zQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1idXR0b24tdm5zL2NvcmUtYnV0dG9uLXZucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENPUkVfVk5TX0JVVFRPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvQ09SRV9WTlNfQlVUVE9OUyc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hY3Rpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtYnV0dG9uLWdyb3VwLXZucycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDb3JlQnV0dG9uVm5zQ29tcG9uZW50LFxyXG4gICAgTWFwQXZhdGFyVG9TZXJ2ZXJQaXBlLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlQnV0dG9uR3JvdXBWbnNDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIGhlaWdodCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBpbnN0YW5jZU51bWJlciE6IG51bWJlcjtcclxuICBASW5wdXQoKSBmb3JIZWFkZXIhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGZpeGVkU2hvdyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd25JdGVtcyE6IChFbnVtQ29yZUJ1dHRvblZOU0NvZGUgfCBzdHJpbmcpW10gO1xyXG4gIEBJbnB1dCgpIHNob3dDYXB0aW9uITogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPElDb3JlQnV0dG9uVk5TPigpO1xyXG5cclxuICBidXR0b25zOiBJQ29yZUJ1dHRvblZOU1tdID0gW107XHJcblxyXG4gIGlzUm9vdFVzZXIhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIGlzQWRtaW5Vc2VyITogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICB0aGlzUm91dGVGdW5jdGlvbjogSUZ1bmN0aW9uV2l0aEZ1bGxBY3Rpb25zIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIGN1cnJlbnRGdW5jdGlvbkFzc2lnbWVudERvbmUhOiBib29sZWFuO1xyXG5cclxuICBkZWJ1Z2dpbmchOiBib29sZWFuO1xyXG5cclxuICAvKiBC4buZIGJhIGPDoWMgbsO6dCBkxrDhu5tpIMSRw6J5IGPhuqduIOG6qW4vaGnhu4duIHRoZW8gdMOsbmggaHXhu5FuZyAqL1xyXG4gIGhlYWRlckVkaXQhOiBJQ29yZUJ1dHRvblZOU1tdO1xyXG4gIGhlYWRlclNhdmUhOiBJQ29yZUJ1dHRvblZOU1tdO1xyXG4gIGhlYWRlckNhbmNlbCE6IElDb3JlQnV0dG9uVk5TW107XHJcbiAgLyoqKiAqL1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0aW5nU2VydmljZTogUm91dGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb3JlQnV0dG9uR3JvdXBTZXJ2aWNlOiBDb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBBY3Rpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtbHMpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5jb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLmluc3RhbmNlcy5wdXNoKHtcclxuICAgICAgaW5zdGFuY2VOdW1iZXI6IHRoaXMuaW5zdGFuY2VOdW1iZXIsXHJcbiAgICAgIG11c3RCZUhpZGRlbiQ6IG5ldyBCZWhhdmlvclN1YmplY3Q8KEVudW1Db3JlQnV0dG9uVk5TQ29kZSB8IHN0cmluZylbXT4oW10pXHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICB0aGlzLmlzUm9vdFVzZXIgPSB4Py5pc1Jvb3Q7XHJcbiAgICAgICAgdGhpcy5pc0FkbWluVXNlciA9IHg/LmlzQWRtaW47XHJcbiAgICAgIH0pXHJcbiAgICApXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMubGFuZyA9IHgpXHJcbiAgICApXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuY3VycmVudEZ1bmN0aW9uJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy50aGlzUm91dGVGdW5jdGlvbiA9IHg7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3RoaXMuZnVuY3Rpb24gPSAnLCB4KTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRGdW5jdGlvbkFzc2lnbWVudERvbmUgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAoISF0aGlzLmZvckhlYWRlcikge1xyXG4gICAgICAgICAgaWYgKCEhdGhpcy5pc1Jvb3RVc2VyIHx8ICEhdGhpcy5pc0FkbWluVXNlcikge1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+ICF4LmhpZGRlbikuZmlsdGVyKGJ1dHRvbiA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKCEhdGhpcy50aGlzUm91dGVGdW5jdGlvbikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGhpc1JvdXRlRnVuY3Rpb24hLmFjdGlvbkNvZGVzIS5pbmRleE9mKGJ1dHRvbi5jb2RlKSA+PSAwICYmIGJ1dHRvbi5pc0hlYWRlclxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25GaWx0ZXIgPSB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlIS5wZXJtaXNzaW9uQWN0aW9ucy5maWx0ZXIocGEgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBwYS5mdW5jdGlvbklkID09PSB0aGlzLnRoaXNSb3V0ZUZ1bmN0aW9uPy5pZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKGZ1bmN0aW9uRmlsdGVyLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHsgYWxsb3dlZEFjdGlvbkNvZGVzIH0gPSBmdW5jdGlvbkZpbHRlclswXTtcclxuICAgICAgICAgICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+ICEhIXguaGlkZGVuKS5maWx0ZXIoYnV0dG9uID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhbGxvd2VkQWN0aW9uQ29kZXMhLmluZGV4T2YoYnV0dG9uLmNvZGUpID49IDAgJiYgYnV0dG9uLmlzSGVhZGVyXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmJ1dHRvbnMgPSBbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBUbyBiZSBpbXByb3ZlZFxyXG4gICAgICAgICAgaWYgKCEhIXRoaXMuc2hvd25JdGVtcykge1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+ICEhIXguaXNIZWFkZXIpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+IHRoaXMuc2hvd25JdGVtcy5pbmNsdWRlcyh4LmNvZGUpKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGU6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoIWVbJ2hlaWdodCddPy5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgLy8gZmFsbGJhY2tcclxuICAgICAgdGhpcy5oZWlnaHQgPSAzMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoISFlWydzaG93bkl0ZW1zJ10/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmJ1dHRvbnMgPSBDT1JFX1ZOU19CVVRUT05TLmZpbHRlcih4ID0+IHRoaXMuc2hvd25JdGVtcy5pbmNsdWRlcyh4LmNvZGUpKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZpeGVkU2hvdykge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICB0aGlzLmFjdGlvblNlcnZpY2UuZGVidWdnaW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmRlYnVnZ2luZyA9IHgpXHJcbiAgICAgICAgKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3dhcFRyaW9FZGl0U2F2ZUNhbmNlbChlZGl0QWN0aXZlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmhlYWRlckVkaXQgPSB0aGlzLmJ1dHRvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0VESVQpO1xyXG4gICAgdGhpcy5oZWFkZXJTYXZlID0gdGhpcy5idXR0b25zLmZpbHRlcih4ID0+IHguY29kZSA9PT0gRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9TQVZFKTtcclxuICAgIHRoaXMuaGVhZGVyQ2FuY2VsID0gdGhpcy5idXR0b25zLmZpbHRlcih4ID0+IHguY29kZSA9PT0gRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9DQU5DRUwpO1xyXG4gICAgaWYgKGVkaXRBY3RpdmUpIHtcclxuICAgICAgdGhpcy5oZWFkZXJFZGl0WzBdLmhpZGRlbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuaGVhZGVyU2F2ZVswXS5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgdGhpcy5oZWFkZXJDYW5jZWxbMF0uaGlkZGVuID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmhlYWRlckVkaXRbMF0uaGlkZGVuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaGVhZGVyU2F2ZVswXS5oaWRkZW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmhlYWRlckNhbmNlbFswXS5oaWRkZW4gPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25CdXR0b25DbGljayhlOiBJQ29yZUJ1dHRvblZOUyk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJidXR0b24tZ3JvdXAgb25CdXR0b25DbGlja1wiLCBlKVxyXG4gICAgdGhpcy5idXR0b25DbGljay5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgb25NYXBwZXJDbGljaygpOiB2b2lkIHtcclxuICAgIGRlYnVnZ2VyXHJcbiAgICBpZiAoISF0aGlzLnRoaXNSb3V0ZUZ1bmN0aW9uKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxyXG4gICAgICAgIFtcclxuICAgICAgICAgICcvcm9vdCcsXHJcbiAgICAgICAgICAnYWN0aW9uLW1hcHBlcicsXHJcbiAgICAgICAgXVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbyh0aGlzLm1scy50cmFucyhFbnVtVHJhbnNsYXRlS2V5LlJPT1RfTUFQUEVSX1VQREFURV9GVU5DVElPTl9JRF9GT1JfVEhFX01FTlVfSVRFTSksIGFsZXJ0T3B0aW9ucylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGVmYXVsdEFjdGlvbkxpc3RlbmVyVG9nZ2xlKGU6IGFueSkge1xyXG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmRlYnVnZ2luZyQubmV4dCghdGhpcy5hY3Rpb25TZXJ2aWNlLmRlYnVnZ2luZyQudmFsdWUpXHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4Py51bnN1YnNjcmliZSgpKTtcclxuICAgIGNvbnN0IG5ld0luc3RhbmNlcyA9IHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5pbnN0YW5jZXMuZmlsdGVyKHggPT4geC5pbnN0YW5jZU51bWJlciAhPT0gdGhpcy5pbnN0YW5jZU51bWJlcik7XHJcbiAgICB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaW5zdGFuY2VzID0gbmV3SW5zdGFuY2VzO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvcmUtYnV0dG9uLWdyb3VwLXZucy1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICBkaXNwbGF5OiAnZmxleCcsXHJcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcclxufVwiPlxyXG5cclxuICAgIEBpZiAoISFpc1Jvb3RVc2VyICYmICEhZm9ySGVhZGVyKSB7XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7IGhlaWdodDogaGVpZ2h0ICsgJ3B4JyB9XCIgY2xhc3M9XCJzZXR0aW5nLXRyaWdnZXIgZC1mbGV4IGQtZmxleC1jZW50ZXJcIiAoY2xpY2spPVwib25NYXBwZXJDbGljaygpXCJcclxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1VJX0JVVFRPTl9HUk9VUF9TRVRUSU5HX0FERF9SRU1PVkVfQUNUSU9OX0lURU1fRk9SX1RISVNfU0NSRUVOJyB8IHRyYW5zbGF0ZSA6IGxhbmdcIlxyXG4gICAgICAgICAgICBwb3NpdGlvbj1cImxlZnRcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXNldHRpbmdzXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGhlaWdodCArICdweCcgfVwiIGNsYXNzPVwiZGVidWdnaW5nIGQtZmxleCBkLWZsZXgtY2VudGVyXCIgKGNsaWNrKT1cIm9uRGVmYXVsdEFjdGlvbkxpc3RlbmVyVG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVUlfQlVUVE9OX0dST1VQX0RFQlVHR0lOR19UT0dHTEUnIHwgdHJhbnNsYXRlIDogbGFuZ1wiPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3MuZmVhdGhlci1wbGF5XT1cIiEhZGVidWdnaW5nXCIgW2NsYXNzLmZlYXRoZXItc3RvcC1jaXJjbGVdPVwiIWRlYnVnZ2luZ1wiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBoZWlnaHQgKyAncHgnIH1cIiBjbGFzcz1cInNlcGFyYXRvciBtcjE1XCI+PC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgQGZvciAoYnV0dG9uIG9mIGJ1dHRvbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgQGlmICghYnV0dG9uLmhpZGRlbikge1xyXG4gICAgPGNvcmUtYnV0dG9uLXZucyBbc2hvd0NhcHRpb25dPVwic2hvd0NhcHRpb25cIiBbZGF0YV09XCJidXR0b25cIiBbaW5zdGFuY2VOdW1iZXJdPVwiaW5zdGFuY2VOdW1iZXJcIlxyXG4gICAgICAgIChidXR0b25DbGljayk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIj48L2NvcmUtYnV0dG9uLXZucz5cclxuICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKCEhaXNSb290VXNlciAmJiAhIWZvckhlYWRlciAmJiAhISFidXR0b25zLmxlbmd0aCkge1xyXG4gICAgPHNwYW4+e3sgY3VycmVudEZ1bmN0aW9uQXNzaWdtZW50RG9uZSA/ICgnVUlfQlVUVE9OX0dST1VQX05PX0lURU1fQVZBSUxBQkxFX1lFVCcgfCB0cmFuc2xhdGUgOiBsYW5nKSA6ICcnIH19PC9zcGFuPlxyXG4gICAgfVxyXG48L2Rpdj4iXX0=
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tZ3JvdXAtdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF5QixNQUFNLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBR25JLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUd6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxn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LENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMxRSxDQUFDO0lBRVEsV0FBVztRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakgsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7SUFDdkQsQ0FBQzs4R0FoS1UsMkJBQTJCO2tHQUEzQiwyQkFBMkIsc1hDbEN4QywrOUNBNEJNLHlrQ0RIRixZQUFZLG9IQUNaLHNCQUFzQixnTEFFdEIsYUFBYSxrREFDYixnQkFBZ0I7OzJGQUtQLDJCQUEyQjtrQkFidkMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsZ0JBQWdCO3FCQUNqQjtpUUFNUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgT25EZXN0cm95LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSUNvcmVCdXR0b25WTlMgfSBmcm9tICcuL0lDb3JlQnV0dG9uVk5TJztcclxuaW1wb3J0IHsgRW51bUNvcmVCdXR0b25WTlNDb2RlIH0gZnJvbSAnLi9FbnVtQ29yZUJ1dHRvblZOU0NvZGUnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1jb21wb25lbnQvYmFzZS9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb3JlQnV0dG9uR3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS1idXR0b24tZ3JvdXAtc2VydmljZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgSUZ1bmN0aW9uV2l0aEZ1bGxBY3Rpb25zLCBSb3V0aW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JvdXRpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2FsZXJ0T3B0aW9ucyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hcEF2YXRhclRvU2VydmVyUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy9tYXAtYXZhdGFyLXRvLXNlcnZlci5waXBlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IENvcmVCdXR0b25WbnNDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi12bnMvY29yZS1idXR0b24tdm5zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ09SRV9WTlNfQlVUVE9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9DT1JFX1ZOU19CVVRUT05TJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FjdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1idXR0b24tZ3JvdXAtdm5zJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIENvcmVCdXR0b25WbnNDb21wb25lbnQsXHJcbiAgICBNYXBBdmF0YXJUb1NlcnZlclBpcGUsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1idXR0b24tZ3JvdXAtdm5zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVCdXR0b25Hcm91cFZuc0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KCkgaGVpZ2h0ITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGluc3RhbmNlTnVtYmVyITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGZvckhlYWRlciE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZml4ZWRTaG93ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93bkl0ZW1zITogKEVudW1Db3JlQnV0dG9uVk5TQ29kZSB8IHN0cmluZylbXSA7XHJcbiAgQElucHV0KCkgc2hvd0NhcHRpb24hOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGxhc3RDaGlsZEVmZmVjdE9mZjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8SUNvcmVCdXR0b25WTlM+KCk7XHJcblxyXG4gIGJ1dHRvbnM6IElDb3JlQnV0dG9uVk5TW10gPSBbXTtcclxuXHJcbiAgaXNSb290VXNlciE6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgaXNBZG1pblVzZXIhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIHRoaXNSb3V0ZUZ1bmN0aW9uOiBJRnVuY3Rpb25XaXRoRnVsbEFjdGlvbnMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgY3VycmVudEZ1bmN0aW9uQXNzaWdtZW50RG9uZSE6IGJvb2xlYW47XHJcblxyXG4gIGRlYnVnZ2luZyE6IGJvb2xlYW47XHJcblxyXG4gIC8qIELhu5kgYmEgY8OhYyBuw7p0IGTGsOG7m2kgxJHDonkgY+G6p24g4bqpbi9oaeG7h24gdGhlbyB0w6xuaCBodeG7kW5nICovXHJcbiAgaGVhZGVyRWRpdCE6IElDb3JlQnV0dG9uVk5TW107XHJcbiAgaGVhZGVyU2F2ZSE6IElDb3JlQnV0dG9uVk5TW107XHJcbiAgaGVhZGVyQ2FuY2VsITogSUNvcmVCdXR0b25WTlNbXTtcclxuICAvKioqICovXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRpbmdTZXJ2aWNlOiBSb3V0aW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvcmVCdXR0b25Hcm91cFNlcnZpY2U6IENvcmVCdXR0b25Hcm91cFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1scyk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaW5zdGFuY2VzLnB1c2goe1xyXG4gICAgICBpbnN0YW5jZU51bWJlcjogdGhpcy5pbnN0YW5jZU51bWJlcixcclxuICAgICAgbXVzdEJlSGlkZGVuJDogbmV3IEJlaGF2aW9yU3ViamVjdDwoRW51bUNvcmVCdXR0b25WTlNDb2RlIHwgc3RyaW5nKVtdPihbXSlcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgIHRoaXMuaXNSb290VXNlciA9IHg/LmlzUm9vdDtcclxuICAgICAgICB0aGlzLmlzQWRtaW5Vc2VyID0geD8uaXNBZG1pbjtcclxuICAgICAgfSlcclxuICAgIClcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgIClcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5jdXJyZW50RnVuY3Rpb24kLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICB0aGlzLnRoaXNSb3V0ZUZ1bmN0aW9uID0geDtcclxuICAgICAgICBjb25zb2xlLmxvZygndGhpcy5mdW5jdGlvbiA9ICcsIHgpO1xyXG4gICAgICAgIHRoaXMuY3VycmVudEZ1bmN0aW9uQXNzaWdtZW50RG9uZSA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmICghIXRoaXMuZm9ySGVhZGVyKSB7XHJcbiAgICAgICAgICBpZiAoISF0aGlzLmlzUm9vdFVzZXIgfHwgISF0aGlzLmlzQWRtaW5Vc2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4gIXguaGlkZGVuKS5maWx0ZXIoYnV0dG9uID0+IHtcclxuICAgICAgICAgICAgICBpZiAoISF0aGlzLnRoaXNSb3V0ZUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50aGlzUm91dGVGdW5jdGlvbiEuYWN0aW9uQ29kZXMhLmluZGV4T2YoYnV0dG9uLmNvZGUpID49IDAgJiYgYnV0dG9uLmlzSGVhZGVyXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jdGlvbkZpbHRlciA9IHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWUhLnBlcm1pc3Npb25BY3Rpb25zLmZpbHRlcihwYSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHBhLmZ1bmN0aW9uSWQgPT09IHRoaXMudGhpc1JvdXRlRnVuY3Rpb24/LmlkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoZnVuY3Rpb25GaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgeyBhbGxvd2VkQWN0aW9uQ29kZXMgfSA9IGZ1bmN0aW9uRmlsdGVyWzBdO1xyXG4gICAgICAgICAgICAgIHRoaXMuYnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4gISEheC5oaWRkZW4pLmZpbHRlcihidXR0b24gPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFsbG93ZWRBY3Rpb25Db2RlcyEuaW5kZXhPZihidXR0b24uY29kZSkgPj0gMCAmJiBidXR0b24uaXNIZWFkZXJcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuYnV0dG9ucyA9IFtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFRvIGJlIGltcHJvdmVkXHJcbiAgICAgICAgICBpZiAoISEhdGhpcy5zaG93bkl0ZW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4gISEheC5pc0hlYWRlcilcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4gdGhpcy5zaG93bkl0ZW1zLmluY2x1ZGVzKHguY29kZSkpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoZTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cclxuICAgIGlmICghZVsnaGVpZ2h0J10/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAvLyBmYWxsYmFja1xyXG4gICAgICB0aGlzLmhlaWdodCA9IDMwO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghIWVbJ3Nob3duSXRlbXMnXT8uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9ucyA9IENPUkVfVk5TX0JVVFRPTlMuZmlsdGVyKHggPT4gdGhpcy5zaG93bkl0ZW1zLmluY2x1ZGVzKHguY29kZSkpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZml4ZWRTaG93KSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgIHRoaXMuYWN0aW9uU2VydmljZS5kZWJ1Z2dpbmckLnN1YnNjcmliZSh4ID0+IHRoaXMuZGVidWdnaW5nID0geClcclxuICAgICAgICApXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzd2FwVHJpb0VkaXRTYXZlQ2FuY2VsKGVkaXRBY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaGVhZGVyRWRpdCA9IHRoaXMuYnV0dG9ucy5maWx0ZXIoeCA9PiB4LmNvZGUgPT09IEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfRURJVCk7XHJcbiAgICB0aGlzLmhlYWRlclNhdmUgPSB0aGlzLmJ1dHRvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX1NBVkUpO1xyXG4gICAgdGhpcy5oZWFkZXJDYW5jZWwgPSB0aGlzLmJ1dHRvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0NBTkNFTCk7XHJcbiAgICBpZiAoZWRpdEFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmhlYWRlckVkaXRbMF0uaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgdGhpcy5oZWFkZXJTYXZlWzBdLmhpZGRlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmhlYWRlckNhbmNlbFswXS5oaWRkZW4gPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyRWRpdFswXS5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgdGhpcy5oZWFkZXJTYXZlWzBdLmhpZGRlbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuaGVhZGVyQ2FuY2VsWzBdLmhpZGRlbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkJ1dHRvbkNsaWNrKGU6IElDb3JlQnV0dG9uVk5TKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhcImJ1dHRvbi1ncm91cCBvbkJ1dHRvbkNsaWNrXCIsIGUpXHJcbiAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBvbk1hcHBlckNsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKCEhdGhpcy50aGlzUm91dGVGdW5jdGlvbikge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICBbXHJcbiAgICAgICAgICAnL3Jvb3QnLFxyXG4gICAgICAgICAgJ2FjdGlvbi1tYXBwZXInLFxyXG4gICAgICAgIF1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8odGhpcy5tbHMudHJhbnMoRW51bVRyYW5zbGF0ZUtleS5ST09UX01BUFBFUl9VUERBVEVfRlVOQ1RJT05fSURfRk9SX1RIRV9NRU5VX0lURU0pLCBhbGVydE9wdGlvbnMpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRlZmF1bHRBY3Rpb25MaXN0ZW5lclRvZ2dsZShlOiBhbnkpIHtcclxuICAgIHRoaXMuYWN0aW9uU2VydmljZS5kZWJ1Z2dpbmckLm5leHQoIXRoaXMuYWN0aW9uU2VydmljZS5kZWJ1Z2dpbmckLnZhbHVlKVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4geD8udW5zdWJzY3JpYmUoKSk7XHJcbiAgICBjb25zdCBuZXdJbnN0YW5jZXMgPSB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaW5zdGFuY2VzLmZpbHRlcih4ID0+IHguaW5zdGFuY2VOdW1iZXIgIT09IHRoaXMuaW5zdGFuY2VOdW1iZXIpO1xyXG4gICAgdGhpcy5jb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLmluc3RhbmNlcyA9IG5ld0luc3RhbmNlcztcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb3JlLWJ1dHRvbi1ncm91cC12bnMtY29udGFpbmVyXCIgW25nU3R5bGVdPVwie1xyXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxyXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXHJcbn1cIj5cclxuXHJcbiAgICBAaWYgKCEhaXNSb290VXNlciAmJiAhIWZvckhlYWRlcikge1xyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGhlaWdodCArICdweCcgfVwiIGNsYXNzPVwic2V0dGluZy10cmlnZ2VyIGQtZmxleCBkLWZsZXgtY2VudGVyXCIgKGNsaWNrKT1cIm9uTWFwcGVyQ2xpY2soKVwiXHJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidVSV9CVVRUT05fR1JPVVBfU0VUVElOR19BRERfUkVNT1ZFX0FDVElPTl9JVEVNX0ZPUl9USElTX1NDUkVFTicgfCB0cmFuc2xhdGUgOiBsYW5nXCJcclxuICAgICAgICAgICAgcG9zaXRpb249XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1zZXR0aW5nc1wiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBoZWlnaHQgKyAncHgnIH1cIiBjbGFzcz1cImRlYnVnZ2luZyBkLWZsZXggZC1mbGV4LWNlbnRlclwiIChjbGljayk9XCJvbkRlZmF1bHRBY3Rpb25MaXN0ZW5lclRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1VJX0JVVFRPTl9HUk9VUF9ERUJVR0dJTkdfVE9HR0xFJyB8IHRyYW5zbGF0ZSA6IGxhbmdcIj5cclxuICAgICAgICAgICAgPGkgW2NsYXNzLmZlYXRoZXItcGxheV09XCIhIWRlYnVnZ2luZ1wiIFtjbGFzcy5mZWF0aGVyLXN0b3AtY2lyY2xlXT1cIiFkZWJ1Z2dpbmdcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7IGhlaWdodDogaGVpZ2h0ICsgJ3B4JyB9XCIgY2xhc3M9XCJzZXBhcmF0b3IgbXIxNVwiPjwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIEBmb3IgKGJ1dHRvbiBvZiBidXR0b25zOyB0cmFjayAkaW5kZXgpIHtcclxuICAgIEBpZiAoIWJ1dHRvbi5oaWRkZW4pIHtcclxuICAgIDxjb3JlLWJ1dHRvbi12bnMgW3Nob3dDYXB0aW9uXT1cInNob3dDYXB0aW9uXCIgW2RhdGFdPVwiYnV0dG9uXCIgW2xhc3RDaGlsZEVmZmVjdE9mZl09XCJsYXN0Q2hpbGRFZmZlY3RPZmZcIiBbaW5zdGFuY2VOdW1iZXJdPVwiaW5zdGFuY2VOdW1iZXJcIlxyXG4gICAgICAgIChidXR0b25DbGljayk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIj48L2NvcmUtYnV0dG9uLXZucz5cclxuICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKCEhaXNSb290VXNlciAmJiAhIWZvckhlYWRlciAmJiAhISFidXR0b25zLmxlbmd0aCkge1xyXG4gICAgPHNwYW4+e3sgY3VycmVudEZ1bmN0aW9uQXNzaWdtZW50RG9uZSA/ICgnVUlfQlVUVE9OX0dST1VQX05PX0lURU1fQVZBSUxBQkxFX1lFVCcgfCB0cmFuc2xhdGUgOiBsYW5nKSA6ICcnIH19PC9zcGFuPlxyXG4gICAgfVxyXG48L2Rpdj4iXX0=
@@ -23,6 +23,7 @@ export class CoreButtonVnsComponent {
23
23
  this.domService = domService;
24
24
  this.actionService = actionService;
25
25
  this.showCaption = false;
26
+ this.lastChildEffectOff = false;
26
27
  this.buttonClick = new EventEmitter();
27
28
  this.subscriptions = [];
28
29
  this.toolTipPosition = "under";
@@ -67,14 +68,16 @@ export class CoreButtonVnsComponent {
67
68
  setTimeout(() => {
68
69
  // Get the parent container element
69
70
  const parentElement = this.elRef.nativeElement.closest('.core-button-group-vns-container');
70
- // Check if the current element is the last child of the parent container
71
- if (parentElement && parentElement.lastElementChild === this.elRef.nativeElement) {
72
- this.isLastChildOfGroup = true;
73
- // Add a class or perform any operation you need
74
- this.renderer.addClass(this.elRef.nativeElement, 'last-child');
75
- }
76
- else {
77
- this.isLastChildOfGroup = false;
71
+ if (!this.lastChildEffectOff) {
72
+ // Check if the current element is the last child of the parent container
73
+ if (parentElement && parentElement.lastElementChild === this.elRef.nativeElement) {
74
+ this.isLastChildOfGroup = true;
75
+ // Add a class or perform any operation you need
76
+ this.renderer.addClass(this.elRef.nativeElement, 'last-child');
77
+ }
78
+ else {
79
+ this.isLastChildOfGroup = false;
80
+ }
78
81
  }
79
82
  this.subscriptions.push(this.actionService.debugging$.subscribe(x => this.debugging = x));
80
83
  this.subscriptions.push(this.clickStream$.pipe(buffer(this.clickStream$.pipe(debounceTime(250))), map(clicks => clicks.length), filter(clicksLength => clicksLength >= 5))
@@ -133,7 +136,7 @@ export class CoreButtonVnsComponent {
133
136
  }
134
137
  }
135
138
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonVnsComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.CoreButtonGroupService }, { token: i3.AlertService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i4.DomService }, { token: i5.ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
136
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreButtonVnsComponent, isStandalone: true, selector: "core-button-vns", inputs: { height: "height", data: "data", instanceNumber: "instanceNumber", disabled: "disabled", showCaption: "showCaption" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n <!-- @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else { -->\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-flex; align-items: center;\" [innerHtml]=\"(iconSvg || defaultSvg) | stringHtml\">\r\n </i>\r\n <!-- } -->\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button type=\"button\" [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }] }); }
139
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreButtonVnsComponent, isStandalone: true, selector: "core-button-vns", inputs: { height: "height", data: "data", instanceNumber: "instanceNumber", disabled: "disabled", showCaption: "showCaption", lastChildEffectOff: "lastChildEffectOff" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n <!-- @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else { -->\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-flex; align-items: center;\" [innerHtml]=\"(iconSvg || defaultSvg) | stringHtml\">\r\n </i>\r\n <!-- } -->\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button type=\"button\" [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }] }); }
137
140
  }
138
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonVnsComponent, decorators: [{
139
142
  type: Component,
@@ -153,10 +156,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
153
156
  type: Input
154
157
  }], showCaption: [{
155
158
  type: Input
159
+ }], lastChildEffectOff: [{
160
+ type: Input
156
161
  }], buttonClick: [{
157
162
  type: Output
158
163
  }], container: [{
159
164
  type: ViewChild,
160
165
  args: ["container"]
161
166
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tdm5zL2NvcmUtYnV0dG9uLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLXZucy9jb3JlLWJ1dHRvbi12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE0QixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBS3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7QUFjdkUsTUFBTSxPQUFPLHNCQUFzQjtJQTRCakMsWUFDVSxHQUF5QixFQUN6QixzQkFBOEMsRUFDOUMsWUFBMEIsRUFDMUIsS0FBaUIs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TUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBidWZmZXIsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJQ29yZUJ1dHRvbkRyb3Bkb3duT3B0aW9uLCBJQ29yZUJ1dHRvblZOUyB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9JQ29yZUJ1dHRvblZOUyc7XHJcbmltcG9ydCB7IENvcmVCdXR0b25Hcm91cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi1ncm91cC1zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XHJcbmltcG9ydCB7IEVudW1Db3JlQnV0dG9uVk5TQ29kZSB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGUnO1xyXG5pbXBvcnQgeyBTdHJpbmdIdG1sUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy9zdHJpbmctaHRtbC5waXBlJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgREVGQVVMVF9TVkcgfSBmcm9tICcuLi8uLi9uYXZpZ2F0b3IvbmF2aWdhdG9yL2l0ZW0uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1idXR0b24tdm5zJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgU3RyaW5nSHRtbFBpcGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUJ1dHRvblZuc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KCkgaGVpZ2h0ITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGRhdGEhOiBJQ29yZUJ1dHRvblZOUztcclxuICBASW5wdXQoKSBpbnN0YW5jZU51bWJlciE6IG51bWJlcjtcclxuICBASW5wdXQoKSBkaXNhYmxlZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0NhcHRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPElDb3JlQnV0dG9uVk5TPigpO1xyXG5cclxuICBAVmlld0NoaWxkKFwiY29udGFpbmVyXCIpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGxhbmchOiBzdHJpbmdcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIGhpZGRlbiE6IGJvb2xlYW47XHJcbiAgdG9vbFRpcFBvc2l0aW9uID0gXCJ1bmRlclwiO1xyXG5cclxuICBsaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuICBleHBhbmRTdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBpY29uU3ZnPzogc3RyaW5nO1xyXG5cclxuICBjbGlja1N0cmVhbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG5cclxuICBkZWJ1Z2dpbmchOiBib29sZWFuO1xyXG5cclxuICBpc0xhc3RDaGlsZE9mR3JvdXAhOiBib29sZWFuO1xyXG4gIGRlZmF1bHRTdmcgPSBERUZBVUxUX1NWRztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvcmVCdXR0b25Hcm91cFNlcnZpY2U6IENvcmVCdXR0b25Hcm91cFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBkb21TZXJ2aWNlOiBEb21TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBBY3Rpb25TZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoIWNoYW5nZXNbJ2hlaWdodCddPy5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgLy9mYWxsYmFja1xyXG4gICAgICB0aGlzLmhlaWdodCA9IDMwO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuaWNvblN2ZyA9IHRoaXMuYWN0aW9uU2VydmljZS5hY3Rpb25NYXAuZ2V0KHRoaXMuZGF0YS5jb2RlKT8uaWNvblN2ZztcclxuXHJcbiAgICBpZiAoISF0aGlzLmRhdGEuZHJvcGRvd25PcHRpb25zPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy50b29sVGlwUG9zaXRpb24gPSBcImxlZnRcIjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgIClcclxuXHJcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaW5zdGFuY2VzLmZpbHRlcih4ID0+IHguaW5zdGFuY2VOdW1iZXIgPT09IHRoaXMuaW5zdGFuY2VOdW1iZXIpO1xyXG4gICAgaWYgKCEhZmlsdGVyLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICBmaWx0ZXJbMF0ubXVzdEJlSGlkZGVuJC5zdWJzY3JpYmUobWJoID0+IHRoaXMuaGlkZGVuID0gbWJoLmluY2x1ZGVzKHRoaXMuZGF0YS5jb2RlKSlcclxuICAgICAgKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIC8vICAgdGhpcy5hbGVydFNlcnZpY2Uud2FybihcIktow7RuZyB0w6xtIHRo4bqleSBpbnN0YW5jZSBudW1iZXIgY+G7p2EgbmjDs20gbsO6dFwiLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZXZlbnRzIGdldCBjYWxsZWQgYnkgYWxsIGNsaWNrcyBvbiB0aGUgcGFnZVxyXG4gICAgICovXHJcbiAgICB0aGlzLmxpc3RlbmVyRm4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgIC8qXHJcbiAgICAgICAqIGhhbmRsZSBjbGljayBvdXRzaWRlXHJcbiAgICAgICAqL1xyXG4gICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgISEhdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhlLnRhcmdldCkpIHtcclxuICAgICAgICB0aGlzLmV4cGFuZFN0YXRlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgLy8gR2V0IHRoZSBwYXJlbnQgY29udGFpbmVyIGVsZW1lbnRcclxuICAgICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuY29yZS1idXR0b24tZ3JvdXAtdm5zLWNvbnRhaW5lcicpO1xyXG5cclxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyB0aGUgbGFzdCBjaGlsZCBvZiB0aGUgcGFyZW50IGNvbnRhaW5lclxyXG4gICAgICBpZiAocGFyZW50RWxlbWVudCAmJiBwYXJlbnRFbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQgPT09IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgIHRoaXMuaXNMYXN0Q2hpbGRPZkdyb3VwID0gdHJ1ZTtcclxuICAgICAgICAvLyBBZGQgYSBjbGFzcyBvciBwZXJmb3JtIGFueSBvcGVyYXRpb24geW91IG5lZWRcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2xhc3QtY2hpbGQnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzTGFzdENoaWxkT2ZHcm91cCA9IGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmFjdGlvblNlcnZpY2UuZGVidWdnaW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmRlYnVnZ2luZyA9IHgpXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2xpY2tTdHJlYW0kLnBpcGUoXHJcbiAgICAgICAgICBidWZmZXIodGhpcy5jbGlja1N0cmVhbSQucGlwZShkZWJvdW5jZVRpbWUoMjUwKSkpLFxyXG4gICAgICAgICAgbWFwKGNsaWNrcyA9PiBjbGlja3MubGVuZ3RoKSxcclxuICAgICAgICAgIGZpbHRlcihjbGlja3NMZW5ndGggPT4gY2xpY2tzTGVuZ3RoID49IDUpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pY29uU3ZnID0gdGhpcy5hY3Rpb25TZXJ2aWNlLmFjdGlvbk1hcC5nZXQodGhpcy5kYXRhLmNvZGUpPy5pY29uU3ZnXHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uU2VydmljZS5zaG93RWRpdFN2ZyQubmV4dCh0cnVlKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIGlmICh0aGlzLmRhdGEuaXNEcm9wZG93bikge1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGF0YS5jb2RlKSB7XHJcbiAgICAgICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfRFJPUERPV05fUFJJTlQ6XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICAgIHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5oZWFkZXJCdXR0b25QcmludERyb3Bkb3duT3B0aW9ucyQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLmRyb3Bkb3duT3B0aW9ucyA9IHhcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0RST1BET1dOX1NFVF9XT1JLX1NDSEVEVUxFOlxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgICB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaGVhZGVyQnV0dG9uU2V0V29ya1NjaGVkdWxlRHJvcGRvd25PcHRpb25zJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuZHJvcGRvd25PcHRpb25zID0geFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBvbkJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwib25CdXR0b25DbGljaz09PT09PT09PT09PT09PT09PT09PT09PT5cIilcclxuXHJcbiAgICB0aGlzLmNsaWNrU3RyZWFtJC5uZXh0KGNyeXB0by5yYW5kb21VVUlEKCkpO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuaXNIZWFkZXIpIHtcclxuICAgICAgY29uc3QgYWN0aW9uQ29kZSA9IHRoaXMuZGF0YS5jb2RlO1xyXG4gICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFjdGlvblNlcnZpY2UuYWN0aW9uTWFwLmdldChhY3Rpb25Db2RlKTtcclxuICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmNsaWNrZWRJdGVtJC5uZXh0KGFjdGlvbilcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oaWRkZW4pIHJldHVybjtcclxuXHJcbiAgICBpZiAoIXRoaXMuZGF0YS5pc0hlYWRlcikge1xyXG4gICAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGE/LmlzRHJvcGRvd24pIHtcclxuICAgICAgICB0aGlzLmV4cGFuZFN0YXRlID0gIXRoaXMuZXhwYW5kU3RhdGU7ICBcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGVidWdnaW5nKSB7XHJcbiAgICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTsgICAgXHJcbiAgICAgICAgfSAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGlsZENsaWNrKGl0ZW06IElDb3JlQnV0dG9uRHJvcGRvd25PcHRpb24sIGU6IGFueSkge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICghdGhpcy5kZWJ1Z2dpbmcgJiYgISF0aGlzLmRhdGE/LmlzRHJvcGRvd24pIHtcclxuICAgICAgdGhpcy5kYXRhLmNoaWxkQ29kZUNsaWNrZWQgPSBpdGVtLmNoaWxkQ29kZTtcclxuICAgICAgdGhpcy5idXR0b25DbGljay5lbWl0KHRoaXMuZGF0YSk7XHJcbiAgICAgIHRoaXMuZXhwYW5kU3RhdGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb3JlLWJ1dHRvbi12bnMtY29udGFpbmVyXCIgI2NvbnRhaW5lciBzdHlsZT1cImhlaWdodDogMzBweDtcIiBbY2xhc3MuYWxwaGEtaGVhZGVyLWJ1dHRvbl09XCIhIWRhdGEuaXNIZWFkZXJcIlxyXG4gICAgW2NsYXNzLmFscGhhLW5vbi1oZWFkZXItYnRuXT1cIiFkYXRhLmlzSGVhZGVyXCIgW2FwcFRvb2x0aXBdPVwiZGF0YS5jYXB0aW9uIHwgdHJhbnNsYXRlOiBsYW5nXCJcclxuICAgIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKClcIiBbbmdTdHlsZV09XCJ7IFxyXG4gICAgICAgICAgICB3aWR0aDogISFkYXRhLmlzSGVhZGVyID8gKGRhdGEud2l0aERpdmlkZXIgPyAyICogaGVpZ2h0ICsgJ3B4JyA6IGhlaWdodCArICdweCcpIDogJ2F1dG8nLFxyXG4gICAgICAgIH1cIj5cclxuXHJcblxyXG4gICAgQGlmICghIWRhdGEuaXNIZWFkZXIpIHtcclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi13cmFwcGVyXCIgW2NsYXNzLnBvaW50ZXJdPVwiIWhpZGRlblwiIFtjbGFzcy5sYXN0LWNoaWxkXT1cImlzTGFzdENoaWxkT2ZHcm91cFwiIFtjbGFzcy50ZW1wb3JhcnktdW5hdmFpbGFibGVdPVwiISFoaWRkZW5cIj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gQGlmICghaWNvblN2ZyB8fCAhaWNvblN2Zz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIDxpIHNyYz1cIlwiIFtjbGFzc109XCJkYXRhLmljb25DbGFzc1wiIFtjbGFzcy50ZW1wb3JhcnktdW5hdmFpbGFibGVdPVwiISFoaWRkZW5cIj48L2k+XHJcbiAgICAgICAgICAgIH0gQGVsc2UgeyAtLT5cclxuICAgICAgICAgICAgPGkgW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCIgW2lubmVySHRtbF09XCIoaWNvblN2ZyB8fCBkZWZhdWx0U3ZnKSB8IHN0cmluZ0h0bWxcIj5cclxuICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICA8IS0tIH0gLS0+XHJcbiAgICBcclxuICAgICAgICAgICAgQGlmICghIWRhdGEuaXNEcm9wZG93bikge1xyXG4gICAgICAgICAgICA8ZGl2ICNkcm9wZG93biBjbGFzcz1cImhlYWRlci1idXR0b24tZHJvcGRvd24td3JhcHBlclwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogISFleHBhbmRTdGF0ZSA/ICdibG9jaycgOiAnbm9uZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzEwMHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogZG9tU2VydmljZS5nZXRNYXhaSW5kZXgoKSArIDFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBkYXRhLmRyb3Bkb3duT3B0aW9ucyE7IHRyYWNrIGl0ZW0pIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYnV0dG9uLWRyb3Bkb3duLWxpbmVcIiAoY2xpY2spPVwib25DaGlsZENsaWNrKGl0ZW0sICRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiaXRlbS5jaGlsZEljb25XcmFwcGVyQ2xhc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIml0ZW0uY2hpbGRJY29uQ2xhc3NcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIFthcHBUb29sdGlwXT1cIml0ZW0uY2hpbGRDYXB0aW9uQ29kZSB8IHRyYW5zbGF0ZTogbGFuZ1wiPnt7IGl0ZW0uY2hpbGRDYXB0aW9uQ29kZSB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZTogbGFuZyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgIEBpZiAoISFzaG93Q2FwdGlvbiB8fCAhIWRhdGEuc2hvd0NhcHRpb24pIHtcclxuICAgICAgICAgICAgPHNwYW4gW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiIGNsYXNzPVwiYnV0dG9uLWNhcHRpb25cIj57eyBkYXRhLmNhcHRpb24gfCB0cmFuc2xhdGU6IGxhbmdcclxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgIEBpZiAoISFkYXRhLndpdGhEaXZpZGVyKSB7XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7IGhlaWdodDogaGVpZ2h0ICsgJ3B4JywgZGlzcGxheTogJ2lubGluZS1ibG9jaycgfVwiIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICB9IEBlbHNlIHtcclxuXHJcblxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtjbGFzcy50ZW1wb3JhcnktdW5hdmFpbGFibGVdPVwiISFoaWRkZW5cIiBbY2xhc3MubGFzdC1jaGlsZF09XCJpc0xhc3RDaGlsZE9mR3JvdXBcIiBjbGFzcz1cImJ0bi1mb3ItZm9ybSBidG4gYnRuLXNlY29uZGFyeVwiPnt7IGRhdGEuY2FwdGlvbiB8IHRyYW5zbGF0ZTogbGFuZ1xyXG4gICAgICAgICAgICAgICAgfX08L2J1dHRvbj5cclxuXHJcbiAgICB9XHJcblxyXG5cclxuPC9kaXY+Il19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tdm5zL2NvcmUtYnV0dG9uLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLXZucy9jb3JlLWJ1dHRvbi12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE0QixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBS3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7QUFjdkUsTUFBTSxPQUFPLHNCQUFzQjtJQTZCakMsWUFDVSxHQUF5QixFQUN6QixzQkFBOEMsRUFDOUMsWUFBMEIsRUFDMUIsS0FBaUIs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LGNBQ2YsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2Y7K1BBTVEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgYnVmZmVyLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSUNvcmVCdXR0b25Ecm9wZG93bk9wdGlvbiwgSUNvcmVCdXR0b25WTlMgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi1ncm91cC12bnMvSUNvcmVCdXR0b25WTlMnO1xyXG5pbXBvcnQgeyBDb3JlQnV0dG9uR3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS1idXR0b24tZ3JvdXAtc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEb21TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG9tLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUJ1dHRvblZOU0NvZGUgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi1ncm91cC12bnMvRW51bUNvcmVCdXR0b25WTlNDb2RlJztcclxuaW1wb3J0IHsgU3RyaW5nSHRtbFBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvc3RyaW5nLWh0bWwucGlwZSc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERFRkFVTFRfU1ZHIH0gZnJvbSAnLi4vLi4vbmF2aWdhdG9yL25hdmlnYXRvci9pdGVtLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtYnV0dG9uLXZucycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcclxuICAgIFN0cmluZ0h0bWxQaXBlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtYnV0dG9uLXZucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NvcmUtYnV0dG9uLXZucy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVCdXR0b25WbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGhlaWdodCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBkYXRhITogSUNvcmVCdXR0b25WTlM7XHJcbiAgQElucHV0KCkgaW5zdGFuY2VOdW1iZXIhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dDYXB0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbGFzdENoaWxkRWZmZWN0T2ZmOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxJQ29yZUJ1dHRvblZOUz4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZChcImNvbnRhaW5lclwiKSBjb250YWluZXIhOiBFbGVtZW50UmVmO1xyXG5cclxuICBsYW5nITogc3RyaW5nXHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBoaWRkZW4hOiBib29sZWFuO1xyXG4gIHRvb2xUaXBQb3NpdGlvbiA9IFwidW5kZXJcIjtcclxuXHJcbiAgbGlzdGVuZXJGbiE6ICgpID0+IHZvaWQ7XHJcbiAgZXhwYW5kU3RhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgaWNvblN2Zz86IHN0cmluZztcclxuXHJcbiAgY2xpY2tTdHJlYW0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuXHJcbiAgZGVidWdnaW5nITogYm9vbGVhbjtcclxuXHJcbiAgaXNMYXN0Q2hpbGRPZkdyb3VwITogYm9vbGVhbjtcclxuICBkZWZhdWx0U3ZnID0gREVGQVVMVF9TVkc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb3JlQnV0dG9uR3JvdXBTZXJ2aWNlOiBDb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZG9tU2VydmljZTogRG9tU2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aW9uU2VydmljZTogQWN0aW9uU2VydmljZSxcclxuICApIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCFjaGFuZ2VzWydoZWlnaHQnXT8uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIC8vZmFsbGJhY2tcclxuICAgICAgdGhpcy5oZWlnaHQgPSAzMDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmljb25TdmcgPSB0aGlzLmFjdGlvblNlcnZpY2UuYWN0aW9uTWFwLmdldCh0aGlzLmRhdGEuY29kZSk/Lmljb25Tdmc7XHJcblxyXG4gICAgaWYgKCEhdGhpcy5kYXRhLmRyb3Bkb3duT3B0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudG9vbFRpcFBvc2l0aW9uID0gXCJsZWZ0XCI7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMubGFuZyA9IHgpXHJcbiAgICApXHJcblxyXG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5jb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLmluc3RhbmNlcy5maWx0ZXIoeCA9PiB4Lmluc3RhbmNlTnVtYmVyID09PSB0aGlzLmluc3RhbmNlTnVtYmVyKTtcclxuICAgIGlmICghIWZpbHRlci5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgZmlsdGVyWzBdLm11c3RCZUhpZGRlbiQuc3Vic2NyaWJlKG1iaCA9PiB0aGlzLmhpZGRlbiA9IG1iaC5pbmNsdWRlcyh0aGlzLmRhdGEuY29kZSkpXHJcbiAgICAgIClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAvLyAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm4oXCJLaMO0bmcgdMOsbSB0aOG6pXkgaW5zdGFuY2UgbnVtYmVyIGPhu6dhIG5ow7NtIG7DunRcIiwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpO1xyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGV2ZW50cyBnZXQgY2FsbGVkIGJ5IGFsbCBjbGlja3Mgb24gdGhlIHBhZ2VcclxuICAgICAqL1xyXG4gICAgdGhpcy5saXN0ZW5lckZuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdjbGljaycsIChlOiBFdmVudCkgPT4ge1xyXG4gICAgICAvKlxyXG4gICAgICAgKiBoYW5kbGUgY2xpY2sgb3V0c2lkZVxyXG4gICAgICAgKi9cclxuICAgICAgaWYgKHRoaXMuY29udGFpbmVyICYmICEhIXRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpKSB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIC8vIEdldCB0aGUgcGFyZW50IGNvbnRhaW5lciBlbGVtZW50XHJcbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnLmNvcmUtYnV0dG9uLWdyb3VwLXZucy1jb250YWluZXInKTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5sYXN0Q2hpbGRFZmZlY3RPZmYpIHtcclxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIHRoZSBsYXN0IGNoaWxkIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyXHJcbiAgICAgICAgaWYgKHBhcmVudEVsZW1lbnQgJiYgcGFyZW50RWxlbWVudC5sYXN0RWxlbWVudENoaWxkID09PSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgIHRoaXMuaXNMYXN0Q2hpbGRPZkdyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgIC8vIEFkZCBhIGNsYXNzIG9yIHBlcmZvcm0gYW55IG9wZXJhdGlvbiB5b3UgbmVlZFxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsICdsYXN0LWNoaWxkJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaXNMYXN0Q2hpbGRPZkdyb3VwID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmFjdGlvblNlcnZpY2UuZGVidWdnaW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmRlYnVnZ2luZyA9IHgpXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2xpY2tTdHJlYW0kLnBpcGUoXHJcbiAgICAgICAgICBidWZmZXIodGhpcy5jbGlja1N0cmVhbSQucGlwZShkZWJvdW5jZVRpbWUoMjUwKSkpLFxyXG4gICAgICAgICAgbWFwKGNsaWNrcyA9PiBjbGlja3MubGVuZ3RoKSxcclxuICAgICAgICAgIGZpbHRlcihjbGlja3NMZW5ndGggPT4gY2xpY2tzTGVuZ3RoID49IDUpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pY29uU3ZnID0gdGhpcy5hY3Rpb25TZXJ2aWNlLmFjdGlvbk1hcC5nZXQodGhpcy5kYXRhLmNvZGUpPy5pY29uU3ZnXHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uU2VydmljZS5zaG93RWRpdFN2ZyQubmV4dCh0cnVlKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIGlmICh0aGlzLmRhdGEuaXNEcm9wZG93bikge1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGF0YS5jb2RlKSB7XHJcbiAgICAgICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfRFJPUERPV05fUFJJTlQ6XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICAgIHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5oZWFkZXJCdXR0b25QcmludERyb3Bkb3duT3B0aW9ucyQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLmRyb3Bkb3duT3B0aW9ucyA9IHhcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0RST1BET1dOX1NFVF9XT1JLX1NDSEVEVUxFOlxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgICB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaGVhZGVyQnV0dG9uU2V0V29ya1NjaGVkdWxlRHJvcGRvd25PcHRpb25zJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuZHJvcGRvd25PcHRpb25zID0geFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBvbkJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwib25CdXR0b25DbGljaz09PT09PT09PT09PT09PT09PT09PT09PT5cIilcclxuXHJcbiAgICB0aGlzLmNsaWNrU3RyZWFtJC5uZXh0KGNyeXB0by5yYW5kb21VVUlEKCkpO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuaXNIZWFkZXIpIHtcclxuICAgICAgY29uc3QgYWN0aW9uQ29kZSA9IHRoaXMuZGF0YS5jb2RlO1xyXG4gICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFjdGlvblNlcnZpY2UuYWN0aW9uTWFwLmdldChhY3Rpb25Db2RlKTtcclxuICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmNsaWNrZWRJdGVtJC5uZXh0KGFjdGlvbilcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oaWRkZW4pIHJldHVybjtcclxuXHJcbiAgICBpZiAoIXRoaXMuZGF0YS5pc0hlYWRlcikge1xyXG4gICAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGE/LmlzRHJvcGRvd24pIHtcclxuICAgICAgICB0aGlzLmV4cGFuZFN0YXRlID0gIXRoaXMuZXhwYW5kU3RhdGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRlYnVnZ2luZykge1xyXG4gICAgICAgICAgdGhpcy5idXR0b25DbGljay5lbWl0KHRoaXMuZGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoaWxkQ2xpY2soaXRlbTogSUNvcmVCdXR0b25Ecm9wZG93bk9wdGlvbiwgZTogYW55KSB7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKCF0aGlzLmRlYnVnZ2luZyAmJiAhIXRoaXMuZGF0YT8uaXNEcm9wZG93bikge1xyXG4gICAgICB0aGlzLmRhdGEuY2hpbGRDb2RlQ2xpY2tlZCA9IGl0ZW0uY2hpbGRDb2RlO1xyXG4gICAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTtcclxuICAgICAgdGhpcy5leHBhbmRTdGF0ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvcmUtYnV0dG9uLXZucy1jb250YWluZXJcIiAjY29udGFpbmVyIHN0eWxlPVwiaGVpZ2h0OiAzMHB4O1wiIFtjbGFzcy5hbHBoYS1oZWFkZXItYnV0dG9uXT1cIiEhZGF0YS5pc0hlYWRlclwiXHJcbiAgICBbY2xhc3MuYWxwaGEtbm9uLWhlYWRlci1idG5dPVwiIWRhdGEuaXNIZWFkZXJcIiBbYXBwVG9vbHRpcF09XCJkYXRhLmNhcHRpb24gfCB0cmFuc2xhdGU6IGxhbmdcIlxyXG4gICAgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soKVwiIFtuZ1N0eWxlXT1cInsgXHJcbiAgICAgICAgICAgIHdpZHRoOiAhIWRhdGEuaXNIZWFkZXIgPyAoZGF0YS53aXRoRGl2aWRlciA/IDIgKiBoZWlnaHQgKyAncHgnIDogaGVpZ2h0ICsgJ3B4JykgOiAnYXV0bycsXHJcbiAgICAgICAgfVwiPlxyXG5cclxuXHJcbiAgICBAaWYgKCEhZGF0YS5pc0hlYWRlcikge1xyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLXdyYXBwZXJcIiBbY2xhc3MucG9pbnRlcl09XCIhaGlkZGVuXCIgW2NsYXNzLmxhc3QtY2hpbGRdPVwiaXNMYXN0Q2hpbGRPZkdyb3VwXCIgW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBAaWYgKCFpY29uU3ZnIHx8ICFpY29uU3ZnPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgPGkgc3JjPVwiXCIgW2NsYXNzXT1cImRhdGEuaWNvbkNsYXNzXCIgW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiPjwvaT5cclxuICAgICAgICAgICAgfSBAZWxzZSB7IC0tPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3MudGVtcG9yYXJ5LXVuYXZhaWxhYmxlXT1cIiEhaGlkZGVuXCIgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIiBbaW5uZXJIdG1sXT1cIihpY29uU3ZnIHx8IGRlZmF1bHRTdmcpIHwgc3RyaW5nSHRtbFwiPlxyXG4gICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgIDwhLS0gfSAtLT5cclxuICAgIFxyXG4gICAgICAgICAgICBAaWYgKCEhZGF0YS5pc0Ryb3Bkb3duKSB7XHJcbiAgICAgICAgICAgIDxkaXYgI2Ryb3Bkb3duIGNsYXNzPVwiaGVhZGVyLWJ1dHRvbi1kcm9wZG93bi13cmFwcGVyXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAhIWV4cGFuZFN0YXRlID8gJ2Jsb2NrJyA6ICdub25lJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMTAwcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiBkb21TZXJ2aWNlLmdldE1heFpJbmRleCgpICsgMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGRhdGEuZHJvcGRvd25PcHRpb25zITsgdHJhY2sgaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1idXR0b24tZHJvcGRvd24tbGluZVwiIChjbGljayk9XCJvbkNoaWxkQ2xpY2soaXRlbSwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJpdGVtLmNoaWxkSWNvbldyYXBwZXJDbGFzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiaXRlbS5jaGlsZEljb25DbGFzc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgW2FwcFRvb2x0aXBdPVwiaXRlbS5jaGlsZENhcHRpb25Db2RlIHwgdHJhbnNsYXRlOiBsYW5nXCI+e3sgaXRlbS5jaGlsZENhcHRpb25Db2RlIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlOiBsYW5nIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgQGlmICghIXNob3dDYXB0aW9uIHx8ICEhZGF0YS5zaG93Q2FwdGlvbikge1xyXG4gICAgICAgICAgICA8c3BhbiBbY2xhc3MudGVtcG9yYXJ5LXVuYXZhaWxhYmxlXT1cIiEhaGlkZGVuXCIgY2xhc3M9XCJidXR0b24tY2FwdGlvblwiPnt7IGRhdGEuY2FwdGlvbiB8IHRyYW5zbGF0ZTogbGFuZ1xyXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgQGlmICghIWRhdGEud2l0aERpdmlkZXIpIHtcclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBoZWlnaHQgKyAncHgnLCBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyB9XCIgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIH0gQGVsc2Uge1xyXG5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiIFtjbGFzcy5sYXN0LWNoaWxkXT1cImlzTGFzdENoaWxkT2ZHcm91cFwiIGNsYXNzPVwiYnRuLWZvci1mb3JtIGJ0biBidG4tc2Vjb25kYXJ5XCI+e3sgZGF0YS5jYXB0aW9uIHwgdHJhbnNsYXRlOiBsYW5nXHJcbiAgICAgICAgICAgICAgICB9fTwvYnV0dG9uPlxyXG5cclxuICAgIH1cclxuXHJcblxyXG48L2Rpdj4iXX0=
@@ -208,7 +208,7 @@ export class CoreFormComponent {
208
208
  this.buttonClick.emit(e);
209
209
  }
210
210
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormComponent, deps: [{ token: i1.CoreControlService }, { token: i2.MultiLanguageService }, { token: i3.AlertService }, { token: i4.CoreFormService }, { token: i5.AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFormComponent, isStandalone: true, selector: "core-form", inputs: { formName: "formName", width: "width", submitText: "submitText", leftInputSections: "leftInputSections", leftInputSectionsFlexSize: "leftInputSectionsFlexSize", inputSections: "inputSections", mode$: "mode$", bottomTemplateRef: "bottomTemplateRef", customFormButtonItems: "customFormButtonItems", showCaptionButton: "showCaptionButton", disableSaveButton: "disableSaveButton", checkError$: "checkError$" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (!!form) {\r\n<div class=\"core-form-container\" [ngStyle]=\"{\r\n width: !!width ? width + 'px' : 'auto'\r\n}\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n\r\n @for (section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n }\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\" [ngStyle]=\"{\r\n maxWidth: !!section.maxWidth ? section.maxWidth + 'px' : 'none'\r\n }\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n @if (!!bottomTemplateRef) {\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n }\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n @if (isDevMode) {\r\n <div class=\"form-row d-flex d-flex-center\">\r\n <div class=\"dev-button\" (click)=\"updatePayload()\">Show\r\n values</div>\r\n <div class=\"dev-button\" (click)=\"updateValidorOverview()\">Show\r\n validators</div>\r\n </div>\r\n }\r\n\r\n </form>\r\n\r\n @if (!!payLoad && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n }\r\n\r\n @if (!!validatorOverview && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n\r\n</div>\r\n}", styles: [".core-form-container{overflow-x:visible}.core-form-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-container .row .button-control{display:flex;align-items:flex-end}.core-form-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-container .form-row>button{cursor:pointer;border-radius:0}.core-form-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-container .dev-button{cursor:pointer;display:flex;align-items:center;border:1px gray solid;font-size:13px;padding:8px}.core-form-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto;color:gray!important;background-color:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
211
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFormComponent, isStandalone: true, selector: "core-form", inputs: { formName: "formName", width: "width", submitText: "submitText", leftInputSections: "leftInputSections", leftInputSectionsFlexSize: "leftInputSectionsFlexSize", inputSections: "inputSections", mode$: "mode$", bottomTemplateRef: "bottomTemplateRef", customFormButtonItems: "customFormButtonItems", showCaptionButton: "showCaptionButton", disableSaveButton: "disableSaveButton", checkError$: "checkError$" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (!!form) {\r\n<div class=\"core-form-container\" [ngStyle]=\"{\r\n width: !!width ? width + 'px' : 'auto'\r\n}\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n\r\n @for (section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n }\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\" [ngStyle]=\"{\r\n maxWidth: !!section.maxWidth ? section.maxWidth + 'px' : 'none'\r\n }\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n @if (!!bottomTemplateRef) {\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n }\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n @if (isDevMode) {\r\n <div class=\"form-row d-flex d-flex-center\">\r\n <div class=\"dev-button\" (click)=\"updatePayload()\">Show\r\n values</div>\r\n <div class=\"dev-button\" (click)=\"updateValidorOverview()\">Show\r\n validators</div>\r\n </div>\r\n }\r\n\r\n </form>\r\n\r\n @if (!!payLoad && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n }\r\n\r\n @if (!!validatorOverview && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n\r\n</div>\r\n}", styles: [".core-form-container{overflow-x:visible}.core-form-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-container .row .button-control{display:flex;align-items:flex-end}.core-form-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-container .form-row>button{cursor:pointer;border-radius:0}.core-form-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-container .dev-button{cursor:pointer;display:flex;align-items:center;border:1px gray solid;font-size:13px;padding:8px}.core-form-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto;color:gray!important;background-color:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption", "lastChildEffectOff"], outputs: ["buttonClick"] }] }); }
212
212
  }
213
213
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormComponent, decorators: [{
214
214
  type: Component,
@@ -151,7 +151,7 @@ export class CoreFormLiteComponent {
151
151
  this.buttonClick.emit(e);
152
152
  }
153
153
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormLiteComponent, deps: [{ token: i1.CoreControlService }, { token: i2.MultiLanguageService }, { token: i3.AlertService }, { token: i4.CoreFormService }, { token: i5.AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFormLiteComponent, isStandalone: true, selector: "core-form-lite", inputs: { formName: "formName", submitText: "submitText", inputSections: "inputSections", mode$: "mode$", customFormButtonItems: "customFormButtonItems", showButonCaptions: "showButonCaptions", disableSaveButton: "disableSaveButton", checkError$: "checkError$" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-form-lite-container\">\r\n @if (!!form) {\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n <div class=\"row\">\r\n <div [class]=\"'col-md-12'\">\r\n\r\n <div *ngFor=\"let section of sections\" class=\"section\" [class.d-none]=\"!!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track row) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control-no-seeker [control]=\"col\" [form]=\"form\"\r\n [checkError$]=\"checkError$\"></core-control-no-seeker>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showButonCaptions\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n <div class=\"form-row\" *ngIf=\"isDevMode\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updatePayload()\">Show\r\n values</button>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updateValidorOverview()\">Show\r\n validators</button>\r\n </div>\r\n </form>\r\n\r\n <div *ngIf=\"!!payLoad && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n <div *ngIf=\"!!validatorOverview && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n\r\n</div>", styles: [".core-form-lite-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-lite-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-lite-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-lite-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-lite-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-lite-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-lite-container .row .button-control{display:flex;align-items:flex-end}.core-form-lite-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-lite-container .form-row>button{cursor:pointer}.core-form-lite-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-lite-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlNoSeekerComponent, selector: "core-control-no-seeker", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
154
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFormLiteComponent, isStandalone: true, selector: "core-form-lite", inputs: { formName: "formName", submitText: "submitText", inputSections: "inputSections", mode$: "mode$", customFormButtonItems: "customFormButtonItems", showButonCaptions: "showButonCaptions", disableSaveButton: "disableSaveButton", checkError$: "checkError$" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-form-lite-container\">\r\n @if (!!form) {\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n <div class=\"row\">\r\n <div [class]=\"'col-md-12'\">\r\n\r\n <div *ngFor=\"let section of sections\" class=\"section\" [class.d-none]=\"!!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track row) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control-no-seeker [control]=\"col\" [form]=\"form\"\r\n [checkError$]=\"checkError$\"></core-control-no-seeker>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showButonCaptions\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n <div class=\"form-row\" *ngIf=\"isDevMode\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updatePayload()\">Show\r\n values</button>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updateValidorOverview()\">Show\r\n validators</button>\r\n </div>\r\n </form>\r\n\r\n <div *ngIf=\"!!payLoad && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n <div *ngIf=\"!!validatorOverview && isDevMode\" class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n\r\n</div>", styles: [".core-form-lite-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-lite-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-lite-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-lite-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-lite-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-lite-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-lite-container .row .button-control{display:flex;align-items:flex-end}.core-form-lite-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-lite-container .form-row>button{cursor:pointer}.core-form-lite-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-lite-container .payload-preview{display:block;width:100%;height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlNoSeekerComponent, selector: "core-control-no-seeker", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption", "lastChildEffectOff"], outputs: ["buttonClick"] }] }); }
155
155
  }
156
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormLiteComponent, decorators: [{
157
157
  type: Component,
@@ -28,7 +28,7 @@ export class CoreFormTabComponent extends CoreFormComponent {
28
28
  });
29
29
  }
30
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormTabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFormTabComponent, isStandalone: true, selector: "core-form-tab", inputs: { $sections: { classPropertyName: "$sections", publicName: "$sections", isSignal: true, isRequired: true, transformFunction: null }, $leftInputSections: { classPropertyName: "$leftInputSections", publicName: "$leftInputSections", isSignal: true, isRequired: false, transformFunction: null }, $leftInputSectionsFlexSize: { classPropertyName: "$leftInputSectionsFlexSize", publicName: "$leftInputSectionsFlexSize", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "@if (!!form) {\r\n<div class=\"core-form-container\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n @for(section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n @if (section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n @if (section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n @if (!!bottomTemplateRef) {\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n }\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n @if (isDevMode) {\r\n <div class=\"form-row\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updatePayload()\">Show\r\n values</button>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updateValidorOverview()\">Show\r\n validators</button>\r\n </div>\r\n }\r\n </form>\r\n\r\n @if (!!payLoad && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n }\r\n @if (!!validatorOverview && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n</div>\r\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFormTabComponent, isStandalone: true, selector: "core-form-tab", inputs: { $sections: { classPropertyName: "$sections", publicName: "$sections", isSignal: true, isRequired: true, transformFunction: null }, $leftInputSections: { classPropertyName: "$leftInputSections", publicName: "$leftInputSections", isSignal: true, isRequired: false, transformFunction: null }, $leftInputSectionsFlexSize: { classPropertyName: "$leftInputSectionsFlexSize", publicName: "$leftInputSectionsFlexSize", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "@if (!!form) {\r\n<div class=\"core-form-container\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n @for(section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n @if (section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n @if (section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n @if (!!bottomTemplateRef) {\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n }\r\n\r\n <div class=\"h10\"></div>\r\n\r\n <div class=\"form-row\">\r\n\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n @if (isDevMode) {\r\n <div class=\"form-row\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updatePayload()\">Show\r\n values</button>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"updateValidorOverview()\">Show\r\n validators</button>\r\n </div>\r\n }\r\n </form>\r\n\r\n @if (!!payLoad && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad}}\r\n </div>\r\n }\r\n @if (!!validatorOverview && isDevMode) {\r\n <div class=\"form-row payload-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview}}\r\n </div>\r\n }\r\n</div>\r\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption", "lastChildEffectOff"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
32
  }
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFormTabComponent, decorators: [{
34
34
  type: Component,
@@ -22,7 +22,7 @@ export class CorePageHeaderComponent extends BaseComponent {
22
22
  ngAfterViewInit() {
23
23
  }
24
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CorePageHeaderComponent, deps: [{ token: i1.MultiLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CorePageHeaderComponent, isStandalone: true, selector: "core-page-header", inputs: { instanceNumber: "instanceNumber", shownItems: "shownItems", title: "title", hideButtonGroup: "hideButtonGroup" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-page-header-container\" #container>\r\n <div class=\"d-flex-between pd-25\">\r\n <div class=\"title\">{{ title | translate: lang }}</div>\r\n @if (!hideButtonGroup) {\r\n <core-button-group-vns [instanceNumber]=\"instanceNumber\" [forHeader]=\"true\" [fixedShow]=\"!!shownItems\" [shownItems]=\"shownItems\"\r\n (buttonClick)=\"onButtonClick($event)\"></core-button-group-vns>\r\n }\r\n </div>\r\n</div>", styles: [".core-page-header-container{height:var(--size-core-page-header-height);background-color:#fff}.core-page-header-container .title{color:#000;font-weight:400;font-size:20px;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}.d-flex-between{height:var(--size-core-page-header-height)}.buttonGroupCustom{overflow-x:scroll}.buttonGroupCustom::-webkit-scrollbar-thumb{width:20%!important}.buttonGroupCustom:hover{overflow-x:scroll}.buttonGroupCustom::-webkit-scrollbar-thumb{background-color:transparent;width:50px!important;border-radius:10px;transition:background-color 2s}.buttonGroupCustom:hover::-webkit-scrollbar-thumb{background-color:#a5a4a4;width:50px!important;border-radius:10px;transition:background-color 2s}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption"], outputs: ["buttonClick"] }] }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CorePageHeaderComponent, isStandalone: true, selector: "core-page-header", inputs: { instanceNumber: "instanceNumber", shownItems: "shownItems", title: "title", hideButtonGroup: "hideButtonGroup" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-page-header-container\" #container>\r\n <div class=\"d-flex-between pd-25\">\r\n <div class=\"title\">{{ title | translate: lang }}</div>\r\n @if (!hideButtonGroup) {\r\n <core-button-group-vns [instanceNumber]=\"instanceNumber\" [forHeader]=\"true\" [fixedShow]=\"!!shownItems\" [shownItems]=\"shownItems\"\r\n (buttonClick)=\"onButtonClick($event)\"></core-button-group-vns>\r\n }\r\n </div>\r\n</div>", styles: [".core-page-header-container{height:var(--size-core-page-header-height);background-color:#fff}.core-page-header-container .title{color:#000;font-weight:400;font-size:20px;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}.d-flex-between{height:var(--size-core-page-header-height)}.buttonGroupCustom{overflow-x:scroll}.buttonGroupCustom::-webkit-scrollbar-thumb{width:20%!important}.buttonGroupCustom:hover{overflow-x:scroll}.buttonGroupCustom::-webkit-scrollbar-thumb{background-color:transparent;width:50px!important;border-radius:10px;transition:background-color 2s}.buttonGroupCustom:hover::-webkit-scrollbar-thumb{background-color:#a5a4a4;width:50px!important;border-radius:10px;transition:background-color 2s}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption", "lastChildEffectOff"], outputs: ["buttonClick"] }] }); }
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CorePageHeaderComponent, decorators: [{
28
28
  type: Component,
@@ -141,7 +141,7 @@ export class CoreTagsComponent extends CoreFormControlBaseComponent {
141
141
  multi: true,
142
142
  useExisting: CoreTagsComponent
143
143
  }
144
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-tags-container\">\r\n\r\n <div class=\"existing\">\r\n <div class=\"toggle-all-button\" (click)=\"toggleCheckAll()\">\r\n <div class=\"button-wrapper mr15\">\r\n <i [class.feather-lock]=\"!!!checkAll\" [class.feather-unlock]=\"!!checkAll\"\r\n [class.disabled]=\"disabled\"></i>\r\n </div>\r\n </div>\r\n @for (tag of tags; track $index) {\r\n <span [class.admin]=\"!!!disabled && !!!readonly\" [class.disabled]=\"!!!tag.enabled\" (click)=\"onToogleItem(tag)\">\r\n <div class=\"d-flex-between\">\r\n <div class=\"button-wrapper\" [class.disabled]=\"disabled\">\r\n @if (!!tag.actionButton) {\r\n <core-button-vns [data]=\"tag.actionButton!\" [disabled]=\"disabled\"></core-button-vns>\r\n } @else {\r\n <span>{{tag.text}}</span>\r\n }\r\n </div>\r\n </div>\r\n </span>\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-tags-container{clear:both;white-space:nowrap;overflow-x:auto}.core-tags-container>.existing{display:flex}.core-tags-container>.buttons,.core-tags-container>.search{display:inline-block}.core-tags-container i.disabled{cursor:not-allowed!important}.core-tags-container>.existing.button-wrapper{width:48px;height:48px;background-color:#6495ed;opacity:.5;line-height:48px}.core-tags-container>.existing>.toggle-all-button{display:inline-block;padding:0 10px}.core-tags-container>.existing>.toggle-all-button>i{font-size:20px}.core-tags-container>.existing>span{display:inline-block;color:#fff;background-color:#6495ed;padding:10px;border-radius:5px}.core-tags-container>.existing>span:not(:last-child){margin-right:3px}.core-tags-container>.existing>span a{display:inline-block;overflow:hidden;text-overflow:ellipsis;max-width:150px;white-space:nowrap}.core-tags-container>.existing>span a:hover{color:#e4405f!important}.core-tags-container>.existing>span.disabled{background-color:#f1f1f1}.core-tags-container>button{display:block;margin-bottom:25px}.core-tags-container>input{margin-top:25px}.tags-container.pressable>span{padding:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: CoreButtonVnsComponent, selector: "core-button-vns", inputs: ["height", "data", "instanceNumber", "disabled", "showCaption"], outputs: ["buttonClick"] }] }); }
144
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-tags-container\">\r\n\r\n <div class=\"existing\">\r\n <div class=\"toggle-all-button\" (click)=\"toggleCheckAll()\">\r\n <div class=\"button-wrapper mr15\">\r\n <i [class.feather-lock]=\"!!!checkAll\" [class.feather-unlock]=\"!!checkAll\"\r\n [class.disabled]=\"disabled\"></i>\r\n </div>\r\n </div>\r\n @for (tag of tags; track $index) {\r\n <span [class.admin]=\"!!!disabled && !!!readonly\" [class.disabled]=\"!!!tag.enabled\" (click)=\"onToogleItem(tag)\">\r\n <div class=\"d-flex-between\">\r\n <div class=\"button-wrapper\" [class.disabled]=\"disabled\">\r\n @if (!!tag.actionButton) {\r\n <core-button-vns [data]=\"tag.actionButton!\" [disabled]=\"disabled\"></core-button-vns>\r\n } @else {\r\n <span>{{tag.text}}</span>\r\n }\r\n </div>\r\n </div>\r\n </span>\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-tags-container{clear:both;white-space:nowrap;overflow-x:auto}.core-tags-container>.existing{display:flex}.core-tags-container>.buttons,.core-tags-container>.search{display:inline-block}.core-tags-container i.disabled{cursor:not-allowed!important}.core-tags-container>.existing.button-wrapper{width:48px;height:48px;background-color:#6495ed;opacity:.5;line-height:48px}.core-tags-container>.existing>.toggle-all-button{display:inline-block;padding:0 10px}.core-tags-container>.existing>.toggle-all-button>i{font-size:20px}.core-tags-container>.existing>span{display:inline-block;color:#fff;background-color:#6495ed;padding:10px;border-radius:5px}.core-tags-container>.existing>span:not(:last-child){margin-right:3px}.core-tags-container>.existing>span a{display:inline-block;overflow:hidden;text-overflow:ellipsis;max-width:150px;white-space:nowrap}.core-tags-container>.existing>span a:hover{color:#e4405f!important}.core-tags-container>.existing>span.disabled{background-color:#f1f1f1}.core-tags-container>button{display:block;margin-bottom:25px}.core-tags-container>input{margin-top:25px}.tags-container.pressable>span{padding:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: CoreButtonVnsComponent, selector: "core-button-vns", inputs: ["height", "data", "instanceNumber", "disabled", "showCaption", "lastChildEffectOff"], outputs: ["buttonClick"] }] }); }
145
145
  }
146
146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreTagsComponent, decorators: [{
147
147
  type: Component,