ps-toolkit-ui 0.0.210 → 0.0.211

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 (311) hide show
  1. package/karma.conf.js +32 -0
  2. package/ng-package.json +16 -0
  3. package/package.json +19 -22
  4. package/src/lib/classes/chart.class.ts +140 -0
  5. package/src/lib/classes/enum.class.ts +193 -0
  6. package/src/lib/classes/excel.class.ts +46 -0
  7. package/src/lib/classes/form.class.ts +528 -0
  8. package/src/lib/classes/helper.class.ts +283 -0
  9. package/src/lib/classes/lang.class.ts +32 -0
  10. package/src/lib/classes/login.class.ts +27 -0
  11. package/src/lib/classes/modal.class.ts +59 -0
  12. package/src/lib/classes/permission.class.ts +55 -0
  13. package/src/lib/classes/request.class.ts +255 -0
  14. package/src/lib/classes/safestyle.class.ts +4 -0
  15. package/src/lib/classes/sidebar.class.ts +20 -0
  16. package/src/lib/classes/steps.class.ts +19 -0
  17. package/src/lib/classes/string.class.ts +219 -0
  18. package/src/lib/classes/table.class.ts +228 -0
  19. package/src/lib/components/accordion/accordion.component.css +116 -0
  20. package/src/lib/components/accordion/accordion.component.html +19 -0
  21. package/src/lib/components/accordion/accordion.component.ts +41 -0
  22. package/src/lib/components/alert/alert.component.css +112 -0
  23. package/src/lib/components/alert/alert.component.html +1 -0
  24. package/src/lib/components/alert/alert.component.ts +35 -0
  25. package/src/lib/components/base.component.ts +38 -0
  26. package/src/lib/components/calendar/calendar.component.css +206 -0
  27. package/src/lib/components/calendar/calendar.component.html +36 -0
  28. package/src/lib/components/calendar/calendar.component.ts +99 -0
  29. package/src/lib/components/chart/chart.component.css +24 -0
  30. package/src/lib/components/chart/chart.component.html +6 -0
  31. package/src/lib/components/chart/chart.component.ts +14 -0
  32. package/src/lib/components/clock/clock.component.css +141 -0
  33. package/src/lib/components/clock/clock.component.html +10 -0
  34. package/src/lib/components/clock/clock.component.ts +37 -0
  35. package/src/lib/components/confirm/confirm.component.css +112 -0
  36. package/src/lib/components/confirm/confirm.component.html +1 -0
  37. package/src/lib/components/confirm/confirm.component.ts +47 -0
  38. package/src/lib/components/footer/footer.component.css +46 -0
  39. package/src/lib/components/footer/footer.component.html +9 -0
  40. package/src/lib/components/footer/footer.component.ts +18 -0
  41. package/src/lib/components/form/bank-card/form.bank-card.component.css +115 -0
  42. package/src/lib/components/form/bank-card/form.bank-card.component.html +13 -0
  43. package/src/lib/components/form/bank-card/form.bank-card.component.ts +144 -0
  44. package/src/lib/components/form/button/form.button.component.css +222 -0
  45. package/src/lib/components/form/button/form.button.component.html +16 -0
  46. package/src/lib/components/form/button/form.button.component.ts +65 -0
  47. package/src/lib/components/form/car/form.car.component.css +287 -0
  48. package/src/lib/components/form/car/form.car.component.html +11 -0
  49. package/src/lib/components/form/car/form.car.component.ts +82 -0
  50. package/src/lib/components/form/car/search/form.car.search.component.css +287 -0
  51. package/src/lib/components/form/car/search/form.car.search.component.html +15 -0
  52. package/src/lib/components/form/car/search/form.car.search.component.ts +170 -0
  53. package/src/lib/components/form/checkbox/form.checkbox.component.css +128 -0
  54. package/src/lib/components/form/checkbox/form.checkbox.component.html +8 -0
  55. package/src/lib/components/form/checkbox/form.checkbox.component.ts +64 -0
  56. package/src/lib/components/form/date/form.date.component.css +310 -0
  57. package/src/lib/components/form/date/form.date.component.html +46 -0
  58. package/src/lib/components/form/date/form.date.component.ts +247 -0
  59. package/src/lib/components/form/datetime/form.datetime.component.css +157 -0
  60. package/src/lib/components/form/datetime/form.datetime.component.html +11 -0
  61. package/src/lib/components/form/datetime/form.datetime.component.ts +98 -0
  62. package/src/lib/components/form/file/form.file.component.css +151 -0
  63. package/src/lib/components/form/file/form.file.component.html +12 -0
  64. package/src/lib/components/form/file/form.file.component.ts +130 -0
  65. package/src/lib/components/form/finger/form.finger.component.css +215 -0
  66. package/src/lib/components/form/finger/form.finger.component.html +59 -0
  67. package/src/lib/components/form/finger/form.finger.component.ts +131 -0
  68. package/src/lib/components/form/hidden/form.hidden.component.css +0 -0
  69. package/src/lib/components/form/hidden/form.hidden.component.html +0 -0
  70. package/src/lib/components/form/hidden/form.hidden.component.ts +29 -0
  71. package/src/lib/components/form/icon/form.icon.component.css +108 -0
  72. package/src/lib/components/form/icon/form.icon.component.html +14 -0
  73. package/src/lib/components/form/icon/form.icon.component.ts +73 -0
  74. package/src/lib/components/form/index/form.component.css +89 -0
  75. package/src/lib/components/form/index/form.component.html +35 -0
  76. package/src/lib/components/form/index/form.component.ts +45 -0
  77. package/src/lib/components/form/label/form.label.component.css +45 -0
  78. package/src/lib/components/form/label/form.label.component.html +2 -0
  79. package/src/lib/components/form/label/form.label.component.ts +30 -0
  80. package/src/lib/components/form/plaque/form.plaque.component.css +76 -0
  81. package/src/lib/components/form/plaque/form.plaque.component.html +10 -0
  82. package/src/lib/components/form/plaque/form.plaque.component.ts +178 -0
  83. package/src/lib/components/form/plaque/select/form.plaque.select.component.css +167 -0
  84. package/src/lib/components/form/plaque/select/form.plaque.select.component.html +19 -0
  85. package/src/lib/components/form/plaque/select/form.plaque.select.component.ts +385 -0
  86. package/src/lib/components/form/radio/form.radio.component.css +158 -0
  87. package/src/lib/components/form/radio/form.radio.component.html +16 -0
  88. package/src/lib/components/form/radio/form.radio.component.ts +78 -0
  89. package/src/lib/components/form/select/form.select.component.css +326 -0
  90. package/src/lib/components/form/select/form.select.component.html +16 -0
  91. package/src/lib/components/form/select/form.select.component.ts +358 -0
  92. package/src/lib/components/form/select/item/form.select.item.component.css +59 -0
  93. package/src/lib/components/form/select/item/form.select.item.component.html +10 -0
  94. package/src/lib/components/form/select/item/form.select.item.component.ts +40 -0
  95. package/src/lib/components/form/table/form.table.component.css +50 -0
  96. package/src/lib/components/form/table/form.table.component.html +8 -0
  97. package/src/lib/components/form/table/form.table.component.ts +94 -0
  98. package/src/lib/components/form/textarea/form.textarea.component.css +109 -0
  99. package/src/lib/components/form/textarea/form.textarea.component.html +10 -0
  100. package/src/lib/components/form/textarea/form.textarea.component.ts +76 -0
  101. package/src/lib/components/form/textbox/form.textbox.component.css +296 -0
  102. package/src/lib/components/form/textbox/form.textbox.component.html +13 -0
  103. package/src/lib/components/form/textbox/form.textbox.component.ts +185 -0
  104. package/src/lib/components/form/time/form.time.component.css +205 -0
  105. package/src/lib/components/form/time/form.time.component.html +22 -0
  106. package/src/lib/components/form/time/form.time.component.ts +139 -0
  107. package/src/lib/components/form/tree/form.tree.component.css +109 -0
  108. package/src/lib/components/form/tree/form.tree.component.html +11 -0
  109. package/src/lib/components/form/tree/form.tree.component.ts +98 -0
  110. package/src/lib/components/form/tree/item/form.tree.item.component.css +142 -0
  111. package/src/lib/components/form/tree/item/form.tree.item.component.html +9 -0
  112. package/src/lib/components/form/tree/item/form.tree.item.component.ts +49 -0
  113. package/src/lib/components/header/header.component.css +57 -0
  114. package/src/lib/components/header/header.component.html +5 -0
  115. package/src/lib/components/header/header.component.ts +28 -0
  116. package/src/lib/components/header/sub/sub.header.component.css +62 -0
  117. package/src/lib/components/header/sub/sub.header.component.html +8 -0
  118. package/src/lib/components/header/sub/sub.header.component.ts +11 -0
  119. package/src/lib/components/layout/layout.component.css +300 -0
  120. package/src/lib/components/layout/layout.component.html +20 -0
  121. package/src/lib/components/layout/layout.component.ts +21 -0
  122. package/src/lib/components/loading/loading.component.css +39 -0
  123. package/src/lib/components/loading/loading.component.html +8 -0
  124. package/src/lib/components/loading/loading.component.ts +18 -0
  125. package/src/lib/components/login/login.component.css +389 -0
  126. package/src/lib/components/login/login.component.html +27 -0
  127. package/src/lib/components/login/login.component.ts +145 -0
  128. package/src/lib/components/modal/modal.component.css +60 -0
  129. package/src/lib/components/modal/modal.component.html +12 -0
  130. package/src/lib/components/modal/modal.component.ts +23 -0
  131. package/src/lib/components/notfound/notfound.component.css +134 -0
  132. package/src/lib/components/notfound/notfound.component.html +10 -0
  133. package/src/lib/components/notfound/notfound.component.ts +25 -0
  134. package/src/lib/components/notification/notification.component.css +45 -0
  135. package/src/lib/components/notification/notification.component.html +2 -0
  136. package/src/lib/components/notification/notification.component.ts +11 -0
  137. package/src/lib/components/sidebar/item/sidebar.item.component.css +236 -0
  138. package/src/lib/components/sidebar/item/sidebar.item.component.html +16 -0
  139. package/src/lib/components/sidebar/item/sidebar.item.component.ts +54 -0
  140. package/src/lib/components/sidebar/sidebar.component.css +42 -0
  141. package/src/lib/components/sidebar/sidebar.component.html +10 -0
  142. package/src/lib/components/sidebar/sidebar.component.ts +60 -0
  143. package/src/lib/components/steps/steps.component.css +320 -0
  144. package/src/lib/components/steps/steps.component.html +18 -0
  145. package/src/lib/components/steps/steps.component.ts +44 -0
  146. package/src/lib/components/table/loading/table.loading.component.css +29 -0
  147. package/src/lib/components/table/loading/table.loading.component.html +9 -0
  148. package/src/lib/components/table/loading/table.loading.component.ts +14 -0
  149. package/src/lib/components/table/pagination/table.pagination.component.css +138 -0
  150. package/src/lib/components/table/pagination/table.pagination.component.html +9 -0
  151. package/src/lib/components/table/pagination/table.pagination.component.ts +89 -0
  152. package/src/lib/components/table/report/table.report.component.css +125 -0
  153. package/src/lib/components/table/report/table.report.component.html +19 -0
  154. package/src/lib/components/table/report/table.report.component.ts +238 -0
  155. package/src/lib/components/table/row/table.row.component.css +170 -0
  156. package/src/lib/components/table/row/table.row.component.html +21 -0
  157. package/src/lib/components/table/row/table.row.component.ts +373 -0
  158. package/src/lib/components/table/table.component.css +116 -0
  159. package/src/lib/components/table/table.component.html +62 -0
  160. package/src/lib/components/table/table.component.ts +180 -0
  161. package/src/lib/components/tooltip/tooltip.component.css +159 -0
  162. package/src/lib/components/tooltip/tooltip.component.html +1 -0
  163. package/src/lib/components/tooltip/tooltip.component.ts +15 -0
  164. package/src/lib/ps-toolkit-ui.module.ts +94 -0
  165. package/src/lib/services/config.service.ts +8 -0
  166. package/{public-api.d.ts → src/public-api.ts} +53 -48
  167. package/src/test.ts +26 -0
  168. package/tsconfig.lib.json +25 -0
  169. package/tsconfig.lib.prod.json +10 -0
  170. package/tsconfig.spec.json +17 -0
  171. package/tslint.json +17 -0
  172. package/bundles/ps-toolkit-ui.umd.js +0 -7646
  173. package/bundles/ps-toolkit-ui.umd.js.map +0 -1
  174. package/bundles/ps-toolkit-ui.umd.min.js +0 -2
  175. package/bundles/ps-toolkit-ui.umd.min.js.map +0 -1
  176. package/esm2015/lib/classes/chart.class.js +0 -140
  177. package/esm2015/lib/classes/enum.class.js +0 -187
  178. package/esm2015/lib/classes/form.class.js +0 -481
  179. package/esm2015/lib/classes/helper.class.js +0 -284
  180. package/esm2015/lib/classes/lang.class.js +0 -32
  181. package/esm2015/lib/classes/login.class.js +0 -22
  182. package/esm2015/lib/classes/modal.class.js +0 -52
  183. package/esm2015/lib/classes/permission.class.js +0 -61
  184. package/esm2015/lib/classes/request.class.js +0 -256
  185. package/esm2015/lib/classes/safestyle.class.js +0 -15
  186. package/esm2015/lib/classes/sidebar.class.js +0 -14
  187. package/esm2015/lib/classes/steps.class.js +0 -20
  188. package/esm2015/lib/classes/string.class.js +0 -220
  189. package/esm2015/lib/classes/table.class.js +0 -215
  190. package/esm2015/lib/components/accordion/accordion.component.js +0 -45
  191. package/esm2015/lib/components/alert/alert.component.js +0 -39
  192. package/esm2015/lib/components/base.component.js +0 -45
  193. package/esm2015/lib/components/calendar/calendar.component.js +0 -97
  194. package/esm2015/lib/components/chart/chart.component.js +0 -17
  195. package/esm2015/lib/components/clock/clock.component.js +0 -33
  196. package/esm2015/lib/components/confirm/confirm.component.js +0 -50
  197. package/esm2015/lib/components/footer/footer.component.js +0 -23
  198. package/esm2015/lib/components/form/bank-card/form.bank-card.component.js +0 -148
  199. package/esm2015/lib/components/form/button/form.button.component.js +0 -68
  200. package/esm2015/lib/components/form/car/form.car.component.js +0 -84
  201. package/esm2015/lib/components/form/car/search/form.car.search.component.js +0 -172
  202. package/esm2015/lib/components/form/checkbox/form.checkbox.component.js +0 -66
  203. package/esm2015/lib/components/form/date/form.date.component.js +0 -254
  204. package/esm2015/lib/components/form/datetime/form.datetime.component.js +0 -104
  205. package/esm2015/lib/components/form/file/form.file.component.js +0 -133
  206. package/esm2015/lib/components/form/finger/form.finger.component.js +0 -138
  207. package/esm2015/lib/components/form/hidden/form.hidden.component.js +0 -31
  208. package/esm2015/lib/components/form/icon/form.icon.component.js +0 -76
  209. package/esm2015/lib/components/form/index/form.component.js +0 -48
  210. package/esm2015/lib/components/form/label/form.label.component.js +0 -32
  211. package/esm2015/lib/components/form/plaque/form.plaque.component.js +0 -176
  212. package/esm2015/lib/components/form/plaque/select/form.plaque.select.component.js +0 -390
  213. package/esm2015/lib/components/form/radio/form.radio.component.js +0 -79
  214. package/esm2015/lib/components/form/select/form.select.component.js +0 -374
  215. package/esm2015/lib/components/form/select/item/form.select.item.component.js +0 -43
  216. package/esm2015/lib/components/form/table/form.table.component.js +0 -98
  217. package/esm2015/lib/components/form/textarea/form.textarea.component.js +0 -78
  218. package/esm2015/lib/components/form/textbox/form.textbox.component.js +0 -186
  219. package/esm2015/lib/components/form/time/form.time.component.js +0 -145
  220. package/esm2015/lib/components/form/tree/form.tree.component.js +0 -99
  221. package/esm2015/lib/components/form/tree/item/form.tree.item.component.js +0 -48
  222. package/esm2015/lib/components/header/header.component.js +0 -33
  223. package/esm2015/lib/components/header/sub/sub.header.component.js +0 -14
  224. package/esm2015/lib/components/layout/layout.component.js +0 -25
  225. package/esm2015/lib/components/loading/loading.component.js +0 -22
  226. package/esm2015/lib/components/login/login.component.js +0 -148
  227. package/esm2015/lib/components/modal/modal.component.js +0 -25
  228. package/esm2015/lib/components/notfound/notfound.component.js +0 -29
  229. package/esm2015/lib/components/notification/notification.component.js +0 -14
  230. package/esm2015/lib/components/sidebar/item/sidebar.item.component.js +0 -53
  231. package/esm2015/lib/components/sidebar/sidebar.component.js +0 -67
  232. package/esm2015/lib/components/steps/steps.component.js +0 -51
  233. package/esm2015/lib/components/table/loading/table.loading.component.js +0 -17
  234. package/esm2015/lib/components/table/pagination/table.pagination.component.js +0 -84
  235. package/esm2015/lib/components/table/report/table.report.component.js +0 -246
  236. package/esm2015/lib/components/table/row/table.row.component.js +0 -379
  237. package/esm2015/lib/components/table/table.component.js +0 -179
  238. package/esm2015/lib/components/tooltip/tooltip.component.js +0 -19
  239. package/esm2015/lib/ps-toolkit-ui.module.js +0 -95
  240. package/esm2015/lib/services/config.service.js +0 -14
  241. package/esm2015/ps-toolkit-ui.js +0 -20
  242. package/esm2015/public-api.js +0 -52
  243. package/fesm2015/ps-toolkit-ui.js +0 -6566
  244. package/fesm2015/ps-toolkit-ui.js.map +0 -1
  245. package/lib/classes/chart.class.d.ts +0 -11
  246. package/lib/classes/enum.class.d.ts +0 -158
  247. package/lib/classes/form.class.d.ts +0 -173
  248. package/lib/classes/helper.class.d.ts +0 -28
  249. package/lib/classes/lang.class.d.ts +0 -5
  250. package/lib/classes/login.class.d.ts +0 -17
  251. package/lib/classes/modal.class.d.ts +0 -19
  252. package/lib/classes/permission.class.d.ts +0 -31
  253. package/lib/classes/request.class.d.ts +0 -12
  254. package/lib/classes/safestyle.class.d.ts +0 -7
  255. package/lib/classes/sidebar.class.d.ts +0 -11
  256. package/lib/classes/steps.class.d.ts +0 -17
  257. package/lib/classes/string.class.d.ts +0 -218
  258. package/lib/classes/table.class.d.ts +0 -69
  259. package/lib/components/accordion/accordion.component.d.ts +0 -7
  260. package/lib/components/alert/alert.component.d.ts +0 -10
  261. package/lib/components/base.component.d.ts +0 -14
  262. package/lib/components/calendar/calendar.component.d.ts +0 -26
  263. package/lib/components/chart/chart.component.d.ts +0 -5
  264. package/lib/components/clock/clock.component.d.ts +0 -11
  265. package/lib/components/confirm/confirm.component.d.ts +0 -14
  266. package/lib/components/footer/footer.component.d.ts +0 -6
  267. package/lib/components/form/bank-card/form.bank-card.component.d.ts +0 -22
  268. package/lib/components/form/button/form.button.component.d.ts +0 -15
  269. package/lib/components/form/car/form.car.component.d.ts +0 -16
  270. package/lib/components/form/car/search/form.car.search.component.d.ts +0 -17
  271. package/lib/components/form/checkbox/form.checkbox.component.d.ts +0 -14
  272. package/lib/components/form/date/form.date.component.d.ts +0 -42
  273. package/lib/components/form/datetime/form.datetime.component.d.ts +0 -13
  274. package/lib/components/form/file/form.file.component.d.ts +0 -17
  275. package/lib/components/form/finger/form.finger.component.d.ts +0 -15
  276. package/lib/components/form/hidden/form.hidden.component.d.ts +0 -7
  277. package/lib/components/form/icon/form.icon.component.d.ts +0 -15
  278. package/lib/components/form/index/form.component.d.ts +0 -10
  279. package/lib/components/form/label/form.label.component.d.ts +0 -8
  280. package/lib/components/form/plaque/form.plaque.component.d.ts +0 -22
  281. package/lib/components/form/plaque/select/form.plaque.select.component.d.ts +0 -36
  282. package/lib/components/form/radio/form.radio.component.d.ts +0 -13
  283. package/lib/components/form/select/form.select.component.d.ts +0 -39
  284. package/lib/components/form/select/item/form.select.item.component.d.ts +0 -12
  285. package/lib/components/form/table/form.table.component.d.ts +0 -9
  286. package/lib/components/form/textarea/form.textarea.component.d.ts +0 -13
  287. package/lib/components/form/textbox/form.textbox.component.d.ts +0 -20
  288. package/lib/components/form/time/form.time.component.d.ts +0 -25
  289. package/lib/components/form/tree/form.tree.component.d.ts +0 -16
  290. package/lib/components/form/tree/item/form.tree.item.component.d.ts +0 -17
  291. package/lib/components/header/header.component.d.ts +0 -9
  292. package/lib/components/header/sub/sub.header.component.d.ts +0 -3
  293. package/lib/components/layout/layout.component.d.ts +0 -8
  294. package/lib/components/loading/loading.component.d.ts +0 -5
  295. package/lib/components/login/login.component.d.ts +0 -13
  296. package/lib/components/modal/modal.component.d.ts +0 -9
  297. package/lib/components/notfound/notfound.component.d.ts +0 -8
  298. package/lib/components/notification/notification.component.d.ts +0 -3
  299. package/lib/components/sidebar/item/sidebar.item.component.d.ts +0 -14
  300. package/lib/components/sidebar/sidebar.component.d.ts +0 -19
  301. package/lib/components/steps/steps.component.d.ts +0 -10
  302. package/lib/components/table/loading/table.loading.component.d.ts +0 -5
  303. package/lib/components/table/pagination/table.pagination.component.d.ts +0 -15
  304. package/lib/components/table/report/table.report.component.d.ts +0 -34
  305. package/lib/components/table/row/table.row.component.d.ts +0 -34
  306. package/lib/components/table/table.component.d.ts +0 -40
  307. package/lib/components/tooltip/tooltip.component.d.ts +0 -5
  308. package/lib/ps-toolkit-ui.module.d.ts +0 -4
  309. package/lib/services/config.service.d.ts +0 -6
  310. package/ps-toolkit-ui.d.ts +0 -19
  311. package/ps-toolkit-ui.metadata.json +0 -1
@@ -1,284 +0,0 @@
1
- import { InputError } from './enum.class';
2
- import * as moment from 'jalali-moment';
3
- import * as $ from 'jquery';
4
- // @dynamic
5
- export class HelperClass {
6
- static getLabel(inp) {
7
- if (inp.error === InputError.Required) {
8
- return inp.l('FormErrorRequired', inp.name);
9
- }
10
- else if (inp.error === InputError.Invalid) {
11
- return inp.l('FormErrorInvalid', inp.name);
12
- }
13
- else if (inp.error === InputError.Length) {
14
- return inp.l('FormErrorLength', [inp.name, inp.minLength]);
15
- }
16
- else if (inp.error === InputError.MinLength) {
17
- return inp.l('FormErrorMinLength', [inp.name, inp.minLength]);
18
- }
19
- else if (inp.error === InputError.MaxLength) {
20
- return inp.l('FormErrorMaxLength', [inp.name, inp.maxLength]);
21
- }
22
- else if (inp.error === InputError.MinAmount) {
23
- return inp.l('FormErrorMinAmount', [inp.name, inp.minLength]);
24
- }
25
- else if (inp.error === InputError.MaxAmount) {
26
- return inp.l('FormErrorMaxAmount', [inp.name, inp.maxLength]);
27
- }
28
- else if (inp.error === InputError.Expired) {
29
- return inp.l('FormErrorExpired', inp.name);
30
- }
31
- else if (inp.error === InputError.Wrong) {
32
- return inp.l('FormErrorWrong', inp.name);
33
- }
34
- else if (inp.error === InputError.Error) {
35
- return inp.l('FormError', inp.name);
36
- }
37
- else if (inp.error === InputError.NotMatch) {
38
- return inp.l('FormErrorNotMatch', inp.match.name);
39
- }
40
- else if (inp.error === InputError.Exist) {
41
- return inp.l('FormErrorExist', inp.name);
42
- }
43
- else if (inp.error === InputError.NotExist) {
44
- return inp.l('FormErrorNotExist', inp.name);
45
- }
46
- else if (inp.error === InputError.NotAllowed) {
47
- return inp.l('FormErrorNotAllowed', [inp.name, inp.allowed.join(', ')]);
48
- }
49
- else if (inp.error === InputError.MaxContent) {
50
- return inp.l('FormErrorMaxContent', [inp.name, inp.maxLength]);
51
- }
52
- else if (inp.error === InputError.Upload) {
53
- return inp.l('FormErrorUpload', inp.name);
54
- }
55
- const desc = inp.description !== null ? ' (' + inp.l(inp.description) + ')' : '';
56
- return inp.l(inp.name) + desc;
57
- }
58
- static nationalCodeValid(c) {
59
- if (!RegExp(/^\d{10}$/).test(c) || RegExp(/^(.)\1+$/).test(c)) {
60
- return false;
61
- }
62
- const check = parseInt(c[9], 10);
63
- let sum = 0;
64
- for (let i = 0; i < 9; ++i) {
65
- sum += parseInt(c[i], 10) * (10 - i);
66
- }
67
- sum %= 11;
68
- return (sum < 2 && check === sum) || (sum >= 2 && check + sum === 11);
69
- }
70
- static iso7064Mod97_10(iban) {
71
- let remainder = iban;
72
- while (remainder.length > 2) {
73
- const block = remainder.slice(0, 9);
74
- remainder = parseInt(block, 10) % 97 + remainder.slice(block.length);
75
- }
76
- return parseInt(remainder, 10) % 97;
77
- }
78
- static shebaValid(str) {
79
- const pattern = /IR[0-9]{24}/;
80
- if (!str.startWith('IR')) {
81
- str = 'IR' + str;
82
- }
83
- if (str.length !== 26) {
84
- return false;
85
- }
86
- if (!pattern.test(str)) {
87
- return false;
88
- }
89
- let newStr = str.substr(4);
90
- const d1 = str.charCodeAt(0) - 65 + 10;
91
- const d2 = str.charCodeAt(1) - 65 + 10;
92
- newStr += d1.toString() + d2.toString() + str.substr(2, 2);
93
- return this.iso7064Mod97_10(newStr) === 1;
94
- }
95
- static postalCodeValid(c) {
96
- return RegExp(/^\b(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}\b$/).test(c);
97
- }
98
- static random(length, upper = true, lower = true, num = true) {
99
- let result = '';
100
- const characters = `${upper ? 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' : ''}${lower ? 'abcdefghijklmnopqrstuvwxyz' : ''}${num ? '123456789' : ''}`;
101
- const charactersLength = characters.length;
102
- for (let i = 0; i < length; i++) {
103
- result += characters.charAt(Math.floor(Math.random() * charactersLength));
104
- }
105
- return result;
106
- }
107
- static setCookie(name, value, days) {
108
- let expires = '';
109
- if (days) {
110
- const date = new Date();
111
- date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
112
- expires = '; expires=' + date.toUTCString();
113
- }
114
- document.cookie = name + '=' + (value || '') + expires + '; path=/';
115
- }
116
- static getCookie(name) {
117
- const nameEQ = name + '=';
118
- const ca = document.cookie.split(';');
119
- for (let c of ca) {
120
- while (c.charAt(0) === ' ') {
121
- c = c.substring(1, c.length);
122
- }
123
- if (c.indexOf(nameEQ) === 0) {
124
- return c.substring(nameEQ.length, c.length);
125
- }
126
- }
127
- return null;
128
- }
129
- static eraseCookie(name) {
130
- document.cookie.split(';')
131
- .forEach((c) => { document.cookie = c.replace(/^ +/, '').replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/'); });
132
- }
133
- static getDateDif(l, dt) {
134
- const d = parseInt(dt.substring(6, dt.length - 2), 10);
135
- const now = moment.now();
136
- const dif = (now - d) / 1000;
137
- const h = Math.floor(dif / 3600);
138
- const m = Math.floor(dif % 3600 / 60);
139
- if (h < 24) {
140
- let r = h > 0 ? l('HourP', h.toString()) : '';
141
- r += r !== '' && m > 0 ? l('And') : '';
142
- r += m > 0 ? l('MinuteP', m.toString()) : '';
143
- r += r !== '' ? '' : l('AFew');
144
- r += ' ' + l('Ago');
145
- return r;
146
- }
147
- return '<div class="ltr">' + moment(d).locale('fa').format('jYYYY/jMM/jDD HH:mm') + '</div>';
148
- }
149
- static getRowEnum(l, e, dt) {
150
- const v = e.find(x => x.Value === dt);
151
- return `<span class="status ${v.Class}">` + l(v.Name) + '</span>';
152
- }
153
- static getNow() {
154
- return moment.now();
155
- }
156
- static getMoment(i = null, f = null) {
157
- if (i == null) {
158
- return moment();
159
- }
160
- return moment(i, f);
161
- }
162
- static getDateRemain(l, dt) {
163
- const d = parseInt(dt.substring(6, dt.length - 2), 10);
164
- const now = moment.now();
165
- const dif = (d - now) / 1000;
166
- if (dif <= 0) {
167
- return l('Ended');
168
- }
169
- const h = Math.floor(dif / 3600);
170
- const m = Math.floor(dif % 3600 / 60);
171
- if (h < 24) {
172
- let r = h > 0 ? l('HourP', h.toString()) : '';
173
- r += r !== '' && m > 0 ? l('And') : '';
174
- r += m > 0 ? l('MinuteP', m.toString()) : '';
175
- r += r !== '' ? '' : l('AFew');
176
- r += ' ' + l('Later');
177
- return r;
178
- }
179
- return '<div class="ltr">' + moment(d).locale('fa').format('jYYYY/jMM/jDD HH:mm') + '</div>';
180
- }
181
- static getDate(dt) {
182
- try {
183
- if (dt === null) {
184
- return '';
185
- }
186
- const d = parseInt(dt.substring(6, dt.length - 2), 10);
187
- return moment(d).locale('fa').format('jYYYY/jMM/jDD');
188
- }
189
- catch (e) {
190
- return dt;
191
- }
192
- }
193
- static getTime(dt) {
194
- try {
195
- if (dt === null) {
196
- return '';
197
- }
198
- return `${(dt.Hours > 9 ? dt.Hours : `0${dt.Hours}`)}:${(dt.Minutes > 9 ? dt.Minutes : `0${dt.Minutes}`)}`;
199
- }
200
- catch (e) {
201
- return dt;
202
- }
203
- }
204
- static getDateTime(dt) {
205
- if (dt === null) {
206
- return '';
207
- }
208
- const d = parseInt(dt.substring(6, dt.length - 2), 10);
209
- return moment(d).locale('fa').format('jYYYY/jMM/jDD HH:mm');
210
- }
211
- static getFileSize(bytes) {
212
- const suffix = ['B', 'KB', 'MB', 'GB', 'TB'];
213
- let dblSByte = bytes;
214
- let i = 0;
215
- for (; i < suffix.length && bytes >= 1024; i++, bytes /= 1024) {
216
- dblSByte = bytes / 1024.0;
217
- }
218
- return `${dblSByte.toLocaleString('en-US', {
219
- minimumFractionDigits: 0,
220
- maximumFractionDigits: 1,
221
- })} ${suffix[i]}`;
222
- }
223
- static getPDate(l, s) {
224
- return s.replace(/Hour/g, l('Hour'))
225
- .replace(/LessThanMinute/g, l('LessThanMinute'))
226
- .replace(/Minute/g, l('Minute'))
227
- .replace(/And/g, l('And'))
228
- .replace(/AFew/g, l('AFew'))
229
- .replace(/Finished/g, l('Finished'))
230
- .replace(/Day/g, l('Day'))
231
- .replace(/Later/g, l('Later'))
232
- .replace(/Ago/g, l('Ago'));
233
- }
234
- static clone(v) {
235
- if (v == null) {
236
- return;
237
- }
238
- const copy = new v.constructor();
239
- Object.assign(copy, v);
240
- return copy;
241
- }
242
- static cloneJson(inp) {
243
- return JSON.parse(JSON.stringify(inp));
244
- }
245
- static getName(n) {
246
- return n.replace(/ک/g, 'ك').replace(/ی/g, 'ي').replace(/آ/g, 'آ');
247
- }
248
- static addNotification(m, e = true) {
249
- const id = HelperClass.random(20);
250
- // tslint:disable-next-line
251
- $('#Notifications').append('<div id="' + id + '" class="con"><div class="item ' + (e ? 'error' : 'success') + '"><i class="fas fa-times"></i><div>' + m + '</div></div></div>');
252
- setTimeout(() => {
253
- const d = $('#' + id);
254
- d.fadeOut(300, () => {
255
- d.remove();
256
- });
257
- }, 5000);
258
- }
259
- static checkCartDigit(code) {
260
- const l = code.length;
261
- if (l < 16 || parseInt(code.substr(1, 10), 10) === 0 ||
262
- parseInt(code.substr(10, 6), 10) === 0) {
263
- return false;
264
- }
265
- let s = 0;
266
- for (let i = 0; i < 16; i++) {
267
- const k = i % 2 === 0 ? 2 : 1;
268
- const d = parseInt(code.substr(i, 1), 10) * k;
269
- s += d > 9 ? d - 9 : d;
270
- }
271
- return s % 10 === 0;
272
- }
273
- static getData(key, state, parent) {
274
- const data = [];
275
- if (parent && parent.snapshot.data && parent.snapshot.data[key]) {
276
- data.push(parent.snapshot.data[key]);
277
- }
278
- if (state && parent) {
279
- data.push(...this.getData(key, state, state.firstChild(parent)));
280
- }
281
- return data;
282
- }
283
- }
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jbGFzc2VzL2hlbHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXhDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLFdBQVc7QUFDWCxNQUFNLE9BQU8sV0FBVztJQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQWU7UUFDN0IsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDckMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QzthQUFNLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQzNDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUM7YUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUMxQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzVEO2FBQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQUU7WUFDN0MsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUMv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QVUsQ0FBQyxDQUFDLEVBQUUsRUFBVTtRQUM3QixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDekIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQ1Y7WUFDRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENB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Q0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4QjtRQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNO1FBQy9CLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEM7UUFFRCxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsRTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbnB1dEVycm9yfSBmcm9tICcuL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4vZm9ybS5jbGFzcyc7XHJcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdqYWxhbGktbW9tZW50JztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEhlbHBlckNsYXNzIHtcclxuICBzdGF0aWMgZ2V0TGFiZWwoaW5wOiBJbnB1dENsYXNzKTogc3RyaW5nIHtcclxuICAgIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuUmVxdWlyZWQpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JSZXF1aXJlZCcsIGlucC5uYW1lKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLkludmFsaWQpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JJbnZhbGlkJywgaW5wLm5hbWUpO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTGVuZ3RoJywgW2lucC5uYW1lLCBpbnAubWluTGVuZ3RoXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5NaW5MZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JNaW5MZW5ndGgnLCBbaW5wLm5hbWUsIGlucC5taW5MZW5ndGhdKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk1heExlbmd0aCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck1heExlbmd0aCcsIFtpbnAubmFtZSwgaW5wLm1heExlbmd0aF0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTWluQW1vdW50KSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTWluQW1vdW50JywgW2lucC5uYW1lLCBpbnAubWluTGVuZ3RoXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5NYXhBbW91bnQpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JNYXhBbW91bnQnLCBbaW5wLm5hbWUsIGlucC5tYXhMZW5ndGhdKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLkV4cGlyZWQpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JFeHBpcmVkJywgaW5wLm5hbWUpO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuV3JvbmcpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JXcm9uZycsIGlucC5uYW1lKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLkVycm9yKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yJywgaW5wLm5hbWUpO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTm90TWF0Y2gpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JOb3RNYXRjaCcsIGlucC5tYXRjaC5uYW1lKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLkV4aXN0KSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yRXhpc3QnLCBpbnAubmFtZSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5Ob3RFeGlzdCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck5vdEV4aXN0JywgaW5wLm5hbWUpO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTm90QWxsb3dlZCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck5vdEFsbG93ZWQnLCBbaW5wLm5hbWUsIGlucC5hbGxvd2VkLmpvaW4oJywgJyldKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk1heENvbnRlbnQpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JNYXhDb250ZW50JywgW2lucC5uYW1lLCBpbnAubWF4TGVuZ3RoXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5VcGxvYWQpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JVcGxvYWQnLCBpbnAubmFtZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkZXNjID0gaW5wLmRlc2NyaXB0aW9uICE9PSBudWxsID8gJyAoJyArIGlucC5sKGlucC5kZXNjcmlwdGlvbikgKyAnKScgOiAnJztcclxuICAgIHJldHVybiBpbnAubChpbnAubmFtZSkgKyBkZXNjO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG5hdGlvbmFsQ29kZVZhbGlkKGMpOiBib29sZWFuIHtcclxuICAgIGlmICghUmVnRXhwKC9eXFxkezEwfSQvKS50ZXN0KGMpIHx8IFJlZ0V4cCgvXiguKVxcMSskLykudGVzdChjKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjaGVjayA9IHBhcnNlSW50KGNbOV0sIDEwKTtcclxuICAgIGxldCBzdW0gPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA5OyArK2kpIHtcclxuICAgICAgc3VtICs9IHBhcnNlSW50KGNbaV0sIDEwKSAqICgxMCAtIGkpO1xyXG4gICAgfVxyXG4gICAgc3VtICU9IDExO1xyXG4gICAgcmV0dXJuIChzdW0gPCAyICYmIGNoZWNrID09PSBzdW0pIHx8IChzdW0gPj0gMiAmJiBjaGVjayArIHN1bSA9PT0gMTEpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGlzbzcwNjRNb2Q5N18xMChpYmFuKTogbnVtYmVye1xyXG4gICAgbGV0IHJlbWFpbmRlciA9IGliYW47XHJcbiAgICB3aGlsZSAocmVtYWluZGVyLmxlbmd0aCA+IDIpe1xyXG4gICAgICBjb25zdCBibG9jayA9IHJlbWFpbmRlci5zbGljZSgwLCA5KTtcclxuICAgICAgcmVtYWluZGVyID0gcGFyc2VJbnQoYmxvY2ssIDEwKSAlIDk3ICsgcmVtYWluZGVyLnNsaWNlKGJsb2NrLmxlbmd0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBhcnNlSW50KHJlbWFpbmRlciwgMTApICUgOTc7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgc2hlYmFWYWxpZChzdHIpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvSVJbMC05XXsyNH0vO1xyXG4gICAgaWYgKCFzdHIuc3RhcnRXaXRoKCdJUicpKXtcclxuICAgICAgc3RyID0gJ0lSJyArIHN0cjtcclxuICAgIH1cclxuICAgIGlmIChzdHIubGVuZ3RoICE9PSAyNikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFwYXR0ZXJuLnRlc3Qoc3RyKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG5ld1N0ciA9IHN0ci5zdWJzdHIoNCk7XHJcbiAgICBjb25zdCBkMSA9IHN0ci5jaGFyQ29kZUF0KDApIC0gNjUgKyAxMDtcclxuICAgIGNvbnN0IGQyID0gc3RyLmNoYXJDb2RlQXQoMSkgLSA2NSArIDEwO1xyXG4gICAgbmV3U3RyICs9IGQxLnRvU3RyaW5nKCkgKyBkMi50b1N0cmluZygpICsgc3RyLnN1YnN0cigyLCAyKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pc283MDY0TW9kOTdfMTAobmV3U3RyKSA9PT0gMTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBwb3N0YWxDb2RlVmFsaWQoYyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFJlZ0V4cCgvXlxcYig/IShcXGQpXFwxezN9KVsxMy05XXs0fVsxMzQ2LTldWzAxMy05XXs1fVxcYiQvKS50ZXN0KGMpO1xyXG4gIH1cclxuICBzdGF0aWMgcmFuZG9tKGxlbmd0aCwgdXBwZXIgPSB0cnVlLCBsb3dlciA9IHRydWUsIG51bSA9IHRydWUpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgY29uc3QgY2hhcmFjdGVycyA9IGAke3VwcGVyID8gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyA6ICcnfSR7bG93ZXIgPyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIDogJyd9JHtudW0gPyAnMTIzNDU2Nzg5JyA6ICcnfWA7XHJcbiAgICBjb25zdCBjaGFyYWN0ZXJzTGVuZ3RoID0gY2hhcmFjdGVycy5sZW5ndGg7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrICkge1xyXG4gICAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVyc0xlbmd0aCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbiAgc3RhdGljIHNldENvb2tpZShuYW1lLCB2YWx1ZSwgZGF5cyk6IHZvaWQge1xyXG4gICAgbGV0IGV4cGlyZXMgPSAnJztcclxuICAgIGlmIChkYXlzKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyAoZGF5cyAqIDI0ICogNjAgKiA2MCAqIDEwMDApKTtcclxuICAgICAgZXhwaXJlcyA9ICc7IGV4cGlyZXM9JyArIGRhdGUudG9VVENTdHJpbmcoKTtcclxuICAgIH1cclxuICAgIGRvY3VtZW50LmNvb2tpZSA9IG5hbWUgKyAnPScgKyAodmFsdWUgfHwgJycpICArIGV4cGlyZXMgKyAnOyBwYXRoPS8nO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0Q29va2llKG5hbWUpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbmFtZUVRID0gbmFtZSArICc9JztcclxuICAgIGNvbnN0IGNhID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7Jyk7XHJcbiAgICBmb3IgKGxldCBjIG9mIGNhKSB7XHJcbiAgICAgIHdoaWxlIChjLmNoYXJBdCgwKSA9PT0gJyAnKXtcclxuICAgICAgICBjID0gYy5zdWJzdHJpbmcoMSwgYy5sZW5ndGgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjLmluZGV4T2YobmFtZUVRKSA9PT0gMCl7XHJcbiAgICAgICAgcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWVFUS5sZW5ndGgsIGMubGVuZ3RoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIHN0YXRpYyBlcmFzZUNvb2tpZShuYW1lKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKVxyXG4gICAgICAuZm9yRWFjaCgoYykgPT4geyBkb2N1bWVudC5jb29raWUgPSBjLnJlcGxhY2UoL14gKy8sICcnKS5yZXBsYWNlKC89LiovLCAnPTtleHBpcmVzPScgKyBuZXcgRGF0ZSgpLnRvVVRDU3RyaW5nKCkgKyAnO3BhdGg9LycpOyB9KTtcclxuICB9XHJcbiAgc3RhdGljIGdldERhdGVEaWYobCwgZHQ6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGNvbnN0IGQgPSBwYXJzZUludChkdC5zdWJzdHJpbmcoNiwgZHQubGVuZ3RoIC0gMiksIDEwKTtcclxuICAgIGNvbnN0IG5vdyA9IG1vbWVudC5ub3coKTtcclxuICAgIGNvbnN0IGRpZiA9IChub3cgLSBkKSAvIDEwMDA7XHJcbiAgICBjb25zdCBoID0gTWF0aC5mbG9vcihkaWYgLyAzNjAwKTtcclxuICAgIGNvbnN0IG0gPSBNYXRoLmZsb29yKGRpZiAlIDM2MDAgLyA2MCk7XHJcbiAgICBpZiAoaCA8IDI0KVxyXG4gICAge1xyXG4gICAgICBsZXQgciA9IGggPiAwID8gbCgnSG91clAnLCBoLnRvU3RyaW5nKCkpIDogJyc7XHJcbiAgICAgIHIgKz0gciAhPT0gJycgJiYgbSA+IDAgPyBsKCdBbmQnKSA6ICcnO1xyXG4gICAgICByICs9IG0gPiAwID8gbCgnTWludXRlUCcsIG0udG9TdHJpbmcoKSkgOiAnJztcclxuICAgICAgciArPSByICE9PSAnJyA/ICcnIDogbCgnQUZldycpO1xyXG4gICAgICByICs9ICcgJyArIGwoJ0FnbycpO1xyXG4gICAgICByZXR1cm4gcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnPGRpdiBjbGFzcz1cImx0clwiPicgKyBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCBISDptbScpICsgJzwvZGl2Pic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRSb3dFbnVtKGwsIGUsIGR0KTogc3RyaW5ne1xyXG4gICAgY29uc3QgdiA9IGUuZmluZCh4ID0+IHguVmFsdWUgPT09IGR0KTtcclxuICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCJzdGF0dXMgJHt2LkNsYXNzfVwiPmAgKyBsKHYuTmFtZSkgKyAnPC9zcGFuPic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXROb3coKTogYW55e1xyXG4gICAgcmV0dXJuIG1vbWVudC5ub3coKTtcclxuICB9XHJcbiAgc3RhdGljIGdldE1vbWVudChpID0gbnVsbCwgZiA9IG51bGwpOiBhbnl7XHJcbiAgICBpZiAoaSA9PSBudWxsKXtcclxuICAgICAgcmV0dXJuIG1vbWVudCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vbWVudChpLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGdldERhdGVSZW1haW4obCwgZHQ6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGNvbnN0IGQgPSBwYXJzZUludChkdC5zdWJzdHJpbmcoNiwgZHQubGVuZ3RoIC0gMiksIDEwKTtcclxuICAgIGNvbnN0IG5vdyA9IG1vbWVudC5ub3coKTtcclxuICAgIGNvbnN0IGRpZiA9IChkIC0gbm93KSAvIDEwMDA7XHJcbiAgICBpZiAoZGlmIDw9IDApXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiBsKCdFbmRlZCcpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaCA9IE1hdGguZmxvb3IoZGlmIC8gMzYwMCk7XHJcbiAgICBjb25zdCBtID0gTWF0aC5mbG9vcihkaWYgJSAzNjAwIC8gNjApO1xyXG4gICAgaWYgKGggPCAyNClcclxuICAgIHtcclxuICAgICAgbGV0IHIgPSBoID4gMCA/IGwoJ0hvdXJQJywgaC50b1N0cmluZygpKSA6ICcnO1xyXG4gICAgICByICs9IHIgIT09ICcnICYmIG0gPiAwID8gbCgnQW5kJykgOiAnJztcclxuICAgICAgciArPSBtID4gMCA/IGwoJ01pbnV0ZVAnLCBtLnRvU3RyaW5nKCkpIDogJyc7XHJcbiAgICAgIHIgKz0gciAhPT0gJycgPyAnJyA6IGwoJ0FGZXcnKTtcclxuICAgICAgciArPSAnICcgKyBsKCdMYXRlcicpO1xyXG4gICAgICByZXR1cm4gcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnPGRpdiBjbGFzcz1cImx0clwiPicgKyBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCBISDptbScpICsgJzwvZGl2Pic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXREYXRlKGR0OiBzdHJpbmcpOiBzdHJpbmd7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoZHQgPT09IG51bGwpe1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkID0gcGFyc2VJbnQoZHQuc3Vic3RyaW5nKDYsIGR0Lmxlbmd0aCAtIDIpLCAxMCk7XHJcbiAgICAgIHJldHVybiBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCcpO1xyXG4gICAgfWNhdGNoIChlKSB7XHJcbiAgICAgIHJldHVybiBkdDtcclxuICAgIH1cclxuICB9XHJcbiAgc3RhdGljIGdldFRpbWUoZHQ6IGFueSk6IHN0cmluZ3tcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChkdCA9PT0gbnVsbCl7XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBgJHsoZHQuSG91cnMgPiA5ID8gZHQuSG91cnMgOiBgMCR7ZHQuSG91cnN9YCl9OiR7KGR0Lk1pbnV0ZXMgPiA5ID8gZHQuTWludXRlcyA6IGAwJHtkdC5NaW51dGVzfWApfWA7XHJcbiAgICB9Y2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuIGR0O1xyXG4gICAgfVxyXG4gIH1cclxuICBzdGF0aWMgZ2V0RGF0ZVRpbWUoZHQ6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGlmIChkdCA9PT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIGNvbnN0IGQgPSBwYXJzZUludChkdC5zdWJzdHJpbmcoNiwgZHQubGVuZ3RoIC0gMiksIDEwKTtcclxuICAgIHJldHVybiBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCBISDptbScpO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0RmlsZVNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzdWZmaXggPSBbICdCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJ107XHJcbiAgICBsZXQgZGJsU0J5dGUgPSBieXRlcztcclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAoOyBpIDwgc3VmZml4Lmxlbmd0aCAmJiBieXRlcyA+PSAxMDI0OyBpKyssIGJ5dGVzIC89IDEwMjQpXHJcbiAgICB7XHJcbiAgICAgIGRibFNCeXRlID0gYnl0ZXMgLyAxMDI0LjA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7ZGJsU0J5dGUudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywge1xyXG4gICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMSxcclxuICAgIH0pfSAke3N1ZmZpeFtpXX1gO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0UERhdGUobCwgcyk6IHN0cmluZ3tcclxuICAgIHJldHVybiBzLnJlcGxhY2UoL0hvdXIvZywgbCgnSG91cicpKVxyXG4gICAgICAucmVwbGFjZSgvTGVzc1RoYW5NaW51dGUvZywgbCgnTGVzc1RoYW5NaW51dGUnKSlcclxuICAgICAgLnJlcGxhY2UoL01pbnV0ZS9nLCBsKCdNaW51dGUnKSlcclxuICAgICAgLnJlcGxhY2UoL0FuZC9nLCBsKCdBbmQnKSlcclxuICAgICAgLnJlcGxhY2UoL0FGZXcvZywgbCgnQUZldycpKVxyXG4gICAgICAucmVwbGFjZSgvRmluaXNoZWQvZywgbCgnRmluaXNoZWQnKSlcclxuICAgICAgLnJlcGxhY2UoL0RheS9nLCBsKCdEYXknKSlcclxuICAgICAgLnJlcGxhY2UoL0xhdGVyL2csIGwoJ0xhdGVyJykpXHJcbiAgICAgIC5yZXBsYWNlKC9BZ28vZywgbCgnQWdvJykpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNsb25lPFQ+KHY6IFQpOiBUIHtcclxuICAgIGlmICh2ID09IG51bGwpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb3B5ID0gbmV3ICh2LmNvbnN0cnVjdG9yIGFzIHsgbmV3KCkgfSkoKTtcclxuICAgIE9iamVjdC5hc3NpZ24oY29weSwgdik7XHJcbiAgICByZXR1cm4gY29weTtcclxuICB9XHJcbiAgc3RhdGljIGNsb25lSnNvbihpbnApOiBhbnkge1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaW5wKSk7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXROYW1lKG4pOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gbi5yZXBsYWNlKC/aqS9nLCAn2YMnKS5yZXBsYWNlKC/bjC9nLCAn2YonKS5yZXBsYWNlKC/Yoi9nLCAn2KInKTtcclxuICB9XHJcbiAgc3RhdGljIGFkZE5vdGlmaWNhdGlvbihtLCBlID0gdHJ1ZSk6IHZvaWR7XHJcbiAgICBjb25zdCBpZCA9IEhlbHBlckNsYXNzLnJhbmRvbSgyMCk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICQoJyNOb3RpZmljYXRpb25zJykuYXBwZW5kKCc8ZGl2IGlkPVwiJyArIGlkICsgJ1wiIGNsYXNzPVwiY29uXCI+PGRpdiBjbGFzcz1cIml0ZW0gJyArIChlID8gJ2Vycm9yJyA6ICdzdWNjZXNzJykgKyAnXCI+PGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+PGRpdj4nICsgbSArICc8L2Rpdj48L2Rpdj48L2Rpdj4nKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBkID0gJCgnIycgKyBpZCk7XHJcbiAgICAgIGQuZmFkZU91dCgzMDAsICgpID0+IHtcclxuICAgICAgICBkLnJlbW92ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0sIDUwMDApO1xyXG4gIH1cclxuICBzdGF0aWMgY2hlY2tDYXJ0RGlnaXQoY29kZSk6IGJvb2xlYW57XHJcbiAgICBjb25zdCBsID0gY29kZS5sZW5ndGg7XHJcbiAgICBpZiAobCA8IDE2IHx8IHBhcnNlSW50KGNvZGUuc3Vic3RyKDEsIDEwKSwgMTApID09PSAwIHx8XHJcbiAgICAgIHBhcnNlSW50KGNvZGUuc3Vic3RyKDEwLCA2KSwgMTApID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGxldCBzID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTY7IGkrKyl7XHJcbiAgICAgIGNvbnN0IGsgPSBpICUgMiA9PT0gMCA/IDIgOiAxO1xyXG4gICAgICBjb25zdCBkID0gcGFyc2VJbnQoY29kZS5zdWJzdHIoaSwgMSksIDEwKSAqIGs7XHJcbiAgICAgIHMgKz0gZCA+IDkgPyBkIC0gOSA6IGQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcyAlIDEwID09PSAwO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldERhdGEoa2V5LCBzdGF0ZSwgcGFyZW50KTogYW55IHtcclxuICAgIGNvbnN0IGRhdGEgPSBbXTtcclxuICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LnNuYXBzaG90LmRhdGEgJiYgcGFyZW50LnNuYXBzaG90LmRhdGFba2V5XSkge1xyXG4gICAgICBkYXRhLnB1c2gocGFyZW50LnNuYXBzaG90LmRhdGFba2V5XSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0YXRlICYmIHBhcmVudCkge1xyXG4gICAgICBkYXRhLnB1c2goLi4udGhpcy5nZXREYXRhKGtleSwgc3RhdGUsIHN0YXRlLmZpcnN0Q2hpbGQocGFyZW50KSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,32 +0,0 @@
1
- import * as _ from 'lodash';
2
- import { strings as publicStrings } from './string.class';
3
- // @dynamic
4
- export class LangClass {
5
- constructor(d, strings) {
6
- this.lang = _.merge(publicStrings[d], strings[d]);
7
- }
8
- get(area, c, k, v = null) {
9
- let cv = _.get(this.lang, area ? `${area}.${c}.${k}` : `${c}.${k}`);
10
- if (!cv) {
11
- cv = _.get(this.lang, `Public.${c}.${k}`);
12
- }
13
- if (!cv) {
14
- cv = _.get(this.lang, `Public.${k}`);
15
- }
16
- if (!cv) {
17
- return k;
18
- }
19
- if (v !== null) {
20
- if (v.constructor === Array) {
21
- v.forEach((x) => {
22
- cv = cv.replace('{}', this.get(area, c, x, null));
23
- });
24
- }
25
- else {
26
- cv = cv.replace('{}', this.get(area, c, v, null));
27
- }
28
- }
29
- return cv;
30
- }
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9sYW5nLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBQyxPQUFPLElBQUksYUFBYSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsV0FBVztBQUNYLE1BQU0sT0FBTyxTQUFTO0lBRXBCLFlBQVksQ0FBUyxFQUFFLE9BQVc7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0QsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJO1FBQ3RCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsRUFBRSxFQUFDO1lBQ04sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsRUFBQztZQUNOLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsRUFBQztZQUNOLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO2dCQUMzQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ2QsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDcEQsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ25EO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHtzdHJpbmdzIGFzIHB1YmxpY1N0cmluZ3N9IGZyb20gJy4vc3RyaW5nLmNsYXNzJztcclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBMYW5nQ2xhc3Mge1xyXG4gIGxhbmc6IHt9O1xyXG4gIGNvbnN0cnVjdG9yKGQ6IHN0cmluZywgc3RyaW5nczoge30pIHtcclxuICAgIHRoaXMubGFuZyA9IF8ubWVyZ2UocHVibGljU3RyaW5nc1tkXSwgc3RyaW5nc1tkXSk7XHJcbiAgfVxyXG4gIGdldChhcmVhLCBjLCBrLCB2ID0gbnVsbCk6IHN0cmluZyB7XHJcbiAgICBsZXQgY3YgPSBfLmdldCh0aGlzLmxhbmcsIGFyZWEgPyBgJHthcmVhfS4ke2N9LiR7a31gIDogYCR7Y30uJHtrfWApO1xyXG4gICAgaWYgKCFjdil7XHJcbiAgICAgIGN2ID0gXy5nZXQodGhpcy5sYW5nLCBgUHVibGljLiR7Y30uJHtrfWApO1xyXG4gICAgfVxyXG4gICAgaWYgKCFjdil7XHJcbiAgICAgIGN2ID0gXy5nZXQodGhpcy5sYW5nLCBgUHVibGljLiR7a31gKTtcclxuICAgIH1cclxuICAgIGlmICghY3Ype1xyXG4gICAgICByZXR1cm4gaztcclxuICAgIH1cclxuICAgIGlmICh2ICE9PSBudWxsKSB7XHJcbiAgICAgIGlmICh2LmNvbnN0cnVjdG9yID09PSBBcnJheSkge1xyXG4gICAgICAgIHYuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgICAgY3YgPSBjdi5yZXBsYWNlKCd7fScsIHRoaXMuZ2V0KGFyZWEsIGMsIHgsIG51bGwpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjdiA9IGN2LnJlcGxhY2UoJ3t9JywgdGhpcy5nZXQoYXJlYSwgYywgdiwgbnVsbCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY3Y7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,22 +0,0 @@
1
- import { HelperClass } from './helper.class';
2
- export class LoginClass {
3
- constructor(type) {
4
- this.steps = [];
5
- this.active = 0;
6
- this.onSuccess = null;
7
- this.type = type;
8
- }
9
- setCookie(r) {
10
- if (r.Token) {
11
- HelperClass.setCookie('Authorization', `Bearer ${r.Token}`, 30);
12
- }
13
- }
14
- }
15
- export class LoginStepClass {
16
- constructor(form) {
17
- this.form = null;
18
- this.form = form;
19
- }
20
- show(result = null) { }
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiRDovUHJvamVjdHMvUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NsYXNzZXMvbG9naW4uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQVksSUFBWTtRQUl4QixVQUFLLEdBQXFCLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsY0FBUyxHQUFxQixJQUFJLENBQUM7UUFMakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQVFELFNBQVMsQ0FBQyxDQUFDO1FBQ1QsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFDO1lBQ1YsV0FBVyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDO0NBQ0Y7QUFDRCxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFZLElBQWU7UUFHM0IsU0FBSSxHQUFjLElBQUksQ0FBQztRQUZyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQWMsSUFBSSxJQUFTLENBQUM7Q0FDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Zvcm1DbGFzc30gZnJvbSAnLi9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi9oZWxwZXIuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIExvZ2luQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKHR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy50eXBlID0gdHlwZTtcclxuICB9XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIHN0ZXBzOiBMb2dpblN0ZXBDbGFzc1tdID0gW107XHJcbiAgYWN0aXZlID0gMDtcclxuICBvblN1Y2Nlc3M6IChyZXN1bHQpID0+IHZvaWQgPSBudWxsO1xyXG4gIHNlbmRDb2RlVXJsOiBzdHJpbmc7XHJcbiAgcmVTZW5kQ29kZVVybDogc3RyaW5nO1xyXG4gIGxvZ2luVXJsOiBzdHJpbmc7XHJcbiAgc2V0Q29va2llKHIpOiB2b2lke1xyXG4gICAgaWYgKHIuVG9rZW4pe1xyXG4gICAgICBIZWxwZXJDbGFzcy5zZXRDb29raWUoJ0F1dGhvcml6YXRpb24nLCBgQmVhcmVyICR7ci5Ub2tlbn1gLCAzMCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBMb2dpblN0ZXBDbGFzc3tcclxuICBjb25zdHJ1Y3Rvcihmb3JtOiBGb3JtQ2xhc3MpIHtcclxuICAgIHRoaXMuZm9ybSA9IGZvcm07XHJcbiAgfVxyXG4gIGZvcm06IEZvcm1DbGFzcyA9IG51bGw7XHJcbiAgc2hvdyhyZXN1bHQ6IGFueSA9IG51bGwpOiB2b2lkIHt9XHJcbn1cclxuIl19
@@ -1,52 +0,0 @@
1
- import * as $ from 'jquery';
2
- import { InputType } from './enum.class';
3
- export class ModalClass {
4
- constructor(environment, l, name, cls = '') {
5
- this.environment = null;
6
- this.form = null;
7
- this.firstForm = true;
8
- this.table = null;
9
- this.accordion = null;
10
- this.onShow = null;
11
- this.onHide = null;
12
- this.environment = environment;
13
- this.l = l;
14
- this.name = name;
15
- this.id = this.name;
16
- this.class = cls;
17
- }
18
- show() {
19
- if (this.onShow) {
20
- this.onShow();
21
- }
22
- $('body').addClass('open-modal');
23
- $('#' + this.id + 'Modal').fadeIn(300, () => {
24
- if (this.form != null) {
25
- const i = this.form.inputs.find(x => !x.disabled && x.type !== InputType.Label && x.type !== InputType.Hidden &&
26
- x.type !== InputType.Constant && x.type !== InputType.Submit && x.type !== InputType.Button && x.type !== InputType.Icon &&
27
- x.type !== InputType.Check);
28
- if (i) {
29
- i.focus();
30
- }
31
- }
32
- });
33
- }
34
- hide() {
35
- $('body').removeClass('open-modal');
36
- $('#' + this.id + 'Modal').fadeOut(300, () => {
37
- if (this.form && this.form.name !== 'Confirm' && this.form.name !== 'Alert') {
38
- this.form.clear();
39
- if (this.form.onHideModal) {
40
- this.form.onHideModal();
41
- }
42
- }
43
- if (this.table && this.table.form) {
44
- this.table.form.clear();
45
- }
46
- if (this.onHide) {
47
- this.onHide();
48
- }
49
- });
50
- }
51
- }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiRDovUHJvamVjdHMvUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NsYXNzZXMvbW9kYWwuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUd2QyxNQUFNLE9BQU8sVUFBVTtJQUNyQixZQUFZLFdBQWdCLEVBQUUsQ0FBb0IsRUFBRSxJQUFZLEVBQUUsTUFBYyxFQUFFO1FBT2xGLGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBTXhCLFNBQUksR0FBYyxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixVQUFLLEdBQWUsSUFBSSxDQUFDO1FBQ3pCLGNBQVMsR0FBbUIsSUFBSSxDQUFDO1FBQ2pDLFdBQU0sR0FBZSxJQUFJLENBQUM7UUFDMUIsV0FBTSxHQUFlLElBQUksQ0FBQztRQWpCeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQWFELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUM7WUFDZCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDZjtRQUNELENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFO1lBQzFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUM7Z0JBQ3BCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTTtvQkFDM0csQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSTtvQkFDeEgsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxFQUFDO29CQUNKLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDWDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSTtRQUNGLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFDO2dCQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDO29CQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUN6QjthQUNGO1lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFDO2dCQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN6QjtZQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBQztnQkFDZCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY2NvcmRpb25DbGFzcywgRm9ybUNsYXNzfSBmcm9tICcuL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7SW5wdXRUeXBlfSBmcm9tICcuL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge1RhYmxlQ2xhc3N9IGZyb20gJy4vdGFibGUuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1vZGFsQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGVudmlyb25tZW50OiBhbnksIGw6IChrLCB2PykgPT4gc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGNsczogc3RyaW5nID0gJycpIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5pZCA9IHRoaXMubmFtZTtcclxuICAgIHRoaXMuY2xhc3MgPSBjbHM7XHJcbiAgfVxyXG4gIGVudmlyb25tZW50OiBhbnkgPSBudWxsO1xyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpZDogc3RyaW5nO1xyXG4gIGNsYXNzOiBzdHJpbmc7XHJcbiAgcmVsYXRlZElkOiBudWxsO1xyXG4gIGZvcm06IEZvcm1DbGFzcyA9IG51bGw7XHJcbiAgZmlyc3RGb3JtID0gdHJ1ZTtcclxuICB0YWJsZTogVGFibGVDbGFzcyA9IG51bGw7XHJcbiAgYWNjb3JkaW9uOiBBY2NvcmRpb25DbGFzcyA9IG51bGw7XHJcbiAgb25TaG93OiAoKSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkhpZGU6ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIHNob3coKTogdm9pZHtcclxuICAgIGlmICh0aGlzLm9uU2hvdyl7XHJcbiAgICAgIHRoaXMub25TaG93KCk7XHJcbiAgICB9XHJcbiAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ29wZW4tbW9kYWwnKTtcclxuICAgICQoJyMnICsgdGhpcy5pZCArICdNb2RhbCcpLmZhZGVJbigzMDAsICgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9ybSAhPSBudWxsKXtcclxuICAgICAgICBjb25zdCBpID0gdGhpcy5mb3JtLmlucHV0cy5maW5kKHggPT4gIXguZGlzYWJsZWQgJiYgeC50eXBlICE9PSBJbnB1dFR5cGUuTGFiZWwgJiYgeC50eXBlICE9PSBJbnB1dFR5cGUuSGlkZGVuICYmXHJcbiAgICAgICAgICB4LnR5cGUgIT09IElucHV0VHlwZS5Db25zdGFudCAmJiB4LnR5cGUgIT09IElucHV0VHlwZS5TdWJtaXQgJiYgeC50eXBlICE9PSBJbnB1dFR5cGUuQnV0dG9uICYmIHgudHlwZSAhPT0gSW5wdXRUeXBlLkljb24gJiZcclxuICAgICAgICAgIHgudHlwZSAhPT0gSW5wdXRUeXBlLkNoZWNrKTtcclxuICAgICAgICBpZiAoaSl7XHJcbiAgICAgICAgICBpLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgaGlkZSgpOiB2b2lke1xyXG4gICAgJCgnYm9keScpLnJlbW92ZUNsYXNzKCdvcGVuLW1vZGFsJyk7XHJcbiAgICAkKCcjJyArIHRoaXMuaWQgKyAnTW9kYWwnKS5mYWRlT3V0KDMwMCwgKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb3JtICYmIHRoaXMuZm9ybS5uYW1lICE9PSAnQ29uZmlybScgJiYgdGhpcy5mb3JtLm5hbWUgIT09ICdBbGVydCcpe1xyXG4gICAgICAgIHRoaXMuZm9ybS5jbGVhcigpO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0ub25IaWRlTW9kYWwpe1xyXG4gICAgICAgICAgdGhpcy5mb3JtLm9uSGlkZU1vZGFsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlICYmIHRoaXMudGFibGUuZm9ybSl7XHJcbiAgICAgICAgdGhpcy50YWJsZS5mb3JtLmNsZWFyKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMub25IaWRlKXtcclxuICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,61 +0,0 @@
1
- import { PermissionTypeEnum } from './enum.class';
2
- export class PermissionClass {
3
- constructor(Name = '', Icon = '', Type = null, InputType = null, AccessType = null, InputAction = null, Area = '', Controller = '', Action = '', Condition = null, Accesses = []) {
4
- this.Name = Name;
5
- this.Icon = Icon;
6
- this.Type = Type;
7
- this.InputType = InputType;
8
- this.AccessType = AccessType;
9
- this.InputAction = InputAction;
10
- this.Area = Area;
11
- this.Controller = Controller;
12
- this.Action = Action;
13
- this.Condition = Condition;
14
- this.Accesses = Accesses;
15
- this.RelatedId = null;
16
- this.OnClick = null;
17
- }
18
- getAccessByName(a) {
19
- const c = this.Accesses.filter(x => x.Action === a && x.Type === PermissionTypeEnum.Access);
20
- return c.length > 0 ? c[0] : null;
21
- }
22
- getAccess(at) {
23
- const c = this.Accesses.filter(x => x.AccessType === at && x.Type === PermissionTypeEnum.Access);
24
- return c.length > 0 ? c[0] : null;
25
- }
26
- hasAccessByName(a) {
27
- return this.Accesses.filter(x => x.Action === a && x.Type === PermissionTypeEnum.Access).length > 0;
28
- }
29
- hasAccess(at) {
30
- return this.Accesses.filter(x => x.AccessType === at && x.Type === PermissionTypeEnum.Access).length > 0;
31
- }
32
- getAccesses() {
33
- return this.Accesses.filter(x => x.Type === PermissionTypeEnum.Access);
34
- }
35
- delete(a) {
36
- this.Accesses = this.Accesses.filter(x => x.Action !== a);
37
- }
38
- hasOptionByName(a) {
39
- return this.Accesses.filter(x => x.Action === a && x.Type === PermissionTypeEnum.Option).length > 0;
40
- }
41
- hasOption(at) {
42
- return this.Accesses.filter(x => x.AccessType === at && x.Type === PermissionTypeEnum.Option).length > 0;
43
- }
44
- getOptions() {
45
- return this.Accesses.filter(x => x.Type === PermissionTypeEnum.Option);
46
- }
47
- getOptionByName(a) {
48
- const c = this.Accesses.filter(x => x.Action === a && x.Type === PermissionTypeEnum.Option);
49
- return c.length > 0 ? c[0] : null;
50
- }
51
- getOption(at) {
52
- const c = this.Accesses.filter(x => x.AccessType === at && x.Type === PermissionTypeEnum.Option);
53
- return c.length > 0 ? c[0] : null;
54
- }
55
- getUrl() {
56
- return (this.Area ? '/' + this.Area : '') + '/' + this.Controller + '/' +
57
- (this.RelatedId ? `${this.RelatedId}/` : '') +
58
- (this.Action ? this.Action : '');
59
- }
60
- }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9wZXJtaXNzaW9uLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBK0Usa0JBQWtCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHOUgsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFBbUIsT0FBZSxFQUFFLEVBQVMsT0FBZSxFQUFFLEVBQVMsT0FBMkIsSUFBSSxFQUNuRixZQUFxQyxJQUFJLEVBQVMsYUFBdUMsSUFBSSxFQUM3RixjQUF5QyxJQUFJLEVBQVMsT0FBZSxFQUFFLEVBQVMsYUFBcUIsRUFBRSxFQUN2RyxTQUFpQixFQUFFLEVBQVMsWUFBb0IsSUFBSSxFQUFTLFdBQThCLEVBQUU7UUFIN0YsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFTLFNBQUksR0FBSixJQUFJLENBQWE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUEyQjtRQUNuRixjQUFTLEdBQVQsU0FBUyxDQUFnQztRQUFTLGVBQVUsR0FBVixVQUFVLENBQWlDO1FBQzdGLGdCQUFXLEdBQVgsV0FBVyxDQUFrQztRQUFTLFNBQUksR0FBSixJQUFJLENBQWE7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFhO1FBQ3ZHLFdBQU0sR0FBTixNQUFNLENBQWE7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7UUFHaEgsY0FBUyxHQUFXLElBQUksQ0FBQztRQUN6QixZQUFPLEdBQWtCLElBQUksQ0FBQztJQUg5QixDQUFDO0lBSUQsZUFBZSxDQUFDLENBQVM7UUFDdkIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFD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Q0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUNELFNBQVMsQ0FBQyxFQUE0QjtRQUNwQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakcsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUNELE1BQU07UUFDSixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUc7WUFDckUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0sIFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0sIFBlcm1pc3Npb25JbnB1dFR5cGVFbnVtLCBQZXJtaXNzaW9uVHlwZUVudW19IGZyb20gJy4vZW51bS5jbGFzcyc7XHJcbmltcG9ydCB7TW9kYWxDbGFzc30gZnJvbSAnLi9tb2RhbC5jbGFzcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbkNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgTmFtZTogc3RyaW5nID0gJycsIHB1YmxpYyBJY29uOiBzdHJpbmcgPSAnJywgcHVibGljIFR5cGU6IFBlcm1pc3Npb25UeXBlRW51bSA9IG51bGwsXHJcbiAgICAgICAgICAgICAgcHVibGljIElucHV0VHlwZTogUGVybWlzc2lvbklucHV0VHlwZUVudW0gPSBudWxsLCBwdWJsaWMgQWNjZXNzVHlwZTogUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtID0gbnVsbCxcclxuICAgICAgICAgICAgICBwdWJsaWMgSW5wdXRBY3Rpb246IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0gPSBudWxsLCBwdWJsaWMgQXJlYTogc3RyaW5nID0gJycsIHB1YmxpYyBDb250cm9sbGVyOiBzdHJpbmcgPSAnJyxcclxuICAgICAgICAgICAgICBwdWJsaWMgQWN0aW9uOiBzdHJpbmcgPSAnJywgcHVibGljIENvbmRpdGlvbjogc3RyaW5nID0gbnVsbCwgcHVibGljIEFjY2Vzc2VzOiBQZXJtaXNzaW9uQ2xhc3NbXSA9IFtdKSB7XHJcbiAgfVxyXG4gIE1vZGFsOiBNb2RhbENsYXNzO1xyXG4gIFJlbGF0ZWRJZDogc3RyaW5nID0gbnVsbDtcclxuICBPbkNsaWNrOiAoYnRuKSA9PiB2b2lkID0gbnVsbDtcclxuICBnZXRBY2Nlc3NCeU5hbWUoYTogc3RyaW5nKTogUGVybWlzc2lvbkNsYXNze1xyXG4gICAgY29uc3QgYyA9IHRoaXMuQWNjZXNzZXMuZmlsdGVyKHggPT4geC5BY3Rpb24gPT09IGEgJiYgeC5UeXBlID09PSBQZXJtaXNzaW9uVHlwZUVudW0uQWNjZXNzKTtcclxuICAgIHJldHVybiBjLmxlbmd0aCA+IDAgPyBjWzBdIDogbnVsbDtcclxuICB9XHJcbiAgZ2V0QWNjZXNzKGF0OiBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0pOiBQZXJtaXNzaW9uQ2xhc3N7XHJcbiAgICBjb25zdCBjID0gdGhpcy5BY2Nlc3Nlcy5maWx0ZXIoeCA9PiB4LkFjY2Vzc1R5cGUgPT09IGF0ICYmIHguVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLkFjY2Vzcyk7XHJcbiAgICByZXR1cm4gYy5sZW5ndGggPiAwID8gY1swXSA6IG51bGw7XHJcbiAgfVxyXG4gIGhhc0FjY2Vzc0J5TmFtZShhOiBzdHJpbmcpOiBib29sZWFue1xyXG4gICAgcmV0dXJuIHRoaXMuQWNjZXNzZXMuZmlsdGVyKHggPT4geC5BY3Rpb24gPT09IGEgJiYgeC5UeXBlID09PSBQZXJtaXNzaW9uVHlwZUVudW0uQWNjZXNzKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuICBoYXNBY2Nlc3MoYXQ6IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bSk6IGJvb2xlYW57XHJcbiAgICByZXR1cm4gdGhpcy5BY2Nlc3Nlcy5maWx0ZXIoeCA9PiB4LkFjY2Vzc1R5cGUgPT09IGF0ICYmIHguVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLkFjY2VzcykubGVuZ3RoID4gMDtcclxuICB9XHJcbiAgZ2V0QWNjZXNzZXMoKTogUGVybWlzc2lvbkNsYXNzW117XHJcbiAgICByZXR1cm4gdGhpcy5BY2Nlc3Nlcy5maWx0ZXIoeCA9PiB4LlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5BY2Nlc3MpO1xyXG4gIH1cclxuICBkZWxldGUoYTogc3RyaW5nKTogdm9pZHtcclxuICAgIHRoaXMuQWNjZXNzZXMgPSB0aGlzLkFjY2Vzc2VzLmZpbHRlcih4ID0+IHguQWN0aW9uICE9PSBhKTtcclxuICB9XHJcbiAgaGFzT3B0aW9uQnlOYW1lKGE6IHN0cmluZyk6IGJvb2xlYW57XHJcbiAgICByZXR1cm4gdGhpcy5BY2Nlc3Nlcy5maWx0ZXIoeCA9PiB4LkFjdGlvbiA9PT0gYSAmJiB4LlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5PcHRpb24pLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG4gIGhhc09wdGlvbihhdDogUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtKTogYm9vbGVhbntcclxuICAgIHJldHVybiB0aGlzLkFjY2Vzc2VzLmZpbHRlcih4ID0+IHguQWNjZXNzVHlwZSA9PT0gYXQgJiYgeC5UeXBlID09PSBQZXJtaXNzaW9uVHlwZUVudW0uT3B0aW9uKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuICBnZXRPcHRpb25zKCk6IFBlcm1pc3Npb25DbGFzc1tde1xyXG4gICAgcmV0dXJuIHRoaXMuQWNjZXNzZXMuZmlsdGVyKHggPT4geC5UeXBlID09PSBQZXJtaXNzaW9uVHlwZUVudW0uT3B0aW9uKTtcclxuICB9XHJcbiAgZ2V0T3B0aW9uQnlOYW1lKGE6IHN0cmluZyk6IFBlcm1pc3Npb25DbGFzc3tcclxuICAgIGNvbnN0IGMgPSB0aGlzLkFjY2Vzc2VzLmZpbHRlcih4ID0+IHguQWN0aW9uID09PSBhICYmIHguVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLk9wdGlvbik7XHJcbiAgICByZXR1cm4gYy5sZW5ndGggPiAwID8gY1swXSA6IG51bGw7XHJcbiAgfVxyXG4gIGdldE9wdGlvbihhdDogUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtKTogUGVybWlzc2lvbkNsYXNze1xyXG4gICAgY29uc3QgYyA9IHRoaXMuQWNjZXNzZXMuZmlsdGVyKHggPT4geC5BY2Nlc3NUeXBlID09PSBhdCAmJiB4LlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5PcHRpb24pO1xyXG4gICAgcmV0dXJuIGMubGVuZ3RoID4gMCA/IGNbMF0gOiBudWxsO1xyXG4gIH1cclxuICBnZXRVcmwoKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuICh0aGlzLkFyZWEgPyAnLycgKyB0aGlzLkFyZWEgOiAnJykgKyAnLycgKyB0aGlzLkNvbnRyb2xsZXIgKyAnLycgK1xyXG4gICAgICAodGhpcy5SZWxhdGVkSWQgPyBgJHt0aGlzLlJlbGF0ZWRJZH0vYCA6ICcnKSArXHJcbiAgICAgICh0aGlzLkFjdGlvbiA/IHRoaXMuQWN0aW9uIDogJycpO1xyXG4gIH1cclxufVxyXG4iXX0=