@acorex/core 16.0.2 → 17.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (311) hide show
  1. package/common/README.md +3 -0
  2. package/common/countries/countries.data.d.ts +2 -0
  3. package/common/countries/country.d.ts +13 -0
  4. package/common/index.d.ts +2 -0
  5. package/config/README.md +3 -0
  6. package/config/index.d.ts +2 -0
  7. package/config/lib/configs.d.ts +6 -0
  8. package/config/lib/configs.service.d.ts +12 -0
  9. package/date-time/README.md +3 -0
  10. package/date-time/index.d.ts +10 -0
  11. package/date-time/lib/calendar.service.d.ts +27 -0
  12. package/date-time/lib/dateTime.config.d.ts +12 -0
  13. package/date-time/lib/datetime.class.d.ts +138 -0
  14. package/date-time/lib/datetime.module.d.ts +8 -0
  15. package/date-time/lib/datetime.pipe.d.ts +12 -0
  16. package/date-time/lib/formatters/datetime-formatter.d.ts +19 -0
  17. package/date-time/lib/formatters/timeleft-formatter.d.ts +16 -0
  18. package/date-time/lib/georgian.calendar.d.ts +21 -0
  19. package/date-time/lib/holidays.loader.d.ts +21 -0
  20. package/date-time/lib/jalali.calendar.d.ts +40 -0
  21. package/esm2022/common/acorex-core-common.mjs +5 -0
  22. package/esm2022/common/countries/countries.data.mjs +2625 -0
  23. package/esm2022/common/countries/country.mjs +2 -0
  24. package/esm2022/common/index.mjs +3 -0
  25. package/esm2022/config/acorex-core-config.mjs +5 -0
  26. package/esm2022/config/index.mjs +3 -0
  27. package/esm2022/config/lib/configs.mjs +7 -0
  28. package/esm2022/config/lib/configs.service.mjs +27 -0
  29. package/esm2022/date-time/acorex-core-date-time.mjs +5 -0
  30. package/esm2022/date-time/index.mjs +11 -0
  31. package/esm2022/date-time/lib/calendar.service.mjs +100 -0
  32. package/esm2022/date-time/lib/dateTime.config.mjs +50 -0
  33. package/esm2022/date-time/lib/datetime.class.mjs +337 -0
  34. package/esm2022/date-time/lib/datetime.module.mjs +27 -0
  35. package/esm2022/date-time/lib/datetime.pipe.mjs +29 -0
  36. package/esm2022/date-time/lib/formatters/datetime-formatter.mjs +32 -0
  37. package/esm2022/date-time/lib/formatters/timeleft-formatter.mjs +91 -0
  38. package/esm2022/date-time/lib/georgian.calendar.mjs +203 -0
  39. package/esm2022/date-time/lib/holidays.loader.mjs +13 -0
  40. package/esm2022/date-time/lib/jalali.calendar.mjs +440 -0
  41. package/esm2022/events/acorex-core-events.mjs +5 -0
  42. package/esm2022/events/index.mjs +3 -0
  43. package/esm2022/events/lib/event.service.mjs +43 -0
  44. package/esm2022/events/lib/event.type.mjs +6 -0
  45. package/esm2022/file/acorex-core-file.mjs +5 -0
  46. package/esm2022/file/index.mjs +7 -0
  47. package/esm2022/file/lib/file-download-ref.class.mjs +12 -0
  48. package/esm2022/file/lib/file-download-result.class.mjs +45 -0
  49. package/esm2022/file/lib/file-size-formatter.mjs +24 -0
  50. package/esm2022/file/lib/file-upload-ref.class.mjs +12 -0
  51. package/esm2022/file/lib/file.module.mjs +20 -0
  52. package/esm2022/file/lib/file.service.mjs +103 -0
  53. package/esm2022/format/acorex-core-format.mjs +5 -0
  54. package/esm2022/format/index.mjs +8 -0
  55. package/esm2022/format/lib/format.config.mjs +3 -0
  56. package/esm2022/format/lib/format.module.mjs +64 -0
  57. package/esm2022/format/lib/format.pipe.mjs +37 -0
  58. package/esm2022/format/lib/format.service.mjs +95 -0
  59. package/esm2022/format/lib/format.types.mjs +2 -0
  60. package/esm2022/format/lib/formatters/number-formatter.mjs +74 -0
  61. package/esm2022/format/lib/formatters/string-formatter.mjs +15 -0
  62. package/esm2022/image/acorex-core-image.mjs +5 -0
  63. package/esm2022/image/index.mjs +2 -0
  64. package/esm2022/image/lib/image.service.mjs +43 -0
  65. package/esm2022/index.mjs +2 -44
  66. package/esm2022/memorize/acorex-core-memorize.mjs +5 -0
  67. package/esm2022/memorize/index.mjs +2 -0
  68. package/esm2022/memorize/lib/memorize.decorator.mjs +19 -0
  69. package/esm2022/pipes/acorex-core-pipes.mjs +5 -0
  70. package/esm2022/pipes/index.mjs +2 -0
  71. package/esm2022/pipes/lib/safe/safe.pipe.mjs +38 -0
  72. package/esm2022/platform/acorex-core-platform.mjs +5 -0
  73. package/esm2022/platform/index.mjs +2 -0
  74. package/esm2022/platform/lib/platform.service.mjs +225 -0
  75. package/esm2022/storage/acorex-core-storage.mjs +5 -0
  76. package/esm2022/storage/cookie-storage.service.mjs +202 -0
  77. package/esm2022/storage/index.mjs +5 -0
  78. package/esm2022/storage/local-storage.service.mjs +58 -0
  79. package/esm2022/storage/session-storage.service.mjs +22 -0
  80. package/esm2022/storage/storage.interface.mjs +2 -0
  81. package/esm2022/translation/acorex-core-translation.mjs +5 -0
  82. package/esm2022/translation/index.mjs +9 -0
  83. package/esm2022/translation/lib/translation-scope.resolver.mjs +11 -0
  84. package/esm2022/translation/lib/translation.config.mjs +20 -0
  85. package/esm2022/translation/lib/translation.loader.mjs +14 -0
  86. package/esm2022/translation/lib/translation.module.mjs +40 -0
  87. package/esm2022/translation/lib/translation.service.mjs +173 -0
  88. package/esm2022/translation/lib/translation.types.mjs +2 -0
  89. package/esm2022/translation/lib/translator.directive.mjs +28 -0
  90. package/esm2022/translation/lib/translator.pipe.mjs +23 -0
  91. package/esm2022/types/acorex-core-types.mjs +5 -0
  92. package/esm2022/types/index.mjs +2 -0
  93. package/esm2022/utils/acorex-core-utils.mjs +5 -0
  94. package/esm2022/utils/index.mjs +6 -0
  95. package/esm2022/utils/lib/auto-unsubscribe.mjs +36 -0
  96. package/esm2022/utils/lib/color-util.mjs +111 -0
  97. package/esm2022/utils/lib/drawing-util.mjs +35 -0
  98. package/esm2022/utils/lib/html-util.mjs +39 -0
  99. package/esm2022/utils/lib/string-util.mjs +19 -0
  100. package/esm2022/validation/acorex-core-validation.mjs +5 -0
  101. package/esm2022/validation/index.mjs +18 -0
  102. package/esm2022/validation/lib/rules/between-rule.mjs +31 -0
  103. package/esm2022/validation/lib/rules/callback-rule.mjs +29 -0
  104. package/esm2022/validation/lib/rules/equal-rule.mjs +26 -0
  105. package/esm2022/validation/lib/rules/greater-than.mjs +29 -0
  106. package/esm2022/validation/lib/rules/length-rule.mjs +26 -0
  107. package/esm2022/validation/lib/rules/less-than-rule.mjs +29 -0
  108. package/esm2022/validation/lib/rules/maxlength-rule.mjs +27 -0
  109. package/esm2022/validation/lib/rules/minlength-rule.mjs +26 -0
  110. package/esm2022/validation/lib/rules/regex-rule.mjs +49 -0
  111. package/esm2022/validation/lib/rules/required-rule.mjs +36 -0
  112. package/esm2022/validation/lib/validation.config.mjs +33 -0
  113. package/esm2022/validation/lib/validation.module.mjs +84 -0
  114. package/esm2022/validation/lib/validation.service.mjs +98 -0
  115. package/esm2022/validation/lib/validation.types.mjs +3 -0
  116. package/events/README.md +3 -0
  117. package/events/index.d.ts +2 -0
  118. package/{lib/services → events/lib}/event.service.d.ts +8 -0
  119. package/events/lib/event.type.d.ts +5 -0
  120. package/fesm2022/acorex-core-common.mjs +2631 -0
  121. package/fesm2022/acorex-core-common.mjs.map +1 -0
  122. package/fesm2022/acorex-core-config.mjs +39 -0
  123. package/fesm2022/acorex-core-config.mjs.map +1 -0
  124. package/fesm2022/acorex-core-date-time.mjs +1305 -0
  125. package/fesm2022/acorex-core-date-time.mjs.map +1 -0
  126. package/fesm2022/acorex-core-events.mjs +56 -0
  127. package/fesm2022/acorex-core-events.mjs.map +1 -0
  128. package/fesm2022/acorex-core-file.mjs +214 -0
  129. package/fesm2022/acorex-core-file.mjs.map +1 -0
  130. package/fesm2022/acorex-core-format.mjs +282 -0
  131. package/fesm2022/acorex-core-format.mjs.map +1 -0
  132. package/fesm2022/acorex-core-image.mjs +50 -0
  133. package/fesm2022/acorex-core-image.mjs.map +1 -0
  134. package/fesm2022/acorex-core-memorize.mjs +26 -0
  135. package/fesm2022/acorex-core-memorize.mjs.map +1 -0
  136. package/fesm2022/acorex-core-pipes.mjs +44 -0
  137. package/fesm2022/acorex-core-pipes.mjs.map +1 -0
  138. package/fesm2022/acorex-core-platform.mjs +232 -0
  139. package/fesm2022/acorex-core-platform.mjs.map +1 -0
  140. package/fesm2022/acorex-core-storage.mjs +285 -0
  141. package/fesm2022/acorex-core-storage.mjs.map +1 -0
  142. package/fesm2022/acorex-core-translation.mjs +293 -0
  143. package/fesm2022/acorex-core-translation.mjs.map +1 -0
  144. package/fesm2022/acorex-core-types.mjs +6 -0
  145. package/fesm2022/acorex-core-types.mjs.map +1 -0
  146. package/fesm2022/acorex-core-utils.mjs +247 -0
  147. package/fesm2022/acorex-core-utils.mjs.map +1 -0
  148. package/fesm2022/acorex-core-validation.mjs +488 -0
  149. package/fesm2022/acorex-core-validation.mjs.map +1 -0
  150. package/fesm2022/acorex-core.mjs +2 -2309
  151. package/fesm2022/acorex-core.mjs.map +1 -1
  152. package/file/README.md +3 -0
  153. package/file/index.d.ts +6 -0
  154. package/file/lib/file-download-ref.class.d.ts +6 -0
  155. package/file/lib/file-download-result.class.d.ts +8 -0
  156. package/file/lib/file-size-formatter.d.ts +16 -0
  157. package/file/lib/file-upload-ref.class.d.ts +5 -0
  158. package/file/lib/file.module.d.ts +7 -0
  159. package/file/lib/file.service.d.ts +18 -0
  160. package/format/README.md +3 -0
  161. package/format/index.d.ts +7 -0
  162. package/format/lib/format.config.d.ts +5 -0
  163. package/format/lib/format.module.d.ts +18 -0
  164. package/format/lib/format.pipe.d.ts +12 -0
  165. package/format/lib/format.service.d.ts +43 -0
  166. package/format/lib/format.types.d.ts +4 -0
  167. package/format/lib/formatters/number-formatter.d.ts +23 -0
  168. package/format/lib/formatters/string-formatter.d.ts +14 -0
  169. package/image/README.md +3 -0
  170. package/image/index.d.ts +1 -0
  171. package/image/lib/image.service.d.ts +11 -0
  172. package/index.d.ts +1 -43
  173. package/memorize/README.md +3 -0
  174. package/memorize/index.d.ts +1 -0
  175. package/memorize/lib/memorize.decorator.d.ts +1 -0
  176. package/package.json +98 -5
  177. package/pipes/README.md +3 -0
  178. package/pipes/index.d.ts +1 -0
  179. package/pipes/lib/safe/safe.pipe.d.ts +10 -0
  180. package/platform/README.md +3 -0
  181. package/platform/index.d.ts +1 -0
  182. package/{lib/platform → platform/lib}/platform.service.d.ts +14 -6
  183. package/storage/README.md +3 -0
  184. package/storage/cookie-storage.service.d.ts +104 -0
  185. package/storage/index.d.ts +4 -0
  186. package/storage/local-storage.service.d.ts +16 -0
  187. package/storage/session-storage.service.d.ts +10 -0
  188. package/storage/storage.interface.d.ts +14 -0
  189. package/translation/README.md +3 -0
  190. package/translation/index.d.ts +8 -0
  191. package/translation/lib/translation-scope.resolver.d.ts +2 -0
  192. package/translation/lib/translation.config.d.ts +14 -0
  193. package/translation/lib/translation.loader.d.ts +14 -0
  194. package/translation/lib/translation.module.d.ts +8 -0
  195. package/translation/lib/translation.service.d.ts +31 -0
  196. package/translation/lib/translation.types.d.ts +10 -0
  197. package/translation/lib/translator.directive.d.ts +12 -0
  198. package/translation/lib/translator.pipe.d.ts +12 -0
  199. package/types/README.md +3 -0
  200. package/types/index.d.ts +2 -0
  201. package/utils/README.md +3 -0
  202. package/utils/index.d.ts +5 -0
  203. package/utils/lib/auto-unsubscribe.d.ts +12 -0
  204. package/utils/lib/color-util.d.ts +24 -0
  205. package/utils/lib/drawing-util.d.ts +18 -0
  206. package/utils/lib/html-util.d.ts +5 -0
  207. package/utils/lib/string-util.d.ts +6 -0
  208. package/validation/README.md +3 -0
  209. package/validation/index.d.ts +14 -0
  210. package/validation/lib/rules/between-rule.d.ts +18 -0
  211. package/validation/lib/rules/callback-rule.d.ts +23 -0
  212. package/validation/lib/rules/equal-rule.d.ts +17 -0
  213. package/validation/lib/rules/greater-than.d.ts +17 -0
  214. package/validation/lib/rules/length-rule.d.ts +17 -0
  215. package/validation/lib/rules/less-than-rule.d.ts +17 -0
  216. package/validation/lib/rules/maxlength-rule.d.ts +16 -0
  217. package/validation/lib/rules/minlength-rule.d.ts +16 -0
  218. package/validation/lib/rules/regex-rule.d.ts +17 -0
  219. package/validation/lib/rules/required-rule.d.ts +16 -0
  220. package/validation/lib/validation.config.d.ts +15 -0
  221. package/validation/lib/validation.module.d.ts +17 -0
  222. package/validation/lib/validation.service.d.ts +35 -0
  223. package/validation/lib/validation.types.d.ts +21 -0
  224. package/esm2022/lib/classes/base-page.class.mjs +0 -26
  225. package/esm2022/lib/classes/color.class.mjs +0 -49
  226. package/esm2022/lib/classes/datetime.class.mjs +0 -323
  227. package/esm2022/lib/classes/menu.class.mjs +0 -35
  228. package/esm2022/lib/classes/navigator.class.mjs +0 -2
  229. package/esm2022/lib/classes/popup.class.mjs +0 -2
  230. package/esm2022/lib/classes/promise.class.mjs +0 -21
  231. package/esm2022/lib/classes/sectionlist.class.mjs +0 -2
  232. package/esm2022/lib/classes/select.class.mjs +0 -8
  233. package/esm2022/lib/core.module.mjs +0 -27
  234. package/esm2022/lib/error/error.class.mjs +0 -2
  235. package/esm2022/lib/error/error.module.mjs +0 -19
  236. package/esm2022/lib/error/error.service.mjs +0 -22
  237. package/esm2022/lib/events/keyboard.mjs +0 -2
  238. package/esm2022/lib/http/http-error.class.mjs +0 -2
  239. package/esm2022/lib/http/http-events.interceptor.mjs +0 -3
  240. package/esm2022/lib/http/http-request.class.mjs +0 -2
  241. package/esm2022/lib/http/http-result.class.mjs +0 -25
  242. package/esm2022/lib/http/http.module.mjs +0 -35
  243. package/esm2022/lib/http/http.service.mjs +0 -148
  244. package/esm2022/lib/locale/en.json +0 -255
  245. package/esm2022/lib/locale/fa.json +0 -245
  246. package/esm2022/lib/pipe/datetime.pipe.mjs +0 -25
  247. package/esm2022/lib/pipe/htmlToText.pipe.mjs +0 -25
  248. package/esm2022/lib/platform/index.mjs +0 -2
  249. package/esm2022/lib/platform/platform.service.mjs +0 -152
  250. package/esm2022/lib/services/config.mjs +0 -29
  251. package/esm2022/lib/services/event.service.mjs +0 -34
  252. package/esm2022/lib/services/navigator.service.mjs +0 -10
  253. package/esm2022/lib/services/storage.service.mjs +0 -16
  254. package/esm2022/lib/translator/translator.mjs +0 -26
  255. package/esm2022/lib/translator/translator.module.mjs +0 -25
  256. package/esm2022/lib/translator/translator.pipe.mjs +0 -24
  257. package/esm2022/lib/translator/translator.service.mjs +0 -21
  258. package/esm2022/lib/utils/array/array-util.mjs +0 -133
  259. package/esm2022/lib/utils/html/html-util.mjs +0 -200
  260. package/esm2022/lib/utils/html/html.module.mjs +0 -19
  261. package/esm2022/lib/utils/math/math-util.mjs +0 -6
  262. package/esm2022/lib/utils/object/object-util.mjs +0 -83
  263. package/esm2022/lib/utils/render/on-demand-preload-strategy.service.mjs +0 -21
  264. package/esm2022/lib/utils/render/render.service.mjs +0 -109
  265. package/esm2022/lib/utils/render/rendering.module.mjs +0 -35
  266. package/esm2022/lib/utils/scroll/scroll.directive.mjs +0 -56
  267. package/esm2022/lib/utils/scroll/scroll.module.mjs +0 -19
  268. package/esm2022/lib/utils/separator/separator.module.mjs +0 -19
  269. package/esm2022/lib/utils/separator/separator.pipe.mjs +0 -33
  270. package/lib/classes/base-page.class.d.ts +0 -13
  271. package/lib/classes/color.class.d.ts +0 -17
  272. package/lib/classes/datetime.class.d.ts +0 -63
  273. package/lib/classes/menu.class.d.ts +0 -34
  274. package/lib/classes/navigator.class.d.ts +0 -5
  275. package/lib/classes/popup.class.d.ts +0 -12
  276. package/lib/classes/promise.class.d.ts +0 -7
  277. package/lib/classes/sectionlist.class.d.ts +0 -8
  278. package/lib/classes/select.class.d.ts +0 -7
  279. package/lib/core.module.d.ts +0 -9
  280. package/lib/error/error.class.d.ts +0 -4
  281. package/lib/error/error.module.d.ts +0 -7
  282. package/lib/error/error.service.d.ts +0 -13
  283. package/lib/events/keyboard.d.ts +0 -2
  284. package/lib/http/http-error.class.d.ts +0 -7
  285. package/lib/http/http-events.interceptor.d.ts +0 -10
  286. package/lib/http/http-request.class.d.ts +0 -14
  287. package/lib/http/http-result.class.d.ts +0 -11
  288. package/lib/http/http.module.d.ts +0 -10
  289. package/lib/http/http.service.d.ts +0 -23
  290. package/lib/pipe/datetime.pipe.d.ts +0 -8
  291. package/lib/pipe/htmlToText.pipe.d.ts +0 -7
  292. package/lib/platform/index.d.ts +0 -1
  293. package/lib/services/config.d.ts +0 -9
  294. package/lib/services/navigator.service.d.ts +0 -8
  295. package/lib/services/storage.service.d.ts +0 -7
  296. package/lib/translator/translator.d.ts +0 -9
  297. package/lib/translator/translator.module.d.ts +0 -8
  298. package/lib/translator/translator.pipe.d.ts +0 -8
  299. package/lib/translator/translator.service.d.ts +0 -8
  300. package/lib/utils/array/array-util.d.ts +0 -6
  301. package/lib/utils/html/html-util.d.ts +0 -62
  302. package/lib/utils/html/html.module.d.ts +0 -8
  303. package/lib/utils/math/math-util.d.ts +0 -3
  304. package/lib/utils/object/object-util.d.ts +0 -7
  305. package/lib/utils/render/on-demand-preload-strategy.service.d.ts +0 -10
  306. package/lib/utils/render/render.service.d.ts +0 -18
  307. package/lib/utils/render/rendering.module.d.ts +0 -8
  308. package/lib/utils/scroll/scroll.directive.d.ts +0 -18
  309. package/lib/utils/scroll/scroll.module.d.ts +0 -8
  310. package/lib/utils/separator/separator.module.d.ts +0 -8
  311. package/lib/utils/separator/separator.pipe.d.ts +0 -8
@@ -1,323 +0,0 @@
1
- import moment from 'jalali-moment';
2
- import { AXConfig } from '../services/config';
3
- export class AXDateTime {
4
- type;
5
- static convert(value, type = AXConfig.get('dateTime.type') || 'gregorian') {
6
- let date;
7
- if (typeof value === 'string' || value instanceof String) {
8
- date = new AXDateTime(value, type);
9
- }
10
- else if (value instanceof Date) {
11
- date = new AXDateTime(value, type);
12
- }
13
- else if (value instanceof AXDateTime) {
14
- date = value;
15
- }
16
- return date;
17
- }
18
- _date;
19
- get date() {
20
- return this._date;
21
- }
22
- resolveUnit(unit) {
23
- return this.type === 'jalali' ? 'j' + unit : unit;
24
- }
25
- _moment;
26
- // private get _moment(): moment_.Moment {
27
- // const m = moment(this.date);
28
- // if (this.type === 'jalali') {
29
- // m.locale('fa');
30
- // }
31
- // return m;
32
- // }
33
- constructor(value = new Date(), type = AXConfig.get('dateTime.type') || 'gregorian') {
34
- this.type = type;
35
- if (value instanceof Date) {
36
- this._date = value;
37
- }
38
- else {
39
- this._date = new Date(value);
40
- }
41
- this._moment = moment(this.date);
42
- if (this.type === 'jalali') {
43
- this._moment.locale('fa');
44
- }
45
- }
46
- clone() {
47
- return new AXDateTime(this.date, this.type);
48
- }
49
- get dayInMonth() {
50
- return this._moment.date();
51
- }
52
- get dayOfYear() {
53
- return this._moment.dayOfYear();
54
- }
55
- get dayInWeek() {
56
- return this._moment.day();
57
- }
58
- get hour() {
59
- return this._moment.hour();
60
- }
61
- get minute() {
62
- return this._moment.minute();
63
- }
64
- get second() {
65
- return this._moment.second();
66
- }
67
- get year() {
68
- return this._moment.year();
69
- }
70
- get monthOfYear() {
71
- return this._moment.month();
72
- }
73
- get month() {
74
- return new AXCalendarMonth(this);
75
- }
76
- get firstDayOfWeek() {
77
- const a = moment(this.date);
78
- if (this.type === 'jalali') {
79
- this._moment.locale('fa');
80
- }
81
- return new AXDateTime(a.startOf('w').toDate(), this.type);
82
- }
83
- get endDayOfWeek() {
84
- const a = moment(this.date);
85
- if (this.type === 'jalali') {
86
- this._moment.locale('fa');
87
- }
88
- return new AXDateTime(moment(this.date).endOf('w').toDate(), this.type);
89
- }
90
- convertStringToJalali(date, format) {
91
- return moment(date).locale('fa').format('YYYY/M/D');
92
- }
93
- convertStringToGregorian(date, format) {
94
- return new Date(moment.from(date, 'fa', 'YYYY/MM/DD').format('YYYY/MM/DD'));
95
- }
96
- add(unit = 'day', amount) {
97
- return new AXDateTime(moment(this.date).add(amount, this.resolveUnit(unit)).toDate(), this.type);
98
- }
99
- addDay(amount) {
100
- return new AXDateTime(moment(this.date).add(amount, 'd').toDate(), this.type);
101
- }
102
- addMonth(amount) {
103
- return new AXDateTime(moment(this.date).add(amount, 'months').toDate(), this.type);
104
- }
105
- addHour(amount) {
106
- return new AXDateTime(moment(this.date).add(amount, 'hours').toDate(), this.type);
107
- }
108
- set(unit = 'day', value) {
109
- return new AXDateTime(this._moment.set(unit, value).toDate(), this.type);
110
- }
111
- duration(end, unit = 'days') {
112
- const duration = moment.duration(this._moment.diff(end._moment));
113
- return Math.round(duration.as(unit));
114
- }
115
- startOf(unit = 'day') {
116
- return new AXDateTime(moment(this.date).startOf(this.resolveUnit(unit)).toDate(), this.type);
117
- }
118
- endOf(unit = 'day') {
119
- return new AXDateTime(moment(this.date).endOf(this.resolveUnit(unit)).toDate(), this.type);
120
- }
121
- format(format = AXConfig.get('dateTime.shortDateFormat') || (this.type === 'gregorian' ? 'DD-MM-YYYY' : 'YYYY-MM-DD')) {
122
- if (format === 'P') {
123
- return this._moment.fromNow();
124
- }
125
- return this._moment.format(format);
126
- }
127
- toString() {
128
- return this.format();
129
- }
130
- equal(value, unit = 'day') {
131
- if (!value) {
132
- return false;
133
- }
134
- return this._moment.isSame(moment(value.date), this.resolveUnit(unit));
135
- }
136
- convertToJalaliDate(value) {
137
- const options = {
138
- numberingSystem: 'latn',
139
- year: 'numeric',
140
- month: '2-digit',
141
- day: '2-digit',
142
- hour: '2-digit',
143
- minute: '2-digit',
144
- second: '2-digit'
145
- };
146
- const jDate = new Date(value).toLocaleDateString('fa-IR', options);
147
- const item = {};
148
- item.year = jDate.slice(0, 4);
149
- item.month = jDate.slice(5, 7);
150
- item.day = jDate.slice(8, 10);
151
- item.hour = jDate.slice(13, 15);
152
- item.minutes = jDate.slice(16, 18);
153
- item.seconds = jDate.slice(19, 21);
154
- return item;
155
- }
156
- toJalaliString(value) {
157
- const date = this.convertToJalaliDate(value);
158
- let str = '';
159
- str = date.year + '-' + date.month + '-' + date.day + 'T' + date.hour + ':' + date.minutes + ':' + date.seconds;
160
- return str;
161
- }
162
- convertToGregorianDate(value) {
163
- // TODO: check this fucking type
164
- const options = {
165
- numberingSystem: 'latn',
166
- year: 'numeric',
167
- month: '2-digit',
168
- day: '2-digit',
169
- hour: '2-digit',
170
- minute: '2-digit',
171
- second: '2-digit'
172
- };
173
- const date = new Date(value).toLocaleString('en-us', options);
174
- const item = {};
175
- item.year = date.slice(6, 10);
176
- item.month = date.slice(0, 2);
177
- item.day = date.slice(3, 5);
178
- item.hour = date.slice(12, 14);
179
- item.minutes = date.slice(15, 17);
180
- item.seconds = date.slice(18, 20);
181
- return item;
182
- }
183
- toGregorianString(value) {
184
- const date = this.convertToGregorianDate(value);
185
- let str = '';
186
- str = date.year + '-' + date.month + '-' + date.day + 'T' + date.hour + ':' + date.minutes + ':' + date.seconds;
187
- return str;
188
- }
189
- compaireNew(value, unit = 'YMD', type = 'jalali') {
190
- const range = [0, 0];
191
- let str1;
192
- let str2;
193
- if (type === 'jalali') {
194
- str1 = this.toJalaliString(this.date);
195
- str2 = this.toJalaliString(value.date ? value.date : value);
196
- }
197
- else {
198
- str1 = this.toGregorianString(this.date);
199
- str2 = this.toGregorianString(value.date ? value.date : value);
200
- }
201
- switch (unit) {
202
- case 'YMDhms':
203
- range[0] = 0;
204
- range[1] = 19;
205
- break;
206
- case 'YMDhm':
207
- range[0] = 0;
208
- range[1] = 16;
209
- break;
210
- case 'YMDh':
211
- range[0] = 0;
212
- range[1] = 13;
213
- break;
214
- case 'YMD':
215
- range[0] = 0;
216
- range[1] = 10;
217
- break;
218
- case 'YM':
219
- range[0] = 0;
220
- range[1] = 7;
221
- break;
222
- case 'h':
223
- range[0] = 11;
224
- range[1] = 13;
225
- break;
226
- case 'm':
227
- range[0] = 14;
228
- range[1] = 16;
229
- break;
230
- case 's':
231
- range[0] = 17;
232
- range[1] = 19;
233
- break;
234
- case 'D':
235
- range[0] = 8;
236
- range[1] = 10;
237
- break;
238
- case 'M':
239
- range[0] = 5;
240
- range[1] = 7;
241
- break;
242
- case 'Y':
243
- range[0] = 0;
244
- range[1] = 4;
245
- break;
246
- }
247
- if (str1.slice(range[0], range[1]) === str2.slice(range[0], range[1])) {
248
- return 0;
249
- }
250
- else if (str1.slice(range[0], range[1]) > str2.slice(range[0], range[1])) {
251
- return 1;
252
- }
253
- else {
254
- return -1;
255
- }
256
- }
257
- compaire(value, unit = 'day') {
258
- if (this._moment.isSame(moment(value.date), this.resolveUnit(unit))) {
259
- return 0;
260
- }
261
- else if (this._moment.isAfter(moment(value.date), this.resolveUnit(unit))) {
262
- return 1;
263
- }
264
- else {
265
- return -1;
266
- }
267
- }
268
- toISOString() {
269
- return this._date.toISOString();
270
- }
271
- }
272
- export class AXCalendarMonth {
273
- _moment;
274
- _range;
275
- get range() {
276
- return this._range;
277
- }
278
- set range(v) {
279
- this._range = v;
280
- }
281
- constructor(date) {
282
- this._moment = moment(date.date);
283
- this.index = date.date.getMonth();
284
- this.name = this._moment.format('MMMM');
285
- this.range = new AXDateTimeRange(new AXDateTime(this._moment.startOf('month').toDate(), date.type), new AXDateTime(this._moment.endOf('month').toDate(), date.type));
286
- }
287
- index;
288
- name;
289
- }
290
- export class AXDateTimeRange {
291
- startTime;
292
- endTime;
293
- constructor(startTime, endTime) {
294
- this.startTime = startTime;
295
- this.endTime = endTime;
296
- }
297
- duration(unit = 'days') {
298
- const duration = moment.duration(moment(this.startTime.date).diff(moment(this.endTime.date)));
299
- return duration.as(unit);
300
- }
301
- enumurate(unit = 'day', type = AXConfig.get('dateTime.type') || 'jalali') {
302
- const result = [];
303
- for (let index = 0; this.startTime.add(unit, index).compaireNew(this.endTime, this.getViewCompaire(unit), type) <= 0; index++) {
304
- result.push(this.startTime.add(unit, index));
305
- }
306
- return result;
307
- }
308
- includes(value, unit = 'day', type = 'jalali') {
309
- return (value.compaireNew(this.startTime, this.getViewCompaire(unit), type) >= 0 &&
310
- value.compaireNew(this.endTime, this.getViewCompaire(unit), type) <= 0);
311
- }
312
- getViewCompaire(view) {
313
- switch (view) {
314
- case 'day':
315
- return 'YMD';
316
- case 'month':
317
- return 'YM';
318
- case 'year':
319
- return 'Y';
320
- }
321
- }
322
- }
323
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jbGFzc2VzL2RhdGV0aW1lLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFXOUMsTUFBTSxPQUFPLFVBQVU7SUFnQ2lDO0lBL0J0RCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQVUsRUFBRSxPQUF1QixRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFdBQVc7UUFDNUYsSUFBSSxJQUFnQixDQUFDO1FBQ3JCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssWUFBWSxNQUFNLEVBQUU7WUFDeEQsSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLEtBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM5QzthQUFNLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtZQUNoQyxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsS0FBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzVDO2FBQU0sSUFBSSxLQUFLLFlBQVksVUFBVSxFQUFFO1lBQ3RDLElBQUksR0FBRyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLEtBQUssQ0FBTztJQUNwQixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFjO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNwRCxDQUFDO0lBRU8sT0FBTyxDQUFnQjtJQUUvQiwwQ0FBMEM7SUFDMUMsbUNBQW1DO0lB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O2dCQUNSLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDZCxNQUFNO1lBRVIsS0FBSyxJQUFJO2dCQUNQLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNO1lBRVIsS0FBSyxHQUFHO2dCQUNOLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDZCxNQUFNO1lBRVIsS0FBSyxHQUFHO2dCQUNOLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDZCxNQUFNO1lBRVIsS0FBSyxHQUFHO2dCQUNOLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDZCxNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUNOLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDZCxNQUFNO1lBRVIsS0FBSyxHQUFHO2dCQUNOLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNO1lBRVIsS0FBSyxHQUFHO2dCQUNOLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNO1NBQ1Q7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMs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QkFDVCxPQUFPLEdBQUcsQ0FBQztTQUNkO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tICdqYWxhbGktbW9tZW50JztcbmltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnJztcbi8vIGNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbmV4cG9ydCB0eXBlIFRpbWVVbml0ID0gJ3NlY29uZCcgfCAnbWludXRlJyB8ICdtaW51dGVzJyB8ICdob3VyJyB8ICdob3VycycgfCAnZGF5JyB8ICdkYXlzJyB8ICdtb250aCcgfCAneWVhcicgfCAnd2Vlayc7XG5cbmV4cG9ydCB0eXBlIFRpbWVEdXJhdGlvbiA9ICdzZWNvbmRzJyB8ICdtaW51dGVzJyB8ICdob3VycycgfCAnZGF5cycgfCAnd2Vla3MnIHwgJ21vbnRoJyB8ICd5ZWFycyc7XG5cbmV4cG9ydCB0eXBlIFRpbWVTdGVwID0gJ1knIHwgJ00nIHwgJ0QnIHwgJ1lNJyB8ICdZTUQnIHwgJ1lNRGgnIHwgJ1lNRGhtJyB8ICdZTURobXMnIHwgJ2gnIHwgJ20nIHwgJ3MnO1xuXG5leHBvcnQgdHlwZSBBWENhbGVuZGFyVHlwZSA9ICdqYWxhbGknIHwgJ2dyZWdvcmlhbic7XG5cbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lIHtcbiAgc3RhdGljIGNvbnZlcnQodmFsdWU6IGFueSwgdHlwZTogQVhDYWxlbmRhclR5cGUgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLnR5cGUnKSB8fCAnZ3JlZ29yaWFuJyk6IEFYRGF0ZVRpbWUge1xuICAgIGxldCBkYXRlOiBBWERhdGVUaW1lO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICBkYXRlID0gbmV3IEFYRGF0ZVRpbWUodmFsdWUgYXMgc3RyaW5nLCB0eXBlKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgZGF0ZSA9IG5ldyBBWERhdGVUaW1lKHZhbHVlIGFzIERhdGUsIHR5cGUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBBWERhdGVUaW1lKSB7XG4gICAgICBkYXRlID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF0ZTogRGF0ZTtcbiAgZ2V0IGRhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGU7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVVbml0KHVuaXQ6IFRpbWVVbml0KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSAnamFsYWxpJyA/ICdqJyArIHVuaXQgOiB1bml0O1xuICB9XG5cbiAgcHJpdmF0ZSBfbW9tZW50OiBtb21lbnQuTW9tZW50O1xuXG4gIC8vIHByaXZhdGUgZ2V0IF9tb21lbnQoKTogbW9tZW50Xy5Nb21lbnQge1xuICAvLyAgICAgY29uc3QgbSA9IG1vbWVudCh0aGlzLmRhdGUpO1xuICAvLyAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2phbGFsaScpIHtcbiAgLy8gICAgICAgICBtLmxvY2FsZSgnZmEnKTtcbiAgLy8gICAgIH1cbiAgLy8gICAgIHJldHVybiBtO1xuICAvLyB9XG5cbiAgY29uc3RydWN0b3IodmFsdWU6IERhdGUgfCBzdHJpbmcgPSBuZXcgRGF0ZSgpLCBwdWJsaWMgdHlwZTogQVhDYWxlbmRhclR5cGUgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLnR5cGUnKSB8fCAnZ3JlZ29yaWFuJykge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHRoaXMuX2RhdGUgPSB2YWx1ZSBhcyBEYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kYXRlID0gbmV3IERhdGUodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLl9tb21lbnQgPSBtb21lbnQodGhpcy5kYXRlKTtcbiAgICBpZiAodGhpcy50eXBlID09PSAnamFsYWxpJykge1xuICAgICAgdGhpcy5fbW9tZW50LmxvY2FsZSgnZmEnKTtcbiAgICB9XG4gIH1cblxuICBjbG9uZSgpOiBBWERhdGVUaW1lIHtcbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUodGhpcy5kYXRlLCB0aGlzLnR5cGUpO1xuICB9XG5cbiAgZ2V0IGRheUluTW9udGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbW9tZW50LmRhdGUoKTtcbiAgfVxuXG4gIGdldCBkYXlPZlllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbW9tZW50LmRheU9mWWVhcigpO1xuICB9XG5cbiAgZ2V0IGRheUluV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tb21lbnQuZGF5KCk7XG4gIH1cblxuICBnZXQgaG91cigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tb21lbnQuaG91cigpO1xuICB9XG5cbiAgZ2V0IG1pbnV0ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tb21lbnQubWludXRlKCk7XG4gIH1cblxuICBnZXQgc2Vjb25kKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21vbWVudC5zZWNvbmQoKTtcbiAgfVxuXG4gIGdldCB5ZWFyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21vbWVudC55ZWFyKCk7XG4gIH1cblxuICBnZXQgbW9udGhPZlllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbW9tZW50Lm1vbnRoKCk7XG4gIH1cblxuICBnZXQgbW9udGgoKTogQVhDYWxlbmRhck1vbnRoIHtcbiAgICByZXR1cm4gbmV3IEFYQ2FsZW5kYXJNb250aCh0aGlzKTtcbiAgfVxuXG4gIGdldCBmaXJzdERheU9mV2VlaygpOiBBWERhdGVUaW1lIHtcbiAgICBjb25zdCBhID0gbW9tZW50KHRoaXMuZGF0ZSk7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2phbGFsaScpIHtcbiAgICAgIHRoaXMuX21vbWVudC5sb2NhbGUoJ2ZhJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShhLnN0YXJ0T2YoJ3cnKS50b0RhdGUoKSwgdGhpcy50eXBlKTtcbiAgfVxuXG4gIGdldCBlbmREYXlPZldlZWsoKTogQVhEYXRlVGltZSB7XG4gICAgY29uc3QgYSA9IG1vbWVudCh0aGlzLmRhdGUpO1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdqYWxhbGknKSB7XG4gICAgICB0aGlzLl9tb21lbnQubG9jYWxlKCdmYScpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobW9tZW50KHRoaXMuZGF0ZSkuZW5kT2YoJ3cnKS50b0RhdGUoKSwgdGhpcy50eXBlKTtcbiAgfVxuXG4gIGNvbnZlcnRTdHJpbmdUb0phbGFsaShkYXRlOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG1vbWVudChkYXRlKS5sb2NhbGUoJ2ZhJykuZm9ybWF0KCdZWVlZL00vRCcpO1xuICB9XG4gIGNvbnZlcnRTdHJpbmdUb0dyZWdvcmlhbihkYXRlOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKG1vbWVudC5mcm9tKGRhdGUsICdmYScsICdZWVlZL01NL0REJykuZm9ybWF0KCdZWVlZL01NL0REJykpO1xuICB9XG5cbiAgYWRkKHVuaXQ6IFRpbWVVbml0ID0gJ2RheScsIGFtb3VudDogbnVtYmVyKTogQVhEYXRlVGltZSB7XG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKG1vbWVudCh0aGlzLmRhdGUpLmFkZChhbW91bnQsIHRoaXMucmVzb2x2ZVVuaXQodW5pdCkpLnRvRGF0ZSgpLCB0aGlzLnR5cGUpO1xuICB9XG5cbiAgYWRkRGF5KGFtb3VudDogbnVtYmVyKTogQVhEYXRlVGltZSB7XG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKG1vbWVudCh0aGlzLmRhdGUpLmFkZChhbW91bnQsICdkJykudG9EYXRlKCksIHRoaXMudHlwZSk7XG4gIH1cblxuICBhZGRNb250aChhbW91bnQ6IG51bWJlcik6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShtb21lbnQodGhpcy5kYXRlKS5hZGQoYW1vdW50LCAnbW9udGhzJykudG9EYXRlKCksIHRoaXMudHlwZSk7XG4gIH1cbiAgYWRkSG91cihhbW91bnQ6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShtb21lbnQodGhpcy5kYXRlKS5hZGQoYW1vdW50LCAnaG91cnMnKS50b0RhdGUoKSwgdGhpcy50eXBlKTtcbiAgfVxuXG4gIHNldCh1bml0OiBUaW1lVW5pdCA9ICdkYXknLCB2YWx1ZTogbnVtYmVyKTogQVhEYXRlVGltZSB7XG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKHRoaXMuX21vbWVudC5zZXQodW5pdCwgdmFsdWUpLnRvRGF0ZSgpLCB0aGlzLnR5cGUpO1xuICB9XG5cbiAgZHVyYXRpb24oZW5kOiBBWERhdGVUaW1lLCB1bml0OiBUaW1lRHVyYXRpb24gPSAnZGF5cycpOiBudW1iZXIge1xuICAgIGNvbnN0IGR1cmF0aW9uID0gbW9tZW50LmR1cmF0aW9uKHRoaXMuX21vbWVudC5kaWZmKGVuZC5fbW9tZW50KSk7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoZHVyYXRpb24uYXModW5pdCkpO1xuICB9XG5cbiAgc3RhcnRPZih1bml0OiBUaW1lVW5pdCA9ICdkYXknKTogQVhEYXRlVGltZSB7XG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKG1vbWVudCh0aGlzLmRhdGUpLnN0YXJ0T2YodGhpcy5yZXNvbHZlVW5pdCh1bml0KSkudG9EYXRlKCksIHRoaXMudHlwZSk7XG4gIH1cblxuICBlbmRPZih1bml0OiBUaW1lVW5pdCA9ICdkYXknKTogQVhEYXRlVGltZSB7XG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKG1vbWVudCh0aGlzLmRhdGUpLmVuZE9mKHRoaXMucmVzb2x2ZVVuaXQodW5pdCkpLnRvRGF0ZSgpLCB0aGlzLnR5cGUpO1xuICB9XG5cbiAgZm9ybWF0KGZvcm1hdDogc3RyaW5nID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS5zaG9ydERhdGVGb3JtYXQnKSB8fCAodGhpcy50eXBlID09PSAnZ3JlZ29yaWFuJyA/ICdERC1NTS1ZWVlZJyA6ICdZWVlZLU1NLUREJykpOiBzdHJpbmcge1xuICAgIGlmIChmb3JtYXQgPT09ICdQJykge1xuICAgICAgcmV0dXJuIHRoaXMuX21vbWVudC5mcm9tTm93KCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9tb21lbnQuZm9ybWF0KGZvcm1hdCk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdCgpO1xuICB9XG5cbiAgZXF1YWwodmFsdWU6IEFYRGF0ZVRpbWUsIHVuaXQ6IFRpbWVVbml0ID0gJ2RheScpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9tb21lbnQuaXNTYW1lKG1vbWVudCh2YWx1ZS5kYXRlKSwgdGhpcy5yZXNvbHZlVW5pdCh1bml0KSk7XG4gIH1cblxuICBjb252ZXJ0VG9KYWxhbGlEYXRlKHZhbHVlKSB7XG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgICAgbnVtYmVyaW5nU3lzdGVtOiAnbGF0bicsXG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgIHNlY29uZDogJzItZGlnaXQnXG4gICAgfTtcbiAgICBjb25zdCBqRGF0ZSA9IG5ldyBEYXRlKHZhbHVlKS50b0xvY2FsZURhdGVTdHJpbmcoJ2ZhLUlSJywgb3B0aW9ucyk7XG4gICAgY29uc3QgaXRlbTogYW55ID0ge307XG4gICAgaXRlbS55ZWFyID0gakRhdGUuc2xpY2UoMCwgNCk7XG4gICAgaXRlbS5tb250aCA9IGpEYXRlLnNsaWNlKDUsIDcpO1xuICAgIGl0ZW0uZGF5ID0gakRhdGUuc2xpY2UoOCwgMTApO1xuICAgIGl0ZW0uaG91ciA9IGpEYXRlLnNsaWNlKDEzLCAxNSk7XG4gICAgaXRlbS5taW51dGVzID0gakRhdGUuc2xpY2UoMTYsIDE4KTtcbiAgICBpdGVtLnNlY29uZHMgPSBqRGF0ZS5zbGljZSgxOSwgMjEpO1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgdG9KYWxhbGlTdHJpbmcodmFsdWUpIHtcbiAgICBjb25zdCBkYXRlID0gdGhpcy5jb252ZXJ0VG9KYWxhbGlEYXRlKHZhbHVlKTtcbiAgICBsZXQgc3RyID0gJyc7XG4gICAgc3RyID0gZGF0ZS55ZWFyICsgJy0nICsgZGF0ZS5tb250aCArICctJyArIGRhdGUuZGF5ICsgJ1QnICsgZGF0ZS5ob3VyICsgJzonICsgZGF0ZS5taW51dGVzICsgJzonICsgZGF0ZS5zZWNvbmRzO1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICBjb252ZXJ0VG9HcmVnb3JpYW5EYXRlKHZhbHVlKSB7XG4gICAgLy8gVE9ETzogY2hlY2sgdGhpcyBmdWNraW5nIHR5cGVcbiAgICBjb25zdCBvcHRpb25zOiBhbnkgPSB7XG4gICAgICBudW1iZXJpbmdTeXN0ZW06ICdsYXRuJyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcbiAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgc2Vjb25kOiAnMi1kaWdpdCdcbiAgICB9O1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSkudG9Mb2NhbGVTdHJpbmcoJ2VuLXVzJywgb3B0aW9ucyk7XG4gICAgY29uc3QgaXRlbTogYW55ID0ge307XG4gICAgaXRlbS55ZWFyID0gZGF0ZS5zbGljZSg2LCAxMCk7XG4gICAgaXRlbS5tb250aCA9IGRhdGUuc2xpY2UoMCwgMik7XG4gICAgaXRlbS5kYXkgPSBkYXRlLnNsaWNlKDMsIDUpO1xuICAgIGl0ZW0uaG91ciA9IGRhdGUuc2xpY2UoMTIsIDE0KTtcbiAgICBpdGVtLm1pbnV0ZXMgPSBkYXRlLnNsaWNlKDE1LCAxNyk7XG4gICAgaXRlbS5zZWNvbmRzID0gZGF0ZS5zbGljZSgxOCwgMjApO1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgdG9HcmVnb3JpYW5TdHJpbmcodmFsdWUpIHtcbiAgICBjb25zdCBkYXRlID0gdGhpcy5jb252ZXJ0VG9HcmVnb3JpYW5EYXRlKHZhbHVlKTtcbiAgICBsZXQgc3RyID0gJyc7XG4gICAgc3RyID0gZGF0ZS55ZWFyICsgJy0nICsgZGF0ZS5tb250aCArICctJyArIGRhdGUuZGF5ICsgJ1QnICsgZGF0ZS5ob3VyICsgJzonICsgZGF0ZS5taW51dGVzICsgJzonICsgZGF0ZS5zZWNvbmRzO1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICBjb21wYWlyZU5ldyh2YWx1ZTogQVhEYXRlVGltZSwgdW5pdDogVGltZVN0ZXAgPSAnWU1EJywgdHlwZSA9ICdqYWxhbGknKSB7XG4gICAgY29uc3QgcmFuZ2UgPSBbMCwgMF07XG4gICAgbGV0IHN0cjE7XG4gICAgbGV0IHN0cjI7XG4gICAgaWYgKHR5cGUgPT09ICdqYWxhbGknKSB7XG4gICAgICBzdHIxID0gdGhpcy50b0phbGFsaVN0cmluZyh0aGlzLmRhdGUpO1xuICAgICAgc3RyMiA9IHRoaXMudG9KYWxhbGlTdHJpbmcodmFsdWUuZGF0ZSA/IHZhbHVlLmRhdGUgOiB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0cjEgPSB0aGlzLnRvR3JlZ29yaWFuU3RyaW5nKHRoaXMuZGF0ZSk7XG4gICAgICBzdHIyID0gdGhpcy50b0dyZWdvcmlhblN0cmluZyh2YWx1ZS5kYXRlID8gdmFsdWUuZGF0ZSA6IHZhbHVlKTtcbiAgICB9XG4gICAgc3dpdGNoICh1bml0KSB7XG4gICAgICBjYXNlICdZTURobXMnOlxuICAgICAgICByYW5nZVswXSA9IDA7XG4gICAgICAgIHJhbmdlWzFdID0gMTk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnWU1EaG0nOlxuICAgICAgICByYW5nZVswXSA9IDA7XG4gICAgICAgIHJhbmdlWzFdID0gMTY7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnWU1EaCc6XG4gICAgICAgIHJhbmdlWzBdID0gMDtcbiAgICAgICAgcmFuZ2VbMV0gPSAxMztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdZTUQnOlxuICAgICAgICByYW5nZVswXSA9IDA7XG4gICAgICAgIHJhbmdlWzFdID0gMTA7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdZTSc6XG4gICAgICAgIHJhbmdlWzBdID0gMDtcbiAgICAgICAgcmFuZ2VbMV0gPSA3O1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnaCc6XG4gICAgICAgIHJhbmdlWzBdID0gMTE7XG4gICAgICAgIHJhbmdlWzFdID0gMTM7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdtJzpcbiAgICAgICAgcmFuZ2VbMF0gPSAxNDtcbiAgICAgICAgcmFuZ2VbMV0gPSAxNjtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3MnOlxuICAgICAgICByYW5nZVswXSA9IDE3O1xuICAgICAgICByYW5nZVsxXSA9IDE5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0QnOlxuICAgICAgICByYW5nZVswXSA9IDg7XG4gICAgICAgIHJhbmdlWzFdID0gMTA7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdNJzpcbiAgICAgICAgcmFuZ2VbMF0gPSA1O1xuICAgICAgICByYW5nZVsxXSA9IDc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdZJzpcbiAgICAgICAgcmFuZ2VbMF0gPSAwO1xuICAgICAgICByYW5nZVsxXSA9IDQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChzdHIxLnNsaWNlKHJhbmdlWzBdLCByYW5nZVsxXSkgPT09IHN0cjIuc2xpY2UocmFuZ2VbMF0sIHJhbmdlWzFdKSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIGlmIChzdHIxLnNsaWNlKHJhbmdlWzBdLCByYW5nZVsxXSkgPiBzdHIyLnNsaWNlKHJhbmdlWzBdLCByYW5nZVsxXSkpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICB9XG5cbiAgY29tcGFpcmUodmFsdWU6IEFYRGF0ZVRpbWUsIHVuaXQ6IFRpbWVVbml0ID0gJ2RheScpIHtcbiAgICBpZiAodGhpcy5fbW9tZW50LmlzU2FtZShtb21lbnQodmFsdWUuZGF0ZSksIHRoaXMucmVzb2x2ZVVuaXQodW5pdCkpKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX21vbWVudC5pc0FmdGVyKG1vbWVudCh2YWx1ZS5kYXRlKSwgdGhpcy5yZXNvbHZlVW5pdCh1bml0KSkpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICB9XG5cbiAgdG9JU09TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGUudG9JU09TdHJpbmcoKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQVhDYWxlbmRhck1vbnRoIHtcbiAgcHJpdmF0ZSBfbW9tZW50OiBtb21lbnQuTW9tZW50O1xuXG4gIHByaXZhdGUgX3JhbmdlOiBBWERhdGVUaW1lUmFuZ2U7XG4gIHB1YmxpYyBnZXQgcmFuZ2UoKTogQVhEYXRlVGltZVJhbmdlIHtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2U7XG4gIH1cbiAgcHVibGljIHNldCByYW5nZSh2OiBBWERhdGVUaW1lUmFuZ2UpIHtcbiAgICB0aGlzLl9yYW5nZSA9IHY7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihkYXRlOiBBWERhdGVUaW1lKSB7XG4gICAgdGhpcy5fbW9tZW50ID0gbW9tZW50KGRhdGUuZGF0ZSk7XG4gICAgdGhpcy5pbmRleCA9IGRhdGUuZGF0ZS5nZXRNb250aCgpO1xuICAgIHRoaXMubmFtZSA9IHRoaXMuX21vbWVudC5mb3JtYXQoJ01NTU0nKTtcbiAgICB0aGlzLnJhbmdlID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShcbiAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMuX21vbWVudC5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpLCBkYXRlLnR5cGUpLFxuICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5fbW9tZW50LmVuZE9mKCdtb250aCcpLnRvRGF0ZSgpLCBkYXRlLnR5cGUpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5kZXg6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUmFuZ2Uge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3RhcnRUaW1lOiBBWERhdGVUaW1lLCBwdWJsaWMgZW5kVGltZTogQVhEYXRlVGltZSkgeyB9XG5cbiAgZHVyYXRpb24odW5pdDogVGltZUR1cmF0aW9uID0gJ2RheXMnKTogbnVtYmVyIHtcbiAgICBjb25zdCBkdXJhdGlvbiA9IG1vbWVudC5kdXJhdGlvbihtb21lbnQodGhpcy5zdGFydFRpbWUuZGF0ZSkuZGlmZihtb21lbnQodGhpcy5lbmRUaW1lLmRhdGUpKSk7XG4gICAgcmV0dXJuIGR1cmF0aW9uLmFzKHVuaXQpO1xuICB9XG5cbiAgZW51bXVyYXRlKHVuaXQ6IFRpbWVVbml0ID0gJ2RheScsIHR5cGU6IEFYQ2FsZW5kYXJUeXBlID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS50eXBlJykgfHwgJ2phbGFsaScpOiBBWERhdGVUaW1lW10ge1xuICAgIGNvbnN0IHJlc3VsdDogQVhEYXRlVGltZVtdID0gW107XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyB0aGlzLnN0YXJ0VGltZS5hZGQodW5pdCwgaW5kZXgpLmNvbXBhaXJlTmV3KHRoaXMuZW5kVGltZSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodW5pdCksIHR5cGUpIDw9IDA7IGluZGV4KyspIHtcbiAgICAgIHJlc3VsdC5wdXNoKHRoaXMuc3RhcnRUaW1lLmFkZCh1bml0LCBpbmRleCkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgaW5jbHVkZXModmFsdWU6IEFYRGF0ZVRpbWUsIHVuaXQ6IFRpbWVVbml0ID0gJ2RheScsIHR5cGUgPSAnamFsYWxpJyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB2YWx1ZS5jb21wYWlyZU5ldyh0aGlzLnN0YXJ0VGltZSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodW5pdCksIHR5cGUpID49IDAgJiZcbiAgICAgIHZhbHVlLmNvbXBhaXJlTmV3KHRoaXMuZW5kVGltZSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodW5pdCksIHR5cGUpIDw9IDBcbiAgICApO1xuICB9XG5cbiAgZ2V0Vmlld0NvbXBhaXJlKHZpZXcpIHtcbiAgICBzd2l0Y2ggKHZpZXcpIHtcbiAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgIHJldHVybiAnWU1EJztcbiAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgcmV0dXJuICdZTSc7XG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgcmV0dXJuICdZJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,35 +0,0 @@
1
- export class AXBaseMenuItem {
2
- uid = new Date().getTime().toString();
3
- id;
4
- name;
5
- text;
6
- tooltip;
7
- tooltipPlacement;
8
- icon;
9
- visible = true;
10
- disable = false;
11
- selected = false;
12
- groupName;
13
- data;
14
- style = 'ax light';
15
- orderIndex = 0;
16
- endIcon;
17
- startIcon;
18
- onClick;
19
- }
20
- export class AXMenuItem extends AXBaseMenuItem {
21
- items;
22
- parentId;
23
- divider = false;
24
- }
25
- export class AXButtonItem extends AXBaseMenuItem {
26
- dropdown = false;
27
- submitBehavior = false;
28
- cancelBehavior = false;
29
- }
30
- export class AXCheckItem {
31
- text;
32
- value;
33
- selected;
34
- }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NsYXNzZXMvbWVudS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sY0FBYztJQUN6QixHQUFHLEdBQVksSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQyxFQUFFLENBQVU7SUFDWixJQUFJLENBQVU7SUFDZCxJQUFJLENBQVU7SUFDZCxPQUFPLENBQVU7SUFDakIsZ0JBQWdCLENBQXVDO0lBQ3ZELElBQUksQ0FBVTtJQUNkLE9BQU8sR0FBYSxJQUFJLENBQUM7SUFDekIsT0FBTyxHQUFhLEtBQUssQ0FBQztJQUMxQixRQUFRLEdBQWEsS0FBSyxDQUFDO0lBQzNCLFNBQVMsQ0FBVTtJQUNuQixJQUFJLENBQU87SUFDWCxLQUFLLEdBQVksVUFBVSxDQUFDO0lBQzVCLFVBQVUsR0FBWSxDQUFDLENBQUM7SUFDeEIsT0FBTyxDQUFVO0lBQ2pCLFNBQVMsQ0FBVTtJQUNuQixPQUFPLENBQXFCO0NBQzdCO0FBRUQsTUFBTSxPQUFPLFVBQVcsU0FBUSxjQUFjO0lBQzVDLEtBQUssQ0FBZ0I7SUFDckIsUUFBUSxDQUFVO0lBQ2xCLE9BQU8sR0FBYSxLQUFLLENBQUM7Q0FDM0I7QUFFRCxNQUFNLE9BQU8sWUFBYSxTQUFRLGNBQWM7SUFDOUMsUUFBUSxHQUFhLEtBQUssQ0FBQztJQUMzQixjQUFjLEdBQWEsS0FBSyxDQUFDO0lBQ2pDLGNBQWMsR0FBYSxLQUFLLENBQUM7Q0FDbEM7QUFFRCxNQUFNLE9BQU8sV0FBVztJQUN0QixJQUFJLENBQVU7SUFDZCxLQUFLLENBQU87SUFDWixRQUFRLENBQVc7Q0FDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQVhCYXNlTWVudUl0ZW0ge1xuICB1aWQ/OiBzdHJpbmcgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygpO1xuICBpZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgdGV4dD86IHN0cmluZztcbiAgdG9vbHRpcD86IHN0cmluZztcbiAgdG9vbHRpcFBsYWNlbWVudD86ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnO1xuICBpY29uPzogc3RyaW5nO1xuICB2aXNpYmxlPzogYm9vbGVhbiA9IHRydWU7XG4gIGRpc2FibGU/OiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBncm91cE5hbWU/OiBzdHJpbmc7XG4gIGRhdGE/OiBhbnk7XG4gIHN0eWxlPzogc3RyaW5nID0gJ2F4IGxpZ2h0JztcbiAgb3JkZXJJbmRleD86IG51bWJlciA9IDA7XG4gIGVuZEljb24/OiBzdHJpbmc7XG4gIHN0YXJ0SWNvbj86IHN0cmluZztcbiAgb25DbGljaz86IChlPzogYW55KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgQVhNZW51SXRlbSBleHRlbmRzIEFYQmFzZU1lbnVJdGVtIHtcbiAgaXRlbXM/OiBBWE1lbnVJdGVtW107XG4gIHBhcmVudElkPzogc3RyaW5nO1xuICBkaXZpZGVyPzogYm9vbGVhbiA9IGZhbHNlO1xufVxuXG5leHBvcnQgY2xhc3MgQVhCdXR0b25JdGVtIGV4dGVuZHMgQVhCYXNlTWVudUl0ZW0ge1xuICBkcm9wZG93bj86IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3VibWl0QmVoYXZpb3I/OiBib29sZWFuID0gZmFsc2U7XG4gIGNhbmNlbEJlaGF2aW9yPzogYm9vbGVhbiA9IGZhbHNlO1xufVxuXG5leHBvcnQgY2xhc3MgQVhDaGVja0l0ZW0ge1xuICB0ZXh0Pzogc3RyaW5nO1xuICB2YWx1ZT86IGFueTtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2xhc3Nlcy9uYXZpZ2F0b3IuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQVhOYXZpZ2F0b3JQYXJhbSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRhdGE/OiBhbnk7XG59Il19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jbGFzc2VzL3BvcHVwLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENsb3NpbmdFdmVudEFyZ3Mge1xuICAgIGNhbmNlbD86IGJvb2xlYW47XG4gICAgZGF0YT86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG9zaW5nQWN0aW9uIHtcbiAgICBjYW5jZWw/OiBib29sZWFuO1xuICAgIGRhdGE/OiBhbnk7XG4gICAgcmVzb2x2ZTogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG9zZWRFdmVudEFyZ3Mge1xuICAgIGRhdGE/OiBhbnk7XG59XG4iXX0=
@@ -1,21 +0,0 @@
1
- export class AXPromise {
2
- _executor;
3
- thenAction;
4
- static resolve(value) {
5
- const r = new AXPromise(z => {
6
- z(value);
7
- }).then(() => { });
8
- return r;
9
- }
10
- constructor(executor) {
11
- this._executor = executor;
12
- setTimeout(() => {
13
- this._executor(this.thenAction);
14
- }, 50);
15
- }
16
- then(action) {
17
- this.thenAction = action;
18
- return this;
19
- }
20
- }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NsYXNzZXMvcHJvbWlzZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sU0FBUztJQUVWLFNBQVMsQ0FBbUM7SUFDNUMsVUFBVSxDQUFtQjtJQUVyQyxNQUFNLENBQUMsT0FBTyxDQUFJLEtBQVE7UUFDdEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUksQ0FBQyxDQUFDLEVBQUU7WUFDM0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25CLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksUUFBMEM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFHRCxJQUFJLENBQUMsTUFBd0I7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEFYUHJvbWlzZTxUPiB7XG5cbiAgICBwcml2YXRlIF9leGVjdXRvcjogKHRoZW4/OiAoZT86IFQpID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSB0aGVuQWN0aW9uPzogKGU/OiBUKSA9PiB2b2lkO1xuXG4gICAgc3RhdGljIHJlc29sdmU8VD4odmFsdWU6IFQpOiBBWFByb21pc2U8VD4ge1xuICAgICAgICBjb25zdCByID0gbmV3IEFYUHJvbWlzZTxUPih6ID0+IHtcbiAgICAgICAgICAgIHoodmFsdWUpO1xuICAgICAgICB9KS50aGVuKCgpID0+IHsgfSk7XG4gICAgICAgIHJldHVybiByO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGV4ZWN1dG9yOiAodGhlbj86IChlPzogVCkgPT4gdm9pZCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLl9leGVjdXRvciA9IGV4ZWN1dG9yO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2V4ZWN1dG9yKHRoaXMudGhlbkFjdGlvbik7XG4gICAgICAgIH0sIDUwKTtcbiAgICB9XG5cblxuICAgIHRoZW4oYWN0aW9uPzogKGU/OiBUKSA9PiB2b2lkKTogQVhQcm9taXNlPFQ+IHtcbiAgICAgICAgdGhpcy50aGVuQWN0aW9uID0gYWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbmxpc3QuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jbGFzc2VzL3NlY3Rpb25saXN0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFYU2VsZWN0aW9uTGlzdCB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgdmFsdWU6IGJvb2xlYW47XG4gICAgZGlzYWJsZT86IGJvb2xlYW47XG4gICAgcmVhZG9ubHk/OiBib29sZWFuO1xufVxuIl19
@@ -1,8 +0,0 @@
1
- export class AXSelectItem {
2
- id;
3
- name;
4
- text;
5
- visible;
6
- disable;
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2xhc3Nlcy9zZWxlY3QuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFlBQVk7SUFDdkIsRUFBRSxDQUFTO0lBQ1gsSUFBSSxDQUFVO0lBQ2QsSUFBSSxDQUFTO0lBQ2IsT0FBTyxDQUFXO0lBQ2xCLE9BQU8sQ0FBVztDQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBBWFNlbGVjdEl0ZW0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICBkaXNhYmxlPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,27 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { AXDateTimePipe } from './pipe/datetime.pipe';
3
- import { AXEventService } from './services/event.service';
4
- import { AXStorageService } from './services/storage.service';
5
- import { AXScrollModule } from './utils/scroll/scroll.module';
6
- import { AXTranslatorModule } from './translator/translator.module';
7
- import * as i0 from "@angular/core";
8
- const PIPES = [AXDateTimePipe];
9
- const MODULES = [AXScrollModule, AXTranslatorModule];
10
- const SERVICES = [AXEventService,
11
- AXStorageService
12
- ];
13
- export class AXCoreModule {
14
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AXCoreModule, declarations: [AXDateTimePipe], imports: [AXScrollModule, AXTranslatorModule], exports: [AXDateTimePipe] });
16
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXCoreModule, providers: [...SERVICES], imports: [MODULES] });
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXCoreModule, decorators: [{
19
- type: NgModule,
20
- args: [{
21
- declarations: [...PIPES],
22
- imports: [...MODULES],
23
- exports: [...PIPES],
24
- providers: [...SERVICES]
25
- }]
26
- }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVwRSxNQUFNLEtBQUssR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQy9CLE1BQU0sT0FBTyxHQUFHLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFDckQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxjQUFjO0lBQzlCLGdCQUFnQjtDQUNqQixDQUFDO0FBU0YsTUFBTSxPQUFPLFlBQVk7d0dBQVosWUFBWTt5R0FBWixZQUFZLGlCQWJWLGNBQWMsYUFDWixjQUFjLEVBQUUsa0JBQWtCLGFBRHBDLGNBQWM7eUdBYWhCLFlBQVksYUFGWixDQUFDLEdBQUcsUUFBUSxDQUFDLFlBRlgsT0FBTzs7NEZBSVQsWUFBWTtrQkFOeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQztvQkFDeEIsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO29CQUNuQixTQUFTLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEYXRlVGltZVBpcGUgfSBmcm9tICcuL3BpcGUvZGF0ZXRpbWUucGlwZSc7XG5pbXBvcnQgeyBBWEV2ZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBWFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhTY3JvbGxNb2R1bGUgfSBmcm9tICcuL3V0aWxzL3Njcm9sbC9zY3JvbGwubW9kdWxlJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvck1vZHVsZSB9IGZyb20gJy4vdHJhbnNsYXRvci90cmFuc2xhdG9yLm1vZHVsZSc7XG5cbmNvbnN0IFBJUEVTID0gW0FYRGF0ZVRpbWVQaXBlXTtcbmNvbnN0IE1PRFVMRVMgPSBbQVhTY3JvbGxNb2R1bGUsIEFYVHJhbnNsYXRvck1vZHVsZV07XG5jb25zdCBTRVJWSUNFUyA9IFtBWEV2ZW50U2VydmljZSxcbiAgQVhTdG9yYWdlU2VydmljZVxuXTtcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsuLi5QSVBFU10sXG4gIGltcG9ydHM6IFsuLi5NT0RVTEVTXSxcbiAgZXhwb3J0czogWy4uLlBJUEVTXSxcbiAgcHJvdmlkZXJzOiBbLi4uU0VSVklDRVNdXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29yZU1vZHVsZSB7IH1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9lcnJvci9lcnJvci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBWEVycm9yIHtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgY29kZTogc3RyaW5nO1xufVxuIl19
@@ -1,19 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { AXErrorService } from './error.service';
4
- import * as i0 from "@angular/core";
5
- export class AXErrorModule {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXErrorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AXErrorModule, imports: [CommonModule] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXErrorModule, providers: [AXErrorService], imports: [CommonModule] });
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXErrorModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- declarations: [],
14
- imports: [CommonModule],
15
- exports: [],
16
- providers: [AXErrorService],
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZXJyb3IvZXJyb3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFRakQsTUFBTSxPQUFPLGFBQWE7d0dBQWIsYUFBYTt5R0FBYixhQUFhLFlBSlosWUFBWTt5R0FJYixhQUFhLGFBRlgsQ0FBQyxjQUFjLENBQUMsWUFGakIsWUFBWTs7NEZBSWIsYUFBYTtrQkFOekIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsRUFBRTtvQkFDWCxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBWEVycm9yU2VydmljZSB9IGZyb20gJy4vZXJyb3Iuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbXSxcbiAgICBwcm92aWRlcnM6IFtBWEVycm9yU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRXJyb3JNb2R1bGUge1xuXG59XG4iXX0=
@@ -1,22 +0,0 @@
1
- import { InjectionToken, Injectable, Injector } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export const AX_ERROR_DISPLAY_INTERCEPTOR = new InjectionToken('ax.error');
4
- export class AXErrorService {
5
- injector;
6
- constructor(injector) {
7
- this.injector = injector;
8
- }
9
- handle(message) {
10
- const instance = this.injector.get(AX_ERROR_DISPLAY_INTERCEPTOR);
11
- if (instance) {
12
- instance.show(message);
13
- }
14
- }
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXErrorService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
16
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXErrorService, providedIn: 'root' });
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXErrorService, decorators: [{
19
- type: Injectable,
20
- args: [{ providedIn: 'root' }]
21
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2Vycm9yL2Vycm9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVyRSxNQUFNLENBQUMsTUFBTyw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FBNEIsVUFBVSxDQUFDLENBQUM7QUFPdkcsTUFBTSxPQUFPLGNBQWM7SUFFSDtJQUFwQixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBRXRDLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBZTtRQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2pFLElBQUksUUFBUSxFQUFFO1lBQ1YsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7d0dBWFEsY0FBYzs0R0FBZCxjQUFjLGNBREYsTUFBTTs7NEZBQ2xCLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCAgQVhfRVJST1JfRElTUExBWV9JTlRFUkNFUFRPUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWEVycm9yRGlzcGxheUludGVyY2VwdG9yPignYXguZXJyb3InKTtcblxuZXhwb3J0IGludGVyZmFjZSBBWEVycm9yRGlzcGxheUludGVyY2VwdG9yIHtcbiAgICBzaG93KG1lc3NhZ2U6IHN0cmluZyk7XG59XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEFYRXJyb3JTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG5cbiAgICB9XG5cbiAgICBoYW5kbGUobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhfRVJST1JfRElTUExBWV9JTlRFUkNFUFRPUik7XG4gICAgICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgaW5zdGFuY2Uuc2hvdyhtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9ldmVudHMva2V5Ym9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgQVhLZXlib2FyZEV2ZW50IGV4dGVuZHMgS2V5Ym9hcmRFdmVudCB7XG5cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2h0dHAvaHR0cC1lcnJvci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJSHR0cEVycm9yIHtcbiAgICBtZXNzYWdlPzogc3RyaW5nO1xuICAgIHN0YXR1cz86IG51bWJlcjtcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIGhhbmRsZWQ6IGJvb2xlYW47XG4gICAgZXJyb3I6IGFueSB8IG51bGxcbn0iXX0=
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const AX_HTTP_EVENT_INTERCEPTOR = new InjectionToken('ax.http.events');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1ldmVudHMuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9odHRwL2h0dHAtZXZlbnRzLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQXlCLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSHR0cEVycm9yIH0gZnJvbSAnLi9odHRwLWVycm9yLmNsYXNzJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEh0dHBSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IEFYX0hUVFBfRVZFTlRfSU5URVJDRVBUT1IgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhIdHRwRXZlbnRJbnRlcmNlcHRvcj4oJ2F4Lmh0dHAuZXZlbnRzJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhIdHRwRXZlbnRJbnRlcmNlcHRvciB7XG4gICAgYmVnaW4ocmVxdWVzdDogQVhIdHRwUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPEFYSHR0cFJlcXVlc3RPcHRpb25zPjtcbiAgICBzdWNjZXNzKHJlcXVlc3Q6IEFYSHR0cFJlcXVlc3RPcHRpb25zLCByZXN1bHQ6IGFueSk6IFByb21pc2U8YW55PjtcbiAgICBjb21wbGV0ZShyZXF1ZXN0OiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyk7XG4gICAgZXJyb3IocmVxdWVzdDogQVhIdHRwUmVxdWVzdE9wdGlvbnMsIGVycm9yOiBJSHR0cEVycm9yKTtcbn1cblxuXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvaHR0cC9odHRwLXJlcXVlc3QuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQVhIdHRwUmVxdWVzdE9wdGlvbnMge1xuICAgIHVybD86IGFueSxcbiAgICBwYXJhbXM/OiB7XG4gICAgICAgIFtwYXJhbTogc3RyaW5nXTogYW55O1xuICAgIH0sXG4gICAgYm9keT86IHtcbiAgICAgICAgW3BhcmFtOiBzdHJpbmddOiBhbnk7XG4gICAgfSxcbiAgICBoZWFkZXJzPzoge1xuICAgICAgICBbaGVhZGVyOiBzdHJpbmddOiBhbnk7XG4gICAgfSxcbiAgICBtZXRob2Q/OiAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnIHwgJ2RlbGV0ZSc7XG4gICAgcmVzcG9uc2VUeXBlPzogYW55O1xufSJdfQ==
@@ -1,25 +0,0 @@
1
- export class HttpResult {
2
- _executor;
3
- constructor(executor) {
4
- this._executor = executor;
5
- setTimeout(() => {
6
- this._executor(this.resultAction, this.errorAction, this.completeAction);
7
- }, 50);
8
- }
9
- resultAction;
10
- errorAction;
11
- completeAction;
12
- result(action) {
13
- this.resultAction = action;
14
- return this;
15
- }
16
- error(action) {
17
- this.errorAction = action;
18
- return this;
19
- }
20
- complete(action) {
21
- this.completeAction = action;
22
- return this;
23
- }
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXN1bHQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9odHRwL2h0dHAtcmVzdWx0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxVQUFVO0lBQ1gsU0FBUyxDQUEyRjtJQUM1RyxZQUNJLFFBSVM7UUFFVCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTyxZQUFZLENBQWtCO0lBQzlCLFdBQVcsQ0FBMkI7SUFDdEMsY0FBYyxDQUFhO0lBRW5DLE1BQU0sQ0FBQyxNQUF1QjtRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQWdDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxRQUFRLENBQUMsTUFBa0I7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUh0dHBFcnJvciB9IGZyb20gJy4vaHR0cC1lcnJvci5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBIdHRwUmVzdWx0PFQ+IHtcbiAgICBwcml2YXRlIF9leGVjdXRvcjogKHJlc3VsdDogKGU/OiBUKSA9PiB2b2lkLCBlcnJvcjogKGU/OiBJSHR0cEVycm9yKSA9PiB2b2lkLCBjb21wbGV0ZTogKCkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZXhlY3V0b3I6IChcbiAgICAgICAgICAgIHJlc3VsdDogKGU/OiBUKSA9PiB2b2lkLFxuICAgICAgICAgICAgZXJyb3I6IChlPzogSUh0dHBFcnJvcikgPT4gdm9pZCxcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB2b2lkXG4gICAgICAgICkgPT4gdm9pZFxuICAgICkge1xuICAgICAgICB0aGlzLl9leGVjdXRvciA9IGV4ZWN1dG9yO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2V4ZWN1dG9yKHRoaXMucmVzdWx0QWN0aW9uLCB0aGlzLmVycm9yQWN0aW9uLCB0aGlzLmNvbXBsZXRlQWN0aW9uKTtcbiAgICAgICAgfSwgNTApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzdWx0QWN0aW9uOiAoZT86IFQpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBlcnJvckFjdGlvbjogKGU/OiBJSHR0cEVycm9yKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgY29tcGxldGVBY3Rpb246ICgpID0+IHZvaWQ7XG5cbiAgICByZXN1bHQoYWN0aW9uOiAoZT86IFQpID0+IHZvaWQpOiBIdHRwUmVzdWx0PFQ+IHsgXG4gICAgICAgIHRoaXMucmVzdWx0QWN0aW9uID0gYWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZXJyb3IoYWN0aW9uOiAoZT86IElIdHRwRXJyb3IpID0+IHZvaWQpOiBIdHRwUmVzdWx0PFQ+IHtcbiAgICAgICAgdGhpcy5lcnJvckFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGNvbXBsZXRlKGFjdGlvbjogKCkgPT4gdm9pZCk6IEh0dHBSZXN1bHQ8VD4ge1xuICAgICAgICB0aGlzLmNvbXBsZXRlQWN0aW9uID0gYWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59Il19
@@ -1,35 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { HttpClientModule } from '@angular/common/http';
4
- import { AXHttpService } from './http.service';
5
- import * as i0 from "@angular/core";
6
- export class AXHttpModule {
7
- static forRoot() {
8
- return {
9
- ngModule: AXHttpModule,
10
- providers: [AXHttpService]
11
- };
12
- }
13
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXHttpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AXHttpModule, imports: [CommonModule,
15
- HttpClientModule], exports: [HttpClientModule] });
16
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXHttpModule, providers: [
17
- AXHttpService
18
- ], imports: [CommonModule,
19
- HttpClientModule, HttpClientModule] });
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXHttpModule, decorators: [{
22
- type: NgModule,
23
- args: [{
24
- declarations: [],
25
- imports: [
26
- CommonModule,
27
- HttpClientModule
28
- ],
29
- exports: [HttpClientModule],
30
- providers: [
31
- AXHttpService
32
- ]
33
- }]
34
- }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9odHRwL2h0dHAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBYy9DLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQztTQUMzQixDQUFDO0lBQ0osQ0FBQzt3R0FOVSxZQUFZO3lHQUFaLFlBQVksWUFSckIsWUFBWTtZQUNaLGdCQUFnQixhQUVSLGdCQUFnQjt5R0FLZixZQUFZLGFBSlo7WUFDVCxhQUFhO1NBQ2QsWUFOQyxZQUFZO1lBQ1osZ0JBQWdCLEVBRVIsZ0JBQWdCOzs0RkFLZixZQUFZO2tCQVh4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixTQUFTLEVBQUU7d0JBQ1QsYUFBYTtxQkFDZDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFYSHR0cFNlcnZpY2UgfSBmcm9tICcuL2h0dHAuc2VydmljZSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQVhIdHRwU2VydmljZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFYSHR0cE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhIdHRwTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBWEh0dHBNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtBWEh0dHBTZXJ2aWNlXVxuICAgIH07XG4gIH1cbn0iXX0=