@simpleangularcontrols/sac-bootstrap4 16.0.0-rc.2 → 16.0.0-rc.4

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 (131) hide show
  1. package/components/browser/browser.d.ts +6 -6
  2. package/components/browser/browser.d.ts.map +1 -1
  3. package/controls/buttons/index.d.ts +2 -0
  4. package/controls/buttons/index.d.ts.map +1 -0
  5. package/controls/checkbox/checkbox.d.ts +5 -5
  6. package/controls/checkbox/checkbox.d.ts.map +1 -1
  7. package/controls/checkbox/radiobuttons.d.ts +5 -5
  8. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  9. package/controls/contextmenu/contextmenu.d.ts +6 -6
  10. package/controls/contextmenu/contextmenu.d.ts.map +1 -1
  11. package/controls/contextmenu/contextmenuanchor.d.ts +2 -2
  12. package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -1
  13. package/controls/contextmenu/contextmenucontainer.d.ts +2 -2
  14. package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
  15. package/controls/datetime/date.d.ts +6 -6
  16. package/controls/datetime/date.d.ts.map +1 -1
  17. package/controls/datetime/datetime.d.ts +6 -6
  18. package/controls/datetime/datetime.d.ts.map +1 -1
  19. package/controls/datetime/time.d.ts +6 -6
  20. package/controls/datetime/time.d.ts.map +1 -1
  21. package/controls/dialog/index.d.ts +2 -0
  22. package/controls/dialog/index.d.ts.map +1 -0
  23. package/controls/form/form.d.ts +3 -11
  24. package/controls/form/form.d.ts.map +1 -1
  25. package/controls/grid/grid.d.ts.map +1 -1
  26. package/controls/input/input.d.ts +5 -5
  27. package/controls/input/input.d.ts.map +1 -1
  28. package/controls/input/inputarea.d.ts +5 -5
  29. package/controls/input/inputarea.d.ts.map +1 -1
  30. package/controls/input/inputcurrency.d.ts +5 -5
  31. package/controls/input/inputcurrency.d.ts.map +1 -1
  32. package/controls/input/inputdecimal.d.ts +5 -5
  33. package/controls/input/inputdecimal.d.ts.map +1 -1
  34. package/controls/input/inputemail.d.ts +5 -5
  35. package/controls/input/inputemail.d.ts.map +1 -1
  36. package/controls/input/inputinteger.d.ts +5 -5
  37. package/controls/input/inputinteger.d.ts.map +1 -1
  38. package/controls/input/inputpassword.d.ts +5 -5
  39. package/controls/input/inputpassword.d.ts.map +1 -1
  40. package/controls/input/inputsearch.d.ts +5 -5
  41. package/controls/input/inputsearch.d.ts.map +1 -1
  42. package/controls/layout/formlayout.directive.d.ts +7 -0
  43. package/controls/layout/formlayout.directive.d.ts.map +1 -0
  44. package/controls/layout/layout.module.d.ts +11 -0
  45. package/controls/layout/layout.module.d.ts.map +1 -0
  46. package/controls/layout/tocontrolwidthcss.pipe.d.ts +20 -0
  47. package/controls/layout/tocontrolwidthcss.pipe.d.ts.map +1 -0
  48. package/controls/layout/tolabelwidthcss.pipe.d.ts +14 -0
  49. package/controls/layout/tolabelwidthcss.pipe.d.ts.map +1 -0
  50. package/controls/list/dropdown.d.ts +10 -10
  51. package/controls/list/dropdown.d.ts.map +1 -1
  52. package/controls/list/listbox.d.ts +8 -8
  53. package/controls/list/listbox.d.ts.map +1 -1
  54. package/controls/multilanguage/multilanguageinput.d.ts +5 -5
  55. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  56. package/controls/multilanguage/multilanguageinputarea.d.ts +5 -5
  57. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  58. package/controls/multilanguage/multilanguagemenu.d.ts +6 -6
  59. package/controls/multilanguage/multilanguagemenu.d.ts.map +1 -1
  60. package/controls/multilanguage/multilanguagemenuanchor.d.ts +2 -2
  61. package/controls/multilanguage/multilanguagemenuanchor.d.ts.map +1 -1
  62. package/controls/multilanguage/multilanguagemenucontainer.d.ts +2 -2
  63. package/controls/multilanguage/multilanguagemenucontainer.d.ts.map +1 -1
  64. package/controls/multilanguage/multilanguagemenuitembutton.d.ts.map +1 -1
  65. package/controls/static/formcontainer.d.ts +5 -5
  66. package/controls/static/formcontainer.d.ts.map +1 -1
  67. package/controls/static/staticlabel.d.ts +5 -5
  68. package/controls/static/staticlabel.d.ts.map +1 -1
  69. package/controls/tinymce/tinymce.d.ts +6 -6
  70. package/controls/tinymce/tinymce.d.ts.map +1 -1
  71. package/controls/upload/dropzonemultiple.d.ts +7 -7
  72. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  73. package/controls/upload/dropzonesingle.d.ts +7 -7
  74. package/controls/upload/dropzonesingle.d.ts.map +1 -1
  75. package/controls/upload/upload.d.ts +7 -7
  76. package/controls/upload/upload.d.ts.map +1 -1
  77. package/controls/upload/uploadmultiple.d.ts +7 -7
  78. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  79. package/controls/validation/validationsummary.d.ts +4 -4
  80. package/controls/validation/validationsummary.d.ts.map +1 -1
  81. package/esm2022/components/browser/browser.mjs +13 -9
  82. package/esm2022/controls/buttons/button.mjs +3 -3
  83. package/esm2022/controls/buttons/index.mjs +2 -0
  84. package/esm2022/controls/checkbox/checkbox.mjs +16 -18
  85. package/esm2022/controls/checkbox/radiobuttons.mjs +17 -19
  86. package/esm2022/controls/contextmenu/contextmenu.mjs +10 -9
  87. package/esm2022/controls/contextmenu/contextmenuanchor.mjs +5 -4
  88. package/esm2022/controls/contextmenu/contextmenucontainer.mjs +5 -4
  89. package/esm2022/controls/datetime/date.mjs +24 -14
  90. package/esm2022/controls/datetime/datetime.mjs +25 -15
  91. package/esm2022/controls/datetime/time.mjs +24 -14
  92. package/esm2022/controls/dialog/index.mjs +2 -0
  93. package/esm2022/controls/form/form.mjs +6 -17
  94. package/esm2022/controls/grid/grid.mjs +6 -9
  95. package/esm2022/controls/input/input.mjs +23 -15
  96. package/esm2022/controls/input/inputarea.mjs +23 -15
  97. package/esm2022/controls/input/inputcurrency.mjs +23 -15
  98. package/esm2022/controls/input/inputdecimal.mjs +23 -15
  99. package/esm2022/controls/input/inputemail.mjs +23 -15
  100. package/esm2022/controls/input/inputinteger.mjs +23 -15
  101. package/esm2022/controls/input/inputpassword.mjs +23 -15
  102. package/esm2022/controls/input/inputsearch.mjs +16 -13
  103. package/esm2022/controls/layout/formlayout.directive.mjs +16 -0
  104. package/esm2022/controls/layout/layout.module.mjs +34 -0
  105. package/esm2022/controls/layout/tocontrolwidthcss.pipe.mjs +56 -0
  106. package/esm2022/controls/layout/tolabelwidthcss.pipe.mjs +40 -0
  107. package/esm2022/controls/list/dropdown.mjs +25 -21
  108. package/esm2022/controls/list/listbox.mjs +25 -22
  109. package/esm2022/controls/multilanguage/multilanguageinput.mjs +20 -14
  110. package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +21 -15
  111. package/esm2022/controls/multilanguage/multilanguagemenu.mjs +10 -9
  112. package/esm2022/controls/multilanguage/multilanguagemenuanchor.mjs +5 -4
  113. package/esm2022/controls/multilanguage/multilanguagemenucontainer.mjs +5 -4
  114. package/esm2022/controls/multilanguage/multilanguagemenuitembutton.mjs +3 -2
  115. package/esm2022/controls/static/formcontainer.mjs +19 -14
  116. package/esm2022/controls/static/staticlabel.mjs +16 -13
  117. package/esm2022/controls/tinymce/tinymce.mjs +24 -20
  118. package/esm2022/controls/upload/dropzonemultiple.mjs +25 -13
  119. package/esm2022/controls/upload/dropzonesingle.mjs +26 -14
  120. package/esm2022/controls/upload/upload.mjs +23 -14
  121. package/esm2022/controls/upload/uploadmultiple.mjs +23 -13
  122. package/esm2022/controls/validation/validationsummary.mjs +11 -19
  123. package/esm2022/controls/wizard/wizard.mjs +3 -3
  124. package/esm2022/public_api.mjs +30 -26
  125. package/fesm2022/simpleangularcontrols-sac-bootstrap4.mjs +672 -424
  126. package/fesm2022/simpleangularcontrols-sac-bootstrap4.mjs.map +1 -1
  127. package/package.json +4 -3
  128. package/public_api.d.ts +29 -25
  129. package/public_api.d.ts.map +1 -1
  130. package/simpleangularcontrols-sac-bootstrap4-16.0.0-rc.4.tgz +0 -0
  131. package/simpleangularcontrols-sac-bootstrap4-16.0.0-rc.2.tgz +0 -0
@@ -2,23 +2,27 @@ import { AsyncPipe, NgClass, NgFor, NgIf, NgTemplateOutlet, } from '@angular/com
2
2
  import { Component, Directive, Host, Optional, forwardRef, } from '@angular/core';
3
3
  import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { SacDropdownCommon, SacDropdownOptionCommon, } from '@simpleangularcontrols/sac-common';
5
+ import { SacToControlWidthCssPipe } from '../layout/tocontrolwidthcss.pipe';
6
+ import { SacToLabelWidthCssPipe } from '../layout/tolabelwidthcss.pipe';
5
7
  import * as i0 from "@angular/core";
6
- import * as i1 from "../form/form";
8
+ import * as i1 from "../layout/formlayout.directive";
9
+ // #region Classes
7
10
  /**
8
11
  * Dropdown Komponente
9
12
  */
10
13
  class SacDropdownComponent extends SacDropdownCommon {
14
+ // #region Constructors
11
15
  /**
12
- * Konstruktor
13
- * @param parent Formular
14
- * @param injector Dependency Injection Service
15
- * @param _renderer Angular Rendering Engine
16
- * @param _elementRef Referenz auf HTML DOM Element
16
+ * Constructor
17
+ * @param formLayout SacFormLayout to define scoped layout settings
18
+ * @param injector Injector for injecting services
19
+ * @param renderer Angular rendering engine
20
+ * @param elementRef Reference to html dom element
17
21
  */
18
- constructor(parent, injector, _renderer, _elementRef) {
19
- super(parent, injector, _renderer, _elementRef);
22
+ constructor(formLayout, injector, renderer, elementRef) {
23
+ super(formLayout, injector, renderer, elementRef);
20
24
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownComponent, deps: [{ token: i1.SacFormDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownComponent, deps: [{ token: i1.SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
22
26
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacDropdownComponent, isStandalone: true, selector: "sac-dropdown", providers: [
23
27
  {
24
28
  provide: NG_VALUE_ACCESSOR,
@@ -30,7 +34,7 @@ class SacDropdownComponent extends SacDropdownCommon {
30
34
  multi: true,
31
35
  useExisting: forwardRef(() => SacDropdownComponent),
32
36
  },
33
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control form-control-sm\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">\r\n {{emptylabel}}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return SacDropdownOptionDirective; }), selector: "[sacOption],option" }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }] }); }
37
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control form-control-sm\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">\r\n {{emptylabel}}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return SacDropdownOptionDirective; }), selector: "[sacOption],option" }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToLabelWidthCssPipe; }), name: "toLabelWidthCss" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToControlWidthCssPipe; }), name: "toControlWidthCss" }] }); }
34
38
  }
35
39
  export { SacDropdownComponent };
36
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownComponent, decorators: [{
@@ -53,8 +57,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
53
57
  NgFor,
54
58
  NgTemplateOutlet,
55
59
  AsyncPipe,
56
- ], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control form-control-sm\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">\r\n {{emptylabel}}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n" }]
57
- }], ctorParameters: function () { return [{ type: i1.SacFormDirective, decorators: [{
60
+ SacToLabelWidthCssPipe,
61
+ SacToControlWidthCssPipe,
62
+ ], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n #dropdownitem\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control form-control-sm\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">\r\n {{emptylabel}}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n <ng-template\r\n *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\"\r\n >\r\n </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n" }]
63
+ }], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
58
64
  type: Host
59
65
  }, {
60
66
  type: Optional
@@ -63,14 +69,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
63
69
  * Direktive für Dropdown Option List
64
70
  */
65
71
  class SacDropdownOptionDirective extends SacDropdownOptionCommon {
72
+ // #region Constructors
66
73
  /**
67
74
  * Konstruktor
68
- * @param _elementRef Referenz auf HTML DOM Element
69
- * @param _renderer Angular Rendering Engine
75
+ * @param elementRef Referenz auf HTML DOM Element
76
+ * @param renderer Angular Rendering Engine
70
77
  * @param dropdownList Referenz auf DropDown Komponente
71
78
  */
72
- constructor(_elementRef, _renderer, dropdownList) {
73
- super(_elementRef, _renderer, dropdownList);
79
+ constructor(elementRef, renderer, dropdownList) {
80
+ super(elementRef, renderer, dropdownList);
74
81
  }
75
82
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SacDropdownComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
76
83
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SacDropdownOptionDirective, isStandalone: true, selector: "[sacOption],option", usesInheritance: true, ngImport: i0 }); }
@@ -78,13 +85,10 @@ class SacDropdownOptionDirective extends SacDropdownOptionCommon {
78
85
  export { SacDropdownOptionDirective };
79
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownOptionDirective, decorators: [{
80
87
  type: Directive,
81
- args: [{
82
- selector: '[sacOption],option',
83
- standalone: true,
84
- }]
88
+ args: [{ selector: '[sacOption],option', standalone: true }]
85
89
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SacDropdownComponent, decorators: [{
86
90
  type: Optional
87
91
  }, {
88
92
  type: Host
89
93
  }] }]; } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvbGlzdC9kcm9wZG93bi50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA0L3NyYy9jb250cm9scy9saXN0L2Ryb3Bkb3duLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUNMLElBQUksRUFDSixnQkFBZ0IsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFFVCxJQUFJLEVBRUosUUFBUSxFQUVSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix1QkFBdUIsR0FDeEIsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBRzNDOztHQUVHO0FBQ0gsTUEwQmEsb0JBQXFCLFNBQVEsaUJBQWlCO0lBQ3pEOzs7Ozs7T0FNRztJQUNILFlBQ3NCLE1BQXdCLEVBQzVDLFFBQWtCLEVBQ2xCLFNBQW9CLEVBQ3BCLFdBQXVCO1FBRXZCLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDOytHQWZVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDJEQXRCcEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsb0JBQW9CO2FBQ2xDO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDcEQ7U0FDRixpREMxQ0gsKzJFQXFFQSwrRUR4QkksT0FBTywySEFDUCxJQUFJLG9JQWdDSywwQkFBMEIsc0dBOUJuQyxLQUFLLDBKQUNMLGdCQUFnQixzTEFDaEIsU0FBUzs7U0FHQSxvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkExQmhDLFNBQVM7K0JBQ0UsY0FBYyxhQUdiO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsc0JBQXNCO3lCQUNsQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7eUJBQ3BEO3FCQUNGLGNBQ1csSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7d0JBQzVDLEtBQUs7d0JBQ0wsZ0JBQWdCO3dCQUNoQixTQUFTO3FCQUNWOzswQkFXRSxJQUFJOzswQkFBSSxRQUFROztBQVNyQjs7R0FFRztBQUNILE1BSWEsMEJBQTJCLFNBQVEsdUJBQXVCO0lBQ3JFOzs7OztPQUtHO0lBQ0gsWUFDRSxXQUF1QixFQUN2QixTQUFvQixFQUNBLFlBQWtDO1FBRXRELEtBQUssQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBYlUsMEJBQTBCO21HQUExQiwwQkFBMEI7O1NBQTFCLDBCQUEwQjs0RkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBV0ksUUFBUTs7MEJBQUksSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXN5bmNQaXBlLFxyXG4gIE5nQ2xhc3MsXHJcbiAgTmdGb3IsXHJcbiAgTmdJZixcclxuICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgT3B0aW9uYWwsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIFNhY0Ryb3Bkb3duQ29tbW9uLFxyXG4gIFNhY0Ryb3Bkb3duT3B0aW9uQ29tbW9uLFxyXG59IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9mb3JtL2Zvcm0nO1xyXG5cclxuLyoqXHJcbiAqIERyb3Bkb3duIEtvbXBvbmVudGVcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2FjLWRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uaHRtbCcsXHJcbiAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjRHJvcGRvd25Db21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE5nSWYsXHJcbiAgICBmb3J3YXJkUmVmKCgpID0+IFNhY0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlKSxcclxuICAgIE5nRm9yLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIEFzeW5jUGlwZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBTYWNEcm9wZG93bkNvbW1vbiB7XHJcbiAgLyoqXHJcbiAgICogS29uc3RydWt0b3JcclxuICAgKiBAcGFyYW0gcGFyZW50IEZvcm11bGFyXHJcbiAgICogQHBhcmFtIGluamVjdG9yIERlcGVuZGVuY3kgSW5qZWN0aW9uIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gX3JlbmRlcmVyIEFuZ3VsYXIgUmVuZGVyaW5nIEVuZ2luZVxyXG4gICAqIEBwYXJhbSBfZWxlbWVudFJlZiBSZWZlcmVueiBhdWYgSFRNTCBET00gRWxlbWVudFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBwYXJlbnQ6IFNhY0Zvcm1EaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihwYXJlbnQsIGluamVjdG9yLCBfcmVuZGVyZXIsIF9lbGVtZW50UmVmKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEaXJla3RpdmUgZsO8ciBEcm9wZG93biBPcHRpb24gTGlzdFxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc2FjT3B0aW9uXSxvcHRpb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNEcm9wZG93bk9wdGlvbkRpcmVjdGl2ZSBleHRlbmRzIFNhY0Ryb3Bkb3duT3B0aW9uQ29tbW9uIHtcclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEBwYXJhbSBfZWxlbWVudFJlZiBSZWZlcmVueiBhdWYgSFRNTCBET00gRWxlbWVudFxyXG4gICAqIEBwYXJhbSBfcmVuZGVyZXIgQW5ndWxhciBSZW5kZXJpbmcgRW5naW5lXHJcbiAgICogQHBhcmFtIGRyb3Bkb3duTGlzdCBSZWZlcmVueiBhdWYgRHJvcERvd24gS29tcG9uZW50ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgZHJvcGRvd25MaXN0OiBTYWNEcm9wZG93bkNvbXBvbmVudFxyXG4gICkge1xyXG4gICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9yZW5kZXJlciwgZHJvcGRvd25MaXN0KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCIgW2NsYXNzLm5vLWd1dHRlcnNdPVwiZGlzYWJsZWxhYmVsXCI+XHJcbiAgPGxhYmVsXHJcbiAgICBmb3I9XCJ7e25hbWV9fVwiXHJcbiAgICBjbGFzcz1cImNvbC0xMiBjb2wtZm9ybS1sYWJlbFwiXHJcbiAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICAnY29sLXNtLScgKyBsYWJlbHNpemUgOiAnc3Itb25seScgXVwiXHJcbiAgICA+e3tsYWJlbH19PC9sYWJlbFxyXG4gID5cclxuICA8ZGl2XHJcbiAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICdjb2wtc20tJyArIF9pbnB1dHNpemUgOiAnY29sLXNtLTEyJ11cIlxyXG4gID5cclxuICAgIDxzZWxlY3RcclxuICAgICAgI2Ryb3Bkb3duaXRlbVxyXG4gICAgICBpZD1cInt7bmFtZX19XCJcclxuICAgICAgbmFtZT1cInt7bmFtZX19XCJcclxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCJcclxuICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzogaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkgfVwiXHJcbiAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAgIChjaGFuZ2UpPVwic2V0VmFsdWUoZHJvcGRvd25pdGVtLnZhbHVlKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc2Rpc2FibGVkXCJcclxuICAgID5cclxuICAgICAgPG9wdGlvbiAqbmdJZj1cImVtcHR5bGFiZWwgIT09ICcnXCIgW25nVmFsdWVdPVwiZW1wdHl2YWx1ZVwiPlxyXG4gICAgICAgIHt7ZW1wdHlsYWJlbH19XHJcbiAgICAgIDwvb3B0aW9uPlxyXG5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwaXRlbXMgPT09ICcnXCI+XHJcbiAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uc1wiXHJcbiAgICAgICAgICBbbmdWYWx1ZV09XCJvcHRpb252YWx1ZSA/IGl0ZW1bb3B0aW9udmFsdWVdIDogaXRlbVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uZW5hYmxlZCAhPT0gJycgJiYgaXRlbVtvcHRpb25lbmFibGVkXSA9PT0gZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm9wdGlvbmxhYmVsdGVtcGxhdGUgfHwgZGVmYXVsdEl0ZW1MYWJlbFRlbXBsYXRlO2NvbnRleHQ6eyBsYWJlbDogaXRlbVtvcHRpb25sYWJlbF0sIGl0ZW06IGl0ZW0gfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cGl0ZW1zICE9PSAnJ1wiPlxyXG4gICAgICAgIDxvcHRncm91cFxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGdyb3VwIG9mIG9wdGlvbnNcIlxyXG4gICAgICAgICAgW2F0dHIubGFiZWxdPVwiZ3JvdXBbZ3JvdXBsYWJlbF1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXBbZ3JvdXBpdGVtc11cIlxyXG4gICAgICAgICAgICBbbmdWYWx1ZV09XCJvcHRpb252YWx1ZSA/IGl0ZW1bb3B0aW9udmFsdWVdIDogaXRlbVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb25lbmFibGVkICE9PSAnJyAmJiBpdGVtW29wdGlvbmVuYWJsZWRdID09PSBmYWxzZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwib3B0aW9ubGFiZWx0ZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbUxhYmVsVGVtcGxhdGU7Y29udGV4dDp7IGxhYmVsOiBpdGVtW29wdGlvbmxhYmVsXSwgaXRlbTogaXRlbSB9XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9vcHRncm91cD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3NlbGVjdD5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCJcclxuICAgICAgKm5nSWY9XCJpc2lubGluZWVycm9yZW5hYmxlZCAmJiBpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IEdldEVycm9yTWVzc2FnZSgpIHwgYXN5bmMgfX1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEl0ZW1MYWJlbFRlbXBsYXRlIGxldC1sYWJlbD1cImxhYmVsXCI+XHJcbiAge3tsYWJlbH19XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvbGlzdC9kcm9wZG93bi50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA0L3NyYy9jb250cm9scy9saXN0L2Ryb3Bkb3duLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUNMLElBQUksRUFDSixnQkFBZ0IsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFFVCxJQUFJLEVBRUosUUFBUSxFQUVSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix1QkFBdUIsR0FDeEIsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBRXhFLGtCQUFrQjtBQUVsQjs7R0FFRztBQUNILE1BNEJhLG9CQUFxQixTQUFRLGlCQUFpQjtJQUN6RCx1QkFBdUI7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsWUFDc0IsVUFBa0MsRUFDdEQsUUFBa0IsRUFDbEIsUUFBbUIsRUFDbkIsVUFBc0I7UUFFdEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7K0dBakJVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDJEQXhCcEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsb0JBQW9CO2FBQ2xDO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDcEQ7U0FDRixpREM5Q0gsMjVFQXNFQSwrRURyQkksT0FBTywySEFDUCxJQUFJLG9JQW1DSywwQkFBMEIsc0dBakNuQyxLQUFLLDBKQUNMLGdCQUFnQixzTEFDaEIsU0FBUyxnRkFDVCxzQkFBc0IsMEZBQ3RCLHdCQUF3Qjs7U0FHZixvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkE1QmhDLFNBQVM7K0JBQ0UsY0FBYyxhQUdiO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsc0JBQXNCO3lCQUNsQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7eUJBQ3BEO3FCQUNGLGNBQ1csSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7d0JBQzVDLEtBQUs7d0JBQ0wsZ0JBQWdCO3dCQUNoQixTQUFTO3dCQUNULHNCQUFzQjt3QkFDdEIsd0JBQXdCO3FCQUN6Qjs7MEJBYUUsSUFBSTs7MEJBQUksUUFBUTs7QUFXckI7O0dBRUc7QUFDSCxNQUNhLDBCQUEyQixTQUFRLHVCQUF1QjtJQUNyRSx1QkFBdUI7SUFFdkI7Ozs7O09BS0c7SUFDSCxZQUNFLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ0MsWUFBa0M7UUFFdEQsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDNUMsQ0FBQzsrR0FmVSwwQkFBMEI7bUdBQTFCLDBCQUEwQjs7U0FBMUIsMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBRHRDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTs7MEJBYTFELFFBQVE7OzBCQUFJLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFzeW5jUGlwZSxcclxuICBOZ0NsYXNzLFxyXG4gIE5nRm9yLFxyXG4gIE5nSWYsXHJcbiAgTmdUZW1wbGF0ZU91dGxldCxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0LFxyXG4gIEluamVjdG9yLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFJlbmRlcmVyMixcclxuICBmb3J3YXJkUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBTYWNEcm9wZG93bkNvbW1vbixcclxuICBTYWNEcm9wZG93bk9wdGlvbkNvbW1vbixcclxufSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2FjVG9Db250cm9sV2lkdGhDc3NQaXBlIH0gZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbHdpZHRoY3NzLnBpcGUnO1xyXG5pbXBvcnQgeyBTYWNUb0xhYmVsV2lkdGhDc3NQaXBlIH0gZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWx3aWR0aGNzcy5waXBlJztcclxuXHJcbi8vICNyZWdpb24gQ2xhc3Nlc1xyXG5cclxuLyoqXHJcbiAqIERyb3Bkb3duIEtvbXBvbmVudGVcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2FjLWRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uaHRtbCcsXHJcbiAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjRHJvcGRvd25Db21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE5nSWYsXHJcbiAgICBmb3J3YXJkUmVmKCgpID0+IFNhY0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlKSxcclxuICAgIE5nRm9yLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIFNhY1RvTGFiZWxXaWR0aENzc1BpcGUsXHJcbiAgICBTYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY0Ryb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgU2FjRHJvcGRvd25Db21tb24ge1xyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmFtIGZvcm1MYXlvdXQgU2FjRm9ybUxheW91dCB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICogQHBhcmFtIHJlbmRlcmVyIEFuZ3VsYXIgcmVuZGVyaW5nIGVuZ2luZVxyXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIFJlZmVyZW5jZSB0byBodG1sIGRvbSBlbGVtZW50XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIGZvcm1MYXlvdXQ6IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IsIHJlbmRlcmVyLCBlbGVtZW50UmVmKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEaXJla3RpdmUgZsO8ciBEcm9wZG93biBPcHRpb24gTGlzdFxyXG4gKi9cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3NhY09wdGlvbl0sb3B0aW9uJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxyXG5leHBvcnQgY2xhc3MgU2FjRHJvcGRvd25PcHRpb25EaXJlY3RpdmUgZXh0ZW5kcyBTYWNEcm9wZG93bk9wdGlvbkNvbW1vbiB7XHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogS29uc3RydWt0b3JcclxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVueiBhdWYgSFRNTCBET00gRWxlbWVudFxyXG4gICAqIEBwYXJhbSByZW5kZXJlciBBbmd1bGFyIFJlbmRlcmluZyBFbmdpbmVcclxuICAgKiBAcGFyYW0gZHJvcGRvd25MaXN0IFJlZmVyZW56IGF1ZiBEcm9wRG93biBLb21wb25lbnRlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgZHJvcGRvd25MaXN0OiBTYWNEcm9wZG93bkNvbXBvbmVudFxyXG4gICkge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgcmVuZGVyZXIsIGRyb3Bkb3duTGlzdCk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG59XHJcblxyXG4vLyAjZW5kcmVnaW9uIENsYXNzZXNcclxuIiwiPGRpdiBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCIgW2NsYXNzLm5vLWd1dHRlcnNdPVwiZGlzYWJsZWxhYmVsXCI+XHJcbiAgPGxhYmVsXHJcbiAgICBmb3I9XCJ7e25hbWV9fVwiXHJcbiAgICBjbGFzcz1cImNvbC0xMiBjb2wtZm9ybS1sYWJlbFwiXHJcbiAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICh0aGlzLmxhYmVsU2l6ZXMgfCB0b0xhYmVsV2lkdGhDc3MpIDogJ3NyLW9ubHknIF1cIlxyXG4gICAgPnt7bGFiZWx9fTwvbGFiZWxcclxuICA+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJjb2wtMTJcIlxyXG4gICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAgKHRoaXMubGFiZWxTaXplcyB8IHRvQ29udHJvbFdpZHRoQ3NzKSA6ICcnXVwiXHJcbiAgPlxyXG4gICAgPHNlbGVjdFxyXG4gICAgICAjZHJvcGRvd25pdGVtXHJcbiAgICAgIGlkPVwie3tuYW1lfX1cIlxyXG4gICAgICBuYW1lPVwie3tuYW1lfX1cIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc21cIlxyXG4gICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOiBpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSB9XCJcclxuICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCJcclxuICAgICAgKGNoYW5nZSk9XCJzZXRWYWx1ZShkcm9wZG93bml0ZW0udmFsdWUpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzZGlzYWJsZWRcIlxyXG4gICAgPlxyXG4gICAgICA8b3B0aW9uICpuZ0lmPVwiZW1wdHlsYWJlbCAhPT0gJydcIiBbbmdWYWx1ZV09XCJlbXB0eXZhbHVlXCI+XHJcbiAgICAgICAge3tlbXB0eWxhYmVsfX1cclxuICAgICAgPC9vcHRpb24+XHJcblxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBpdGVtcyA9PT0gJydcIj5cclxuICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zXCJcclxuICAgICAgICAgIFtuZ1ZhbHVlXT1cIm9wdGlvbnZhbHVlID8gaXRlbVtvcHRpb252YWx1ZV0gOiBpdGVtXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb25lbmFibGVkICE9PSAnJyAmJiBpdGVtW29wdGlvbmVuYWJsZWRdID09PSBmYWxzZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwib3B0aW9ubGFiZWx0ZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbUxhYmVsVGVtcGxhdGU7Y29udGV4dDp7IGxhYmVsOiBpdGVtW29wdGlvbmxhYmVsXSwgaXRlbTogaXRlbSB9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwaXRlbXMgIT09ICcnXCI+XHJcbiAgICAgICAgPG9wdGdyb3VwXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2Ygb3B0aW9uc1wiXHJcbiAgICAgICAgICBbYXR0ci5sYWJlbF09XCJncm91cFtncm91cGxhYmVsXVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cFtncm91cGl0ZW1zXVwiXHJcbiAgICAgICAgICAgIFtuZ1ZhbHVlXT1cIm9wdGlvbnZhbHVlID8gaXRlbVtvcHRpb252YWx1ZV0gOiBpdGVtXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbmVuYWJsZWQgIT09ICcnICYmIGl0ZW1bb3B0aW9uZW5hYmxlZF0gPT09IGZhbHNlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25sYWJlbHRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtTGFiZWxUZW1wbGF0ZTtjb250ZXh0OnsgbGFiZWw6IGl0ZW1bb3B0aW9ubGFiZWxdLCBpdGVtOiBpdGVtIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L29wdGdyb3VwPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvc2VsZWN0PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIlxyXG4gICAgICAqbmdJZj1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgID5cclxuICAgICAge3sgR2V0RXJyb3JNZXNzYWdlKCkgfCBhc3luYyB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbUxhYmVsVGVtcGxhdGUgbGV0LWxhYmVsPVwibGFiZWxcIj5cclxuICB7e2xhYmVsfX1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -1,23 +1,26 @@
1
1
  import { AsyncPipe, NgClass, NgFor, NgIf } from '@angular/common';
2
2
  import { Component, Directive, Host, Optional, forwardRef, } from '@angular/core';
3
- import { ControlContainer, NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { SacListboxCommon, SacListboxOptionCommon, } from '@simpleangularcontrols/sac-common';
5
- import { SacFormDirective } from '../form/form';
5
+ import { SacToControlWidthCssPipe } from '../layout/tocontrolwidthcss.pipe';
6
+ import { SacToLabelWidthCssPipe } from '../layout/tolabelwidthcss.pipe';
6
7
  import * as i0 from "@angular/core";
7
- import * as i1 from "../form/form";
8
+ import * as i1 from "../layout/formlayout.directive";
9
+ // #region Classes
8
10
  /**
9
11
  * Listbox Komponente
10
12
  */
11
13
  class SacListboxComponent extends SacListboxCommon {
14
+ // #region Constructors
12
15
  /**
13
- * Konstruktor
14
- * @param parent Formular
15
- * @param injector Angular Dependiency Injection Service
16
+ * Constructor
17
+ * @param formLayout SacFormLayout to define scoped layout settings
18
+ * @param injector Injector for injecting services
16
19
  */
17
- constructor(parent, injector) {
18
- super(parent, injector);
20
+ constructor(formLayout, injector) {
21
+ super(formLayout, injector);
19
22
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacListboxComponent, deps: [{ token: i1.SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacListboxComponent, deps: [{ token: i1.SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
21
24
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacListboxComponent, isStandalone: true, selector: "sac-listbox", providers: [
22
25
  {
23
26
  provide: NG_VALUE_ACCESSOR,
@@ -29,7 +32,7 @@ class SacListboxComponent extends SacListboxCommon {
29
32
  multi: true,
30
33
  useExisting: forwardRef(() => SacListboxComponent),
31
34
  },
32
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control form-control-sm\"\r\n [size]=\"rowsize\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"getSelectedItems($event.target)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [value]=\"option[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\"\r\n >\r\n {{option[optionlabel]}}\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let option of options\"\r\n [attr.label]=\"option[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of option[groupitems]\"\r\n [value]=\"item[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n {{item[optionlabel]}}\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }, { kind: "directive", type: i0.forwardRef(function () { return SacListboxOptionDirective; }), selector: "[sacOption],option" }], viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }] }); }
35
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control form-control-sm\"\r\n [size]=\"rowsize\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"getSelectedItems($event.target)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [value]=\"option[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\"\r\n >\r\n {{option[optionlabel]}}\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let option of options\"\r\n [attr.label]=\"option[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of option[groupitems]\"\r\n [value]=\"item[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n {{item[optionlabel]}}\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }, { kind: "directive", type: i0.forwardRef(function () { return SacListboxOptionDirective; }), selector: "[sacOption],option" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToLabelWidthCssPipe; }), name: "toLabelWidthCss" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToControlWidthCssPipe; }), name: "toControlWidthCss" }] }); }
33
36
  }
34
37
  export { SacListboxComponent };
35
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacListboxComponent, decorators: [{
@@ -45,14 +48,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
45
48
  multi: true,
46
49
  useExisting: forwardRef(() => SacListboxComponent),
47
50
  },
48
- ], viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }], standalone: true, imports: [
51
+ ], standalone: true, imports: [
49
52
  NgClass,
50
53
  NgIf,
51
54
  NgFor,
52
55
  AsyncPipe,
53
56
  forwardRef(() => SacListboxOptionDirective),
54
- ], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control form-control-sm\"\r\n [size]=\"rowsize\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"getSelectedItems($event.target)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [value]=\"option[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\"\r\n >\r\n {{option[optionlabel]}}\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let option of options\"\r\n [attr.label]=\"option[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of option[groupitems]\"\r\n [value]=\"item[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n {{item[optionlabel]}}\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n" }]
55
- }], ctorParameters: function () { return [{ type: i1.SacFormDirective, decorators: [{
57
+ SacToLabelWidthCssPipe,
58
+ SacToControlWidthCssPipe,
59
+ ], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <select\r\n multiple\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n class=\"form-control form-control-sm\"\r\n [size]=\"rowsize\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"getSelectedItems($event.target)\"\r\n [disabled]=\"isdisabled\"\r\n >\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [value]=\"option[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\"\r\n >\r\n {{option[optionlabel]}}\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let option of options\"\r\n [attr.label]=\"option[grouplabel]\"\r\n >\r\n <option\r\n *ngFor=\"let item of option[groupitems]\"\r\n [value]=\"item[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\r\n >\r\n {{item[optionlabel]}}\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div\r\n class=\"invalid-feedback\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n" }]
60
+ }], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
56
61
  type: Host
57
62
  }, {
58
63
  type: Optional
@@ -61,14 +66,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
61
66
  * Option Item in Listbox
62
67
  */
63
68
  class SacListboxOptionDirective extends SacListboxOptionCommon {
69
+ // #region Constructors
64
70
  /**
65
71
  * Konstruktor
66
- * @param _elementRef Referenz auf DOM Element
67
- * @param _renderer Angular Rendering Engine
72
+ * @param elementRef Referenz auf DOM Element
73
+ * @param renderer Angular Rendering Engine
68
74
  * @param listbox Referenz auf Listbox Komponente
69
75
  */
70
- constructor(_elementRef, _renderer, listbox) {
71
- super(_elementRef, _renderer, listbox);
76
+ constructor(elementRef, renderer, listbox) {
77
+ super(elementRef, renderer, listbox);
72
78
  }
73
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacListboxOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SacListboxComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
74
80
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SacListboxOptionDirective, isStandalone: true, selector: "[sacOption],option", usesInheritance: true, ngImport: i0 }); }
@@ -76,13 +82,10 @@ class SacListboxOptionDirective extends SacListboxOptionCommon {
76
82
  export { SacListboxOptionDirective };
77
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacListboxOptionDirective, decorators: [{
78
84
  type: Directive,
79
- args: [{
80
- selector: '[sacOption],option',
81
- standalone: true,
82
- }]
85
+ args: [{ selector: '[sacOption],option', standalone: true }]
83
86
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SacListboxComponent, decorators: [{
84
87
  type: Optional
85
88
  }, {
86
89
  type: Host
87
90
  }] }]; } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA0L3NyYy9jb250cm9scy9saXN0L2xpc3Rib3gudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvbGlzdC9saXN0Ym94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUVULElBQUksRUFFSixRQUFRLEVBRVIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEdBQ3ZCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFFaEQ7O0dBRUc7QUFDSCxNQTJCYSxtQkFBb0IsU0FBUSxnQkFBZ0I7SUFDdkQ7Ozs7T0FJRztJQUNILFlBQ3NCLE1BQXdCLEVBQzVDLFFBQWtCO1FBRWxCLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQzsrR0FYVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwwREF2Qm5CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLG1CQUFtQjthQUNqQztZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ25EO1NBQ0YsaURDeENILG8wREF1REEsK0VEVkksT0FBTywySEFDUCxJQUFJLG9JQUNKLEtBQUsscUpBQ0wsU0FBUyxxRkF5QkEseUJBQXlCLHdEQS9CckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQzs7U0FVbEUsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBM0IvQixTQUFTOytCQUNFLGFBQWEsYUFHWjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLHFCQUFxQjt5QkFDakM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDO3lCQUNuRDtxQkFDRixpQkFFYyxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLGNBQ2pFLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLElBQUk7d0JBQ0osS0FBSzt3QkFDTCxTQUFTO3dCQUNULFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztxQkFDNUM7OzBCQVNFLElBQUk7OzBCQUFJLFFBQVE7O0FBT3JCOztHQUVHO0FBQ0gsTUFJYSx5QkFBMEIsU0FBUSxzQkFBc0I7SUFDbkU7Ozs7O09BS0c7SUFDSCxZQUNFLFdBQXVCLEVBQ3ZCLFNBQW9CLEVBQ0EsT0FBNEI7UUFFaEQsS0FBSyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQzsrR0FiVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qjs7U0FBekIseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFXSSxRQUFROzswQkFBSSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgT3B0aW9uYWwsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbENvbnRhaW5lcixcclxuICBOR19WQUxJREFUT1JTLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBTYWNMaXN0Ym94Q29tbW9uLFxyXG4gIFNhY0xpc3Rib3hPcHRpb25Db21tb24sXHJcbn0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcclxuaW1wb3J0IHsgU2FjRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4uL2Zvcm0vZm9ybSc7XHJcblxyXG4vKipcclxuICogTGlzdGJveCBLb21wb25lbnRlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy1saXN0Ym94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdGJveC5odG1sJyxcclxuICAvLyBWYWx1ZSBBY2Nlc3MgUHJvdmlkZXIgcmVnaXN0cmllcmVuLCBkYW1pdCBXZXJ0IHZpYSBNb2RlbCBnZXNjaHJpZWJlbiB1bmQgZ2VsZXNlbiB3ZXJkZW4ga2FublxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNMaXN0Ym94Q29tcG9uZW50LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY0xpc3Rib3hDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIC8vIFZpZXcgUHJvdmlkZXIsIGRhbWl0IGRhcyBGb3JtdWxhciBhbiBkYXMgQ29udHJvbCBnZWJ1bmRlbiB3ZXJkZW4ga2FublxyXG4gIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBTYWNGb3JtRGlyZWN0aXZlIH1dLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE5nSWYsXHJcbiAgICBOZ0ZvcixcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIGZvcndhcmRSZWYoKCkgPT4gU2FjTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSksXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY0xpc3Rib3hDb21wb25lbnQgZXh0ZW5kcyBTYWNMaXN0Ym94Q29tbW9uIHtcclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEBwYXJhbSBwYXJlbnQgRm9ybXVsYXJcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgQW5ndWxhciBEZXBlbmRpZW5jeSBJbmplY3Rpb24gU2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBwYXJlbnQ6IFNhY0Zvcm1EaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKHBhcmVudCwgaW5qZWN0b3IpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE9wdGlvbiBJdGVtIGluIExpc3Rib3hcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NhY09wdGlvbl0sb3B0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSBleHRlbmRzIFNhY0xpc3Rib3hPcHRpb25Db21tb24ge1xyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIF9lbGVtZW50UmVmIFJlZmVyZW56IGF1ZiBET00gRWxlbWVudFxyXG4gICAqIEBwYXJhbSBfcmVuZGVyZXIgQW5ndWxhciBSZW5kZXJpbmcgRW5naW5lXHJcbiAgICogQHBhcmFtIGxpc3Rib3ggUmVmZXJlbnogYXVmIExpc3Rib3ggS29tcG9uZW50ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgbGlzdGJveDogU2FjTGlzdGJveENvbXBvbmVudFxyXG4gICkge1xyXG4gICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9yZW5kZXJlciwgbGlzdGJveCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgZm9ybS1ncm91cFwiIFtjbGFzcy5uby1ndXR0ZXJzXT1cImRpc2FibGVsYWJlbFwiPlxyXG4gIDxsYWJlbFxyXG4gICAgZm9yPVwie3tuYW1lfX1cIlxyXG4gICAgY2xhc3M9XCJjb2wtMTIgY29sLWZvcm0tbGFiZWxcIlxyXG4gICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAgJ2NvbC1zbS0nICsgbGFiZWxzaXplIDogJ3NyLW9ubHknIF1cIlxyXG4gICAgPnt7bGFiZWx9fTwvbGFiZWxcclxuICA+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJjb2wtMTJcIlxyXG4gICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAnY29sLXNtLScgKyBfaW5wdXRzaXplIDogJ2NvbC1zbS0xMiddXCJcclxuICA+XHJcbiAgICA8c2VsZWN0XHJcbiAgICAgIG11bHRpcGxlXHJcbiAgICAgIGlkPVwie3tuYW1lfX1cIlxyXG4gICAgICBuYW1lPVwie3tuYW1lfX1cIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc21cIlxyXG4gICAgICBbc2l6ZV09XCJyb3dzaXplXCJcclxuICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzogaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkgfVwiXHJcbiAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAgIChjaGFuZ2UpPVwiZ2V0U2VsZWN0ZWRJdGVtcygkZXZlbnQudGFyZ2V0KVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc2Rpc2FibGVkXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBpdGVtcyA9PT0gJydcIj5cclxuICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbltvcHRpb252YWx1ZV1cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbmVuYWJsZWQgIT09ICcnICYmIG9wdGlvbltvcHRpb25lbmFibGVkXSA9PT0gZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7b3B0aW9uW29wdGlvbmxhYmVsXX19XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBpdGVtcyAhPT0gJydcIj5cclxuICAgICAgICA8b3B0Z3JvdXBcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXHJcbiAgICAgICAgICBbYXR0ci5sYWJlbF09XCJvcHRpb25bZ3JvdXBsYWJlbF1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uW2dyb3VwaXRlbXNdXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW1bb3B0aW9udmFsdWVdXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbmVuYWJsZWQgIT09ICcnICYmIGl0ZW1bb3B0aW9uZW5hYmxlZF0gPT09IGZhbHNlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3tpdGVtW29wdGlvbmxhYmVsXX19XHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L29wdGdyb3VwPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvc2VsZWN0PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIlxyXG4gICAgICAqbmdJZj1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgID5cclxuICAgICAge3sgR2V0RXJyb3JNZXNzYWdlKCkgfCBhc3luYyB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA0L3NyYy9jb250cm9scy9saXN0L2xpc3Rib3gudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvbGlzdC9saXN0Ym94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUVULElBQUksRUFFSixRQUFRLEVBRVIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHNCQUFzQixHQUN2QixNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFFeEUsa0JBQWtCO0FBRWxCOztHQUVHO0FBQ0gsTUEyQmEsbUJBQW9CLFNBQVEsZ0JBQWdCO0lBQ3ZELHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFDc0IsVUFBa0MsRUFDdEQsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQWJVLG1CQUFtQjttR0FBbkIsbUJBQW1CLDBEQXZCbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsbUJBQW1CO2FBQ2pDO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDbkQ7U0FDRixpREN4Q0gsdzFEQXVEQSwrRURaSSxPQUFPLDJIQUNQLElBQUksb0lBQ0osS0FBSyxxSkFDTCxTQUFTLHFGQTRCQSx5QkFBeUIsaUdBMUJsQyxzQkFBc0IsMEZBQ3RCLHdCQUF3Qjs7U0FHZixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkEzQi9CLFNBQVM7K0JBQ0UsYUFBYSxhQUdaO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcscUJBQXFCO3lCQUNqQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7eUJBQ25EO3FCQUNGLGNBQ1csSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixLQUFLO3dCQUNMLFNBQVM7d0JBQ1QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO3dCQUMzQyxzQkFBc0I7d0JBQ3RCLHdCQUF3QjtxQkFDekI7OzBCQVdFLElBQUk7OzBCQUFJLFFBQVE7O0FBU3JCOztHQUVHO0FBQ0gsTUFDYSx5QkFBMEIsU0FBUSxzQkFBc0I7SUFDbkUsdUJBQXVCO0lBRXZCOzs7OztPQUtHO0lBQ0gsWUFDRSxVQUFzQixFQUN0QixRQUFtQixFQUNDLE9BQTRCO1FBRWhELEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0dBZlUseUJBQXlCO21HQUF6Qix5QkFBeUI7O1NBQXpCLHlCQUF5Qjs0RkFBekIseUJBQXlCO2tCQURyQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7OzBCQWExRCxRQUFROzswQkFBSSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgT3B0aW9uYWwsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIFNhY0xpc3Rib3hDb21tb24sXHJcbiAgU2FjTGlzdGJveE9wdGlvbkNvbW1vbixcclxufSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2FjVG9Db250cm9sV2lkdGhDc3NQaXBlIH0gZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbHdpZHRoY3NzLnBpcGUnO1xyXG5pbXBvcnQgeyBTYWNUb0xhYmVsV2lkdGhDc3NQaXBlIH0gZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWx3aWR0aGNzcy5waXBlJztcclxuXHJcbi8vICNyZWdpb24gQ2xhc3Nlc1xyXG5cclxuLyoqXHJcbiAqIExpc3Rib3ggS29tcG9uZW50ZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYWMtbGlzdGJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3Rib3guaHRtbCcsXHJcbiAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjTGlzdGJveENvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNMaXN0Ym94Q29tcG9uZW50KSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBOZ0lmLFxyXG4gICAgTmdGb3IsXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgICBmb3J3YXJkUmVmKCgpID0+IFNhY0xpc3Rib3hPcHRpb25EaXJlY3RpdmUpLFxyXG4gICAgU2FjVG9MYWJlbFdpZHRoQ3NzUGlwZSxcclxuICAgIFNhY1RvQ29udHJvbFdpZHRoQ3NzUGlwZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjTGlzdGJveENvbXBvbmVudCBleHRlbmRzIFNhY0xpc3Rib3hDb21tb24ge1xyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmFtIGZvcm1MYXlvdXQgU2FjRm9ybUxheW91dCB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIGZvcm1MYXlvdXQ6IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKGZvcm1MYXlvdXQsIGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBPcHRpb24gSXRlbSBpbiBMaXN0Ym94XHJcbiAqL1xyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbc2FjT3B0aW9uXSxvcHRpb24nLCBzdGFuZGFsb25lOiB0cnVlIH0pXHJcbmV4cG9ydCBjbGFzcyBTYWNMaXN0Ym94T3B0aW9uRGlyZWN0aXZlIGV4dGVuZHMgU2FjTGlzdGJveE9wdGlvbkNvbW1vbiB7XHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogS29uc3RydWt0b3JcclxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVueiBhdWYgRE9NIEVsZW1lbnRcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciBSZW5kZXJpbmcgRW5naW5lXHJcbiAgICogQHBhcmFtIGxpc3Rib3ggUmVmZXJlbnogYXVmIExpc3Rib3ggS29tcG9uZW50ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIGxpc3Rib3g6IFNhY0xpc3Rib3hDb21wb25lbnRcclxuICApIHtcclxuICAgIHN1cGVyKGVsZW1lbnRSZWYsIHJlbmRlcmVyLCBsaXN0Ym94KTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcbn1cclxuXHJcbi8vICNlbmRyZWdpb24gQ2xhc3Nlc1xyXG4iLCI8ZGl2IGNsYXNzPVwicm93IGZvcm0tZ3JvdXBcIiBbY2xhc3Mubm8tZ3V0dGVyc109XCJkaXNhYmxlbGFiZWxcIj5cclxuICA8bGFiZWxcclxuICAgIGZvcj1cInt7bmFtZX19XCJcclxuICAgIGNsYXNzPVwiY29sLTEyIGNvbC1mb3JtLWxhYmVsXCJcclxuICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gKHRoaXMubGFiZWxTaXplcyB8IHRvTGFiZWxXaWR0aENzcykgOiAnc3Itb25seScgXVwiXHJcbiAgICA+e3tsYWJlbH19PC9sYWJlbFxyXG4gID5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNvbC0xMlwiXHJcbiAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICAodGhpcy5sYWJlbFNpemVzIHwgdG9Db250cm9sV2lkdGhDc3MpIDogJyddXCJcclxuICA+XHJcbiAgICA8c2VsZWN0XHJcbiAgICAgIG11bHRpcGxlXHJcbiAgICAgIGlkPVwie3tuYW1lfX1cIlxyXG4gICAgICBuYW1lPVwie3tuYW1lfX1cIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc21cIlxyXG4gICAgICBbc2l6ZV09XCJyb3dzaXplXCJcclxuICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzogaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkgfVwiXHJcbiAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAgIChjaGFuZ2UpPVwiZ2V0U2VsZWN0ZWRJdGVtcygkZXZlbnQudGFyZ2V0KVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc2Rpc2FibGVkXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBpdGVtcyA9PT0gJydcIj5cclxuICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbltvcHRpb252YWx1ZV1cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbmVuYWJsZWQgIT09ICcnICYmIG9wdGlvbltvcHRpb25lbmFibGVkXSA9PT0gZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7b3B0aW9uW29wdGlvbmxhYmVsXX19XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBpdGVtcyAhPT0gJydcIj5cclxuICAgICAgICA8b3B0Z3JvdXBcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXHJcbiAgICAgICAgICBbYXR0ci5sYWJlbF09XCJvcHRpb25bZ3JvdXBsYWJlbF1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uW2dyb3VwaXRlbXNdXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW1bb3B0aW9udmFsdWVdXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbmVuYWJsZWQgIT09ICcnICYmIGl0ZW1bb3B0aW9uZW5hYmxlZF0gPT09IGZhbHNlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3tpdGVtW29wdGlvbmxhYmVsXX19XHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L29wdGdyb3VwPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvc2VsZWN0PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIlxyXG4gICAgICAqbmdJZj1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgID5cclxuICAgICAge3sgR2V0RXJyb3JNZXNzYWdlKCkgfCBhc3luYyB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,30 +1,34 @@
1
1
  import { AsyncPipe, NgClass, NgFor, NgIf } from '@angular/common';
2
2
  import { Component, Host, Optional, forwardRef } from '@angular/core';
3
- import { ControlContainer, NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { IconType, SacMultilanguageInputCommon, } from '@simpleangularcontrols/sac-common';
5
- import { SacFormDirective } from '../form/form';
5
+ import { SacToControlWidthCssPipe } from '../layout/tocontrolwidthcss.pipe';
6
+ import { SacToLabelWidthCssPipe } from '../layout/tolabelwidthcss.pipe';
6
7
  import { SacMultilanguagemenuComponent } from './multilanguagemenu';
7
8
  import { SacMultilanguagemenuAnchorDirective } from './multilanguagemenuanchor';
8
9
  import { SacMultilanguagemenuItemButtonComponent } from './multilanguagemenuitembutton';
9
10
  import * as i0 from "@angular/core";
10
- import * as i1 from "../form/form";
11
+ import * as i1 from "../layout/formlayout.directive";
11
12
  /**
12
13
  * Componente für Mehrsprache Texte
13
14
  */
14
15
  class SacMultilanguageInputComponent extends SacMultilanguageInputCommon {
16
+ // #endregion Properties
17
+ // #region Constructors
15
18
  /**
16
- * Konstruktor
17
- * @param parent Formular Inject
18
- * @param injector Default Injector
19
+ * Constructor
20
+ * @param formLayout SacFormLayout to define scoped layout settings
21
+ * @param injector Injector for injecting services
19
22
  */
20
- constructor(parent, injector) {
21
- super(parent, injector);
23
+ constructor(formLayout, injector) {
24
+ super(formLayout, injector);
25
+ // #region Properties
22
26
  /**
23
27
  * Enum für IconType in HTML Template
24
28
  */
25
29
  this.IconType = IconType;
26
30
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacMultilanguageInputComponent, deps: [{ token: i1.SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacMultilanguageInputComponent, deps: [{ token: i1.SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
28
32
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacMultilanguageInputComponent, isStandalone: true, selector: "sac-multilanguageinput", providers: [
29
33
  {
30
34
  provide: NG_VALUE_ACCESSOR,
@@ -36,7 +40,7 @@ class SacMultilanguageInputComponent extends SacMultilanguageInputCommon {
36
40
  multi: true,
37
41
  useExisting: forwardRef(() => SacMultilanguageInputComponent),
38
42
  },
39
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <div\r\n class=\"input-group input-group-sm\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div\r\n placement=\"bottom-right\"\r\n class=\"input-group-append\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <span\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></span>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SacMultilanguagemenuComponent, selector: "[sac-multilanguagemenu]" }, { kind: "directive", type: SacMultilanguagemenuAnchorDirective, selector: "[sacMultilanguageMenuAnchor]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SacMultilanguagemenuItemButtonComponent, selector: "sac-multilanguagemenubutton" }], viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }] }); }
43
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group input-group-sm\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div\r\n placement=\"bottom-right\"\r\n class=\"input-group-append\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <span\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></span>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SacMultilanguagemenuComponent, selector: "[sac-multilanguagemenu]" }, { kind: "directive", type: SacMultilanguagemenuAnchorDirective, selector: "[sacMultilanguageMenuAnchor]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SacMultilanguagemenuItemButtonComponent, selector: "sac-multilanguagemenubutton" }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }] }); }
40
44
  }
41
45
  export { SacMultilanguageInputComponent };
42
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacMultilanguageInputComponent, decorators: [{
@@ -52,7 +56,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
52
56
  multi: true,
53
57
  useExisting: forwardRef(() => SacMultilanguageInputComponent),
54
58
  },
55
- ], viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }], standalone: true, imports: [
59
+ ], standalone: true, imports: [
56
60
  NgClass,
57
61
  SacMultilanguagemenuComponent,
58
62
  SacMultilanguagemenuAnchorDirective,
@@ -60,10 +64,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
60
64
  NgFor,
61
65
  AsyncPipe,
62
66
  SacMultilanguagemenuItemButtonComponent,
63
- ], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\"\r\n >\r\n <div\r\n class=\"input-group input-group-sm\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div\r\n placement=\"bottom-right\"\r\n class=\"input-group-append\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <span\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></span>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n" }]
64
- }], ctorParameters: function () { return [{ type: i1.SacFormDirective, decorators: [{
67
+ SacToLabelWidthCssPipe,
68
+ SacToControlWidthCssPipe,
69
+ ], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <label\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group input-group-sm\"\r\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <input\r\n id=\"{{name}}\"\r\n name=\"{{name}}\"\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n [value]=\"LanguageValue\"\r\n [attr.placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n (input)=\"SetLanguageValue($event.target.value)\"\r\n [attr.maxlength]=\"maxlength\"\r\n [ngClass]=\"{'is-invalid': invalid && (dirty || touched) }\"\r\n [disabled]=\"isdisabled\"\r\n />\r\n <div\r\n placement=\"bottom-right\"\r\n class=\"input-group-append\"\r\n sac-multilanguagemenu\r\n [buttontemplate]=\"menuButton\"\r\n #contextmenu\r\n >\r\n <ng-template #menuButton>\r\n <button\r\n sacMultilanguageMenuAnchor\r\n [id]=\"name + '_dropdownitem'\"\r\n type=\"button\"\r\n class=\"btn dropdown-toggle\"\r\n (click)=\"contextmenu.toggle()\"\r\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\"\r\n >\r\n <img\r\n src=\"{{SelectedIcon}}\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.Image\"\r\n />\r\n <span\r\n [ngClass]=\"SelectedIcon\"\r\n class=\"align-baseline mr-1 ml-1\"\r\n *ngIf=\"SelectedIconType === IconType.CssSprite\"\r\n ></span>\r\n </button>\r\n </ng-template>\r\n <ng-container *ngFor=\"let sprache of Languages\">\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.Image\"\r\n text=\"{{sprache.Text}}\"\r\n image=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n <sac-multilanguagemenubutton\r\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\r\n text=\"{{sprache.Text}}\"\r\n icon=\"{{sprache.Icon}}\"\r\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger': ''\"\r\n (clicked)=\"SelectLanguage(sprache)\"\r\n ></sac-multilanguagemenubutton>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col text-right\"></div>\r\n</div>\r\n" }]
70
+ }], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
65
71
  type: Host
66
72
  }, {
67
73
  type: Optional
68
74
  }] }, { type: i0.Injector }]; } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFZLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFFBQVEsRUFDUiwyQkFBMkIsR0FDNUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQUV4Rjs7R0FFRztBQUNILE1BNkJhLDhCQUErQixTQUFRLDJCQUEyQjtJQU03RTs7OztPQUlHO0lBQ0gsWUFDc0IsTUFBd0IsRUFDNUMsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQWQxQjs7V0FFRztRQUNILGFBQVEsR0FBRyxRQUFRLENBQUM7SUFZcEIsQ0FBQzsrR0FoQlUsOEJBQThCO21HQUE5Qiw4QkFBOEIscUVBekI5QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSw4QkFBOEI7YUFDNUM7WUFDRDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQzthQUM5RDtTQUNGLGlEQ2xDSCxxcEdBcUZBLDRDRDlDSSxPQUFPLG9GQUNQLDZCQUE2QixvRUFDN0IsbUNBQW1DLHlFQUNuQyxJQUFJLDZGQUNKLEtBQUssOEdBQ0wsU0FBUyw4Q0FDVCx1Q0FBdUMsNkRBVDFCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7O1NBWWxFLDhCQUE4Qjs0RkFBOUIsOEJBQThCO2tCQTdCMUMsU0FBUzsrQkFDRSx3QkFBd0IsYUFHdkI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxnQ0FBZ0M7eUJBQzVDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwrQkFBK0IsQ0FBQzt5QkFDOUQ7cUJBQ0YsaUJBRWMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxjQUNqRSxJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCw2QkFBNkI7d0JBQzdCLG1DQUFtQzt3QkFDbkMsSUFBSTt3QkFDSixLQUFLO3dCQUNMLFNBQVM7d0JBQ1QsdUNBQXVDO3FCQUN4Qzs7MEJBY0UsSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xDb250YWluZXIsXHJcbiAgTkdfVkFMSURBVE9SUyxcclxuICBOR19WQUxVRV9BQ0NFU1NPUixcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgSWNvblR5cGUsXHJcbiAgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tbW9uLFxyXG59IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9mb3JtL2Zvcm0nO1xyXG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnUnO1xyXG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUFuY2hvckRpcmVjdGl2ZSB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnVhbmNob3InO1xyXG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUl0ZW1CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51aXRlbWJ1dHRvbic7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBmw7xyIE1laHJzcHJhY2hlIFRleHRlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy1tdWx0aWxhbmd1YWdlaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aWxhbmd1YWdlaW5wdXQuaHRtbCcsXHJcbiAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgLy8gVmlldyBQcm92aWRlciwgZGFtaXQgZGFzIEZvcm11bGFyIGFuIGRhcyBDb250cm9sIGdlYnVuZGVuIHdlcmRlbiBrYW5uXHJcbiAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IFNhY0Zvcm1EaXJlY3RpdmUgfV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVDb21wb25lbnQsXHJcbiAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUFuY2hvckRpcmVjdGl2ZSxcclxuICAgIE5nSWYsXHJcbiAgICBOZ0ZvcixcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIFNhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudCxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tbW9uIHtcclxuICAvKipcclxuICAgKiBFbnVtIGbDvHIgSWNvblR5cGUgaW4gSFRNTCBUZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEljb25UeXBlID0gSWNvblR5cGU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIHBhcmVudCBGb3JtdWxhciBJbmplY3RcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgRGVmYXVsdCBJbmplY3RvclxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBwYXJlbnQ6IFNhY0Zvcm1EaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKHBhcmVudCwgaW5qZWN0b3IpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93IGZvcm0tZ3JvdXBcIiBbY2xhc3Mubm8tZ3V0dGVyc109XCJkaXNhYmxlbGFiZWxcIj5cclxuICA8bGFiZWxcclxuICAgIGZvcj1cInt7bmFtZX19XCJcclxuICAgIGNsYXNzPVwiY29sLTEyIGNvbC1mb3JtLWxhYmVsXCJcclxuICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gICdjb2wtc20tJyArIGxhYmVsc2l6ZSA6ICdzci1vbmx5JyBdXCJcclxuICAgID57e2xhYmVsfX08L2xhYmVsXHJcbiAgPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY29sLTEyXCJcclxuICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gJ2NvbC1zbS0nICsgX2lucHV0c2l6ZSA6ICdjb2wtc20tMTInXVwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImlucHV0LWdyb3VwIGlucHV0LWdyb3VwLXNtXCJcclxuICAgICAgW2NsYXNzLmhhcy12YWxpZGF0aW9uXT1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgID5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgaWQ9XCJ7e25hbWV9fVwiXHJcbiAgICAgICAgbmFtZT1cInt7bmFtZX19XCJcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCJcclxuICAgICAgICBbdmFsdWVdPVwiTGFuZ3VhZ2VWYWx1ZVwiXHJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAgICAgKGlucHV0KT1cIlNldExhbmd1YWdlVmFsdWUoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxyXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6IGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpIH1cIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc2Rpc2FibGVkXCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXHJcbiAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIlxyXG4gICAgICAgIHNhYy1tdWx0aWxhbmd1YWdlbWVudVxyXG4gICAgICAgIFtidXR0b250ZW1wbGF0ZV09XCJtZW51QnV0dG9uXCJcclxuICAgICAgICAjY29udGV4dG1lbnVcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbWVudUJ1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgc2FjTXVsdGlsYW5ndWFnZU1lbnVBbmNob3JcclxuICAgICAgICAgICAgW2lkXT1cIm5hbWUgKyAnX2Ryb3Bkb3duaXRlbSdcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbnRleHRtZW51LnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW0lzQW55RW1wdHkoKSA/ICdidG4td2FybmluZycgOiAnYnRuLXNlY29uZGFyeSddXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgIHNyYz1cInt7U2VsZWN0ZWRJY29ufX1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWxpZ24tYmFzZWxpbmUgbXItMSBtbC0xXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIlNlbGVjdGVkSWNvblR5cGUgPT09IEljb25UeXBlLkltYWdlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJTZWxlY3RlZEljb25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWxpZ24tYmFzZWxpbmUgbXItMSBtbC0xXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIlNlbGVjdGVkSWNvblR5cGUgPT09IEljb25UeXBlLkNzc1Nwcml0ZVwiXHJcbiAgICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNwcmFjaGUgb2YgTGFuZ3VhZ2VzXCI+XHJcbiAgICAgICAgICA8c2FjLW11bHRpbGFuZ3VhZ2VtZW51YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwic3ByYWNoZS5JY29uVHlwZSA9PT0gSWNvblR5cGUuSW1hZ2VcIlxyXG4gICAgICAgICAgICB0ZXh0PVwie3tzcHJhY2hlLlRleHR9fVwiXHJcbiAgICAgICAgICAgIGltYWdlPVwie3tzcHJhY2hlLkljb259fVwiXHJcbiAgICAgICAgICAgIFtjc3NjbGFzc109XCJJc0VtcHR5KHNwcmFjaGUpID8gJ3RleHQtZGFuZ2VyIGJvcmRlci1sZWZ0IGJvcmRlci1kYW5nZXInOiAnJ1wiXHJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIlNlbGVjdExhbmd1YWdlKHNwcmFjaGUpXCJcclxuICAgICAgICAgID48L3NhYy1tdWx0aWxhbmd1YWdlbWVudWJ1dHRvbj5cclxuICAgICAgICAgIDxzYWMtbXVsdGlsYW5ndWFnZW1lbnVidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJzcHJhY2hlLkljb25UeXBlID09PSBJY29uVHlwZS5Dc3NTcHJpdGVcIlxyXG4gICAgICAgICAgICB0ZXh0PVwie3tzcHJhY2hlLlRleHR9fVwiXHJcbiAgICAgICAgICAgIGljb249XCJ7e3NwcmFjaGUuSWNvbn19XCJcclxuICAgICAgICAgICAgW2Nzc2NsYXNzXT1cIklzRW1wdHkoc3ByYWNoZSkgPyAndGV4dC1kYW5nZXIgYm9yZGVyLWxlZnQgYm9yZGVyLWRhbmdlcic6ICcnXCJcclxuICAgICAgICAgICAgKGNsaWNrZWQpPVwiU2VsZWN0TGFuZ3VhZ2Uoc3ByYWNoZSlcIlxyXG4gICAgICAgICAgPjwvc2FjLW11bHRpbGFuZ3VhZ2VtZW51YnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwiaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbCB0ZXh0LXJpZ2h0XCI+PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFZLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxRQUFRLEVBQ1IsMkJBQTJCLEdBQzVCLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQUV4Rjs7R0FFRztBQUNILE1BNkJhLDhCQUErQixTQUFRLDJCQUEyQjtJQVE3RSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7O09BSUc7SUFDSCxZQUNzQixVQUFrQyxFQUN0RCxRQUFrQjtRQUVsQixLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBcEI5QixxQkFBcUI7UUFFckI7O1dBRUc7UUFDSSxhQUFRLEdBQUcsUUFBUSxDQUFDO0lBZ0IzQixDQUFDOytHQXRCVSw4QkFBOEI7bUdBQTlCLDhCQUE4QixxRUF6QjlCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLDhCQUE4QjthQUM1QztZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDO2FBQzlEO1NBQ0YsaURDaENILHlxR0FxRkEsNENEbERJLE9BQU8sb0ZBQ1AsNkJBQTZCLG9FQUM3QixtQ0FBbUMseUVBQ25DLElBQUksNkZBQ0osS0FBSyw4R0FDTCxTQUFTLDhDQUNULHVDQUF1QyxtRUFDdkMsc0JBQXNCLG1EQUN0Qix3QkFBd0I7O1NBR2YsOEJBQThCOzRGQUE5Qiw4QkFBOEI7a0JBN0IxQyxTQUFTOytCQUNFLHdCQUF3QixhQUd2Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLGdDQUFnQzt5QkFDNUM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLCtCQUErQixDQUFDO3lCQUM5RDtxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLDZCQUE2Qjt3QkFDN0IsbUNBQW1DO3dCQUNuQyxJQUFJO3dCQUNKLEtBQUs7d0JBQ0wsU0FBUzt3QkFDVCx1Q0FBdUM7d0JBQ3ZDLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3FCQUN6Qjs7MEJBb0JFLElBQUk7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0LCBJbmplY3RvciwgT3B0aW9uYWwsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgSWNvblR5cGUsXHJcbiAgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tbW9uLFxyXG59IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUgfSBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9sd2lkdGhjc3MucGlwZSc7XHJcbmltcG9ydCB7IFNhY1RvTGFiZWxXaWR0aENzc1BpcGUgfSBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbHdpZHRoY3NzLnBpcGUnO1xyXG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnUnO1xyXG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUFuY2hvckRpcmVjdGl2ZSB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnVhbmNob3InO1xyXG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUl0ZW1CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51aXRlbWJ1dHRvbic7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBmw7xyIE1laHJzcHJhY2hlIFRleHRlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy1tdWx0aWxhbmd1YWdlaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aWxhbmd1YWdlaW5wdXQuaHRtbCcsXHJcbiAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVDb21wb25lbnQsXHJcbiAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUFuY2hvckRpcmVjdGl2ZSxcclxuICAgIE5nSWYsXHJcbiAgICBOZ0ZvcixcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIFNhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFNhY1RvTGFiZWxXaWR0aENzc1BpcGUsXHJcbiAgICBTYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudCBleHRlbmRzIFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbW1vbiB7XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIEVudW0gZsO8ciBJY29uVHlwZSBpbiBIVE1MIFRlbXBsYXRlXHJcbiAgICovXHJcbiAgcHVibGljIEljb25UeXBlID0gSWNvblR5cGU7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgZm9ybS1ncm91cFwiIFtjbGFzcy5uby1ndXR0ZXJzXT1cImRpc2FibGVsYWJlbFwiPlxyXG4gIDxsYWJlbFxyXG4gICAgZm9yPVwie3tuYW1lfX1cIlxyXG4gICAgY2xhc3M9XCJjb2wtMTIgY29sLWZvcm0tbGFiZWxcIlxyXG4gICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAodGhpcy5sYWJlbFNpemVzIHwgdG9MYWJlbFdpZHRoQ3NzKSA6ICdzci1vbmx5JyBdXCJcclxuICAgID57e2xhYmVsfX08L2xhYmVsXHJcbiAgPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY29sLTEyXCJcclxuICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gICh0aGlzLmxhYmVsU2l6ZXMgfCB0b0NvbnRyb2xXaWR0aENzcykgOiAnJ11cIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cCBpbnB1dC1ncm91cC1zbVwiXHJcbiAgICAgIFtjbGFzcy5oYXMtdmFsaWRhdGlvbl09XCJpc2lubGluZWVycm9yZW5hYmxlZCAmJiBpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICA+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIGlkPVwie3tuYW1lfX1cIlxyXG4gICAgICAgIG5hbWU9XCJ7e25hbWV9fVwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cIkxhbmd1YWdlVmFsdWVcIlxyXG4gICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxyXG4gICAgICAgIChpbnB1dCk9XCJTZXRMYW5ndWFnZVZhbHVlKCRldmVudC50YXJnZXQudmFsdWUpXCJcclxuICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOiBpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSB9XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNkaXNhYmxlZFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxyXG4gICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCJcclxuICAgICAgICBzYWMtbXVsdGlsYW5ndWFnZW1lbnVcclxuICAgICAgICBbYnV0dG9udGVtcGxhdGVdPVwibWVudUJ1dHRvblwiXHJcbiAgICAgICAgI2NvbnRleHRtZW51XHJcbiAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI21lbnVCdXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIHNhY011bHRpbGFuZ3VhZ2VNZW51QW5jaG9yXHJcbiAgICAgICAgICAgIFtpZF09XCJuYW1lICsgJ19kcm9wZG93bml0ZW0nXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjb250ZXh0bWVudS50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltJc0FueUVtcHR5KCkgPyAnYnRuLXdhcm5pbmcnIDogJ2J0bi1zZWNvbmRhcnknXVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICBzcmM9XCJ7e1NlbGVjdGVkSWNvbn19XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImFsaWduLWJhc2VsaW5lIG1yLTEgbWwtMVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJTZWxlY3RlZEljb25UeXBlID09PSBJY29uVHlwZS5JbWFnZVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiU2VsZWN0ZWRJY29uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImFsaWduLWJhc2VsaW5lIG1yLTEgbWwtMVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJTZWxlY3RlZEljb25UeXBlID09PSBJY29uVHlwZS5Dc3NTcHJpdGVcIlxyXG4gICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzcHJhY2hlIG9mIExhbmd1YWdlc1wiPlxyXG4gICAgICAgICAgPHNhYy1tdWx0aWxhbmd1YWdlbWVudWJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cInNwcmFjaGUuSWNvblR5cGUgPT09IEljb25UeXBlLkltYWdlXCJcclxuICAgICAgICAgICAgdGV4dD1cInt7c3ByYWNoZS5UZXh0fX1cIlxyXG4gICAgICAgICAgICBpbWFnZT1cInt7c3ByYWNoZS5JY29ufX1cIlxyXG4gICAgICAgICAgICBbY3NzY2xhc3NdPVwiSXNFbXB0eShzcHJhY2hlKSA/ICd0ZXh0LWRhbmdlciBib3JkZXItbGVmdCBib3JkZXItZGFuZ2VyJzogJydcIlxyXG4gICAgICAgICAgICAoY2xpY2tlZCk9XCJTZWxlY3RMYW5ndWFnZShzcHJhY2hlKVwiXHJcbiAgICAgICAgICA+PC9zYWMtbXVsdGlsYW5ndWFnZW1lbnVidXR0b24+XHJcbiAgICAgICAgICA8c2FjLW11bHRpbGFuZ3VhZ2VtZW51YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwic3ByYWNoZS5JY29uVHlwZSA9PT0gSWNvblR5cGUuQ3NzU3ByaXRlXCJcclxuICAgICAgICAgICAgdGV4dD1cInt7c3ByYWNoZS5UZXh0fX1cIlxyXG4gICAgICAgICAgICBpY29uPVwie3tzcHJhY2hlLkljb259fVwiXHJcbiAgICAgICAgICAgIFtjc3NjbGFzc109XCJJc0VtcHR5KHNwcmFjaGUpID8gJ3RleHQtZGFuZ2VyIGJvcmRlci1sZWZ0IGJvcmRlci1kYW5nZXInOiAnJ1wiXHJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIlNlbGVjdExhbmd1YWdlKHNwcmFjaGUpXCJcclxuICAgICAgICAgID48L3NhYy1tdWx0aWxhbmd1YWdlbWVudWJ1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgR2V0RXJyb3JNZXNzYWdlKCkgfCBhc3luYyB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wgdGV4dC1yaWdodFwiPjwvZGl2PlxyXG48L2Rpdj5cclxuIl19