@simpleangularcontrols/sac-bootstrap3 16.0.0-rc.1 → 16.0.0-rc.11

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 (189) hide show
  1. package/README.md +16 -13
  2. package/controls/buttons/button.d.ts.map +1 -1
  3. package/controls/checkbox/checkbox.d.ts +7 -2
  4. package/controls/checkbox/checkbox.d.ts.map +1 -1
  5. package/controls/checkbox/checkbox.module.d.ts +2 -1
  6. package/controls/checkbox/checkbox.module.d.ts.map +1 -1
  7. package/controls/checkbox/radiobutton.d.ts +5 -3
  8. package/controls/checkbox/radiobutton.d.ts.map +1 -1
  9. package/controls/checkbox/radiobuttons.d.ts +7 -2
  10. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  11. package/controls/confirm/confirm.service.d.ts +12 -13
  12. package/controls/confirm/confirm.service.d.ts.map +1 -1
  13. package/controls/contextmenu/contextmenu.d.ts +20 -0
  14. package/controls/contextmenu/contextmenu.d.ts.map +1 -0
  15. package/controls/contextmenu/contextmenu.module.d.ts +13 -0
  16. package/controls/contextmenu/contextmenu.module.d.ts.map +1 -0
  17. package/controls/contextmenu/contextmenuanchor.d.ts +16 -0
  18. package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -0
  19. package/controls/contextmenu/contextmenucontainer.d.ts +16 -0
  20. package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -0
  21. package/controls/contextmenu/contextmenuitembutton.d.ts +18 -0
  22. package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -0
  23. package/controls/contextmenu/contextmenuitemsplitter.d.ts +10 -0
  24. package/controls/contextmenu/contextmenuitemsplitter.d.ts.map +1 -0
  25. package/controls/contextmenu/index.d.ts +2 -0
  26. package/controls/contextmenu/index.d.ts.map +1 -0
  27. package/controls/datetime/date.d.ts +11 -4
  28. package/controls/datetime/date.d.ts.map +1 -1
  29. package/controls/datetime/dateselector.d.ts.map +1 -1
  30. package/controls/datetime/datetime.d.ts +11 -4
  31. package/controls/datetime/datetime.d.ts.map +1 -1
  32. package/controls/datetime/datetime.module.d.ts +2 -1
  33. package/controls/datetime/datetime.module.d.ts.map +1 -1
  34. package/controls/datetime/time.d.ts +11 -4
  35. package/controls/datetime/time.d.ts.map +1 -1
  36. package/controls/form/form.d.ts +7 -11
  37. package/controls/form/form.d.ts.map +1 -1
  38. package/controls/form/form.module.d.ts.map +1 -1
  39. package/controls/form/inheritform.directive.d.ts +16 -39
  40. package/controls/form/inheritform.directive.d.ts.map +1 -1
  41. package/controls/grid/grid.module.d.ts +8 -7
  42. package/controls/grid/grid.module.d.ts.map +1 -1
  43. package/controls/grid/gridbutton.d.ts +1 -10
  44. package/controls/grid/gridbutton.d.ts.map +1 -1
  45. package/controls/grid/paging.d.ts.map +1 -1
  46. package/controls/input/input.d.ts +7 -2
  47. package/controls/input/input.d.ts.map +1 -1
  48. package/controls/input/input.module.d.ts +2 -2
  49. package/controls/input/input.module.d.ts.map +1 -1
  50. package/controls/input/inputarea.d.ts +7 -2
  51. package/controls/input/inputarea.d.ts.map +1 -1
  52. package/controls/input/inputcurrency.d.ts +7 -2
  53. package/controls/input/inputcurrency.d.ts.map +1 -1
  54. package/controls/input/inputdecimal.d.ts +7 -2
  55. package/controls/input/inputdecimal.d.ts.map +1 -1
  56. package/controls/input/inputemail.d.ts +7 -2
  57. package/controls/input/inputemail.d.ts.map +1 -1
  58. package/controls/input/inputinteger.d.ts +7 -2
  59. package/controls/input/inputinteger.d.ts.map +1 -1
  60. package/controls/input/inputpassword.d.ts +7 -2
  61. package/controls/input/inputpassword.d.ts.map +1 -1
  62. package/controls/input/inputsearch.d.ts +7 -2
  63. package/controls/input/inputsearch.d.ts.map +1 -1
  64. package/controls/layout/formlayout.directive.d.ts +7 -0
  65. package/controls/layout/formlayout.directive.d.ts.map +1 -0
  66. package/controls/layout/layout.module.d.ts +13 -0
  67. package/controls/layout/layout.module.d.ts.map +1 -0
  68. package/controls/layout/tocontrolheight.pipe.d.ts +13 -0
  69. package/controls/layout/tocontrolheight.pipe.d.ts.map +1 -0
  70. package/controls/layout/tocontrolwidthcss.pipe.d.ts +20 -0
  71. package/controls/layout/tocontrolwidthcss.pipe.d.ts.map +1 -0
  72. package/controls/layout/tolabelheight.pipe.d.ts +13 -0
  73. package/controls/layout/tolabelheight.pipe.d.ts.map +1 -0
  74. package/controls/layout/tolabelwidthcss.pipe.d.ts +14 -0
  75. package/controls/layout/tolabelwidthcss.pipe.d.ts.map +1 -0
  76. package/controls/list/dropdown.d.ts +16 -3
  77. package/controls/list/dropdown.d.ts.map +1 -1
  78. package/controls/list/list.module.d.ts +2 -1
  79. package/controls/list/list.module.d.ts.map +1 -1
  80. package/controls/list/listbox.d.ts +7 -2
  81. package/controls/list/listbox.d.ts.map +1 -1
  82. package/controls/static/formcontainer.d.ts +5 -5
  83. package/controls/static/formcontainer.d.ts.map +1 -1
  84. package/controls/static/staticlabel.d.ts +7 -2
  85. package/controls/static/staticlabel.d.ts.map +1 -1
  86. package/controls/static/staticlabel.module.d.ts +4 -4
  87. package/controls/static/staticlabel.module.d.ts.map +1 -1
  88. package/controls/tinymce/tinymce.d.ts +6 -6
  89. package/controls/tinymce/tinymce.d.ts.map +1 -1
  90. package/controls/tinymce/tinymce.module.d.ts +2 -1
  91. package/controls/tinymce/tinymce.module.d.ts.map +1 -1
  92. package/controls/tooltip/tooltip.d.ts +6 -1
  93. package/controls/tooltip/tooltip.d.ts.map +1 -1
  94. package/controls/tooltip/tooltip.module.d.ts +1 -1
  95. package/controls/tooltip/tooltip.module.d.ts.map +1 -1
  96. package/controls/treeview/treeview.d.ts +15 -4
  97. package/controls/treeview/treeview.d.ts.map +1 -1
  98. package/controls/treeview/treeview.module.d.ts +4 -6
  99. package/controls/treeview/treeview.module.d.ts.map +1 -1
  100. package/controls/upload/dropzonemultiple.d.ts +25 -0
  101. package/controls/upload/dropzonemultiple.d.ts.map +1 -0
  102. package/controls/upload/dropzonesingle.d.ts +25 -0
  103. package/controls/upload/dropzonesingle.d.ts.map +1 -0
  104. package/controls/upload/upload.d.ts +10 -4
  105. package/controls/upload/upload.d.ts.map +1 -1
  106. package/controls/upload/upload.module.d.ts +4 -1
  107. package/controls/upload/upload.module.d.ts.map +1 -1
  108. package/controls/upload/uploadmultiple.d.ts +9 -2
  109. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  110. package/controls/validation/validationsummary.d.ts +6 -1
  111. package/controls/validation/validationsummary.d.ts.map +1 -1
  112. package/esm2022/controls/buttons/button.mjs +6 -5
  113. package/esm2022/controls/buttons/button.module.mjs +3 -2
  114. package/esm2022/controls/checkbox/checkbox.mjs +48 -15
  115. package/esm2022/controls/checkbox/checkbox.module.mjs +18 -5
  116. package/esm2022/controls/checkbox/radiobutton.mjs +16 -9
  117. package/esm2022/controls/checkbox/radiobuttons.mjs +48 -15
  118. package/esm2022/controls/confirm/confirm.mjs +3 -3
  119. package/esm2022/controls/confirm/confirm.module.mjs +2 -2
  120. package/esm2022/controls/confirm/confirm.service.mjs +42 -27
  121. package/esm2022/controls/contextmenu/contextmenu.mjs +34 -0
  122. package/esm2022/controls/contextmenu/contextmenu.module.mjs +42 -0
  123. package/esm2022/controls/contextmenu/contextmenuanchor.mjs +38 -0
  124. package/esm2022/controls/contextmenu/contextmenucontainer.mjs +38 -0
  125. package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +46 -0
  126. package/esm2022/controls/contextmenu/contextmenuitemsplitter.mjs +26 -0
  127. package/esm2022/controls/contextmenu/index.mjs +2 -0
  128. package/esm2022/controls/datetime/date.mjs +62 -19
  129. package/esm2022/controls/datetime/dateselector.mjs +3 -8
  130. package/esm2022/controls/datetime/datetime.mjs +57 -17
  131. package/esm2022/controls/datetime/datetime.module.mjs +30 -10
  132. package/esm2022/controls/datetime/time.mjs +57 -17
  133. package/esm2022/controls/dialog/dialog.mjs +3 -3
  134. package/esm2022/controls/form/form.mjs +13 -18
  135. package/esm2022/controls/form/form.module.mjs +6 -6
  136. package/esm2022/controls/form/inheritform.directive.mjs +46 -63
  137. package/esm2022/controls/grid/grid.mjs +3 -3
  138. package/esm2022/controls/grid/grid.module.mjs +36 -8
  139. package/esm2022/controls/grid/gridbutton.mjs +3 -11
  140. package/esm2022/controls/grid/gridcolumn.mjs +3 -3
  141. package/esm2022/controls/grid/paging.mjs +30 -10
  142. package/esm2022/controls/input/input.mjs +41 -13
  143. package/esm2022/controls/input/input.module.mjs +46 -8
  144. package/esm2022/controls/input/inputarea.mjs +51 -15
  145. package/esm2022/controls/input/inputcurrency.mjs +51 -15
  146. package/esm2022/controls/input/inputdecimal.mjs +51 -15
  147. package/esm2022/controls/input/inputemail.mjs +51 -15
  148. package/esm2022/controls/input/inputinteger.mjs +51 -15
  149. package/esm2022/controls/input/inputpassword.mjs +51 -15
  150. package/esm2022/controls/input/inputsearch.mjs +50 -15
  151. package/esm2022/controls/layout/formlayout.directive.mjs +16 -0
  152. package/esm2022/controls/layout/layout.module.mjs +44 -0
  153. package/esm2022/controls/layout/tocontrolheight.pipe.mjs +35 -0
  154. package/esm2022/controls/layout/tocontrolwidthcss.pipe.mjs +53 -0
  155. package/esm2022/controls/layout/tolabelheight.pipe.mjs +35 -0
  156. package/esm2022/controls/layout/tolabelwidthcss.pipe.mjs +37 -0
  157. package/esm2022/controls/list/dropdown.mjs +37 -14
  158. package/esm2022/controls/list/list.module.mjs +5 -2
  159. package/esm2022/controls/list/listbox.mjs +56 -15
  160. package/esm2022/controls/static/formcontainer.mjs +46 -18
  161. package/esm2022/controls/static/staticlabel.mjs +48 -15
  162. package/esm2022/controls/static/staticlabel.module.mjs +14 -10
  163. package/esm2022/controls/tabs/tab.mjs +3 -3
  164. package/esm2022/controls/tinymce/tinymce.mjs +23 -12
  165. package/esm2022/controls/tinymce/tinymce.module.mjs +4 -3
  166. package/esm2022/controls/tooltip/tooltip.mjs +15 -5
  167. package/esm2022/controls/tooltip/tooltip.module.mjs +5 -9
  168. package/esm2022/controls/treeview/treeview.mjs +71 -15
  169. package/esm2022/controls/treeview/treeview.module.mjs +11 -27
  170. package/esm2022/controls/upload/dropzonemultiple.mjs +80 -0
  171. package/esm2022/controls/upload/dropzonesingle.mjs +80 -0
  172. package/esm2022/controls/upload/upload.mjs +51 -15
  173. package/esm2022/controls/upload/upload.module.mjs +23 -9
  174. package/esm2022/controls/upload/uploadmultiple.mjs +26 -9
  175. package/esm2022/controls/validation/validationsummary.mjs +15 -11
  176. package/esm2022/public_api.mjs +42 -31
  177. package/fesm2022/simpleangularcontrols-sac-bootstrap3.mjs +2302 -1074
  178. package/fesm2022/simpleangularcontrols-sac-bootstrap3.mjs.map +1 -1
  179. package/package.json +4 -3
  180. package/public_api.d.ts +41 -30
  181. package/public_api.d.ts.map +1 -1
  182. package/simpleangularcontrols-sac-bootstrap3-16.0.0-rc.11.tgz +0 -0
  183. package/controls/treeview/ngtreeitemaction.d.ts +0 -9
  184. package/controls/treeview/ngtreeitemaction.d.ts.map +0 -1
  185. package/controls/treeview/treeviewchild.d.ts +0 -7
  186. package/controls/treeview/treeviewchild.d.ts.map +0 -1
  187. package/esm2022/controls/treeview/ngtreeitemaction.mjs +0 -16
  188. package/esm2022/controls/treeview/treeviewchild.mjs +0 -14
  189. package/simpleangularcontrols-sac-bootstrap3-16.0.0-rc.1.tgz +0 -0
@@ -0,0 +1,35 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { ControlHeight } from '@simpleangularcontrols/sac-common';
3
+ import * as i0 from "@angular/core";
4
+ class SacToLabelHeightPipe {
5
+ // #region Public Methods
6
+ /**
7
+ * Returns the CSS class that defines the height for the control
8
+ * @param value ControlHeight value or null
9
+ */
10
+ transform(value) {
11
+ // Return default value
12
+ if (!value) {
13
+ return '';
14
+ }
15
+ switch (value) {
16
+ case ControlHeight.Small:
17
+ return 'form-group-sm';
18
+ case ControlHeight.Large:
19
+ return 'form-group-lg';
20
+ default:
21
+ return '';
22
+ }
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacToLabelHeightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
25
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SacToLabelHeightPipe, isStandalone: true, name: "toLabelHeight" }); }
26
+ }
27
+ export { SacToLabelHeightPipe };
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacToLabelHeightPipe, decorators: [{
29
+ type: Pipe,
30
+ args: [{
31
+ name: 'toLabelHeight',
32
+ standalone: true,
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9sYWJlbGhlaWdodC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjL2NvbnRyb2xzL2xheW91dC90b2xhYmVsaGVpZ2h0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUVsRSxNQUlhLG9CQUFvQjtJQUMvQix5QkFBeUI7SUFFekI7OztPQUdHO0lBQ0ksU0FBUyxDQUFDLEtBQTJCO1FBQzFDLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELFFBQVEsS0FBSyxFQUFFO1lBQ2IsS0FBSyxhQUFhLENBQUMsS0FBSztnQkFDdEIsT0FBTyxlQUFlLENBQUM7WUFDekIsS0FBSyxhQUFhLENBQUMsS0FBSztnQkFDdEIsT0FBTyxlQUFlLENBQUM7WUFDekI7Z0JBQ0UsT0FBTyxFQUFFLENBQUM7U0FDYjtJQUNILENBQUM7K0dBckJVLG9CQUFvQjs2R0FBcEIsb0JBQW9COztTQUFwQixvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFKaEMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sSGVpZ2h0IH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAndG9MYWJlbEhlaWdodCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY1RvTGFiZWxIZWlnaHRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBDU1MgY2xhc3MgdGhhdCBkZWZpbmVzIHRoZSBoZWlnaHQgZm9yIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIHZhbHVlIENvbnRyb2xIZWlnaHQgdmFsdWUgb3IgbnVsbFxyXG4gICAqL1xyXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IENvbnRyb2xIZWlnaHQgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIC8vIFJldHVybiBkZWZhdWx0IHZhbHVlXHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgQ29udHJvbEhlaWdodC5TbWFsbDpcclxuICAgICAgICByZXR1cm4gJ2Zvcm0tZ3JvdXAtc20nO1xyXG4gICAgICBjYXNlIENvbnRyb2xIZWlnaHQuTGFyZ2U6XHJcbiAgICAgICAgcmV0dXJuICdmb3JtLWdyb3VwLWxnJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcbn1cclxuIl19
@@ -0,0 +1,37 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class SacToLabelWidthCssPipe {
4
+ // #region Public Methods
5
+ /**
6
+ * Get CSS classes from label width configuration to set label size
7
+ * @param value Configuration with grid columns for different viewports
8
+ * @returns string with css classe for bootstrap3
9
+ */
10
+ transform(value) {
11
+ const classes = [];
12
+ if (value.labelSizeXs) {
13
+ classes.push('col-xs-' + value.labelSizeXs);
14
+ }
15
+ if (value.labelSizeSm) {
16
+ classes.push('col-sm-' + value.labelSizeSm);
17
+ }
18
+ if (value.labelSizeMd) {
19
+ classes.push('col-md-' + value.labelSizeMd);
20
+ }
21
+ if (value.labelSizeLg) {
22
+ classes.push('col-lg-' + value.labelSizeLg);
23
+ }
24
+ return classes.join(' ');
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacToLabelWidthCssPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
27
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SacToLabelWidthCssPipe, isStandalone: true, name: "toLabelWidthCss" }); }
28
+ }
29
+ export { SacToLabelWidthCssPipe };
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacToLabelWidthCssPipe, decorators: [{
31
+ type: Pipe,
32
+ args: [{
33
+ name: 'toLabelWidthCss',
34
+ standalone: true,
35
+ }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9sYWJlbHdpZHRoY3NzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvbGF5b3V0L3RvbGFiZWx3aWR0aGNzcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUdwRCxNQUlhLHNCQUFzQjtJQUNqQyx5QkFBeUI7SUFFekI7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQyxLQUFxQjtRQUNwQyxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7UUFFN0IsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM3QztRQUVELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDOytHQTVCVSxzQkFBc0I7NkdBQXRCLHNCQUFzQjs7U0FBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBSmxDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJU2FjTGFiZWxTaXplcyB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3RvTGFiZWxXaWR0aENzcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY1RvTGFiZWxXaWR0aENzc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBDU1MgY2xhc3NlcyBmcm9tIGxhYmVsIHdpZHRoIGNvbmZpZ3VyYXRpb24gdG8gc2V0IGxhYmVsIHNpemVcclxuICAgKiBAcGFyYW0gdmFsdWUgQ29uZmlndXJhdGlvbiB3aXRoIGdyaWQgY29sdW1ucyBmb3IgZGlmZmVyZW50IHZpZXdwb3J0c1xyXG4gICAqIEByZXR1cm5zIHN0cmluZyB3aXRoIGNzcyBjbGFzc2UgZm9yIGJvb3RzdHJhcDNcclxuICAgKi9cclxuICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlOiBJU2FjTGFiZWxTaXplcyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIGlmICh2YWx1ZS5sYWJlbFNpemVYcykge1xyXG4gICAgICBjbGFzc2VzLnB1c2goJ2NvbC14cy0nICsgdmFsdWUubGFiZWxTaXplWHMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWx1ZS5sYWJlbFNpemVTbSkge1xyXG4gICAgICBjbGFzc2VzLnB1c2goJ2NvbC1zbS0nICsgdmFsdWUubGFiZWxTaXplU20pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWx1ZS5sYWJlbFNpemVNZCkge1xyXG4gICAgICBjbGFzc2VzLnB1c2goJ2NvbC1tZC0nICsgdmFsdWUubGFiZWxTaXplTWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWx1ZS5sYWJlbFNpemVMZykge1xyXG4gICAgICBjbGFzc2VzLnB1c2goJ2NvbC1sZy0nICsgdmFsdWUubGFiZWxTaXplTGcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxufVxyXG4iXX0=
@@ -2,14 +2,28 @@ import { AsyncPipe, NgClass, NgFor, NgIf, NgTemplateOutlet, } from '@angular/com
2
2
  import { Component, Directive, Host, Optional, forwardRef, } from '@angular/core';
3
3
  import { FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { SacDropdownCommon, SacDropdownOptionCommon, } from '@simpleangularcontrols/sac-common';
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';
5
10
  import * as i0 from "@angular/core";
6
- import * as i1 from "../form/form";
11
+ import * as i1 from "../layout/formlayout.directive";
7
12
  import * as i2 from "@angular/forms";
13
+ // #region Classes
8
14
  class SacDropdownComponent extends SacDropdownCommon {
9
- constructor(parent, injector, _renderer, _elementRef) {
10
- super(parent, injector, _renderer, _elementRef);
15
+ // #region Constructors
16
+ /**
17
+ * Constructor
18
+ * @param formLayout SacFormLayout to define scoped layout settings
19
+ * @param injector Injector for injecting services
20
+ * @param renderer Angular rendering engine
21
+ * @param elementRef Reference to html dom element
22
+ */
23
+ constructor(formLayout, injector, renderer, elementRef) {
24
+ super(formLayout, injector, renderer, elementRef);
11
25
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownComponent, deps: [{ token: i1.SacFormDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownComponent, deps: [{ token: i1.SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
13
27
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacDropdownComponent, isStandalone: true, selector: "sac-dropdown", providers: [
14
28
  {
15
29
  provide: NG_VALUE_ACCESSOR,
@@ -21,7 +35,7 @@ class SacDropdownComponent extends SacDropdownCommon {
21
35
  multi: true,
22
36
  useExisting: forwardRef(() => SacDropdownComponent),
23
37
  },
24
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\" [ngClass]=\"{'has-error': invalid && (dirty || touched)}\">\r\n <label *ngIf=\"disablelabel === false && !isadaptivelabel\" id=\"{{name}}label\" for=\"{{name}}\" class=\"control-label\" [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\" [class.required]=\"isrequired\">{{label}}</label>\r\n <div [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\">\r\n <select #dropdownitem id=\"{{name}}\" name=\"{{name}}\" class=\"form-control\"\r\n (blur)=\"onTouch()\" (change)=\"setValue(dropdownitem.value)\" [disabled]=\"isdisabled\">\r\n\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">{{emptylabel}}</option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option *ngFor=\"let item of options\" [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\">\r\n </ng-template>\r\n\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup *ngFor=\"let group of options\" [attr.label]=\"group[grouplabel]\">\r\n <option *ngFor=\"let item of group[groupitems]\" [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\">\r\n </ng-template>\r\n\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n\r\n\r\n </select>\r\n <div class=\"help-block help-block-error\" *ngIf=\"IsInlineErrorEnabled && invalid && (dirty || touched)\">{{ GetErrorMessage() | async }}</div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return FormsModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSelectOption; }), selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.ɵNgSelectMultipleOption; }), selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i0.forwardRef(function () { return SacDropdownOptionDirective; }), selector: "option,[sacOption]" }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }] }); }
38
+ ], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\r\n <div [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <select\r\n #dropdownitem\r\n id=\"{{ name }}\"\r\n name=\"{{ name }}\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\">\r\n <option\r\n *ngIf=\"emptylabel !== ''\"\r\n [ngValue]=\"emptyvalue\">\r\n {{ emptylabel }}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel], item: item }\"> </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\">\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel], item: item }\"> </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template\r\n #defaultItemLabelTemplate\r\n let-label=\"label\">\r\n {{ label }}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return FormsModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSelectOption; }), selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.ɵNgSelectMultipleOption; }), selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i0.forwardRef(function () { return SacDropdownOptionDirective; }), selector: "option,[sacOption]" }, { kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToLabelWidthCssPipe; }), name: "toLabelWidthCss" }, { kind: "pipe", type: i0.forwardRef(function () { return SacToControlWidthCssPipe; }), name: "toControlWidthCss" }, { 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" }] }); }
25
39
  }
26
40
  export { SacDropdownComponent };
27
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownComponent, decorators: [{
@@ -45,15 +59,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
45
59
  NgFor,
46
60
  NgTemplateOutlet,
47
61
  AsyncPipe,
48
- ], template: "<div class=\"form-group\" [ngClass]=\"{'has-error': invalid && (dirty || touched)}\">\r\n <label *ngIf=\"disablelabel === false && !isadaptivelabel\" id=\"{{name}}label\" for=\"{{name}}\" class=\"control-label\" [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\" [class.required]=\"isrequired\">{{label}}</label>\r\n <div [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\">\r\n <select #dropdownitem id=\"{{name}}\" name=\"{{name}}\" class=\"form-control\"\r\n (blur)=\"onTouch()\" (change)=\"setValue(dropdownitem.value)\" [disabled]=\"isdisabled\">\r\n\r\n <option *ngIf=\"emptylabel !== ''\" [ngValue]=\"emptyvalue\">{{emptylabel}}</option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option *ngFor=\"let item of options\" [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\">\r\n </ng-template>\r\n\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup *ngFor=\"let group of options\" [attr.label]=\"group[grouplabel]\">\r\n <option *ngFor=\"let item of group[groupitems]\" [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel], item: item }\">\r\n </ng-template>\r\n\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n\r\n\r\n </select>\r\n <div class=\"help-block help-block-error\" *ngIf=\"IsInlineErrorEnabled && invalid && (dirty || touched)\">{{ GetErrorMessage() | async }}</div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n" }]
49
- }], ctorParameters: function () { return [{ type: i1.SacFormDirective, decorators: [{
62
+ SacToLabelWidthCssPipe,
63
+ SacToControlWidthCssPipe,
64
+ SacToLabelHeightPipe,
65
+ SacToControlHeightPipe,
66
+ SacTooltipComponent,
67
+ ], template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\r\n <div [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <select\r\n #dropdownitem\r\n id=\"{{ name }}\"\r\n name=\"{{ name }}\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"setValue(dropdownitem.value)\"\r\n [disabled]=\"isdisabled\">\r\n <option\r\n *ngIf=\"emptylabel !== ''\"\r\n [ngValue]=\"emptyvalue\">\r\n {{ emptylabel }}\r\n </option>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option\r\n *ngFor=\"let item of options\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel], item: item }\"> </ng-template>\r\n </option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup\r\n *ngFor=\"let group of options\"\r\n [attr.label]=\"group[grouplabel]\">\r\n <option\r\n *ngFor=\"let item of group[groupitems]\"\r\n [ngValue]=\"optionvalue ? item[optionvalue] : item\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel], item: item }\"> </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template\r\n #defaultItemLabelTemplate\r\n let-label=\"label\">\r\n {{ label }}\r\n</ng-template>\r\n" }]
68
+ }], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
50
69
  type: Host
51
70
  }, {
52
71
  type: Optional
53
72
  }] }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; } });
54
73
  class SacDropdownOptionDirective extends SacDropdownOptionCommon {
55
- constructor(_elementRef, _renderer, dropdownList) {
56
- super(_elementRef, _renderer, dropdownList);
74
+ // #region Constructors
75
+ /**
76
+ * Konstruktor
77
+ * @param elementRef Referenz auf HTML DOM Element
78
+ * @param renderer Angular Rendering Engine
79
+ * @param dropdownList Referenz auf DropDown Komponente
80
+ */
81
+ constructor(elementRef, renderer, dropdownList) {
82
+ super(elementRef, renderer, dropdownList);
57
83
  }
58
84
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SacDropdownComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
59
85
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SacDropdownOptionDirective, isStandalone: true, selector: "option,[sacOption]", usesInheritance: true, ngImport: i0 }); }
@@ -61,13 +87,10 @@ class SacDropdownOptionDirective extends SacDropdownOptionCommon {
61
87
  export { SacDropdownOptionDirective };
62
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropdownOptionDirective, decorators: [{
63
89
  type: Directive,
64
- args: [{
65
- selector: 'option,[sacOption]',
66
- standalone: true,
67
- }]
90
+ args: [{ selector: 'option,[sacOption]', standalone: true }]
68
91
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SacDropdownComponent, decorators: [{
69
92
  type: Optional
70
93
  }, {
71
94
  type: Host
72
95
  }] }]; } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvbGlzdC9kcm9wZG93bi50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy9jb250cm9scy9saXN0L2Ryb3Bkb3duLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUNMLElBQUksRUFDSixnQkFBZ0IsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFFVCxJQUFJLEVBRUosUUFBUSxFQUVSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFDbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHVCQUF1QixHQUN4QixNQUFNLG1DQUFtQyxDQUFDOzs7O0FBRzNDLE1BMkJhLG9CQUFxQixTQUFRLGlCQUFpQjtJQUN6RCxZQUNzQixNQUF3QixFQUM1QyxRQUFrQixFQUNsQixTQUFvQixFQUNwQixXQUF1QjtRQUV2QixLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQzsrR0FSVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwyREF2QnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLG9CQUFvQjthQUNsQztZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2FBQ3BEO1NBQ0YsaURDM0NILDBsRUF5Q0EsK0VES0ksT0FBTywySEFDUCxJQUFJLG1JQUNKLFdBQVcsaVdBc0JGLDBCQUEwQixzR0FwQm5DLEtBQUssMEpBQ0wsZ0JBQWdCLHNMQUNoQixTQUFTOztTQUdBLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQTNCaEMsU0FBUzsrQkFDRSxjQUFjLGFBR2I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxzQkFBc0I7eUJBQ2xDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzt5QkFDcEQ7cUJBQ0YsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLFdBQVc7d0JBQ1gsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO3dCQUM1QyxLQUFLO3dCQUNMLGdCQUFnQjt3QkFDaEIsU0FBUztxQkFDVjs7MEJBSUUsSUFBSTs7MEJBQUksUUFBUTs7QUFTckIsTUFJYSwwQkFBMkIsU0FBUSx1QkFBdUI7SUFDckUsWUFDRSxXQUF1QixFQUN2QixTQUFvQixFQUNBLFlBQWtDO1FBRXRELEtBQUssQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBUFUsMEJBQTBCO21HQUExQiwwQkFBMEI7O1NBQTFCLDBCQUEwQjs0RkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBS0ksUUFBUTs7MEJBQUksSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXN5bmNQaXBlLFxyXG4gIE5nQ2xhc3MsXHJcbiAgTmdGb3IsXHJcbiAgTmdJZixcclxuICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgT3B0aW9uYWwsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybXNNb2R1bGUsXHJcbiAgTkdfVkFMSURBVE9SUyxcclxuICBOR19WQUxVRV9BQ0NFU1NPUlxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBTYWNEcm9wZG93bkNvbW1vbixcclxuICBTYWNEcm9wZG93bk9wdGlvbkNvbW1vbixcclxufSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi4vZm9ybS9mb3JtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2FjLWRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uaHRtbCcsXHJcbiAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjRHJvcGRvd25Db21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE5nSWYsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIGZvcndhcmRSZWYoKCkgPT4gU2FjRHJvcGRvd25PcHRpb25EaXJlY3RpdmUpLFxyXG4gICAgTmdGb3IsXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgQXN5bmNQaXBlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNEcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIFNhY0Ryb3Bkb3duQ29tbW9uIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBIb3N0KCkgQE9wdGlvbmFsKCkgcGFyZW50OiBTYWNGb3JtRGlyZWN0aXZlLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBfZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIocGFyZW50LCBpbmplY3RvciwgX3JlbmRlcmVyLCBfZWxlbWVudFJlZik7XHJcbiAgfVxyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ29wdGlvbixbc2FjT3B0aW9uXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlIGV4dGVuZHMgU2FjRHJvcGRvd25PcHRpb25Db21tb24ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgZHJvcGRvd25MaXN0OiBTYWNEcm9wZG93bkNvbXBvbmVudFxyXG4gICkge1xyXG4gICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9yZW5kZXJlciwgZHJvcGRvd25MaXN0KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2hhcy1lcnJvcic6IGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpfVwiPlxyXG4gIDxsYWJlbCAqbmdJZj1cImRpc2FibGVsYWJlbCA9PT0gZmFsc2UgJiYgIWlzYWRhcHRpdmVsYWJlbFwiIGlkPVwie3tuYW1lfX1sYWJlbFwiIGZvcj1cInt7bmFtZX19XCIgY2xhc3M9XCJjb250cm9sLWxhYmVsXCIgW25nQ2xhc3NdPVwiW2xhYmVsc2l6ZSAhPT0gMTIgPyAgJ2NvbC1tZC0nICsgbGFiZWxzaXplIDogJ3NyLW9ubHknXVwiIFtjbGFzcy5yZXF1aXJlZF09XCJpc3JlcXVpcmVkXCI+e3tsYWJlbH19PC9sYWJlbD5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gJ2NvbC1tZC0nICsgX2lucHV0c2l6ZSA6ICdjb2wtbWQtMTInXVwiPlxyXG4gICAgPHNlbGVjdCAjZHJvcGRvd25pdGVtIGlkPVwie3tuYW1lfX1cIiBuYW1lPVwie3tuYW1lfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiIChjaGFuZ2UpPVwic2V0VmFsdWUoZHJvcGRvd25pdGVtLnZhbHVlKVwiIFtkaXNhYmxlZF09XCJpc2Rpc2FibGVkXCI+XHJcblxyXG4gICAgICA8b3B0aW9uICpuZ0lmPVwiZW1wdHlsYWJlbCAhPT0gJydcIiBbbmdWYWx1ZV09XCJlbXB0eXZhbHVlXCI+e3tlbXB0eWxhYmVsfX08L29wdGlvbj5cclxuXHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cGl0ZW1zID09PSAnJ1wiPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uc1wiIFtuZ1ZhbHVlXT1cIm9wdGlvbnZhbHVlID8gaXRlbVtvcHRpb252YWx1ZV0gOiBpdGVtXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb25lbmFibGVkICE9PSAnJyAmJiBpdGVtW29wdGlvbmVuYWJsZWRdID09PSBmYWxzZVwiPlxyXG5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm9wdGlvbmxhYmVsdGVtcGxhdGUgfHwgZGVmYXVsdEl0ZW1MYWJlbFRlbXBsYXRlO2NvbnRleHQ6eyBsYWJlbDogaXRlbVtvcHRpb25sYWJlbF0sIGl0ZW06IGl0ZW0gfVwiPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwaXRlbXMgIT09ICcnXCI+XHJcbiAgICAgICAgPG9wdGdyb3VwICpuZ0Zvcj1cImxldCBncm91cCBvZiBvcHRpb25zXCIgW2F0dHIubGFiZWxdPVwiZ3JvdXBbZ3JvdXBsYWJlbF1cIj5cclxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXBbZ3JvdXBpdGVtc11cIiBbbmdWYWx1ZV09XCJvcHRpb252YWx1ZSA/IGl0ZW1bb3B0aW9udmFsdWVdIDogaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb25lbmFibGVkICE9PSAnJyAmJiBpdGVtW29wdGlvbmVuYWJsZWRdID09PSBmYWxzZVwiPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwib3B0aW9ubGFiZWx0ZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbUxhYmVsVGVtcGxhdGU7Y29udGV4dDp7IGxhYmVsOiBpdGVtW29wdGlvbmxhYmVsXSwgaXRlbTogaXRlbSB9XCI+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9vcHRncm91cD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgIDwvc2VsZWN0PlxyXG4gICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2sgaGVscC1ibG9jay1lcnJvclwiICpuZ0lmPVwiSXNJbmxpbmVFcnJvckVuYWJsZWQgJiYgaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj57eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19PC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbUxhYmVsVGVtcGxhdGUgbGV0LWxhYmVsPVwibGFiZWxcIj5cclxuICB7e2xhYmVsfX1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvbGlzdC9kcm9wZG93bi50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy9jb250cm9scy9saXN0L2Ryb3Bkb3duLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUNMLElBQUksRUFDSixnQkFBZ0IsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFFVCxJQUFJLEVBRUosUUFBUSxFQUVSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsdUJBQXVCLEdBQ3hCLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFFekQsa0JBQWtCO0FBRWxCLE1BZ0NhLG9CQUFxQixTQUFRLGlCQUFpQjtJQUN6RCx1QkFBdUI7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsWUFDc0IsVUFBa0MsRUFDdEQsUUFBa0IsRUFDbEIsUUFBbUIsRUFDbkIsVUFBc0I7UUFFdEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7K0dBakJVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDJEQTVCcEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsb0JBQW9CO2FBQ2xDO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDcEQ7U0FDRixpREM5Q0gsK3dJQXFHQSwrRURwREksT0FBTywySEFDUCxJQUFJLG1JQUNKLFdBQVcsaVdBbUNGLDBCQUEwQixzR0FqQ25DLEtBQUssMEpBQ0wsZ0JBQWdCLHNMQUNoQixTQUFTLGdGQUNULHNCQUFzQiwwRkFDdEIsd0JBQXdCLDRGQUN4QixvQkFBb0Isd0ZBQ3BCLHNCQUFzQiwrRkFDdEIsbUJBQW1COztTQUdWLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQWhDaEMsU0FBUzsrQkFDRSxjQUFjLGFBR2I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxzQkFBc0I7eUJBQ2xDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzt5QkFDcEQ7cUJBQ0YsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLFdBQVc7d0JBQ1gsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO3dCQUM1QyxLQUFLO3dCQUNMLGdCQUFnQjt3QkFDaEIsU0FBUzt3QkFDVCxzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjtxQkFDcEI7OzBCQWFFLElBQUk7OzBCQUFJLFFBQVE7O0FBV3JCLE1BQ2EsMEJBQTJCLFNBQVEsdUJBQXVCO0lBQ3JFLHVCQUF1QjtJQUV2Qjs7Ozs7T0FLRztJQUNILFlBQ0UsVUFBc0IsRUFDdEIsUUFBbUIsRUFDQyxZQUFrQztRQUV0RCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDOytHQWZVLDBCQUEwQjttR0FBMUIsMEJBQTBCOztTQUExQiwwQkFBMEI7NEZBQTFCLDBCQUEwQjtrQkFEdEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOzswQkFhMUQsUUFBUTs7MEJBQUksSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXN5bmNQaXBlLFxyXG4gIE5nQ2xhc3MsXHJcbiAgTmdGb3IsXHJcbiAgTmdJZixcclxuICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgT3B0aW9uYWwsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBTYWNEcm9wZG93bkNvbW1vbixcclxuICBTYWNEcm9wZG93bk9wdGlvbkNvbW1vbixcclxufSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2FjVG9Db250cm9sSGVpZ2h0UGlwZSB9IGZyb20gJy4uL2xheW91dC90b2NvbnRyb2xoZWlnaHQucGlwZSc7XHJcbmltcG9ydCB7IFNhY1RvQ29udHJvbFdpZHRoQ3NzUGlwZSB9IGZyb20gJy4uL2xheW91dC90b2NvbnRyb2x3aWR0aGNzcy5waXBlJztcclxuaW1wb3J0IHsgU2FjVG9MYWJlbEhlaWdodFBpcGUgfSBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbGhlaWdodC5waXBlJztcclxuaW1wb3J0IHsgU2FjVG9MYWJlbFdpZHRoQ3NzUGlwZSB9IGZyb20gJy4uL2xheW91dC90b2xhYmVsd2lkdGhjc3MucGlwZSc7XHJcbmltcG9ydCB7IFNhY1Rvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAnO1xyXG5cclxuLy8gI3JlZ2lvbiBDbGFzc2VzXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy1kcm9wZG93bicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmh0bWwnLFxyXG4gIC8vIFZhbHVlIEFjY2VzcyBQcm92aWRlciByZWdpc3RyaWVyZW4sIGRhbWl0IFdlcnQgdmlhIE1vZGVsIGdlc2NocmllYmVuIHVuZCBnZWxlc2VuIHdlcmRlbiBrYW5uXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IFNhY0Ryb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY0Ryb3Bkb3duQ29tcG9uZW50KSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBOZ0lmLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBmb3J3YXJkUmVmKCgpID0+IFNhY0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlKSxcclxuICAgIE5nRm9yLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIFNhY1RvTGFiZWxXaWR0aENzc1BpcGUsXHJcbiAgICBTYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUsXHJcbiAgICBTYWNUb0xhYmVsSGVpZ2h0UGlwZSxcclxuICAgIFNhY1RvQ29udHJvbEhlaWdodFBpcGUsXHJcbiAgICBTYWNUb29sdGlwQ29tcG9uZW50LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNEcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIFNhY0Ryb3Bkb3duQ29tbW9uIHtcclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqIEBwYXJhbSByZW5kZXJlciBBbmd1bGFyIHJlbmRlcmluZyBlbmdpbmVcclxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVuY2UgdG8gaHRtbCBkb20gZWxlbWVudFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHN1cGVyKGZvcm1MYXlvdXQsIGluamVjdG9yLCByZW5kZXJlciwgZWxlbWVudFJlZik7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdvcHRpb24sW3NhY09wdGlvbl0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXHJcbmV4cG9ydCBjbGFzcyBTYWNEcm9wZG93bk9wdGlvbkRpcmVjdGl2ZSBleHRlbmRzIFNhY0Ryb3Bkb3duT3B0aW9uQ29tbW9uIHtcclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIFJlZmVyZW56IGF1ZiBIVE1MIERPTSBFbGVtZW50XHJcbiAgICogQHBhcmFtIHJlbmRlcmVyIEFuZ3VsYXIgUmVuZGVyaW5nIEVuZ2luZVxyXG4gICAqIEBwYXJhbSBkcm9wZG93bkxpc3QgUmVmZXJlbnogYXVmIERyb3BEb3duIEtvbXBvbmVudGVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBkcm9wZG93bkxpc3Q6IFNhY0Ryb3Bkb3duQ29tcG9uZW50XHJcbiAgKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCByZW5kZXJlciwgZHJvcGRvd25MaXN0KTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcbn1cclxuXHJcbi8vICNlbmRyZWdpb24gQ2xhc3Nlc1xyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCJcclxuICAgIFtjbGFzcy5oYXMtZXJyb3JdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgW25nQ2xhc3NdPVwiY29tcG9uZW50SGVpZ2h0IHwgdG9MYWJlbEhlaWdodFwiPlxyXG4gICAgPGxhYmVsXHJcbiAgICAgICAgKm5nSWY9XCJkaXNhYmxlbGFiZWwgPT09IGZhbHNlICYmICFpc0FkYXB0aXZlTGFiZWxcIlxyXG4gICAgICAgIGlkPVwie3sgbmFtZSB9fWxhYmVsXCJcclxuICAgICAgICBmb3I9XCJ7eyBuYW1lIH19XCJcclxuICAgICAgICBjbGFzcz1cImNvbC14cy0xMiBjb250cm9sLWxhYmVsXCJcclxuICAgICAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICh0aGlzLmxhYmVsU2l6ZXMgfCB0b0xhYmVsV2lkdGhDc3MpIDogJ3NyLW9ubHknXVwiXHJcbiAgICAgICAgW2NsYXNzLnJlcXVpcmVkXT1cImlzcmVxdWlyZWRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICA8c2FjLXRvb2x0aXBcclxuICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgIFt0b29sdGlwdGV4dF09XCJoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgIFtpbmxpbmVtb2RlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJIZWxwdGV4dFRvb2x0aXBJY29uXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDVweFwiPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9zYWMtdG9vbHRpcD5cclxuICAgIDwvbGFiZWw+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjb2wteHMtMTJcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gKHRoaXMubGFiZWxTaXplcyB8IHRvQ29udHJvbFdpZHRoQ3NzKSA6ICcnXVwiPlxyXG4gICAgICAgIDxkaXYgW3N0eWxlLmRpc3BsYXldPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsID8gJ2ZsZXgnIDogbnVsbFwiPlxyXG4gICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICAjZHJvcGRvd25pdGVtXHJcbiAgICAgICAgICAgICAgICBpZD1cInt7IG5hbWUgfX1cIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInt7IG5hbWUgfX1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2NvbXBvbmVudEhlaWdodCB8IHRvQ29udHJvbEhlaWdodF1cIlxyXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0VmFsdWUoZHJvcGRvd25pdGVtLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZW1wdHlsYWJlbCAhPT0gJydcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cImVtcHR5dmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBlbXB0eWxhYmVsIH19XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwaXRlbXMgPT09ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwib3B0aW9udmFsdWUgPyBpdGVtW29wdGlvbnZhbHVlXSA6IGl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uZW5hYmxlZCAhPT0gJycgJiYgaXRlbVtvcHRpb25lbmFibGVkXSA9PT0gZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwib3B0aW9ubGFiZWx0ZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbUxhYmVsVGVtcGxhdGU7IGNvbnRleHQ6IHsgbGFiZWw6IGl0ZW1bb3B0aW9ubGFiZWxdLCBpdGVtOiBpdGVtIH1cIj4gPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cGl0ZW1zICE9PSAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRncm91cFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2Ygb3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmxhYmVsXT1cImdyb3VwW2dyb3VwbGFiZWxdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwW2dyb3VwaXRlbXNdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cIm9wdGlvbnZhbHVlID8gaXRlbVtvcHRpb252YWx1ZV0gOiBpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb25lbmFibGVkICE9PSAnJyAmJiBpdGVtW29wdGlvbmVuYWJsZWRdID09PSBmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwib3B0aW9ubGFiZWx0ZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbUxhYmVsVGVtcGxhdGU7IGNvbnRleHQ6IHsgbGFiZWw6IGl0ZW1bb3B0aW9ubGFiZWxdLCBpdGVtOiBpdGVtIH1cIj4gPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9vcHRncm91cD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA1cHhcIj5cclxuICAgICAgICAgICAgICAgIDxzYWMtdG9vbHRpcFxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwdGV4dF09XCJoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lubGluZW1vZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJIZWxwdGV4dFRvb2x0aXBJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4OyBtYXJnaW4tcmlnaHQ6IDVweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvc2FjLXRvb2x0aXA+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8cFxyXG4gICAgICAgICAgICAqbmdJZj1cImhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnICYmIGhlbHB0ZXh0XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrXCI+XHJcbiAgICAgICAgICAgIHt7IGhlbHB0ZXh0IH19XHJcbiAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9jayBoZWxwLWJsb2NrLWVycm9yXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJpc2lubGluZWVycm9yZW5hYmxlZCAmJiBpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICB7eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGVcclxuICAgICNkZWZhdWx0SXRlbUxhYmVsVGVtcGxhdGVcclxuICAgIGxldC1sYWJlbD1cImxhYmVsXCI+XHJcbiAgICB7eyBsYWJlbCB9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
3
  import { FormsModule } from '@angular/forms';
4
+ import { SacTooltipComponent } from '../tooltip/tooltip';
4
5
  import { SacDropdownComponent, SacDropdownOptionDirective } from './dropdown';
5
6
  import { SacListboxComponent } from './listbox';
6
7
  import * as i0 from "@angular/core";
@@ -10,7 +11,8 @@ class SACBootstrap3ListModule {
10
11
  FormsModule,
11
12
  SacDropdownComponent,
12
13
  SacDropdownOptionDirective,
13
- SacListboxComponent], exports: [SacDropdownComponent,
14
+ SacListboxComponent,
15
+ SacTooltipComponent], exports: [SacDropdownComponent,
14
16
  SacDropdownOptionDirective,
15
17
  SacListboxComponent] }); }
16
18
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3ListModule, imports: [CommonModule,
@@ -28,6 +30,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28
30
  SacDropdownComponent,
29
31
  SacDropdownOptionDirective,
30
32
  SacListboxComponent,
33
+ SacTooltipComponent,
31
34
  ],
32
35
  exports: [
33
36
  SacDropdownComponent,
@@ -36,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
36
39
  ],
37
40
  }]
38
41
  }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvbGlzdC9saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFaEQsTUFjYSx1QkFBdUI7K0dBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLFlBWmhDLFlBQVk7WUFDWixXQUFXO1lBQ1gsb0JBQW9CO1lBQ3BCLDBCQUEwQjtZQUMxQixtQkFBbUIsYUFHbkIsb0JBQW9CO1lBQ3BCLDBCQUEwQjtZQUMxQixtQkFBbUI7Z0hBR1YsdUJBQXVCLFlBWmhDLFlBQVk7WUFDWixXQUFXO1lBQ1gsb0JBQW9CO1lBRXBCLG1CQUFtQjs7U0FRVix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFkbkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNEcm9wZG93bkNvbXBvbmVudCwgU2FjRHJvcGRvd25PcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duJztcclxuaW1wb3J0IHsgU2FjTGlzdGJveENvbXBvbmVudCB9IGZyb20gJy4vbGlzdGJveCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgU2FjRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICBTYWNEcm9wZG93bk9wdGlvbkRpcmVjdGl2ZSxcclxuICAgIFNhY0xpc3Rib3hDb21wb25lbnQsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTYWNEcm9wZG93bkNvbXBvbmVudCxcclxuICAgIFNhY0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlLFxyXG4gICAgU2FjTGlzdGJveENvbXBvbmVudCxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU0FDQm9vdHN0cmFwM0xpc3RNb2R1bGUge31cclxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvbGlzdC9saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFaEQsTUFlYSx1QkFBdUI7K0dBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLFlBYmhDLFlBQVk7WUFDWixXQUFXO1lBQ1gsb0JBQW9CO1lBQ3BCLDBCQUEwQjtZQUMxQixtQkFBbUI7WUFDbkIsbUJBQW1CLGFBR25CLG9CQUFvQjtZQUNwQiwwQkFBMEI7WUFDMUIsbUJBQW1CO2dIQUdWLHVCQUF1QixZQWJoQyxZQUFZO1lBQ1osV0FBVztZQUNYLG9CQUFvQjtZQUVwQixtQkFBbUI7O1NBU1YsdUJBQXVCOzRGQUF2Qix1QkFBdUI7a0JBZm5DLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxvQkFBb0I7d0JBQ3BCLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwJztcclxuaW1wb3J0IHsgU2FjRHJvcGRvd25Db21wb25lbnQsIFNhY0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bic7XHJcbmltcG9ydCB7IFNhY0xpc3Rib3hDb21wb25lbnQgfSBmcm9tICcuL2xpc3Rib3gnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFNhY0Ryb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgU2FjRHJvcGRvd25PcHRpb25EaXJlY3RpdmUsXHJcbiAgICBTYWNMaXN0Ym94Q29tcG9uZW50LFxyXG4gICAgU2FjVG9vbHRpcENvbXBvbmVudCxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFNhY0Ryb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgU2FjRHJvcGRvd25PcHRpb25EaXJlY3RpdmUsXHJcbiAgICBTYWNMaXN0Ym94Q29tcG9uZW50LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTQUNCb290c3RyYXAzTGlzdE1vZHVsZSB7fVxyXG4iXX0=
@@ -1,32 +1,73 @@
1
- import { Component, Host, forwardRef, Optional } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';
1
+ import { Component, Host, Optional, forwardRef } from '@angular/core';
2
+ import { FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ // import { SacBaseSelectControl } from '../../common/baseselectcontrol';
3
4
  // import { Validation } from '../../validation';
5
+ import { AsyncPipe, NgClass, NgFor, NgIf, NgTemplateOutlet, } from '@angular/common';
4
6
  import { SacListboxCommon } from '@simpleangularcontrols/sac-common';
7
+ import { SacToControlHeightPipe } from '../layout/tocontrolheight.pipe';
8
+ import { SacToControlWidthCssPipe } from '../layout/tocontrolwidthcss.pipe';
9
+ import { SacToLabelHeightPipe } from '../layout/tolabelheight.pipe';
10
+ import { SacToLabelWidthCssPipe } from '../layout/tolabelwidthcss.pipe';
11
+ import { SacTooltipComponent } from '../tooltip/tooltip';
5
12
  import { SacDropdownOptionDirective } from './dropdown';
6
- import { NgClass, NgIf, NgFor, NgTemplateOutlet, AsyncPipe } from '@angular/common';
7
13
  import * as i0 from "@angular/core";
8
- import * as i1 from "../form/form";
14
+ import * as i1 from "../layout/formlayout.directive";
9
15
  import * as i2 from "@angular/forms";
10
16
  class SacListboxComponent extends SacListboxCommon {
11
- constructor(parent, injector) {
12
- super(parent, injector);
17
+ // #region Constructors
18
+ /**
19
+ * Constructor
20
+ * @param formLayout SacFormLayout to define scoped layout settings
21
+ * @param injector Injector for injecting services
22
+ */
23
+ constructor(formLayout, injector) {
24
+ super(formLayout, injector);
13
25
  }
14
- 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 }); }
15
27
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacListboxComponent, isStandalone: true, selector: "sac-listbox", providers: [
16
- { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacListboxComponent },
17
- { provide: NG_VALIDATORS, multi: true, useExisting: forwardRef(() => SacListboxComponent) }
18
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\" [ngClass]=\"{'has-error': invalid && (dirty || touched)}\">\r\n <label *ngIf=\"disablelabel === false && !isadaptivelabel\" id=\"{{name}}label\" for=\"{{name}}\" class=\"control-label\" [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\" [class.required]=\"isrequired\">{{label}}</label>\r\n <div [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\">\r\n <!-- <div class=\"col-12\" [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\"> -->\r\n <select multiple id=\"{{name}}\" name=\"{{name}}\" class=\"form-control\" [size]=\"rowsize\"\r\n (blur)=\"onTouch()\" (change)=\"getSelectedItems($event.target)\" [disabled]=\"isdisabled\">\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option *ngFor=\"let option of options\" [value]=\"option[optionvalue]\" [disabled]=\"optionenabled !== '' && option[optionenabled] === false\">\r\n\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: option[optionlabel] }\">\r\n </ng-template>\r\n\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup *ngFor=\"let option of options\" [attr.label]=\"option[grouplabel]\">\r\n <option *ngFor=\"let item of option[groupitems]\" [value]=\"item[optionvalue]\" [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel] }\">\r\n </ng-template>\r\n\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div class=\"help-block help-block-error\" *ngIf=\"IsInlineErrorEnabled && invalid && (dirty || touched)\">{{ GetErrorMessage() | async }}</div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: SacDropdownOptionDirective, selector: "option,[sacOption]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
28
+ {
29
+ provide: NG_VALUE_ACCESSOR,
30
+ multi: true,
31
+ useExisting: SacListboxComponent,
32
+ },
33
+ {
34
+ provide: NG_VALIDATORS,
35
+ multi: true,
36
+ useExisting: forwardRef(() => SacListboxComponent),
37
+ },
38
+ ], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\r\n <div [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <select\r\n multiple\r\n id=\"{{ name }}\"\r\n name=\"{{ name }}\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [size]=\"rowsize\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"getSelectedItems($event.target)\"\r\n [disabled]=\"isdisabled\">\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 <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate; context: { label: option[optionlabel] }\"> </ng-template>\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 <option\r\n *ngFor=\"let item of option[groupitems]\"\r\n [value]=\"item[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel] }\"> </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template\r\n #defaultItemLabelTemplate\r\n let-label=\"label\">\r\n {{ label }}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: SacDropdownOptionDirective, selector: "option,[sacOption]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { 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" }] }); }
19
39
  }
20
40
  export { SacListboxComponent };
21
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacListboxComponent, decorators: [{
22
42
  type: Component,
23
43
  args: [{ selector: 'sac-listbox', providers: [
24
- { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: SacListboxComponent },
25
- { provide: NG_VALIDATORS, multi: true, useExisting: forwardRef(() => SacListboxComponent) }
26
- ], standalone: true, imports: [NgClass, NgIf, NgFor, FormsModule, SacDropdownOptionDirective, NgTemplateOutlet, AsyncPipe], template: "<div class=\"form-group\" [ngClass]=\"{'has-error': invalid && (dirty || touched)}\">\r\n <label *ngIf=\"disablelabel === false && !isadaptivelabel\" id=\"{{name}}label\" for=\"{{name}}\" class=\"control-label\" [ngClass]=\"[labelsize !== 12 ? 'col-md-' + labelsize : 'sr-only']\" [class.required]=\"isrequired\">{{label}}</label>\r\n <div [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\">\r\n <!-- <div class=\"col-12\" [ngClass]=\"[disablelabel === false ? 'col-md-' + _inputsize : 'col-md-12']\"> -->\r\n <select multiple id=\"{{name}}\" name=\"{{name}}\" class=\"form-control\" [size]=\"rowsize\"\r\n (blur)=\"onTouch()\" (change)=\"getSelectedItems($event.target)\" [disabled]=\"isdisabled\">\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"groupitems === ''\">\r\n <option *ngFor=\"let option of options\" [value]=\"option[optionvalue]\" [disabled]=\"optionenabled !== '' && option[optionenabled] === false\">\r\n\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: option[optionlabel] }\">\r\n </ng-template>\r\n\r\n </option>\r\n </ng-container>\r\n <ng-container *ngIf=\"groupitems !== ''\">\r\n <optgroup *ngFor=\"let option of options\" [attr.label]=\"option[grouplabel]\">\r\n <option *ngFor=\"let item of option[groupitems]\" [value]=\"item[optionvalue]\" [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate;context:{ label: item[optionlabel] }\">\r\n </ng-template>\r\n\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n <div class=\"help-block help-block-error\" *ngIf=\"IsInlineErrorEnabled && invalid && (dirty || touched)\">{{ GetErrorMessage() | async }}</div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">\r\n {{label}}\r\n</ng-template>\r\n" }]
27
- }], ctorParameters: function () { return [{ type: i1.SacFormDirective, decorators: [{
44
+ {
45
+ provide: NG_VALUE_ACCESSOR,
46
+ multi: true,
47
+ useExisting: SacListboxComponent,
48
+ },
49
+ {
50
+ provide: NG_VALIDATORS,
51
+ multi: true,
52
+ useExisting: forwardRef(() => SacListboxComponent),
53
+ },
54
+ ], standalone: true, imports: [
55
+ NgClass,
56
+ NgIf,
57
+ NgFor,
58
+ FormsModule,
59
+ SacDropdownOptionDirective,
60
+ NgTemplateOutlet,
61
+ AsyncPipe,
62
+ SacToLabelWidthCssPipe,
63
+ SacToControlWidthCssPipe,
64
+ SacToLabelHeightPipe,
65
+ SacToControlHeightPipe,
66
+ SacTooltipComponent,
67
+ ], template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\r\n <div [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <select\r\n multiple\r\n id=\"{{ name }}\"\r\n name=\"{{ name }}\"\r\n class=\"form-control\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [size]=\"rowsize\"\r\n (blur)=\"onTouch()\"\r\n (change)=\"getSelectedItems($event.target)\"\r\n [disabled]=\"isdisabled\">\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 <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate; context: { label: option[optionlabel] }\"> </ng-template>\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 <option\r\n *ngFor=\"let item of option[groupitems]\"\r\n [value]=\"item[optionvalue]\"\r\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\r\n <ng-template *ngTemplateOutlet=\"optionlabeltemplate || defaultItemLabelTemplate; context: { label: item[optionlabel] }\"> </ng-template>\r\n </option>\r\n </optgroup>\r\n </ng-container>\r\n </select>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template\r\n #defaultItemLabelTemplate\r\n let-label=\"label\">\r\n {{ label }}\r\n</ng-template>\r\n" }]
68
+ }], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
28
69
  type: Host
29
70
  }, {
30
71
  type: Optional
31
72
  }] }, { type: i0.Injector }]; } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy9jb250cm9scy9saXN0L2xpc3Rib3gudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvbGlzdC9saXN0Ym94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFZLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQW9CLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRyxpREFBaUQ7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUdwRixNQVdhLG1CQUFvQixTQUFRLGdCQUFnQjtJQUN2RCxZQUFpQyxNQUF3QixFQUFFLFFBQWtCO1FBQzNFLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQzsrR0FIVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwwREFQakI7WUFDUCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRTtZQUM3RSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7U0FDOUYsaURDakJMLHVnRUFpQ0EsNENEZGMsT0FBTyxvRkFBRSxJQUFJLDZGQUFFLEtBQUssa0hBQUUsV0FBVyw0T0FBRSwwQkFBMEIsK0RBQUUsZ0JBQWdCLCtJQUFFLFNBQVM7O1NBRTNGLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQVgvQixTQUFTOytCQUNJLGFBQWEsYUFHWjt3QkFDUCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcscUJBQXFCLEVBQUU7d0JBQzdFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7cUJBQzlGLGNBQ1csSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixFQUFFLFNBQVMsQ0FBQzs7MEJBR3pGLElBQUk7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIGZvcndhcmRSZWYsIEluamVjdG9yLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbENvbnRhaW5lciwgTkdfVkFMSURBVE9SUywgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbi8vIGltcG9ydCB7IFNhY0Jhc2VTZWxlY3RDb250cm9sIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2VzZWxlY3Rjb250cm9sJztcclxuaW1wb3J0IHsgU2FjRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4uL2Zvcm0vZm9ybSc7XHJcbi8vIGltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgU2FjTGlzdGJveENvbW1vbiB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IFNhY0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bic7XHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nRm9yLCBOZ1RlbXBsYXRlT3V0bGV0LCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzYWMtbGlzdGJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzdGJveC5odG1sJyxcclxuICAgIC8vIFZhbHVlIEFjY2VzcyBQcm92aWRlciByZWdpc3RyaWVyZW4sIGRhbWl0IFdlcnQgdmlhIE1vZGVsIGdlc2NocmllYmVuIHVuZCBnZWxlc2VuIHdlcmRlbiBrYW5uXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCBtdWx0aTogdHJ1ZSwgdXNlRXhpc3Rpbmc6IFNhY0xpc3Rib3hDb21wb25lbnQgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIG11bHRpOiB0cnVlLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNMaXN0Ym94Q29tcG9uZW50KSB9XHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ0lmLCBOZ0ZvciwgRm9ybXNNb2R1bGUsIFNhY0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlLCBOZ1RlbXBsYXRlT3V0bGV0LCBBc3luY1BpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNMaXN0Ym94Q29tcG9uZW50IGV4dGVuZHMgU2FjTGlzdGJveENvbW1vbiB7XHJcbiAgY29uc3RydWN0b3IoIEBIb3N0KCkgQE9wdGlvbmFsKCkgcGFyZW50OiBTYWNGb3JtRGlyZWN0aXZlLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKHBhcmVudCwgaW5qZWN0b3IpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnaGFzLWVycm9yJzogaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCl9XCI+XHJcbiAgPGxhYmVsICpuZ0lmPVwiZGlzYWJsZWxhYmVsID09PSBmYWxzZSAmJiAhaXNhZGFwdGl2ZWxhYmVsXCIgaWQ9XCJ7e25hbWV9fWxhYmVsXCIgZm9yPVwie3tuYW1lfX1cIiBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIiBbbmdDbGFzc109XCJbbGFiZWxzaXplICE9PSAxMiA/ICAnY29sLW1kLScgKyBsYWJlbHNpemUgOiAnc3Itb25seSddXCIgW2NsYXNzLnJlcXVpcmVkXT1cImlzcmVxdWlyZWRcIj57e2xhYmVsfX08L2xhYmVsPlxyXG4gIDxkaXYgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAnY29sLW1kLScgKyBfaW5wdXRzaXplIDogJ2NvbC1tZC0xMiddXCI+XHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICdjb2wtbWQtJyArIF9pbnB1dHNpemUgOiAnY29sLW1kLTEyJ11cIj4gLS0+XHJcbiAgICA8c2VsZWN0IG11bHRpcGxlIGlkPVwie3tuYW1lfX1cIiBuYW1lPVwie3tuYW1lfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtzaXplXT1cInJvd3NpemVcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIiAoY2hhbmdlKT1cImdldFNlbGVjdGVkSXRlbXMoJGV2ZW50LnRhcmdldClcIiBbZGlzYWJsZWRdPVwiaXNkaXNhYmxlZFwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cGl0ZW1zID09PSAnJ1wiPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbltvcHRpb252YWx1ZV1cIiBbZGlzYWJsZWRdPVwib3B0aW9uZW5hYmxlZCAhPT0gJycgJiYgb3B0aW9uW29wdGlvbmVuYWJsZWRdID09PSBmYWxzZVwiPlxyXG5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm9wdGlvbmxhYmVsdGVtcGxhdGUgfHwgZGVmYXVsdEl0ZW1MYWJlbFRlbXBsYXRlO2NvbnRleHQ6eyBsYWJlbDogb3B0aW9uW29wdGlvbmxhYmVsXSB9XCI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cGl0ZW1zICE9PSAnJ1wiPlxyXG4gICAgICAgIDxvcHRncm91cCAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbYXR0ci5sYWJlbF09XCJvcHRpb25bZ3JvdXBsYWJlbF1cIj5cclxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uW2dyb3VwaXRlbXNdXCIgW3ZhbHVlXT1cIml0ZW1bb3B0aW9udmFsdWVdXCIgW2Rpc2FibGVkXT1cIm9wdGlvbmVuYWJsZWQgIT09ICcnICYmIGl0ZW1bb3B0aW9uZW5hYmxlZF0gPT09IGZhbHNlXCI+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25sYWJlbHRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtTGFiZWxUZW1wbGF0ZTtjb250ZXh0OnsgbGFiZWw6IGl0ZW1bb3B0aW9ubGFiZWxdIH1cIj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L29wdGdyb3VwPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvc2VsZWN0PlxyXG4gICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2sgaGVscC1ibG9jay1lcnJvclwiICpuZ0lmPVwiSXNJbmxpbmVFcnJvckVuYWJsZWQgJiYgaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj57eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19PC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbUxhYmVsVGVtcGxhdGUgbGV0LWxhYmVsPVwibGFiZWxcIj5cclxuICB7e2xhYmVsfX1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy9jb250cm9scy9saXN0L2xpc3Rib3gudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvbGlzdC9saXN0Ym94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQVksUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLHlFQUF5RTtBQUN6RSxpREFBaUQ7QUFDakQsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUNMLElBQUksRUFDSixnQkFBZ0IsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7QUFFeEQsTUFnQ2EsbUJBQW9CLFNBQVEsZ0JBQWdCO0lBQ3ZELHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFDc0IsVUFBa0MsRUFDdEQsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQWJVLG1CQUFtQjttR0FBbkIsbUJBQW1CLDBEQTVCbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsbUJBQW1CO2FBQ2pDO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDbkQ7U0FDRixpRENuQ0gsd2lJQThGQSw0Q0R4REksT0FBTyxvRkFDUCxJQUFJLDZGQUNKLEtBQUssa0hBQ0wsV0FBVyw0T0FDWCwwQkFBMEIsK0RBQzFCLGdCQUFnQiwrSUFDaEIsU0FBUyx5Q0FDVCxzQkFBc0IsbURBQ3RCLHdCQUF3QixxREFDeEIsb0JBQW9CLGlEQUNwQixzQkFBc0Isd0RBQ3RCLG1CQUFtQjs7U0FHVixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFoQy9CLFNBQVM7K0JBQ0UsYUFBYSxhQUdaO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcscUJBQXFCO3lCQUNqQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7eUJBQ25EO3FCQUNGLGNBQ1csSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixLQUFLO3dCQUNMLFdBQVc7d0JBQ1gsMEJBQTBCO3dCQUMxQixnQkFBZ0I7d0JBQ2hCLFNBQVM7d0JBQ1Qsc0JBQXNCO3dCQUN0Qix3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7cUJBQ3BCOzswQkFXRSxJQUFJOzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0LCBJbmplY3RvciwgT3B0aW9uYWwsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG4vLyBpbXBvcnQgeyBTYWNCYXNlU2VsZWN0Q29udHJvbCB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNlc2VsZWN0Y29udHJvbCc7XHJcbi8vIGltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcclxuaW1wb3J0IHtcclxuICBBc3luY1BpcGUsXHJcbiAgTmdDbGFzcyxcclxuICBOZ0ZvcixcclxuICBOZ0lmLFxyXG4gIE5nVGVtcGxhdGVPdXRsZXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2FjTGlzdGJveENvbW1vbiB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTYWNUb0NvbnRyb2xIZWlnaHRQaXBlIH0gZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbGhlaWdodC5waXBlJztcclxuaW1wb3J0IHsgU2FjVG9Db250cm9sV2lkdGhDc3NQaXBlIH0gZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbHdpZHRoY3NzLnBpcGUnO1xyXG5pbXBvcnQgeyBTYWNUb0xhYmVsSGVpZ2h0UGlwZSB9IGZyb20gJy4uL2xheW91dC90b2xhYmVsaGVpZ2h0LnBpcGUnO1xyXG5pbXBvcnQgeyBTYWNUb0xhYmVsV2lkdGhDc3NQaXBlIH0gZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWx3aWR0aGNzcy5waXBlJztcclxuaW1wb3J0IHsgU2FjVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFNhY0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy1saXN0Ym94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdGJveC5odG1sJyxcclxuICAvLyBWYWx1ZSBBY2Nlc3MgUHJvdmlkZXIgcmVnaXN0cmllcmVuLCBkYW1pdCBXZXJ0IHZpYSBNb2RlbCBnZXNjaHJpZWJlbiB1bmQgZ2VsZXNlbiB3ZXJkZW4ga2FublxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNMaXN0Ym94Q29tcG9uZW50LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY0xpc3Rib3hDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE5nSWYsXHJcbiAgICBOZ0ZvcixcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgU2FjRHJvcGRvd25PcHRpb25EaXJlY3RpdmUsXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgQXN5bmNQaXBlLFxyXG4gICAgU2FjVG9MYWJlbFdpZHRoQ3NzUGlwZSxcclxuICAgIFNhY1RvQ29udHJvbFdpZHRoQ3NzUGlwZSxcclxuICAgIFNhY1RvTGFiZWxIZWlnaHRQaXBlLFxyXG4gICAgU2FjVG9Db250cm9sSGVpZ2h0UGlwZSxcclxuICAgIFNhY1Rvb2x0aXBDb21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY0xpc3Rib3hDb21wb25lbnQgZXh0ZW5kcyBTYWNMaXN0Ym94Q29tbW9uIHtcclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG59XHJcbiIsIjxkaXZcclxuICAgIGNsYXNzPVwicm93IGZvcm0tZ3JvdXBcIlxyXG4gICAgW2NsYXNzLmhhcy1lcnJvcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICBbbmdDbGFzc109XCJjb21wb25lbnRIZWlnaHQgfCB0b0xhYmVsSGVpZ2h0XCI+XHJcbiAgICA8bGFiZWxcclxuICAgICAgICAqbmdJZj1cImRpc2FibGVsYWJlbCA9PT0gZmFsc2UgJiYgIWlzQWRhcHRpdmVMYWJlbFwiXHJcbiAgICAgICAgaWQ9XCJ7eyBuYW1lIH19bGFiZWxcIlxyXG4gICAgICAgIGZvcj1cInt7IG5hbWUgfX1cIlxyXG4gICAgICAgIGNsYXNzPVwiY29sLXhzLTEyIGNvbnRyb2wtbGFiZWxcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gKHRoaXMubGFiZWxTaXplcyB8IHRvTGFiZWxXaWR0aENzcykgOiAnc3Itb25seSddXCJcclxuICAgICAgICBbY2xhc3MucmVxdWlyZWRdPVwiaXNyZXF1aXJlZFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgIDxzYWMtdG9vbHRpcFxyXG4gICAgICAgICAgICAqbmdJZj1cImhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnICYmIGhlbHB0ZXh0XCJcclxuICAgICAgICAgICAgW3Rvb2x0aXB0ZXh0XT1cImhlbHB0ZXh0XCJcclxuICAgICAgICAgICAgW2lubGluZW1vZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cIkhlbHB0ZXh0VG9vbHRpcEljb25cIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4XCI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3NhYy10b29sdGlwPlxyXG4gICAgPC9sYWJlbD5cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImNvbC14cy0xMlwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAodGhpcy5sYWJlbFNpemVzIHwgdG9Db250cm9sV2lkdGhDc3MpIDogJyddXCI+XHJcbiAgICAgICAgPGRpdiBbc3R5bGUuZGlzcGxheV09XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dCAmJiBkaXNhYmxlbGFiZWwgPyAnZmxleCcgOiBudWxsXCI+XHJcbiAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG11bHRpcGxlXHJcbiAgICAgICAgICAgICAgICBpZD1cInt7IG5hbWUgfX1cIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInt7IG5hbWUgfX1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2NvbXBvbmVudEhlaWdodCB8IHRvQ29udHJvbEhlaWdodF1cIlxyXG4gICAgICAgICAgICAgICAgW3NpemVdPVwicm93c2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJnZXRTZWxlY3RlZEl0ZW1zKCRldmVudC50YXJnZXQpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc2Rpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBpdGVtcyA9PT0gJydcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25bb3B0aW9udmFsdWVdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbmVuYWJsZWQgIT09ICcnICYmIG9wdGlvbltvcHRpb25lbmFibGVkXSA9PT0gZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwib3B0aW9ubGFiZWx0ZW1wbGF0ZSB8fCBkZWZhdWx0SXRlbUxhYmVsVGVtcGxhdGU7IGNvbnRleHQ6IHsgbGFiZWw6IG9wdGlvbltvcHRpb25sYWJlbF0gfVwiPiA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBpdGVtcyAhPT0gJydcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0Z3JvdXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIubGFiZWxdPVwib3B0aW9uW2dyb3VwbGFiZWxdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbltncm91cGl0ZW1zXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbVtvcHRpb252YWx1ZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbmVuYWJsZWQgIT09ICcnICYmIGl0ZW1bb3B0aW9uZW5hYmxlZF0gPT09IGZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25sYWJlbHRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtTGFiZWxUZW1wbGF0ZTsgY29udGV4dDogeyBsYWJlbDogaXRlbVtvcHRpb25sYWJlbF0gfVwiPiA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGdyb3VwPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dCAmJiBkaXNhYmxlbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDVweFwiPlxyXG4gICAgICAgICAgICAgICAgPHNhYy10b29sdGlwXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXB0ZXh0XT1cImhlbHB0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5saW5lbW9kZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIkhlbHB0ZXh0VG9vbHRpcEljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA1cHg7IG1hcmdpbi1yaWdodDogNXB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zYWMtdG9vbHRpcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndGV4dCcgJiYgaGVscHRleHRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImhlbHAtYmxvY2tcIj5cclxuICAgICAgICAgICAge3sgaGVscHRleHQgfX1cclxuICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrIGhlbHAtYmxvY2stZXJyb3JcIlxyXG4gICAgICAgICAgICAqbmdJZj1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgIHt7IEdldEVycm9yTWVzc2FnZSgpIHwgYXN5bmMgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZVxyXG4gICAgI2RlZmF1bHRJdGVtTGFiZWxUZW1wbGF0ZVxyXG4gICAgbGV0LWxhYmVsPVwibGFiZWxcIj5cclxuICAgIHt7IGxhYmVsIH19XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==