tin-spa 9.0.0 → 9.1.0

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 (249) hide show
  1. package/bundles/tin-spa.umd.js +4416 -1589
  2. package/bundles/tin-spa.umd.js.map +1 -1
  3. package/bundles/tin-spa.umd.min.js +2 -2
  4. package/bundles/tin-spa.umd.min.js.map +1 -1
  5. package/esm2015/lib/classes/Classes.js +58 -45
  6. package/esm2015/lib/classes/TinCore.js +137 -0
  7. package/esm2015/lib/components/activity/activity.component.js +84 -18
  8. package/esm2015/lib/components/attach/attach.component.js +101 -27
  9. package/esm2015/lib/components/change-password/change-password.component.js +122 -34
  10. package/esm2015/lib/components/check/check.component.js +39 -33
  11. package/esm2015/lib/components/chips/chips.component.js +75 -35
  12. package/esm2015/lib/components/create-account/create-account.component.js +124 -42
  13. package/esm2015/lib/components/date/date.component.js +54 -33
  14. package/esm2015/lib/components/datetime/datetime.component.js +43 -30
  15. package/esm2015/lib/components/filter/filter.component.js +64 -0
  16. package/esm2015/lib/components/html/html.component.js +30 -25
  17. package/esm2015/lib/components/label/label.component.js +109 -21
  18. package/esm2015/lib/components/loader/loader.component.js +43 -20
  19. package/esm2015/lib/components/login/login.component.js +194 -76
  20. package/esm2015/lib/components/logs/logs.component.js +180 -28
  21. package/esm2015/lib/components/message/messageDialog.component.js +128 -17
  22. package/esm2015/lib/components/money/currency-input-mask.directive.js +187 -0
  23. package/esm2015/lib/components/money/currency-input-mask.module.js +30 -0
  24. package/esm2015/lib/components/money/money.component.js +141 -39
  25. package/esm2015/lib/components/nav-menu/nav-menu.component.js +174 -21
  26. package/esm2015/lib/components/option/option.component.js +107 -40
  27. package/esm2015/lib/components/profile/profile.component.js +143 -53
  28. package/esm2015/lib/components/recover-account/recover-account.component.js +48 -26
  29. package/esm2015/lib/components/roles/addRoleDialog.component.js +99 -26
  30. package/esm2015/lib/components/roles/roles.component.js +153 -73
  31. package/esm2015/lib/components/select/select.component.js +108 -48
  32. package/esm2015/lib/components/settings/settings.component.js +76 -21
  33. package/esm2015/lib/components/signup/signup.component.js +107 -24
  34. package/esm2015/lib/components/steps/steps.component.js +47 -31
  35. package/esm2015/lib/components/table/table.component.js +301 -35
  36. package/esm2015/lib/components/text/text.component.js +146 -71
  37. package/esm2015/lib/components/tiles/tiles.component.js +75 -21
  38. package/esm2015/lib/components/timeout/timeout.component.js +65 -22
  39. package/esm2015/lib/components/tin-spa.component.js +19 -12
  40. package/esm2015/lib/components/users/users.component.js +308 -65
  41. package/esm2015/lib/components/viewer/viewer.component.js +64 -39
  42. package/esm2015/lib/components/viewer/viewerDialog.component.js +73 -18
  43. package/esm2015/lib/dnd.directive.js +30 -25
  44. package/esm2015/lib/modules/spa-admin.module.js +65 -51
  45. package/esm2015/lib/modules/spa-index.module.js +45 -20
  46. package/esm2015/lib/modules/spa-mat.module.js +40 -25
  47. package/esm2015/lib/modules/spa-user.module.js +43 -19
  48. package/esm2015/lib/services/auth.service.js +39 -50
  49. package/esm2015/lib/services/data.service.js +82 -49
  50. package/esm2015/lib/services/export.service.js +11 -11
  51. package/esm2015/lib/services/http.service.js +79 -0
  52. package/esm2015/lib/services/loader-interceptor.service.js +30 -30
  53. package/esm2015/lib/services/loader.service.js +11 -11
  54. package/esm2015/lib/services/log.service.js +12 -12
  55. package/esm2015/lib/services/message.service.js +11 -17
  56. package/esm2015/lib/services/storage.service.js +12 -11
  57. package/esm2015/lib/services/tin-spa.service.js +11 -11
  58. package/esm2015/lib/tin-spa.module.js +113 -48
  59. package/esm2015/public-api.js +4 -6
  60. package/esm2015/tin-spa.js +1 -5
  61. package/esm5/lib/classes/Classes.js +70 -55
  62. package/esm5/lib/classes/TinCore.js +164 -0
  63. package/esm5/lib/components/activity/activity.component.js +82 -15
  64. package/esm5/lib/components/attach/attach.component.js +100 -24
  65. package/esm5/lib/components/change-password/change-password.component.js +120 -31
  66. package/esm5/lib/components/check/check.component.js +37 -30
  67. package/esm5/lib/components/chips/chips.component.js +73 -32
  68. package/esm5/lib/components/create-account/create-account.component.js +122 -39
  69. package/esm5/lib/components/date/date.component.js +52 -30
  70. package/esm5/lib/components/datetime/datetime.component.js +41 -27
  71. package/esm5/lib/components/filter/filter.component.js +66 -0
  72. package/esm5/lib/components/html/html.component.js +28 -22
  73. package/esm5/lib/components/label/label.component.js +107 -18
  74. package/esm5/lib/components/loader/loader.component.js +41 -17
  75. package/esm5/lib/components/login/login.component.js +193 -74
  76. package/esm5/lib/components/logs/logs.component.js +178 -25
  77. package/esm5/lib/components/message/messageDialog.component.js +126 -14
  78. package/esm5/lib/components/money/currency-input-mask.directive.js +193 -0
  79. package/esm5/lib/components/money/currency-input-mask.module.js +34 -0
  80. package/esm5/lib/components/money/money.component.js +139 -36
  81. package/esm5/lib/components/nav-menu/nav-menu.component.js +172 -18
  82. package/esm5/lib/components/option/option.component.js +105 -37
  83. package/esm5/lib/components/profile/profile.component.js +141 -50
  84. package/esm5/lib/components/recover-account/recover-account.component.js +46 -23
  85. package/esm5/lib/components/roles/addRoleDialog.component.js +97 -23
  86. package/esm5/lib/components/roles/roles.component.js +152 -72
  87. package/esm5/lib/components/select/select.component.js +106 -45
  88. package/esm5/lib/components/settings/settings.component.js +74 -18
  89. package/esm5/lib/components/signup/signup.component.js +105 -21
  90. package/esm5/lib/components/steps/steps.component.js +46 -28
  91. package/esm5/lib/components/table/table.component.js +299 -32
  92. package/esm5/lib/components/text/text.component.js +144 -68
  93. package/esm5/lib/components/tiles/tiles.component.js +73 -18
  94. package/esm5/lib/components/timeout/timeout.component.js +63 -19
  95. package/esm5/lib/components/tin-spa.component.js +16 -8
  96. package/esm5/lib/components/users/users.component.js +307 -62
  97. package/esm5/lib/components/viewer/viewer.component.js +62 -36
  98. package/esm5/lib/components/viewer/viewerDialog.component.js +71 -15
  99. package/esm5/lib/dnd.directive.js +28 -22
  100. package/esm5/lib/modules/spa-admin.module.js +63 -48
  101. package/esm5/lib/modules/spa-index.module.js +43 -17
  102. package/esm5/lib/modules/spa-mat.module.js +38 -22
  103. package/esm5/lib/modules/spa-user.module.js +41 -16
  104. package/esm5/lib/services/auth.service.js +37 -47
  105. package/esm5/lib/services/data.service.js +89 -55
  106. package/esm5/lib/services/export.service.js +9 -8
  107. package/esm5/lib/services/http.service.js +81 -0
  108. package/esm5/lib/services/loader-interceptor.service.js +28 -27
  109. package/esm5/lib/services/loader.service.js +9 -8
  110. package/esm5/lib/services/log.service.js +11 -9
  111. package/esm5/lib/services/message.service.js +9 -14
  112. package/esm5/lib/services/storage.service.js +10 -8
  113. package/esm5/lib/services/tin-spa.service.js +9 -8
  114. package/esm5/lib/tin-spa.module.js +111 -45
  115. package/esm5/public-api.js +4 -6
  116. package/esm5/tin-spa.js +1 -5
  117. package/fesm2015/tin-spa.js +4418 -1612
  118. package/fesm2015/tin-spa.js.map +1 -1
  119. package/fesm5/tin-spa.js +4442 -1612
  120. package/fesm5/tin-spa.js.map +1 -1
  121. package/lib/classes/Classes.d.ts +55 -43
  122. package/lib/classes/TinCore.d.ts +27 -0
  123. package/lib/components/activity/activity.component.d.ts +3 -5
  124. package/lib/components/attach/attach.component.d.ts +3 -5
  125. package/lib/components/change-password/change-password.component.d.ts +11 -9
  126. package/lib/components/check/check.component.d.ts +3 -5
  127. package/lib/components/chips/chips.component.d.ts +3 -5
  128. package/lib/components/create-account/create-account.component.d.ts +13 -13
  129. package/lib/components/date/date.component.d.ts +6 -7
  130. package/lib/components/datetime/datetime.component.d.ts +3 -5
  131. package/lib/components/filter/filter.component.d.ts +15 -0
  132. package/lib/components/html/html.component.d.ts +3 -5
  133. package/lib/components/label/label.component.d.ts +3 -5
  134. package/lib/components/loader/loader.component.d.ts +3 -5
  135. package/lib/components/login/login.component.d.ts +12 -14
  136. package/lib/components/logs/logs.component.d.ts +5 -9
  137. package/lib/components/message/messageDialog.component.d.ts +3 -5
  138. package/lib/components/money/currency-input-mask.directive.d.ts +41 -0
  139. package/lib/components/money/currency-input-mask.module.d.ts +8 -0
  140. package/lib/components/money/money.component.d.ts +19 -8
  141. package/lib/components/nav-menu/nav-menu.component.d.ts +3 -5
  142. package/lib/components/option/option.component.d.ts +4 -5
  143. package/lib/components/profile/profile.component.d.ts +9 -11
  144. package/lib/components/recover-account/recover-account.component.d.ts +6 -8
  145. package/lib/components/roles/addRoleDialog.component.d.ts +5 -7
  146. package/lib/components/roles/roles.component.d.ts +6 -10
  147. package/lib/components/select/select.component.d.ts +4 -6
  148. package/lib/components/settings/settings.component.d.ts +5 -7
  149. package/lib/components/signup/signup.component.d.ts +6 -8
  150. package/lib/components/steps/steps.component.d.ts +3 -5
  151. package/lib/components/table/table.component.d.ts +3 -5
  152. package/lib/components/text/text.component.d.ts +4 -5
  153. package/lib/components/tiles/tiles.component.d.ts +3 -5
  154. package/lib/components/timeout/timeout.component.d.ts +3 -5
  155. package/lib/components/tin-spa.component.d.ts +3 -5
  156. package/lib/components/users/users.component.d.ts +8 -13
  157. package/lib/components/viewer/viewer.component.d.ts +3 -5
  158. package/lib/components/viewer/viewerDialog.component.d.ts +4 -6
  159. package/lib/dnd.directive.d.ts +3 -5
  160. package/lib/modules/spa-admin.module.d.ts +13 -19
  161. package/lib/modules/spa-index.module.d.ts +10 -11
  162. package/lib/modules/spa-mat.module.d.ts +30 -32
  163. package/lib/modules/spa-user.module.d.ts +9 -10
  164. package/lib/services/auth.service.d.ts +14 -14
  165. package/lib/services/data.service.d.ts +28 -17
  166. package/lib/services/export.service.d.ts +3 -4
  167. package/lib/services/http.service.d.ts +22 -0
  168. package/lib/services/loader-interceptor.service.d.ts +3 -5
  169. package/lib/services/loader.service.d.ts +3 -4
  170. package/lib/services/log.service.d.ts +3 -4
  171. package/lib/services/message.service.d.ts +3 -4
  172. package/lib/services/storage.service.d.ts +3 -4
  173. package/lib/services/tin-spa.service.d.ts +3 -4
  174. package/lib/tin-spa.module.d.ts +35 -35
  175. package/package.json +2 -10
  176. package/public-api.d.ts +3 -5
  177. package/tin-spa.d.ts +1 -6
  178. package/__ivy_ngcc__/fesm2015/tin-spa.js +0 -6813
  179. package/__ivy_ngcc__/fesm2015/tin-spa.js.map +0 -1
  180. package/esm2015/lib/components/profiles/profiles.component.js +0 -16
  181. package/esm2015/lib/components/roles/editRoleDialog.component.js +0 -57
  182. package/esm2015/lib/components/roles/viewRoleDialog.component.js +0 -38
  183. package/esm2015/lib/components/users/addUserDialog.component.js +0 -53
  184. package/esm2015/lib/components/users/editUserDialog.component.js +0 -96
  185. package/esm5/lib/components/profiles/profiles.component.js +0 -18
  186. package/esm5/lib/components/roles/editRoleDialog.component.js +0 -59
  187. package/esm5/lib/components/roles/viewRoleDialog.component.js +0 -39
  188. package/esm5/lib/components/users/addUserDialog.component.js +0 -55
  189. package/esm5/lib/components/users/editUserDialog.component.js +0 -99
  190. package/lib/components/activity/activity.component.d.ts.__ivy_ngcc_bak +0 -8
  191. package/lib/components/attach/attach.component.d.ts.__ivy_ngcc_bak +0 -39
  192. package/lib/components/change-password/change-password.component.d.ts.__ivy_ngcc_bak +0 -20
  193. package/lib/components/check/check.component.d.ts.__ivy_ngcc_bak +0 -16
  194. package/lib/components/chips/chips.component.d.ts.__ivy_ngcc_bak +0 -15
  195. package/lib/components/create-account/create-account.component.d.ts.__ivy_ngcc_bak +0 -25
  196. package/lib/components/date/date.component.d.ts.__ivy_ngcc_bak +0 -13
  197. package/lib/components/datetime/datetime.component.d.ts.__ivy_ngcc_bak +0 -12
  198. package/lib/components/html/html.component.d.ts.__ivy_ngcc_bak +0 -12
  199. package/lib/components/label/label.component.d.ts.__ivy_ngcc_bak +0 -8
  200. package/lib/components/loader/loader.component.d.ts.__ivy_ngcc_bak +0 -9
  201. package/lib/components/login/login.component.d.ts.__ivy_ngcc_bak +0 -29
  202. package/lib/components/logs/logs.component.d.ts.__ivy_ngcc_bak +0 -17
  203. package/lib/components/message/messageDialog.component.d.ts.__ivy_ngcc_bak +0 -12
  204. package/lib/components/money/money.component.d.ts.__ivy_ngcc_bak +0 -14
  205. package/lib/components/nav-menu/nav-menu.component.d.ts.__ivy_ngcc_bak +0 -17
  206. package/lib/components/option/option.component.d.ts.__ivy_ngcc_bak +0 -17
  207. package/lib/components/profile/profile.component.d.ts.__ivy_ngcc_bak +0 -30
  208. package/lib/components/profiles/profiles.component.d.ts +0 -10
  209. package/lib/components/profiles/profiles.component.d.ts.__ivy_ngcc_bak +0 -5
  210. package/lib/components/recover-account/recover-account.component.d.ts.__ivy_ngcc_bak +0 -15
  211. package/lib/components/roles/addRoleDialog.component.d.ts.__ivy_ngcc_bak +0 -19
  212. package/lib/components/roles/editRoleDialog.component.d.ts +0 -24
  213. package/lib/components/roles/editRoleDialog.component.d.ts.__ivy_ngcc_bak +0 -19
  214. package/lib/components/roles/roles.component.d.ts.__ivy_ngcc_bak +0 -29
  215. package/lib/components/roles/viewRoleDialog.component.d.ts +0 -20
  216. package/lib/components/roles/viewRoleDialog.component.d.ts.__ivy_ngcc_bak +0 -15
  217. package/lib/components/select/select.component.d.ts.__ivy_ngcc_bak +0 -20
  218. package/lib/components/settings/settings.component.d.ts.__ivy_ngcc_bak +0 -16
  219. package/lib/components/signup/signup.component.d.ts.__ivy_ngcc_bak +0 -20
  220. package/lib/components/steps/steps.component.d.ts.__ivy_ngcc_bak +0 -15
  221. package/lib/components/table/table.component.d.ts.__ivy_ngcc_bak +0 -25
  222. package/lib/components/text/text.component.d.ts.__ivy_ngcc_bak +0 -37
  223. package/lib/components/tiles/tiles.component.d.ts.__ivy_ngcc_bak +0 -11
  224. package/lib/components/timeout/timeout.component.d.ts.__ivy_ngcc_bak +0 -21
  225. package/lib/components/tin-spa.component.d.ts.__ivy_ngcc_bak +0 -5
  226. package/lib/components/users/addUserDialog.component.d.ts +0 -21
  227. package/lib/components/users/addUserDialog.component.d.ts.__ivy_ngcc_bak +0 -16
  228. package/lib/components/users/editUserDialog.component.d.ts +0 -32
  229. package/lib/components/users/editUserDialog.component.d.ts.__ivy_ngcc_bak +0 -27
  230. package/lib/components/users/users.component.d.ts.__ivy_ngcc_bak +0 -35
  231. package/lib/components/viewer/viewer.component.d.ts.__ivy_ngcc_bak +0 -16
  232. package/lib/components/viewer/viewerDialog.component.d.ts.__ivy_ngcc_bak +0 -19
  233. package/lib/dnd.directive.d.ts.__ivy_ngcc_bak +0 -8
  234. package/lib/modules/spa-admin.module.d.ts.__ivy_ngcc_bak +0 -2
  235. package/lib/modules/spa-index.module.d.ts.__ivy_ngcc_bak +0 -2
  236. package/lib/modules/spa-mat.module.d.ts.__ivy_ngcc_bak +0 -2
  237. package/lib/modules/spa-user.module.d.ts.__ivy_ngcc_bak +0 -2
  238. package/lib/services/auth.service.d.ts.__ivy_ngcc_bak +0 -45
  239. package/lib/services/data.service.d.ts.__ivy_ngcc_bak +0 -23
  240. package/lib/services/export.service.d.ts.__ivy_ngcc_bak +0 -7
  241. package/lib/services/loader-interceptor.service.d.ts.__ivy_ngcc_bak +0 -18
  242. package/lib/services/loader.service.d.ts.__ivy_ngcc_bak +0 -5
  243. package/lib/services/log.service.d.ts.__ivy_ngcc_bak +0 -16
  244. package/lib/services/message.service.d.ts.__ivy_ngcc_bak +0 -12
  245. package/lib/services/storage.service.d.ts.__ivy_ngcc_bak +0 -7
  246. package/lib/services/tin-spa.service.d.ts.__ivy_ngcc_bak +0 -3
  247. package/lib/tin-spa.module.d.ts.__ivy_ngcc_bak +0 -2
  248. package/tin-spa.d.ts.__ivy_ngcc_bak +0 -8
  249. package/tin-spa.metadata.json +0 -1
@@ -1,7 +1,261 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
2
  import { MatTableDataSource } from '@angular/material/table';
4
3
  import { ActionResponse, Operator, TableColumnType } from '../../classes/Classes';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/material/paginator";
7
+ import * as i3 from "@angular/material/button";
8
+ import * as i4 from "@angular/material/form-field";
9
+ import * as i5 from "@angular/material/input";
10
+ import * as i6 from "@angular/forms";
11
+ import * as i7 from "@angular/material/tooltip";
12
+ import * as i8 from "@angular/material/icon";
13
+ import * as i9 from "@angular/material/table";
14
+ var _c0 = ["tablePaginator"];
15
+ function TableComponent_div_1_button_2_Template(rf, ctx) { if (rf & 1) {
16
+ var _r6 = i0.ɵɵgetCurrentView();
17
+ i0.ɵɵelementStart(0, "button", 8);
18
+ i0.ɵɵlistener("click", function TableComponent_div_1_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); var ctx_r5 = i0.ɵɵnextContext(2); return ctx_r5.create(); });
19
+ i0.ɵɵtext(1);
20
+ i0.ɵɵelementEnd();
21
+ } if (rf & 2) {
22
+ var ctx_r3 = i0.ɵɵnextContext(2);
23
+ i0.ɵɵproperty("disabled", !ctx_r3.config.create.enabled);
24
+ i0.ɵɵadvance(1);
25
+ i0.ɵɵtextInterpolate(ctx_r3.config.create.display);
26
+ } }
27
+ function TableComponent_div_1_div_3_Template(rf, ctx) { if (rf & 1) {
28
+ var _r8 = i0.ɵɵgetCurrentView();
29
+ i0.ɵɵelementStart(0, "div", 9);
30
+ i0.ɵɵelementStart(1, "mat-form-field", 10);
31
+ i0.ɵɵelementStart(2, "mat-label");
32
+ i0.ɵɵtext(3, "Filter");
33
+ i0.ɵɵelementEnd();
34
+ i0.ɵɵelementStart(4, "input", 11);
35
+ i0.ɵɵlistener("ngModelChange", function TableComponent_div_1_div_3_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r8); var ctx_r7 = i0.ɵɵnextContext(2); return ctx_r7._filterText = $event; })("keyup", function TableComponent_div_1_div_3_Template_input_keyup_4_listener($event) { i0.ɵɵrestoreView(_r8); var ctx_r9 = i0.ɵɵnextContext(2); return ctx_r9.applyFilter($event.target.value); });
36
+ i0.ɵɵelementEnd();
37
+ i0.ɵɵelementEnd();
38
+ i0.ɵɵelementStart(5, "button", 12);
39
+ i0.ɵɵlistener("click", function TableComponent_div_1_div_3_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r8); var ctx_r10 = i0.ɵɵnextContext(2); return ctx_r10.load(); });
40
+ i0.ɵɵelementStart(6, "mat-icon", 13);
41
+ i0.ɵɵtext(7, "refresh");
42
+ i0.ɵɵelementEnd();
43
+ i0.ɵɵelementEnd();
44
+ i0.ɵɵelementEnd();
45
+ } if (rf & 2) {
46
+ var ctx_r4 = i0.ɵɵnextContext(2);
47
+ i0.ɵɵadvance(4);
48
+ i0.ɵɵproperty("ngModel", ctx_r4._filterText);
49
+ } }
50
+ function TableComponent_div_1_Template(rf, ctx) { if (rf & 1) {
51
+ i0.ɵɵelementStart(0, "div", 4);
52
+ i0.ɵɵelementStart(1, "div", 5);
53
+ i0.ɵɵtemplate(2, TableComponent_div_1_button_2_Template, 2, 2, "button", 6);
54
+ i0.ɵɵelementEnd();
55
+ i0.ɵɵtemplate(3, TableComponent_div_1_div_3_Template, 8, 1, "div", 7);
56
+ i0.ɵɵelementEnd();
57
+ } if (rf & 2) {
58
+ var ctx_r0 = i0.ɵɵnextContext();
59
+ i0.ɵɵadvance(2);
60
+ i0.ɵɵproperty("ngIf", ctx_r0.config.create);
61
+ i0.ɵɵadvance(1);
62
+ i0.ɵɵproperty("ngIf", ctx_r0.config.enableFilter);
63
+ } }
64
+ function TableComponent_div_2_ng_container_2_th_1_Template(rf, ctx) { if (rf & 1) {
65
+ i0.ɵɵelementStart(0, "th", 24);
66
+ i0.ɵɵtext(1);
67
+ i0.ɵɵelementEnd();
68
+ } if (rf & 2) {
69
+ var col_r16 = i0.ɵɵnextContext().$implicit;
70
+ i0.ɵɵadvance(1);
71
+ i0.ɵɵtextInterpolate1(" ", col_r16.display, " ");
72
+ } }
73
+ function TableComponent_div_2_ng_container_2_td_2_div_1_Template(rf, ctx) { if (rf & 1) {
74
+ i0.ɵɵelementStart(0, "div");
75
+ i0.ɵɵtext(1);
76
+ i0.ɵɵelementEnd();
77
+ } if (rf & 2) {
78
+ var row_r21 = i0.ɵɵnextContext().$implicit;
79
+ var col_r16 = i0.ɵɵnextContext().$implicit;
80
+ i0.ɵɵadvance(1);
81
+ i0.ɵɵtextInterpolate1(" ", row_r21[col_r16.name], "");
82
+ } }
83
+ var _c1 = function (a0) { return { "color": a0 }; };
84
+ function TableComponent_div_2_ng_container_2_td_2_div_2_Template(rf, ctx) { if (rf & 1) {
85
+ i0.ɵɵelementStart(0, "div", 29);
86
+ i0.ɵɵtext(1);
87
+ i0.ɵɵelementEnd();
88
+ } if (rf & 2) {
89
+ var row_r21 = i0.ɵɵnextContext().$implicit;
90
+ var col_r16 = i0.ɵɵnextContext().$implicit;
91
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c1, col_r16.color.name));
92
+ i0.ɵɵadvance(1);
93
+ i0.ɵɵtextInterpolate1(" ", row_r21[col_r16.name], " ");
94
+ } }
95
+ function TableComponent_div_2_ng_container_2_td_2_div_3_Template(rf, ctx) { if (rf & 1) {
96
+ i0.ɵɵelementStart(0, "div");
97
+ i0.ɵɵtext(1);
98
+ i0.ɵɵelementEnd();
99
+ } if (rf & 2) {
100
+ var row_r21 = i0.ɵɵnextContext().$implicit;
101
+ var col_r16 = i0.ɵɵnextContext().$implicit;
102
+ i0.ɵɵadvance(1);
103
+ i0.ɵɵtextInterpolate1(" ", row_r21[col_r16.name], " ");
104
+ } }
105
+ function TableComponent_div_2_ng_container_2_td_2_div_4_Template(rf, ctx) { if (rf & 1) {
106
+ i0.ɵɵelementStart(0, "div");
107
+ i0.ɵɵtext(1);
108
+ i0.ɵɵpipe(2, "date");
109
+ i0.ɵɵelementEnd();
110
+ } if (rf & 2) {
111
+ var row_r21 = i0.ɵɵnextContext().$implicit;
112
+ var col_r16 = i0.ɵɵnextContext().$implicit;
113
+ i0.ɵɵadvance(1);
114
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, row_r21[col_r16.name], "dd/MM/yyyy"), "");
115
+ } }
116
+ function TableComponent_div_2_ng_container_2_td_2_div_5_Template(rf, ctx) { if (rf & 1) {
117
+ i0.ɵɵelementStart(0, "div");
118
+ i0.ɵɵtext(1);
119
+ i0.ɵɵpipe(2, "date");
120
+ i0.ɵɵelementEnd();
121
+ } if (rf & 2) {
122
+ var row_r21 = i0.ɵɵnextContext().$implicit;
123
+ var col_r16 = i0.ɵɵnextContext().$implicit;
124
+ i0.ɵɵadvance(1);
125
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, row_r21[col_r16.name], "dd/MM/yyyy HH:mm"), "");
126
+ } }
127
+ function TableComponent_div_2_ng_container_2_td_2_ng_container_6_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
128
+ i0.ɵɵelementStart(0, "mat-icon", 31);
129
+ i0.ɵɵtext(1);
130
+ i0.ɵɵelementEnd();
131
+ } if (rf & 2) {
132
+ var icon_r38 = i0.ɵɵnextContext().$implicit;
133
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(3, _c1, icon_r38.color))("matTooltip", icon_r38.hint);
134
+ i0.ɵɵadvance(1);
135
+ i0.ɵɵtextInterpolate1(" ", icon_r38.name, " ");
136
+ } }
137
+ function TableComponent_div_2_ng_container_2_td_2_ng_container_6_Template(rf, ctx) { if (rf & 1) {
138
+ i0.ɵɵelementContainerStart(0);
139
+ i0.ɵɵtemplate(1, TableComponent_div_2_ng_container_2_td_2_ng_container_6_mat_icon_1_Template, 2, 5, "mat-icon", 30);
140
+ i0.ɵɵelementContainerEnd();
141
+ } if (rf & 2) {
142
+ var icon_r38 = ctx.$implicit;
143
+ var row_r21 = i0.ɵɵnextContext().$implicit;
144
+ var col_r16 = i0.ɵɵnextContext().$implicit;
145
+ var ctx_r27 = i0.ɵɵnextContext(2);
146
+ i0.ɵɵadvance(1);
147
+ i0.ɵɵproperty("ngIf", col_r16.type == ctx_r27.colType.Icon && ctx_r27.test(row_r21[icon_r38.field], icon_r38.operator, icon_r38.value));
148
+ } }
149
+ function TableComponent_div_2_ng_container_2_td_2_Template(rf, ctx) { if (rf & 1) {
150
+ i0.ɵɵelementStart(0, "td", 25);
151
+ i0.ɵɵtemplate(1, TableComponent_div_2_ng_container_2_td_2_div_1_Template, 2, 1, "div", 26);
152
+ i0.ɵɵtemplate(2, TableComponent_div_2_ng_container_2_td_2_div_2_Template, 2, 4, "div", 27);
153
+ i0.ɵɵtemplate(3, TableComponent_div_2_ng_container_2_td_2_div_3_Template, 2, 1, "div", 26);
154
+ i0.ɵɵtemplate(4, TableComponent_div_2_ng_container_2_td_2_div_4_Template, 3, 4, "div", 26);
155
+ i0.ɵɵtemplate(5, TableComponent_div_2_ng_container_2_td_2_div_5_Template, 3, 4, "div", 26);
156
+ i0.ɵɵtemplate(6, TableComponent_div_2_ng_container_2_td_2_ng_container_6_Template, 2, 1, "ng-container", 28);
157
+ i0.ɵɵelementEnd();
158
+ } if (rf & 2) {
159
+ var row_r21 = ctx.$implicit;
160
+ var col_r16 = i0.ɵɵnextContext().$implicit;
161
+ var ctx_r19 = i0.ɵɵnextContext(2);
162
+ i0.ɵɵadvance(1);
163
+ i0.ɵɵproperty("ngIf", (col_r16.type == ctx_r19.colType.String || col_r16.type == null) && col_r16.color == null);
164
+ i0.ɵɵadvance(1);
165
+ i0.ɵɵproperty("ngIf", (col_r16.type == ctx_r19.colType.String || col_r16.type == null) && col_r16.color != null && ctx_r19.test(row_r21[col_r16.color.field], col_r16.color.operator, col_r16.color.value));
166
+ i0.ɵɵadvance(1);
167
+ i0.ɵɵproperty("ngIf", (col_r16.type == ctx_r19.colType.String || col_r16.type == null) && col_r16.color != null && !ctx_r19.test(row_r21[col_r16.color.field], col_r16.color.operator, col_r16.color.value));
168
+ i0.ɵɵadvance(1);
169
+ i0.ɵɵproperty("ngIf", col_r16.type == ctx_r19.colType.Date);
170
+ i0.ɵɵadvance(1);
171
+ i0.ɵɵproperty("ngIf", col_r16.type == ctx_r19.colType.DateTime);
172
+ i0.ɵɵadvance(1);
173
+ i0.ɵɵproperty("ngForOf", col_r16.icons);
174
+ } }
175
+ function TableComponent_div_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {
176
+ i0.ɵɵelementContainerStart(0, 22);
177
+ i0.ɵɵtemplate(1, TableComponent_div_2_ng_container_2_th_1_Template, 2, 1, "th", 18);
178
+ i0.ɵɵtemplate(2, TableComponent_div_2_ng_container_2_td_2_Template, 7, 6, "td", 23);
179
+ i0.ɵɵelementContainerEnd();
180
+ } if (rf & 2) {
181
+ var col_r16 = ctx.$implicit;
182
+ i0.ɵɵproperty("matColumnDef", col_r16.name);
183
+ } }
184
+ function TableComponent_div_2_th_4_Template(rf, ctx) { if (rf & 1) {
185
+ i0.ɵɵelementStart(0, "th", 24);
186
+ i0.ɵɵtext(1, " Action ");
187
+ i0.ɵɵelementEnd();
188
+ } }
189
+ function TableComponent_div_2_td_5_ng_container_1_button_1_Template(rf, ctx) { if (rf & 1) {
190
+ var _r50 = i0.ɵɵgetCurrentView();
191
+ i0.ɵɵelementStart(0, "button", 33);
192
+ i0.ɵɵlistener("click", function TableComponent_div_2_td_5_ng_container_1_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r50); var act_r46 = i0.ɵɵnextContext().$implicit; var row_r44 = i0.ɵɵnextContext().$implicit; var ctx_r48 = i0.ɵɵnextContext(2); return ctx_r48.do(act_r46.name, row_r44); });
193
+ i0.ɵɵelementStart(1, "mat-icon");
194
+ i0.ɵɵtext(2);
195
+ i0.ɵɵelementEnd();
196
+ i0.ɵɵelementEnd();
197
+ } if (rf & 2) {
198
+ var act_r46 = i0.ɵɵnextContext().$implicit;
199
+ var row_r44 = i0.ɵɵnextContext().$implicit;
200
+ i0.ɵɵproperty("disabled", act_r46.disable && row_r44[act_r46.disable.field] == act_r46.disable.value)("color", act_r46.color == null ? "primary" : act_r46.color)("matTooltip", act_r46.hint);
201
+ i0.ɵɵadvance(2);
202
+ i0.ɵɵtextInterpolate(act_r46.icon);
203
+ } }
204
+ function TableComponent_div_2_td_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {
205
+ i0.ɵɵelementContainerStart(0);
206
+ i0.ɵɵtemplate(1, TableComponent_div_2_td_5_ng_container_1_button_1_Template, 3, 4, "button", 32);
207
+ i0.ɵɵelementContainerEnd();
208
+ } if (rf & 2) {
209
+ var act_r46 = ctx.$implicit;
210
+ var row_r44 = i0.ɵɵnextContext().$implicit;
211
+ i0.ɵɵadvance(1);
212
+ i0.ɵɵproperty("ngIf", act_r46.disappear && row_r44[act_r46.disappear.field] != act_r46.disappear.value || !act_r46.disappear);
213
+ } }
214
+ function TableComponent_div_2_td_5_Template(rf, ctx) { if (rf & 1) {
215
+ i0.ɵɵelementStart(0, "td", 25);
216
+ i0.ɵɵtemplate(1, TableComponent_div_2_td_5_ng_container_1_Template, 2, 1, "ng-container", 28);
217
+ i0.ɵɵelementEnd();
218
+ } if (rf & 2) {
219
+ var ctx_r13 = i0.ɵɵnextContext(2);
220
+ i0.ɵɵstyleMap(ctx_r13.styleString + ";padding-right: 0px;");
221
+ i0.ɵɵadvance(1);
222
+ i0.ɵɵproperty("ngForOf", ctx_r13.config.actions);
223
+ } }
224
+ function TableComponent_div_2_tr_6_Template(rf, ctx) { if (rf & 1) {
225
+ i0.ɵɵelement(0, "tr", 34);
226
+ } }
227
+ var _c2 = function (a0) { return { "make-gray": a0 }; };
228
+ function TableComponent_div_2_tr_7_Template(rf, ctx) { if (rf & 1) {
229
+ i0.ɵɵelement(0, "tr", 35);
230
+ } if (rf & 2) {
231
+ var row_r55 = ctx.$implicit;
232
+ var ctx_r15 = i0.ɵɵnextContext(2);
233
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c2, row_r55[ctx_r15.config.greyout.field] == ctx_r15.config.greyout.value));
234
+ } }
235
+ function TableComponent_div_2_Template(rf, ctx) { if (rf & 1) {
236
+ i0.ɵɵelementStart(0, "div", 14);
237
+ i0.ɵɵelementStart(1, "table", 15);
238
+ i0.ɵɵtemplate(2, TableComponent_div_2_ng_container_2_Template, 3, 1, "ng-container", 16);
239
+ i0.ɵɵelementContainerStart(3, 17);
240
+ i0.ɵɵtemplate(4, TableComponent_div_2_th_4_Template, 2, 0, "th", 18);
241
+ i0.ɵɵtemplate(5, TableComponent_div_2_td_5_Template, 2, 3, "td", 19);
242
+ i0.ɵɵelementContainerEnd();
243
+ i0.ɵɵtemplate(6, TableComponent_div_2_tr_6_Template, 1, 0, "tr", 20);
244
+ i0.ɵɵtemplate(7, TableComponent_div_2_tr_7_Template, 1, 3, "tr", 21);
245
+ i0.ɵɵelementEnd();
246
+ i0.ɵɵelementEnd();
247
+ } if (rf & 2) {
248
+ var ctx_r1 = i0.ɵɵnextContext();
249
+ i0.ɵɵadvance(1);
250
+ i0.ɵɵproperty("dataSource", ctx_r1.data);
251
+ i0.ɵɵadvance(1);
252
+ i0.ɵɵproperty("ngForOf", ctx_r1.config.columns);
253
+ i0.ɵɵadvance(4);
254
+ i0.ɵɵproperty("matHeaderRowDef", ctx_r1.displayedColumns);
255
+ i0.ɵɵadvance(1);
256
+ i0.ɵɵproperty("matRowDefColumns", ctx_r1.displayedColumns);
257
+ } }
258
+ var _c3 = function () { return [10, 50, 100]; };
5
259
  var TableComponent = /** @class */ (function () {
6
260
  function TableComponent() {
7
261
  this.dataChange = new EventEmitter();
@@ -15,7 +269,6 @@ var TableComponent = /** @class */ (function () {
15
269
  }
16
270
  TableComponent.prototype.ngOnInit = function () {
17
271
  var _this = this;
18
- // console.log("Init")
19
272
  this.config.columns.forEach(function (element) {
20
273
  _this.displayedColumns.push(element.name);
21
274
  });
@@ -23,7 +276,6 @@ var TableComponent = /** @class */ (function () {
23
276
  this.styleString = "width: " + 50 * this.config.actions.length + "px";
24
277
  };
25
278
  TableComponent.prototype.ngOnChanges = function () {
26
- // console.log("OnChange")
27
279
  this.data = new MatTableDataSource(this.data);
28
280
  this.data.paginator = this.tablePaginator;
29
281
  this.applyFilter(this._filterText);
@@ -77,35 +329,50 @@ var TableComponent = /** @class */ (function () {
77
329
  }
78
330
  }
79
331
  };
80
- __decorate([
81
- Input()
82
- ], TableComponent.prototype, "config", void 0);
83
- __decorate([
84
- Input()
85
- ], TableComponent.prototype, "data", void 0);
86
- __decorate([
87
- Output()
88
- ], TableComponent.prototype, "dataChange", void 0);
89
- __decorate([
90
- Output()
91
- ], TableComponent.prototype, "buttonClick", void 0);
92
- __decorate([
93
- Output()
94
- ], TableComponent.prototype, "loadClick", void 0);
95
- __decorate([
96
- Output()
97
- ], TableComponent.prototype, "createClick", void 0);
98
- __decorate([
99
- ViewChild('tablePaginator')
100
- ], TableComponent.prototype, "tablePaginator", void 0);
101
- TableComponent = __decorate([
102
- Component({
103
- selector: 'spa-table',
104
- template: "<div >\r\n\r\n<div *ngIf=\"config.create.enabled || config.enableFilter\" class=\"row justify-content-between\" style=\"padding-bottom: 10px\">\r\n <div class=\"col\">\r\n<button *ngIf=\"config.create\" [disabled]=\"!config.create.enabled\" mat-raised-button color=\"primary\" (click)=\"create()\">{{config.create.display}}</button>\r\n</div>\r\n <div *ngIf=\"config.enableFilter\" class=\"col d-flex justify-content-end\">\r\n<mat-form-field style=\"font-size:12px;margin-right: 5px;\">\r\n<mat-label>Filter</mat-label>\r\n<input matInput [(ngModel)]=\"_filterText\" (keyup)=\"applyFilter($event.target.value)\" placeholder=\"Enter Filter text\" autocomplete=\"off\">\r\n</mat-form-field>\r\n<button mat-mini-fab color=\"primary\" (click)=\"load()\" style=\"margin-top:5px\" matTooltip=\"refresh data\" matTooltipPosition=\"right\"><mat-icon class=\"refreshIcon\">refresh</mat-icon></button>\r\n</div>\r\n</div>\r\n\r\n<div class=\"mat-elevation-z8\" *ngIf=\"data\">\r\n\r\n <table mat-table [dataSource]=\"data\">\r\n\r\n <ng-container *ngFor=\"let col of config.columns; let i = index\"\r\n\r\n [matColumnDef]=\"col.name\">\r\n <th mat-header-cell *matHeaderCellDef> {{col.display}} </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n\r\n <!-- String -->\r\n <div *ngIf=\"(col.type==colType.String || col.type == null) && col.color == null\"> {{row[col.name]}}</div>\r\n\r\n <div [ngStyle]=\"{'color':col.color.name}\"\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null && test(row[col.color.field], col.color.operator, col.color.value )\" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null && !test(row[col.color.field], col.color.operator, col.color.value )\" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <!-- <div [ngStyle]=\"{'color':col.color.name}\"\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Equal && row[col.color.field]==col.color.value\" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]=\"{'color':col.color.name}\"\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Greater && row[col.color.field]>col.color.value\" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]=\"{'color':col.color.name}\"\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Less && row[col.color.field]<col.color.value\" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]=\"{'color':col.color.name}\"\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.NotEqual && row[col.color.field]!=col.color.value\" >\r\n {{row[col.name]}}\r\n </div> -->\r\n\r\n\r\n <!-- Date -->\r\n <div *ngIf=\"col.type==colType.Date\"> {{row[col.name] | date:'dd/MM/yyyy'}}</div>\r\n\r\n\r\n <!-- DateTime -->\r\n <div *ngIf=\"col.type==colType.DateTime\"> {{row[col.name] | date:'dd/MM/yyyy HH:mm'}}</div>\r\n\r\n\r\n <ng-container *ngFor=\"let icon of col.icons;\">\r\n <!-- <mat-icon *ngIf=\"col.type==colType.Icon && icon.operator==op.Equal && row[icon.field]==icon.value\"\r\n [ngStyle]=\"{'color':icon.color}\"\r\n [matTooltip]=\"icon.hint\" matTooltipPosition=\"above\">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"col.type==colType.Icon && icon.operator==op.Greater && row[icon.field]>icon.value\"\r\n [ngStyle]=\"{'color':icon.color}\"\r\n [matTooltip]=\"icon.hint\" matTooltipPosition=\"above\">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"col.type==colType.Icon && icon.operator==op.Less && row[icon.field]<icon.value\"\r\n [ngStyle]=\"{'color':icon.color}\"\r\n [matTooltip]=\"icon.hint\" matTooltipPosition=\"above\">\r\n {{icon.name}}\r\n </mat-icon>\r\n <mat-icon *ngIf=\"col.type==colType.Icon && icon.operator==op.NotEqual && row[icon.field]!=icon.value\"\r\n [ngStyle]=\"{'color':icon.color}\"\r\n [matTooltip]=\"icon.hint\" matTooltipPosition=\"above\">\r\n {{icon.name}}\r\n </mat-icon> -->\r\n\r\n <mat-icon *ngIf=\"col.type==colType.Icon && test(row[icon.field],icon.operator,icon.value)\"\r\n [ngStyle]=\"{'color':icon.color}\"\r\n [matTooltip]=\"icon.hint\" matTooltipPosition=\"above\">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n </ng-container>\r\n\r\n </td>\r\n\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n <ng-container matColumnDef=\"Action\">\r\n\r\n <th mat-header-cell *matHeaderCellDef> Action </th>\r\n <td mat-cell *matCellDef=\"let row\" [style]=\"styleString+';padding-right: 0px;'\">\r\n\r\n <ng-container *ngFor=\"let act of config.actions\">\r\n\r\n <button *ngIf=\" (act.disappear && (row[act.disappear.field] != act.disappear.value)) || !act.disappear\" mat-mini-fab\r\n\r\n [disabled]=\"(act.disable && (row[act.disable.field] == act.disable.value))\"\r\n [color]=\"act.color==null? 'primary' : act.color\"\r\n [matTooltip]=\"act.hint\" matTooltipPosition=\"above\"\r\n (click)=\"do(act.name,row)\" style=\"margin-right:5px\">\r\n <mat-icon>{{act.icon}}</mat-icon>\r\n\r\n </button>\r\n\r\n </ng-container>\r\n\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" [ngClass]=\"{'make-gray': row[config.greyout.field]==config.greyout.value}\"></tr>\r\n\r\n </table>\r\n</div>\r\n<mat-paginator #tablePaginator [pageSizeOptions]=\"[10, 50, 100]\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n\r\n",
105
- styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.make-gray{background-color:#d3d3d3}"]
106
- })
107
- ], TableComponent);
332
+ TableComponent.ɵfac = function TableComponent_Factory(t) { return new (t || TableComponent)(); };
333
+ TableComponent.ɵcmp = i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["spa-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
334
+ i0.ɵɵviewQuery(_c0, true);
335
+ } if (rf & 2) {
336
+ var _t;
337
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tablePaginator = _t.first);
338
+ } }, inputs: { config: "config", data: "data" }, outputs: { dataChange: "dataChange", buttonClick: "buttonClick", loadClick: "loadClick", createClick: "createClick" }, features: [i0.ɵɵNgOnChangesFeature], decls: 5, vars: 4, consts: [["class", "row justify-content-between", "style", "padding-bottom: 10px", 4, "ngIf"], ["class", "mat-elevation-z8", 4, "ngIf"], ["showFirstLastButtons", "", 3, "pageSizeOptions"], ["tablePaginator", ""], [1, "row", "justify-content-between", 2, "padding-bottom", "10px"], [1, "col"], ["mat-raised-button", "", "color", "primary", 3, "disabled", "click", 4, "ngIf"], ["class", "col d-flex justify-content-end", 4, "ngIf"], ["mat-raised-button", "", "color", "primary", 3, "disabled", "click"], [1, "col", "d-flex", "justify-content-end"], [2, "font-size", "12px", "margin-right", "5px"], ["matInput", "", "placeholder", "Enter Filter text", "autocomplete", "off", 3, "ngModel", "ngModelChange", "keyup"], ["mat-mini-fab", "", "color", "primary", "matTooltip", "refresh data", "matTooltipPosition", "right", 2, "margin-top", "5px", 3, "click"], [1, "refreshIcon"], [1, "mat-elevation-z8"], ["mat-table", "", 3, "dataSource"], [3, "matColumnDef", 4, "ngFor", "ngForOf"], ["matColumnDef", "Action"], ["mat-header-cell", "", 4, "matHeaderCellDef"], ["mat-cell", "", 3, "style", 4, "matCellDef"], ["mat-header-row", "", 4, "matHeaderRowDef"], ["mat-row", "", 3, "ngClass", 4, "matRowDef", "matRowDefColumns"], [3, "matColumnDef"], ["mat-cell", "", 4, "matCellDef"], ["mat-header-cell", ""], ["mat-cell", ""], [4, "ngIf"], [3, "ngStyle", 4, "ngIf"], [4, "ngFor", "ngForOf"], [3, "ngStyle"], ["matTooltipPosition", "above", 3, "ngStyle", "matTooltip", 4, "ngIf"], ["matTooltipPosition", "above", 3, "ngStyle", "matTooltip"], ["mat-mini-fab", "", "matTooltipPosition", "above", "style", "margin-right:5px", 3, "disabled", "color", "matTooltip", "click", 4, "ngIf"], ["mat-mini-fab", "", "matTooltipPosition", "above", 2, "margin-right", "5px", 3, "disabled", "color", "matTooltip", "click"], ["mat-header-row", ""], ["mat-row", "", 3, "ngClass"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
339
+ i0.ɵɵelementStart(0, "div");
340
+ i0.ɵɵtemplate(1, TableComponent_div_1_Template, 4, 2, "div", 0);
341
+ i0.ɵɵtemplate(2, TableComponent_div_2_Template, 8, 4, "div", 1);
342
+ i0.ɵɵelement(3, "mat-paginator", 2, 3);
343
+ i0.ɵɵelementEnd();
344
+ } if (rf & 2) {
345
+ i0.ɵɵadvance(1);
346
+ i0.ɵɵproperty("ngIf", ctx.config.create.enabled || ctx.config.enableFilter);
347
+ i0.ɵɵadvance(1);
348
+ i0.ɵɵproperty("ngIf", ctx.data);
349
+ i0.ɵɵadvance(1);
350
+ i0.ɵɵproperty("pageSizeOptions", i0.ɵɵpureFunction0(3, _c3));
351
+ } }, directives: [i1.NgIf, i2.MatPaginator, i3.MatButton, i4.MatFormField, i4.MatLabel, i5.MatInput, i6.DefaultValueAccessor, i6.NgControlStatus, i6.NgModel, i7.MatTooltip, i8.MatIcon, i9.MatTable, i1.NgForOf, i9.MatColumnDef, i9.MatHeaderCellDef, i9.MatCellDef, i9.MatHeaderRowDef, i9.MatRowDef, i9.MatHeaderCell, i9.MatCell, i1.NgStyle, i9.MatHeaderRow, i9.MatRow, i1.NgClass], pipes: [i1.DatePipe], styles: [".mat-mini-fab[_ngcontent-%COMP%]{width:32px;height:32px}.mat-mini-fab[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;margin-top:-3px}.make-gray[_ngcontent-%COMP%]{background-color:#d3d3d3}"] });
108
352
  return TableComponent;
109
353
  }());
110
354
  export { TableComponent };
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFPL0Y7SUFFRTtRQXlCVSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSTNDLFlBQU8sR0FBRyxlQUFlLENBQUE7UUFDekIsT0FBRSxHQUFHLFFBQVEsQ0FBQTtRQUViLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUloQyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztJQXZDRCxDQUFDO0lBRWpCLGlDQUFRLEdBQVI7UUFBQSxpQkFXQztRQVRDLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBQSxPQUFPO1lBQ2pDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUVwQyxJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sT0FBSSxDQUFDO0lBRW5FLENBQUM7SUFFRCxvQ0FBVyxHQUFYO1FBQ0UsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBb0JELG9DQUFXLEdBQVgsVUFBWSxXQUFtQjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELDJCQUFFLEdBQUYsVUFBRyxJQUFJLEVBQUUsSUFBSTtRQUVYLElBQUksSUFBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUdELCtCQUFNLEdBQU47UUFDRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCw2QkFBSSxHQUFKO1FBQ0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsNkJBQUksR0FBSixVQUFLLENBQUssRUFBRSxFQUFZLEVBQUUsQ0FBTTtRQUU5QixJQUFJLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQztnQkFDVCxPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFJO2dCQUNILE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FFRjtRQUVELElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNULE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUVGO1FBRUQsSUFBSSxFQUFFLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtZQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ1QsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1NBRUY7UUFFRCxJQUFJLEVBQUUsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDVixPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFNO2dCQUNMLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FFRjtJQUlILENBQUM7SUE5RVE7UUFBUixLQUFLLEVBQUU7a0RBQXFCO0lBQ3BCO1FBQVIsS0FBSyxFQUFFO2dEQUFXO0lBQ1Q7UUFBVCxNQUFNLEVBQUU7c0RBQWlDO0lBQ2hDO1FBQVQsTUFBTSxFQUFFO3VEQUFrQztJQUNqQztRQUFULE1BQU0sRUFBRTtxREFBZ0M7SUFDL0I7UUFBVCxNQUFNLEVBQUU7dURBQWtDO0lBRWQ7UUFBNUIsU0FBUyxDQUFDLGdCQUFnQixDQUFDOzBEQUE4QjtJQWhDL0MsY0FBYztRQUwxQixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsV0FBVztZQUNyQiw2bE1BQXFDOztTQUV0QyxDQUFDO09BQ1csY0FBYyxDQXlHMUI7SUFBRCxxQkFBQztDQUFBLEFBekdELElBeUdDO1NBekdZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb25SZXNwb25zZSwgT3BlcmF0b3IsIFRhYmxlQ29sdW1uVHlwZSwgVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKFwiSW5pdFwiKVxyXG4gICAgdGhpcy5jb25maWcuY29sdW1ucy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChlbGVtZW50Lm5hbWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJBY3Rpb25cIilcclxuXHJcbiAgICB0aGlzLnN0eWxlU3RyaW5nID0gYHdpZHRoOiAkezUwICogdGhpcy5jb25maWcuYWN0aW9ucy5sZW5ndGh9cHhgO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCl7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIk9uQ2hhbmdlXCIpXHJcbiAgICB0aGlzLmRhdGEgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMuZGF0YSk7XHJcbiAgICB0aGlzLmRhdGEucGFnaW5hdG9yID0gdGhpcy50YWJsZVBhZ2luYXRvcjtcclxuICAgIHRoaXMuYXBwbHlGaWx0ZXIodGhpcy5fZmlsdGVyVGV4dCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCkgY29uZmlnOiBUYWJsZUNvbmZpZztcclxuICBASW5wdXQoKSBkYXRhOiBhbnk7XHJcbiAgQE91dHB1dCgpIGRhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsb2FkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNyZWF0ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCd0YWJsZVBhZ2luYXRvcicpIHRhYmxlUGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcblxyXG4gIGNvbFR5cGUgPSBUYWJsZUNvbHVtblR5cGVcclxuICBvcCA9IE9wZXJhdG9yXHJcblxyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIHN0eWxlU3RyaW5nOiBzdHJpbmc7XHJcblxyXG4gIF9maWx0ZXJUZXh0ID0gXCJcIjtcclxuICBhcHBseUZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRhdGEuZmlsdGVyID0gZmlsdGVyVmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG5cclxuICBkbyhuYW1lLCBpdGVtKSB7XHJcblxyXG4gICAgbGV0IHJlc3AgPSBuZXcgQWN0aW9uUmVzcG9uc2UoKTtcclxuICAgIHJlc3AubmFtZSA9IG5hbWU7XHJcbiAgICByZXNwLnZhbHVlID0gaXRlbTtcclxuICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdChyZXNwKTtcclxuICB9XHJcblxyXG5cclxuICBjcmVhdGUoKXtcclxuICAgIHRoaXMuY3JlYXRlQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgbG9hZCgpe1xyXG4gICAgdGhpcy5sb2FkQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgdGVzdChhOmFueSwgb3A6IE9wZXJhdG9yLCBiOiBhbnkpe1xyXG5cclxuICAgIGlmIChvcCA9PSBPcGVyYXRvci5FcXVhbCl7XHJcbiAgICAgIGlmIChhID09IGIpe1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wID09IE9wZXJhdG9yLkdyZWF0ZXIpIHtcclxuICAgICAgaWYgKGEgPiBiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcCA9PSBPcGVyYXRvci5MZXNzKSB7XHJcbiAgICAgIGlmIChhIDwgYikge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBpZiAob3AgPT0gT3BlcmF0b3IuTm90RXF1YWwpIHtcclxuICAgICAgaWYgKGEgIT0gYikge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuXHJcbiJdfQ==
355
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(TableComponent, [{
356
+ type: Component,
357
+ args: [{
358
+ selector: 'spa-table',
359
+ templateUrl: './table.component.html',
360
+ styleUrls: ['./table.component.css']
361
+ }]
362
+ }], function () { return []; }, { config: [{
363
+ type: Input
364
+ }], data: [{
365
+ type: Input
366
+ }], dataChange: [{
367
+ type: Output
368
+ }], buttonClick: [{
369
+ type: Output
370
+ }], loadClick: [{
371
+ type: Output
372
+ }], createClick: [{
373
+ type: Output
374
+ }], tablePaginator: [{
375
+ type: ViewChild,
376
+ args: ['tablePaginator']
377
+ }] }); })();
378
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsImxpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBZSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ0MvRixpQ0FBdUg7SUFBbkIsc0xBQWtCO0lBQUMsWUFBeUI7SUFBQSxpQkFBUzs7O0lBQTNILHdEQUFtQztJQUFzRCxlQUF5QjtJQUF6QixrREFBeUI7Ozs7SUFFL0ksOEJBQ0Q7SUFBQSwwQ0FDQTtJQUFBLGlDQUFXO0lBQUEsc0JBQU07SUFBQSxpQkFBWTtJQUM3QixpQ0FDQTtJQURnQixvTkFBeUIsbU1BQUE7SUFBekMsaUJBQ0E7SUFBQSxpQkFBaUI7SUFDakIsa0NBQWtJO0lBQTdGLG1MQUFnQjtJQUE2RSxvQ0FBOEI7SUFBQSx1QkFBTztJQUFBLGlCQUFXO0lBQUEsaUJBQVM7SUFDM0wsaUJBQU07OztJQUhVLGVBQXlCO0lBQXpCLDRDQUF5Qjs7O0lBUHpDLDhCQUNDO0lBQUEsOEJBQ0Q7SUFBQSwyRUFBdUg7SUFDdkgsaUJBQU07SUFDTCxxRUFDRDtJQU1BLGlCQUFNOzs7SUFURSxlQUFxQjtJQUFyQiwyQ0FBcUI7SUFFdkIsZUFBMkI7SUFBM0IsaURBQTJCOzs7SUFnQjNCLDhCQUF1QztJQUFBLFlBQWdCO0lBQUEsaUJBQUs7OztJQUFyQixlQUFnQjtJQUFoQixnREFBZ0I7OztJQUlyRCwy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TixTQUFTO21CQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IEFjdGlvblJlc3BvbnNlLCBPcGVyYXRvciwgVGFibGVDb2x1bW5UeXBlLCBUYWJsZUNvbmZpZyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5jb25maWcuY29sdW1ucy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChlbGVtZW50Lm5hbWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJBY3Rpb25cIilcclxuXHJcbiAgICB0aGlzLnN0eWxlU3RyaW5nID0gYHdpZHRoOiAkezUwICogdGhpcy5jb25maWcuYWN0aW9ucy5sZW5ndGh9cHhgO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCl7XHJcbiAgICB0aGlzLmRhdGEgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMuZGF0YSk7XHJcbiAgICB0aGlzLmRhdGEucGFnaW5hdG9yID0gdGhpcy50YWJsZVBhZ2luYXRvcjtcclxuICAgIHRoaXMuYXBwbHlGaWx0ZXIodGhpcy5fZmlsdGVyVGV4dCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCkgY29uZmlnOiBUYWJsZUNvbmZpZztcclxuICBASW5wdXQoKSBkYXRhOiBhbnk7XHJcbiAgQE91dHB1dCgpIGRhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsb2FkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNyZWF0ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCd0YWJsZVBhZ2luYXRvcicpIHRhYmxlUGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcblxyXG4gIGNvbFR5cGUgPSBUYWJsZUNvbHVtblR5cGVcclxuICBvcCA9IE9wZXJhdG9yXHJcblxyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIHN0eWxlU3RyaW5nOiBzdHJpbmc7XHJcblxyXG4gIF9maWx0ZXJUZXh0ID0gXCJcIjtcclxuICBhcHBseUZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRhdGEuZmlsdGVyID0gZmlsdGVyVmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG5cclxuICBkbyhuYW1lLCBpdGVtKSB7XHJcblxyXG4gICAgbGV0IHJlc3AgPSBuZXcgQWN0aW9uUmVzcG9uc2UoKTtcclxuICAgIHJlc3AubmFtZSA9IG5hbWU7XHJcbiAgICByZXNwLnZhbHVlID0gaXRlbTtcclxuICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdChyZXNwKTtcclxuICB9XHJcblxyXG5cclxuICBjcmVhdGUoKXtcclxuICAgIHRoaXMuY3JlYXRlQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgbG9hZCgpe1xyXG4gICAgdGhpcy5sb2FkQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgdGVzdChhOmFueSwgb3A6IE9wZXJhdG9yLCBiOiBhbnkpe1xyXG5cclxuICAgIGlmIChvcCA9PSBPcGVyYXRvci5FcXVhbCl7XHJcbiAgICAgIGlmIChhID09IGIpe1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wID09IE9wZXJhdG9yLkdyZWF0ZXIpIHtcclxuICAgICAgaWYgKGEgPiBiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcCA9PSBPcGVyYXRvci5MZXNzKSB7XHJcbiAgICAgIGlmIChhIDwgYikge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBpZiAob3AgPT0gT3BlcmF0b3IuTm90RXF1YWwpIHtcclxuICAgICAgaWYgKGEgIT0gYikge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuXHJcbiIsIjxkaXYgPlxyXG5cclxuPGRpdiAqbmdJZj1cImNvbmZpZy5jcmVhdGUuZW5hYmxlZCB8fCBjb25maWcuZW5hYmxlRmlsdGVyXCIgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBzdHlsZT1cInBhZGRpbmctYm90dG9tOiAxMHB4XCI+XHJcbiA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbjxidXR0b24gKm5nSWY9XCJjb25maWcuY3JlYXRlXCIgW2Rpc2FibGVkXT1cIiFjb25maWcuY3JlYXRlLmVuYWJsZWRcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY3JlYXRlKClcIj57e2NvbmZpZy5jcmVhdGUuZGlzcGxheX19PC9idXR0b24+XHJcbjwvZGl2PlxyXG4gPGRpdiAqbmdJZj1cImNvbmZpZy5lbmFibGVGaWx0ZXJcIiBjbGFzcz1cImNvbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG48bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJmb250LXNpemU6MTJweDttYXJnaW4tcmlnaHQ6IDVweDtcIj5cclxuPG1hdC1sYWJlbD5GaWx0ZXI8L21hdC1sYWJlbD5cclxuPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiX2ZpbHRlclRleHRcIiAoa2V5dXApPVwiYXBwbHlGaWx0ZXIoJGV2ZW50LnRhcmdldC52YWx1ZSlcIiBwbGFjZWhvbGRlcj1cIkVudGVyIEZpbHRlciB0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcbjxidXR0b24gbWF0LW1pbmktZmFiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJsb2FkKClcIiBzdHlsZT1cIm1hcmdpbi10b3A6NXB4XCIgbWF0VG9vbHRpcD1cInJlZnJlc2ggZGF0YVwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCI+PG1hdC1pY29uIGNsYXNzPVwicmVmcmVzaEljb25cIj5yZWZyZXNoPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejhcIiAqbmdJZj1cImRhdGFcIj5cclxuXHJcbiAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhXCI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbmZpZy5jb2x1bW5zOyBsZXQgaSA9IGluZGV4XCJcclxuXHJcbiAgICAgIFttYXRDb2x1bW5EZWZdPVwiY29sLm5hbWVcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4ge3tjb2wuZGlzcGxheX19IDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cclxuXHJcbiAgICAgICAgPCEtLSBTdHJpbmcgLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIihjb2wudHlwZT09Y29sVHlwZS5TdHJpbmcgfHwgY29sLnR5cGUgPT0gbnVsbCkgJiYgY29sLmNvbG9yID09IG51bGxcIj4ge3tyb3dbY29sLm5hbWVdfX08L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7J2NvbG9yJzpjb2wuY29sb3IubmFtZX1cIlxyXG4gICAgICAgICAgKm5nSWY9XCIoY29sLnR5cGU9PWNvbFR5cGUuU3RyaW5nIHx8IGNvbC50eXBlID09IG51bGwpICYmIGNvbC5jb2xvciAhPSBudWxsICYmIHRlc3Qocm93W2NvbC5jb2xvci5maWVsZF0sIGNvbC5jb2xvci5vcGVyYXRvciwgY29sLmNvbG9yLnZhbHVlIClcIiA+XHJcbiAgICAgICAgICAge3tyb3dbY29sLm5hbWVdfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCIoY29sLnR5cGU9PWNvbFR5cGUuU3RyaW5nIHx8IGNvbC50eXBlID09IG51bGwpICYmIGNvbC5jb2xvciAhPSBudWxsICYmICF0ZXN0KHJvd1tjb2wuY29sb3IuZmllbGRdLCBjb2wuY29sb3Iub3BlcmF0b3IsIGNvbC5jb2xvci52YWx1ZSApXCIgPlxyXG4gICAgICAgICAgIHt7cm93W2NvbC5uYW1lXX19XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gPGRpdiBbbmdTdHlsZV09XCJ7J2NvbG9yJzpjb2wuY29sb3IubmFtZX1cIlxyXG4gICAgICAgICAgKm5nSWY9XCIoY29sLnR5cGU9PWNvbFR5cGUuU3RyaW5nIHx8IGNvbC50eXBlID09IG51bGwpICYmIGNvbC5jb2xvciAhPSBudWxsICYmXHJcbiAgICAgICAgICBjb2wuY29sb3Iub3BlcmF0b3I9PW9wLkVxdWFsICYmIHJvd1tjb2wuY29sb3IuZmllbGRdPT1jb2wuY29sb3IudmFsdWVcIiA+XHJcbiAgICAgICAgICAge3tyb3dbY29sLm5hbWVdfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7J2NvbG9yJzpjb2wuY29sb3IubmFtZX1cIlxyXG4gICAgICAgICAgKm5nSWY9XCIoY29sLnR5cGU9PWNvbFR5cGUuU3RyaW5nIHx8IGNvbC50eXBlID09IG51bGwpICYmIGNvbC5jb2xvciAhPSBudWxsICYmXHJcbiAgICAgICAgICBjb2wuY29sb3Iub3BlcmF0b3I9PW9wLkdyZWF0ZXIgJiYgcm93W2NvbC5jb2xvci5maWVsZF0+Y29sLmNvbG9yLnZhbHVlXCIgPlxyXG4gICAgICAgICAgIHt7cm93W2NvbC5uYW1lXX19XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwieydjb2xvcic6Y29sLmNvbG9yLm5hbWV9XCJcclxuICAgICAgICAgICpuZ0lmPVwiKGNvbC50eXBlPT1jb2xUeXBlLlN0cmluZyB8fCBjb2wudHlwZSA9PSBudWxsKSAmJiBjb2wuY29sb3IgIT0gbnVsbCAmJlxyXG4gICAgICAgICAgY29sLmNvbG9yLm9wZXJhdG9yPT1vcC5MZXNzICYmIHJvd1tjb2wuY29sb3IuZmllbGRdPGNvbC5jb2xvci52YWx1ZVwiID5cclxuICAgICAgICAgICB7e3Jvd1tjb2wubmFtZV19fVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnY29sb3InOmNvbC5jb2xvci5uYW1lfVwiXHJcbiAgICAgICAgICAqbmdJZj1cIihjb2wudHlwZT09Y29sVHlwZS5TdHJpbmcgfHwgY29sLnR5cGUgPT0gbnVsbCkgJiYgY29sLmNvbG9yICE9IG51bGwgJiZcclxuICAgICAgICAgIGNvbC5jb2xvci5vcGVyYXRvcj09b3AuTm90RXF1YWwgJiYgcm93W2NvbC5jb2xvci5maWVsZF0hPWNvbC5jb2xvci52YWx1ZVwiID5cclxuICAgICAgICAgICB7e3Jvd1tjb2wubmFtZV19fVxyXG4gICAgICAgIDwvZGl2PiAtLT5cclxuXHJcblxyXG4gICAgICAgIDwhLS0gRGF0ZSAtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sLnR5cGU9PWNvbFR5cGUuRGF0ZVwiPiB7e3Jvd1tjb2wubmFtZV0gfCBkYXRlOidkZC9NTS95eXl5J319PC9kaXY+XHJcblxyXG5cclxuICAgICAgICA8IS0tIERhdGVUaW1lIC0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJjb2wudHlwZT09Y29sVHlwZS5EYXRlVGltZVwiPiB7e3Jvd1tjb2wubmFtZV0gfCBkYXRlOidkZC9NTS95eXl5IEhIOm1tJ319PC9kaXY+XHJcblxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpY29uIG9mIGNvbC5pY29ucztcIj5cclxuICAgICAgICAgIDwhLS0gPG1hdC1pY29uICpuZ0lmPVwiY29sLnR5cGU9PWNvbFR5cGUuSWNvbiAmJiBpY29uLm9wZXJhdG9yPT1vcC5FcXVhbCAmJiByb3dbaWNvbi5maWVsZF09PWljb24udmFsdWVcIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2NvbG9yJzppY29uLmNvbG9yfVwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImljb24uaGludFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+XHJcbiAgICAgICAgICAgIHt7aWNvbi5uYW1lfX1cclxuICAgICAgICAgIDwvbWF0LWljb24+XHJcblxyXG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiY29sLnR5cGU9PWNvbFR5cGUuSWNvbiAmJiBpY29uLm9wZXJhdG9yPT1vcC5HcmVhdGVyICYmIHJvd1tpY29uLmZpZWxkXT5pY29uLnZhbHVlXCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwieydjb2xvcic6aWNvbi5jb2xvcn1cIlxyXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJpY29uLmhpbnRcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPlxyXG4gICAgICAgICAgICB7e2ljb24ubmFtZX19XHJcbiAgICAgICAgICA8L21hdC1pY29uPlxyXG5cclxuICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImNvbC50eXBlPT1jb2xUeXBlLkljb24gJiYgaWNvbi5vcGVyYXRvcj09b3AuTGVzcyAmJiByb3dbaWNvbi5maWVsZF08aWNvbi52YWx1ZVwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnY29sb3InOmljb24uY29sb3J9XCJcclxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiaWNvbi5oaW50XCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIj5cclxuICAgICAgICAgICAge3tpY29uLm5hbWV9fVxyXG4gICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImNvbC50eXBlPT1jb2xUeXBlLkljb24gJiYgaWNvbi5vcGVyYXRvcj09b3AuTm90RXF1YWwgJiYgcm93W2ljb24uZmllbGRdIT1pY29uLnZhbHVlXCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwieydjb2xvcic6aWNvbi5jb2xvcn1cIlxyXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJpY29uLmhpbnRcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPlxyXG4gICAgICAgICAgICB7e2ljb24ubmFtZX19XHJcbiAgICAgICAgICA8L21hdC1pY29uPiAtLT5cclxuXHJcbiAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJjb2wudHlwZT09Y29sVHlwZS5JY29uICYmIHRlc3Qocm93W2ljb24uZmllbGRdLGljb24ub3BlcmF0b3IsaWNvbi52YWx1ZSlcIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2NvbG9yJzppY29uLmNvbG9yfVwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImljb24uaGludFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+XHJcbiAgICAgICAgICAgIHt7aWNvbi5uYW1lfX1cclxuICAgICAgICAgIDwvbWF0LWljb24+XHJcblxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG5cclxuXHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIkFjdGlvblwiPlxyXG5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQWN0aW9uIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBbc3R5bGVdPVwic3R5bGVTdHJpbmcrJztwYWRkaW5nLXJpZ2h0OiAwcHg7J1wiPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdCBvZiBjb25maWcuYWN0aW9uc1wiPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiAoYWN0LmRpc2FwcGVhciAmJiAocm93W2FjdC5kaXNhcHBlYXIuZmllbGRdICE9IGFjdC5kaXNhcHBlYXIudmFsdWUpKSB8fCAhYWN0LmRpc2FwcGVhclwiICAgbWF0LW1pbmktZmFiXHJcblxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIoYWN0LmRpc2FibGUgJiYgKHJvd1thY3QuZGlzYWJsZS5maWVsZF0gPT0gYWN0LmRpc2FibGUudmFsdWUpKVwiXHJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cImFjdC5jb2xvcj09bnVsbD8gJ3ByaW1hcnknIDogYWN0LmNvbG9yXCJcclxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJhY3QuaGludFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZG8oYWN0Lm5hbWUscm93KVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjVweFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbj57e2FjdC5pY29ufX08L21hdC1pY29uPlxyXG5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiICBbbmdDbGFzc109XCJ7J21ha2UtZ3JheSc6IHJvd1tjb25maWcuZ3JleW91dC5maWVsZF09PWNvbmZpZy5ncmV5b3V0LnZhbHVlfVwiPjwvdHI+XHJcblxyXG4gIDwvdGFibGU+XHJcbjwvZGl2PlxyXG48bWF0LXBhZ2luYXRvciAjdGFibGVQYWdpbmF0b3IgW3BhZ2VTaXplT3B0aW9uc109XCJbMTAsIDUwLCAxMDBdXCIgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM+PC9tYXQtcGFnaW5hdG9yPlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==