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

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 (208) hide show
  1. package/README.md +17 -17
  2. package/components/browser/browser.d.ts +6 -6
  3. package/components/browser/browser.d.ts.map +1 -1
  4. package/controls/buttons/index.d.ts +2 -0
  5. package/controls/buttons/index.d.ts.map +1 -0
  6. package/controls/checkbox/checkbox.d.ts +5 -5
  7. package/controls/checkbox/checkbox.d.ts.map +1 -1
  8. package/controls/checkbox/checkbox.module.d.ts.map +1 -1
  9. package/controls/checkbox/radiobutton.d.ts +7 -3
  10. package/controls/checkbox/radiobutton.d.ts.map +1 -1
  11. package/controls/checkbox/radiobuttons.d.ts +5 -5
  12. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  13. package/controls/confirm/confirm.service.d.ts +10 -11
  14. package/controls/confirm/confirm.service.d.ts.map +1 -1
  15. package/controls/contextmenu/contextmenu.d.ts +6 -6
  16. package/controls/contextmenu/contextmenu.d.ts.map +1 -1
  17. package/controls/contextmenu/contextmenu.module.d.ts.map +1 -1
  18. package/controls/contextmenu/contextmenuanchor.d.ts +2 -2
  19. package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -1
  20. package/controls/contextmenu/contextmenucontainer.d.ts +2 -2
  21. package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
  22. package/controls/contextmenu/contextmenuitembutton.d.ts +3 -4
  23. package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
  24. package/controls/contextmenu/contextmenuitemsplitter.d.ts.map +1 -1
  25. package/controls/datetime/date.d.ts +9 -8
  26. package/controls/datetime/date.d.ts.map +1 -1
  27. package/controls/datetime/datetime.d.ts +9 -8
  28. package/controls/datetime/datetime.d.ts.map +1 -1
  29. package/controls/datetime/datetime.module.d.ts.map +1 -1
  30. package/controls/datetime/time.d.ts +9 -8
  31. package/controls/datetime/time.d.ts.map +1 -1
  32. package/controls/dialog/index.d.ts +2 -0
  33. package/controls/dialog/index.d.ts.map +1 -0
  34. package/controls/form/form.d.ts +3 -11
  35. package/controls/form/form.d.ts.map +1 -1
  36. package/controls/form/inheritform.directive.d.ts +16 -39
  37. package/controls/form/inheritform.directive.d.ts.map +1 -1
  38. package/controls/grid/grid.d.ts +2 -2
  39. package/controls/grid/grid.d.ts.map +1 -1
  40. package/controls/grid/grid.module.d.ts.map +1 -1
  41. package/controls/grid/gridbutton.d.ts +1 -10
  42. package/controls/grid/gridbutton.d.ts.map +1 -1
  43. package/controls/input/input.d.ts +5 -5
  44. package/controls/input/input.d.ts.map +1 -1
  45. package/controls/input/input.module.d.ts.map +1 -1
  46. package/controls/input/inputarea.d.ts +5 -5
  47. package/controls/input/inputarea.d.ts.map +1 -1
  48. package/controls/input/inputcurrency.d.ts +5 -5
  49. package/controls/input/inputcurrency.d.ts.map +1 -1
  50. package/controls/input/inputdecimal.d.ts +5 -5
  51. package/controls/input/inputdecimal.d.ts.map +1 -1
  52. package/controls/input/inputemail.d.ts +5 -5
  53. package/controls/input/inputemail.d.ts.map +1 -1
  54. package/controls/input/inputinteger.d.ts +5 -5
  55. package/controls/input/inputinteger.d.ts.map +1 -1
  56. package/controls/input/inputpassword.d.ts +5 -5
  57. package/controls/input/inputpassword.d.ts.map +1 -1
  58. package/controls/input/inputsearch.d.ts +5 -5
  59. package/controls/input/inputsearch.d.ts.map +1 -1
  60. package/controls/layout/formlayout.directive.d.ts +7 -0
  61. package/controls/layout/formlayout.directive.d.ts.map +1 -0
  62. package/controls/layout/layout.module.d.ts +13 -0
  63. package/controls/layout/layout.module.d.ts.map +1 -0
  64. package/controls/layout/tocontrolheight.pipe.d.ts +13 -0
  65. package/controls/layout/tocontrolheight.pipe.d.ts.map +1 -0
  66. package/controls/layout/tocontrolwidthcss.pipe.d.ts +20 -0
  67. package/controls/layout/tocontrolwidthcss.pipe.d.ts.map +1 -0
  68. package/controls/layout/tolabelheight.pipe.d.ts +13 -0
  69. package/controls/layout/tolabelheight.pipe.d.ts.map +1 -0
  70. package/controls/layout/tolabelwidthcss.pipe.d.ts +14 -0
  71. package/controls/layout/tolabelwidthcss.pipe.d.ts.map +1 -0
  72. package/controls/list/dropdown.d.ts +10 -10
  73. package/controls/list/dropdown.d.ts.map +1 -1
  74. package/controls/list/dropdown.module.d.ts.map +1 -1
  75. package/controls/list/listbox.d.ts +8 -8
  76. package/controls/list/listbox.d.ts.map +1 -1
  77. package/controls/multilanguage/multilanguage.module.d.ts.map +1 -1
  78. package/controls/multilanguage/multilanguageinput.d.ts +5 -5
  79. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  80. package/controls/multilanguage/multilanguageinputarea.d.ts +5 -5
  81. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  82. package/controls/multilanguage/multilanguagemenu.d.ts +6 -6
  83. package/controls/multilanguage/multilanguagemenu.d.ts.map +1 -1
  84. package/controls/multilanguage/multilanguagemenuanchor.d.ts +2 -2
  85. package/controls/multilanguage/multilanguagemenuanchor.d.ts.map +1 -1
  86. package/controls/multilanguage/multilanguagemenucontainer.d.ts +2 -2
  87. package/controls/multilanguage/multilanguagemenucontainer.d.ts.map +1 -1
  88. package/controls/multilanguage/multilanguagemenuitembutton.d.ts +3 -3
  89. package/controls/multilanguage/multilanguagemenuitembutton.d.ts.map +1 -1
  90. package/controls/static/formcontainer.d.ts +7 -7
  91. package/controls/static/formcontainer.d.ts.map +1 -1
  92. package/controls/static/staticlabel.d.ts +5 -5
  93. package/controls/static/staticlabel.d.ts.map +1 -1
  94. package/controls/static/staticlabel.module.d.ts.map +1 -1
  95. package/controls/tinymce/tinymce.d.ts +6 -6
  96. package/controls/tinymce/tinymce.d.ts.map +1 -1
  97. package/controls/tooltip/tooltip.d.ts +38 -0
  98. package/controls/tooltip/tooltip.d.ts.map +1 -0
  99. package/controls/tooltip/tooltip.module.d.ts +9 -0
  100. package/controls/tooltip/tooltip.module.d.ts.map +1 -0
  101. package/controls/treeview/treeview.d.ts +18 -0
  102. package/controls/treeview/treeview.d.ts.map +1 -0
  103. package/controls/treeview/treeview.module.d.ts +9 -0
  104. package/controls/treeview/treeview.module.d.ts.map +1 -0
  105. package/controls/upload/dropzonemultiple.d.ts +7 -7
  106. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  107. package/controls/upload/dropzonesingle.d.ts +7 -7
  108. package/controls/upload/dropzonesingle.d.ts.map +1 -1
  109. package/controls/upload/upload.d.ts +7 -7
  110. package/controls/upload/upload.d.ts.map +1 -1
  111. package/controls/upload/upload.module.d.ts.map +1 -1
  112. package/controls/upload/uploadmultiple.d.ts +7 -7
  113. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  114. package/controls/validation/validationsummary.d.ts +4 -4
  115. package/controls/validation/validationsummary.d.ts.map +1 -1
  116. package/esm2022/components/browser/browser.mjs +19 -15
  117. package/esm2022/components/browser/browser.module.mjs +1 -1
  118. package/esm2022/controls/buttons/button.mjs +3 -3
  119. package/esm2022/controls/buttons/button.module.mjs +1 -1
  120. package/esm2022/controls/buttons/index.mjs +2 -0
  121. package/esm2022/controls/checkbox/checkbox.mjs +28 -20
  122. package/esm2022/controls/checkbox/checkbox.module.mjs +15 -5
  123. package/esm2022/controls/checkbox/radiobutton.mjs +18 -9
  124. package/esm2022/controls/checkbox/radiobuttons.mjs +26 -19
  125. package/esm2022/controls/confirm/confirm.mjs +3 -3
  126. package/esm2022/controls/confirm/confirm.module.mjs +1 -1
  127. package/esm2022/controls/confirm/confirm.service.mjs +31 -16
  128. package/esm2022/controls/contextmenu/contextmenu.mjs +14 -28
  129. package/esm2022/controls/contextmenu/contextmenu.module.mjs +12 -8
  130. package/esm2022/controls/contextmenu/contextmenuanchor.mjs +5 -4
  131. package/esm2022/controls/contextmenu/contextmenucontainer.mjs +5 -4
  132. package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +22 -13
  133. package/esm2022/controls/contextmenu/contextmenuitemsplitter.mjs +14 -4
  134. package/esm2022/controls/contextmenu/index.mjs +1 -1
  135. package/esm2022/controls/datetime/date.mjs +42 -22
  136. package/esm2022/controls/datetime/dateselector.mjs +3 -3
  137. package/esm2022/controls/datetime/datetime.mjs +34 -17
  138. package/esm2022/controls/datetime/datetime.module.mjs +27 -10
  139. package/esm2022/controls/datetime/time.mjs +34 -17
  140. package/esm2022/controls/dialog/dialog.mjs +3 -3
  141. package/esm2022/controls/dialog/dialog.module.mjs +1 -1
  142. package/esm2022/controls/dialog/index.mjs +2 -0
  143. package/esm2022/controls/form/form.mjs +6 -17
  144. package/esm2022/controls/form/form.module.mjs +1 -1
  145. package/esm2022/controls/form/inheritform.directive.mjs +46 -63
  146. package/esm2022/controls/grid/grid.mjs +10 -13
  147. package/esm2022/controls/grid/grid.module.mjs +35 -9
  148. package/esm2022/controls/grid/gridbutton.mjs +5 -13
  149. package/esm2022/controls/grid/gridcolumn.mjs +3 -3
  150. package/esm2022/controls/grid/gridcolumnaction.mjs +3 -3
  151. package/esm2022/controls/grid/gridimage.mjs +3 -3
  152. package/esm2022/controls/grid/paging.mjs +3 -3
  153. package/esm2022/controls/input/input.mjs +29 -15
  154. package/esm2022/controls/input/input.module.mjs +36 -6
  155. package/esm2022/controls/input/inputarea.mjs +29 -15
  156. package/esm2022/controls/input/inputcurrency.mjs +29 -15
  157. package/esm2022/controls/input/inputdecimal.mjs +29 -15
  158. package/esm2022/controls/input/inputemail.mjs +29 -15
  159. package/esm2022/controls/input/inputinteger.mjs +29 -15
  160. package/esm2022/controls/input/inputpassword.mjs +29 -15
  161. package/esm2022/controls/input/inputsearch.mjs +27 -13
  162. package/esm2022/controls/layout/formlayout.directive.mjs +16 -0
  163. package/esm2022/controls/layout/layout.module.mjs +44 -0
  164. package/esm2022/controls/layout/tocontrolheight.pipe.mjs +35 -0
  165. package/esm2022/controls/layout/tocontrolwidthcss.pipe.mjs +56 -0
  166. package/esm2022/controls/layout/tolabelheight.pipe.mjs +35 -0
  167. package/esm2022/controls/layout/tolabelwidthcss.pipe.mjs +40 -0
  168. package/esm2022/controls/list/dropdown.mjs +31 -21
  169. package/esm2022/controls/list/dropdown.module.mjs +5 -11
  170. package/esm2022/controls/list/list.module.mjs +2 -2
  171. package/esm2022/controls/list/listbox.mjs +31 -22
  172. package/esm2022/controls/multilanguage/multilanguage.module.mjs +8 -4
  173. package/esm2022/controls/multilanguage/multilanguageinput.mjs +26 -14
  174. package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +27 -15
  175. package/esm2022/controls/multilanguage/multilanguagemenu.mjs +12 -11
  176. package/esm2022/controls/multilanguage/multilanguagemenuanchor.mjs +5 -4
  177. package/esm2022/controls/multilanguage/multilanguagemenucontainer.mjs +5 -4
  178. package/esm2022/controls/multilanguage/multilanguagemenuitembutton.mjs +21 -11
  179. package/esm2022/controls/static/formcontainer.mjs +27 -17
  180. package/esm2022/controls/static/staticlabel.mjs +27 -13
  181. package/esm2022/controls/static/staticlabel.module.mjs +8 -6
  182. package/esm2022/controls/tabs/tab.mjs +3 -3
  183. package/esm2022/controls/tabs/tabitem.mjs +3 -3
  184. package/esm2022/controls/tabs/tabs.module.mjs +1 -1
  185. package/esm2022/controls/tinymce/tinymce.mjs +29 -20
  186. package/esm2022/controls/tinymce/tinymce.module.mjs +1 -1
  187. package/esm2022/controls/tooltip/tooltip.mjs +51 -0
  188. package/esm2022/controls/tooltip/tooltip.module.mjs +18 -0
  189. package/esm2022/controls/treeview/treeview.mjs +77 -0
  190. package/esm2022/controls/treeview/treeview.module.mjs +18 -0
  191. package/esm2022/controls/upload/dropzonemultiple.mjs +32 -14
  192. package/esm2022/controls/upload/dropzonesingle.mjs +32 -14
  193. package/esm2022/controls/upload/upload.mjs +29 -14
  194. package/esm2022/controls/upload/upload.module.mjs +12 -5
  195. package/esm2022/controls/upload/uploadmultiple.mjs +30 -14
  196. package/esm2022/controls/validation/validationsummary.mjs +11 -19
  197. package/esm2022/controls/validation/validationsummary.module.mjs +1 -1
  198. package/esm2022/controls/wizard/wizard.mjs +3 -3
  199. package/esm2022/controls/wizard/wizard.module.mjs +1 -1
  200. package/esm2022/controls/wizard/wizarditem.mjs +1 -1
  201. package/esm2022/public_api.mjs +36 -25
  202. package/fesm2022/simpleangularcontrols-sac-bootstrap4.mjs +1344 -691
  203. package/fesm2022/simpleangularcontrols-sac-bootstrap4.mjs.map +1 -1
  204. package/package.json +37 -36
  205. package/public_api.d.ts +35 -24
  206. package/public_api.d.ts.map +1 -1
  207. package/simpleangularcontrols-sac-bootstrap4-16.0.0-rc.20.tgz +0 -0
  208. package/simpleangularcontrols-sac-bootstrap4-16.0.0-rc.2.tgz +0 -0
@@ -1,23 +1,29 @@
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 { SacToControlHeightPipe } from '../layout/tocontrolheight.pipe';
6
+ import { SacToControlWidthCssPipe } from '../layout/tocontrolwidthcss.pipe';
7
+ import { SacToLabelHeightPipe } from '../layout/tolabelheight.pipe';
8
+ import { SacToLabelWidthCssPipe } from '../layout/tolabelwidthcss.pipe';
9
+ import { SacTooltipComponent } from '../tooltip/tooltip';
6
10
  import * as i0 from "@angular/core";
7
- import * as i1 from "../form/form";
11
+ import * as i1 from "../layout/formlayout.directive";
12
+ // #region Classes
8
13
  /**
9
14
  * Listbox Komponente
10
15
  */
11
16
  class SacListboxComponent extends SacListboxCommon {
17
+ // #region Constructors
12
18
  /**
13
- * Konstruktor
14
- * @param parent Formular
15
- * @param injector Angular Dependiency Injection Service
19
+ * Constructor
20
+ * @param formLayout SacFormLayout to define scoped layout settings
21
+ * @param injector Injector for injecting services
16
22
  */
17
- constructor(parent, injector) {
18
- super(parent, injector);
23
+ constructor(formLayout, injector) {
24
+ super(formLayout, injector);
19
25
  }
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 }); }
26
+ 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
27
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacListboxComponent, isStandalone: true, selector: "sac-listbox", providers: [
22
28
  {
23
29
  provide: NG_VALUE_ACCESSOR,
@@ -29,7 +35,7 @@ class SacListboxComponent extends SacListboxCommon {
29
35
  multi: true,
30
36
  useExisting: forwardRef(() => SacListboxComponent),
31
37
  },
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 }] }); }
38
+ ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"row form-group\"\n [class.no-gutters]=\"disablelabel\">\n <label\n for=\"{{ name }}\"\n class=\"col-12 col-form-label d-flex\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\n [class.required]=\"isrequired\"\n ><div\n class=\"text flex-grow-0\"\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div [class.flex-grow-1]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <select\n multiple\n id=\"{{ name }}\"\n name=\"{{ name }}\"\n class=\"form-control\"\n [size]=\"rowsize\"\n [class.is-invalid]=\"invalid && (dirty || touched)\"\n [ngClass]=\"[componentHeight | toControlHeight]\"\n (blur)=\"onTouch()\"\n (change)=\"getSelectedItems($event.target)\"\n [disabled]=\"isdisabled\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"groupitems === ''\">\n <option\n *ngFor=\"let option of options\"\n [value]=\"option[optionvalue]\"\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\">\n {{ option[optionlabel] }}\n </option>\n </ng-container>\n <ng-container *ngIf=\"groupitems !== ''\">\n <optgroup\n *ngFor=\"let option of options\"\n [attr.label]=\"option[grouplabel]\">\n <option\n *ngFor=\"let item of option[groupitems]\"\n [value]=\"item[optionvalue]\"\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\n {{ item[optionlabel] }}\n </option>\n </optgroup>\n </ng-container>\n </select>\n <small\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"form-text text-muted\">\n {{ helptext }}\n </small>\n <div\n class=\"invalid-feedback\"\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-plaintext align-self-top ml-2 mr-1 w-auto\"\n [ngClass]=\"[componentHeight | toControlHeight]\">\n <sac-tooltip\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\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" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToLabelHeightPipe; }), name: "toLabelHeight" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToControlHeightPipe; }), name: "toControlHeight" }, { kind: "component", type: i0.forwardRef(function () { return SacTooltipComponent; }), selector: "sac-tooltip" }] }); }
33
39
  }
34
40
  export { SacListboxComponent };
35
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacListboxComponent, decorators: [{
@@ -45,14 +51,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
45
51
  multi: true,
46
52
  useExisting: forwardRef(() => SacListboxComponent),
47
53
  },
48
- ], viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }], standalone: true, imports: [
54
+ ], standalone: true, imports: [
49
55
  NgClass,
50
56
  NgIf,
51
57
  NgFor,
52
58
  AsyncPipe,
53
59
  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: [{
60
+ SacToLabelWidthCssPipe,
61
+ SacToControlWidthCssPipe,
62
+ SacToLabelHeightPipe,
63
+ SacToControlHeightPipe,
64
+ SacTooltipComponent,
65
+ ], template: "<div\n class=\"row form-group\"\n [class.no-gutters]=\"disablelabel\">\n <label\n for=\"{{ name }}\"\n class=\"col-12 col-form-label d-flex\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\n [class.required]=\"isrequired\"\n ><div\n class=\"text flex-grow-0\"\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div [class.flex-grow-1]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <select\n multiple\n id=\"{{ name }}\"\n name=\"{{ name }}\"\n class=\"form-control\"\n [size]=\"rowsize\"\n [class.is-invalid]=\"invalid && (dirty || touched)\"\n [ngClass]=\"[componentHeight | toControlHeight]\"\n (blur)=\"onTouch()\"\n (change)=\"getSelectedItems($event.target)\"\n [disabled]=\"isdisabled\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"groupitems === ''\">\n <option\n *ngFor=\"let option of options\"\n [value]=\"option[optionvalue]\"\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\">\n {{ option[optionlabel] }}\n </option>\n </ng-container>\n <ng-container *ngIf=\"groupitems !== ''\">\n <optgroup\n *ngFor=\"let option of options\"\n [attr.label]=\"option[grouplabel]\">\n <option\n *ngFor=\"let item of option[groupitems]\"\n [value]=\"item[optionvalue]\"\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\n {{ item[optionlabel] }}\n </option>\n </optgroup>\n </ng-container>\n </select>\n <small\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"form-text text-muted\">\n {{ helptext }}\n </small>\n <div\n class=\"invalid-feedback\"\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-plaintext align-self-top ml-2 mr-1 w-auto\"\n [ngClass]=\"[componentHeight | toControlHeight]\">\n <sac-tooltip\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n" }]
66
+ }], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
56
67
  type: Host
57
68
  }, {
58
69
  type: Optional
@@ -61,14 +72,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
61
72
  * Option Item in Listbox
62
73
  */
63
74
  class SacListboxOptionDirective extends SacListboxOptionCommon {
75
+ // #region Constructors
64
76
  /**
65
77
  * Konstruktor
66
- * @param _elementRef Referenz auf DOM Element
67
- * @param _renderer Angular Rendering Engine
78
+ * @param elementRef Referenz auf DOM Element
79
+ * @param renderer Angular Rendering Engine
68
80
  * @param listbox Referenz auf Listbox Komponente
69
81
  */
70
- constructor(_elementRef, _renderer, listbox) {
71
- super(_elementRef, _renderer, listbox);
82
+ constructor(elementRef, renderer, listbox) {
83
+ super(elementRef, renderer, listbox);
72
84
  }
73
85
  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
86
  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 +88,10 @@ class SacListboxOptionDirective extends SacListboxOptionCommon {
76
88
  export { SacListboxOptionDirective };
77
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacListboxOptionDirective, decorators: [{
78
90
  type: Directive,
79
- args: [{
80
- selector: '[sacOption],option',
81
- standalone: true,
82
- }]
91
+ args: [{ selector: '[sacOption],option', standalone: true }]
83
92
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SacListboxComponent, decorators: [{
84
93
  type: Optional
85
94
  }, {
86
95
  type: Host
87
96
  }] }]; } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA0L3NyYy9jb250cm9scy9saXN0L2xpc3Rib3gudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvbGlzdC9saXN0Ym94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUVULElBQUksRUFFSixRQUFRLEVBRVIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEdBQ3ZCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFFaEQ7O0dBRUc7QUFDSCxNQTJCYSxtQkFBb0IsU0FBUSxnQkFBZ0I7SUFDdkQ7Ozs7T0FJRztJQUNILFlBQ3NCLE1BQXdCLEVBQzVDLFFBQWtCO1FBRWxCLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQzsrR0FYVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwwREF2Qm5CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLG1CQUFtQjthQUNqQztZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ25EO1NBQ0YsaURDeENILG8wREF1REEsK0VEVkksT0FBTywySEFDUCxJQUFJLG9JQUNKLEtBQUsscUpBQ0wsU0FBUyxxRkF5QkEseUJBQXlCLHdEQS9CckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQzs7U0FVbEUsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBM0IvQixTQUFTOytCQUNFLGFBQWEsYUFHWjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLHFCQUFxQjt5QkFDakM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDO3lCQUNuRDtxQkFDRixpQkFFYyxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLGNBQ2pFLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLElBQUk7d0JBQ0osS0FBSzt3QkFDTCxTQUFTO3dCQUNULFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztxQkFDNUM7OzBCQVNFLElBQUk7OzBCQUFJLFFBQVE7O0FBT3JCOztHQUVHO0FBQ0gsTUFJYSx5QkFBMEIsU0FBUSxzQkFBc0I7SUFDbkU7Ozs7O09BS0c7SUFDSCxZQUNFLFdBQXVCLEVBQ3ZCLFNBQW9CLEVBQ0EsT0FBNEI7UUFFaEQsS0FBSyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQzsrR0FiVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qjs7U0FBekIseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFXSSxRQUFROzswQkFBSSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgT3B0aW9uYWwsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbENvbnRhaW5lcixcclxuICBOR19WQUxJREFUT1JTLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBTYWNMaXN0Ym94Q29tbW9uLFxyXG4gIFNhY0xpc3Rib3hPcHRpb25Db21tb24sXHJcbn0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcclxuaW1wb3J0IHsgU2FjRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4uL2Zvcm0vZm9ybSc7XHJcblxyXG4vKipcclxuICogTGlzdGJveCBLb21wb25lbnRlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy1saXN0Ym94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdGJveC5odG1sJyxcclxuICAvLyBWYWx1ZSBBY2Nlc3MgUHJvdmlkZXIgcmVnaXN0cmllcmVuLCBkYW1pdCBXZXJ0IHZpYSBNb2RlbCBnZXNjaHJpZWJlbiB1bmQgZ2VsZXNlbiB3ZXJkZW4ga2FublxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNMaXN0Ym94Q29tcG9uZW50LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY0xpc3Rib3hDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIC8vIFZpZXcgUHJvdmlkZXIsIGRhbWl0IGRhcyBGb3JtdWxhciBhbiBkYXMgQ29udHJvbCBnZWJ1bmRlbiB3ZXJkZW4ga2FublxyXG4gIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBTYWNGb3JtRGlyZWN0aXZlIH1dLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE5nSWYsXHJcbiAgICBOZ0ZvcixcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIGZvcndhcmRSZWYoKCkgPT4gU2FjTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSksXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY0xpc3Rib3hDb21wb25lbnQgZXh0ZW5kcyBTYWNMaXN0Ym94Q29tbW9uIHtcclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEBwYXJhbSBwYXJlbnQgRm9ybXVsYXJcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgQW5ndWxhciBEZXBlbmRpZW5jeSBJbmplY3Rpb24gU2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBwYXJlbnQ6IFNhY0Zvcm1EaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKHBhcmVudCwgaW5qZWN0b3IpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE9wdGlvbiBJdGVtIGluIExpc3Rib3hcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NhY09wdGlvbl0sb3B0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSBleHRlbmRzIFNhY0xpc3Rib3hPcHRpb25Db21tb24ge1xyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIF9lbGVtZW50UmVmIFJlZmVyZW56IGF1ZiBET00gRWxlbWVudFxyXG4gICAqIEBwYXJhbSBfcmVuZGVyZXIgQW5ndWxhciBSZW5kZXJpbmcgRW5naW5lXHJcbiAgICogQHBhcmFtIGxpc3Rib3ggUmVmZXJlbnogYXVmIExpc3Rib3ggS29tcG9uZW50ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgbGlzdGJveDogU2FjTGlzdGJveENvbXBvbmVudFxyXG4gICkge1xyXG4gICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9yZW5kZXJlciwgbGlzdGJveCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgZm9ybS1ncm91cFwiIFtjbGFzcy5uby1ndXR0ZXJzXT1cImRpc2FibGVsYWJlbFwiPlxyXG4gIDxsYWJlbFxyXG4gICAgZm9yPVwie3tuYW1lfX1cIlxyXG4gICAgY2xhc3M9XCJjb2wtMTIgY29sLWZvcm0tbGFiZWxcIlxyXG4gICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAgJ2NvbC1zbS0nICsgbGFiZWxzaXplIDogJ3NyLW9ubHknIF1cIlxyXG4gICAgPnt7bGFiZWx9fTwvbGFiZWxcclxuICA+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJjb2wtMTJcIlxyXG4gICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAnY29sLXNtLScgKyBfaW5wdXRzaXplIDogJ2NvbC1zbS0xMiddXCJcclxuICA+XHJcbiAgICA8c2VsZWN0XHJcbiAgICAgIG11bHRpcGxlXHJcbiAgICAgIGlkPVwie3tuYW1lfX1cIlxyXG4gICAgICBuYW1lPVwie3tuYW1lfX1cIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc21cIlxyXG4gICAgICBbc2l6ZV09XCJyb3dzaXplXCJcclxuICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzogaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkgfVwiXHJcbiAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAgIChjaGFuZ2UpPVwiZ2V0U2VsZWN0ZWRJdGVtcygkZXZlbnQudGFyZ2V0KVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc2Rpc2FibGVkXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBpdGVtcyA9PT0gJydcIj5cclxuICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbltvcHRpb252YWx1ZV1cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbmVuYWJsZWQgIT09ICcnICYmIG9wdGlvbltvcHRpb25lbmFibGVkXSA9PT0gZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7b3B0aW9uW29wdGlvbmxhYmVsXX19XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBpdGVtcyAhPT0gJydcIj5cclxuICAgICAgICA8b3B0Z3JvdXBcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXHJcbiAgICAgICAgICBbYXR0ci5sYWJlbF09XCJvcHRpb25bZ3JvdXBsYWJlbF1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uW2dyb3VwaXRlbXNdXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW1bb3B0aW9udmFsdWVdXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbmVuYWJsZWQgIT09ICcnICYmIGl0ZW1bb3B0aW9uZW5hYmxlZF0gPT09IGZhbHNlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3tpdGVtW29wdGlvbmxhYmVsXX19XHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L29wdGdyb3VwPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvc2VsZWN0PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIlxyXG4gICAgICAqbmdJZj1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgID5cclxuICAgICAge3sgR2V0RXJyb3JNZXNzYWdlKCkgfCBhc3luYyB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA0L3NyYy9jb250cm9scy9saXN0L2xpc3Rib3gudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvbGlzdC9saXN0Ym94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUVULElBQUksRUFFSixRQUFRLEVBRVIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHNCQUFzQixHQUN2QixNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFekQsa0JBQWtCO0FBRWxCOztHQUVHO0FBQ0gsTUE4QmEsbUJBQW9CLFNBQVEsZ0JBQWdCO0lBQ3ZELHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFDc0IsVUFBa0MsRUFDdEQsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQWJVLG1CQUFtQjttR0FBbkIsbUJBQW1CLDBEQTFCbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsbUJBQW1CO2FBQ2pDO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDbkQ7U0FDRixpREMzQ0gsOGxIQXdGQSwrRUQxQ0ksT0FBTywySEFDUCxJQUFJLG9JQUNKLEtBQUsscUpBQ0wsU0FBUyxxRkErQkEseUJBQXlCLGlHQTdCbEMsc0JBQXNCLDBGQUN0Qix3QkFBd0IsNEZBQ3hCLG9CQUFvQix3RkFDcEIsc0JBQXNCLCtGQUN0QixtQkFBbUI7O1NBR1YsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBOUIvQixTQUFTOytCQUNFLGFBQWEsYUFHWjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLHFCQUFxQjt5QkFDakM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDO3lCQUNuRDtxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLElBQUk7d0JBQ0osS0FBSzt3QkFDTCxTQUFTO3dCQUNULFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQzt3QkFDM0Msc0JBQXNCO3dCQUN0Qix3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7cUJBQ3BCOzswQkFXRSxJQUFJOzswQkFBSSxRQUFROztBQVNyQjs7R0FFRztBQUNILE1BQ2EseUJBQTBCLFNBQVEsc0JBQXNCO0lBQ25FLHVCQUF1QjtJQUV2Qjs7Ozs7T0FLRztJQUNILFlBQ0UsVUFBc0IsRUFDdEIsUUFBbUIsRUFDQyxPQUE0QjtRQUVoRCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDOytHQWZVLHlCQUF5QjttR0FBekIseUJBQXlCOztTQUF6Qix5QkFBeUI7NEZBQXpCLHlCQUF5QjtrQkFEckMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOzswQkFhMUQsUUFBUTs7MEJBQUksSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3QsXG4gIEluamVjdG9yLFxuICBPcHRpb25hbCxcbiAgUmVuZGVyZXIyLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgU2FjTGlzdGJveENvbW1vbixcbiAgU2FjTGlzdGJveE9wdGlvbkNvbW1vbixcbn0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2FjVG9Db250cm9sSGVpZ2h0UGlwZSB9IGZyb20gJy4uL2xheW91dC90b2NvbnRyb2xoZWlnaHQucGlwZSc7XG5pbXBvcnQgeyBTYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUgfSBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9sd2lkdGhjc3MucGlwZSc7XG5pbXBvcnQgeyBTYWNUb0xhYmVsSGVpZ2h0UGlwZSB9IGZyb20gJy4uL2xheW91dC90b2xhYmVsaGVpZ2h0LnBpcGUnO1xuaW1wb3J0IHsgU2FjVG9MYWJlbFdpZHRoQ3NzUGlwZSB9IGZyb20gJy4uL2xheW91dC90b2xhYmVsd2lkdGhjc3MucGlwZSc7XG5pbXBvcnQgeyBTYWNUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwJztcblxuLy8gI3JlZ2lvbiBDbGFzc2VzXG5cbi8qKlxuICogTGlzdGJveCBLb21wb25lbnRlXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhYy1saXN0Ym94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3Rib3guaHRtbCcsXG4gIC8vIFZhbHVlIEFjY2VzcyBQcm92aWRlciByZWdpc3RyaWVyZW4sIGRhbWl0IFdlcnQgdmlhIE1vZGVsIGdlc2NocmllYmVuIHVuZCBnZWxlc2VuIHdlcmRlbiBrYW5uXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogU2FjTGlzdGJveENvbXBvbmVudCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY0xpc3Rib3hDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgQXN5bmNQaXBlLFxuICAgIGZvcndhcmRSZWYoKCkgPT4gU2FjTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSksXG4gICAgU2FjVG9MYWJlbFdpZHRoQ3NzUGlwZSxcbiAgICBTYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUsXG4gICAgU2FjVG9MYWJlbEhlaWdodFBpcGUsXG4gICAgU2FjVG9Db250cm9sSGVpZ2h0UGlwZSxcbiAgICBTYWNUb29sdGlwQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTYWNMaXN0Ym94Q29tcG9uZW50IGV4dGVuZHMgU2FjTGlzdGJveENvbW1vbiB7XG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUxheW91dDogU2FjRm9ybUxheW91dERpcmVjdGl2ZSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IpO1xuICB9XG5cbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcbn1cblxuLyoqXG4gKiBPcHRpb24gSXRlbSBpbiBMaXN0Ym94XG4gKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tzYWNPcHRpb25dLG9wdGlvbicsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBTYWNMaXN0Ym94T3B0aW9uRGlyZWN0aXZlIGV4dGVuZHMgU2FjTGlzdGJveE9wdGlvbkNvbW1vbiB7XG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgLyoqXG4gICAqIEtvbnN0cnVrdG9yXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIFJlZmVyZW56IGF1ZiBET00gRWxlbWVudFxuICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciBSZW5kZXJpbmcgRW5naW5lXG4gICAqIEBwYXJhbSBsaXN0Ym94IFJlZmVyZW56IGF1ZiBMaXN0Ym94IEtvbXBvbmVudGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIGxpc3Rib3g6IFNhY0xpc3Rib3hDb21wb25lbnRcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgcmVuZGVyZXIsIGxpc3Rib3gpO1xuICB9XG5cbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcbn1cblxuLy8gI2VuZHJlZ2lvbiBDbGFzc2VzXG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJyb3cgZm9ybS1ncm91cFwiXG4gICAgW2NsYXNzLm5vLWd1dHRlcnNdPVwiZGlzYWJsZWxhYmVsXCI+XG4gICAgPGxhYmVsXG4gICAgICAgIGZvcj1cInt7IG5hbWUgfX1cIlxuICAgICAgICBjbGFzcz1cImNvbC0xMiBjb2wtZm9ybS1sYWJlbCBkLWZsZXhcIlxuICAgICAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICh0aGlzLmxhYmVsU2l6ZXMgfCB0b0xhYmVsV2lkdGhDc3MpIDogJ3NyLW9ubHknLCBjb21wb25lbnRIZWlnaHQgfCB0b0xhYmVsSGVpZ2h0XVwiXG4gICAgICAgIFtjbGFzcy5yZXF1aXJlZF09XCJpc3JlcXVpcmVkXCJcbiAgICAgICAgPjxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dCBmbGV4LWdyb3ctMFwiXG4gICAgICAgICAgICBbY2xhc3MuZmxleC1zbS1ncm93LTFdPVwic3BsaXRsYWJlbGFuZGhlbHB0ZXh0XCI+XG4gICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNhYy10b29sdGlwXG4gICAgICAgICAgICAqbmdJZj1cImhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnICYmIGhlbHB0ZXh0XCJcbiAgICAgICAgICAgIFt0b29sdGlwdGV4dF09XCJoZWxwdGV4dFwiXG4gICAgICAgICAgICBbaW5saW5lbW9kZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIkhlbHB0ZXh0VG9vbHRpcEljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMVwiPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NhYy10b29sdGlwPlxuICAgIDwvbGFiZWw+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNvbC0xMlwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gKHRoaXMubGFiZWxTaXplcyB8IHRvQ29udHJvbFdpZHRoQ3NzKSA6ICcnXVwiXG4gICAgICAgIFtjbGFzcy5kLWZsZXhdPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsXCI+XG4gICAgICAgIDxkaXYgW2NsYXNzLmZsZXgtZ3Jvdy0xXT1cImhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnICYmIGhlbHB0ZXh0ICYmIGRpc2FibGVsYWJlbFwiPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgICAgICAgaWQ9XCJ7eyBuYW1lIH19XCJcbiAgICAgICAgICAgICAgICBuYW1lPVwie3sgbmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFtzaXplXT1cInJvd3NpemVcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbY29tcG9uZW50SGVpZ2h0IHwgdG9Db250cm9sSGVpZ2h0XVwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImdldFNlbGVjdGVkSXRlbXMoJGV2ZW50LnRhcmdldClcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc2Rpc2FibGVkXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cGl0ZW1zID09PSAnJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbltvcHRpb252YWx1ZV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbmVuYWJsZWQgIT09ICcnICYmIG9wdGlvbltvcHRpb25lbmFibGVkXSA9PT0gZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbltvcHRpb25sYWJlbF0gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwaXRlbXMgIT09ICcnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRncm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmxhYmVsXT1cIm9wdGlvbltncm91cGxhYmVsXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbltncm91cGl0ZW1zXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW1bb3B0aW9udmFsdWVdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uZW5hYmxlZCAhPT0gJycgJiYgaXRlbVtvcHRpb25lbmFibGVkXSA9PT0gZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtW29wdGlvbmxhYmVsXSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvb3B0Z3JvdXA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndGV4dCcgJiYgaGVscHRleHRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWRcIj5cbiAgICAgICAgICAgICAgICB7eyBoZWxwdGV4dCB9fVxuICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj5cbiAgICAgICAgICAgICAgICB7eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dCAmJiBkaXNhYmxlbGFiZWxcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtcGxhaW50ZXh0IGFsaWduLXNlbGYtdG9wIG1sLTIgbXItMSB3LWF1dG9cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2NvbXBvbmVudEhlaWdodCB8IHRvQ29udHJvbEhlaWdodF1cIj5cbiAgICAgICAgICAgIDxzYWMtdG9vbHRpcFxuICAgICAgICAgICAgICAgIFt0b29sdGlwdGV4dF09XCJoZWxwdGV4dFwiXG4gICAgICAgICAgICAgICAgW2lubGluZW1vZGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIkhlbHB0ZXh0VG9vbHRpcEljb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLTFcIj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NhYy10b29sdGlwPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -9,7 +9,8 @@ import { SacMultilanguagemenuItemButtonComponent } from './multilanguagemenuitem
9
9
  import * as i0 from "@angular/core";
10
10
  class SACBootstrap4MultilanguageModule {
11
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4MultilanguageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4MultilanguageModule, imports: [CommonModule, SacMultilanguageInputComponent,
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4MultilanguageModule, imports: [CommonModule,
13
+ SacMultilanguageInputComponent,
13
14
  SacMultilanguageInputAreaComponent,
14
15
  SacMultilanguagemenuComponent,
15
16
  SacMultilanguagemenuAnchorDirective,
@@ -21,13 +22,16 @@ export { SACBootstrap4MultilanguageModule };
21
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4MultilanguageModule, decorators: [{
22
23
  type: NgModule,
23
24
  args: [{
24
- imports: [CommonModule, SacMultilanguageInputComponent,
25
+ imports: [
26
+ CommonModule,
27
+ SacMultilanguageInputComponent,
25
28
  SacMultilanguageInputAreaComponent,
26
29
  SacMultilanguagemenuComponent,
27
30
  SacMultilanguagemenuAnchorDirective,
28
31
  SacMultilanguagemenuContainerDirective,
29
- SacMultilanguagemenuItemButtonComponent],
32
+ SacMultilanguagemenuItemButtonComponent,
33
+ ],
30
34
  exports: [SacMultilanguageInputComponent, SacMultilanguageInputAreaComponent],
31
35
  }]
32
36
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFeEYsTUFTYSxnQ0FBZ0M7K0dBQWhDLGdDQUFnQztnSEFBaEMsZ0NBQWdDLFlBUi9CLFlBQVksRUFBRSw4QkFBOEI7WUFDbEQsa0NBQWtDO1lBQ2xDLDZCQUE2QjtZQUM3QixtQ0FBbUM7WUFDbkMsc0NBQXNDO1lBQ3RDLHVDQUF1QyxhQUNqQyw4QkFBOEIsRUFBRSxrQ0FBa0M7Z0hBRW5FLGdDQUFnQyxZQVIvQixZQUFZOztTQVFiLGdDQUFnQzs0RkFBaEMsZ0NBQWdDO2tCQVQ1QyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSw4QkFBOEI7d0JBQ2xELGtDQUFrQzt3QkFDbEMsNkJBQTZCO3dCQUM3QixtQ0FBbUM7d0JBQ25DLHNDQUFzQzt3QkFDdEMsdUNBQXVDLENBQUM7b0JBQzVDLE9BQU8sRUFBRSxDQUFDLDhCQUE4QixFQUFFLGtDQUFrQyxDQUFDO2lCQUNoRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZWlucHV0JztcclxuaW1wb3J0IHsgU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZWlucHV0YXJlYSc7XHJcbmltcG9ydCB7IFNhY011bHRpbGFuZ3VhZ2VtZW51Q29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlbWVudSc7XHJcbmltcG9ydCB7IFNhY011bHRpbGFuZ3VhZ2VtZW51QW5jaG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlbWVudWFuY2hvcic7XHJcbmltcG9ydCB7IFNhY011bHRpbGFuZ3VhZ2VtZW51Q29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlbWVudWNvbnRhaW5lcic7XHJcbmltcG9ydCB7IFNhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnVpdGVtYnV0dG9uJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnQsXHJcbiAgICAgICAgU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudCxcclxuICAgICAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudCxcclxuICAgICAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUFuY2hvckRpcmVjdGl2ZSxcclxuICAgICAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUNvbnRhaW5lckRpcmVjdGl2ZSxcclxuICAgICAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUl0ZW1CdXR0b25Db21wb25lbnRdLFxyXG4gICAgZXhwb3J0czogW1NhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudCwgU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTQUNCb290c3RyYXA0TXVsdGlsYW5ndWFnZU1vZHVsZSB7fVxyXG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFeEYsTUFZYSxnQ0FBZ0M7K0dBQWhDLGdDQUFnQztnSEFBaEMsZ0NBQWdDLFlBVnpDLFlBQVk7WUFDWiw4QkFBOEI7WUFDOUIsa0NBQWtDO1lBQ2xDLDZCQUE2QjtZQUM3QixtQ0FBbUM7WUFDbkMsc0NBQXNDO1lBQ3RDLHVDQUF1QyxhQUUvQiw4QkFBOEIsRUFBRSxrQ0FBa0M7Z0hBRWpFLGdDQUFnQyxZQVZ6QyxZQUFZOztTQVVILGdDQUFnQzs0RkFBaEMsZ0NBQWdDO2tCQVo1QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLDhCQUE4Qjt3QkFDOUIsa0NBQWtDO3dCQUNsQyw2QkFBNkI7d0JBQzdCLG1DQUFtQzt3QkFDbkMsc0NBQXNDO3dCQUN0Qyx1Q0FBdUM7cUJBQ3hDO29CQUNELE9BQU8sRUFBRSxDQUFDLDhCQUE4QixFQUFFLGtDQUFrQyxDQUFDO2lCQUM5RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlaW5wdXQnO1xuaW1wb3J0IHsgU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZWlucHV0YXJlYSc7XG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnUnO1xuaW1wb3J0IHsgU2FjTXVsdGlsYW5ndWFnZW1lbnVBbmNob3JEaXJlY3RpdmUgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51YW5jaG9yJztcbmltcG9ydCB7IFNhY011bHRpbGFuZ3VhZ2VtZW51Q29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlbWVudWNvbnRhaW5lcic7XG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUl0ZW1CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51aXRlbWJ1dHRvbic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50LFxuICAgIFNhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnQsXG4gICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVDb21wb25lbnQsXG4gICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVBbmNob3JEaXJlY3RpdmUsXG4gICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVDb250YWluZXJEaXJlY3RpdmUsXG4gICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVJdGVtQnV0dG9uQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50LCBTYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU0FDQm9vdHN0cmFwNE11bHRpbGFuZ3VhZ2VNb2R1bGUge31cbiJdfQ==
@@ -1,30 +1,37 @@
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 { SacToControlHeightPipe } from '../layout/tocontrolheight.pipe';
6
+ import { SacToControlWidthCssPipe } from '../layout/tocontrolwidthcss.pipe';
7
+ import { SacToLabelHeightPipe } from '../layout/tolabelheight.pipe';
8
+ import { SacToLabelWidthCssPipe } from '../layout/tolabelwidthcss.pipe';
9
+ import { SacTooltipComponent } from '../tooltip/tooltip';
6
10
  import { SacMultilanguagemenuComponent } from './multilanguagemenu';
7
11
  import { SacMultilanguagemenuAnchorDirective } from './multilanguagemenuanchor';
8
12
  import { SacMultilanguagemenuItemButtonComponent } from './multilanguagemenuitembutton';
9
13
  import * as i0 from "@angular/core";
10
- import * as i1 from "../form/form";
14
+ import * as i1 from "../layout/formlayout.directive";
11
15
  /**
12
16
  * Componente für Mehrsprache Texte
13
17
  */
14
18
  class SacMultilanguageInputComponent extends SacMultilanguageInputCommon {
19
+ // #endregion Properties
20
+ // #region Constructors
15
21
  /**
16
- * Konstruktor
17
- * @param parent Formular Inject
18
- * @param injector Default Injector
22
+ * Constructor
23
+ * @param formLayout SacFormLayout to define scoped layout settings
24
+ * @param injector Injector for injecting services
19
25
  */
20
- constructor(parent, injector) {
21
- super(parent, injector);
26
+ constructor(formLayout, injector) {
27
+ super(formLayout, injector);
28
+ // #region Properties
22
29
  /**
23
30
  * Enum für IconType in HTML Template
24
31
  */
25
32
  this.IconType = IconType;
26
33
  }
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 }); }
34
+ 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
35
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacMultilanguageInputComponent, isStandalone: true, selector: "sac-multilanguageinput", providers: [
29
36
  {
30
37
  provide: NG_VALUE_ACCESSOR,
@@ -36,7 +43,7 @@ class SacMultilanguageInputComponent extends SacMultilanguageInputCommon {
36
43
  multi: true,
37
44
  useExisting: forwardRef(() => SacMultilanguageInputComponent),
38
45
  },
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 }] }); }
46
+ ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"row form-group\"\n [class.no-gutters]=\"disablelabel\">\n <label\n for=\"{{ name }}\"\n class=\"col-12 col-form-label d-flex\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\n [class.required]=\"isrequired\">\n <div\n class=\"text flex-grow-0\"\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div [class.flex-grow-1]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div\n class=\"input-group\"\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\n <input\n id=\"{{ name }}\"\n name=\"{{ name }}\"\n type=\"text\"\n class=\"form-control\"\n [value]=\"LanguageValue\"\n [attr.placeholder]=\"placeholder\"\n (blur)=\"onTouch()\"\n (input)=\"SetLanguageValue($event.target.value)\"\n [attr.maxlength]=\"maxtextlength\"\n [class.is-invalid]=\"invalid && (dirty || touched)\"\n [ngClass]=\"[componentHeight | toControlHeight]\"\n [disabled]=\"isdisabled\" />\n <div\n placement=\"bottom-right\"\n class=\"input-group-append\"\n sac-multilanguagemenu\n [buttontemplate]=\"menuButton\"\n #contextmenu>\n <ng-template #menuButton>\n <button\n sacMultilanguageMenuAnchor\n [id]=\"name + '_dropdownitem'\"\n type=\"button\"\n class=\"btn dropdown-toggle\"\n (click)=\"contextmenu.toggle()\"\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\">\n <img\n src=\"{{ SelectedIcon }}\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.Image\" />\n <span\n [ngClass]=\"SelectedIcon\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.CssSprite\"></span>\n </button>\n </ng-template>\n <ng-container *ngFor=\"let sprache of Languages\">\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.Image\"\n text=\"{{ sprache.Text }}\"\n image=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\n text=\"{{ sprache.Text }}\"\n icon=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\n class=\"invalid-feedback\">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <small\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"form-text text-muted\">\n {{ helptext }}\n </small>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-plaintext align-self-top ml-2 mr-1 w-auto\"\n [ngClass]=\"[componentHeight | toControlHeight]\">\n <sac-tooltip\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col text-right\"></div>\n</div>\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" }, { kind: "pipe", type: SacToLabelHeightPipe, name: "toLabelHeight" }, { kind: "pipe", type: SacToControlHeightPipe, name: "toControlHeight" }, { kind: "component", type: SacTooltipComponent, selector: "sac-tooltip" }] }); }
40
47
  }
41
48
  export { SacMultilanguageInputComponent };
42
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacMultilanguageInputComponent, decorators: [{
@@ -52,7 +59,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
52
59
  multi: true,
53
60
  useExisting: forwardRef(() => SacMultilanguageInputComponent),
54
61
  },
55
- ], viewProviders: [{ provide: ControlContainer, useExisting: SacFormDirective }], standalone: true, imports: [
62
+ ], standalone: true, imports: [
56
63
  NgClass,
57
64
  SacMultilanguagemenuComponent,
58
65
  SacMultilanguagemenuAnchorDirective,
@@ -60,10 +67,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
60
67
  NgFor,
61
68
  AsyncPipe,
62
69
  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: [{
70
+ SacToLabelWidthCssPipe,
71
+ SacToControlWidthCssPipe,
72
+ SacToLabelHeightPipe,
73
+ SacToControlHeightPipe,
74
+ SacTooltipComponent,
75
+ ], template: "<div\n class=\"row form-group\"\n [class.no-gutters]=\"disablelabel\">\n <label\n for=\"{{ name }}\"\n class=\"col-12 col-form-label d-flex\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only', componentHeight | toLabelHeight]\"\n [class.required]=\"isrequired\">\n <div\n class=\"text flex-grow-0\"\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div [class.flex-grow-1]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div\n class=\"input-group\"\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\n <input\n id=\"{{ name }}\"\n name=\"{{ name }}\"\n type=\"text\"\n class=\"form-control\"\n [value]=\"LanguageValue\"\n [attr.placeholder]=\"placeholder\"\n (blur)=\"onTouch()\"\n (input)=\"SetLanguageValue($event.target.value)\"\n [attr.maxlength]=\"maxtextlength\"\n [class.is-invalid]=\"invalid && (dirty || touched)\"\n [ngClass]=\"[componentHeight | toControlHeight]\"\n [disabled]=\"isdisabled\" />\n <div\n placement=\"bottom-right\"\n class=\"input-group-append\"\n sac-multilanguagemenu\n [buttontemplate]=\"menuButton\"\n #contextmenu>\n <ng-template #menuButton>\n <button\n sacMultilanguageMenuAnchor\n [id]=\"name + '_dropdownitem'\"\n type=\"button\"\n class=\"btn dropdown-toggle\"\n (click)=\"contextmenu.toggle()\"\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\">\n <img\n src=\"{{ SelectedIcon }}\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.Image\" />\n <span\n [ngClass]=\"SelectedIcon\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.CssSprite\"></span>\n </button>\n </ng-template>\n <ng-container *ngFor=\"let sprache of Languages\">\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.Image\"\n text=\"{{ sprache.Text }}\"\n image=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\n text=\"{{ sprache.Text }}\"\n icon=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\n class=\"invalid-feedback\">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n <small\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"form-text text-muted\">\n {{ helptext }}\n </small>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-plaintext align-self-top ml-2 mr-1 w-auto\"\n [ngClass]=\"[componentHeight | toControlHeight]\">\n <sac-tooltip\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col text-right\"></div>\n</div>\n" }]
76
+ }], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
65
77
  type: Host
66
78
  }, {
67
79
  type: Optional
68
80
  }] }, { type: i0.Injector }]; } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFZLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFFBQVEsRUFDUiwyQkFBMkIsR0FDNUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQUV4Rjs7R0FFRztBQUNILE1BNkJhLDhCQUErQixTQUFRLDJCQUEyQjtJQU03RTs7OztPQUlHO0lBQ0gsWUFDc0IsTUFBd0IsRUFDNUMsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQWQxQjs7V0FFRztRQUNILGFBQVEsR0FBRyxRQUFRLENBQUM7SUFZcEIsQ0FBQzsrR0FoQlUsOEJBQThCO21HQUE5Qiw4QkFBOEIscUVBekI5QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSw4QkFBOEI7YUFDNUM7WUFDRDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQzthQUM5RDtTQUNGLGlEQ2xDSCxxcEdBcUZBLDRDRDlDSSxPQUFPLG9GQUNQLDZCQUE2QixvRUFDN0IsbUNBQW1DLHlFQUNuQyxJQUFJLDZGQUNKLEtBQUssOEdBQ0wsU0FBUyw4Q0FDVCx1Q0FBdUMsNkRBVDFCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7O1NBWWxFLDhCQUE4Qjs0RkFBOUIsOEJBQThCO2tCQTdCMUMsU0FBUzsrQkFDRSx3QkFBd0IsYUFHdkI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxnQ0FBZ0M7eUJBQzVDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwrQkFBK0IsQ0FBQzt5QkFDOUQ7cUJBQ0YsaUJBRWMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxjQUNqRSxJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCw2QkFBNkI7d0JBQzdCLG1DQUFtQzt3QkFDbkMsSUFBSTt3QkFDSixLQUFLO3dCQUNMLFNBQVM7d0JBQ1QsdUNBQXVDO3FCQUN4Qzs7MEJBY0UsSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xDb250YWluZXIsXHJcbiAgTkdfVkFMSURBVE9SUyxcclxuICBOR19WQUxVRV9BQ0NFU1NPUixcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgSWNvblR5cGUsXHJcbiAgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tbW9uLFxyXG59IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9mb3JtL2Zvcm0nO1xyXG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnUnO1xyXG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUFuY2hvckRpcmVjdGl2ZSB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnVhbmNob3InO1xyXG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUl0ZW1CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51aXRlbWJ1dHRvbic7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBmw7xyIE1laHJzcHJhY2hlIFRleHRlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy1tdWx0aWxhbmd1YWdlaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aWxhbmd1YWdlaW5wdXQuaHRtbCcsXHJcbiAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgLy8gVmlldyBQcm92aWRlciwgZGFtaXQgZGFzIEZvcm11bGFyIGFuIGRhcyBDb250cm9sIGdlYnVuZGVuIHdlcmRlbiBrYW5uXHJcbiAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IFNhY0Zvcm1EaXJlY3RpdmUgfV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVDb21wb25lbnQsXHJcbiAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUFuY2hvckRpcmVjdGl2ZSxcclxuICAgIE5nSWYsXHJcbiAgICBOZ0ZvcixcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIFNhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudCxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tbW9uIHtcclxuICAvKipcclxuICAgKiBFbnVtIGbDvHIgSWNvblR5cGUgaW4gSFRNTCBUZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEljb25UeXBlID0gSWNvblR5cGU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIHBhcmVudCBGb3JtdWxhciBJbmplY3RcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgRGVmYXVsdCBJbmplY3RvclxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBwYXJlbnQ6IFNhY0Zvcm1EaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKHBhcmVudCwgaW5qZWN0b3IpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93IGZvcm0tZ3JvdXBcIiBbY2xhc3Mubm8tZ3V0dGVyc109XCJkaXNhYmxlbGFiZWxcIj5cclxuICA8bGFiZWxcclxuICAgIGZvcj1cInt7bmFtZX19XCJcclxuICAgIGNsYXNzPVwiY29sLTEyIGNvbC1mb3JtLWxhYmVsXCJcclxuICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gICdjb2wtc20tJyArIGxhYmVsc2l6ZSA6ICdzci1vbmx5JyBdXCJcclxuICAgID57e2xhYmVsfX08L2xhYmVsXHJcbiAgPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY29sLTEyXCJcclxuICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gJ2NvbC1zbS0nICsgX2lucHV0c2l6ZSA6ICdjb2wtc20tMTInXVwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImlucHV0LWdyb3VwIGlucHV0LWdyb3VwLXNtXCJcclxuICAgICAgW2NsYXNzLmhhcy12YWxpZGF0aW9uXT1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgID5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgaWQ9XCJ7e25hbWV9fVwiXHJcbiAgICAgICAgbmFtZT1cInt7bmFtZX19XCJcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCJcclxuICAgICAgICBbdmFsdWVdPVwiTGFuZ3VhZ2VWYWx1ZVwiXHJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAgICAgKGlucHV0KT1cIlNldExhbmd1YWdlVmFsdWUoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxyXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6IGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpIH1cIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc2Rpc2FibGVkXCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXHJcbiAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIlxyXG4gICAgICAgIHNhYy1tdWx0aWxhbmd1YWdlbWVudVxyXG4gICAgICAgIFtidXR0b250ZW1wbGF0ZV09XCJtZW51QnV0dG9uXCJcclxuICAgICAgICAjY29udGV4dG1lbnVcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbWVudUJ1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgc2FjTXVsdGlsYW5ndWFnZU1lbnVBbmNob3JcclxuICAgICAgICAgICAgW2lkXT1cIm5hbWUgKyAnX2Ryb3Bkb3duaXRlbSdcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbnRleHRtZW51LnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW0lzQW55RW1wdHkoKSA/ICdidG4td2FybmluZycgOiAnYnRuLXNlY29uZGFyeSddXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgIHNyYz1cInt7U2VsZWN0ZWRJY29ufX1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWxpZ24tYmFzZWxpbmUgbXItMSBtbC0xXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIlNlbGVjdGVkSWNvblR5cGUgPT09IEljb25UeXBlLkltYWdlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJTZWxlY3RlZEljb25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWxpZ24tYmFzZWxpbmUgbXItMSBtbC0xXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIlNlbGVjdGVkSWNvblR5cGUgPT09IEljb25UeXBlLkNzc1Nwcml0ZVwiXHJcbiAgICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNwcmFjaGUgb2YgTGFuZ3VhZ2VzXCI+XHJcbiAgICAgICAgICA8c2FjLW11bHRpbGFuZ3VhZ2VtZW51YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwic3ByYWNoZS5JY29uVHlwZSA9PT0gSWNvblR5cGUuSW1hZ2VcIlxyXG4gICAgICAgICAgICB0ZXh0PVwie3tzcHJhY2hlLlRleHR9fVwiXHJcbiAgICAgICAgICAgIGltYWdlPVwie3tzcHJhY2hlLkljb259fVwiXHJcbiAgICAgICAgICAgIFtjc3NjbGFzc109XCJJc0VtcHR5KHNwcmFjaGUpID8gJ3RleHQtZGFuZ2VyIGJvcmRlci1sZWZ0IGJvcmRlci1kYW5nZXInOiAnJ1wiXHJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIlNlbGVjdExhbmd1YWdlKHNwcmFjaGUpXCJcclxuICAgICAgICAgID48L3NhYy1tdWx0aWxhbmd1YWdlbWVudWJ1dHRvbj5cclxuICAgICAgICAgIDxzYWMtbXVsdGlsYW5ndWFnZW1lbnVidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJzcHJhY2hlLkljb25UeXBlID09PSBJY29uVHlwZS5Dc3NTcHJpdGVcIlxyXG4gICAgICAgICAgICB0ZXh0PVwie3tzcHJhY2hlLlRleHR9fVwiXHJcbiAgICAgICAgICAgIGljb249XCJ7e3NwcmFjaGUuSWNvbn19XCJcclxuICAgICAgICAgICAgW2Nzc2NsYXNzXT1cIklzRW1wdHkoc3ByYWNoZSkgPyAndGV4dC1kYW5nZXIgYm9yZGVyLWxlZnQgYm9yZGVyLWRhbmdlcic6ICcnXCJcclxuICAgICAgICAgICAgKGNsaWNrZWQpPVwiU2VsZWN0TGFuZ3VhZ2Uoc3ByYWNoZSlcIlxyXG4gICAgICAgICAgPjwvc2FjLW11bHRpbGFuZ3VhZ2VtZW51YnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwiaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbCB0ZXh0LXJpZ2h0XCI+PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFZLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxRQUFRLEVBQ1IsMkJBQTJCLEdBQzVCLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQUV4Rjs7R0FFRztBQUNILE1BZ0NhLDhCQUErQixTQUFRLDJCQUEyQjtJQVE3RSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7O09BSUc7SUFDSCxZQUNzQixVQUFrQyxFQUN0RCxRQUFrQjtRQUVsQixLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBcEI5QixxQkFBcUI7UUFFckI7O1dBRUc7UUFDSSxhQUFRLEdBQUcsUUFBUSxDQUFDO0lBZ0IzQixDQUFDOytHQXRCVSw4QkFBOEI7bUdBQTlCLDhCQUE4QixxRUE1QjlCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLDhCQUE4QjthQUM1QztZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDO2FBQzlEO1NBQ0YsaURDbkNILG8zS0FxSEEsNENEL0VJLE9BQU8sb0ZBQ1AsNkJBQTZCLG9FQUM3QixtQ0FBbUMseUVBQ25DLElBQUksNkZBQ0osS0FBSyw4R0FDTCxTQUFTLDhDQUNULHVDQUF1QyxtRUFDdkMsc0JBQXNCLG1EQUN0Qix3QkFBd0IscURBQ3hCLG9CQUFvQixpREFDcEIsc0JBQXNCLHdEQUN0QixtQkFBbUI7O1NBR1YsOEJBQThCOzRGQUE5Qiw4QkFBOEI7a0JBaEMxQyxTQUFTOytCQUNFLHdCQUF3QixhQUd2Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLGdDQUFnQzt5QkFDNUM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLCtCQUErQixDQUFDO3lCQUM5RDtxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLDZCQUE2Qjt3QkFDN0IsbUNBQW1DO3dCQUNuQyxJQUFJO3dCQUNKLEtBQUs7d0JBQ0wsU0FBUzt3QkFDVCx1Q0FBdUM7d0JBQ3ZDLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4QixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3FCQUNwQjs7MEJBb0JFLElBQUk7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdCwgSW5qZWN0b3IsIE9wdGlvbmFsLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEljb25UeXBlLFxuICBTYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21tb24sXG59IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNhY1RvQ29udHJvbEhlaWdodFBpcGUgfSBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9saGVpZ2h0LnBpcGUnO1xuaW1wb3J0IHsgU2FjVG9Db250cm9sV2lkdGhDc3NQaXBlIH0gZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbHdpZHRoY3NzLnBpcGUnO1xuaW1wb3J0IHsgU2FjVG9MYWJlbEhlaWdodFBpcGUgfSBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbGhlaWdodC5waXBlJztcbmltcG9ydCB7IFNhY1RvTGFiZWxXaWR0aENzc1BpcGUgfSBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbHdpZHRoY3NzLnBpcGUnO1xuaW1wb3J0IHsgU2FjVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcCc7XG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnUnO1xuaW1wb3J0IHsgU2FjTXVsdGlsYW5ndWFnZW1lbnVBbmNob3JEaXJlY3RpdmUgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51YW5jaG9yJztcbmltcG9ydCB7IFNhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnVpdGVtYnV0dG9uJztcblxuLyoqXG4gKiBDb21wb25lbnRlIGbDvHIgTWVocnNwcmFjaGUgVGV4dGVcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2FjLW11bHRpbGFuZ3VhZ2VpbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aWxhbmd1YWdlaW5wdXQuaHRtbCcsXG4gIC8vIFZhbHVlIEFjY2VzcyBQcm92aWRlciByZWdpc3RyaWVyZW4sIGRhbWl0IFdlcnQgdmlhIE1vZGVsIGdlc2NocmllYmVuIHVuZCBnZWxlc2VuIHdlcmRlbiBrYW5uXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50KSxcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudCxcbiAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUFuY2hvckRpcmVjdGl2ZSxcbiAgICBOZ0lmLFxuICAgIE5nRm9yLFxuICAgIEFzeW5jUGlwZSxcbiAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUl0ZW1CdXR0b25Db21wb25lbnQsXG4gICAgU2FjVG9MYWJlbFdpZHRoQ3NzUGlwZSxcbiAgICBTYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUsXG4gICAgU2FjVG9MYWJlbEhlaWdodFBpcGUsXG4gICAgU2FjVG9Db250cm9sSGVpZ2h0UGlwZSxcbiAgICBTYWNUb29sdGlwQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBTYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21tb24ge1xuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAvKipcbiAgICogRW51bSBmw7xyIEljb25UeXBlIGluIEhUTUwgVGVtcGxhdGVcbiAgICovXG4gIHB1YmxpYyBJY29uVHlwZSA9IEljb25UeXBlO1xuXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUxheW91dDogU2FjRm9ybUxheW91dERpcmVjdGl2ZSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IpO1xuICB9XG5cbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3Mubm8tZ3V0dGVyc109XCJkaXNhYmxlbGFiZWxcIj5cbiAgICA8bGFiZWxcbiAgICAgICAgZm9yPVwie3sgbmFtZSB9fVwiXG4gICAgICAgIGNsYXNzPVwiY29sLTEyIGNvbC1mb3JtLWxhYmVsIGQtZmxleFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gKHRoaXMubGFiZWxTaXplcyB8IHRvTGFiZWxXaWR0aENzcykgOiAnc3Itb25seScsIGNvbXBvbmVudEhlaWdodCB8IHRvTGFiZWxIZWlnaHRdXCJcbiAgICAgICAgW2NsYXNzLnJlcXVpcmVkXT1cImlzcmVxdWlyZWRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0IGZsZXgtZ3Jvdy0wXCJcbiAgICAgICAgICAgIFtjbGFzcy5mbGV4LXNtLWdyb3ctMV09XCJzcGxpdGxhYmVsYW5kaGVscHRleHRcIj5cbiAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2FjLXRvb2x0aXBcbiAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHRcIlxuICAgICAgICAgICAgW3Rvb2x0aXB0ZXh0XT1cImhlbHB0ZXh0XCJcbiAgICAgICAgICAgIFtpbmxpbmVtb2RlXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiSGVscHRleHRUb29sdGlwSWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0xXCI+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc2FjLXRvb2x0aXA+XG4gICAgPC9sYWJlbD5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY29sLTEyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAodGhpcy5sYWJlbFNpemVzIHwgdG9Db250cm9sV2lkdGhDc3MpIDogJyddXCJcbiAgICAgICAgW2NsYXNzLmQtZmxleF09XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dCAmJiBkaXNhYmxlbGFiZWxcIj5cbiAgICAgICAgPGRpdiBbY2xhc3MuZmxleC1ncm93LTFdPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlucHV0LWdyb3VwLXNtXT1cImNvbXBvbmVudEhlaWdodCA9PT0gQ29udHJvbEhlaWdodC5TbWFsbFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlucHV0LWdyb3VwLWxnXT1cImNvbXBvbmVudEhlaWdodCA9PT0gQ29udHJvbEhlaWdodC5MYXJnZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmhhcy12YWxpZGF0aW9uXT1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGlkPVwie3sgbmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ7eyBuYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJMYW5ndWFnZVZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxuICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwiU2V0TGFuZ3VhZ2VWYWx1ZSgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXh0ZXh0bGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbY29tcG9uZW50SGVpZ2h0IHwgdG9Db250cm9sSGVpZ2h0XVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc2Rpc2FibGVkXCIgLz5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc2FjLW11bHRpbGFuZ3VhZ2VtZW51XG4gICAgICAgICAgICAgICAgICAgIFtidXR0b250ZW1wbGF0ZV09XCJtZW51QnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgI2NvbnRleHRtZW51PlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI21lbnVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FjTXVsdGlsYW5ndWFnZU1lbnVBbmNob3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwibmFtZSArICdfZHJvcGRvd25pdGVtJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gZHJvcGRvd24tdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29udGV4dG1lbnUudG9nZ2xlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltJc0FueUVtcHR5KCkgPyAnYnRuLXdhcm5pbmcnIDogJ2J0bi1zZWNvbmRhcnknXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwie3sgU2VsZWN0ZWRJY29uIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbGlnbi1iYXNlbGluZSBtci0xIG1sLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlNlbGVjdGVkSWNvblR5cGUgPT09IEljb25UeXBlLkltYWdlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJTZWxlY3RlZEljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFsaWduLWJhc2VsaW5lIG1yLTEgbWwtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiU2VsZWN0ZWRJY29uVHlwZSA9PT0gSWNvblR5cGUuQ3NzU3ByaXRlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNwcmFjaGUgb2YgTGFuZ3VhZ2VzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2FjLW11bHRpbGFuZ3VhZ2VtZW51YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzcHJhY2hlLkljb25UeXBlID09PSBJY29uVHlwZS5JbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD1cInt7IHNwcmFjaGUuVGV4dCB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2U9XCJ7eyBzcHJhY2hlLkljb24gfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjc3NjbGFzc109XCJJc0VtcHR5KHNwcmFjaGUpID8gJ3RleHQtZGFuZ2VyIGJvcmRlci1sZWZ0IGJvcmRlci1kYW5nZXInIDogJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIlNlbGVjdExhbmd1YWdlKHNwcmFjaGUpXCI+PC9zYWMtbXVsdGlsYW5ndWFnZW1lbnVidXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2FjLW11bHRpbGFuZ3VhZ2VtZW51YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzcHJhY2hlLkljb25UeXBlID09PSBJY29uVHlwZS5Dc3NTcHJpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ9XCJ7eyBzcHJhY2hlLlRleHQgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJ7eyBzcHJhY2hlLkljb24gfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjc3NjbGFzc109XCJJc0VtcHR5KHNwcmFjaGUpID8gJ3RleHQtZGFuZ2VyIGJvcmRlci1sZWZ0IGJvcmRlci1kYW5nZXInIDogJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIlNlbGVjdExhbmd1YWdlKHNwcmFjaGUpXCI+PC9zYWMtbXVsdGlsYW5ndWFnZW1lbnVidXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IEdldEVycm9yTWVzc2FnZSgpIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0ZXh0JyAmJiBoZWxwdGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAgICAgIHt7IGhlbHB0ZXh0IH19XG4gICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnICYmIGhlbHB0ZXh0ICYmIGRpc2FibGVsYWJlbFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbC1wbGFpbnRleHQgYWxpZ24tc2VsZi10b3AgbWwtMiBtci0xIHctYXV0b1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJbY29tcG9uZW50SGVpZ2h0IHwgdG9Db250cm9sSGVpZ2h0XVwiPlxuICAgICAgICAgICAgPHNhYy10b29sdGlwXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXB0ZXh0XT1cImhlbHB0ZXh0XCJcbiAgICAgICAgICAgICAgICBbaW5saW5lbW9kZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiSGVscHRleHRUb29sdGlwSWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMVwiPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc2FjLXRvb2x0aXA+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbCB0ZXh0LXJpZ2h0XCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==