@simpleangularcontrols/sac-bootstrap4 16.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/README.md +25 -0
  2. package/components/browser/browser.d.ts +49 -0
  3. package/components/browser/browser.d.ts.map +1 -0
  4. package/components/browser/browser.module.d.ts +8 -0
  5. package/components/browser/browser.module.d.ts.map +1 -0
  6. package/controls/buttons/button.d.ts +12 -0
  7. package/controls/buttons/button.d.ts.map +1 -0
  8. package/controls/buttons/button.module.d.ts +9 -0
  9. package/controls/buttons/button.module.d.ts.map +1 -0
  10. package/controls/checkbox/checkbox.d.ts +18 -0
  11. package/controls/checkbox/checkbox.d.ts.map +1 -0
  12. package/controls/checkbox/checkbox.module.d.ts +11 -0
  13. package/controls/checkbox/checkbox.module.d.ts.map +1 -0
  14. package/controls/checkbox/radiobutton.d.ts +16 -0
  15. package/controls/checkbox/radiobutton.d.ts.map +1 -0
  16. package/controls/checkbox/radiobuttons.d.ts +18 -0
  17. package/controls/checkbox/radiobuttons.d.ts.map +1 -0
  18. package/controls/confirm/confirm.d.ts +10 -0
  19. package/controls/confirm/confirm.d.ts.map +1 -0
  20. package/controls/confirm/confirm.module.d.ts +17 -0
  21. package/controls/confirm/confirm.module.d.ts.map +1 -0
  22. package/controls/confirm/confirm.service.d.ts +59 -0
  23. package/controls/confirm/confirm.service.d.ts.map +1 -0
  24. package/controls/contextmenu/contextmenu.d.ts +20 -0
  25. package/controls/contextmenu/contextmenu.d.ts.map +1 -0
  26. package/controls/contextmenu/contextmenu.module.d.ts +13 -0
  27. package/controls/contextmenu/contextmenu.module.d.ts.map +1 -0
  28. package/controls/contextmenu/contextmenuanchor.d.ts +16 -0
  29. package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -0
  30. package/controls/contextmenu/contextmenucontainer.d.ts +16 -0
  31. package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -0
  32. package/controls/contextmenu/contextmenuitembutton.d.ts +15 -0
  33. package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -0
  34. package/controls/contextmenu/contextmenuitemsplitter.d.ts +10 -0
  35. package/controls/contextmenu/contextmenuitemsplitter.d.ts.map +1 -0
  36. package/controls/contextmenu/index.d.ts +2 -0
  37. package/controls/contextmenu/index.d.ts.map +1 -0
  38. package/controls/datetime/date.d.ts +19 -0
  39. package/controls/datetime/date.d.ts.map +1 -0
  40. package/controls/datetime/dateselector.d.ts +10 -0
  41. package/controls/datetime/dateselector.d.ts.map +1 -0
  42. package/controls/datetime/datetime.d.ts +19 -0
  43. package/controls/datetime/datetime.d.ts.map +1 -0
  44. package/controls/datetime/datetime.module.d.ts +13 -0
  45. package/controls/datetime/datetime.module.d.ts.map +1 -0
  46. package/controls/datetime/time.d.ts +19 -0
  47. package/controls/datetime/time.d.ts.map +1 -0
  48. package/controls/dialog/dialog.d.ts +29 -0
  49. package/controls/dialog/dialog.d.ts.map +1 -0
  50. package/controls/dialog/dialog.module.d.ts +9 -0
  51. package/controls/dialog/dialog.module.d.ts.map +1 -0
  52. package/controls/form/form.d.ts +37 -0
  53. package/controls/form/form.d.ts.map +1 -0
  54. package/controls/form/form.module.d.ts +11 -0
  55. package/controls/form/form.module.d.ts.map +1 -0
  56. package/controls/form/inheritform.directive.d.ts +51 -0
  57. package/controls/form/inheritform.directive.d.ts.map +1 -0
  58. package/controls/grid/grid.d.ts +24 -0
  59. package/controls/grid/grid.d.ts.map +1 -0
  60. package/controls/grid/grid.module.d.ts +15 -0
  61. package/controls/grid/grid.module.d.ts.map +1 -0
  62. package/controls/grid/gridbutton.d.ts +23 -0
  63. package/controls/grid/gridbutton.d.ts.map +1 -0
  64. package/controls/grid/gridcolumn.d.ts +18 -0
  65. package/controls/grid/gridcolumn.d.ts.map +1 -0
  66. package/controls/grid/gridcolumnaction.d.ts +18 -0
  67. package/controls/grid/gridcolumnaction.d.ts.map +1 -0
  68. package/controls/grid/gridimage.d.ts +15 -0
  69. package/controls/grid/gridimage.d.ts.map +1 -0
  70. package/controls/grid/paging.d.ts +16 -0
  71. package/controls/grid/paging.d.ts.map +1 -0
  72. package/controls/input/input.d.ts +18 -0
  73. package/controls/input/input.d.ts.map +1 -0
  74. package/controls/input/input.module.d.ts +16 -0
  75. package/controls/input/input.module.d.ts.map +1 -0
  76. package/controls/input/inputarea.d.ts +18 -0
  77. package/controls/input/inputarea.d.ts.map +1 -0
  78. package/controls/input/inputcurrency.d.ts +18 -0
  79. package/controls/input/inputcurrency.d.ts.map +1 -0
  80. package/controls/input/inputdecimal.d.ts +18 -0
  81. package/controls/input/inputdecimal.d.ts.map +1 -0
  82. package/controls/input/inputemail.d.ts +18 -0
  83. package/controls/input/inputemail.d.ts.map +1 -0
  84. package/controls/input/inputinteger.d.ts +18 -0
  85. package/controls/input/inputinteger.d.ts.map +1 -0
  86. package/controls/input/inputpassword.d.ts +18 -0
  87. package/controls/input/inputpassword.d.ts.map +1 -0
  88. package/controls/input/inputsearch.d.ts +18 -0
  89. package/controls/input/inputsearch.d.ts.map +1 -0
  90. package/controls/list/dropdown.d.ts +34 -0
  91. package/controls/list/dropdown.d.ts.map +1 -0
  92. package/controls/list/dropdown.module.d.ts +9 -0
  93. package/controls/list/dropdown.module.d.ts.map +1 -0
  94. package/controls/list/list.module.d.ts +9 -0
  95. package/controls/list/list.module.d.ts.map +1 -0
  96. package/controls/list/listbox.d.ts +32 -0
  97. package/controls/list/listbox.d.ts.map +1 -0
  98. package/controls/multilanguage/multilanguage.module.d.ts +14 -0
  99. package/controls/multilanguage/multilanguage.module.d.ts.map +1 -0
  100. package/controls/multilanguage/multilanguageinput.d.ts +22 -0
  101. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -0
  102. package/controls/multilanguage/multilanguageinputarea.d.ts +22 -0
  103. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -0
  104. package/controls/multilanguage/multilanguagemenu.d.ts +20 -0
  105. package/controls/multilanguage/multilanguagemenu.d.ts.map +1 -0
  106. package/controls/multilanguage/multilanguagemenuanchor.d.ts +16 -0
  107. package/controls/multilanguage/multilanguagemenuanchor.d.ts.map +1 -0
  108. package/controls/multilanguage/multilanguagemenucontainer.d.ts +16 -0
  109. package/controls/multilanguage/multilanguagemenucontainer.d.ts.map +1 -0
  110. package/controls/multilanguage/multilanguagemenuitembutton.d.ts +15 -0
  111. package/controls/multilanguage/multilanguagemenuitembutton.d.ts.map +1 -0
  112. package/controls/static/formcontainer.d.ts +29 -0
  113. package/controls/static/formcontainer.d.ts.map +1 -0
  114. package/controls/static/staticlabel.d.ts +18 -0
  115. package/controls/static/staticlabel.d.ts.map +1 -0
  116. package/controls/static/staticlabel.module.d.ts +10 -0
  117. package/controls/static/staticlabel.module.d.ts.map +1 -0
  118. package/controls/tabs/tab.d.ts +21 -0
  119. package/controls/tabs/tab.d.ts.map +1 -0
  120. package/controls/tabs/tabitem.d.ts +10 -0
  121. package/controls/tabs/tabitem.d.ts.map +1 -0
  122. package/controls/tabs/tabs.module.d.ts +10 -0
  123. package/controls/tabs/tabs.module.d.ts.map +1 -0
  124. package/controls/tinymce/tinymce.d.ts +24 -0
  125. package/controls/tinymce/tinymce.d.ts.map +1 -0
  126. package/controls/tinymce/tinymce.module.d.ts +8 -0
  127. package/controls/tinymce/tinymce.module.d.ts.map +1 -0
  128. package/controls/upload/dropzonemultiple.d.ts +25 -0
  129. package/controls/upload/dropzonemultiple.d.ts.map +1 -0
  130. package/controls/upload/dropzonesingle.d.ts +25 -0
  131. package/controls/upload/dropzonesingle.d.ts.map +1 -0
  132. package/controls/upload/upload.d.ts +21 -0
  133. package/controls/upload/upload.d.ts.map +1 -0
  134. package/controls/upload/upload.module.d.ts +13 -0
  135. package/controls/upload/upload.module.d.ts.map +1 -0
  136. package/controls/upload/uploadmultiple.d.ts +21 -0
  137. package/controls/upload/uploadmultiple.d.ts.map +1 -0
  138. package/controls/validation/validationsummary.d.ts +18 -0
  139. package/controls/validation/validationsummary.d.ts.map +1 -0
  140. package/controls/validation/validationsummary.module.d.ts +9 -0
  141. package/controls/validation/validationsummary.module.d.ts.map +1 -0
  142. package/controls/wizard/wizard.d.ts +21 -0
  143. package/controls/wizard/wizard.d.ts.map +1 -0
  144. package/controls/wizard/wizard.module.d.ts +10 -0
  145. package/controls/wizard/wizard.module.d.ts.map +1 -0
  146. package/controls/wizard/wizarditem.d.ts +10 -0
  147. package/controls/wizard/wizarditem.d.ts.map +1 -0
  148. package/esm2022/components/browser/browser.mjs +121 -0
  149. package/esm2022/components/browser/browser.module.mjs +18 -0
  150. package/esm2022/controls/buttons/button.mjs +19 -0
  151. package/esm2022/controls/buttons/button.module.mjs +22 -0
  152. package/esm2022/controls/checkbox/checkbox.mjs +59 -0
  153. package/esm2022/controls/checkbox/checkbox.module.mjs +24 -0
  154. package/esm2022/controls/checkbox/radiobutton.mjs +27 -0
  155. package/esm2022/controls/checkbox/radiobuttons.mjs +58 -0
  156. package/esm2022/controls/confirm/confirm.mjs +24 -0
  157. package/esm2022/controls/confirm/confirm.module.mjs +31 -0
  158. package/esm2022/controls/confirm/confirm.service.mjs +89 -0
  159. package/esm2022/controls/contextmenu/contextmenu.mjs +48 -0
  160. package/esm2022/controls/contextmenu/contextmenu.module.mjs +38 -0
  161. package/esm2022/controls/contextmenu/contextmenuanchor.mjs +37 -0
  162. package/esm2022/controls/contextmenu/contextmenucontainer.mjs +37 -0
  163. package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +25 -0
  164. package/esm2022/controls/contextmenu/contextmenuitemsplitter.mjs +16 -0
  165. package/esm2022/controls/contextmenu/index.mjs +2 -0
  166. package/esm2022/controls/datetime/date.mjs +72 -0
  167. package/esm2022/controls/datetime/dateselector.mjs +22 -0
  168. package/esm2022/controls/datetime/datetime.mjs +66 -0
  169. package/esm2022/controls/datetime/datetime.module.mjs +26 -0
  170. package/esm2022/controls/datetime/time.mjs +66 -0
  171. package/esm2022/controls/dialog/dialog.mjs +43 -0
  172. package/esm2022/controls/dialog/dialog.module.mjs +22 -0
  173. package/esm2022/controls/form/form.mjs +58 -0
  174. package/esm2022/controls/form/form.module.mjs +29 -0
  175. package/esm2022/controls/form/inheritform.directive.mjs +87 -0
  176. package/esm2022/controls/grid/grid.mjs +52 -0
  177. package/esm2022/controls/grid/grid.module.mjs +29 -0
  178. package/esm2022/controls/grid/gridbutton.mjs +49 -0
  179. package/esm2022/controls/grid/gridcolumn.mjs +36 -0
  180. package/esm2022/controls/grid/gridcolumnaction.mjs +37 -0
  181. package/esm2022/controls/grid/gridimage.mjs +30 -0
  182. package/esm2022/controls/grid/paging.mjs +46 -0
  183. package/esm2022/controls/input/input.mjs +46 -0
  184. package/esm2022/controls/input/input.module.mjs +29 -0
  185. package/esm2022/controls/input/inputarea.mjs +58 -0
  186. package/esm2022/controls/input/inputcurrency.mjs +58 -0
  187. package/esm2022/controls/input/inputdecimal.mjs +58 -0
  188. package/esm2022/controls/input/inputemail.mjs +58 -0
  189. package/esm2022/controls/input/inputinteger.mjs +58 -0
  190. package/esm2022/controls/input/inputpassword.mjs +58 -0
  191. package/esm2022/controls/input/inputsearch.mjs +53 -0
  192. package/esm2022/controls/list/dropdown.mjs +90 -0
  193. package/esm2022/controls/list/dropdown.module.mjs +24 -0
  194. package/esm2022/controls/list/list.module.mjs +18 -0
  195. package/esm2022/controls/list/listbox.mjs +91 -0
  196. package/esm2022/controls/multilanguage/multilanguage.module.mjs +33 -0
  197. package/esm2022/controls/multilanguage/multilanguageinput.mjs +72 -0
  198. package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +72 -0
  199. package/esm2022/controls/multilanguage/multilanguagemenu.mjs +47 -0
  200. package/esm2022/controls/multilanguage/multilanguagemenuanchor.mjs +37 -0
  201. package/esm2022/controls/multilanguage/multilanguagemenucontainer.mjs +37 -0
  202. package/esm2022/controls/multilanguage/multilanguagemenuitembutton.mjs +25 -0
  203. package/esm2022/controls/static/formcontainer.mjs +68 -0
  204. package/esm2022/controls/static/staticlabel.mjs +53 -0
  205. package/esm2022/controls/static/staticlabel.module.mjs +23 -0
  206. package/esm2022/controls/tabs/tab.mjs +32 -0
  207. package/esm2022/controls/tabs/tabitem.mjs +17 -0
  208. package/esm2022/controls/tabs/tabs.module.mjs +23 -0
  209. package/esm2022/controls/tinymce/tinymce.mjs +76 -0
  210. package/esm2022/controls/tinymce/tinymce.module.mjs +17 -0
  211. package/esm2022/controls/upload/dropzonemultiple.mjs +66 -0
  212. package/esm2022/controls/upload/dropzonesingle.mjs +66 -0
  213. package/esm2022/controls/upload/upload.mjs +52 -0
  214. package/esm2022/controls/upload/upload.module.mjs +36 -0
  215. package/esm2022/controls/upload/uploadmultiple.mjs +61 -0
  216. package/esm2022/controls/validation/validationsummary.mjs +52 -0
  217. package/esm2022/controls/validation/validationsummary.module.mjs +22 -0
  218. package/esm2022/controls/wizard/wizard.mjs +37 -0
  219. package/esm2022/controls/wizard/wizard.module.mjs +23 -0
  220. package/esm2022/controls/wizard/wizarditem.mjs +16 -0
  221. package/esm2022/public_api.mjs +73 -0
  222. package/esm2022/simpleangularcontrols-sac-bootstrap4.mjs +5 -0
  223. package/fesm2022/simpleangularcontrols-sac-bootstrap4.mjs +2741 -0
  224. package/fesm2022/simpleangularcontrols-sac-bootstrap4.mjs.map +1 -0
  225. package/index.d.ts +6 -0
  226. package/package.json +37 -0
  227. package/public_api.d.ts +68 -0
  228. package/public_api.d.ts.map +1 -0
  229. package/simpleangularcontrols-sac-bootstrap4-16.0.0-rc.1.tgz +0 -0
  230. package/simpleangularcontrols-sac-bootstrap4.d.ts.map +1 -0
@@ -0,0 +1,121 @@
1
+ import { AsyncPipe, NgClass, NgForOf, NgIf, NgTemplateOutlet, } from '@angular/common';
2
+ import { HttpClientModule } from '@angular/common/http';
3
+ import { Component, ViewChild } from '@angular/core';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { SacFileBrowserCommon, } from '@simpleangularcontrols/sac-common';
6
+ import { Observable, forkJoin } from 'rxjs';
7
+ import { ServiceConfirm } from '../../controls/confirm/confirm.service';
8
+ import { SacContextmenuComponent } from '../../controls/contextmenu';
9
+ import { SacContextmenuItemButtonComponent } from '../../controls/contextmenu/contextmenuitembutton';
10
+ import { SacContextmenuItemSplitterComponent } from '../../controls/contextmenu/contextmenuitemsplitter';
11
+ import { SacDropzoneMultipleComponent } from '../../controls/upload/dropzonemultiple';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/common/http";
14
+ import * as i2 from "../../controls/confirm/confirm.service";
15
+ import * as i3 from "@angular/forms";
16
+ /**
17
+ * Server File Browser Komponente
18
+ */
19
+ class SacBrowserComponent extends SacFileBrowserCommon {
20
+ /**
21
+ * Konstruktor
22
+ * @param httpClient HTTP Client
23
+ * @param injector Angular Dependency Injection Service
24
+ * @param confirmService Confirm Service
25
+ */
26
+ constructor(httpClient, injector, confirmService) {
27
+ super(httpClient, injector);
28
+ this.confirmService = confirmService;
29
+ }
30
+ /**
31
+ * Erzeugt ein Array von einer bestimmten grösse
32
+ * @param anzahl Grösse des Array
33
+ * @returns Array
34
+ */
35
+ count(anzahl) {
36
+ return new Array(anzahl);
37
+ }
38
+ /**
39
+ * Confirm Action wenn ein File gelöscht werden soll
40
+ * @param file File das gelöscht werden soll.
41
+ * @returns Observable ob File gelöscht werden kann.
42
+ */
43
+ confirmDeleteFile(file) {
44
+ return new Observable((observer) => {
45
+ forkJoin({
46
+ title: this.lngResourceService.GetString('FILEBROWSER_DELETE'),
47
+ message: this.lngResourceService.GetString('FILEBROWSER_CONFIRM_DELETEFILE'),
48
+ }).subscribe((text) => {
49
+ this.confirmService
50
+ .ConfirmMessage(text.title, text.message)
51
+ .subscribe((result) => {
52
+ if (result === 'yes') {
53
+ observer.next(true);
54
+ }
55
+ else {
56
+ observer.next(false);
57
+ }
58
+ observer.complete();
59
+ });
60
+ });
61
+ });
62
+ }
63
+ /**
64
+ * Confirm Action wenn ein Ordner gelöscht werden soll
65
+ * @param node Ordner der gelöscht werden soll
66
+ * @returns Observable ob Ordner gelöscht kann.
67
+ */
68
+ confirmDeleteNode(node) {
69
+ return new Observable((observer) => {
70
+ forkJoin({
71
+ title: this.lngResourceService.GetString('FILEBROWSER_DELETE'),
72
+ message: this.lngResourceService.GetString('FILEBROWSER_CONFIRM_DELETEFOLDER'),
73
+ }).subscribe((text) => {
74
+ this.confirmService
75
+ .ConfirmMessage(text.title, text.message)
76
+ .subscribe((result) => {
77
+ if (result === 'yes') {
78
+ observer.next(true);
79
+ }
80
+ else {
81
+ observer.next(false);
82
+ }
83
+ observer.complete();
84
+ });
85
+ });
86
+ });
87
+ }
88
+ /**
89
+ * Methode wird aufgerufen, wenn eine Datei verschoben wird
90
+ * @param uploadid Upload ID
91
+ */
92
+ uploadedFileMoved(uploadid) {
93
+ const item = this.uploadComponent.uploads.find((itm) => itm.documentid === uploadid);
94
+ if (item) {
95
+ this.uploadComponent.cancel(item.uploadId);
96
+ }
97
+ }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacBrowserComponent, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.ServiceConfirm }], target: i0.ɵɵFactoryTarget.Component }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacBrowserComponent, isStandalone: true, selector: "sac-filebrowser", providers: [ServiceConfirm], viewQueries: [{ propertyName: "uploadComponent", first: true, predicate: SacDropzoneMultipleComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 col-md-5 col-lg-4\">\r\n <ul class=\"list-group list-group-flush\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{node: rootNode, deep: 0}\"\r\n ></ng-template>\r\n </ul>\r\n\r\n <ng-template #treeItem let-node=\"node\" let-deep=\"deep\">\r\n <li\r\n class=\"list-group-item py-1 px-2 d-flex align-items-center\"\r\n [class.list-group-item-secondary]=\"node === selectedNode\"\r\n (click)=\"selectNode(node)\"\r\n style=\"cursor: pointer\"\r\n >\r\n <div class=\"mx-3\" *ngFor=\"let i of count(deep)\"></div>\r\n <div\r\n (click)=\"switchExpandNode(node);$event.stopPropagation();\"\r\n class=\"mr-2\"\r\n [ngClass]=\"node.ChildNodes.length === 0 ? iconFolderEmpty: (!node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderCollabsed : (node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderOpen : ''))\"\r\n ></div>\r\n <ng-container *ngIf=\"!node.IsEditMode\">\r\n <div class=\"flex-grow-1\">{{ node.Name }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"node.IsEditMode\">\r\n <div class=\"flex-grow-1\" ngForm>\r\n <input\r\n name=\"editFolder\"\r\n class=\"form-control form-control-sm\"\r\n [ngModel]=\"node.Name\"\r\n [ngModelOptions]=\"{updateOn: 'blur'}\"\r\n (ngModelChange)=\"renameNode(node, $event)\"\r\n (keydown.enter)=\"$event.target.blur();false;\"\r\n (blur)=\"renameNode(node, null)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n </div>\r\n </ng-container>\r\n <div class=\"flex-shrink-0\">\r\n <a\r\n *ngIf=\"node.Path !== '/' && allowfolderrename\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"editNode(node);$event.stopPropagation();\"\r\n >\r\n <i [class]=\"iconEdit\"></i>\r\n </a>\r\n <sac-contextmenu cssclass=\"d-inline-block\">\r\n <sac-contextmenubutton\r\n *ngIf=\"allowfoldercreate\"\r\n text=\"{{ lngResourceService.GetString('FILEBROWSER_NEWFOLDER') | async }}\"\r\n [icon]=\"iconFolderNew\"\r\n (clicked)=\"newNode(node)\"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenubutton\r\n *ngIf=\"node.Path !== '/' && allowfolderdelete\"\r\n text=\"{{ lngResourceService.GetString('FILEBROWSER_DELETE') | async }}\"\r\n [icon]=\"iconDelete\"\r\n (clicked)=\"deleteNode(node)\"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenusplitter\r\n *ngIf=\"allowfoldercreate || (node.Path !== '/' && allowfolderdelete)\"\r\n ></sac-contextmenusplitter>\r\n <sac-contextmenubutton\r\n text=\"{{ lngResourceService.GetString('FILEBROWSER_REFRESH') | async }}\"\r\n [icon]=\"iconRefresh\"\r\n (clicked)=\"refreshNode(node)\"\r\n ></sac-contextmenubutton>\r\n </sac-contextmenu>\r\n </div>\r\n </li>\r\n\r\n <ng-container *ngIf=\"node.IsExpanded\">\r\n <ng-template\r\n *ngFor=\"let child of node.ChildNodes\"\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 </div>\r\n <div class=\"col-12 col-md-7 col-lg-8\">\r\n <ng-container *ngIf=\"selectedNode && selectedNode.Files\">\r\n <div *ngIf=\"allowfileupload\" ngForm>\r\n <sac-dropzonemultiple\r\n [disablelabel]=\"true\"\r\n [endpoint]=\"apiurl + '/uploadregister'\"\r\n name=\"upload\"\r\n uploadheight=\"5rem\"\r\n [ngModel]=\"uploads\"\r\n (ngModelChange)=\"uploadComplete(selectedNode,$event)\"\r\n [allowedtypes]=\"allowedtypes\"\r\n >{{ lngResourceService.GetString('FILEBROWSER_UPLOAD') | async\r\n }}</sac-dropzonemultiple\r\n >\r\n </div>\r\n <div class=\"table-responsive\">\r\n <table class=\"table table-striped table-hover align-middle\">\r\n <thead>\r\n <th>\r\n {{ lngResourceService.GetString('FILEBROWSER_GRID_FILE') | async\r\n }}\r\n </th>\r\n <th>\r\n {{ lngResourceService.GetString('FILEBROWSER_GRID_SIZE') | async\r\n }}\r\n </th>\r\n <th style=\"width: 80px\"></th>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngIf=\"selectedNode.Files.length === 0\">\r\n <tr>\r\n <td colspan=\"3\">\r\n {{ lngResourceService.GetString('FILEBROWSER_NO_FILES') |\r\n async }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedNode.Files.length > 0\">\r\n <tr\r\n *ngFor=\"let item of selectedNode.Files\"\r\n (click)=\"selectFile(item)\"\r\n [class.table-primary]=\"selectedFileItem === item\"\r\n >\r\n <td [class.p-2]=\"item.IsEditMode\">\r\n <ng-container *ngIf=\"!item.IsEditMode\">\r\n {{ item.Filename }}\r\n </ng-container>\r\n <ng-container *ngIf=\"item.IsEditMode\">\r\n <div>\r\n <input\r\n name=\"editFolder\"\r\n class=\"form-control form-control-sm\"\r\n [ngModel]=\"item.Filename\"\r\n [ngModelOptions]=\"{updateOn: 'blur'}\"\r\n (ngModelChange)=\"renameFile(item, $event)\"\r\n (keydown.enter)=\"$event.target.blur();false\"\r\n (blur)=\"renameFile(item, null)\"\r\n (click)=\"$event.stopPropagation();\"\r\n />\r\n </div>\r\n </ng-container>\r\n </td>\r\n <td>{{ item.Size}}</td>\r\n <td class=\"p-2\">\r\n <div class=\"btn-toolbar\" role=\"toolbar\">\r\n <div class=\"btn-group ml-auto\" role=\"group\">\r\n <a\r\n *ngIf=\"allowfilerename\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"editFile(item);$event.stopPropagation();\"\r\n ><i [class]=\"iconEdit\"></i\r\n ></a>\r\n </div>\r\n <div class=\"btn-group\" role=\"group\">\r\n <a\r\n *ngIf=\"allowfiledelete\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"deleteFile(item);$event.stopPropagation();\"\r\n ><i [class]=\"iconDelete\"></i\r\n ></a>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: HttpClientModule }, { kind: "component", type: SacContextmenuComponent, selector: "sac-contextmenu" }, { kind: "component", type: SacContextmenuItemButtonComponent, selector: "sac-contextmenubutton" }, { kind: "component", type: SacContextmenuItemSplitterComponent, selector: "sac-contextmenusplitter" }, { kind: "component", type: SacDropzoneMultipleComponent, selector: "sac-dropzonemultiple" }] }); }
100
+ }
101
+ export { SacBrowserComponent };
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacBrowserComponent, decorators: [{
103
+ type: Component,
104
+ args: [{ selector: 'sac-filebrowser', standalone: true, imports: [
105
+ NgTemplateOutlet,
106
+ NgIf,
107
+ NgForOf,
108
+ NgClass,
109
+ AsyncPipe,
110
+ FormsModule,
111
+ HttpClientModule,
112
+ SacContextmenuComponent,
113
+ SacContextmenuItemButtonComponent,
114
+ SacContextmenuItemSplitterComponent,
115
+ SacDropzoneMultipleComponent,
116
+ ], providers: [ServiceConfirm], template: "<div class=\"row\">\r\n <div class=\"col-12 col-md-5 col-lg-4\">\r\n <ul class=\"list-group list-group-flush\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"treeItem\"\r\n [ngTemplateOutletContext]=\"{node: rootNode, deep: 0}\"\r\n ></ng-template>\r\n </ul>\r\n\r\n <ng-template #treeItem let-node=\"node\" let-deep=\"deep\">\r\n <li\r\n class=\"list-group-item py-1 px-2 d-flex align-items-center\"\r\n [class.list-group-item-secondary]=\"node === selectedNode\"\r\n (click)=\"selectNode(node)\"\r\n style=\"cursor: pointer\"\r\n >\r\n <div class=\"mx-3\" *ngFor=\"let i of count(deep)\"></div>\r\n <div\r\n (click)=\"switchExpandNode(node);$event.stopPropagation();\"\r\n class=\"mr-2\"\r\n [ngClass]=\"node.ChildNodes.length === 0 ? iconFolderEmpty: (!node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderCollabsed : (node.IsExpanded && node.ChildNodes.length > 0 ? iconFolderOpen : ''))\"\r\n ></div>\r\n <ng-container *ngIf=\"!node.IsEditMode\">\r\n <div class=\"flex-grow-1\">{{ node.Name }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"node.IsEditMode\">\r\n <div class=\"flex-grow-1\" ngForm>\r\n <input\r\n name=\"editFolder\"\r\n class=\"form-control form-control-sm\"\r\n [ngModel]=\"node.Name\"\r\n [ngModelOptions]=\"{updateOn: 'blur'}\"\r\n (ngModelChange)=\"renameNode(node, $event)\"\r\n (keydown.enter)=\"$event.target.blur();false;\"\r\n (blur)=\"renameNode(node, null)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n </div>\r\n </ng-container>\r\n <div class=\"flex-shrink-0\">\r\n <a\r\n *ngIf=\"node.Path !== '/' && allowfolderrename\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"editNode(node);$event.stopPropagation();\"\r\n >\r\n <i [class]=\"iconEdit\"></i>\r\n </a>\r\n <sac-contextmenu cssclass=\"d-inline-block\">\r\n <sac-contextmenubutton\r\n *ngIf=\"allowfoldercreate\"\r\n text=\"{{ lngResourceService.GetString('FILEBROWSER_NEWFOLDER') | async }}\"\r\n [icon]=\"iconFolderNew\"\r\n (clicked)=\"newNode(node)\"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenubutton\r\n *ngIf=\"node.Path !== '/' && allowfolderdelete\"\r\n text=\"{{ lngResourceService.GetString('FILEBROWSER_DELETE') | async }}\"\r\n [icon]=\"iconDelete\"\r\n (clicked)=\"deleteNode(node)\"\r\n ></sac-contextmenubutton>\r\n <sac-contextmenusplitter\r\n *ngIf=\"allowfoldercreate || (node.Path !== '/' && allowfolderdelete)\"\r\n ></sac-contextmenusplitter>\r\n <sac-contextmenubutton\r\n text=\"{{ lngResourceService.GetString('FILEBROWSER_REFRESH') | async }}\"\r\n [icon]=\"iconRefresh\"\r\n (clicked)=\"refreshNode(node)\"\r\n ></sac-contextmenubutton>\r\n </sac-contextmenu>\r\n </div>\r\n </li>\r\n\r\n <ng-container *ngIf=\"node.IsExpanded\">\r\n <ng-template\r\n *ngFor=\"let child of node.ChildNodes\"\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 </div>\r\n <div class=\"col-12 col-md-7 col-lg-8\">\r\n <ng-container *ngIf=\"selectedNode && selectedNode.Files\">\r\n <div *ngIf=\"allowfileupload\" ngForm>\r\n <sac-dropzonemultiple\r\n [disablelabel]=\"true\"\r\n [endpoint]=\"apiurl + '/uploadregister'\"\r\n name=\"upload\"\r\n uploadheight=\"5rem\"\r\n [ngModel]=\"uploads\"\r\n (ngModelChange)=\"uploadComplete(selectedNode,$event)\"\r\n [allowedtypes]=\"allowedtypes\"\r\n >{{ lngResourceService.GetString('FILEBROWSER_UPLOAD') | async\r\n }}</sac-dropzonemultiple\r\n >\r\n </div>\r\n <div class=\"table-responsive\">\r\n <table class=\"table table-striped table-hover align-middle\">\r\n <thead>\r\n <th>\r\n {{ lngResourceService.GetString('FILEBROWSER_GRID_FILE') | async\r\n }}\r\n </th>\r\n <th>\r\n {{ lngResourceService.GetString('FILEBROWSER_GRID_SIZE') | async\r\n }}\r\n </th>\r\n <th style=\"width: 80px\"></th>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngIf=\"selectedNode.Files.length === 0\">\r\n <tr>\r\n <td colspan=\"3\">\r\n {{ lngResourceService.GetString('FILEBROWSER_NO_FILES') |\r\n async }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"selectedNode.Files.length > 0\">\r\n <tr\r\n *ngFor=\"let item of selectedNode.Files\"\r\n (click)=\"selectFile(item)\"\r\n [class.table-primary]=\"selectedFileItem === item\"\r\n >\r\n <td [class.p-2]=\"item.IsEditMode\">\r\n <ng-container *ngIf=\"!item.IsEditMode\">\r\n {{ item.Filename }}\r\n </ng-container>\r\n <ng-container *ngIf=\"item.IsEditMode\">\r\n <div>\r\n <input\r\n name=\"editFolder\"\r\n class=\"form-control form-control-sm\"\r\n [ngModel]=\"item.Filename\"\r\n [ngModelOptions]=\"{updateOn: 'blur'}\"\r\n (ngModelChange)=\"renameFile(item, $event)\"\r\n (keydown.enter)=\"$event.target.blur();false\"\r\n (blur)=\"renameFile(item, null)\"\r\n (click)=\"$event.stopPropagation();\"\r\n />\r\n </div>\r\n </ng-container>\r\n </td>\r\n <td>{{ item.Size}}</td>\r\n <td class=\"p-2\">\r\n <div class=\"btn-toolbar\" role=\"toolbar\">\r\n <div class=\"btn-group ml-auto\" role=\"group\">\r\n <a\r\n *ngIf=\"allowfilerename\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"editFile(item);$event.stopPropagation();\"\r\n ><i [class]=\"iconEdit\"></i\r\n ></a>\r\n </div>\r\n <div class=\"btn-group\" role=\"group\">\r\n <a\r\n *ngIf=\"allowfiledelete\"\r\n class=\"btn btn-sm btn-link text-secondary\"\r\n (click)=\"deleteFile(item);$event.stopPropagation();\"\r\n ><i [class]=\"iconDelete\"></i\r\n ></a>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n" }]
117
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.Injector }, { type: i2.ServiceConfirm }]; }, propDecorators: { uploadComponent: [{
118
+ type: ViewChild,
119
+ args: [SacDropzoneMultipleComponent, { static: false }]
120
+ }] } });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA0L3NyYy9jb21wb25lbnRzL2Jyb3dzZXIvYnJvd3Nlci50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA0L3NyYy9jb21wb25lbnRzL2Jyb3dzZXIvYnJvd3Nlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxJQUFJLEVBQ0osZ0JBQWdCLEdBQ2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBWSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFHTCxvQkFBb0IsR0FDckIsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDckcsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDekcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7O0FBRXRGOztHQUVHO0FBQ0gsTUFtQmEsbUJBQW9CLFNBQVEsb0JBQW9CO0lBTzNEOzs7OztPQUtHO0lBQ0gsWUFDRSxVQUFzQixFQUN0QixRQUFrQixFQUNWLGNBQThCO1FBRXRDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFGcEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBR3hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLE1BQWM7UUFDekIsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLElBQWtCO1FBQ2xDLE9BQU8sSUFBSSxVQUFVLENBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMxQyxRQUFRLENBQUM7Z0JBQ1AsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7Z0JBQzlELE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUN4QyxnQ0FBZ0MsQ0FDakM7YUFDRixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxjQUFjO3FCQUNoQixjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO3FCQUN4QyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDcEIsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO3dCQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNyQjt5QkFBTTt3QkFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUN0QjtvQkFDRCxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQUMsSUFBa0I7UUFDbEMsT0FBTyxJQUFJLFVBQVUsQ0FBVSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzFDLFFBQVEsQ0FBQztnQkFDUCxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDOUQsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQ3hDLGtDQUFrQyxDQUNuQzthQUNGLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGNBQWM7cUJBQ2hCLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7cUJBQ3hDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUNwQixJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7d0JBQ3BCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3JCO3lCQUFNO3dCQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ3RCO29CQUNELFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLFFBQWdCO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDNUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUNyQyxDQUFDO1FBRUYsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDOytHQWhHVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4REFGbkIsQ0FBQyxjQUFjLENBQUMsMkVBTWhCLDRCQUE0Qix1RUNoRHpDLG8zT0E0S0EsNENEOUlJLGdCQUFnQixvSkFDaEIsSUFBSSw2RkFDSixPQUFPLG1IQUNQLE9BQU8sK0VBQ1AsU0FBUyw2Q0FDVCxXQUFXLDg3QkFDWCxnQkFBZ0IsK0JBQ2hCLHVCQUF1Qiw0REFDdkIsaUNBQWlDLGtFQUNqQyxtQ0FBbUMsb0VBQ25DLDRCQUE0Qjs7U0FJbkIsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBbkIvQixTQUFTOytCQUNFLGlCQUFpQixjQUVmLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsaUNBQWlDO3dCQUNqQyxtQ0FBbUM7d0JBQ25DLDRCQUE0QjtxQkFDN0IsYUFDVSxDQUFDLGNBQWMsQ0FBQztxSkFPbkIsZUFBZTtzQkFEdEIsU0FBUzt1QkFBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFzeW5jUGlwZSxcclxuICBOZ0NsYXNzLFxyXG4gIE5nRm9yT2YsXHJcbiAgTmdJZixcclxuICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBJQnJvd3NlckZpbGUsXHJcbiAgSUJyb3dzZXJOb2RlLFxyXG4gIFNhY0ZpbGVCcm93c2VyQ29tbW9uLFxyXG59IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNlcnZpY2VDb25maXJtIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvY29uZmlybS9jb25maXJtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTYWNDb250ZXh0bWVudUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2NvbnRleHRtZW51JztcclxuaW1wb3J0IHsgU2FjQ29udGV4dG1lbnVJdGVtQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvY29udGV4dG1lbnUvY29udGV4dG1lbnVpdGVtYnV0dG9uJztcclxuaW1wb3J0IHsgU2FjQ29udGV4dG1lbnVJdGVtU3BsaXR0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250cm9scy9jb250ZXh0bWVudS9jb250ZXh0bWVudWl0ZW1zcGxpdHRlcic7XHJcbmltcG9ydCB7IFNhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250cm9scy91cGxvYWQvZHJvcHpvbmVtdWx0aXBsZSc7XHJcblxyXG4vKipcclxuICogU2VydmVyIEZpbGUgQnJvd3NlciBLb21wb25lbnRlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy1maWxlYnJvd3NlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Jyb3dzZXIuaHRtbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTmdJZixcclxuICAgIE5nRm9yT2YsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgQXN5bmNQaXBlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgU2FjQ29udGV4dG1lbnVDb21wb25lbnQsXHJcbiAgICBTYWNDb250ZXh0bWVudUl0ZW1CdXR0b25Db21wb25lbnQsXHJcbiAgICBTYWNDb250ZXh0bWVudUl0ZW1TcGxpdHRlckNvbXBvbmVudCxcclxuICAgIFNhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnQsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtTZXJ2aWNlQ29uZmlybV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNCcm93c2VyQ29tcG9uZW50IGV4dGVuZHMgU2FjRmlsZUJyb3dzZXJDb21tb24ge1xyXG4gIC8qKlxyXG4gICAqIFJlZmVyZW56IGF1ZiBVcGxvYWQgQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZChTYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwcml2YXRlIHVwbG9hZENvbXBvbmVudDogU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudDtcclxuXHJcbiAgLyoqXHJcbiAgICogS29uc3RydWt0b3JcclxuICAgKiBAcGFyYW0gaHR0cENsaWVudCBIVFRQIENsaWVudFxyXG4gICAqIEBwYXJhbSBpbmplY3RvciBBbmd1bGFyIERlcGVuZGVuY3kgSW5qZWN0aW9uIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gY29uZmlybVNlcnZpY2UgQ29uZmlybSBTZXJ2aWNlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBjb25maXJtU2VydmljZTogU2VydmljZUNvbmZpcm1cclxuICApIHtcclxuICAgIHN1cGVyKGh0dHBDbGllbnQsIGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVyemV1Z3QgZWluIEFycmF5IHZvbiBlaW5lciBiZXN0aW1tdGVuIGdyw7Zzc2VcclxuICAgKiBAcGFyYW0gYW56YWhsIEdyw7Zzc2UgZGVzIEFycmF5XHJcbiAgICogQHJldHVybnMgQXJyYXlcclxuICAgKi9cclxuICBwdWJsaWMgY291bnQoYW56YWhsOiBudW1iZXIpOiBBcnJheTx2b2lkPiB7XHJcbiAgICByZXR1cm4gbmV3IEFycmF5KGFuemFobCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25maXJtIEFjdGlvbiB3ZW5uIGVpbiBGaWxlIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBmaWxlIEZpbGUgZGFzIGdlbMO2c2NodCB3ZXJkZW4gc29sbC5cclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9iIEZpbGUgZ2Vsw7ZzY2h0IHdlcmRlbiBrYW5uLlxyXG4gICAqL1xyXG4gIGNvbmZpcm1EZWxldGVGaWxlKGZpbGU6IElCcm93c2VyRmlsZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KChvYnNlcnZlcikgPT4ge1xyXG4gICAgICBmb3JrSm9pbih7XHJcbiAgICAgICAgdGl0bGU6IHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZygnRklMRUJST1dTRVJfREVMRVRFJyksXHJcbiAgICAgICAgbWVzc2FnZTogdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKFxyXG4gICAgICAgICAgJ0ZJTEVCUk9XU0VSX0NPTkZJUk1fREVMRVRFRklMRSdcclxuICAgICAgICApLFxyXG4gICAgICB9KS5zdWJzY3JpYmUoKHRleHQpID0+IHtcclxuICAgICAgICB0aGlzLmNvbmZpcm1TZXJ2aWNlXHJcbiAgICAgICAgICAuQ29uZmlybU1lc3NhZ2UodGV4dC50aXRsZSwgdGV4dC5tZXNzYWdlKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09ICd5ZXMnKSB7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25maXJtIEFjdGlvbiB3ZW5uIGVpbiBPcmRuZXIgZ2Vsw7ZzY2h0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIG5vZGUgT3JkbmVyIGRlciBnZWzDtnNjaHQgd2VyZGVuIHNvbGxcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9iIE9yZG5lciBnZWzDtnNjaHQga2Fubi5cclxuICAgKi9cclxuICBjb25maXJtRGVsZXRlTm9kZShub2RlOiBJQnJvd3Nlck5vZGUpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigob2JzZXJ2ZXIpID0+IHtcclxuICAgICAgZm9ya0pvaW4oe1xyXG4gICAgICAgIHRpdGxlOiB0aGlzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoJ0ZJTEVCUk9XU0VSX0RFTEVURScpLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhcclxuICAgICAgICAgICdGSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZPTERFUidcclxuICAgICAgICApLFxyXG4gICAgICB9KS5zdWJzY3JpYmUoKHRleHQpID0+IHtcclxuICAgICAgICB0aGlzLmNvbmZpcm1TZXJ2aWNlXHJcbiAgICAgICAgICAuQ29uZmlybU1lc3NhZ2UodGV4dC50aXRsZSwgdGV4dC5tZXNzYWdlKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09ICd5ZXMnKSB7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIHdpcmQgYXVmZ2VydWZlbiwgd2VubiBlaW5lIERhdGVpIHZlcnNjaG9iZW4gd2lyZFxyXG4gICAqIEBwYXJhbSB1cGxvYWRpZCBVcGxvYWQgSURcclxuICAgKi9cclxuICB1cGxvYWRlZEZpbGVNb3ZlZCh1cGxvYWRpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy51cGxvYWRDb21wb25lbnQudXBsb2Fkcy5maW5kKFxyXG4gICAgICAoaXRtKSA9PiBpdG0uZG9jdW1lbnRpZCA9PT0gdXBsb2FkaWRcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgdGhpcy51cGxvYWRDb21wb25lbnQuY2FuY2VsKGl0ZW0udXBsb2FkSWQpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNSBjb2wtbGctNFwiPlxyXG4gICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cCBsaXN0LWdyb3VwLWZsdXNoXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRyZWVJdGVtXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie25vZGU6IHJvb3ROb2RlLCBkZWVwOiAwfVwiXHJcbiAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgPC91bD5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3RyZWVJdGVtIGxldC1ub2RlPVwibm9kZVwiIGxldC1kZWVwPVwiZGVlcFwiPlxyXG4gICAgICA8bGlcclxuICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBweS0xIHB4LTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgW2NsYXNzLmxpc3QtZ3JvdXAtaXRlbS1zZWNvbmRhcnldPVwibm9kZSA9PT0gc2VsZWN0ZWROb2RlXCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0Tm9kZShub2RlKVwiXHJcbiAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm14LTNcIiAqbmdGb3I9XCJsZXQgaSBvZiBjb3VudChkZWVwKVwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIChjbGljayk9XCJzd2l0Y2hFeHBhbmROb2RlKG5vZGUpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIlxyXG4gICAgICAgICAgY2xhc3M9XCJtci0yXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cIm5vZGUuQ2hpbGROb2Rlcy5sZW5ndGggPT09IDAgPyBpY29uRm9sZGVyRW1wdHk6ICghbm9kZS5Jc0V4cGFuZGVkICYmIG5vZGUuQ2hpbGROb2Rlcy5sZW5ndGggPiAwID8gaWNvbkZvbGRlckNvbGxhYnNlZCA6IChub2RlLklzRXhwYW5kZWQgJiYgbm9kZS5DaGlsZE5vZGVzLmxlbmd0aCA+IDAgPyBpY29uRm9sZGVyT3BlbiA6ICcnKSlcIlxyXG4gICAgICAgID48L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vZGUuSXNFZGl0TW9kZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+e3sgbm9kZS5OYW1lIH19PC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vZGUuSXNFZGl0TW9kZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCIgbmdGb3JtPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBuYW1lPVwiZWRpdEZvbGRlclwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCJcclxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJub2RlLk5hbWVcIlxyXG4gICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7dXBkYXRlT246ICdibHVyJ31cIlxyXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJlbmFtZU5vZGUobm9kZSwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnRhcmdldC5ibHVyKCk7ZmFsc2U7XCJcclxuICAgICAgICAgICAgICAoYmx1cik9XCJyZW5hbWVOb2RlKG5vZGUsIG51bGwpXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wXCI+XHJcbiAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAqbmdJZj1cIm5vZGUuUGF0aCAhPT0gJy8nICYmIGFsbG93Zm9sZGVycmVuYW1lXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saW5rIHRleHQtc2Vjb25kYXJ5XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXROb2RlKG5vZGUpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiaWNvbkVkaXRcIj48L2k+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8c2FjLWNvbnRleHRtZW51IGNzc2NsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgICAgICAgICAgPHNhYy1jb250ZXh0bWVudWJ1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWxsb3dmb2xkZXJjcmVhdGVcIlxyXG4gICAgICAgICAgICAgIHRleHQ9XCJ7eyBsbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKCdGSUxFQlJPV1NFUl9ORVdGT0xERVInKSB8IGFzeW5jIH19XCJcclxuICAgICAgICAgICAgICBbaWNvbl09XCJpY29uRm9sZGVyTmV3XCJcclxuICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJuZXdOb2RlKG5vZGUpXCJcclxuICAgICAgICAgICAgPjwvc2FjLWNvbnRleHRtZW51YnV0dG9uPlxyXG4gICAgICAgICAgICA8c2FjLWNvbnRleHRtZW51YnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJub2RlLlBhdGggIT09ICcvJyAmJiBhbGxvd2ZvbGRlcmRlbGV0ZVwiXHJcbiAgICAgICAgICAgICAgdGV4dD1cInt7IGxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoJ0ZJTEVCUk9XU0VSX0RFTEVURScpIHwgYXN5bmMgfX1cIlxyXG4gICAgICAgICAgICAgIFtpY29uXT1cImljb25EZWxldGVcIlxyXG4gICAgICAgICAgICAgIChjbGlja2VkKT1cImRlbGV0ZU5vZGUobm9kZSlcIlxyXG4gICAgICAgICAgICA+PC9zYWMtY29udGV4dG1lbnVidXR0b24+XHJcbiAgICAgICAgICAgIDxzYWMtY29udGV4dG1lbnVzcGxpdHRlclxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWxsb3dmb2xkZXJjcmVhdGUgfHwgKG5vZGUuUGF0aCAhPT0gJy8nICYmIGFsbG93Zm9sZGVyZGVsZXRlKVwiXHJcbiAgICAgICAgICAgID48L3NhYy1jb250ZXh0bWVudXNwbGl0dGVyPlxyXG4gICAgICAgICAgICA8c2FjLWNvbnRleHRtZW51YnV0dG9uXHJcbiAgICAgICAgICAgICAgdGV4dD1cInt7IGxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoJ0ZJTEVCUk9XU0VSX1JFRlJFU0gnKSB8IGFzeW5jIH19XCJcclxuICAgICAgICAgICAgICBbaWNvbl09XCJpY29uUmVmcmVzaFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrZWQpPVwicmVmcmVzaE5vZGUobm9kZSlcIlxyXG4gICAgICAgICAgICA+PC9zYWMtY29udGV4dG1lbnVidXR0b24+XHJcbiAgICAgICAgICA8L3NhYy1jb250ZXh0bWVudT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9saT5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLklzRXhwYW5kZWRcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBub2RlLkNoaWxkTm9kZXNcIlxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidHJlZUl0ZW1cIlxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntub2RlOiBjaGlsZCwgZGVlcDogZGVlcCArIDF9XCJcclxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTcgY29sLWxnLThcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZE5vZGUgJiYgc2VsZWN0ZWROb2RlLkZpbGVzXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhbGxvd2ZpbGV1cGxvYWRcIiBuZ0Zvcm0+XHJcbiAgICAgICAgPHNhYy1kcm9wem9uZW11bHRpcGxlXHJcbiAgICAgICAgICBbZGlzYWJsZWxhYmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgW2VuZHBvaW50XT1cImFwaXVybCArICcvdXBsb2FkcmVnaXN0ZXInXCJcclxuICAgICAgICAgIG5hbWU9XCJ1cGxvYWRcIlxyXG4gICAgICAgICAgdXBsb2FkaGVpZ2h0PVwiNXJlbVwiXHJcbiAgICAgICAgICBbbmdNb2RlbF09XCJ1cGxvYWRzXCJcclxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwbG9hZENvbXBsZXRlKHNlbGVjdGVkTm9kZSwkZXZlbnQpXCJcclxuICAgICAgICAgIFthbGxvd2VkdHlwZXNdPVwiYWxsb3dlZHR5cGVzXCJcclxuICAgICAgICAgID57eyBsbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKCdGSUxFQlJPV1NFUl9VUExPQUQnKSB8IGFzeW5jXHJcbiAgICAgICAgICB9fTwvc2FjLWRyb3B6b25lbXVsdGlwbGVcclxuICAgICAgICA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLXN0cmlwZWQgdGFibGUtaG92ZXIgYWxpZ24tbWlkZGxlXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICB7eyBsbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKCdGSUxFQlJPV1NFUl9HUklEX0ZJTEUnKSB8IGFzeW5jXHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRoPlxyXG4gICAgICAgICAgICAgIHt7IGxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoJ0ZJTEVCUk9XU0VSX0dSSURfU0laRScpIHwgYXN5bmNcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiPjwvdGg+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWROb2RlLkZpbGVzLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBsbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKCdGSUxFQlJPV1NFUl9OT19GSUxFUycpIHxcclxuICAgICAgICAgICAgICAgICAgYXN5bmMgfX1cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZE5vZGUuRmlsZXMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgIDx0clxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VsZWN0ZWROb2RlLkZpbGVzXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RGaWxlKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy50YWJsZS1wcmltYXJ5XT1cInNlbGVjdGVkRmlsZUl0ZW0gPT09IGl0ZW1cIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx0ZCBbY2xhc3MucC0yXT1cIml0ZW0uSXNFZGl0TW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uSXNFZGl0TW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uRmlsZW5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLklzRWRpdE1vZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlZGl0Rm9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiaXRlbS5GaWxlbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7dXBkYXRlT246ICdibHVyJ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJyZW5hbWVGaWxlKGl0ZW0sICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQudGFyZ2V0LmJsdXIoKTtmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInJlbmFtZUZpbGUoaXRlbSwgbnVsbClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+e3sgaXRlbS5TaXplfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tdG9vbGJhclwiIHJvbGU9XCJ0b29sYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cCBtbC1hdXRvXCIgcm9sZT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFsbG93ZmlsZXJlbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGluayB0ZXh0LXNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0RmlsZShpdGVtKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjxpIFtjbGFzc109XCJpY29uRWRpdFwiPjwvaVxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgcm9sZT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFsbG93ZmlsZWRlbGV0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGluayB0ZXh0LXNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVGaWxlKGl0ZW0pOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PGkgW2NsYXNzXT1cImljb25EZWxldGVcIj48L2lcclxuICAgICAgICAgICAgICAgICAgICAgID48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SacBrowserComponent } from './browser';
3
+ import * as i0 from "@angular/core";
4
+ class SACBootstrap4BrowserModule {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4BrowserModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4BrowserModule, imports: [SacBrowserComponent], exports: [SacBrowserComponent] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4BrowserModule, imports: [SacBrowserComponent] }); }
8
+ }
9
+ export { SACBootstrap4BrowserModule };
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4BrowserModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [],
14
+ imports: [SacBrowserComponent],
15
+ exports: [SacBrowserComponent],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29tcG9uZW50cy9icm93c2VyL2Jyb3dzZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUVoRCxNQUthLDBCQUEwQjsrR0FBMUIsMEJBQTBCO2dIQUExQiwwQkFBMEIsWUFIM0IsbUJBQW1CLGFBQ25CLG1CQUFtQjtnSEFFbEIsMEJBQTBCLFlBSDNCLG1CQUFtQjs7U0FHbEIsMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBTHRDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYWNCcm93c2VyQ29tcG9uZW50IH0gZnJvbSAnLi9icm93c2VyJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXSxcclxuICBpbXBvcnRzOiBbU2FjQnJvd3NlckNvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW1NhY0Jyb3dzZXJDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU0FDQm9vdHN0cmFwNEJyb3dzZXJNb2R1bGUge31cclxuIl19
@@ -0,0 +1,19 @@
1
+ import { Component } from '@angular/core';
2
+ import { SacButtonCommon } from '@simpleangularcontrols/sac-common';
3
+ import { NgIf, NgClass } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Button Component
7
+ *
8
+ * <example-url>http://localhost/demo/mysample.component.html</example-url>
9
+ */
10
+ class SacButtonComponent extends SacButtonCommon {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacButtonComponent, isStandalone: true, selector: "sac-button", usesInheritance: true, ngImport: i0, template: "<button [id]=\"name\" type=\"button\" class=\"btn d-flex justify-content-center align-items-center\" [attr.disabled]=\"_isdisabled ? 'disabled' : null\" (click)=\"buttonClick()\"\r\n [class.btn-primary]=\"role === 'primary'\"\r\n [class.btn-secondary]=\"role === 'secondary' || role === 'default'\"\r\n [class.btn-success]=\"role === 'success'\"\r\n [class.btn-danger]=\"role === 'danger'\"\r\n [class.btn-warning]=\"role === 'warning'\"\r\n [class.btn-info]=\"role === 'info'\"\r\n [class.btn-link]=\"role === 'link'\">\r\n <i *ngIf=\"icon !== ''\" [ngClass]=\"icon\" class=\"mr-2\"></i>{{text}}\r\n</button>\r\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
13
+ }
14
+ export { SacButtonComponent };
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacButtonComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'sac-button', standalone: true, imports: [NgIf, NgClass], template: "<button [id]=\"name\" type=\"button\" class=\"btn d-flex justify-content-center align-items-center\" [attr.disabled]=\"_isdisabled ? 'disabled' : null\" (click)=\"buttonClick()\"\r\n [class.btn-primary]=\"role === 'primary'\"\r\n [class.btn-secondary]=\"role === 'secondary' || role === 'default'\"\r\n [class.btn-success]=\"role === 'success'\"\r\n [class.btn-danger]=\"role === 'danger'\"\r\n [class.btn-warning]=\"role === 'warning'\"\r\n [class.btn-info]=\"role === 'info'\"\r\n [class.btn-link]=\"role === 'link'\">\r\n <i *ngIf=\"icon !== ''\" [ngClass]=\"icon\" class=\"mr-2\"></i>{{text}}\r\n</button>\r\n" }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL2J1dHRvbnMvYnV0dG9uLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL2J1dHRvbnMvYnV0dG9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFaEQ7Ozs7R0FJRztBQUNILE1BTWEsa0JBQW1CLFNBQVEsZUFBZTsrR0FBMUMsa0JBQWtCO21HQUFsQixrQkFBa0IsNkZDZi9CLHlwQkFVQSw0Q0RHYyxJQUFJLDZGQUFFLE9BQU87O1NBRWQsa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0ksWUFBWSxjQUVWLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYWNCdXR0b25Db21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbi8qKlxyXG4gKiBCdXR0b24gQ29tcG9uZW50XHJcbiAqIFxyXG4gKiA8ZXhhbXBsZS11cmw+aHR0cDovL2xvY2FsaG9zdC9kZW1vL215c2FtcGxlLmNvbXBvbmVudC5odG1sPC9leGFtcGxlLXVybD5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzYWMtYnV0dG9uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uaHRtbCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW05nSWYsIE5nQ2xhc3NdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgU2FjQnV0dG9uQ29tbW9uIHtcclxuXHJcbn1cclxuIiwiPGJ1dHRvbiBbaWRdPVwibmFtZVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIiBbYXR0ci5kaXNhYmxlZF09XCJfaXNkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCIgKGNsaWNrKT1cImJ1dHRvbkNsaWNrKClcIlxyXG4gICAgICAgIFtjbGFzcy5idG4tcHJpbWFyeV09XCJyb2xlID09PSAncHJpbWFyeSdcIlxyXG4gICAgICAgIFtjbGFzcy5idG4tc2Vjb25kYXJ5XT1cInJvbGUgPT09ICdzZWNvbmRhcnknIHx8IHJvbGUgPT09ICdkZWZhdWx0J1wiXHJcbiAgICAgICAgW2NsYXNzLmJ0bi1zdWNjZXNzXT1cInJvbGUgPT09ICdzdWNjZXNzJ1wiXHJcbiAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwicm9sZSA9PT0gJ2RhbmdlcidcIlxyXG4gICAgICAgIFtjbGFzcy5idG4td2FybmluZ109XCJyb2xlID09PSAnd2FybmluZydcIlxyXG4gICAgICAgIFtjbGFzcy5idG4taW5mb109XCJyb2xlID09PSAnaW5mbydcIlxyXG4gICAgICAgIFtjbGFzcy5idG4tbGlua109XCJyb2xlID09PSAnbGluaydcIj5cclxuICA8aSAqbmdJZj1cImljb24gIT09ICcnXCIgW25nQ2xhc3NdPVwiaWNvblwiIGNsYXNzPVwibXItMlwiPjwvaT57e3RleHR9fVxyXG48L2J1dHRvbj5cclxuIl19
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SacButtonComponent } from './button';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ class SACBootstrap4ButtonModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4ButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4ButtonModule, imports: [CommonModule,
8
+ SacButtonComponent], exports: [SacButtonComponent] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4ButtonModule, imports: [CommonModule] }); }
10
+ }
11
+ export { SACBootstrap4ButtonModule };
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4ButtonModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [
16
+ CommonModule,
17
+ SacButtonComponent
18
+ ],
19
+ exports: [SacButtonComponent]
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA0L3NyYy9jb250cm9scy9idXR0b25zL2J1dHRvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUvQyxNQU9hLHlCQUF5QjsrR0FBekIseUJBQXlCO2dIQUF6Qix5QkFBeUIsWUFMOUIsWUFBWTtZQUNaLGtCQUFrQixhQUVaLGtCQUFrQjtnSEFFbkIseUJBQXlCLFlBTDlCLFlBQVk7O1NBS1AseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBUHJDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osa0JBQWtCO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYWNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBTYWNCdXR0b25Db21wb25lbnRcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbU2FjQnV0dG9uQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU0FDQm9vdHN0cmFwNEJ1dHRvbk1vZHVsZSB7IH1cclxuIl19
@@ -0,0 +1,59 @@
1
+ import { Component, forwardRef, Host, Optional } from '@angular/core';
2
+ import { ControlContainer, NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
+ // import { SacBaseModelControl } from '../../common/basemodelcontrol';
4
+ import { SacCheckboxCommon } from '@simpleangularcontrols/sac-common';
5
+ import { SacFormDirective } from '../form/form';
6
+ import { NgClass, NgIf } from '@angular/common';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../form/form";
9
+ /**
10
+ * Checkbox Kompontente
11
+ */
12
+ class SacCheckboxComponent extends SacCheckboxCommon {
13
+ /**
14
+ * Konstruktor
15
+ * @param parent Formular
16
+ * @param injector Angular Dependency Injection Service
17
+ */
18
+ constructor(parent, injector) {
19
+ super(parent, injector);
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacCheckboxComponent, deps: [{ token: i1.SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacCheckboxComponent, isStandalone: true, selector: "sac-checkbox", providers: [
23
+ {
24
+ provide: NG_VALUE_ACCESSOR,
25
+ multi: true,
26
+ useExisting: SacCheckboxComponent,
27
+ },
28
+ {
29
+ provide: NG_VALIDATORS,
30
+ useExisting: forwardRef(() => SacCheckboxComponent),
31
+ multi: true,
32
+ },
33
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <div class=\"col-12\" [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\">\r\n <ng-container *ngIf=\"!disablelabel\">{{label}}</ng-container>\r\n </div>\r\n <div class=\"col-12\" [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" id=\"{{name}}\" name=\"{{name}}\" type=\"checkbox\" [checked]=\"value\"\r\n (blur)=\"onTouch()\" (change)=\"setValue($event.target.checked)\" [disabled]=\"isdisabled\" />\r\n <label for=\"{{name}}\" class=\"form-check-label\">\r\n <ng-container *ngIf=\"checkboxtext\">{{checkboxtext}}</ng-container>\r\n </label>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], viewProviders: [
34
+ { provide: ControlContainer, useExisting: SacFormDirective },
35
+ ] }); }
36
+ }
37
+ export { SacCheckboxComponent };
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacCheckboxComponent, decorators: [{
39
+ type: Component,
40
+ args: [{ selector: 'sac-checkbox', providers: [
41
+ {
42
+ provide: NG_VALUE_ACCESSOR,
43
+ multi: true,
44
+ useExisting: SacCheckboxComponent,
45
+ },
46
+ {
47
+ provide: NG_VALIDATORS,
48
+ useExisting: forwardRef(() => SacCheckboxComponent),
49
+ multi: true,
50
+ },
51
+ ], viewProviders: [
52
+ { provide: ControlContainer, useExisting: SacFormDirective },
53
+ ], standalone: true, imports: [NgClass, NgIf], template: "<div class=\"row form-group\" [class.no-gutters]=\"disablelabel\">\r\n <div class=\"col-12\" [ngClass]=\"[disablelabel === false ? 'col-sm-' + labelsize : 'sr-only' ]\">\r\n <ng-container *ngIf=\"!disablelabel\">{{label}}</ng-container>\r\n </div>\r\n <div class=\"col-12\" [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" id=\"{{name}}\" name=\"{{name}}\" type=\"checkbox\" [checked]=\"value\"\r\n (blur)=\"onTouch()\" (change)=\"setValue($event.target.checked)\" [disabled]=\"isdisabled\" />\r\n <label for=\"{{name}}\" class=\"form-check-label\">\r\n <ng-container *ngIf=\"checkboxtext\">{{checkboxtext}}</ng-container>\r\n </label>\r\n </div>\r\n </div>\r\n</div>" }]
54
+ }], ctorParameters: function () { return [{ type: i1.SacFormDirective, decorators: [{
55
+ type: Host
56
+ }, {
57
+ type: Optional
58
+ }] }, { type: i0.Injector }]; } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvY2hlY2tib3gvY2hlY2tib3gudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvY2hlY2tib3gvY2hlY2tib3guaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQVksUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLHVFQUF1RTtBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRWhEOztHQUVHO0FBQ0gsTUF1QmEsb0JBQXFCLFNBQVEsaUJBQWlCO0lBQ3pEOzs7O09BSUc7SUFDSCxZQUFnQyxNQUF3QixFQUFFLFFBQWtCO1FBQzFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQzsrR0FSVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwyREFuQmxCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLG9CQUFvQjthQUNwQztZQUNEO2dCQUNJLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osaURDN0JMLDJ5QkFhTSw0Q0RzQlEsT0FBTyxvRkFBRSxJQUFJLGtGQUpSO1lBQ1gsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFO1NBQy9EOztTQUlRLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQXZCaEMsU0FBUzsrQkFDSSxjQUFjLGFBR2I7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxzQkFBc0I7eUJBQ3BDO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osaUJBRWM7d0JBQ1gsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFO3FCQUMvRCxjQUNXLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7OzBCQVFiLElBQUk7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xDb250YWluZXIsXHJcbiAgTkdfVkFMSURBVE9SUyxcclxuICBOR19WQUxVRV9BQ0NFU1NPUixcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbi8vIGltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZW1vZGVsY29udHJvbCc7XHJcbmltcG9ydCB7IFNhY0NoZWNrYm94Q29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcclxuaW1wb3J0IHsgU2FjRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4uL2Zvcm0vZm9ybSc7XHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuLyoqXHJcbiAqIENoZWNrYm94IEtvbXBvbnRlbnRlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc2FjLWNoZWNrYm94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5odG1sJyxcclxuICAgIC8vIFZhbHVlIEFjY2VzcyBQcm92aWRlciByZWdpc3RyaWVyZW4sIGRhbWl0IFdlcnQgdmlhIE1vZGVsIGdlc2NocmllYmVuIHVuZCBnZWxlc2VuIHdlcmRlbiBrYW5uXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNhY0NoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNDaGVja2JveENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgLy8gVmlldyBQcm92aWRlciwgZGFtaXQgZGFzIEZvcm11bGFyIGFuIGRhcyBDb250cm9sIGdlYnVuZGVuIHdlcmRlbiBrYW5uXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogU2FjRm9ybURpcmVjdGl2ZSB9LFxyXG4gICAgXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgTmdJZl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNDaGVja2JveENvbXBvbmVudCBleHRlbmRzIFNhY0NoZWNrYm94Q29tbW9uIHtcclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEBwYXJhbSBwYXJlbnQgRm9ybXVsYXJcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgQW5ndWxhciBEZXBlbmRlbmN5IEluamVjdGlvbiBTZXJ2aWNlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoQEhvc3QoKSBAT3B0aW9uYWwoKSBwYXJlbnQ6IFNhY0Zvcm1EaXJlY3RpdmUsIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgc3VwZXIocGFyZW50LCBpbmplY3Rvcik7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgZm9ybS1ncm91cFwiIFtjbGFzcy5uby1ndXR0ZXJzXT1cImRpc2FibGVsYWJlbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICAnY29sLXNtLScgKyBsYWJlbHNpemUgOiAnc3Itb25seScgXVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkaXNhYmxlbGFiZWxcIj57e2xhYmVsfX08L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCIgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAnY29sLXNtLScgKyBfaW5wdXRzaXplIDogJ2NvbC1zbS0xMiddXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgaWQ9XCJ7e25hbWV9fVwiIG5hbWU9XCJ7e25hbWV9fVwiIHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cInZhbHVlXCJcclxuICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIiAoY2hhbmdlKT1cInNldFZhbHVlKCRldmVudC50YXJnZXQuY2hlY2tlZClcIiBbZGlzYWJsZWRdPVwiaXNkaXNhYmxlZFwiIC8+XHJcbiAgICAgIDxsYWJlbCBmb3I9XCJ7e25hbWV9fVwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGVja2JveHRleHRcIj57e2NoZWNrYm94dGV4dH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SacCheckboxComponent } from './checkbox';
4
+ import { SacRadiobuttonComponent } from './radiobutton';
5
+ import { SacRadiobuttonsComponent } from './radiobuttons';
6
+ import * as i0 from "@angular/core";
7
+ class SACBootstrap4CheckboxModule {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4CheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4CheckboxModule, imports: [CommonModule,
10
+ SacCheckboxComponent, SacRadiobuttonComponent, SacRadiobuttonsComponent], exports: [SacCheckboxComponent, SacRadiobuttonComponent, SacRadiobuttonsComponent] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4CheckboxModule, imports: [CommonModule] }); }
12
+ }
13
+ export { SACBootstrap4CheckboxModule };
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4CheckboxModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ imports: [
18
+ CommonModule,
19
+ SacCheckboxComponent, SacRadiobuttonComponent, SacRadiobuttonsComponent
20
+ ],
21
+ exports: [SacCheckboxComponent, SacRadiobuttonComponent, SacRadiobuttonsComponent]
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL2NoZWNrYm94L2NoZWNrYm94Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUUxRCxNQU9hLDJCQUEyQjsrR0FBM0IsMkJBQTJCO2dIQUEzQiwyQkFBMkIsWUFMaEMsWUFBWTtZQUNaLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixhQUVqRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx3QkFBd0I7Z0hBRXhFLDJCQUEyQixZQUxoQyxZQUFZOztTQUtQLDJCQUEyQjs0RkFBM0IsMkJBQTJCO2tCQVB2QyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHdCQUF3QjtxQkFDMUU7b0JBQ0QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLENBQUM7aUJBQ3JGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2FjQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IHsgU2FjUmFkaW9idXR0b25Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvYnV0dG9uJztcclxuaW1wb3J0IHsgU2FjUmFkaW9idXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpb2J1dHRvbnMnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgU2FjQ2hlY2tib3hDb21wb25lbnQsIFNhY1JhZGlvYnV0dG9uQ29tcG9uZW50LCBTYWNSYWRpb2J1dHRvbnNDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbU2FjQ2hlY2tib3hDb21wb25lbnQsIFNhY1JhZGlvYnV0dG9uQ29tcG9uZW50LCBTYWNSYWRpb2J1dHRvbnNDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTQUNCb290c3RyYXA0Q2hlY2tib3hNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { Component, Host } from '@angular/core';
2
+ import { SacRadiobuttonCommon } from '@simpleangularcontrols/sac-common';
3
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./radiobuttons";
6
+ /**
7
+ * Radiobutton Komponente
8
+ */
9
+ class SacRadiobuttonComponent extends SacRadiobuttonCommon {
10
+ /**
11
+ * Konstruktor
12
+ * @param SacRadioButtons Radio Buttons Group Komponente
13
+ */
14
+ constructor(sacRadioButtons) {
15
+ super(sacRadioButtons);
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacRadiobuttonComponent, deps: [{ token: i1.SacRadiobuttonsComponent, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacRadiobuttonComponent, isStandalone: true, selector: "sac-radiobutton", usesInheritance: true, ngImport: i0, template: "<div class=\"form-check\" *ngIf=\"hidden===false\">\r\n <input id=\"{{getName}}_{{getIndex}}\" name=\"{{getName}}\" type=\"radio\" class=\"form-check-input\" [value]=\"value\"\r\n [checked]=\"checked\" (change)=\"ChangeEvent()\" [disabled]=\"isDisabled\" />\r\n <label for=\"{{getName}}_{{getIndex}}\" class=\"form-check-label\">\r\n <ng-template *ngTemplateOutlet=\"labeltemplate || defaultItemLabelTemplate;context:{ label: label }\">\r\n </ng-template>\r\n </label>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">{{label}}</ng-template>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
19
+ }
20
+ export { SacRadiobuttonComponent };
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacRadiobuttonComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'sac-radiobutton', standalone: true, imports: [NgIf, NgTemplateOutlet], template: "<div class=\"form-check\" *ngIf=\"hidden===false\">\r\n <input id=\"{{getName}}_{{getIndex}}\" name=\"{{getName}}\" type=\"radio\" class=\"form-check-input\" [value]=\"value\"\r\n [checked]=\"checked\" (change)=\"ChangeEvent()\" [disabled]=\"isDisabled\" />\r\n <label for=\"{{getName}}_{{getIndex}}\" class=\"form-check-label\">\r\n <ng-template *ngTemplateOutlet=\"labeltemplate || defaultItemLabelTemplate;context:{ label: label }\">\r\n </ng-template>\r\n </label>\r\n</div>\r\n\r\n<ng-template #defaultItemLabelTemplate let-label=\"label\">{{label}}</ng-template>" }]
24
+ }], ctorParameters: function () { return [{ type: i1.SacRadiobuttonsComponent, decorators: [{
25
+ type: Host
26
+ }] }]; } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvY2hlY2tib3gvcmFkaW9idXR0b24udHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvY2hlY2tib3gvcmFkaW9idXR0b24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUV6RDs7R0FFRztBQUNILE1BTWEsdUJBQXdCLFNBQVEsb0JBQW9CO0lBQy9EOzs7T0FHRztJQUNILFlBQW9CLGVBQXlDO1FBQzNELEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QixDQUFDOytHQVBVLHVCQUF1QjttR0FBdkIsdUJBQXVCLGtHQ2RwQyxza0JBU2dGLDRDREdsRSxJQUFJLDZGQUFFLGdCQUFnQjs7U0FFdkIsdUJBQXVCOzRGQUF2Qix1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0ksaUJBQWlCLGNBRWYsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDOzswQkFPdEIsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYWNSYWRpb2J1dHRvbkNvbW1vbiB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IFNhY1JhZGlvYnV0dG9uc0NvbXBvbmVudCB9IGZyb20gJy4vcmFkaW9idXR0b25zJztcclxuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG4vKipcclxuICogUmFkaW9idXR0b24gS29tcG9uZW50ZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NhYy1yYWRpb2J1dHRvbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFkaW9idXR0b24uaHRtbCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjUmFkaW9idXR0b25Db21wb25lbnQgZXh0ZW5kcyBTYWNSYWRpb2J1dHRvbkNvbW1vbiB7XHJcbiAgLyoqXHJcbiAgICogS29uc3RydWt0b3JcclxuICAgKiBAcGFyYW0gU2FjUmFkaW9CdXR0b25zIFJhZGlvIEJ1dHRvbnMgR3JvdXAgS29tcG9uZW50ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgc2FjUmFkaW9CdXR0b25zOiBTYWNSYWRpb2J1dHRvbnNDb21wb25lbnQpIHtcclxuICAgIHN1cGVyKHNhY1JhZGlvQnV0dG9ucyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCIgKm5nSWY9XCJoaWRkZW49PT1mYWxzZVwiPlxyXG4gIDxpbnB1dCBpZD1cInt7Z2V0TmFtZX19X3t7Z2V0SW5kZXh9fVwiIG5hbWU9XCJ7e2dldE5hbWV9fVwiIHR5cGU9XCJyYWRpb1wiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIFt2YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICBbY2hlY2tlZF09XCJjaGVja2VkXCIgKGNoYW5nZSk9XCJDaGFuZ2VFdmVudCgpXCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiAvPlxyXG4gIDxsYWJlbCBmb3I9XCJ7e2dldE5hbWV9fV97e2dldEluZGV4fX1cIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsdGVtcGxhdGUgfHwgZGVmYXVsdEl0ZW1MYWJlbFRlbXBsYXRlO2NvbnRleHQ6eyBsYWJlbDogbGFiZWwgfVwiPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2xhYmVsPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEl0ZW1MYWJlbFRlbXBsYXRlIGxldC1sYWJlbD1cImxhYmVsXCI+e3tsYWJlbH19PC9uZy10ZW1wbGF0ZT4iXX0=
@@ -0,0 +1,58 @@
1
+ import { Component, forwardRef, Host, Optional } from '@angular/core';
2
+ import { ControlContainer, NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
+ import { SacRadiobuttonsCommon } from '@simpleangularcontrols/sac-common';
4
+ import { SacFormDirective } from '../form/form';
5
+ import { NgIf, NgClass } from '@angular/common';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../form/form";
8
+ /**
9
+ * Radiobuttons Group Komponente
10
+ */
11
+ class SacRadiobuttonsComponent extends SacRadiobuttonsCommon {
12
+ /**
13
+ * Konstruktor
14
+ * @param parent Formular
15
+ * @param injector Angular Dependency Injection Service
16
+ */
17
+ constructor(parent, injector) {
18
+ super(parent, injector);
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacRadiobuttonsComponent, deps: [{ token: i1.SacFormDirective, host: true, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacRadiobuttonsComponent, isStandalone: true, selector: "sac-radiobuttons", providers: [
22
+ {
23
+ provide: NG_VALUE_ACCESSOR,
24
+ useExisting: forwardRef(() => SacRadiobuttonsComponent),
25
+ multi: true,
26
+ },
27
+ {
28
+ provide: NG_VALIDATORS,
29
+ useExisting: forwardRef(() => SacRadiobuttonsComponent),
30
+ multi: true,
31
+ },
32
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"row form-group\">\r\n <div *ngIf=\"disablelabel === false\" class=\"col-form-label col-12 pt-0\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-sm-' + labelsize : 'sr-only']\">\r\n <ng-container *ngIf=\"!disablelabel\">{{label}}</ng-container>\r\n </div>\r\n <div [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], viewProviders: [
33
+ { provide: ControlContainer, useExisting: SacFormDirective },
34
+ ] }); }
35
+ }
36
+ export { SacRadiobuttonsComponent };
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacRadiobuttonsComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'sac-radiobuttons', providers: [
40
+ {
41
+ provide: NG_VALUE_ACCESSOR,
42
+ useExisting: forwardRef(() => SacRadiobuttonsComponent),
43
+ multi: true,
44
+ },
45
+ {
46
+ provide: NG_VALIDATORS,
47
+ useExisting: forwardRef(() => SacRadiobuttonsComponent),
48
+ multi: true,
49
+ },
50
+ ], viewProviders: [
51
+ { provide: ControlContainer, useExisting: SacFormDirective },
52
+ ], standalone: true, imports: [NgIf, NgClass], template: "<div class=\"row form-group\">\r\n <div *ngIf=\"disablelabel === false\" class=\"col-form-label col-12 pt-0\"\r\n [ngClass]=\"[labelsize !== 12 ? 'col-sm-' + labelsize : 'sr-only']\">\r\n <ng-container *ngIf=\"!disablelabel\">{{label}}</ng-container>\r\n </div>\r\n <div [ngClass]=\"[disablelabel === false ? 'col-sm-' + _inputsize : 'col-sm-12']\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>" }]
53
+ }], ctorParameters: function () { return [{ type: i1.SacFormDirective, decorators: [{
54
+ type: Host
55
+ }, {
56
+ type: Optional
57
+ }] }, { type: i0.Injector }]; } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9idXR0b25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDQvc3JjL2NvbnRyb2xzL2NoZWNrYm94L3JhZGlvYnV0dG9ucy50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA0L3NyYy9jb250cm9scy9jaGVja2JveC9yYWRpb2J1dHRvbnMuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQVksUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFaEQ7O0dBRUc7QUFDSCxNQXVCYSx3QkFBeUIsU0FBUSxxQkFBcUI7SUFDakU7Ozs7T0FJRztJQUNILFlBQWdDLE1BQXdCLEVBQUUsUUFBa0I7UUFDMUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDOytHQVJVLHdCQUF3QjttR0FBeEIsd0JBQXdCLCtEQW5CdEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO2dCQUN2RCxLQUFLLEVBQUUsSUFBSTthQUNkO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3ZELEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSixpREM1QkwsZ2FBUU0sNENEMEJRLElBQUksNkZBQUUsT0FBTyx5RUFKUjtZQUNYLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRTtTQUMvRDs7U0FJUSx3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkF2QnBDLFNBQVM7K0JBQ0ksa0JBQWtCLGFBR2pCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDOzRCQUN2RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7NEJBQ3ZELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKLGlCQUVjO3dCQUNYLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRTtxQkFDL0QsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDOzswQkFRYixJQUFJOzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBIb3N0LCBJbmplY3RvciwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sQ29udGFpbmVyLFxyXG4gIE5HX1ZBTElEQVRPUlMsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNSYWRpb2J1dHRvbnNDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi4vZm9ybS9mb3JtJztcclxuaW1wb3J0IHsgTmdJZiwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG4vKipcclxuICogUmFkaW9idXR0b25zIEdyb3VwIEtvbXBvbmVudGVcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzYWMtcmFkaW9idXR0b25zJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYWRpb2J1dHRvbnMuaHRtbCcsXHJcbiAgICAvLyBWYWx1ZSBBY2Nlc3MgUHJvdmlkZXIgcmVnaXN0cmllcmVuLCBkYW1pdCBXZXJ0IHZpYSBNb2RlbCBnZXNjaHJpZWJlbiB1bmQgZ2VsZXNlbiB3ZXJkZW4ga2FublxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjUmFkaW9idXR0b25zQ29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY1JhZGlvYnV0dG9uc0NvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgLy8gVmlldyBQcm92aWRlciwgZGFtaXQgZGFzIEZvcm11bGFyIGFuIGRhcyBDb250cm9sIGdlYnVuZGVuIHdlcmRlbiBrYW5uXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogU2FjRm9ybURpcmVjdGl2ZSB9LFxyXG4gICAgXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdDbGFzc10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNSYWRpb2J1dHRvbnNDb21wb25lbnQgZXh0ZW5kcyBTYWNSYWRpb2J1dHRvbnNDb21tb24ge1xyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIHBhcmVudCBGb3JtdWxhclxyXG4gICAqIEBwYXJhbSBpbmplY3RvciBBbmd1bGFyIERlcGVuZGVuY3kgSW5qZWN0aW9uIFNlcnZpY2VcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihASG9zdCgpIEBPcHRpb25hbCgpIHBhcmVudDogU2FjRm9ybURpcmVjdGl2ZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcihwYXJlbnQsIGluamVjdG9yKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCI+XHJcbiAgPGRpdiAqbmdJZj1cImRpc2FibGVsYWJlbCA9PT0gZmFsc2VcIiBjbGFzcz1cImNvbC1mb3JtLWxhYmVsIGNvbC0xMiBwdC0wXCJcclxuICAgIFtuZ0NsYXNzXT1cIltsYWJlbHNpemUgIT09IDEyID8gICdjb2wtc20tJyArIGxhYmVsc2l6ZSA6ICdzci1vbmx5J11cIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGlzYWJsZWxhYmVsXCI+e3tsYWJlbH19PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICdjb2wtc20tJyArIF9pbnB1dHNpemUgOiAnY29sLXNtLTEyJ11cIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -0,0 +1,24 @@
1
+ import { Component } from '@angular/core';
2
+ import { SacConfirmCommon } from '@simpleangularcontrols/sac-common';
3
+ import { SacButtonComponent } from '../buttons/button';
4
+ import { NgIf, NgFor } from '@angular/common';
5
+ import { SacDialogComponent } from '../dialog/dialog';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Confirm Komponente
9
+ */
10
+ class SacConfirmComponent extends SacConfirmCommon {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacConfirmComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SacConfirmComponent, isStandalone: true, selector: "sac-confirm", usesInheritance: true, ngImport: i0, template: "<sac-dialog\r\n [(isvisible)]=\"isvisible\"\r\n [title]=\"title\"\r\n [allowesc]=\"false\"\r\n [closebutton]=\"false\"\r\n dialogsize=\"small\"\r\n>\r\n <div dialogbody>\r\n <div class=\"media\">\r\n <img\r\n [attr.src]=\"image\"\r\n class=\"align-self-center mr-3\"\r\n *ngIf=\"hasImage()\"\r\n />\r\n <div class=\"media-body\">{{message}}</div>\r\n </div>\r\n </div>\r\n <ng-container dialogfooter>\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <sac-button\r\n [name]=\"button.key\"\r\n [text]=\"button.text\"\r\n (clicked)=\"confirm(button.key)\"\r\n ></sac-button>\r\n </ng-container>\r\n </ng-container>\r\n</sac-dialog>\r\n", dependencies: [{ kind: "component", type: SacDialogComponent, selector: "sac-dialog" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SacButtonComponent, selector: "sac-button" }] }); }
13
+ }
14
+ export { SacConfirmComponent };
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacConfirmComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'sac-confirm', standalone: true, imports: [
18
+ SacDialogComponent,
19
+ NgIf,
20
+ NgFor,
21
+ SacButtonComponent,
22
+ ], template: "<sac-dialog\r\n [(isvisible)]=\"isvisible\"\r\n [title]=\"title\"\r\n [allowesc]=\"false\"\r\n [closebutton]=\"false\"\r\n dialogsize=\"small\"\r\n>\r\n <div dialogbody>\r\n <div class=\"media\">\r\n <img\r\n [attr.src]=\"image\"\r\n class=\"align-self-center mr-3\"\r\n *ngIf=\"hasImage()\"\r\n />\r\n <div class=\"media-body\">{{message}}</div>\r\n </div>\r\n </div>\r\n <ng-container dialogfooter>\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <sac-button\r\n [name]=\"button.key\"\r\n [text]=\"button.text\"\r\n (clicked)=\"confirm(button.key)\"\r\n ></sac-button>\r\n </ng-container>\r\n </ng-container>\r\n</sac-dialog>\r\n" }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA0L3NyYy9jb250cm9scy9jb25maXJtL2NvbmZpcm0udHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvY29uZmlybS9jb25maXJtLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUV0RDs7R0FFRztBQUNILE1BV2EsbUJBQW9CLFNBQVEsZ0JBQWdCOytHQUE1QyxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4RkNwQmhDLHl0QkEyQkEsNENEYlEsa0JBQWtCLHVEQUNsQixJQUFJLDZGQUNKLEtBQUssbUhBQ0wsa0JBQWtCOztTQUdiLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQVgvQixTQUFTOytCQUNJLGFBQWEsY0FFWCxJQUFJLFdBQ1A7d0JBQ0wsa0JBQWtCO3dCQUNsQixJQUFJO3dCQUNKLEtBQUs7d0JBQ0wsa0JBQWtCO3FCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYWNDb25maXJtQ29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcclxuaW1wb3J0IHsgU2FjQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9ucy9idXR0b24nO1xyXG5pbXBvcnQgeyBOZ0lmLCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNhY0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cnO1xyXG5cclxuLyoqXHJcbiAqIENvbmZpcm0gS29tcG9uZW50ZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NhYy1jb25maXJtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtLmh0bWwnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBTYWNEaWFsb2dDb21wb25lbnQsXHJcbiAgICAgICAgTmdJZixcclxuICAgICAgICBOZ0ZvcixcclxuICAgICAgICBTYWNCdXR0b25Db21wb25lbnQsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjQ29uZmlybUNvbXBvbmVudCBleHRlbmRzIFNhY0NvbmZpcm1Db21tb24ge31cclxuIiwiPHNhYy1kaWFsb2dcclxuICBbKGlzdmlzaWJsZSldPVwiaXN2aXNpYmxlXCJcclxuICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gIFthbGxvd2VzY109XCJmYWxzZVwiXHJcbiAgW2Nsb3NlYnV0dG9uXT1cImZhbHNlXCJcclxuICBkaWFsb2dzaXplPVwic21hbGxcIlxyXG4+XHJcbiAgPGRpdiBkaWFsb2dib2R5PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lZGlhXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBbYXR0ci5zcmNdPVwiaW1hZ2VcIlxyXG4gICAgICAgIGNsYXNzPVwiYWxpZ24tc2VsZi1jZW50ZXIgbXItM1wiXHJcbiAgICAgICAgKm5nSWY9XCJoYXNJbWFnZSgpXCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lZGlhLWJvZHlcIj57e21lc3NhZ2V9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciBkaWFsb2dmb290ZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYnV0dG9uc1wiPlxyXG4gICAgICA8c2FjLWJ1dHRvblxyXG4gICAgICAgIFtuYW1lXT1cImJ1dHRvbi5rZXlcIlxyXG4gICAgICAgIFt0ZXh0XT1cImJ1dHRvbi50ZXh0XCJcclxuICAgICAgICAoY2xpY2tlZCk9XCJjb25maXJtKGJ1dHRvbi5rZXkpXCJcclxuICAgICAgPjwvc2FjLWJ1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L3NhYy1kaWFsb2c+XHJcbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SacConfirmComponent } from './confirm';
3
+ import { ServiceConfirm } from './confirm.service';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Module für Confirm Messages
7
+ *
8
+ * In NgModule der Applikation folgenden Eintrag bei Imports einfügen: ExanicBootstrap4ConfirmModule.forRoot()
9
+ *
10
+ */
11
+ class SACBootstrap4ConfirmModule {
12
+ static forRoot() {
13
+ return {
14
+ ngModule: SACBootstrap4ConfirmModule,
15
+ providers: [ServiceConfirm],
16
+ };
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4ConfirmModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
19
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4ConfirmModule, imports: [SacConfirmComponent], exports: [SacConfirmComponent] }); }
20
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4ConfirmModule }); }
21
+ }
22
+ export { SACBootstrap4ConfirmModule };
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SACBootstrap4ConfirmModule, decorators: [{
24
+ type: NgModule,
25
+ args: [{
26
+ imports: [SacConfirmComponent],
27
+ exports: [SacConfirmComponent],
28
+ }]
29
+ }] });
30
+ export { ServiceConfirm } from './confirm.service';
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNC9zcmMvY29udHJvbHMvY29uZmlybS9jb25maXJtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUVuRDs7Ozs7R0FLRztBQUNILE1BSWEsMEJBQTBCO0lBQ3JDLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQzVCLENBQUM7SUFDSixDQUFDOytHQU5VLDBCQUEwQjtnSEFBMUIsMEJBQTBCLFlBSDNCLG1CQUFtQixhQUNuQixtQkFBbUI7Z0hBRWxCLDBCQUEwQjs7U0FBMUIsMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBSnRDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQjs7QUFVRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYWNDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9jb25maXJtJztcclxuaW1wb3J0IHsgU2VydmljZUNvbmZpcm0gfSBmcm9tICcuL2NvbmZpcm0uc2VydmljZSc7XHJcblxyXG4vKipcclxuICogIE1vZHVsZSBmw7xyIENvbmZpcm0gTWVzc2FnZXNcclxuICpcclxuICogIEluIE5nTW9kdWxlIGRlciBBcHBsaWthdGlvbiBmb2xnZW5kZW4gRWludHJhZyBiZWkgSW1wb3J0cyBlaW5mw7xnZW46IEV4YW5pY0Jvb3RzdHJhcDRDb25maXJtTW9kdWxlLmZvclJvb3QoKVxyXG4gKlxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbU2FjQ29uZmlybUNvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW1NhY0NvbmZpcm1Db21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU0FDQm9vdHN0cmFwNENvbmZpcm1Nb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8U0FDQm9vdHN0cmFwNENvbmZpcm1Nb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBTQUNCb290c3RyYXA0Q29uZmlybU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbU2VydmljZUNvbmZpcm1dLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IFNlcnZpY2VDb25maXJtIH0gZnJvbSAnLi9jb25maXJtLnNlcnZpY2UnO1xyXG5cclxuIl19