tin-spa 2.0.0 → 2.1.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 (242) hide show
  1. package/README.md +2 -2
  2. package/esm2020/lib/classes/Classes.mjs +214 -0
  3. package/esm2020/lib/classes/TinCore.mjs +213 -0
  4. package/esm2020/lib/components/activity/activity.component.mjs +24 -0
  5. package/esm2020/lib/components/attach/attach.component.mjs +105 -0
  6. package/esm2020/lib/components/change-password/change-password.component.mjs +92 -0
  7. package/esm2020/lib/components/check/check.component.mjs +56 -0
  8. package/esm2020/lib/components/chips/chips.component.mjs +58 -0
  9. package/esm2020/lib/components/create-account/create-account.component.mjs +72 -0
  10. package/esm2020/lib/components/date/date.component.mjs +82 -0
  11. package/esm2020/lib/components/datetime/datetime.component.mjs +39 -0
  12. package/esm2020/lib/components/filter/filter.component.mjs +46 -0
  13. package/esm2020/lib/components/form/form.component.mjs +107 -0
  14. package/esm2020/lib/components/label/label.component.mjs +25 -0
  15. package/esm2020/lib/components/loader/loader.component.mjs +24 -0
  16. package/esm2020/lib/components/login/login.component.mjs +113 -0
  17. package/esm2020/lib/components/logs/logs.component.mjs +37 -0
  18. package/esm2020/lib/components/message/messageDialog.component.mjs +32 -0
  19. package/esm2020/lib/components/money/currency-input-mask.directive.mjs +185 -0
  20. package/esm2020/lib/components/money/currency-input-mask.module.mjs +28 -0
  21. package/esm2020/lib/components/money/money.component.mjs +108 -0
  22. package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +49 -0
  23. package/esm2020/lib/components/number/number.component.mjs +102 -0
  24. package/esm2020/lib/components/option/option.component.mjs +59 -0
  25. package/esm2020/lib/components/profile/profile.component.mjs +93 -0
  26. package/esm2020/lib/components/recover-account/recover-account.component.mjs +46 -0
  27. package/esm2020/lib/components/roles/addRoleDialog.component.mjs +61 -0
  28. package/esm2020/lib/components/roles/roles.component.mjs +91 -0
  29. package/esm2020/lib/components/select/select.component.mjs +71 -0
  30. package/esm2020/lib/components/settings/settings.component.mjs +63 -0
  31. package/esm2020/lib/components/signup/signup.component.mjs +50 -0
  32. package/esm2020/lib/components/steps/steps.component.mjs +90 -0
  33. package/esm2020/lib/components/table/detailsDialog.component.mjs +137 -0
  34. package/esm2020/lib/components/table/table.component.mjs +350 -0
  35. package/esm2020/lib/components/text/text.component.mjs +166 -0
  36. package/esm2020/lib/components/tiles/tiles.component.mjs +41 -0
  37. package/esm2020/lib/components/tin-spa.component.mjs +19 -0
  38. package/esm2020/lib/components/users/users.component.mjs +119 -0
  39. package/esm2020/lib/modules/admin/admin-routing.module.mjs +29 -0
  40. package/esm2020/lib/modules/admin/admin.module.mjs +26 -0
  41. package/esm2020/lib/modules/index/index-routing.module.mjs +27 -0
  42. package/esm2020/lib/modules/index/index.module.mjs +26 -0
  43. package/esm2020/lib/modules/spa-admin.module.mjs +73 -0
  44. package/esm2020/lib/modules/spa-index.module.mjs +52 -0
  45. package/esm2020/lib/modules/spa-mat.module.mjs +67 -0
  46. package/esm2020/lib/modules/spa-user.module.mjs +49 -0
  47. package/esm2020/lib/modules/user/user-routing.module.mjs +23 -0
  48. package/esm2020/lib/modules/user/user.module.mjs +26 -0
  49. package/esm2020/lib/pipes/camelToWords.pipe.mjs +23 -0
  50. package/esm2020/lib/services/auth.service.mjs +142 -0
  51. package/esm2020/lib/services/data.service.mjs +125 -0
  52. package/esm2020/lib/services/export.service.mjs +16 -0
  53. package/esm2020/lib/services/http.service.mjs +79 -0
  54. package/esm2020/lib/services/loader-interceptor.service.mjs +77 -0
  55. package/esm2020/lib/services/loader.service.mjs +17 -0
  56. package/esm2020/lib/services/log.service.mjs +77 -0
  57. package/esm2020/lib/services/message.service.mjs +52 -0
  58. package/esm2020/lib/services/storage.service.mjs +34 -0
  59. package/esm2020/lib/services/tin-spa.service.mjs +14 -0
  60. package/esm2020/lib/tin-spa.module.mjs +114 -0
  61. package/esm2020/public-api.mjs +62 -0
  62. package/esm2020/tin-spa.mjs +5 -0
  63. package/fesm2015/tin-spa.mjs +4026 -0
  64. package/fesm2015/tin-spa.mjs.map +1 -0
  65. package/fesm2020/tin-spa.mjs +4008 -0
  66. package/fesm2020/tin-spa.mjs.map +1 -0
  67. package/index.d.ts +5 -0
  68. package/lib/classes/Classes.d.ts +69 -62
  69. package/lib/classes/TinCore.d.ts +6 -0
  70. package/lib/components/activity/activity.component.d.ts +3 -0
  71. package/lib/components/attach/attach.component.d.ts +4 -1
  72. package/lib/components/change-password/change-password.component.d.ts +3 -0
  73. package/lib/components/check/check.component.d.ts +3 -0
  74. package/lib/components/chips/chips.component.d.ts +3 -0
  75. package/lib/components/create-account/create-account.component.d.ts +3 -0
  76. package/lib/components/date/date.component.d.ts +19 -7
  77. package/lib/components/datetime/datetime.component.d.ts +3 -0
  78. package/lib/components/filter/filter.component.d.ts +4 -0
  79. package/lib/components/form/form.component.d.ts +23 -0
  80. package/lib/components/label/label.component.d.ts +3 -0
  81. package/lib/components/loader/loader.component.d.ts +3 -0
  82. package/lib/components/login/login.component.d.ts +6 -0
  83. package/lib/components/logs/logs.component.d.ts +3 -0
  84. package/lib/components/message/messageDialog.component.d.ts +3 -0
  85. package/lib/components/money/currency-input-mask.directive.d.ts +41 -0
  86. package/lib/components/money/currency-input-mask.module.d.ts +9 -0
  87. package/lib/components/money/money.component.d.ts +19 -3
  88. package/lib/components/nav-menu/nav-menu.component.d.ts +3 -0
  89. package/lib/components/number/number.component.d.ts +31 -0
  90. package/lib/components/option/option.component.d.ts +3 -0
  91. package/lib/components/profile/profile.component.d.ts +6 -2
  92. package/lib/components/recover-account/recover-account.component.d.ts +3 -0
  93. package/lib/components/roles/addRoleDialog.component.d.ts +3 -0
  94. package/lib/components/roles/roles.component.d.ts +3 -0
  95. package/lib/components/select/select.component.d.ts +5 -1
  96. package/lib/components/settings/settings.component.d.ts +3 -0
  97. package/lib/components/signup/signup.component.d.ts +3 -0
  98. package/lib/components/steps/steps.component.d.ts +3 -0
  99. package/lib/components/table/detailsDialog.component.d.ts +26 -0
  100. package/lib/components/table/table.component.d.ts +57 -17
  101. package/lib/components/text/text.component.d.ts +14 -10
  102. package/lib/components/tiles/tiles.component.d.ts +3 -0
  103. package/lib/components/tin-spa.component.d.ts +4 -4
  104. package/lib/components/users/users.component.d.ts +4 -0
  105. package/lib/modules/admin/admin-routing.module.d.ts +7 -0
  106. package/lib/modules/admin/admin.module.d.ts +9 -0
  107. package/lib/modules/index/index-routing.module.d.ts +7 -0
  108. package/lib/modules/index/index.module.d.ts +9 -0
  109. package/lib/modules/spa-admin.module.d.ts +13 -0
  110. package/lib/modules/spa-index.module.d.ts +10 -0
  111. package/lib/modules/spa-mat.module.d.ts +31 -0
  112. package/lib/modules/spa-user.module.d.ts +9 -0
  113. package/lib/modules/user/user-routing.module.d.ts +7 -0
  114. package/lib/modules/user/user.module.d.ts +9 -0
  115. package/lib/pipes/camelToWords.pipe.d.ts +7 -0
  116. package/lib/services/auth.service.d.ts +3 -0
  117. package/lib/services/data.service.d.ts +5 -1
  118. package/lib/services/export.service.d.ts +3 -4
  119. package/lib/services/http.service.d.ts +3 -0
  120. package/lib/services/loader-interceptor.service.d.ts +3 -0
  121. package/lib/services/loader.service.d.ts +3 -0
  122. package/lib/services/log.service.d.ts +3 -0
  123. package/lib/services/message.service.d.ts +3 -0
  124. package/lib/services/storage.service.d.ts +3 -0
  125. package/lib/services/tin-spa.service.d.ts +3 -0
  126. package/lib/tin-spa.module.d.ts +30 -0
  127. package/package.json +24 -23
  128. package/public-api.d.ts +7 -2
  129. package/bundles/tin-spa.umd.js +0 -3672
  130. package/bundles/tin-spa.umd.js.map +0 -1
  131. package/bundles/tin-spa.umd.min.js +0 -16
  132. package/bundles/tin-spa.umd.min.js.map +0 -1
  133. package/esm2015/lib/classes/Classes.js +0 -254
  134. package/esm2015/lib/classes/TinCore.js +0 -139
  135. package/esm2015/lib/components/activity/activity.component.js +0 -26
  136. package/esm2015/lib/components/attach/attach.component.js +0 -107
  137. package/esm2015/lib/components/change-password/change-password.component.js +0 -102
  138. package/esm2015/lib/components/check/check.component.js +0 -63
  139. package/esm2015/lib/components/chips/chips.component.js +0 -66
  140. package/esm2015/lib/components/create-account/create-account.component.js +0 -78
  141. package/esm2015/lib/components/date/date.component.js +0 -45
  142. package/esm2015/lib/components/datetime/datetime.component.js +0 -44
  143. package/esm2015/lib/components/filter/filter.component.js +0 -40
  144. package/esm2015/lib/components/label/label.component.js +0 -29
  145. package/esm2015/lib/components/loader/loader.component.js +0 -29
  146. package/esm2015/lib/components/login/login.component.js +0 -114
  147. package/esm2015/lib/components/logs/logs.component.js +0 -39
  148. package/esm2015/lib/components/message/messageDialog.component.js +0 -31
  149. package/esm2015/lib/components/money/money.component.js +0 -52
  150. package/esm2015/lib/components/nav-menu/nav-menu.component.js +0 -51
  151. package/esm2015/lib/components/option/option.component.js +0 -63
  152. package/esm2015/lib/components/profile/profile.component.js +0 -98
  153. package/esm2015/lib/components/recover-account/recover-account.component.js +0 -53
  154. package/esm2015/lib/components/roles/addRoleDialog.component.js +0 -61
  155. package/esm2015/lib/components/roles/roles.component.js +0 -94
  156. package/esm2015/lib/components/select/select.component.js +0 -77
  157. package/esm2015/lib/components/settings/settings.component.js +0 -63
  158. package/esm2015/lib/components/signup/signup.component.js +0 -57
  159. package/esm2015/lib/components/steps/steps.component.js +0 -93
  160. package/esm2015/lib/components/table/table.component.js +0 -107
  161. package/esm2015/lib/components/text/text.component.js +0 -165
  162. package/esm2015/lib/components/tiles/tiles.component.js +0 -41
  163. package/esm2015/lib/components/timeout/timeout.component.js +0 -90
  164. package/esm2015/lib/components/tin-spa.component.js +0 -19
  165. package/esm2015/lib/components/users/users.component.js +0 -120
  166. package/esm2015/lib/dnd.directive.js +0 -51
  167. package/esm2015/lib/modules/spa-admin.module.js +0 -50
  168. package/esm2015/lib/modules/spa-index.module.js +0 -35
  169. package/esm2015/lib/modules/spa-mat.module.js +0 -53
  170. package/esm2015/lib/modules/spa-user.module.js +0 -33
  171. package/esm2015/lib/services/auth.service.js +0 -155
  172. package/esm2015/lib/services/data.service.js +0 -115
  173. package/esm2015/lib/services/export.service.js +0 -29
  174. package/esm2015/lib/services/http.service.js +0 -84
  175. package/esm2015/lib/services/loader-interceptor.service.js +0 -83
  176. package/esm2015/lib/services/loader.service.js +0 -17
  177. package/esm2015/lib/services/log.service.js +0 -76
  178. package/esm2015/lib/services/message.service.js +0 -58
  179. package/esm2015/lib/services/storage.service.js +0 -42
  180. package/esm2015/lib/services/tin-spa.service.js +0 -14
  181. package/esm2015/lib/tin-spa.module.js +0 -91
  182. package/esm2015/public-api.js +0 -56
  183. package/esm2015/tin-spa.js +0 -8
  184. package/esm5/lib/classes/Classes.js +0 -313
  185. package/esm5/lib/classes/TinCore.js +0 -166
  186. package/esm5/lib/components/activity/activity.component.js +0 -27
  187. package/esm5/lib/components/attach/attach.component.js +0 -119
  188. package/esm5/lib/components/change-password/change-password.component.js +0 -104
  189. package/esm5/lib/components/check/check.component.js +0 -64
  190. package/esm5/lib/components/chips/chips.component.js +0 -68
  191. package/esm5/lib/components/create-account/create-account.component.js +0 -80
  192. package/esm5/lib/components/date/date.component.js +0 -46
  193. package/esm5/lib/components/datetime/datetime.component.js +0 -45
  194. package/esm5/lib/components/filter/filter.component.js +0 -41
  195. package/esm5/lib/components/label/label.component.js +0 -30
  196. package/esm5/lib/components/loader/loader.component.js +0 -31
  197. package/esm5/lib/components/login/login.component.js +0 -117
  198. package/esm5/lib/components/logs/logs.component.js +0 -41
  199. package/esm5/lib/components/message/messageDialog.component.js +0 -32
  200. package/esm5/lib/components/money/money.component.js +0 -53
  201. package/esm5/lib/components/nav-menu/nav-menu.component.js +0 -53
  202. package/esm5/lib/components/option/option.component.js +0 -64
  203. package/esm5/lib/components/profile/profile.component.js +0 -102
  204. package/esm5/lib/components/recover-account/recover-account.component.js +0 -55
  205. package/esm5/lib/components/roles/addRoleDialog.component.js +0 -63
  206. package/esm5/lib/components/roles/roles.component.js +0 -100
  207. package/esm5/lib/components/select/select.component.js +0 -79
  208. package/esm5/lib/components/settings/settings.component.js +0 -66
  209. package/esm5/lib/components/signup/signup.component.js +0 -59
  210. package/esm5/lib/components/steps/steps.component.js +0 -105
  211. package/esm5/lib/components/table/table.component.js +0 -109
  212. package/esm5/lib/components/text/text.component.js +0 -168
  213. package/esm5/lib/components/tiles/tiles.component.js +0 -42
  214. package/esm5/lib/components/timeout/timeout.component.js +0 -92
  215. package/esm5/lib/components/tin-spa.component.js +0 -17
  216. package/esm5/lib/components/users/users.component.js +0 -126
  217. package/esm5/lib/dnd.directive.js +0 -52
  218. package/esm5/lib/modules/spa-admin.module.js +0 -53
  219. package/esm5/lib/modules/spa-index.module.js +0 -38
  220. package/esm5/lib/modules/spa-mat.module.js +0 -56
  221. package/esm5/lib/modules/spa-user.module.js +0 -36
  222. package/esm5/lib/services/auth.service.js +0 -157
  223. package/esm5/lib/services/data.service.js +0 -116
  224. package/esm5/lib/services/export.service.js +0 -30
  225. package/esm5/lib/services/http.service.js +0 -85
  226. package/esm5/lib/services/loader-interceptor.service.js +0 -85
  227. package/esm5/lib/services/loader.service.js +0 -18
  228. package/esm5/lib/services/log.service.js +0 -112
  229. package/esm5/lib/services/message.service.js +0 -59
  230. package/esm5/lib/services/storage.service.js +0 -74
  231. package/esm5/lib/services/tin-spa.service.js +0 -16
  232. package/esm5/lib/tin-spa.module.js +0 -94
  233. package/esm5/public-api.js +0 -56
  234. package/esm5/tin-spa.js +0 -8
  235. package/fesm2015/tin-spa.js +0 -3184
  236. package/fesm2015/tin-spa.js.map +0 -1
  237. package/fesm5/tin-spa.js +0 -3422
  238. package/fesm5/tin-spa.js.map +0 -1
  239. package/lib/components/timeout/timeout.component.d.ts +0 -21
  240. package/lib/dnd.directive.d.ts +0 -8
  241. package/tin-spa.d.ts +0 -7
  242. package/tin-spa.metadata.json +0 -1
@@ -1,166 +0,0 @@
1
- import { __values } from "tslib";
2
- var Core = /** @class */ (function () {
3
- function Core() {
4
- }
5
- Core.getClone = function (x) {
6
- return JSON.parse(JSON.stringify(x));
7
- };
8
- Core.getNumber = function (value) {
9
- if (value == null || value == "") {
10
- return 0;
11
- }
12
- var onlyNumbers = value.replace(/[^\d.-]/g, '');
13
- return onlyNumbers;
14
- };
15
- Core.getFirstDayOfMonth = function () {
16
- var date = new Date();
17
- return new Date(date.getFullYear(), date.getMonth(), 1);
18
- };
19
- Core.emailIsValid = function (email) {
20
- // return /\S+@\S+\.\S+/.test(email)
21
- return false;
22
- };
23
- Core.isValidUNCPath = function (path) {
24
- // return /\\\\([a-zA-Z0-9_.$●-]+)\\([a-zA-Z0-9_.$●-]+).*/.test(path)
25
- return false;
26
- };
27
- Core.isValidDate = function (date) {
28
- var parsedDate = Date.parse(date);
29
- if (isNaN(date) && !isNaN(parsedDate)) {
30
- return true;
31
- }
32
- else {
33
- return false;
34
- }
35
- };
36
- Core.isValidEmailList = function (list) {
37
- var e_1, _a;
38
- if (list.includes(";")) {
39
- var emails = list.split(";");
40
- try {
41
- for (var emails_1 = __values(emails), emails_1_1 = emails_1.next(); !emails_1_1.done; emails_1_1 = emails_1.next()) {
42
- var email = emails_1_1.value;
43
- if (this.emailIsValid(email) == false) {
44
- return false;
45
- }
46
- }
47
- }
48
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
49
- finally {
50
- try {
51
- if (emails_1_1 && !emails_1_1.done && (_a = emails_1.return)) _a.call(emails_1);
52
- }
53
- finally { if (e_1) throw e_1.error; }
54
- }
55
- }
56
- else {
57
- if (this.emailIsValid(list) == false) {
58
- return false;
59
- }
60
- }
61
- return true;
62
- };
63
- Core.isNumber = function (value) {
64
- return ((value != null) &&
65
- (value !== '') &&
66
- !isNaN(Number(value.toString())));
67
- };
68
- Core.getDiff = function (startDate, endDate) {
69
- if (endDate === void 0) { endDate = Date(); }
70
- var eventStartTime = new Date(startDate);
71
- var eventEndTime = new Date(endDate);
72
- var milliseconds = eventEndTime.valueOf() - eventStartTime.valueOf();
73
- function numberEnding(number) {
74
- if (number.toFixed() == '1') {
75
- return '';
76
- }
77
- else {
78
- return 's';
79
- }
80
- }
81
- var minutes = (milliseconds / (1000 * 60));
82
- var hours = (milliseconds / (1000 * 60 * 60));
83
- var days = (milliseconds / (1000 * 60 * 60 * 24));
84
- var weeks = (milliseconds / (1000 * 60 * 60 * 24 * 7));
85
- var months = (milliseconds / (1000 * 60 * 60 * 24 * 7 * 4));
86
- var years = (milliseconds / (1000 * 60 * 60 * 24 * 365));
87
- if (years >= 1) {
88
- return years.toFixed() + ' year' + numberEnding(years);
89
- }
90
- else if (months >= 1) {
91
- return months.toFixed() + ' month' + numberEnding(months);
92
- }
93
- else if (weeks >= 1) {
94
- return weeks.toFixed() + ' week' + numberEnding(weeks);
95
- }
96
- else if (days >= 1) {
97
- return days.toFixed() + ' day' + numberEnding(days);
98
- }
99
- else if (hours >= 1) {
100
- return hours.toFixed() + ' hour' + numberEnding(hours);
101
- }
102
- else if (minutes >= 1) {
103
- return minutes.toFixed() + ' minute' + numberEnding(minutes);
104
- }
105
- else if (milliseconds >= (-1000 * 60)) {
106
- return 'a minute';
107
- }
108
- else {
109
- return 'N/A';
110
- }
111
- };
112
- Core.nowDate = function (NoTime) {
113
- if (NoTime === void 0) { NoTime = false; }
114
- if (NoTime) {
115
- return this.getFormatedDate(Date(), true);
116
- }
117
- else {
118
- return this.getFormatedDate(Date());
119
- }
120
- };
121
- Core.getFormatedDate = function (dateString, NoTime) {
122
- if (NoTime === void 0) { NoTime = false; }
123
- var d = new Date(dateString);
124
- d.setHours(d.getHours() + 2);
125
- if (NoTime == true) {
126
- return d.toISOString().split('T')[0];
127
- }
128
- else {
129
- return d.toISOString().split('.')[0];
130
- }
131
- };
132
- Core.getBusinessDatesCount = function (startDate, endDate) {
133
- var count = 0;
134
- var _startDate = new Date(startDate);
135
- var _endDate = new Date(endDate);
136
- var curDate = _startDate;
137
- while (curDate < _endDate) {
138
- var dayOfWeek = curDate.getDay();
139
- if (!(dayOfWeek == 6 || dayOfWeek == 0))
140
- count++;
141
- curDate.setDate(curDate.getDate() + 1);
142
- }
143
- return count;
144
- };
145
- Core.nullDate = "01 Jan 1969";
146
- return Core;
147
- }());
148
- export { Core };
149
- var ApiResponse = /** @class */ (function () {
150
- function ApiResponse() {
151
- }
152
- return ApiResponse;
153
- }());
154
- export { ApiResponse };
155
- var Constants = /** @class */ (function () {
156
- function Constants() {
157
- }
158
- Constants.AUTH_USER = 'a';
159
- Constants.AUTH_NAME = 'b';
160
- Constants.AUTH_ROLES = 'c';
161
- Constants.AUTH_TOKEN = 'd';
162
- Constants.AUTH_TOKEN_EXPIRE = 'e';
163
- return Constants;
164
- }());
165
- export { Constants };
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGluQ29yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3Rpbi1zcGEvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9UaW5Db3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtJQUFBO0lBb0xBLENBQUM7SUFsTGUsYUFBUSxHQUF0QixVQUF1QixDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVhLGNBQVMsR0FBdkIsVUFBd0IsS0FBYTtRQUVuQyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsSUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEQsT0FBTyxXQUFXLENBQUE7SUFDcEIsQ0FBQztJQUVhLHVCQUFrQixHQUFoQztRQUNFLElBQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFYSxpQkFBWSxHQUExQixVQUEyQixLQUFLO1FBQzlCLG9DQUFvQztRQUNwQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFYSxtQkFBYyxHQUE1QixVQUE2QixJQUFZO1FBQ3ZDLHFFQUFxRTtRQUNyRSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFYSxnQkFBVyxHQUF6QixVQUEwQixJQUFJO1FBRTVCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFHbEMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxD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QUFTLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLG1CQUFTLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLG9CQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLG9CQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLDJCQUFpQixHQUFHLEdBQUcsQ0FBQztJQUNqRCxnQkFBQztDQUFBLEFBTkQsSUFNQztTQU5ZLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ29yZSB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Q2xvbmUoeCkge1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoeCkpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldE51bWJlcih2YWx1ZTogc3RyaW5nKSB7XHJcblxyXG4gICAgaWYgKHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT0gXCJcIikge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvbmx5TnVtYmVycyA9IHZhbHVlLnJlcGxhY2UoL1teXFxkLi1dL2csICcnKTtcclxuICAgIHJldHVybiBvbmx5TnVtYmVyc1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRGaXJzdERheU9mTW9udGgoKSB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGVtYWlsSXNWYWxpZChlbWFpbCkge1xyXG4gICAgLy8gcmV0dXJuIC9cXFMrQFxcUytcXC5cXFMrLy50ZXN0KGVtYWlsKVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkVU5DUGF0aChwYXRoOiBzdHJpbmcpIHtcclxuICAgIC8vIHJldHVybiAvXFxcXFxcXFwoW2EtekEtWjAtOV8uJOKXjy1dKylcXFxcKFthLXpBLVowLTlfLiTil48tXSspLiovLnRlc3QocGF0aClcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZERhdGUoZGF0ZSkge1xyXG5cclxuICAgIHZhciBwYXJzZWREYXRlID0gRGF0ZS5wYXJzZShkYXRlKTtcclxuXHJcblxyXG4gICAgaWYgKGlzTmFOKGRhdGUpICYmICFpc05hTihwYXJzZWREYXRlKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRFbWFpbExpc3QobGlzdDogc3RyaW5nKSB7XHJcblxyXG4gICAgaWYgKGxpc3QuaW5jbHVkZXMoXCI7XCIpKSB7XHJcblxyXG4gICAgICBsZXQgZW1haWxzID0gbGlzdC5zcGxpdChcIjtcIilcclxuXHJcbiAgICAgIGZvciAodmFyIGVtYWlsIG9mIGVtYWlscykge1xyXG4gICAgICAgIGlmICh0aGlzLmVtYWlsSXNWYWxpZChlbWFpbCkgPT0gZmFsc2UpIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIGlmICh0aGlzLmVtYWlsSXNWYWxpZChsaXN0KSA9PSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIG51bGxEYXRlID0gXCIwMSBKYW4gMTk2OVwiXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNOdW1iZXIodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICgodmFsdWUgIT0gbnVsbCkgJiZcclxuICAgICAgKHZhbHVlICE9PSAnJykgJiZcclxuICAgICAgIWlzTmFOKE51bWJlcih2YWx1ZS50b1N0cmluZygpKSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXREaWZmKHN0YXJ0RGF0ZSwgZW5kRGF0ZSA9IERhdGUoKSkge1xyXG5cclxuICAgIHZhciBldmVudFN0YXJ0VGltZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSk7XHJcbiAgICB2YXIgZXZlbnRFbmRUaW1lID0gbmV3IERhdGUoZW5kRGF0ZSk7XHJcbiAgICB2YXIgbWlsbGlzZWNvbmRzID0gZXZlbnRFbmRUaW1lLnZhbHVlT2YoKSAtIGV2ZW50U3RhcnRUaW1lLnZhbHVlT2YoKTtcclxuXHJcbiAgICBmdW5jdGlvbiBudW1iZXJFbmRpbmcobnVtYmVyOiBudW1iZXIpIHtcclxuXHJcbiAgICAgIGlmIChudW1iZXIudG9GaXhlZCgpID09ICcxJykge1xyXG4gICAgICAgIHJldHVybiAnJ1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAncyc7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgdmFyIG1pbnV0ZXMgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCkpO1xyXG5cclxuICAgIHZhciBob3VyczogbnVtYmVyID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjAgKiA2MCkpO1xyXG5cclxuICAgIHZhciBkYXlzID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XHJcblxyXG4gICAgdmFyIHdlZWtzOiBudW1iZXIgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCAqIDYwICogMjQgKiA3KSk7XHJcblxyXG4gICAgdmFyIG1vbnRocyA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDcgKiA0KSk7XHJcblxyXG4gICAgdmFyIHllYXJzID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjAgKiA2MCAqIDI0ICogMzY1KSk7XHJcblxyXG5cclxuICAgIGlmICh5ZWFycyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4geWVhcnMudG9GaXhlZCgpICsgJyB5ZWFyJyArIG51bWJlckVuZGluZyh5ZWFycyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChtb250aHMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIG1vbnRocy50b0ZpeGVkKCkgKyAnIG1vbnRoJyArIG51bWJlckVuZGluZyhtb250aHMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAod2Vla3MgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIHdlZWtzLnRvRml4ZWQoKSArICcgd2VlaycgKyBudW1iZXJFbmRpbmcod2Vla3MpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoZGF5cyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4gZGF5cy50b0ZpeGVkKCkgKyAnIGRheScgKyBudW1iZXJFbmRpbmcoZGF5cyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChob3VycyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4gaG91cnMudG9GaXhlZCgpICsgJyBob3VyJyArIG51bWJlckVuZGluZyhob3Vycyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChtaW51dGVzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiBtaW51dGVzLnRvRml4ZWQoKSArICcgbWludXRlJyArIG51bWJlckVuZGluZyhtaW51dGVzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKG1pbGxpc2Vjb25kcyA+PSAoLTEwMDAgKiA2MCkpIHtcclxuXHJcbiAgICAgIHJldHVybiAnYSBtaW51dGUnO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICByZXR1cm4gJ04vQSc7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbm93RGF0ZShOb1RpbWU6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG5cclxuICAgIGlmIChOb1RpbWUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybWF0ZWREYXRlKERhdGUoKSwgdHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRGb3JtYXRlZERhdGUoRGF0ZSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Rm9ybWF0ZWREYXRlKGRhdGVTdHJpbmc6IHN0cmluZywgTm9UaW1lOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcbiAgICBsZXQgZDogRGF0ZSA9IG5ldyBEYXRlKGRhdGVTdHJpbmcpO1xyXG4gICAgZC5zZXRIb3VycyhkLmdldEhvdXJzKCkgKyAyKTtcclxuXHJcbiAgICBpZiAoTm9UaW1lID09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIGQudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGQudG9JU09TdHJpbmcoKS5zcGxpdCgnLicpWzBdO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0QnVzaW5lc3NEYXRlc0NvdW50KHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmcpIHtcclxuICAgIHZhciBjb3VudCA9IDA7XHJcbiAgICB2YXIgX3N0YXJ0RGF0ZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSk7XHJcbiAgICB2YXIgX2VuZERhdGUgPSBuZXcgRGF0ZShlbmREYXRlKTtcclxuXHJcbiAgICB2YXIgY3VyRGF0ZSA9IF9zdGFydERhdGU7XHJcblxyXG4gICAgd2hpbGUgKGN1ckRhdGUgPCBfZW5kRGF0ZSkge1xyXG4gICAgICB2YXIgZGF5T2ZXZWVrID0gY3VyRGF0ZS5nZXREYXkoKTtcclxuICAgICAgaWYgKCEoZGF5T2ZXZWVrID09IDYgfHwgZGF5T2ZXZWVrID09IDApKSBjb3VudCsrO1xyXG4gICAgICBjdXJEYXRlLnNldERhdGUoY3VyRGF0ZS5nZXREYXRlKCkgKyAxKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY291bnQ7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBcGlSZXNwb25zZSB7XHJcbiAgc3VjY2VzczogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgZGF0YTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbnN0YW50cyB7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1VTRVIgPSAnYSc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX05BTUUgPSAnYic7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1JPTEVTID0gJ2MnO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9UT0tFTiA9ICdkJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfVE9LRU5fRVhQSVJFID0gJ2UnO1xyXG59XHJcblxyXG4iXX0=
@@ -1,27 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component, Input } from '@angular/core';
3
- var ActivityComponent = /** @class */ (function () {
4
- function ActivityComponent() {
5
- this.notes = new Array();
6
- this.notesMessage = "Empty";
7
- this.title = "Notes";
8
- }
9
- ActivityComponent.prototype.ngOnInit = function () {
10
- };
11
- __decorate([
12
- Input()
13
- ], ActivityComponent.prototype, "notes", void 0);
14
- __decorate([
15
- Input()
16
- ], ActivityComponent.prototype, "title", void 0);
17
- ActivityComponent = __decorate([
18
- Component({
19
- selector: 'spa-activity',
20
- template: "\r\n <div class=\"tin-input-row mt-3\" *ngIf=\"title != ''\">\r\n <mat-label style=\"font-size: 20px; font-weight: 300\" > {{title}}</mat-label >\r\n </div>\r\n\r\n <ul *ngIf=\"notes && notes.length>0\" class=\"list-group list-group-flush\" style=\"max-height:350px; margin-left:5px\">\r\n\r\n <li *ngFor=\"let note of notes\" class=\"list-group-item list-group-item-action flex-column align-items-start\">\r\n <div class=\"d-flex w-100 justify-content-between\">\r\n <div class=\"mb-0\">{{note.createdByName}}</div>\r\n <!-- <small class=\"text-muted\">{{note.expr1}} ago</small> -->\r\n </div>\r\n\r\n <small>{{note.details}} (<em>{{note.createdDate | date: 'dd MMM yyyy HH:mm'}}</em>) </small>\r\n </li>\r\n\r\n\r\n </ul>\r\n\r\n <div *ngIf=\"notes && notes.length==0\" class=\"d-flex justify-content-center row align-items-center\" style=\"max-height:200px\">\r\n\r\n No {{title.toLowerCase()}}\r\n\r\n </div>\r\n",
21
- styles: [""]
22
- })
23
- ], ActivityComponent);
24
- return ActivityComponent;
25
- }());
26
- export { ActivityComponent };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FjdGl2aXR5L2FjdGl2aXR5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPekQ7SUFFRTtRQUtTLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzdCLGlCQUFZLEdBQVcsT0FBTyxDQUFDO1FBQ3RCLFVBQUssR0FBRyxPQUFPLENBQUE7SUFQUixDQUFDO0lBRWpCLG9DQUFRLEdBQVI7SUFDQSxDQUFDO0lBRVE7UUFBUixLQUFLLEVBQUU7b0RBQXFCO0lBRXBCO1FBQVIsS0FBSyxFQUFFO29EQUFnQjtJQVRiLGlCQUFpQjtRQUw3QixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsY0FBYztZQUN4Qiw4Z0NBQXdDOztTQUV6QyxDQUFDO09BQ1csaUJBQWlCLENBVzdCO0lBQUQsd0JBQUM7Q0FBQSxBQVhELElBV0M7U0FYWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWFjdGl2aXR5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZpdHkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FjdGl2aXR5LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIG5vdGVzID0gbmV3IEFycmF5KCk7XHJcbiAgbm90ZXNNZXNzYWdlOiBzdHJpbmcgPSBcIkVtcHR5XCI7XHJcbiAgQElucHV0KCkgdGl0bGUgPSBcIk5vdGVzXCJcclxuXHJcbn1cclxuIl19
@@ -1,119 +0,0 @@
1
- import { __decorate, __values } from "tslib";
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- var AttachComponent = /** @class */ (function () {
4
- function AttachComponent() {
5
- this.message = "Drag and drop files here";
6
- this.files = [];
7
- this.filesChange = new EventEmitter();
8
- this.upload = new EventEmitter();
9
- this.enableUpload = false;
10
- }
11
- AttachComponent.prototype.ngOnInit = function () {
12
- };
13
- /**
14
- * on file drop handler
15
- */
16
- AttachComponent.prototype.onFileDropped = function ($event) {
17
- this.prepareFilesList($event);
18
- };
19
- /**
20
- * handle file from browsing
21
- */
22
- AttachComponent.prototype.fileBrowseHandler = function (files) {
23
- this.prepareFilesList(files);
24
- };
25
- /**
26
- * Delete file from files list
27
- * @param index (File index)
28
- */
29
- AttachComponent.prototype.deleteFile = function (index) {
30
- this.files.splice(index, 1);
31
- };
32
- /**
33
- * Simulate the upload process
34
- */
35
- // uploadFilesSimulator(index: number) {
36
- // setTimeout(() => {
37
- // if (index === this.files.length) {
38
- // return;
39
- // } else {
40
- // const progressInterval = setInterval(() => {
41
- // if (this.files[index].progress === 100) {
42
- // clearInterval(progressInterval);
43
- // this.uploadFilesSimulator(index + 1);
44
- // } else {
45
- // this.files[index].progress += 5;
46
- // }
47
- // }, 200);
48
- // }
49
- // }, 1000);
50
- // }
51
- /**
52
- * Convert Files list to normal array list
53
- * @param files (Files List)
54
- */
55
- AttachComponent.prototype.prepareFilesList = function (files) {
56
- var e_1, _a;
57
- try {
58
- for (var files_1 = __values(files), files_1_1 = files_1.next(); !files_1_1.done; files_1_1 = files_1.next()) {
59
- var item = files_1_1.value;
60
- item.progress = 0;
61
- this.files.push(item);
62
- }
63
- }
64
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
65
- finally {
66
- try {
67
- if (files_1_1 && !files_1_1.done && (_a = files_1.return)) _a.call(files_1);
68
- }
69
- finally { if (e_1) throw e_1.error; }
70
- }
71
- // this.uploadFilesSimulator(0);
72
- };
73
- /**
74
- * format bytes
75
- * @param bytes (File size in bytes)
76
- * @param decimals (Decimals point)
77
- */
78
- AttachComponent.prototype.formatBytes = function (bytes, decimals) {
79
- if (bytes === 0) {
80
- return '0 Bytes';
81
- }
82
- var k = 1024;
83
- var dm = decimals <= 0 ? 0 : decimals || 2;
84
- var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
85
- var i = Math.floor(Math.log(bytes) / Math.log(k));
86
- return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
87
- };
88
- AttachComponent.prototype.uploaded = function () {
89
- this.upload.emit();
90
- };
91
- AttachComponent.prototype.filesChanged = function () {
92
- this.filesChange.emit(this.files);
93
- };
94
- __decorate([
95
- Input()
96
- ], AttachComponent.prototype, "message", void 0);
97
- __decorate([
98
- Input()
99
- ], AttachComponent.prototype, "files", void 0);
100
- __decorate([
101
- Output()
102
- ], AttachComponent.prototype, "filesChange", void 0);
103
- __decorate([
104
- Output()
105
- ], AttachComponent.prototype, "upload", void 0);
106
- __decorate([
107
- Input()
108
- ], AttachComponent.prototype, "enableUpload", void 0);
109
- AttachComponent = __decorate([
110
- Component({
111
- selector: 'spa-attach',
112
- template: "<div class=\"tin-input-row\" style=\"width: 100%;\">\r\n\r\n <div class=\"col\">\r\n <div class=\"container\" appDnd (fileDropped)=\"onFileDropped($event)\">\r\n <input type=\"file\" #fileDropRef id=\"fileDropRef\" multiple (change)=\"fileBrowseHandler($event.target.files)\" />\r\n <h4>{{message}}</h4>\r\n <h4>or</h4>\r\n <label for=\"fileDropRef\">Click to Browse</label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <div class=\"files-list \">\r\n <div class=\"single-file \" style=\"width: 100%;\" *ngFor=\"let file of files; let i = index\">\r\n\r\n <div class=\"tin-input-row info\" >\r\n <h4 class=\"name\">\r\n {{ file?.name }}\r\n </h4>\r\n <p class=\"size\">\r\n {{ formatBytes(file?.size, 2) }}\r\n </p>\r\n </div>\r\n\r\n <div class=\"delete\" (click)=\"deleteFile(i)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"18\" viewBox=\"0 0 14 18\">\r\n <path fill=\"#B1B1B1\" fill-rule=\"nonzero\"\r\n d=\"M1 16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v10zm3.17-7.83a.996.996 0 0 1 1.41 0L7 9.59l1.42-1.42a.996.996 0 1 1 1.41 1.41L8.41 11l1.42 1.42a.996.996 0 1 1-1.41 1.41L7 12.41l-1.42 1.42a.996.996 0 1 1-1.41-1.41L5.59 11 4.17 9.58a.996.996 0 0 1 0-1.41zM10.5 1L9.79.29C9.61.11 9.35 0 9.09 0H4.91c-.26 0-.52.11-.7.29L3.5 1H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1h-2.5z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length > 0 && enableUpload\" class=\"tin-input-row d-flex justify-content-center\" style=\"width: 100%;\" >\r\n <button mat-button color=\"primary\" (click)=\"uploaded()\" matTooltip=\"Upload New Documents\" matTooltipPosition=\"above\" ><mat-icon>file_upload</mat-icon> Upload</button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n",
113
- styles: [".container{width:100%;height:200px;padding:2rem;text-align:center;border:2px dashed #2a7b94;position:relative;margin:0 auto}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0}.container label{color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.container h3{font-size:20px;font-weight:600;color:#38424c}.fileover{-webkit-animation:1s infinite shake;animation:1s infinite shake}.files-list{margin-top:1.5rem}.files-list .single-file{display:flex;padding:.5rem;justify-content:space-between;align-items:center;border:1px dashed #1c824d;margin-bottom:1rem;margin-right:1rem;display:flex;flex-grow:1}.files-list .single-file .delete{display:flex;margin-left:.5rem;cursor:pointer;align-self:flex-end}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 0 1rem}.files-list .single-file .info{width:100%}@-webkit-keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px,0) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}100%{transform:translate(1px,-2px) rotate(-1deg)}}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px,0) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}100%{transform:translate(1px,-2px) rotate(-1deg)}}"]
114
- })
115
- ], AttachComponent);
116
- return AttachComponent;
117
- }());
118
- export { AttachComponent };
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3Rpbi1zcGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hdHRhY2gvYXR0YWNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvRTtJQUVFO1FBS1MsWUFBTyxHQUFHLDBCQUEwQixDQUFBO1FBQ3BDLFVBQUssR0FBVSxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRzdCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBWGQsQ0FBQztJQUVqQixrQ0FBUSxHQUFSO0lBQ0EsQ0FBQztJQVdEOztPQUVHO0lBQ0gsdUNBQWEsR0FBYixVQUFjLE1BQU07UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILDJDQUFpQixHQUFqQixVQUFrQixLQUFLO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0NBQVUsR0FBVixVQUFXLEtBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILHdDQUF3QztJQUN4Qyx1QkFBdUI7SUFDdkIseUNBQXlDO0lBQ3pDLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YscURBQXFEO0lBQ3JELG9EQUFvRDtJQUNwRCw2Q0FBNkM7SUFDN0Msa0RBQWtEO0lBQ2xELG1CQUFtQjtJQUNuQiw2Q0FBNkM7SUFDN0MsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixRQUFRO0lBQ1IsY0FBYztJQUNkLElBQUk7SUFFSjs7O09BR0c7SUFDSCwwQ0FBZ0IsR0FBaEIsVUFBaUIsS0FBaUI7OztZQUNoQyxLQUFtQixJQUFBLFVBQUEsU0FBQSxLQUFLLENBQUEsNEJBQUEsK0NBQUU7Z0JBQXJCLElBQU0sSUFBSSxrQkFBQTtnQkFDYixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdkI7Ozs7Ozs7OztRQUNELGdDQUFnQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHFDQUFXLEdBQVgsVUFBWSxLQUFLLEVBQUUsUUFBUTtRQUN6QixJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDZixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELElBQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNmLElBQU0sRUFBRSxHQUFHLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELGtDQUFRLEdBQVI7UUFDRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxzQ0FBWSxHQUFaO1FBQ0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFyRlE7UUFBUixLQUFLLEVBQUU7b0RBQXFDO0lBQ3BDO1FBQVIsS0FBSyxFQUFFO2tEQUFtQjtJQUNqQjtRQUFULE1BQU0sRUFBRTt3REFBa0M7SUFDakM7UUFBVCxNQUFNLEVBQUU7bURBQTZCO0lBRzdCO1FBQVIsS0FBSyxFQUFFO3lEQUFzQjtJQWJuQixlQUFlO1FBTDNCLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxZQUFZO1lBQ3RCLHE2REFBc0M7O1NBRXZDLENBQUM7T0FDVyxlQUFlLENBNkYzQjtJQUFELHNCQUFDO0NBQUEsQUE3RkQsSUE2RkM7U0E3RlksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1hdHRhY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F0dGFjaC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHRhY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIG1lc3NhZ2UgPSBcIkRyYWcgYW5kIGRyb3AgZmlsZXMgaGVyZVwiXHJcbiAgQElucHV0KCkgZmlsZXM6IGFueVtdID0gW107XHJcbiAgQE91dHB1dCgpIGZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSB1cGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cclxuICBASW5wdXQoKSBlbmFibGVVcGxvYWQgPSBmYWxzZTtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIG9uIGZpbGUgZHJvcCBoYW5kbGVyXHJcbiAgICovXHJcbiAgb25GaWxlRHJvcHBlZCgkZXZlbnQpIHtcclxuICAgIHRoaXMucHJlcGFyZUZpbGVzTGlzdCgkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogaGFuZGxlIGZpbGUgZnJvbSBicm93c2luZ1xyXG4gICAqL1xyXG4gIGZpbGVCcm93c2VIYW5kbGVyKGZpbGVzKSB7XHJcbiAgICB0aGlzLnByZXBhcmVGaWxlc0xpc3QoZmlsZXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGZpbGUgZnJvbSBmaWxlcyBsaXN0XHJcbiAgICogQHBhcmFtIGluZGV4IChGaWxlIGluZGV4KVxyXG4gICAqL1xyXG4gIGRlbGV0ZUZpbGUoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2ltdWxhdGUgdGhlIHVwbG9hZCBwcm9jZXNzXHJcbiAgICovXHJcbiAgLy8gdXBsb2FkRmlsZXNTaW11bGF0b3IoaW5kZXg6IG51bWJlcikge1xyXG4gIC8vICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgLy8gICAgIGlmIChpbmRleCA9PT0gdGhpcy5maWxlcy5sZW5ndGgpIHtcclxuICAvLyAgICAgICByZXR1cm47XHJcbiAgLy8gICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgY29uc3QgcHJvZ3Jlc3NJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAvLyAgICAgICAgIGlmICh0aGlzLmZpbGVzW2luZGV4XS5wcm9ncmVzcyA9PT0gMTAwKSB7XHJcbiAgLy8gICAgICAgICAgIGNsZWFySW50ZXJ2YWwocHJvZ3Jlc3NJbnRlcnZhbCk7XHJcbiAgLy8gICAgICAgICAgIHRoaXMudXBsb2FkRmlsZXNTaW11bGF0b3IoaW5kZXggKyAxKTtcclxuICAvLyAgICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICAgIHRoaXMuZmlsZXNbaW5kZXhdLnByb2dyZXNzICs9IDU7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfSwgMjAwKTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSwgMTAwMCk7XHJcbiAgLy8gfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0IEZpbGVzIGxpc3QgdG8gbm9ybWFsIGFycmF5IGxpc3RcclxuICAgKiBAcGFyYW0gZmlsZXMgKEZpbGVzIExpc3QpXHJcbiAgICovXHJcbiAgcHJlcGFyZUZpbGVzTGlzdChmaWxlczogQXJyYXk8YW55Pikge1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGZpbGVzKSB7XHJcbiAgICAgIGl0ZW0ucHJvZ3Jlc3MgPSAwO1xyXG4gICAgICB0aGlzLmZpbGVzLnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnVwbG9hZEZpbGVzU2ltdWxhdG9yKDApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZm9ybWF0IGJ5dGVzXHJcbiAgICogQHBhcmFtIGJ5dGVzIChGaWxlIHNpemUgaW4gYnl0ZXMpXHJcbiAgICogQHBhcmFtIGRlY2ltYWxzIChEZWNpbWFscyBwb2ludClcclxuICAgKi9cclxuICBmb3JtYXRCeXRlcyhieXRlcywgZGVjaW1hbHMpIHtcclxuICAgIGlmIChieXRlcyA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gJzAgQnl0ZXMnO1xyXG4gICAgfVxyXG4gICAgY29uc3QgayA9IDEwMjQ7XHJcbiAgICBjb25zdCBkbSA9IGRlY2ltYWxzIDw9IDAgPyAwIDogZGVjaW1hbHMgfHwgMjtcclxuICAgIGNvbnN0IHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQicsICdFQicsICdaQicsICdZQiddO1xyXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xyXG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZG0pKSArICcgJyArIHNpemVzW2ldO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkZWQoKXtcclxuICAgIHRoaXMudXBsb2FkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGZpbGVzQ2hhbmdlZCgpe1xyXG4gICAgdGhpcy5maWxlc0NoYW5nZS5lbWl0KHRoaXMuZmlsZXMpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,104 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { ChangeUserPassword } from './../../classes/Classes';
3
- import { Component } from '@angular/core';
4
- import { MessageService } from '../../services/message.service';
5
- import { DataServiceLib } from '../../services/data.service';
6
- import { AuthService } from '../../services/auth.service';
7
- // import { ApiResponse, HttpService } from 'tin-core';
8
- import { Location } from '@angular/common';
9
- import { HttpService } from '../../services/http.service';
10
- import { ActivatedRoute, Router } from '@angular/router';
11
- var ChangePasswordComponent = /** @class */ (function () {
12
- function ChangePasswordComponent(router, location, httpService, messageService, dataService, authService, route) {
13
- this.router = router;
14
- this.location = location;
15
- this.httpService = httpService;
16
- this.messageService = messageService;
17
- this.dataService = dataService;
18
- this.authService = authService;
19
- this.route = route;
20
- this.isProcessing = false;
21
- this.changePassword = new ChangeUserPassword();
22
- }
23
- ChangePasswordComponent.prototype.ngOnInit = function () {
24
- this.myRole = this.authService.currentRoleSource.value;
25
- if (this.dataService.tmpProfileuserName == "") {
26
- this.changePassword.userName = this.authService.currentUser;
27
- }
28
- else {
29
- this.changePassword.userName = this.dataService.tmpProfileuserName;
30
- this.dataService.tmpProfileuserName = "";
31
- }
32
- if (this.route.snapshot.queryParams.redirectTo != undefined) {
33
- this.redirectPath = this.route.snapshot.queryParams.redirectTo;
34
- }
35
- else {
36
- this.redirectPath = "home";
37
- }
38
- };
39
- ChangePasswordComponent.prototype.change = function () {
40
- var _this = this;
41
- if (!this.myRole[this.dataService.capUsers.name]) {
42
- if (this.changePassword.currentPassword == "") {
43
- this.messageService.toast("Please enter current Password");
44
- return;
45
- }
46
- }
47
- if (this.changePassword.newPassword == "") {
48
- this.messageService.toast("Please enter new Password");
49
- return;
50
- }
51
- if (this.changePassword.confirmPassword == "") {
52
- this.messageService.toast("Please confirm new Password");
53
- return;
54
- }
55
- if (this.changePassword.confirmPassword != this.changePassword.newPassword) {
56
- this.messageService.toast("Passwords do not match");
57
- return;
58
- }
59
- this.isProcessing = true;
60
- if (this.myRole[this.dataService.capUsers.name]) {
61
- this.dataService.ChangePasswordAdmin(this.changePassword).subscribe(function (apiResponse) {
62
- _this.isProcessing = false;
63
- if (apiResponse.message == "success") {
64
- _this.messageService.toast("Password Changed");
65
- _this.router.navigate([_this.redirectPath]);
66
- }
67
- else {
68
- _this.messageService.toast("Error: " + apiResponse.message);
69
- }
70
- });
71
- }
72
- else {
73
- this.dataService.ChangePassword(this.changePassword).subscribe(function (apiResponse) {
74
- _this.isProcessing = false;
75
- if (apiResponse.message == "success") {
76
- _this.messageService.toast("Password Changed");
77
- _this.router.navigate([_this.redirectPath]);
78
- }
79
- else {
80
- _this.messageService.toast("Error: " + apiResponse.message);
81
- }
82
- });
83
- }
84
- };
85
- ChangePasswordComponent.ctorParameters = function () { return [
86
- { type: Router },
87
- { type: Location },
88
- { type: HttpService },
89
- { type: MessageService },
90
- { type: DataServiceLib },
91
- { type: AuthService },
92
- { type: ActivatedRoute }
93
- ]; };
94
- ChangePasswordComponent = __decorate([
95
- Component({
96
- selector: 'spa-change-password',
97
- template: "<h4>Change Password</h4>\r\n<hr>\r\n\r\n<div class=\"container\">\r\n\r\n <div class=\"d-flex justify-content-center row align-items-center\" >\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"tin-input \" style=\"font-size:14px;\">\r\n\r\n <div class=\"col\" *ngIf=\"changePassword.userName!=''\">\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" width=\"300px\" readonly=\"true\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\" *ngIf=\"!myRole[dataService.capUsers.name]\">\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col mt-3\">\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! \u2026)<br>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</div>\r\n\r\n",
98
- styles: [""]
99
- })
100
- ], ChangePasswordComponent);
101
- return ChangePasswordComponent;
102
- }());
103
- export { ChangePasswordComponent };
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3Rpbi1zcGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jaGFuZ2UtcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBT3pEO0lBRUUsaUNBQW1CLE1BQWMsRUFBVSxRQUFrQixFQUFVLFdBQXdCLEVBQVUsY0FBOEIsRUFBUyxXQUEyQixFQUFVLFdBQXdCLEVBQVUsS0FBcUI7UUFBek4sV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUF1QjVPLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLG1CQUFjLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBeEJzTSxDQUFDO0lBRWpQ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SSxXQUFXLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRTtvQkFDcEMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFFOUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztpQkFDM0M7cUJBQU07b0JBQ0wsS0FBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDNUQ7WUFDSCxDQUFDLENBQ0EsQ0FBQztTQUVIO0lBQ0gsQ0FBQzs7Z0JBckYwQixNQUFNO2dCQUFvQixRQUFRO2dCQUF1QixXQUFXO2dCQUEwQixjQUFjO2dCQUFzQixjQUFjO2dCQUF1QixXQUFXO2dCQUFpQixjQUFjOztJQUZqTyx1QkFBdUI7UUFMbkMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQiwrNERBQStDOztTQUVoRCxDQUFDO09BQ1csdUJBQXVCLENBd0ZuQztJQUFELDhCQUFDO0NBQUEsQUF4RkQsSUF3RkM7U0F4RlksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENoYW5nZVVzZXJQYXNzd29yZCB9IGZyb20gJy4vLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuLy8gaW1wb3J0IHsgQXBpUmVzcG9uc2UsIEh0dHBTZXJ2aWNlIH0gZnJvbSAndGluLWNvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RpbkNvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWNoYW5nZS1wYXNzd29yZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSwgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHB1YmxpYyBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5teVJvbGUgPSB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRSb2xlU291cmNlLnZhbHVlXHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YVNlcnZpY2UudG1wUHJvZmlsZXVzZXJOYW1lPT1cIlwiKXtcclxuICAgICAgdGhpcy5jaGFuZ2VQYXNzd29yZC51c2VyTmFtZSA9IHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXI7XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuY2hhbmdlUGFzc3dvcmQudXNlck5hbWUgPSB0aGlzLmRhdGFTZXJ2aWNlLnRtcFByb2ZpbGV1c2VyTmFtZTtcclxuICAgICAgdGhpcy5kYXRhU2VydmljZS50bXBQcm9maWxldXNlck5hbWUgPSBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnJlZGlyZWN0VG8gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMucmVkaXJlY3RQYXRoID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5yZWRpcmVjdFRvXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlZGlyZWN0UGF0aCA9IFwiaG9tZVwiXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbXlSb2xlO1xyXG4gIHJlZGlyZWN0UGF0aFxyXG4gIGlzUHJvY2Vzc2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNoYW5nZVBhc3N3b3JkID0gbmV3IENoYW5nZVVzZXJQYXNzd29yZCgpO1xyXG5cclxuICBwdWJsaWMgY2hhbmdlKCkge1xyXG5cclxuICAgIGlmICghdGhpcy5teVJvbGVbdGhpcy5kYXRhU2VydmljZS5jYXBVc2Vycy5uYW1lXSl7XHJcbiAgICAgIGlmICh0aGlzLmNoYW5nZVBhc3N3b3JkLmN1cnJlbnRQYXNzd29yZCA9PSBcIlwiKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlBsZWFzZSBlbnRlciBjdXJyZW50IFBhc3N3b3JkXCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNoYW5nZVBhc3N3b3JkLm5ld1Bhc3N3b3JkID09IFwiXCIpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlBsZWFzZSBlbnRlciBuZXcgUGFzc3dvcmRcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jaGFuZ2VQYXNzd29yZC5jb25maXJtUGFzc3dvcmQgPT0gXCJcIikge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIGNvbmZpcm0gbmV3IFBhc3N3b3JkXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY2hhbmdlUGFzc3dvcmQuY29uZmlybVBhc3N3b3JkICE9IHRoaXMuY2hhbmdlUGFzc3dvcmQubmV3UGFzc3dvcmQgKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQYXNzd29yZHMgZG8gbm90IG1hdGNoXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgIGlmICh0aGlzLm15Um9sZVt0aGlzLmRhdGFTZXJ2aWNlLmNhcFVzZXJzLm5hbWVdKXtcclxuXHJcblxyXG4gICAgICB0aGlzLmRhdGFTZXJ2aWNlLkNoYW5nZVBhc3N3b3JkQWRtaW4odGhpcy5jaGFuZ2VQYXNzd29yZCkuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAoYXBpUmVzcG9uc2UubWVzc2FnZSA9PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlBhc3N3b3JkIENoYW5nZWRcIik7XHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucmVkaXJlY3RQYXRoXSk7XHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgfWVsc2V7XHJcblxyXG4gICAgICB0aGlzLmRhdGFTZXJ2aWNlLkNoYW5nZVBhc3N3b3JkKHRoaXMuY2hhbmdlUGFzc3dvcmQpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKGFwaVJlc3BvbnNlLm1lc3NhZ2UgPT0gXCJzdWNjZXNzXCIpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQYXNzd29yZCBDaGFuZ2VkXCIpO1xyXG5cclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnJlZGlyZWN0UGF0aF0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,64 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- var CheckComponent = /** @class */ (function () {
4
- function CheckComponent() {
5
- this.readonly = false;
6
- this.display = "";
7
- this.value = false;
8
- this.valueChange = new EventEmitter();
9
- this.click = new EventEmitter();
10
- this.check = new EventEmitter();
11
- this.uncheck = new EventEmitter();
12
- }
13
- CheckComponent.prototype.ngOnInit = function () {
14
- };
15
- CheckComponent.prototype.changed = function () {
16
- this.valueChange.emit(this.value);
17
- };
18
- CheckComponent.prototype.clicked = function () {
19
- this.click.emit();
20
- if (!this.value) {
21
- this.checked();
22
- }
23
- else {
24
- this.unchecked();
25
- }
26
- };
27
- CheckComponent.prototype.checked = function () {
28
- this.check.emit();
29
- };
30
- CheckComponent.prototype.unchecked = function () {
31
- this.uncheck.emit();
32
- };
33
- __decorate([
34
- Input()
35
- ], CheckComponent.prototype, "readonly", void 0);
36
- __decorate([
37
- Input()
38
- ], CheckComponent.prototype, "display", void 0);
39
- __decorate([
40
- Input()
41
- ], CheckComponent.prototype, "value", void 0);
42
- __decorate([
43
- Output()
44
- ], CheckComponent.prototype, "valueChange", void 0);
45
- __decorate([
46
- Output()
47
- ], CheckComponent.prototype, "click", void 0);
48
- __decorate([
49
- Output()
50
- ], CheckComponent.prototype, "check", void 0);
51
- __decorate([
52
- Output()
53
- ], CheckComponent.prototype, "uncheck", void 0);
54
- CheckComponent = __decorate([
55
- Component({
56
- selector: 'spa-check',
57
- template: " <mat-checkbox color=\"primary\" style=\"margin-right:50px; font-size:14px\" [(ngModel)]=\"value\" (change)=\"changed()\" (click)=\"clicked()\" [disabled]=\"readonly\">{{display}}</mat-checkbox>\r\n",
58
- styles: [""]
59
- })
60
- ], CheckComponent);
61
- return CheckComponent;
62
- }());
63
- export { CheckComponent };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2NoZWNrL2NoZWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvRTtJQUVFO1FBS1MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNiLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVh2QixDQUFDO0lBRWpCLGlDQUFRLEdBQVI7SUFDQSxDQUFDO0lBVUQsZ0NBQU8sR0FBUDtRQUNFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZ0NBQU8sR0FBUDtRQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbEIsSUFBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUM7WUFDYixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7YUFBSTtZQUNILElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRCxnQ0FBTyxHQUFQO1FBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0Qsa0NBQVMsR0FBVDtRQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQTNCUTtRQUFSLEtBQUssRUFBRTtvREFBa0I7SUFDakI7UUFBUixLQUFLLEVBQUU7bURBQWM7SUFDYjtRQUFSLEtBQUssRUFBRTtpREFBZTtJQUNiO1FBQVQsTUFBTSxFQUFFO3VEQUFrQztJQUNqQztRQUFULE1BQU0sRUFBRTtpREFBNEI7SUFDM0I7UUFBVCxNQUFNLEVBQUU7aURBQTRCO0lBQzNCO1FBQVQsTUFBTSxFQUFFO21EQUE4QjtJQWI1QixjQUFjO1FBTDFCLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxXQUFXO1lBQ3JCLGtOQUFxQzs7U0FFdEMsQ0FBQztPQUNXLGNBQWMsQ0FvQzFCO0lBQUQscUJBQUM7Q0FBQSxBQXBDRCxJQW9DQztTQXBDWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWNoZWNrJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2suY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoZWNrLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzcGxheSA9IFwiXCI7XHJcbiAgQElucHV0KCkgdmFsdWUgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGVjayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgdW5jaGVjayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY2hhbmdlZCgpe1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tlZCgpe1xyXG4gICAgdGhpcy5jbGljay5lbWl0KCk7XHJcblxyXG4gICAgaWYoIXRoaXMudmFsdWUpe1xyXG4gICAgICB0aGlzLmNoZWNrZWQoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnVuY2hlY2tlZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tlZCgpe1xyXG4gICAgdGhpcy5jaGVjay5lbWl0KCk7XHJcbiAgfVxyXG4gIHVuY2hlY2tlZCgpe1xyXG4gICAgdGhpcy51bmNoZWNrLmVtaXQoKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,68 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { MessageService } from '../../services/message.service';
4
- var ChipsComponent = /** @class */ (function () {
5
- function ChipsComponent(messageService) {
6
- this.messageService = messageService;
7
- this.icon = "";
8
- this.removable = false;
9
- this.addable = false;
10
- // @Output() chipClick = new EventEmitter();
11
- this.click = new EventEmitter();
12
- this.remove = new EventEmitter();
13
- }
14
- ChipsComponent.prototype.ngOnInit = function () {
15
- };
16
- ChipsComponent.prototype.clicked = function (chip) {
17
- if (typeof chip != 'string') {
18
- return;
19
- }
20
- if (chip) {
21
- this.click.emit(chip);
22
- }
23
- };
24
- ChipsComponent.prototype.removed = function (chip) {
25
- // const index = this.chips.indexOf(chip);
26
- var _this = this;
27
- // if (index >= 0) {
28
- // this.chips.splice(index, 1);
29
- // }
30
- this.messageService.confirm("Remove " + chip + " ?").subscribe(function (result) {
31
- if (result == "yes") {
32
- _this.remove.emit(chip);
33
- }
34
- ;
35
- });
36
- };
37
- ChipsComponent.ctorParameters = function () { return [
38
- { type: MessageService }
39
- ]; };
40
- __decorate([
41
- Input()
42
- ], ChipsComponent.prototype, "icon", void 0);
43
- __decorate([
44
- Input()
45
- ], ChipsComponent.prototype, "removable", void 0);
46
- __decorate([
47
- Input()
48
- ], ChipsComponent.prototype, "addable", void 0);
49
- __decorate([
50
- Input()
51
- ], ChipsComponent.prototype, "chips", void 0);
52
- __decorate([
53
- Output()
54
- ], ChipsComponent.prototype, "click", void 0);
55
- __decorate([
56
- Output()
57
- ], ChipsComponent.prototype, "remove", void 0);
58
- ChipsComponent = __decorate([
59
- Component({
60
- selector: 'spa-chips',
61
- template: "\r\n\r\n\r\n<div class=\"row mt-1\" style=\"margin-left: 1em;\">\r\n <mat-chip-list #chipList >\r\n <mat-chip *ngFor=\"let chip of chips let i = index\" selectable [removable]=\"removable\" style=\"font-size: 12px;\" [ngStyle]=\"{'padding-right': removable ? '5px':'12px'}\" (click)=\"clicked(chip)\" >\r\n <mat-icon *ngIf=\"icon != ''\" color=\"primary\" style=\"font-size: 22px;\">{{icon}}</mat-icon>\r\n\r\n {{chip}}\r\n\r\n <mat-icon *ngIf=\"removable\" style=\"font-size: 20px; margin-left: 5px;margin-top: 3px;margin-right: 0px; color: grey;\" (click)=\"removed(chip)\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n</div>\r\n\r\n\r\n",
62
- styles: [""]
63
- })
64
- ], ChipsComponent);
65
- return ChipsComponent;
66
- }());
67
- export { ChipsComponent };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2NoaXBzL2NoaXBzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFNaEU7SUFFRSx3QkFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBT3pDLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFLekIsNENBQTRDO1FBRWxDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBbEJnQixDQUFDO0lBR3ZELGlDQUFRLEdBQVI7SUFDQSxDQUFDO0lBZ0JELGdDQUFPLEdBQVAsVUFBUSxJQUFZO1FBRWxCLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxFQUFFO1lBQzNCLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBR0QsZ0NBQU8sR0FBUCxVQUFRLElBQUk7UUFFViwwQ0FBMEM7UUFGNUMsaUJBZ0JDO1FBWkMsb0JBQW9CO1FBQ3BCLGlDQUFpQztRQUNqQyxJQUFJO1FBRUosSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBVSxJQUFJLE9BQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFDLE1BQU07WUFDL0QsSUFBSSxNQUFNLElBQUksS0FBSyxFQUFFO2dCQUVuQixLQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUV4QjtZQUFBLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7O2dCQWhEbUMsY0FBYzs7SUFPekM7UUFBUixLQUFLLEVBQUU7Z0RBQVc7SUFDVjtRQUFSLEtBQUssRUFBRTtxREFBbUI7SUFDbEI7UUFBUixLQUFLLEVBQUU7bURBQWlCO0lBSWhCO1FBQVIsS0FBSyxFQUFFO2lEQUFpQjtJQUdmO1FBQVQsTUFBTSxFQUFFO2lEQUE0QjtJQUUzQjtRQUFULE1BQU0sRUFBRTtrREFBNkI7SUFwQjNCLGNBQWM7UUFMMUIsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLFdBQVc7WUFDckIsb3JCQUFxQzs7U0FFdEMsQ0FBQztPQUNXLGNBQWMsQ0FvRDFCO0lBQUQscUJBQUM7Q0FBQSxBQXBERCxJQW9EQztTQXBEWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWNoaXBzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hpcHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoaXBzLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hpcHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSkgeyB9XHJcblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKSBpY29uID0gXCJcIjtcclxuICBASW5wdXQoKSByZW1vdmFibGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhZGRhYmxlID0gZmFsc2U7XHJcblxyXG5cclxuXHJcbiAgQElucHV0KCkgY2hpcHM6IHN0cmluZ1tdO1xyXG4gIC8vIEBPdXRwdXQoKSBjaGlwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY2xpY2tlZChjaGlwOiBzdHJpbmcpIHtcclxuXHJcbiAgICBpZiAodHlwZW9mIGNoaXAgIT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGlwKSB7XHJcbiAgICAgIHRoaXMuY2xpY2suZW1pdChjaGlwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICByZW1vdmVkKGNoaXApIHtcclxuXHJcbiAgICAvLyBjb25zdCBpbmRleCA9IHRoaXMuY2hpcHMuaW5kZXhPZihjaGlwKTtcclxuXHJcbiAgICAvLyBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgLy8gICB0aGlzLmNoaXBzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5jb25maXJtKGBSZW1vdmUgJHtjaGlwfSA/YCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCA9PSBcInllc1wiKSB7XHJcblxyXG4gICAgICAgIHRoaXMucmVtb3ZlLmVtaXQoY2hpcCk7XHJcblxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==