@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
@@ -1,6 +1,6 @@
1
- import { SacTooltipCommon } from '@simpleangularcontrols/sac-common';
2
- import { Component } from '@angular/core';
3
1
  import { NgIf } from '@angular/common';
2
+ import { Component } from '@angular/core';
3
+ import { SacTooltipCommon } from '@simpleangularcontrols/sac-common';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
6
  * Tooltip Komponente
@@ -22,6 +22,7 @@ import * as i0 from "@angular/core";
22
22
  *
23
23
  */
24
24
  class SacTooltipComponent extends SacTooltipCommon {
25
+ // #region Constructors
25
26
  /**
26
27
  * Konstrukor
27
28
  * @param parent SacFormular Instanz
@@ -30,12 +31,21 @@ class SacTooltipComponent extends SacTooltipCommon {
30
31
  constructor(cdRef, ref) {
31
32
  super(cdRef, ref);
32
33
  }
34
+ // #endregion Constructors
35
+ // #region Protected Methods
36
+ /**
37
+ * Padding for Tooltip
38
+ * @returns Always 0. BS3 not require Padding
39
+ */
40
+ getTooltipOffset() {
41
+ return 0;
42
+ }
33
43
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacTooltipComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacTooltipComponent, isStandalone: true, selector: "sac-tooltip", usesInheritance: true, ngImport: i0, template: "<div [style.display]=\"inlinemode ? 'inline' : null\">\r\n <div #container (mouseenter)=\"ShowTooltip()\" (mouseleave)=\"HideTooltip()\" [style.display]=\"inlinemode ? 'inline' : null\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"IsTooltipVisible()\" [style.visibility]=\"IsTooltipContentVisible ? 'visible' : 'hidden'\" #tooltip class=\"tooltip in\" style=\"display: block;\"\r\n [style.left.px]=\"LeftPos\" [style.top.px]=\"TopPos\"\r\n [class.top]=\"GetTooltipPosition() === TooltipPosition.top\" [class.left]=\"GetTooltipPosition() === TooltipPosition.left\"\r\n [class.right]=\"GetTooltipPosition() === TooltipPosition.right\" [class.bottom]=\"GetTooltipPosition() === TooltipPosition.bottom\">\r\n <div class=\"tooltip-arrow\" style=\"top: 50%;\"></div>\r\n <div class=\"tooltip-inner\">\r\n {{tooltiptext}}\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacTooltipComponent, isStandalone: true, selector: "sac-tooltip", usesInheritance: true, ngImport: i0, template: "<div [style.display]=\"inlinemode ? 'inline' : null\">\r\n <div\r\n #container\r\n (mouseenter)=\"ShowTooltip()\"\r\n (mouseleave)=\"HideTooltip()\"\r\n [style.display]=\"inlinemode ? 'inline' : null\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div\r\n *ngIf=\"IsTooltipVisible()\"\r\n #tooltip>\r\n <div\r\n [style.visibility]=\"IsTooltipContentVisible ? 'visible' : 'hidden'\"\r\n class=\"tooltip in\"\r\n style=\"display: block\"\r\n [style.left.px]=\"LeftPos\"\r\n [style.top.px]=\"TopPos\"\r\n [class.top]=\"GetTooltipPosition() === TooltipPosition.top\"\r\n [class.left]=\"GetTooltipPosition() === TooltipPosition.left\"\r\n [class.right]=\"GetTooltipPosition() === TooltipPosition.right\"\r\n [class.bottom]=\"GetTooltipPosition() === TooltipPosition.bottom\">\r\n <div class=\"tooltip-arrow\"></div>\r\n <div class=\"tooltip-inner\">{{ tooltiptext }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
35
45
  }
36
46
  export { SacTooltipComponent };
37
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacTooltipComponent, decorators: [{
38
48
  type: Component,
39
- args: [{ selector: 'sac-tooltip', standalone: true, imports: [NgIf], template: "<div [style.display]=\"inlinemode ? 'inline' : null\">\r\n <div #container (mouseenter)=\"ShowTooltip()\" (mouseleave)=\"HideTooltip()\" [style.display]=\"inlinemode ? 'inline' : null\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"IsTooltipVisible()\" [style.visibility]=\"IsTooltipContentVisible ? 'visible' : 'hidden'\" #tooltip class=\"tooltip in\" style=\"display: block;\"\r\n [style.left.px]=\"LeftPos\" [style.top.px]=\"TopPos\"\r\n [class.top]=\"GetTooltipPosition() === TooltipPosition.top\" [class.left]=\"GetTooltipPosition() === TooltipPosition.left\"\r\n [class.right]=\"GetTooltipPosition() === TooltipPosition.right\" [class.bottom]=\"GetTooltipPosition() === TooltipPosition.bottom\">\r\n <div class=\"tooltip-arrow\" style=\"top: 50%;\"></div>\r\n <div class=\"tooltip-inner\">\r\n {{tooltiptext}}\r\n </div>\r\n </div>\r\n</div>\r\n" }]
49
+ args: [{ selector: 'sac-tooltip', standalone: true, imports: [NgIf], template: "<div [style.display]=\"inlinemode ? 'inline' : null\">\r\n <div\r\n #container\r\n (mouseenter)=\"ShowTooltip()\"\r\n (mouseleave)=\"HideTooltip()\"\r\n [style.display]=\"inlinemode ? 'inline' : null\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div\r\n *ngIf=\"IsTooltipVisible()\"\r\n #tooltip>\r\n <div\r\n [style.visibility]=\"IsTooltipContentVisible ? 'visible' : 'hidden'\"\r\n class=\"tooltip in\"\r\n style=\"display: block\"\r\n [style.left.px]=\"LeftPos\"\r\n [style.top.px]=\"TopPos\"\r\n [class.top]=\"GetTooltipPosition() === TooltipPosition.top\"\r\n [class.left]=\"GetTooltipPosition() === TooltipPosition.left\"\r\n [class.right]=\"GetTooltipPosition() === TooltipPosition.right\"\r\n [class.bottom]=\"GetTooltipPosition() === TooltipPosition.bottom\">\r\n <div class=\"tooltip-arrow\"></div>\r\n <div class=\"tooltip-inner\">{{ tooltiptext }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
40
50
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy9jb250cm9scy90b29sdGlwL3Rvb2x0aXAudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdG9vbHRpcC90b29sdGlwLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFNYSxtQkFBb0IsU0FBUSxnQkFBZ0I7SUFFdkQ7Ozs7T0FJRztJQUNILFlBQVksS0FBd0IsRUFBRSxHQUFlO1FBQ25ELEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQzsrR0FUVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4RkM3QmhDLHk0QkFjQSw0Q0RhYyxJQUFJOztTQUVMLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGFBQWEsY0FFWCxJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNUb29sdGlwQ29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbi8qKlxyXG4gKiBUb29sdGlwIEtvbXBvbmVudGVcclxuICpcclxuICogQGV4YW1wbGUgVG9vbFRpcCBDb250cm9sXHJcbiAqXHJcbiAqICA8bmdUb29sdGlwIHRvb2x0aXB0ZXh0PVwiTWVpbiBUb29sdGlwXCIgW2lubGluZW1vZGVdPVwidHJ1ZVwiPlxyXG4gKiAgICA8aSBjbGFzcz1cInRvb2x0aXBcIj48L2k+XHJcbiAqICA8L25nVG9vbHRpcD5cclxuICpcclxuICogQGV4YW1wbGUgVG9vbFRpcCBDb250cm9sIGltIElubGluZSBNb2RlLiBTdHlsZSBhdWYgSWNvbiBrYW5uIGF1Y2ggaW4gS2xhc3NlIGF1c2dlbGFnZXJ0IHdlcmRlbi5cclxuICpcclxuICogIDxkaXYgY2xhc3M9XCJmb3JtLWlubGluZVwiPlxyXG4gKiAgICA8bmdJbnB1dFNlYXJjaCBpY29ubmFtZT1cIlN1Y2hlblwiPjwvbmdJbnB1dFNlYXJjaD5cclxuICogICAgPG5nVG9vbHRpcCB0b29sdGlwdGV4dD1cIk1laW4gVG9vbHRpcFwiIFtpbmxpbmVtb2RlXT1cInRydWVcIj5cclxuICogICAgICA8aSBjbGFzcz1cInRvb2x0aXBcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogMDsgdG9wOiAzcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAxMHB4O1wiPjwvaT5cclxuICogICAgPC9uZ1Rvb2x0aXA+XHJcbiAqICA8L2Rpdj5cclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzYWMtdG9vbHRpcCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5odG1sJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdJZl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNUb29sdGlwQ29tcG9uZW50IGV4dGVuZHMgU2FjVG9vbHRpcENvbW1vbiB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrb3JcclxuICAgKiBAcGFyYW0gcGFyZW50IFNhY0Zvcm11bGFyIEluc3RhbnpcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgQ29tcG9uZW50IEluamVjdG9yXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKGNkUmVmLCByZWYpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtzdHlsZS5kaXNwbGF5XT1cImlubGluZW1vZGUgPyAnaW5saW5lJyA6IG51bGxcIj5cclxuICA8ZGl2ICNjb250YWluZXIgKG1vdXNlZW50ZXIpPVwiU2hvd1Rvb2x0aXAoKVwiIChtb3VzZWxlYXZlKT1cIkhpZGVUb29sdGlwKClcIiBbc3R5bGUuZGlzcGxheV09XCJpbmxpbmVtb2RlID8gJ2lubGluZScgOiBudWxsXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cIklzVG9vbHRpcFZpc2libGUoKVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cIklzVG9vbHRpcENvbnRlbnRWaXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIiAjdG9vbHRpcCBjbGFzcz1cInRvb2x0aXAgaW5cIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiXHJcbiAgICAgICBbc3R5bGUubGVmdC5weF09XCJMZWZ0UG9zXCIgW3N0eWxlLnRvcC5weF09XCJUb3BQb3NcIlxyXG4gICAgICAgW2NsYXNzLnRvcF09XCJHZXRUb29sdGlwUG9zaXRpb24oKSA9PT0gVG9vbHRpcFBvc2l0aW9uLnRvcFwiIFtjbGFzcy5sZWZ0XT1cIkdldFRvb2x0aXBQb3NpdGlvbigpID09PSBUb29sdGlwUG9zaXRpb24ubGVmdFwiXHJcbiAgICAgICBbY2xhc3MucmlnaHRdPVwiR2V0VG9vbHRpcFBvc2l0aW9uKCkgPT09IFRvb2x0aXBQb3NpdGlvbi5yaWdodFwiIFtjbGFzcy5ib3R0b21dPVwiR2V0VG9vbHRpcFBvc2l0aW9uKCkgPT09IFRvb2x0aXBQb3NpdGlvbi5ib3R0b21cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWFycm93XCIgc3R5bGU9XCJ0b3A6IDUwJTtcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWlubmVyXCI+XHJcbiAgICAgIHt7dG9vbHRpcHRleHR9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy9jb250cm9scy90b29sdGlwL3Rvb2x0aXAudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdG9vbHRpcC90b29sdGlwLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBcUIsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUVyRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFNYSxtQkFBb0IsU0FBUSxnQkFBZ0I7SUFDckQsdUJBQXVCO0lBRXZCOzs7O09BSUc7SUFDSCxZQUFZLEtBQXdCLEVBQUUsR0FBZTtRQUNqRCxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCwwQkFBMEI7SUFFMUIsNEJBQTRCO0lBRTVCOzs7T0FHRztJQUNPLGdCQUFnQjtRQUN0QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7K0dBdEJRLG1CQUFtQjttR0FBbkIsbUJBQW1CLDhGQzdCaEMsOGtDQTBCQSw0Q0RDYyxJQUFJOztTQUVMLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGFBQWEsY0FFWCxJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYWNUb29sdGlwQ29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcclxuXHJcbi8qKlxyXG4gKiBUb29sdGlwIEtvbXBvbmVudGVcclxuICpcclxuICogQGV4YW1wbGUgVG9vbFRpcCBDb250cm9sXHJcbiAqXHJcbiAqICA8bmdUb29sdGlwIHRvb2x0aXB0ZXh0PVwiTWVpbiBUb29sdGlwXCIgW2lubGluZW1vZGVdPVwidHJ1ZVwiPlxyXG4gKiAgICA8aSBjbGFzcz1cInRvb2x0aXBcIj48L2k+XHJcbiAqICA8L25nVG9vbHRpcD5cclxuICpcclxuICogQGV4YW1wbGUgVG9vbFRpcCBDb250cm9sIGltIElubGluZSBNb2RlLiBTdHlsZSBhdWYgSWNvbiBrYW5uIGF1Y2ggaW4gS2xhc3NlIGF1c2dlbGFnZXJ0IHdlcmRlbi5cclxuICpcclxuICogIDxkaXYgY2xhc3M9XCJmb3JtLWlubGluZVwiPlxyXG4gKiAgICA8bmdJbnB1dFNlYXJjaCBpY29ubmFtZT1cIlN1Y2hlblwiPjwvbmdJbnB1dFNlYXJjaD5cclxuICogICAgPG5nVG9vbHRpcCB0b29sdGlwdGV4dD1cIk1laW4gVG9vbHRpcFwiIFtpbmxpbmVtb2RlXT1cInRydWVcIj5cclxuICogICAgICA8aSBjbGFzcz1cInRvb2x0aXBcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogMDsgdG9wOiAzcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAxMHB4O1wiPjwvaT5cclxuICogICAgPC9uZ1Rvb2x0aXA+XHJcbiAqICA8L2Rpdj5cclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzYWMtdG9vbHRpcCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5odG1sJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdJZl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNUb29sdGlwQ29tcG9uZW50IGV4dGVuZHMgU2FjVG9vbHRpcENvbW1vbiB7XHJcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogS29uc3RydWtvclxyXG4gICAgICogQHBhcmFtIHBhcmVudCBTYWNGb3JtdWxhciBJbnN0YW56XHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgQ29tcG9uZW50IEluamVjdG9yXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgc3VwZXIoY2RSZWYsIHJlZik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYWRkaW5nIGZvciBUb29sdGlwXHJcbiAgICAgKiBAcmV0dXJucyBBbHdheXMgMC4gQlMzIG5vdCByZXF1aXJlIFBhZGRpbmdcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldFRvb2x0aXBPZmZzZXQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcbn1cclxuIiwiPGRpdiBbc3R5bGUuZGlzcGxheV09XCJpbmxpbmVtb2RlID8gJ2lubGluZScgOiBudWxsXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgI2NvbnRhaW5lclxyXG4gICAgICAgIChtb3VzZWVudGVyKT1cIlNob3dUb29sdGlwKClcIlxyXG4gICAgICAgIChtb3VzZWxlYXZlKT1cIkhpZGVUb29sdGlwKClcIlxyXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlubGluZW1vZGUgPyAnaW5saW5lJyA6IG51bGxcIj5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cIklzVG9vbHRpcFZpc2libGUoKVwiXHJcbiAgICAgICAgI3Rvb2x0aXA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJJc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwIGluXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBibG9ja1wiXHJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cIkxlZnRQb3NcIlxyXG4gICAgICAgICAgICBbc3R5bGUudG9wLnB4XT1cIlRvcFBvc1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy50b3BdPVwiR2V0VG9vbHRpcFBvc2l0aW9uKCkgPT09IFRvb2x0aXBQb3NpdGlvbi50b3BcIlxyXG4gICAgICAgICAgICBbY2xhc3MubGVmdF09XCJHZXRUb29sdGlwUG9zaXRpb24oKSA9PT0gVG9vbHRpcFBvc2l0aW9uLmxlZnRcIlxyXG4gICAgICAgICAgICBbY2xhc3MucmlnaHRdPVwiR2V0VG9vbHRpcFBvc2l0aW9uKCkgPT09IFRvb2x0aXBQb3NpdGlvbi5yaWdodFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5ib3R0b21dPVwiR2V0VG9vbHRpcFBvc2l0aW9uKCkgPT09IFRvb2x0aXBQb3NpdGlvbi5ib3R0b21cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtYXJyb3dcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtaW5uZXJcIj57eyB0b29sdGlwdGV4dCB9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -4,19 +4,15 @@ import { SacTooltipComponent } from './tooltip';
4
4
  import * as i0 from "@angular/core";
5
5
  class SACBootstrap3TooltipModule {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TooltipModule, imports: [CommonModule, CommonModule,
8
- SacTooltipComponent], exports: [SacTooltipComponent] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TooltipModule, imports: [CommonModule, CommonModule] }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TooltipModule, imports: [CommonModule, SacTooltipComponent], exports: [SacTooltipComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TooltipModule, imports: [CommonModule] }); }
10
9
  }
11
10
  export { SACBootstrap3TooltipModule };
12
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TooltipModule, decorators: [{
13
12
  type: NgModule,
14
13
  args: [{
15
- imports: [
16
- CommonModule, CommonModule,
17
- SacTooltipComponent
18
- ],
19
- exports: [SacTooltipComponent]
14
+ imports: [CommonModule, SacTooltipComponent],
15
+ exports: [SacTooltipComponent],
20
16
  }]
21
17
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRWhELE1BT2EsMEJBQTBCOytHQUExQiwwQkFBMEI7Z0hBQTFCLDBCQUEwQixZQUwvQixZQUFZLEVBQUUsWUFBWTtZQUMxQixtQkFBbUIsYUFFYixtQkFBbUI7Z0hBRXBCLDBCQUEwQixZQUwvQixZQUFZLEVBQUUsWUFBWTs7U0FLckIsMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBUHRDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVksRUFBRSxZQUFZO3dCQUMxQixtQkFBbUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNhY1Rvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL3Rvb2x0aXAnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBTYWNUb29sdGlwQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1NhY1Rvb2x0aXBDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTQUNCb290c3RyYXAzVG9vbHRpcE1vZHVsZSB7IH1cclxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRWhELE1BSWEsMEJBQTBCOytHQUExQiwwQkFBMEI7Z0hBQTFCLDBCQUEwQixZQUgzQixZQUFZLEVBQUUsbUJBQW1CLGFBQ2pDLG1CQUFtQjtnSEFFbEIsMEJBQTBCLFlBSDNCLFlBQVk7O1NBR1gsMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBSnRDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDO29CQUM1QyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYWNUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2FjVG9vbHRpcENvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW1NhY1Rvb2x0aXBDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU0FDQm9vdHN0cmFwM1Rvb2x0aXBNb2R1bGUge31cclxuIl19
@@ -1,21 +1,77 @@
1
- import { Component } from '@angular/core';
2
- import { SacTreeViewCommon } from '@simpleangularcontrols/sac-common';
3
- import { SacTreeViewChildComponent } from './treeviewchild';
4
- import { NgIf, NgFor, NgClass, NgTemplateOutlet } from '@angular/common';
1
+ import { SacContextmenuComponent } from '../contextmenu';
2
+ import { SacContextmenuItemButtonComponent } from '../contextmenu/contextmenuitembutton';
3
+ import { SacContextmenuItemSplitterComponent } from '../contextmenu/contextmenuitemsplitter';
4
+ import { SacToControlHeightPipe } from '../layout/tocontrolheight.pipe';
5
+ import { SacToControlWidthCssPipe } from '../layout/tocontrolwidthcss.pipe';
6
+ import { SacToLabelHeightPipe } from '../layout/tolabelheight.pipe';
7
+ import { SacToLabelWidthCssPipe } from '../layout/tolabelwidthcss.pipe';
8
+ import { SacTooltipComponent } from '../tooltip/tooltip';
9
+ import { AsyncPipe, JsonPipe, NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
10
+ import { Component, Host, Optional, forwardRef } from '@angular/core';
11
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
12
+ import { SacTreeviewCommon } from '@simpleangularcontrols/sac-common';
5
13
  import * as i0 from "@angular/core";
6
- class SacTreeViewComponent extends SacTreeViewCommon {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacTreeViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacTreeViewComponent, isStandalone: true, selector: "sac-treeview", usesInheritance: true, ngImport: i0, template: "<div class=\"structure panel panel-default\" icon=\"Structure\">\r\n <div class=\"panel-heading\">\r\n <p class=\"panel-title\"><span>{{ name }}</span></p>\r\n </div>\r\n <div class=\"panel-body\">\r\n <div class=\"right\">\r\n <div\r\n class=\"form-submit form-inline\"\r\n style=\"text-align: right; height: 24px\"\r\n >\r\n <a class=\"btn-inline\"\r\n ><i class=\"icon icon-base-expand\" (click)=\"collapseAllNode(false)\"></i\r\n ></a>\r\n <a class=\"btn-inline\"\r\n ><i\r\n class=\"icon icon-base-collapse\"\r\n (click)=\"collapseAllNode(true)\"\r\n ></i\r\n ></a>\r\n </div>\r\n </div>\r\n <div\r\n [id]=\"name\"\r\n class=\"structure-tree single-root jstree jstree-1 jstree-default\"\r\n >\r\n <ul\r\n class=\"jstree-container-ul jstree-children jstree-no-dots jstree-striped jstree-wholerow-ul\"\r\n *ngIf=\"nodes && nodes.length\"\r\n >\r\n <li\r\n *ngFor=\"let node of nodes; let last = last\"\r\n class=\"jstree-node\"\r\n [ngClass]=\"{\r\n 'jstree-open': !node[collapseAttr] && node[childrenAttr] && node[childrenAttr].length,\r\n 'jstree-closed': node[collapseAttr] && node[childrenAttr] && node[childrenAttr].length,\r\n 'jstree-leaf': !node[childrenAttr].length,\r\n 'jstree-last': last\r\n }\"\r\n [id]=\"node[idAttr]\"\r\n >\r\n <div\r\n unselectable=\"on\"\r\n role=\"presentation\"\r\n class=\"jstree-wholerow\"\r\n (mouseover)=\"node.hover=true\"\r\n (mouseout)=\"node.hover=false\"\r\n [ngClass]=\"{'jstree-wholerow-clicked': node === selectedNode, 'jstree-wholerow-hovered': node.hover}\"\r\n >\r\n &nbsp;\r\n </div>\r\n\r\n <i\r\n class=\"jstree-icon jstree-ocl\"\r\n role=\"presentation\"\r\n (click)=\"onCollapseClick(node)\"\r\n (mouseover)=\"node.hover=true\"\r\n (mouseout)=\"node.hover=false\"\r\n ></i>\r\n\r\n <a\r\n class=\"jstree-anchor\"\r\n (click)=\"onClick(node)\"\r\n [ngClass]=\"{'jstree-clicked': node === selectedNode, 'jstreehovered': node.hover}\"\r\n (mouseover)=\"node.hover=true\"\r\n (mouseout)=\"node.hover=false\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"treefileicon; context { item: node }\"\r\n ;\r\n content\r\n ></ng-container>\r\n\r\n <span>{{node[textAttr]}}</span>\r\n </a>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"template; context { item: node }\"\r\n ;\r\n content\r\n ></ng-container>\r\n\r\n <sac-treeviewchild\r\n *ngIf=\"node[childrenAttr] && node[childrenAttr].length\"\r\n [fileicontemplate]=\"fileicontemplate\"\r\n [template]=\"template\"\r\n [collapseall]=\"collapseall\"\r\n [ngClass]=\"(node[collapseAttr]===true)?'collapse':'show'\"\r\n [data]=\"node[childrenAttr]\"\r\n [idAttr]=\"idAttr\"\r\n [parentAttr]=\"parentAttr\"\r\n [textAttr]=\"textAttr\"\r\n [prepareData]=\"false\"\r\n (onselecteditem)=\"sendMsgToParent($event)\"\r\n [(selectedid)]=\"selectedid\"\r\n >\r\n </sac-treeviewchild>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SacTreeViewChildComponent, selector: "sac-treeviewchild" }] }); }
14
+ import * as i1 from "../layout/formlayout.directive";
15
+ /**
16
+ * Treeview Compomnent
17
+ */
18
+ class SacTreeviewComponent extends SacTreeviewCommon {
19
+ // #region Constructors
20
+ /**
21
+ * Constructor
22
+ * @param formLayout SacFormLayout to define scoped layout settings
23
+ * @param injector Component Injector
24
+ */
25
+ constructor(formLayout, injector) {
26
+ super(formLayout, injector);
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacTreeviewComponent, deps: [{ token: i1.SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacTreeviewComponent, isStandalone: true, selector: "sac-treeview", providers: [
30
+ {
31
+ provide: NG_VALUE_ACCESSOR,
32
+ multi: true,
33
+ useExisting: SacTreeviewComponent,
34
+ },
35
+ {
36
+ provide: NG_VALIDATORS,
37
+ useExisting: forwardRef(() => SacTreeviewComponent),
38
+ multi: true,
39
+ },
40
+ ], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"row mb-3\"\r\n [class.g-0]=\"disablelabel\"\r\n [class.has-error]=\"invalid && (dirty || touched)\">\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 [class.has-error]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n <div [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.width.%]=\"helptextmode === 'tooltip' && helptext && disablelabel ? '100' : null\">\r\n <table\r\n class=\"table table-hover table-condensed\"\r\n id=\"{{ name }}\"\r\n style=\"table-layout: fixed\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [class.border]=\"invalid && (dirty || touched)\"\r\n [class.border-danger]=\"invalid && (dirty || touched)\">\r\n <tbody>\r\n <ng-container *ngFor=\"let node of data\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{ node: node, deep: 0 }\">\r\n </ng-template>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"help-block\">\r\n {{ GetErrorMessage() | async }}\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 </div>\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 </div>\r\n</div>\r\n<ng-template\r\n #treeItem\r\n let-node=\"node\"\r\n let-deep=\"deep\">\r\n <tr [class.active]=\"isSelectedState(node)\">\r\n <td>\r\n <div\r\n class=\"py-1 px-2 d-flex align-items-center\"\r\n style=\"display: flex; flex-direction: row; cursor: pointer; align-items: center\"\r\n (mouseenter)=\"setHoverState(node, true)\"\r\n (mouseleave)=\"setHoverState(node, false)\">\r\n <div\r\n style=\"margin-right: 15px\"\r\n *ngFor=\"let i of count(deep)\">\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n *ngIf=\"expandedstate === 'true' || expandedstate === true\"\r\n style=\"margin-right: 15px\"\r\n [ngClass]=\"!hasChildren(node) ? iconFolderEmpty : !isExpandedState(node) ? iconFolderCollabsed : isExpandedState(node) ? iconFolderOpen : ''\">\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n *ngIf=\"attricon && getStringField(node, attricon)\"\r\n style=\"margin-right: 15px\"\r\n [ngClass]=\"getStringField(node, attricon)\">\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n style=\"padding-top: 7px; padding-bottom: 7px; flex-grow: 1\"\r\n [style.max-width.%]=\"enableellipsis ? '100' : null\"\r\n [style.overflow]=\"enableellipsis ? 'hidden' : null\"\r\n [style.text-overflow]=\"enableellipsis ? 'ellipsis' : null\"\r\n [style.white-space]=\"enableellipsis ? 'nowrap' : null\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"templatelabel || defaultTemplateLabel\"\r\n [ngTemplateOutletContext]=\"{ node: node, label: getStringField(node, attrlabel) }\">\r\n </ng-template>\r\n </div>\r\n\r\n <div\r\n (click)=\"setSelectedState(node)\"\r\n style=\"flex-shrink: 0\"\r\n *ngIf=\"!isDisabledState(node) && (showactionalways || isSelectedState(node) || isHoverState(node))\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"templateaction || defaultTemplateAction\"\r\n [ngTemplateOutletContext]=\"{ node: node, actionhandler: onActionClicked.bind(this) }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"isExpandedState(node)\">\r\n <ng-template\r\n *ngFor=\"let child of getChildren(node)\"\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{ node: child, deep: deep + 1 }\">\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateLabel\r\n let-label=\"label\"\r\n let-node=\"node\">\r\n <span [title]=\"label\">\r\n {{ label }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateAction\r\n let-node=\"node\"\r\n let-actionhandler=\"actionhandler\">\r\n <a\r\n class=\"btn btn-link text-secondary\"\r\n (click)=\"actionhandler({ action: 'default', node: node })\">\r\n <i [class]=\"iconAction\"></i>\r\n </a>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: SacToLabelWidthCssPipe, name: "toLabelWidthCss" }, { kind: "component", type: SacTooltipComponent, selector: "sac-tooltip" }, { kind: "pipe", type: SacToControlWidthCssPipe, name: "toControlWidthCss" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
9
41
  }
10
- export { SacTreeViewComponent };
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacTreeViewComponent, decorators: [{
42
+ export { SacTreeviewComponent };
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacTreeviewComponent, decorators: [{
12
44
  type: Component,
13
- args: [{ selector: 'sac-treeview', standalone: true, imports: [
45
+ args: [{ selector: 'sac-treeview', providers: [
46
+ {
47
+ provide: NG_VALUE_ACCESSOR,
48
+ multi: true,
49
+ useExisting: SacTreeviewComponent,
50
+ },
51
+ {
52
+ provide: NG_VALIDATORS,
53
+ useExisting: forwardRef(() => SacTreeviewComponent),
54
+ multi: true,
55
+ },
56
+ ], standalone: true, imports: [
14
57
  NgIf,
58
+ JsonPipe,
15
59
  NgFor,
16
- NgClass,
17
60
  NgTemplateOutlet,
18
- SacTreeViewChildComponent,
19
- ], template: "<div class=\"structure panel panel-default\" icon=\"Structure\">\r\n <div class=\"panel-heading\">\r\n <p class=\"panel-title\"><span>{{ name }}</span></p>\r\n </div>\r\n <div class=\"panel-body\">\r\n <div class=\"right\">\r\n <div\r\n class=\"form-submit form-inline\"\r\n style=\"text-align: right; height: 24px\"\r\n >\r\n <a class=\"btn-inline\"\r\n ><i class=\"icon icon-base-expand\" (click)=\"collapseAllNode(false)\"></i\r\n ></a>\r\n <a class=\"btn-inline\"\r\n ><i\r\n class=\"icon icon-base-collapse\"\r\n (click)=\"collapseAllNode(true)\"\r\n ></i\r\n ></a>\r\n </div>\r\n </div>\r\n <div\r\n [id]=\"name\"\r\n class=\"structure-tree single-root jstree jstree-1 jstree-default\"\r\n >\r\n <ul\r\n class=\"jstree-container-ul jstree-children jstree-no-dots jstree-striped jstree-wholerow-ul\"\r\n *ngIf=\"nodes && nodes.length\"\r\n >\r\n <li\r\n *ngFor=\"let node of nodes; let last = last\"\r\n class=\"jstree-node\"\r\n [ngClass]=\"{\r\n 'jstree-open': !node[collapseAttr] && node[childrenAttr] && node[childrenAttr].length,\r\n 'jstree-closed': node[collapseAttr] && node[childrenAttr] && node[childrenAttr].length,\r\n 'jstree-leaf': !node[childrenAttr].length,\r\n 'jstree-last': last\r\n }\"\r\n [id]=\"node[idAttr]\"\r\n >\r\n <div\r\n unselectable=\"on\"\r\n role=\"presentation\"\r\n class=\"jstree-wholerow\"\r\n (mouseover)=\"node.hover=true\"\r\n (mouseout)=\"node.hover=false\"\r\n [ngClass]=\"{'jstree-wholerow-clicked': node === selectedNode, 'jstree-wholerow-hovered': node.hover}\"\r\n >\r\n &nbsp;\r\n </div>\r\n\r\n <i\r\n class=\"jstree-icon jstree-ocl\"\r\n role=\"presentation\"\r\n (click)=\"onCollapseClick(node)\"\r\n (mouseover)=\"node.hover=true\"\r\n (mouseout)=\"node.hover=false\"\r\n ></i>\r\n\r\n <a\r\n class=\"jstree-anchor\"\r\n (click)=\"onClick(node)\"\r\n [ngClass]=\"{'jstree-clicked': node === selectedNode, 'jstreehovered': node.hover}\"\r\n (mouseover)=\"node.hover=true\"\r\n (mouseout)=\"node.hover=false\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"treefileicon; context { item: node }\"\r\n ;\r\n content\r\n ></ng-container>\r\n\r\n <span>{{node[textAttr]}}</span>\r\n </a>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"template; context { item: node }\"\r\n ;\r\n content\r\n ></ng-container>\r\n\r\n <sac-treeviewchild\r\n *ngIf=\"node[childrenAttr] && node[childrenAttr].length\"\r\n [fileicontemplate]=\"fileicontemplate\"\r\n [template]=\"template\"\r\n [collapseall]=\"collapseall\"\r\n [ngClass]=\"(node[collapseAttr]===true)?'collapse':'show'\"\r\n [data]=\"node[childrenAttr]\"\r\n [idAttr]=\"idAttr\"\r\n [parentAttr]=\"parentAttr\"\r\n [textAttr]=\"textAttr\"\r\n [prepareData]=\"false\"\r\n (onselecteditem)=\"sendMsgToParent($event)\"\r\n [(selectedid)]=\"selectedid\"\r\n >\r\n </sac-treeviewchild>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdHJlZXZpZXcvdHJlZXZpZXcudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdHJlZXZpZXcvdHJlZXZpZXcuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV6RSxNQWFhLG9CQUFxQixTQUFRLGlCQUFpQjsrR0FBOUMsb0JBQW9CO21HQUFwQixvQkFBb0IsK0ZDbEJqQyx3aUhBcUdBLDRDRDNGUSxJQUFJLDZGQUNKLEtBQUssbUhBQ0wsT0FBTyxvRkFDUCxnQkFBZ0Isb0pBQ2hCLHlCQUF5Qjs7U0FJcEIsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBYmhDLFNBQVM7K0JBQ0ksY0FBYyxjQUVaLElBQUksV0FDUDt3QkFDTCxJQUFJO3dCQUNKLEtBQUs7d0JBQ0wsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLHlCQUF5QjtxQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FjVHJlZVZpZXdDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNUcmVlVmlld0NoaWxkQ29tcG9uZW50IH0gZnJvbSAnLi90cmVldmlld2NoaWxkJztcclxuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NhYy10cmVldmlldycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3RyZWV2aWV3Lmh0bWwnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBOZ0lmLFxyXG4gICAgICAgIE5nRm9yLFxyXG4gICAgICAgIE5nQ2xhc3MsXHJcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgICAgICBTYWNUcmVlVmlld0NoaWxkQ29tcG9uZW50LFxyXG4gICAgXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTYWNUcmVlVmlld0NvbXBvbmVudCBleHRlbmRzIFNhY1RyZWVWaWV3Q29tbW9uIHtcclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInN0cnVjdHVyZSBwYW5lbCBwYW5lbC1kZWZhdWx0XCIgaWNvbj1cIlN0cnVjdHVyZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJwYW5lbC1oZWFkaW5nXCI+XHJcbiAgICA8cCBjbGFzcz1cInBhbmVsLXRpdGxlXCI+PHNwYW4+e3sgbmFtZSB9fTwvc3Bhbj48L3A+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInBhbmVsLWJvZHlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLXN1Ym1pdCBmb3JtLWlubGluZVwiXHJcbiAgICAgICAgc3R5bGU9XCJ0ZXh0LWFsaWduOiByaWdodDsgaGVpZ2h0OiAyNHB4XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxhIGNsYXNzPVwiYnRuLWlubGluZVwiXHJcbiAgICAgICAgICA+PGkgY2xhc3M9XCJpY29uIGljb24tYmFzZS1leHBhbmRcIiAoY2xpY2spPVwiY29sbGFwc2VBbGxOb2RlKGZhbHNlKVwiPjwvaVxyXG4gICAgICAgID48L2E+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJidG4taW5saW5lXCJcclxuICAgICAgICAgID48aVxyXG4gICAgICAgICAgICBjbGFzcz1cImljb24gaWNvbi1iYXNlLWNvbGxhcHNlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbGxhcHNlQWxsTm9kZSh0cnVlKVwiXHJcbiAgICAgICAgICA+PC9pXHJcbiAgICAgICAgPjwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgW2lkXT1cIm5hbWVcIlxyXG4gICAgICBjbGFzcz1cInN0cnVjdHVyZS10cmVlIHNpbmdsZS1yb290IGpzdHJlZSBqc3RyZWUtMSBqc3RyZWUtZGVmYXVsdFwiXHJcbiAgICA+XHJcbiAgICAgIDx1bFxyXG4gICAgICAgIGNsYXNzPVwianN0cmVlLWNvbnRhaW5lci11bCBqc3RyZWUtY2hpbGRyZW4ganN0cmVlLW5vLWRvdHMganN0cmVlLXN0cmlwZWQganN0cmVlLXdob2xlcm93LXVsXCJcclxuICAgICAgICAqbmdJZj1cIm5vZGVzICYmIG5vZGVzLmxlbmd0aFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bGlcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBub2RlIG9mIG5vZGVzOyBsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgICAgY2xhc3M9XCJqc3RyZWUtbm9kZVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICdqc3RyZWUtb3Blbic6ICFub2RlW2NvbGxhcHNlQXR0cl0gJiYgbm9kZVtjaGlsZHJlbkF0dHJdICYmIG5vZGVbY2hpbGRyZW5BdHRyXS5sZW5ndGgsXHJcbiAgICAgICdqc3RyZWUtY2xvc2VkJzogbm9kZVtjb2xsYXBzZUF0dHJdICAmJiBub2RlW2NoaWxkcmVuQXR0cl0gJiYgbm9kZVtjaGlsZHJlbkF0dHJdLmxlbmd0aCxcclxuICAgICAgJ2pzdHJlZS1sZWFmJzogIW5vZGVbY2hpbGRyZW5BdHRyXS5sZW5ndGgsXHJcbiAgICAgICdqc3RyZWUtbGFzdCc6IGxhc3RcclxuICAgIH1cIlxyXG4gICAgICAgICAgW2lkXT1cIm5vZGVbaWRBdHRyXVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICB1bnNlbGVjdGFibGU9XCJvblwiXHJcbiAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImpzdHJlZS13aG9sZXJvd1wiXHJcbiAgICAgICAgICAgIChtb3VzZW92ZXIpPVwibm9kZS5ob3Zlcj10cnVlXCJcclxuICAgICAgICAgICAgKG1vdXNlb3V0KT1cIm5vZGUuaG92ZXI9ZmFsc2VcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2pzdHJlZS13aG9sZXJvdy1jbGlja2VkJzogbm9kZSA9PT0gc2VsZWN0ZWROb2RlLCAnanN0cmVlLXdob2xlcm93LWhvdmVyZWQnOiBub2RlLmhvdmVyfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGlcclxuICAgICAgICAgICAgY2xhc3M9XCJqc3RyZWUtaWNvbiBqc3RyZWUtb2NsXCJcclxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlQ2xpY2sobm9kZSlcIlxyXG4gICAgICAgICAgICAobW91c2VvdmVyKT1cIm5vZGUuaG92ZXI9dHJ1ZVwiXHJcbiAgICAgICAgICAgIChtb3VzZW91dCk9XCJub2RlLmhvdmVyPWZhbHNlXCJcclxuICAgICAgICAgID48L2k+XHJcblxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgY2xhc3M9XCJqc3RyZWUtYW5jaG9yXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2sobm9kZSlcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2pzdHJlZS1jbGlja2VkJzogbm9kZSA9PT0gc2VsZWN0ZWROb2RlLCAnanN0cmVlaG92ZXJlZCc6IG5vZGUuaG92ZXJ9XCJcclxuICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJub2RlLmhvdmVyPXRydWVcIlxyXG4gICAgICAgICAgICAobW91c2VvdXQpPVwibm9kZS5ob3Zlcj1mYWxzZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRyZWVmaWxlaWNvbjsgY29udGV4dCB7IGl0ZW06IG5vZGUgfVwiXHJcbiAgICAgICAgICAgICAgO1xyXG4gICAgICAgICAgICAgIGNvbnRlbnRcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPHNwYW4+e3tub2RlW3RleHRBdHRyXX19PC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dCB7IGl0ZW06IG5vZGUgfVwiXHJcbiAgICAgICAgICAgIDtcclxuICAgICAgICAgICAgY29udGVudFxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxzYWMtdHJlZXZpZXdjaGlsZFxyXG4gICAgICAgICAgICAqbmdJZj1cIm5vZGVbY2hpbGRyZW5BdHRyXSAmJiBub2RlW2NoaWxkcmVuQXR0cl0ubGVuZ3RoXCJcclxuICAgICAgICAgICAgW2ZpbGVpY29udGVtcGxhdGVdPVwiZmlsZWljb250ZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtjb2xsYXBzZWFsbF09XCJjb2xsYXBzZWFsbFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIihub2RlW2NvbGxhcHNlQXR0cl09PT10cnVlKT8nY29sbGFwc2UnOidzaG93J1wiXHJcbiAgICAgICAgICAgIFtkYXRhXT1cIm5vZGVbY2hpbGRyZW5BdHRyXVwiXHJcbiAgICAgICAgICAgIFtpZEF0dHJdPVwiaWRBdHRyXCJcclxuICAgICAgICAgICAgW3BhcmVudEF0dHJdPVwicGFyZW50QXR0clwiXHJcbiAgICAgICAgICAgIFt0ZXh0QXR0cl09XCJ0ZXh0QXR0clwiXHJcbiAgICAgICAgICAgIFtwcmVwYXJlRGF0YV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIChvbnNlbGVjdGVkaXRlbSk9XCJzZW5kTXNnVG9QYXJlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFsoc2VsZWN0ZWRpZCldPVwic2VsZWN0ZWRpZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L3NhYy10cmVldmlld2NoaWxkPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
61
+ NgClass,
62
+ SacContextmenuComponent,
63
+ SacContextmenuItemButtonComponent,
64
+ SacContextmenuItemSplitterComponent,
65
+ SacToLabelWidthCssPipe,
66
+ SacToLabelHeightPipe,
67
+ SacTooltipComponent,
68
+ SacToControlWidthCssPipe,
69
+ AsyncPipe,
70
+ SacToControlHeightPipe,
71
+ ], template: "<div\r\n class=\"row mb-3\"\r\n [class.g-0]=\"disablelabel\"\r\n [class.has-error]=\"invalid && (dirty || touched)\">\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 [class.has-error]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n <div [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.width.%]=\"helptextmode === 'tooltip' && helptext && disablelabel ? '100' : null\">\r\n <table\r\n class=\"table table-hover table-condensed\"\r\n id=\"{{ name }}\"\r\n style=\"table-layout: fixed\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [class.border]=\"invalid && (dirty || touched)\"\r\n [class.border-danger]=\"invalid && (dirty || touched)\">\r\n <tbody>\r\n <ng-container *ngFor=\"let node of data\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{ node: node, deep: 0 }\">\r\n </ng-template>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"help-block\">\r\n {{ GetErrorMessage() | async }}\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 </div>\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 </div>\r\n</div>\r\n<ng-template\r\n #treeItem\r\n let-node=\"node\"\r\n let-deep=\"deep\">\r\n <tr [class.active]=\"isSelectedState(node)\">\r\n <td>\r\n <div\r\n class=\"py-1 px-2 d-flex align-items-center\"\r\n style=\"display: flex; flex-direction: row; cursor: pointer; align-items: center\"\r\n (mouseenter)=\"setHoverState(node, true)\"\r\n (mouseleave)=\"setHoverState(node, false)\">\r\n <div\r\n style=\"margin-right: 15px\"\r\n *ngFor=\"let i of count(deep)\">\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n *ngIf=\"expandedstate === 'true' || expandedstate === true\"\r\n style=\"margin-right: 15px\"\r\n [ngClass]=\"!hasChildren(node) ? iconFolderEmpty : !isExpandedState(node) ? iconFolderCollabsed : isExpandedState(node) ? iconFolderOpen : ''\">\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n *ngIf=\"attricon && getStringField(node, attricon)\"\r\n style=\"margin-right: 15px\"\r\n [ngClass]=\"getStringField(node, attricon)\">\r\n </div>\r\n\r\n <div\r\n (click)=\"onNodeClicked(node)\"\r\n style=\"padding-top: 7px; padding-bottom: 7px; flex-grow: 1\"\r\n [style.max-width.%]=\"enableellipsis ? '100' : null\"\r\n [style.overflow]=\"enableellipsis ? 'hidden' : null\"\r\n [style.text-overflow]=\"enableellipsis ? 'ellipsis' : null\"\r\n [style.white-space]=\"enableellipsis ? 'nowrap' : null\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"templatelabel || defaultTemplateLabel\"\r\n [ngTemplateOutletContext]=\"{ node: node, label: getStringField(node, attrlabel) }\">\r\n </ng-template>\r\n </div>\r\n\r\n <div\r\n (click)=\"setSelectedState(node)\"\r\n style=\"flex-shrink: 0\"\r\n *ngIf=\"!isDisabledState(node) && (showactionalways || isSelectedState(node) || isHoverState(node))\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"templateaction || defaultTemplateAction\"\r\n [ngTemplateOutletContext]=\"{ node: node, actionhandler: onActionClicked.bind(this) }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"isExpandedState(node)\">\r\n <ng-template\r\n *ngFor=\"let child of getChildren(node)\"\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{ node: child, deep: deep + 1 }\">\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateLabel\r\n let-label=\"label\"\r\n let-node=\"node\">\r\n <span [title]=\"label\">\r\n {{ label }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template\r\n #defaultTemplateAction\r\n let-node=\"node\"\r\n let-actionhandler=\"actionhandler\">\r\n <a\r\n class=\"btn btn-link text-secondary\"\r\n (click)=\"actionhandler({ action: 'default', node: node })\">\r\n <i [class]=\"iconAction\"></i>\r\n </a>\r\n</ng-template>\r\n" }]
72
+ }], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
73
+ type: Host
74
+ }, {
75
+ type: Optional
76
+ }] }, { type: i0.Injector }]; } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdHJlZXZpZXcvdHJlZXZpZXcudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvY29udHJvbHMvdHJlZXZpZXcvdHJlZXZpZXcuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU3RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFZLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFFdEU7O0dBRUc7QUFDSCxNQWlDYSxvQkFBcUIsU0FBUSxpQkFBaUI7SUFDdkQsdUJBQXVCO0lBRXZCOzs7O09BSUc7SUFDSCxZQUFnQyxVQUFrQyxFQUFFLFFBQWtCO1FBQ2xGLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQzsrR0FWUSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwyREE5QmxCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLG9CQUFvQjthQUNwQztZQUNEO2dCQUNJLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osaURDL0JMLDh3TkE4SkEsNENENUhRLElBQUksNkZBRUosS0FBSyxtSEFDTCxnQkFBZ0Isb0pBQ2hCLE9BQU8sK0VBSVAsc0JBQXNCLHdEQUV0QixtQkFBbUIsbURBQ25CLHdCQUF3QixxREFDeEIsU0FBUzs7U0FJSixvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFqQ2hDLFNBQVM7K0JBQ0ksY0FBYyxhQUViO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsc0JBQXNCO3lCQUNwQzt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKLGNBQ1csSUFBSSxXQUNQO3dCQUNMLElBQUk7d0JBQ0osUUFBUTt3QkFDUixLQUFLO3dCQUNMLGdCQUFnQjt3QkFDaEIsT0FBTzt3QkFDUCx1QkFBdUI7d0JBQ3ZCLGlDQUFpQzt3QkFDakMsbUNBQW1DO3dCQUNuQyxzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLFNBQVM7d0JBQ1Qsc0JBQXNCO3FCQUN6Qjs7MEJBVVksSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0NvbnRleHRtZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vY29udGV4dG1lbnUnO1xyXG5pbXBvcnQgeyBTYWNDb250ZXh0bWVudUl0ZW1CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9jb250ZXh0bWVudS9jb250ZXh0bWVudWl0ZW1idXR0b24nO1xyXG5pbXBvcnQgeyBTYWNDb250ZXh0bWVudUl0ZW1TcGxpdHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRleHRtZW51L2NvbnRleHRtZW51aXRlbXNwbGl0dGVyJztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNhY1RvQ29udHJvbEhlaWdodFBpcGUgfSBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9saGVpZ2h0LnBpcGUnO1xyXG5pbXBvcnQgeyBTYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUgfSBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9sd2lkdGhjc3MucGlwZSc7XHJcbmltcG9ydCB7IFNhY1RvTGFiZWxIZWlnaHRQaXBlIH0gZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWxoZWlnaHQucGlwZSc7XHJcbmltcG9ydCB7IFNhY1RvTGFiZWxXaWR0aENzc1BpcGUgfSBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbHdpZHRoY3NzLnBpcGUnO1xyXG5pbXBvcnQgeyBTYWNUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBKc29uUGlwZSwgTmdDbGFzcywgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjVHJlZXZpZXdDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5cclxuLyoqXHJcbiAqIFRyZWV2aWV3IENvbXBvbW5lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzYWMtdHJlZXZpZXcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RyZWV2aWV3Lmh0bWwnLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBTYWNUcmVldmlld0NvbXBvbmVudCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjVHJlZXZpZXdDb21wb25lbnQpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgTmdJZixcclxuICAgICAgICBKc29uUGlwZSxcclxuICAgICAgICBOZ0ZvcixcclxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgICAgIE5nQ2xhc3MsXHJcbiAgICAgICAgU2FjQ29udGV4dG1lbnVDb21wb25lbnQsXHJcbiAgICAgICAgU2FjQ29udGV4dG1lbnVJdGVtQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgICAgIFNhY0NvbnRleHRtZW51SXRlbVNwbGl0dGVyQ29tcG9uZW50LFxyXG4gICAgICAgIFNhY1RvTGFiZWxXaWR0aENzc1BpcGUsXHJcbiAgICAgICAgU2FjVG9MYWJlbEhlaWdodFBpcGUsXHJcbiAgICAgICAgU2FjVG9vbHRpcENvbXBvbmVudCxcclxuICAgICAgICBTYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUsXHJcbiAgICAgICAgQXN5bmNQaXBlLFxyXG4gICAgICAgIFNhY1RvQ29udHJvbEhlaWdodFBpcGUsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjVHJlZXZpZXdDb21wb25lbnQgZXh0ZW5kcyBTYWNUcmVldmlld0NvbW1vbiB7XHJcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgICAqIEBwYXJhbSBpbmplY3RvciBDb21wb25lbnQgSW5qZWN0b3JcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cInJvdyBtYi0zXCJcclxuICAgIFtjbGFzcy5nLTBdPVwiZGlzYWJsZWxhYmVsXCJcclxuICAgIFtjbGFzcy5oYXMtZXJyb3JdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj5cclxuICAgIDxsYWJlbFxyXG4gICAgICAgICpuZ0lmPVwiZGlzYWJsZWxhYmVsID09PSBmYWxzZSAmJiAhaXNBZGFwdGl2ZUxhYmVsXCJcclxuICAgICAgICBpZD1cInt7IG5hbWUgfX1sYWJlbFwiXHJcbiAgICAgICAgZm9yPVwie3sgbmFtZSB9fVwiXHJcbiAgICAgICAgY2xhc3M9XCJjb2wteHMtMTIgY29udHJvbC1sYWJlbFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAodGhpcy5sYWJlbFNpemVzIHwgdG9MYWJlbFdpZHRoQ3NzKSA6ICdzci1vbmx5J11cIlxyXG4gICAgICAgIFtjbGFzcy5yZXF1aXJlZF09XCJpc3JlcXVpcmVkXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgPHNhYy10b29sdGlwXHJcbiAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHRcIlxyXG4gICAgICAgICAgICBbdG9vbHRpcHRleHRdPVwiaGVscHRleHRcIlxyXG4gICAgICAgICAgICBbaW5saW5lbW9kZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiSGVscHRleHRUb29sdGlwSWNvblwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA1cHhcIj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc2FjLXRvb2x0aXA+XHJcbiAgICA8L2xhYmVsPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiY29sLXhzLTEyXCJcclxuICAgICAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICh0aGlzLmxhYmVsU2l6ZXMgfCB0b0NvbnRyb2xXaWR0aENzcykgOiAnJ11cIlxyXG4gICAgICAgIFtjbGFzcy5oYXMtZXJyb3JdPVwiaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj5cclxuICAgICAgICA8ZGl2IFtzdHlsZS5kaXNwbGF5XT1cImhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnICYmIGhlbHB0ZXh0ICYmIGRpc2FibGVsYWJlbCA/ICdmbGV4JyA6IG51bGxcIj5cclxuICAgICAgICAgICAgPGRpdiBbc3R5bGUud2lkdGguJV09XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dCAmJiBkaXNhYmxlbGFiZWwgPyAnMTAwJyA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgIDx0YWJsZVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUgdGFibGUtaG92ZXIgdGFibGUtY29uZGVuc2VkXCJcclxuICAgICAgICAgICAgICAgICAgICBpZD1cInt7IG5hbWUgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGFibGUtbGF5b3V0OiBmaXhlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ib3JkZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ib3JkZXItZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBub2RlIG9mIGRhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRyZWVJdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBub2RlOiBub2RlLCBkZWVwOiAwIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlbHAtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndGV4dCcgJiYgaGVscHRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGhlbHB0ZXh0IH19XHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dCAmJiBkaXNhYmxlbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDVweFwiPlxyXG4gICAgICAgICAgICAgICAgPHNhYy10b29sdGlwXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXB0ZXh0XT1cImhlbHB0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5saW5lbW9kZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIkhlbHB0ZXh0VG9vbHRpcEljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA1cHg7IG1hcmdpbi1yaWdodDogNXB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zYWMtdG9vbHRpcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZVxyXG4gICAgI3RyZWVJdGVtXHJcbiAgICBsZXQtbm9kZT1cIm5vZGVcIlxyXG4gICAgbGV0LWRlZXA9XCJkZWVwXCI+XHJcbiAgICA8dHIgW2NsYXNzLmFjdGl2ZV09XCJpc1NlbGVjdGVkU3RhdGUobm9kZSlcIj5cclxuICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHktMSBweC0yIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyBjdXJzb3I6IHBvaW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwic2V0SG92ZXJTdGF0ZShub2RlLCB0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJzZXRIb3ZlclN0YXRlKG5vZGUsIGZhbHNlKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaSBvZiBjb3VudChkZWVwKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5vZGVDbGlja2VkKG5vZGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImV4cGFuZGVkc3RhdGUgPT09ICd0cnVlJyB8fCBleHBhbmRlZHN0YXRlID09PSB0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiIWhhc0NoaWxkcmVuKG5vZGUpID8gaWNvbkZvbGRlckVtcHR5IDogIWlzRXhwYW5kZWRTdGF0ZShub2RlKSA/IGljb25Gb2xkZXJDb2xsYWJzZWQgOiBpc0V4cGFuZGVkU3RhdGUobm9kZSkgPyBpY29uRm9sZGVyT3BlbiA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTm9kZUNsaWNrZWQobm9kZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXR0cmljb24gJiYgZ2V0U3RyaW5nRmllbGQobm9kZSwgYXR0cmljb24pXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0U3RyaW5nRmllbGQobm9kZSwgYXR0cmljb24pXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTm9kZUNsaWNrZWQobm9kZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy10b3A6IDdweDsgcGFkZGluZy1ib3R0b206IDdweDsgZmxleC1ncm93OiAxXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoLiVdPVwiZW5hYmxlZWxsaXBzaXMgPyAnMTAwJyA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5vdmVyZmxvd109XCJlbmFibGVlbGxpcHNpcyA/ICdoaWRkZW4nIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRleHQtb3ZlcmZsb3ddPVwiZW5hYmxlZWxsaXBzaXMgPyAnZWxsaXBzaXMnIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndoaXRlLXNwYWNlXT1cImVuYWJsZWVsbGlwc2lzID8gJ25vd3JhcCcgOiBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlbGFiZWwgfHwgZGVmYXVsdFRlbXBsYXRlTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBub2RlOiBub2RlLCBsYWJlbDogZ2V0U3RyaW5nRmllbGQobm9kZSwgYXR0cmxhYmVsKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0U2VsZWN0ZWRTdGF0ZShub2RlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmbGV4LXNocmluazogMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNEaXNhYmxlZFN0YXRlKG5vZGUpICYmIChzaG93YWN0aW9uYWx3YXlzIHx8IGlzU2VsZWN0ZWRTdGF0ZShub2RlKSB8fCBpc0hvdmVyU3RhdGUobm9kZSkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlYWN0aW9uIHx8IGRlZmF1bHRUZW1wbGF0ZUFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IG5vZGU6IG5vZGUsIGFjdGlvbmhhbmRsZXI6IG9uQWN0aW9uQ2xpY2tlZC5iaW5kKHRoaXMpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRXhwYW5kZWRTdGF0ZShub2RlKVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgZ2V0Q2hpbGRyZW4obm9kZSlcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cmVlSXRlbVwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IG5vZGU6IGNoaWxkLCBkZWVwOiBkZWVwICsgMSB9XCI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlXHJcbiAgICAjZGVmYXVsdFRlbXBsYXRlTGFiZWxcclxuICAgIGxldC1sYWJlbD1cImxhYmVsXCJcclxuICAgIGxldC1ub2RlPVwibm9kZVwiPlxyXG4gICAgPHNwYW4gW3RpdGxlXT1cImxhYmVsXCI+XHJcbiAgICAgICAge3sgbGFiZWwgfX1cclxuICAgIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZVxyXG4gICAgI2RlZmF1bHRUZW1wbGF0ZUFjdGlvblxyXG4gICAgbGV0LW5vZGU9XCJub2RlXCJcclxuICAgIGxldC1hY3Rpb25oYW5kbGVyPVwiYWN0aW9uaGFuZGxlclwiPlxyXG4gICAgPGFcclxuICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayB0ZXh0LXNlY29uZGFyeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFjdGlvbmhhbmRsZXIoeyBhY3Rpb246ICdkZWZhdWx0Jywgbm9kZTogbm9kZSB9KVwiPlxyXG4gICAgICAgIDxpIFtjbGFzc109XCJpY29uQWN0aW9uXCI+PC9pPlxyXG4gICAgPC9hPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -1,34 +1,18 @@
1
- import { NgModule } from '@angular/core';
1
+ import { SacTreeviewComponent } from './treeview';
2
2
  import { CommonModule } from '@angular/common';
3
- import { SacTreeViewComponent } from './treeview';
4
- import { SacTreeViewChildComponent } from './treeviewchild';
5
- import { SacTreeItemActionComponent } from './ngtreeitemaction';
3
+ import { NgModule } from '@angular/core';
6
4
  import * as i0 from "@angular/core";
7
- class SACBootstrap3TtreeviewModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TtreeviewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TtreeviewModule, imports: [CommonModule,
10
- SacTreeViewComponent,
11
- SacTreeViewChildComponent,
12
- SacTreeItemActionComponent], exports: [SacTreeViewComponent,
13
- SacTreeViewChildComponent,
14
- SacTreeItemActionComponent] }); }
15
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TtreeviewModule, imports: [CommonModule] }); }
5
+ class SACBootstrap3TreeviewModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TreeviewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TreeviewModule, imports: [CommonModule, SacTreeviewComponent], exports: [SacTreeviewComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TreeviewModule, imports: [CommonModule] }); }
16
9
  }
17
- export { SACBootstrap3TtreeviewModule };
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TtreeviewModule, decorators: [{
10
+ export { SACBootstrap3TreeviewModule };
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap3TreeviewModule, decorators: [{
19
12
  type: NgModule,
20
13
  args: [{
21
- imports: [
22
- CommonModule,
23
- SacTreeViewComponent,
24
- SacTreeViewChildComponent,
25
- SacTreeItemActionComponent,
26
- ],
27
- exports: [
28
- SacTreeViewComponent,
29
- SacTreeViewChildComponent,
30
- SacTreeItemActionComponent,
31
- ],
14
+ imports: [CommonModule, SacTreeviewComponent],
15
+ exports: [SacTreeviewComponent],
32
16
  }]
33
17
  }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjL2NvbnRyb2xzL3RyZWV2aWV3L3RyZWV2aWV3Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRWhFLE1BYWEsNEJBQTRCOytHQUE1Qiw0QkFBNEI7Z0hBQTVCLDRCQUE0QixZQVhyQyxZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLHlCQUF5QjtZQUN6QiwwQkFBMEIsYUFHMUIsb0JBQW9CO1lBQ3BCLHlCQUF5QjtZQUN6QiwwQkFBMEI7Z0hBR2pCLDRCQUE0QixZQVhyQyxZQUFZOztTQVdILDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQWJ4QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIseUJBQXlCO3dCQUN6QiwwQkFBMEI7cUJBQzNCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLHlCQUF5Qjt3QkFDekIsMEJBQTBCO3FCQUMzQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNhY1RyZWVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi90cmVldmlldyc7XHJcbmltcG9ydCB7IFNhY1RyZWVWaWV3Q2hpbGRDb21wb25lbnQgfSBmcm9tICcuL3RyZWV2aWV3Y2hpbGQnO1xyXG5pbXBvcnQgeyBTYWNUcmVlSXRlbUFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbmd0cmVlaXRlbWFjdGlvbic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFNhY1RyZWVWaWV3Q29tcG9uZW50LFxyXG4gICAgU2FjVHJlZVZpZXdDaGlsZENvbXBvbmVudCxcclxuICAgIFNhY1RyZWVJdGVtQWN0aW9uQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2FjVHJlZVZpZXdDb21wb25lbnQsXHJcbiAgICBTYWNUcmVlVmlld0NoaWxkQ29tcG9uZW50LFxyXG4gICAgU2FjVHJlZUl0ZW1BY3Rpb25Db21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNBQ0Jvb3RzdHJhcDNUdHJlZXZpZXdNb2R1bGUge31cclxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjL2NvbnRyb2xzL3RyZWV2aWV3L3RyZWV2aWV3Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXpDLE1BSWEsMkJBQTJCOytHQUEzQiwyQkFBMkI7Z0hBQTNCLDJCQUEyQixZQUgxQixZQUFZLEVBQUUsb0JBQW9CLGFBQ2xDLG9CQUFvQjtnSEFFckIsMkJBQTJCLFlBSDFCLFlBQVk7O1NBR2IsMkJBQTJCOzRGQUEzQiwyQkFBMkI7a0JBSnZDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDO29CQUM3QyxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNUcmVldmlld0NvbXBvbmVudCB9IGZyb20gJy4vdHJlZXZpZXcnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNhY1RyZWV2aWV3Q29tcG9uZW50XSxcclxuICAgIGV4cG9ydHM6IFtTYWNUcmVldmlld0NvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTQUNCb290c3RyYXAzVHJlZXZpZXdNb2R1bGUge31cclxuIl19
@@ -0,0 +1,80 @@
1
+ import { SacToControlHeightPipe } from '../layout/tocontrolheight.pipe';
2
+ import { SacToControlWidthCssPipe } from '../layout/tocontrolwidthcss.pipe';
3
+ import { SacToLabelHeightPipe } from '../layout/tolabelheight.pipe';
4
+ import { SacToLabelWidthCssPipe } from '../layout/tolabelwidthcss.pipe';
5
+ import { SacTooltipComponent } from '../tooltip/tooltip';
6
+ import { AsyncPipe, NgClass, NgFor, NgIf } from '@angular/common';
7
+ import { Component, Host, Optional, forwardRef } from '@angular/core';
8
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
9
+ import { SacDropzoneMultipleCommon } from '@simpleangularcontrols/sac-common';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../layout/formlayout.directive";
12
+ /**
13
+ * Dropzone Komponente für mehrere Uploads
14
+ * @see https://github.com/kukhariev/ngx-uploadx/
15
+ */
16
+ class SacDropzoneMultipleComponent extends SacDropzoneMultipleCommon {
17
+ // #region Constructors
18
+ /**
19
+ * Constructor
20
+ * @param formLayout SacFormLayout to define scoped layout settings
21
+ * @param injector Injector for injecting services
22
+ * @param renderer Angular rendering engine
23
+ * @param ngZone ngZone to manage external javascripts
24
+ */
25
+ constructor(formLayout, injector, renderer, ngZone) {
26
+ super(formLayout, injector, renderer, ngZone);
27
+ }
28
+ // #endregion Constructors
29
+ // #region Public Methods
30
+ /**
31
+ * Initialisiert das Control
32
+ */
33
+ ngOnInit() {
34
+ super.ngOnInit();
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropzoneMultipleComponent, deps: [{ token: i1.SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacDropzoneMultipleComponent, isStandalone: true, selector: "sac-dropzonemultiple", providers: [
38
+ {
39
+ provide: NG_VALUE_ACCESSOR,
40
+ multi: true,
41
+ useExisting: SacDropzoneMultipleComponent,
42
+ },
43
+ {
44
+ provide: NG_VALIDATORS,
45
+ multi: true,
46
+ useExisting: forwardRef(() => SacDropzoneMultipleComponent),
47
+ },
48
+ ], 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 [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.flex-grow]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 1 : null\">\r\n <div\r\n class=\"img-rounded dropzone control-label\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [class.active]=\"active\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\">\r\n <div\r\n class=\"content\"\r\n *ngIf=\"uploads.length === 0\">\r\n <div>\r\n <div [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"uploads.length > 0\">\r\n <div>\r\n <div\r\n class=\"dropzone-uploadstates\"\r\n [class.mt-1]=\"i > 0\"\r\n *ngFor=\"let file of uploads; let i = index\">\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress === 100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\">\r\n <span class=\"progress-text\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\" />\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"help-block help-block-error\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\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</div>\r\n", styles: [".upload-component .upload-input{position:relative}.upload-component .custom-file>i{margin-right:15px}.upload-component .custom-file .custom-file-input{inset:0;position:absolute;overflow:hidden;z-index:2;width:100%;margin:0;display:inline-block;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone{min-height:120px;width:100%;text-align:center;border-style:dashed;border-width:2px;padding-top:50px;padding-bottom:50px;position:relative}.dropzone.active{background-color:#add8e6}.dropzone .progress{border-radius:0}.dropzone .progress .progress-bar{display:flex;justify-content:center;text-align:center;flex-direction:column;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .progress .progress-bar .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;width:100%}.dropzone .dropzone-uploadstates{max-width:450px;margin-left:auto;margin-right:auto;margin-top:6px;width:80%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "component", type: SacTooltipComponent, selector: "sac-tooltip" }] }); }
49
+ }
50
+ export { SacDropzoneMultipleComponent };
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDropzoneMultipleComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'sac-dropzonemultiple', providers: [
54
+ {
55
+ provide: NG_VALUE_ACCESSOR,
56
+ multi: true,
57
+ useExisting: SacDropzoneMultipleComponent,
58
+ },
59
+ {
60
+ provide: NG_VALIDATORS,
61
+ multi: true,
62
+ useExisting: forwardRef(() => SacDropzoneMultipleComponent),
63
+ },
64
+ ], standalone: true, imports: [
65
+ NgIf,
66
+ NgClass,
67
+ NgFor,
68
+ AsyncPipe,
69
+ SacToLabelWidthCssPipe,
70
+ SacToControlWidthCssPipe,
71
+ SacToLabelHeightPipe,
72
+ SacTooltipComponent,
73
+ SacToControlHeightPipe,
74
+ ], 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 [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div [style.flex-grow]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 1 : null\">\r\n <div\r\n class=\"img-rounded dropzone control-label\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [class.active]=\"active\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\">\r\n <div\r\n class=\"content\"\r\n *ngIf=\"uploads.length === 0\">\r\n <div>\r\n <div [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"uploads.length > 0\">\r\n <div>\r\n <div\r\n class=\"dropzone-uploadstates\"\r\n [class.mt-1]=\"i > 0\"\r\n *ngFor=\"let file of uploads; let i = index\">\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress === 100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\">\r\n <span class=\"progress-text\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group-btn\">\r\n <!-- image-preview-clear button -->\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\" />\r\n </div>\r\n <small\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </small>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"help-block help-block-error\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\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</div>\r\n", styles: [".upload-component .upload-input{position:relative}.upload-component .custom-file>i{margin-right:15px}.upload-component .custom-file .custom-file-input{inset:0;position:absolute;overflow:hidden;z-index:2;width:100%;margin:0;display:inline-block;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone{min-height:120px;width:100%;text-align:center;border-style:dashed;border-width:2px;padding-top:50px;padding-bottom:50px;position:relative}.dropzone.active{background-color:#add8e6}.dropzone .progress{border-radius:0}.dropzone .progress .progress-bar{display:flex;justify-content:center;text-align:center;flex-direction:column;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .progress .progress-bar .progress-text{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:table-cell;line-height:34px;height:34px;color:#000}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;width:100%}.dropzone .dropzone-uploadstates{max-width:450px;margin-left:auto;margin-right:auto;margin-top:6px;width:80%}\n"] }]
75
+ }], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
76
+ type: Host
77
+ }, {
78
+ type: Optional
79
+ }] }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.NgZone }]; } });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVtdWx0aXBsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy9jb250cm9scy91cGxvYWQvZHJvcHpvbmVtdWx0aXBsZS50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy9jb250cm9scy91cGxvYWQvZHJvcHpvbmVtdWx0aXBsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBNEIsUUFBUSxFQUFhLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUU5RTs7O0dBR0c7QUFDSCxNQTZCYSw0QkFBNkIsU0FBUSx5QkFBeUI7SUFDdkUsdUJBQXVCO0lBRXZCOzs7Ozs7T0FNRztJQUNILFlBQ3dCLFVBQWtDLEVBQ3RELFFBQWtCLEVBQ2xCLFFBQW1CLEVBQ25CLE1BQWM7UUFFZCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELDBCQUEwQjtJQUUxQix5QkFBeUI7SUFFekI7O09BRUc7SUFDSSxRQUFRO1FBQ1gsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7K0dBNUJRLDRCQUE0QjttR0FBNUIsNEJBQTRCLG1FQXpCMUI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsNEJBQTRCO2FBQzVDO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7YUFDOUQ7U0FDSixpREM5QkwsZzJMQXdIQSx3Z0REdkZRLElBQUksNkZBQ0osT0FBTyxvRkFDUCxLQUFLLDhHQUNMLFNBQVMseUNBQ1Qsc0JBQXNCLG1EQUN0Qix3QkFBd0IscURBQ3hCLG9CQUFvQixzREFDcEIsbUJBQW1COztTQUlkLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQTdCeEMsU0FBUzsrQkFDSSxzQkFBc0IsYUFHckI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyw4QkFBOEI7eUJBQzVDO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQzt5QkFDOUQ7cUJBQ0osY0FDVyxJQUFJLFdBQ1A7d0JBQ0wsSUFBSTt3QkFDSixPQUFPO3dCQUNQLEtBQUs7d0JBQ0wsU0FBUzt3QkFDVCxzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLHNCQUFzQjtxQkFDekI7OzBCQWFJLElBQUk7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2FjVG9Db250cm9sSGVpZ2h0UGlwZSB9IGZyb20gJy4uL2xheW91dC90b2NvbnRyb2xoZWlnaHQucGlwZSc7XHJcbmltcG9ydCB7IFNhY1RvQ29udHJvbFdpZHRoQ3NzUGlwZSB9IGZyb20gJy4uL2xheW91dC90b2NvbnRyb2x3aWR0aGNzcy5waXBlJztcclxuaW1wb3J0IHsgU2FjVG9MYWJlbEhlaWdodFBpcGUgfSBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbGhlaWdodC5waXBlJztcclxuaW1wb3J0IHsgU2FjVG9MYWJlbFdpZHRoQ3NzUGlwZSB9IGZyb20gJy4uL2xheW91dC90b2xhYmVsd2lkdGhjc3MucGlwZSc7XHJcbmltcG9ydCB7IFNhY1Rvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0LCBJbmplY3RvciwgTmdab25lLCBPbkluaXQsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNhY0Ryb3B6b25lTXVsdGlwbGVDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5cclxuLyoqXHJcbiAqIERyb3B6b25lIEtvbXBvbmVudGUgZsO8ciBtZWhyZXJlIFVwbG9hZHNcclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20va3VraGFyaWV2L25neC11cGxvYWR4L1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NhYy1kcm9wem9uZW11bHRpcGxlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wem9uZW11bHRpcGxlLmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnQpLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBOZ0lmLFxyXG4gICAgICAgIE5nQ2xhc3MsXHJcbiAgICAgICAgTmdGb3IsXHJcbiAgICAgICAgQXN5bmNQaXBlLFxyXG4gICAgICAgIFNhY1RvTGFiZWxXaWR0aENzc1BpcGUsXHJcbiAgICAgICAgU2FjVG9Db250cm9sV2lkdGhDc3NQaXBlLFxyXG4gICAgICAgIFNhY1RvTGFiZWxIZWlnaHRQaXBlLFxyXG4gICAgICAgIFNhY1Rvb2x0aXBDb21wb25lbnQsXHJcbiAgICAgICAgU2FjVG9Db250cm9sSGVpZ2h0UGlwZSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50IGV4dGVuZHMgU2FjRHJvcHpvbmVNdWx0aXBsZUNvbW1vbiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciByZW5kZXJpbmcgZW5naW5lXHJcbiAgICAgKiBAcGFyYW0gbmdab25lIG5nWm9uZSB0byBtYW5hZ2UgZXh0ZXJuYWwgamF2YXNjcmlwdHNcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIG5nWm9uZTogTmdab25lXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3RvciwgcmVuZGVyZXIsIG5nWm9uZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXNpZXJ0IGRhcyBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCJcclxuICAgIFtjbGFzcy5oYXMtZXJyb3JdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgW25nQ2xhc3NdPVwiY29tcG9uZW50SGVpZ2h0IHwgdG9MYWJlbEhlaWdodFwiPlxyXG4gICAgPGxhYmVsXHJcbiAgICAgICAgKm5nSWY9XCJkaXNhYmxlbGFiZWwgPT09IGZhbHNlICYmICFpc0FkYXB0aXZlTGFiZWxcIlxyXG4gICAgICAgIGlkPVwie3sgbmFtZSB9fWxhYmVsXCJcclxuICAgICAgICBmb3I9XCJ7eyBuYW1lIH19XCJcclxuICAgICAgICBjbGFzcz1cImNvbC14cy0xMiBjb250cm9sLWxhYmVsXCJcclxuICAgICAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICh0aGlzLmxhYmVsU2l6ZXMgfCB0b0xhYmVsV2lkdGhDc3MpIDogJ3NyLW9ubHknXVwiXHJcbiAgICAgICAgW2NsYXNzLnJlcXVpcmVkXT1cImlzcmVxdWlyZWRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICA8c2FjLXRvb2x0aXBcclxuICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgIFt0b29sdGlwdGV4dF09XCJoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgIFtpbmxpbmVtb2RlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJIZWxwdGV4dFRvb2x0aXBJY29uXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDVweFwiPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9zYWMtdG9vbHRpcD5cclxuICAgIDwvbGFiZWw+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjb2wteHMtMTJcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gKHRoaXMubGFiZWxTaXplcyB8IHRvQ29udHJvbFdpZHRoQ3NzKSA6ICcnXVwiXHJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsID8gJ2ZsZXgnIDogbnVsbFwiPlxyXG4gICAgICAgIDxkaXYgW3N0eWxlLmZsZXgtZ3Jvd109XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dCAmJiBkaXNhYmxlbGFiZWwgPyAxIDogbnVsbFwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImltZy1yb3VuZGVkIGRyb3B6b25lIGNvbnRyb2wtbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgKGRyb3ApPVwiZHJvcEhhbmRsZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUubWluLWhlaWdodF09XCJ1cGxvYWRoZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidXBsb2Fkcy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzcy5pcy1pbnZhbGlkXT1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidXBsb2Fkcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wem9uZS11cGxvYWRzdGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm10LTFdPVwiaSA+IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgdXBsb2FkczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAgdXBsb2FkLWNvbXBvbmVudCB1cGxvYWQtY29tcG9uZW50LW11bHRpcGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaW5wdXQtZ3JvdXAtc21dPVwiY29tcG9uZW50SGVpZ2h0ID09PSBDb250cm9sSGVpZ2h0LlNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaW5wdXQtZ3JvdXAtbGddPVwiY29tcG9uZW50SGVpZ2h0ID09PSBDb250cm9sSGVpZ2h0LkxhcmdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbCB1cGxvYWQtcHJvZ3Jlc3MgYm9yZGVyLXNlY29uZGFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnByb2dyZXNzLWJhci1zdWNjZXNzXT1cImZpbGUucHJvZ3Jlc3MgPT09IDEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cImZpbGUucHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVtaW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJmaWxlLnByb2dyZXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9ncmVzcy10ZXh0XCI+e3sgZmlsZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBpbWFnZS1wcmV2aWV3LWNsZWFyIGJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoZmlsZS51cGxvYWRJZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kZWZhdWx0XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvbkRlbGV0ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAjZmlsZXNcclxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZVxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwie3sgbmFtZSB9fV91cGxvYWRpbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLWZpbGUtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJmaWxlcy52YWx1ZSA9ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAodXBsb2FkeFN0YXRlKT1cIm9uVXBsb2FkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJIYXNRdWV1ZUl0ZW0oKVwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c21hbGxcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndGV4dCcgJiYgaGVscHRleHRcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBoZWxwdGV4dCB9fVxyXG4gICAgICAgICAgICA8L3NtYWxsPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9jayBoZWxwLWJsb2NrLWVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwiaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcgJiYgaGVscHRleHQgJiYgZGlzYWJsZWxhYmVsXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4XCI+XHJcbiAgICAgICAgICAgIDxzYWMtdG9vbHRpcFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJyAmJiBoZWxwdGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcHRleHRdPVwiaGVscHRleHRcIlxyXG4gICAgICAgICAgICAgICAgW2lubGluZW1vZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiSGVscHRleHRUb29sdGlwSWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4OyBtYXJnaW4tcmlnaHQ6IDVweFwiPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NhYy10b29sdGlwPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=