@firestitch/common 8.0.10

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 (304) hide show
  1. package/app/directives/autofocus.directive.d.ts +6 -0
  2. package/app/directives/prevent-default.directive.d.ts +3 -0
  3. package/app/directives/stop-propagation.directive.d.ts +3 -0
  4. package/app/fs-common.module.d.ts +4 -0
  5. package/app/pipes/bytes.pipe.d.ts +4 -0
  6. package/app/pipes/currency.pipe.d.ts +6 -0
  7. package/app/pipes/number.pipe.d.ts +4 -0
  8. package/app/pipes/ordinal-number.pipe.d.ts +4 -0
  9. package/app/pipes/truncate.pipe.d.ts +5 -0
  10. package/app/pipes/util.pipe.d.ts +15 -0
  11. package/app/services/array.service.d.ts +58 -0
  12. package/app/services/math.service.d.ts +6 -0
  13. package/app/services/util.service.d.ts +86 -0
  14. package/app/services/vaildate.service.d.ts +13 -0
  15. package/bundles/firestitch-common.umd.js +3548 -0
  16. package/bundles/firestitch-common.umd.js.map +1 -0
  17. package/bundles/firestitch-common.umd.min.js +16 -0
  18. package/bundles/firestitch-common.umd.min.js.map +1 -0
  19. package/esm2015/app/directives/autofocus.directive.js +42 -0
  20. package/esm2015/app/directives/prevent-default.directive.js +24 -0
  21. package/esm2015/app/directives/stop-propagation.directive.js +24 -0
  22. package/esm2015/app/fs-common.module.js +72 -0
  23. package/esm2015/app/pipes/bytes.pipe.js +22 -0
  24. package/esm2015/app/pipes/currency.pipe.js +38 -0
  25. package/esm2015/app/pipes/number.pipe.js +23 -0
  26. package/esm2015/app/pipes/ordinal-number.pipe.js +22 -0
  27. package/esm2015/app/pipes/truncate.pipe.js +28 -0
  28. package/esm2015/app/pipes/util.pipe.js +71 -0
  29. package/esm2015/app/services/array.service.js +352 -0
  30. package/esm2015/app/services/math.service.js +29 -0
  31. package/esm2015/app/services/util.service.js +430 -0
  32. package/esm2015/app/services/vaildate.service.js +48 -0
  33. package/esm2015/firestitch-common.js +19 -0
  34. package/esm2015/libs/array/compare/compare.js +19 -0
  35. package/esm2015/libs/array/compare/index.js +7 -0
  36. package/esm2015/libs/array/filter/filter.js +53 -0
  37. package/esm2015/libs/array/filter/index.js +7 -0
  38. package/esm2015/libs/array/find/find.js +17 -0
  39. package/esm2015/libs/array/find/index.js +7 -0
  40. package/esm2015/libs/array/inArray/inArray.js +22 -0
  41. package/esm2015/libs/array/inArray/index.js +7 -0
  42. package/esm2015/libs/array/index/index.js +24 -0
  43. package/esm2015/libs/array/index.js +19 -0
  44. package/esm2015/libs/array/indexOf/index.js +7 -0
  45. package/esm2015/libs/array/indexOf/indexOf.js +31 -0
  46. package/esm2015/libs/array/keyExists/index.js +7 -0
  47. package/esm2015/libs/array/keyExists/keyExists.js +14 -0
  48. package/esm2015/libs/array/ksort/index.js +7 -0
  49. package/esm2015/libs/array/ksort/ksort.js +22 -0
  50. package/esm2015/libs/array/list/index.js +7 -0
  51. package/esm2015/libs/array/list/list.js +30 -0
  52. package/esm2015/libs/array/nameValue/index.js +7 -0
  53. package/esm2015/libs/array/nameValue/nameValue.js +52 -0
  54. package/esm2015/libs/array/remove/index.js +7 -0
  55. package/esm2015/libs/array/remove/remove.js +20 -0
  56. package/esm2015/libs/array/rsort/index.js +7 -0
  57. package/esm2015/libs/array/rsort/rsort.js +15 -0
  58. package/esm2015/libs/array/sort/index.js +7 -0
  59. package/esm2015/libs/array/sort/sort.js +44 -0
  60. package/esm2015/libs/format/acronym/acronym.js +34 -0
  61. package/esm2015/libs/format/acronym/index.js +7 -0
  62. package/esm2015/libs/format/bytes/bytes.js +23 -0
  63. package/esm2015/libs/format/bytes/index.js +7 -0
  64. package/esm2015/libs/format/currency/currency.js +20 -0
  65. package/esm2015/libs/format/currency/index.js +7 -0
  66. package/esm2015/libs/format/index.js +11 -0
  67. package/esm2015/libs/format/number/index.js +7 -0
  68. package/esm2015/libs/format/number/number.js +14 -0
  69. package/esm2015/libs/format/truncate/index.js +7 -0
  70. package/esm2015/libs/format/truncate/truncate.js +25 -0
  71. package/esm2015/libs/index.js +11 -0
  72. package/esm2015/libs/rxjs/delayedRetry.js +58 -0
  73. package/esm2015/libs/util/boolean/boolean.js +14 -0
  74. package/esm2015/libs/util/boolean/index.js +7 -0
  75. package/esm2015/libs/util/debounce/debounce.js +40 -0
  76. package/esm2015/libs/util/debounce/index.js +7 -0
  77. package/esm2015/libs/util/get-normalized-path/get-normalized-path.js +16 -0
  78. package/esm2015/libs/util/get-normalized-path/index.js +7 -0
  79. package/esm2015/libs/util/guid/guid.js +36 -0
  80. package/esm2015/libs/util/guid/index.js +7 -0
  81. package/esm2015/libs/util/index.js +23 -0
  82. package/esm2015/libs/util/isClass/index.js +7 -0
  83. package/esm2015/libs/util/isClass/isClass.js +28 -0
  84. package/esm2015/libs/util/isEmpty/index.js +7 -0
  85. package/esm2015/libs/util/isEmpty/isEmpty.js +23 -0
  86. package/esm2015/libs/util/isNumeric/index.js +7 -0
  87. package/esm2015/libs/util/isNumeric/isNumeric.js +16 -0
  88. package/esm2015/libs/util/keys/index.js +7 -0
  89. package/esm2015/libs/util/keys/keys.js +80 -0
  90. package/esm2015/libs/util/length/index.js +7 -0
  91. package/esm2015/libs/util/length/length.js +20 -0
  92. package/esm2015/libs/util/ordinal-number/ordinal-number.js +20 -0
  93. package/esm2015/libs/util/queue/index.js +8 -0
  94. package/esm2015/libs/util/queue/operation.js +32 -0
  95. package/esm2015/libs/util/queue/queue.enum.js +12 -0
  96. package/esm2015/libs/util/queue/queue.js +291 -0
  97. package/esm2015/libs/util/remove-query-params/index.js +7 -0
  98. package/esm2015/libs/util/remove-query-params/remove-query-params.js +13 -0
  99. package/esm2015/libs/util/resolve/index.js +7 -0
  100. package/esm2015/libs/util/resolve/resolve.js +33 -0
  101. package/esm2015/libs/util/stringify/index.js +7 -0
  102. package/esm2015/libs/util/stringify/stringify.js +13 -0
  103. package/esm2015/libs/util/throttle/index.js +7 -0
  104. package/esm2015/libs/util/throttle/throttle.js +30 -0
  105. package/esm2015/libs/util/uuid/index.js +7 -0
  106. package/esm2015/libs/util/uuid/uuid.js +13 -0
  107. package/esm2015/libs/util/value/index.js +7 -0
  108. package/esm2015/libs/util/value/value.js +20 -0
  109. package/esm2015/libs/validate/email/email.js +13 -0
  110. package/esm2015/libs/validate/email/index.js +7 -0
  111. package/esm2015/libs/validate/index.js +9 -0
  112. package/esm2015/libs/validate/phone/index.js +7 -0
  113. package/esm2015/libs/validate/phone/phone.js +15 -0
  114. package/esm2015/libs/validate/url/index.js +7 -0
  115. package/esm2015/libs/validate/url/url.js +23 -0
  116. package/esm2015/public_api.js +17 -0
  117. package/esm5/app/directives/autofocus.directive.js +45 -0
  118. package/esm5/app/directives/prevent-default.directive.js +32 -0
  119. package/esm5/app/directives/stop-propagation.directive.js +32 -0
  120. package/esm5/app/fs-common.module.js +79 -0
  121. package/esm5/app/pipes/bytes.pipe.js +30 -0
  122. package/esm5/app/pipes/currency.pipe.js +43 -0
  123. package/esm5/app/pipes/number.pipe.js +32 -0
  124. package/esm5/app/pipes/ordinal-number.pipe.js +30 -0
  125. package/esm5/app/pipes/truncate.pipe.js +38 -0
  126. package/esm5/app/pipes/util.pipe.js +100 -0
  127. package/esm5/app/services/array.service.js +491 -0
  128. package/esm5/app/services/math.service.js +42 -0
  129. package/esm5/app/services/util.service.js +608 -0
  130. package/esm5/app/services/vaildate.service.js +63 -0
  131. package/esm5/firestitch-common.js +19 -0
  132. package/esm5/libs/array/compare/compare.js +19 -0
  133. package/esm5/libs/array/compare/index.js +7 -0
  134. package/esm5/libs/array/filter/filter.js +53 -0
  135. package/esm5/libs/array/filter/index.js +7 -0
  136. package/esm5/libs/array/find/find.js +17 -0
  137. package/esm5/libs/array/find/index.js +7 -0
  138. package/esm5/libs/array/inArray/inArray.js +22 -0
  139. package/esm5/libs/array/inArray/index.js +7 -0
  140. package/esm5/libs/array/index/index.js +24 -0
  141. package/esm5/libs/array/index.js +19 -0
  142. package/esm5/libs/array/indexOf/index.js +7 -0
  143. package/esm5/libs/array/indexOf/indexOf.js +31 -0
  144. package/esm5/libs/array/keyExists/index.js +7 -0
  145. package/esm5/libs/array/keyExists/keyExists.js +14 -0
  146. package/esm5/libs/array/ksort/index.js +7 -0
  147. package/esm5/libs/array/ksort/ksort.js +22 -0
  148. package/esm5/libs/array/list/index.js +7 -0
  149. package/esm5/libs/array/list/list.js +31 -0
  150. package/esm5/libs/array/nameValue/index.js +7 -0
  151. package/esm5/libs/array/nameValue/nameValue.js +52 -0
  152. package/esm5/libs/array/remove/index.js +7 -0
  153. package/esm5/libs/array/remove/remove.js +20 -0
  154. package/esm5/libs/array/rsort/index.js +7 -0
  155. package/esm5/libs/array/rsort/rsort.js +15 -0
  156. package/esm5/libs/array/sort/index.js +7 -0
  157. package/esm5/libs/array/sort/sort.js +45 -0
  158. package/esm5/libs/format/acronym/acronym.js +35 -0
  159. package/esm5/libs/format/acronym/index.js +7 -0
  160. package/esm5/libs/format/bytes/bytes.js +23 -0
  161. package/esm5/libs/format/bytes/index.js +7 -0
  162. package/esm5/libs/format/currency/currency.js +23 -0
  163. package/esm5/libs/format/currency/index.js +7 -0
  164. package/esm5/libs/format/index.js +11 -0
  165. package/esm5/libs/format/number/index.js +7 -0
  166. package/esm5/libs/format/number/number.js +14 -0
  167. package/esm5/libs/format/truncate/index.js +7 -0
  168. package/esm5/libs/format/truncate/truncate.js +28 -0
  169. package/esm5/libs/index.js +11 -0
  170. package/esm5/libs/rxjs/delayedRetry.js +65 -0
  171. package/esm5/libs/util/boolean/boolean.js +14 -0
  172. package/esm5/libs/util/boolean/index.js +7 -0
  173. package/esm5/libs/util/debounce/debounce.js +40 -0
  174. package/esm5/libs/util/debounce/index.js +7 -0
  175. package/esm5/libs/util/get-normalized-path/get-normalized-path.js +16 -0
  176. package/esm5/libs/util/get-normalized-path/index.js +7 -0
  177. package/esm5/libs/util/guid/guid.js +37 -0
  178. package/esm5/libs/util/guid/index.js +7 -0
  179. package/esm5/libs/util/index.js +23 -0
  180. package/esm5/libs/util/isClass/index.js +7 -0
  181. package/esm5/libs/util/isClass/isClass.js +28 -0
  182. package/esm5/libs/util/isEmpty/index.js +7 -0
  183. package/esm5/libs/util/isEmpty/isEmpty.js +23 -0
  184. package/esm5/libs/util/isNumeric/index.js +7 -0
  185. package/esm5/libs/util/isNumeric/isNumeric.js +16 -0
  186. package/esm5/libs/util/keys/index.js +7 -0
  187. package/esm5/libs/util/keys/keys.js +80 -0
  188. package/esm5/libs/util/length/index.js +7 -0
  189. package/esm5/libs/util/length/length.js +20 -0
  190. package/esm5/libs/util/ordinal-number/ordinal-number.js +22 -0
  191. package/esm5/libs/util/queue/index.js +8 -0
  192. package/esm5/libs/util/queue/operation.js +30 -0
  193. package/esm5/libs/util/queue/queue.enum.js +12 -0
  194. package/esm5/libs/util/queue/queue.js +367 -0
  195. package/esm5/libs/util/remove-query-params/index.js +7 -0
  196. package/esm5/libs/util/remove-query-params/remove-query-params.js +13 -0
  197. package/esm5/libs/util/resolve/index.js +7 -0
  198. package/esm5/libs/util/resolve/resolve.js +34 -0
  199. package/esm5/libs/util/stringify/index.js +7 -0
  200. package/esm5/libs/util/stringify/stringify.js +13 -0
  201. package/esm5/libs/util/throttle/index.js +7 -0
  202. package/esm5/libs/util/throttle/throttle.js +30 -0
  203. package/esm5/libs/util/uuid/index.js +7 -0
  204. package/esm5/libs/util/uuid/uuid.js +13 -0
  205. package/esm5/libs/util/value/index.js +7 -0
  206. package/esm5/libs/util/value/value.js +20 -0
  207. package/esm5/libs/validate/email/email.js +13 -0
  208. package/esm5/libs/validate/email/index.js +7 -0
  209. package/esm5/libs/validate/index.js +9 -0
  210. package/esm5/libs/validate/phone/index.js +7 -0
  211. package/esm5/libs/validate/phone/phone.js +15 -0
  212. package/esm5/libs/validate/url/index.js +7 -0
  213. package/esm5/libs/validate/url/url.js +23 -0
  214. package/esm5/public_api.js +17 -0
  215. package/fesm2015/firestitch-common.js +2769 -0
  216. package/fesm2015/firestitch-common.js.map +1 -0
  217. package/fesm5/firestitch-common.js +3284 -0
  218. package/fesm5/firestitch-common.js.map +1 -0
  219. package/firestitch-common.d.ts +13 -0
  220. package/firestitch-common.metadata.json +1 -0
  221. package/libs/array/compare/compare.d.ts +1 -0
  222. package/libs/array/compare/index.d.ts +1 -0
  223. package/libs/array/filter/filter.d.ts +1 -0
  224. package/libs/array/filter/index.d.ts +1 -0
  225. package/libs/array/find/find.d.ts +1 -0
  226. package/libs/array/find/index.d.ts +1 -0
  227. package/libs/array/inArray/inArray.d.ts +1 -0
  228. package/libs/array/inArray/index.d.ts +1 -0
  229. package/libs/array/index/index.d.ts +1 -0
  230. package/libs/array/index.d.ts +13 -0
  231. package/libs/array/indexOf/index.d.ts +1 -0
  232. package/libs/array/indexOf/indexOf.d.ts +1 -0
  233. package/libs/array/keyExists/index.d.ts +1 -0
  234. package/libs/array/keyExists/keyExists.d.ts +1 -0
  235. package/libs/array/ksort/index.d.ts +1 -0
  236. package/libs/array/ksort/ksort.d.ts +1 -0
  237. package/libs/array/list/index.d.ts +1 -0
  238. package/libs/array/list/list.d.ts +1 -0
  239. package/libs/array/nameValue/index.d.ts +1 -0
  240. package/libs/array/nameValue/nameValue.d.ts +1 -0
  241. package/libs/array/remove/index.d.ts +1 -0
  242. package/libs/array/remove/remove.d.ts +1 -0
  243. package/libs/array/rsort/index.d.ts +1 -0
  244. package/libs/array/rsort/rsort.d.ts +1 -0
  245. package/libs/array/sort/index.d.ts +1 -0
  246. package/libs/array/sort/sort.d.ts +1 -0
  247. package/libs/format/acronym/acronym.d.ts +1 -0
  248. package/libs/format/acronym/index.d.ts +1 -0
  249. package/libs/format/bytes/bytes.d.ts +1 -0
  250. package/libs/format/bytes/index.d.ts +1 -0
  251. package/libs/format/currency/currency.d.ts +1 -0
  252. package/libs/format/currency/index.d.ts +1 -0
  253. package/libs/format/index.d.ts +5 -0
  254. package/libs/format/number/index.d.ts +1 -0
  255. package/libs/format/number/number.d.ts +1 -0
  256. package/libs/format/truncate/index.d.ts +1 -0
  257. package/libs/format/truncate/truncate.d.ts +1 -0
  258. package/libs/index.d.ts +5 -0
  259. package/libs/rxjs/delayedRetry.d.ts +2 -0
  260. package/libs/util/boolean/boolean.d.ts +1 -0
  261. package/libs/util/boolean/index.d.ts +1 -0
  262. package/libs/util/debounce/debounce.d.ts +1 -0
  263. package/libs/util/debounce/index.d.ts +1 -0
  264. package/libs/util/get-normalized-path/get-normalized-path.d.ts +2 -0
  265. package/libs/util/get-normalized-path/index.d.ts +1 -0
  266. package/libs/util/guid/guid.d.ts +1 -0
  267. package/libs/util/guid/index.d.ts +1 -0
  268. package/libs/util/index.d.ts +17 -0
  269. package/libs/util/isClass/index.d.ts +1 -0
  270. package/libs/util/isClass/isClass.d.ts +1 -0
  271. package/libs/util/isEmpty/index.d.ts +1 -0
  272. package/libs/util/isEmpty/isEmpty.d.ts +1 -0
  273. package/libs/util/isNumeric/index.d.ts +1 -0
  274. package/libs/util/isNumeric/isNumeric.d.ts +1 -0
  275. package/libs/util/keys/index.d.ts +1 -0
  276. package/libs/util/keys/keys.d.ts +37 -0
  277. package/libs/util/length/index.d.ts +1 -0
  278. package/libs/util/length/length.d.ts +1 -0
  279. package/libs/util/ordinal-number/ordinal-number.d.ts +1 -0
  280. package/libs/util/queue/index.d.ts +2 -0
  281. package/libs/util/queue/operation.d.ts +7 -0
  282. package/libs/util/queue/queue.d.ts +32 -0
  283. package/libs/util/queue/queue.enum.d.ts +4 -0
  284. package/libs/util/remove-query-params/index.d.ts +1 -0
  285. package/libs/util/remove-query-params/remove-query-params.d.ts +1 -0
  286. package/libs/util/resolve/index.d.ts +1 -0
  287. package/libs/util/resolve/resolve.d.ts +1 -0
  288. package/libs/util/stringify/index.d.ts +1 -0
  289. package/libs/util/stringify/stringify.d.ts +1 -0
  290. package/libs/util/throttle/index.d.ts +1 -0
  291. package/libs/util/throttle/throttle.d.ts +1 -0
  292. package/libs/util/uuid/index.d.ts +1 -0
  293. package/libs/util/uuid/uuid.d.ts +1 -0
  294. package/libs/util/value/index.d.ts +1 -0
  295. package/libs/util/value/value.d.ts +1 -0
  296. package/libs/validate/email/email.d.ts +1 -0
  297. package/libs/validate/email/index.d.ts +1 -0
  298. package/libs/validate/index.d.ts +3 -0
  299. package/libs/validate/phone/index.d.ts +1 -0
  300. package/libs/validate/phone/phone.d.ts +1 -0
  301. package/libs/validate/url/index.d.ts +1 -0
  302. package/libs/validate/url/url.d.ts +7 -0
  303. package/package.json +33 -0
  304. package/public_api.d.ts +6 -0
@@ -0,0 +1,491 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: app/services/array.service.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { Injectable } from '@angular/core';
7
+ var FsArray = /** @class */ (function () {
8
+ function FsArray() {
9
+ }
10
+ /**
11
+ * @deprecated use import { nameValue } from @firestitch/common/array; instead
12
+ */
13
+ /**
14
+ * @deprecated use import { nameValue } from \@firestitch/common/array; instead
15
+ * @param {?} array
16
+ * @param {?} name
17
+ * @param {?} value
18
+ * @return {?}
19
+ */
20
+ FsArray.prototype.nameValue = /**
21
+ * @deprecated use import { nameValue } from \@firestitch/common/array; instead
22
+ * @param {?} array
23
+ * @param {?} name
24
+ * @param {?} value
25
+ * @return {?}
26
+ */
27
+ function (array, name, value) {
28
+ console.warn('@deprecated use import { nameValue } from @firestitch/common/array; instead');
29
+ /** @type {?} */
30
+ var list = [];
31
+ if (name || value) {
32
+ /** @type {?} */
33
+ var nameFn_1 = typeof name === 'function' ? name : (/**
34
+ * @param {?} item
35
+ * @return {?}
36
+ */
37
+ function (item) { return item[name]; });
38
+ /** @type {?} */
39
+ var valueFn_1 = typeof value === 'function' ? value : (/**
40
+ * @param {?} item
41
+ * @return {?}
42
+ */
43
+ function (item) { return item[value]; });
44
+ array.forEach((/**
45
+ * @param {?} item
46
+ * @return {?}
47
+ */
48
+ function (item) {
49
+ list.push({ name: nameFn_1(item), value: valueFn_1(item) });
50
+ }));
51
+ }
52
+ else {
53
+ array.forEach((/**
54
+ * @param {?} name
55
+ * @param {?} value
56
+ * @return {?}
57
+ */
58
+ function (name, value) {
59
+ list.push({ name: name, value: value });
60
+ }));
61
+ }
62
+ return list;
63
+ };
64
+ /**
65
+ * @deprecated use import { remove } from @firestitch/common/array; instead
66
+ */
67
+ /**
68
+ * @deprecated use import { remove } from \@firestitch/common/array; instead
69
+ * @param {?} array
70
+ * @param {?} query
71
+ * @return {?}
72
+ */
73
+ FsArray.prototype.remove = /**
74
+ * @deprecated use import { remove } from \@firestitch/common/array; instead
75
+ * @param {?} array
76
+ * @param {?} query
77
+ * @return {?}
78
+ */
79
+ function (array, query) {
80
+ console.warn('@deprecated use import { remove } from @firestitch/common/array; instead');
81
+ /** @type {?} */
82
+ var idx = this.indexOf(array, query);
83
+ if (idx >= 0) {
84
+ return array.splice(idx, 1);
85
+ }
86
+ return idx;
87
+ };
88
+ /**
89
+ * @deprecated use import { indexOf } from @firestitch/common/array; instead
90
+ */
91
+ /**
92
+ * @deprecated use import { indexOf } from \@firestitch/common/array; instead
93
+ * @param {?} array
94
+ * @param {?} query
95
+ * @return {?}
96
+ */
97
+ FsArray.prototype.indexOf = /**
98
+ * @deprecated use import { indexOf } from \@firestitch/common/array; instead
99
+ * @param {?} array
100
+ * @param {?} query
101
+ * @return {?}
102
+ */
103
+ function (array, query) {
104
+ var _this = this;
105
+ console.warn('@deprecated use import { indexOf } from @firestitch/common/array; instead');
106
+ if (typeof query !== 'function') {
107
+ /** @type {?} */
108
+ var queryObj_1 = query;
109
+ query = (/**
110
+ * @param {?} item
111
+ * @return {?}
112
+ */
113
+ function (item) {
114
+ return _this.compare(queryObj_1, item);
115
+ });
116
+ }
117
+ for (var i = 0, len = array.length; i < len; i++) {
118
+ if (query(array[i])) {
119
+ return i;
120
+ }
121
+ }
122
+ return -1;
123
+ };
124
+ /**
125
+ * @deprecated use import { compare } from @firestitch/common/array; instead
126
+ */
127
+ /**
128
+ * @deprecated use import { compare } from \@firestitch/common/array; instead
129
+ * @param {?} query
130
+ * @param {?} item
131
+ * @return {?}
132
+ */
133
+ FsArray.prototype.compare = /**
134
+ * @deprecated use import { compare } from \@firestitch/common/array; instead
135
+ * @param {?} query
136
+ * @param {?} item
137
+ * @return {?}
138
+ */
139
+ function (query, item) {
140
+ console.warn('@deprecated use import { compare } from @firestitch/common/array; instead');
141
+ /** @type {?} */
142
+ var value = true;
143
+ for (var key in query) {
144
+ value = value && item[key] == query[key];
145
+ }
146
+ return value;
147
+ };
148
+ /**
149
+ * @deprecated use import { filter } from @firestitch/common/array; instead
150
+ */
151
+ /**
152
+ * @deprecated use import { filter } from \@firestitch/common/array; instead
153
+ * @param {?} array
154
+ * @param {?} query
155
+ * @return {?}
156
+ */
157
+ FsArray.prototype.filter = /**
158
+ * @deprecated use import { filter } from \@firestitch/common/array; instead
159
+ * @param {?} array
160
+ * @param {?} query
161
+ * @return {?}
162
+ */
163
+ function (array, query) {
164
+ var _this = this;
165
+ console.warn('@deprecated use import { filter } from @firestitch/common/array; instead');
166
+ if (typeof query !== 'function') {
167
+ /** @type {?} */
168
+ var queryObj_2 = query;
169
+ query = (/**
170
+ * @param {?} item
171
+ * @return {?}
172
+ */
173
+ function (item) {
174
+ return _this.compare(queryObj_2, item);
175
+ });
176
+ }
177
+ /** @type {?} */
178
+ var isarray = Array.isArray(array);
179
+ /** @type {?} */
180
+ var list = isarray ? [] : {};
181
+ if (isarray)
182
+ array.forEach((/**
183
+ * @param {?} item
184
+ * @param {?} idx
185
+ * @return {?}
186
+ */
187
+ function (item, idx) {
188
+ if (query(item)) {
189
+ list.push(item);
190
+ }
191
+ }));
192
+ else
193
+ Object.keys(array).forEach((/**
194
+ * @param {?} key
195
+ * @return {?}
196
+ */
197
+ function (key) {
198
+ if (query(array[key])) {
199
+ list[key] = array[key];
200
+ }
201
+ }));
202
+ return list;
203
+ };
204
+ /**
205
+ * @deprecated use import { index } from @firestitch/common/array; instead
206
+ */
207
+ /**
208
+ * @deprecated use import { index } from \@firestitch/common/array; instead
209
+ * @param {?} array
210
+ * @param {?} property
211
+ * @return {?}
212
+ */
213
+ FsArray.prototype.index = /**
214
+ * @deprecated use import { index } from \@firestitch/common/array; instead
215
+ * @param {?} array
216
+ * @param {?} property
217
+ * @return {?}
218
+ */
219
+ function (array, property) {
220
+ console.warn('@deprecated use import { index } from @firestitch/common/array; instead');
221
+ /** @type {?} */
222
+ var list = {};
223
+ array.forEach((/**
224
+ * @param {?} item
225
+ * @param {?} idx
226
+ * @return {?}
227
+ */
228
+ function (item, idx) {
229
+ list[item[property]] = item;
230
+ }));
231
+ return list;
232
+ };
233
+ /**
234
+ * @deprecated use import { sort } from @firestitch/common/array; instead
235
+ */
236
+ /**
237
+ * @deprecated use import { sort } from \@firestitch/common/array; instead
238
+ * @param {?} array
239
+ * @param {?} query
240
+ * @param {?=} reverse
241
+ * @return {?}
242
+ */
243
+ FsArray.prototype.sort = /**
244
+ * @deprecated use import { sort } from \@firestitch/common/array; instead
245
+ * @param {?} array
246
+ * @param {?} query
247
+ * @param {?=} reverse
248
+ * @return {?}
249
+ */
250
+ function (array, query, reverse) {
251
+ if (reverse === void 0) { reverse = false; }
252
+ console.warn('@deprecated use import { sort } from @firestitch/common/array; instead');
253
+ if (typeof query !== 'function') {
254
+ /** @type {?} */
255
+ var queryStr_1 = query;
256
+ query = (/**
257
+ * @param {?} a
258
+ * @param {?} b
259
+ * @return {?}
260
+ */
261
+ function (a, b) {
262
+ if (reverse) {
263
+ if (a[queryStr_1] < b[queryStr_1]) {
264
+ return 1;
265
+ }
266
+ else if (a[queryStr_1] > b[queryStr_1]) {
267
+ return -1;
268
+ }
269
+ }
270
+ else {
271
+ if (a[queryStr_1] > b[queryStr_1]) {
272
+ return 1;
273
+ }
274
+ else if (a[queryStr_1] < b[queryStr_1]) {
275
+ return -1;
276
+ }
277
+ }
278
+ return 0;
279
+ });
280
+ }
281
+ array.sort(query);
282
+ return array;
283
+ };
284
+ /**
285
+ * @deprecated use import { rsort } from @firestitch/common/array; instead
286
+ */
287
+ /**
288
+ * @deprecated use import { rsort } from \@firestitch/common/array; instead
289
+ * @param {?} array
290
+ * @param {?} query
291
+ * @return {?}
292
+ */
293
+ FsArray.prototype.rsort = /**
294
+ * @deprecated use import { rsort } from \@firestitch/common/array; instead
295
+ * @param {?} array
296
+ * @param {?} query
297
+ * @return {?}
298
+ */
299
+ function (array, query) {
300
+ console.warn('@deprecated use import { rsort } from @firestitch/common/array; instead');
301
+ return this.sort(array, query, true);
302
+ };
303
+ /**
304
+ * @deprecated use import { list } from @firestitch/common/array; instead
305
+ */
306
+ /**
307
+ * @deprecated use import { list } from \@firestitch/common/array; instead
308
+ * @param {?} array
309
+ * @param {?} property
310
+ * @param {?=} index
311
+ * @return {?}
312
+ */
313
+ FsArray.prototype.list = /**
314
+ * @deprecated use import { list } from \@firestitch/common/array; instead
315
+ * @param {?} array
316
+ * @param {?} property
317
+ * @param {?=} index
318
+ * @return {?}
319
+ */
320
+ function (array, property, index) {
321
+ if (index === void 0) { index = null; }
322
+ console.warn('@deprecated use import { list } from @firestitch/common/array; instead');
323
+ /** @type {?} */
324
+ var list = index ? {} : [];
325
+ array.forEach((/**
326
+ * @param {?} item
327
+ * @param {?} idx
328
+ * @return {?}
329
+ */
330
+ function (item, idx) {
331
+ if (index) {
332
+ list[item[index]] = item[property];
333
+ }
334
+ else {
335
+ list.push(item[property]);
336
+ }
337
+ }));
338
+ return list;
339
+ };
340
+ /**
341
+ * @deprecated use import { applyDepth } from @firestitch/common/array; instead
342
+ */
343
+ /**
344
+ * @deprecated use import { applyDepth } from \@firestitch/common/array; instead
345
+ * @param {?} objects
346
+ * @param {?} parent_property
347
+ * @param {?=} id_property
348
+ * @param {?=} depth_property
349
+ * @return {?}
350
+ */
351
+ FsArray.prototype.applyDepth = /**
352
+ * @deprecated use import { applyDepth } from \@firestitch/common/array; instead
353
+ * @param {?} objects
354
+ * @param {?} parent_property
355
+ * @param {?=} id_property
356
+ * @param {?=} depth_property
357
+ * @return {?}
358
+ */
359
+ function (objects, parent_property, id_property, depth_property) {
360
+ if (id_property === void 0) { id_property = 'id'; }
361
+ if (depth_property === void 0) { depth_property = 'depth'; }
362
+ console.warn('@deprecated use import { applyDepth } from @firestitch/common/array; instead');
363
+ /** @type {?} */
364
+ var keyed = {};
365
+ objects.forEach((/**
366
+ * @param {?} object
367
+ * @return {?}
368
+ */
369
+ function (object) {
370
+ if (!object[parent_property]) {
371
+ object[depth_property] = 0;
372
+ }
373
+ keyed[object[id_property]] = object;
374
+ }));
375
+ Object.keys(keyed).forEach((/**
376
+ * @param {?} key
377
+ * @return {?}
378
+ */
379
+ function (key) {
380
+ Object.keys(keyed).forEach((/**
381
+ * @param {?} key
382
+ * @return {?}
383
+ */
384
+ function (key) {
385
+ /** @type {?} */
386
+ var object = keyed[key];
387
+ if (!keyed[key][depth_property]) {
388
+ if (keyed[key][parent_property]) {
389
+ keyed[key][depth_property] = keyed[keyed[key][parent_property]][depth_property] + 1;
390
+ }
391
+ }
392
+ }));
393
+ }));
394
+ return keyed;
395
+ };
396
+ /**
397
+ * @deprecated use import { inArray } from @firestitch/common/array; instead
398
+ */
399
+ /**
400
+ * @deprecated use import { inArray } from \@firestitch/common/array; instead
401
+ * @param {?} values
402
+ * @param {?} array
403
+ * @return {?}
404
+ */
405
+ FsArray.prototype.inArray = /**
406
+ * @deprecated use import { inArray } from \@firestitch/common/array; instead
407
+ * @param {?} values
408
+ * @param {?} array
409
+ * @return {?}
410
+ */
411
+ function (values, array) {
412
+ console.warn('@deprecated use import { inArray } from @firestitch/common/array; instead');
413
+ if (!Array.isArray(values)) {
414
+ values = [values];
415
+ }
416
+ for (var i = 0, len = values.length; i < len; i++) {
417
+ if (array.indexOf(values[i]) >= 0) {
418
+ return true;
419
+ }
420
+ }
421
+ return false;
422
+ };
423
+ /**
424
+ * @deprecated use import { keyExists } from @firestitch/common/array; instead
425
+ */
426
+ /**
427
+ * @deprecated use import { keyExists } from \@firestitch/common/array; instead
428
+ * @param {?} array
429
+ * @param {?} key
430
+ * @return {?}
431
+ */
432
+ FsArray.prototype.keyExists = /**
433
+ * @deprecated use import { keyExists } from \@firestitch/common/array; instead
434
+ * @param {?} array
435
+ * @param {?} key
436
+ * @return {?}
437
+ */
438
+ function (array, key) {
439
+ console.warn('@deprecated use import { keyExists } from @firestitch/common/array; instead');
440
+ return array.hasOwnProperty(key);
441
+ };
442
+ /**
443
+ * @deprecated use import { length } from @firestitch/common/array; instead
444
+ */
445
+ /**
446
+ * @deprecated use import { length } from \@firestitch/common/array; instead
447
+ * @param {?} array
448
+ * @return {?}
449
+ */
450
+ FsArray.prototype.length = /**
451
+ * @deprecated use import { length } from \@firestitch/common/array; instead
452
+ * @param {?} array
453
+ * @return {?}
454
+ */
455
+ function (array) {
456
+ console.warn('@deprecated use import { length } from @firestitch/common/array; instead');
457
+ return array.length;
458
+ };
459
+ /**
460
+ * @deprecated use import { ksort } from @firestitch/common/array; instead
461
+ */
462
+ /**
463
+ * @deprecated use import { ksort } from \@firestitch/common/array; instead
464
+ * @param {?} unordered
465
+ * @return {?}
466
+ */
467
+ FsArray.prototype.ksort = /**
468
+ * @deprecated use import { ksort } from \@firestitch/common/array; instead
469
+ * @param {?} unordered
470
+ * @return {?}
471
+ */
472
+ function (unordered) {
473
+ console.warn('@deprecated use import { ksort } from @firestitch/common/array; instead');
474
+ Object.keys(unordered).sort().forEach((/**
475
+ * @param {?} key
476
+ * @return {?}
477
+ */
478
+ function (key) {
479
+ /** @type {?} */
480
+ var value = unordered[key];
481
+ delete unordered[key];
482
+ unordered[key] = value;
483
+ }));
484
+ };
485
+ FsArray.decorators = [
486
+ { type: Injectable }
487
+ ];
488
+ return FsArray;
489
+ }());
490
+ export { FsArray };
491
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2NvbW1vbi8iLCJzb3VyY2VzIjpbImFwcC9zZXJ2aWNlcy9hcnJheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQztJQUFBO0lBb1BBLENBQUM7SUFsUEc7O01BRUU7Ozs7Ozs7O0lBQ0ssMkJBQVM7Ozs7Ozs7SUFBaEIsVUFBaUIsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLO1FBQy9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsNkVBQTZFLENBQUMsQ0FBQzs7WUFDeEYsSUFBSSxHQUFHLEVBQUU7UUFDYixJQUFJLElBQUksSUFBSSxLQUFLLEVBQUU7O2dCQUVYLFFBQU0sR0FBRyxPQUFPLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDOzs7O1lBQUMsVUFBVSxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUE7O2dCQUNsRixTQUFPLEdBQUcsT0FBTyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzs7OztZQUFDLFVBQVUsSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBO1lBRTFGLEtBQUssQ0FBQyxPQUFPOzs7O1lBQUMsVUFBVSxJQUFJO2dCQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RCxDQUFDLEVBQUMsQ0FBQztTQUVOO2FBQU07WUFDSCxLQUFLLENBQUMsT0FBTzs7Ozs7WUFBQyxVQUFVLElBQUksRUFBRSxLQUFLO2dCQUMvQixJQUFJLENBQUMs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O1FBQUMsVUFBVSxHQUFHOztnQkFDM0MsS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDMUIsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7O2dCQWpQSixVQUFVOztJQW9QWCxjQUFDO0NBQUEsQUFwUEQsSUFvUEM7U0FuUFksT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZzQXJyYXkge1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBuYW1lVmFsdWUgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIG5hbWVWYWx1ZShhcnJheSwgbmFtZSwgdmFsdWUpOiBBcnJheTxhbnk+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgbmFtZVZhbHVlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgbGV0IGxpc3QgPSBbXTtcbiAgICAgICAgaWYgKG5hbWUgfHwgdmFsdWUpIHtcblxuICAgICAgICAgICAgbGV0IG5hbWVGbiA9IHR5cGVvZiBuYW1lID09PSAnZnVuY3Rpb24nID8gbmFtZSA6IGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiBpdGVtW25hbWVdIH07XG4gICAgICAgICAgICBsZXQgdmFsdWVGbiA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlIDogZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuIGl0ZW1bdmFsdWVdIH07XG5cbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBsaXN0LnB1c2goeyBuYW1lOiBuYW1lRm4oaXRlbSksIHZhbHVlOiB2YWx1ZUZuKGl0ZW0pIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKHsgbmFtZTogbmFtZSwgdmFsdWU6IHZhbHVlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgcmVtb3ZlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyByZW1vdmUoYXJyYXksIHF1ZXJ5KTogYW55IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgcmVtb3ZlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuaW5kZXhPZihhcnJheSwgcXVlcnkpO1xuXG4gICAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGFycmF5LnNwbGljZShpZHgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlkeDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaW5kZXhPZiB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaW5kZXhPZihhcnJheSwgcXVlcnkpOiBudW1iZXIge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgaWYgKHR5cGVvZiBxdWVyeSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IHF1ZXJ5T2JqID0gcXVlcnk7XG4gICAgICAgICAgICBxdWVyeSA9IChpdGVtKSA9PiB7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKHF1ZXJ5T2JqLCBpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhcnJheS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgaWYgKHF1ZXJ5KGFycmF5W2ldKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBjb21wYXJlKHF1ZXJ5LCBpdGVtKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGNvbXBhcmUgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBsZXQgdmFsdWUgPSB0cnVlO1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4gcXVlcnkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgJiYgaXRlbVtrZXldID09IHF1ZXJ5W2tleV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGZpbHRlciB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgZmlsdGVyKGFycmF5LCBxdWVyeSk6IEFycmF5PGFueT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBpZiAodHlwZW9mIHF1ZXJ5ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBsZXQgcXVlcnlPYmogPSBxdWVyeTtcbiAgICAgICAgICAgIHF1ZXJ5ID0gKGl0ZW0pID0+IHtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUocXVlcnlPYmosIGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGlzYXJyYXkgPSBBcnJheS5pc0FycmF5KGFycmF5KTtcbiAgICAgICAgbGV0IGxpc3Q6IGFueSA9IGlzYXJyYXkgPyBbXSA6IHt9O1xuICAgICAgICBpZiAoaXNhcnJheSlcbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGlkeCkge1xuICAgICAgICAgICAgICAgIGlmIChxdWVyeShpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGVsc2UgT2JqZWN0LmtleXMoYXJyYXkpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmIChxdWVyeShhcnJheVtrZXldKSkge1xuICAgICAgICAgICAgICAgIGxpc3Rba2V5XSA9IGFycmF5W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpbmRleCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaW5kZXgoYXJyYXksIHByb3BlcnR5KTogT2JqZWN0IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaW5kZXggfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBsZXQgbGlzdCA9IHt9O1xuICAgICAgICBhcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpZHgpIHtcbiAgICAgICAgICAgIGxpc3RbaXRlbVtwcm9wZXJ0eV1dID0gaXRlbTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHNvcnQgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIHNvcnQoYXJyYXksIHF1ZXJ5LCByZXZlcnNlID0gZmFsc2UpOiBBcnJheTxhbnk+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgc29ydCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGlmICh0eXBlb2YgcXVlcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGxldCBxdWVyeVN0ciA9IHF1ZXJ5O1xuICAgICAgICAgICAgcXVlcnkgPSBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIGlmIChyZXZlcnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhW3F1ZXJ5U3RyXSA8IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhW3F1ZXJ5U3RyXSA+IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYVtxdWVyeVN0cl0gPiBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYVtxdWVyeVN0cl0gPCBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFycmF5LnNvcnQocXVlcnkpO1xuICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHJzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyByc29ydChhcnJheSwgcXVlcnkpOiBBcnJheTxhbnk+IHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHJzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgIHJldHVybiB0aGlzLnNvcnQoYXJyYXksIHF1ZXJ5LCB0cnVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBsaXN0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBsaXN0KGFycmF5LCBwcm9wZXJ0eSwgaW5kZXggPSBudWxsKTogT2JqZWN0IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgbGlzdCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGxldCBsaXN0OiBhbnkgPSBpbmRleCA/IHt9IDogW107XG4gICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGlkeCkge1xuICAgICAgICAgICAgaWYgKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgbGlzdFtpdGVtW2luZGV4XV0gPSBpdGVtW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKGl0ZW1bcHJvcGVydHldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBhcHBseURlcHRoIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBhcHBseURlcHRoKG9iamVjdHMsIHBhcmVudF9wcm9wZXJ0eSwgaWRfcHJvcGVydHkgPSAnaWQnLCBkZXB0aF9wcm9wZXJ0eSA9ICdkZXB0aCcpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgYXBwbHlEZXB0aCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGxldCBrZXllZCA9IHt9O1xuICAgICAgICBvYmplY3RzLmZvckVhY2goZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgICAgICAgaWYgKCFvYmplY3RbcGFyZW50X3Byb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgIG9iamVjdFtkZXB0aF9wcm9wZXJ0eV0gPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAga2V5ZWRbb2JqZWN0W2lkX3Byb3BlcnR5XV0gPSBvYmplY3Q7XG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Qua2V5cyhrZXllZCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoa2V5ZWQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgb2JqZWN0ID0ga2V5ZWRba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoIWtleWVkW2tleV1bZGVwdGhfcHJvcGVydHldKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXllZFtrZXldW3BhcmVudF9wcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleWVkW2tleV1bZGVwdGhfcHJvcGVydHldID0ga2V5ZWRba2V5ZWRba2V5XVtwYXJlbnRfcHJvcGVydHldXVtkZXB0aF9wcm9wZXJ0eV0gKyAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4ga2V5ZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGluQXJyYXkgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgaW5BcnJheSh2YWx1ZXMsIGFycmF5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGluQXJyYXkgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgdmFsdWVzID0gW3ZhbHVlc107XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmFsdWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoYXJyYXkuaW5kZXhPZih2YWx1ZXNbaV0pID49IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsga2V5RXhpc3RzIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIGtleUV4aXN0cyhhcnJheSwga2V5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGtleUV4aXN0cyB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIHJldHVybiBhcnJheS5oYXNPd25Qcm9wZXJ0eShrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBsZW5ndGggfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgbGVuZ3RoKGFycmF5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGxlbmd0aCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGtzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIGtzb3J0KHVub3JkZXJlZCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBrc29ydCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIE9iamVjdC5rZXlzKHVub3JkZXJlZCkuc29ydCgpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdW5vcmRlcmVkW2tleV07XG4gICAgICAgICAgICBkZWxldGUgdW5vcmRlcmVkW2tleV07XG4gICAgICAgICAgICB1bm9yZGVyZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxufVxuIl19
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: app/services/math.service.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { Injectable } from '@angular/core';
7
+ var FsMath = /** @class */ (function () {
8
+ function FsMath() {
9
+ }
10
+ /**
11
+ * @deprecated use _.round() instead {@link https://lodash.com/docs/4.17.5#round}
12
+ */
13
+ /**
14
+ * @deprecated use _.round() instead {\@link https://lodash.com/docs/4.17.5#round}
15
+ * @param {?} number
16
+ * @param {?} precision
17
+ * @return {?}
18
+ */
19
+ FsMath.prototype.round = /**
20
+ * @deprecated use _.round() instead {\@link https://lodash.com/docs/4.17.5#round}
21
+ * @param {?} number
22
+ * @param {?} precision
23
+ * @return {?}
24
+ */
25
+ function (number, precision) {
26
+ console.warn('@deprecated use _.round() instead {@link https://lodash.com/docs/4.17.5#round}');
27
+ precision = precision || 0;
28
+ /** @type {?} */
29
+ var factor = Math.pow(10, precision);
30
+ /** @type {?} */
31
+ var tempNumber = number * factor;
32
+ /** @type {?} */
33
+ var roundedTempNumber = Math.round(tempNumber);
34
+ return roundedTempNumber / factor;
35
+ };
36
+ FsMath.decorators = [
37
+ { type: Injectable }
38
+ ];
39
+ return FsMath;
40
+ }());
41
+ export { FsMath };
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvY29tbW9uLyIsInNvdXJjZXMiOlsiYXBwL3NlcnZpY2VzL21hdGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0M7SUFBQTtJQWNBLENBQUM7SUFYRzs7TUFFRTs7Ozs7OztJQUNLLHNCQUFLOzs7Ozs7SUFBWixVQUFhLE1BQU0sRUFBRSxTQUFTO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztRQUMvRixTQUFTLEdBQUcsU0FBUyxJQUFJLENBQUMsQ0FBQzs7WUFDdkIsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQzs7WUFDaEMsVUFBVSxHQUFHLE1BQU0sR0FBRyxNQUFNOztZQUM1QixpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUM5QyxPQUFPLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztJQUN0QyxDQUFDOztnQkFiSixVQUFVOztJQWNYLGFBQUM7Q0FBQSxBQWRELElBY0M7U0FiWSxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRnNNYXRoIHtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBfLnJvdW5kKCkgaW5zdGVhZCB7QGxpbmsgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy41I3JvdW5kfVxuICAgICovXG4gICAgcHVibGljIHJvdW5kKG51bWJlciwgcHJlY2lzaW9uKTogbnVtYmVyIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgXy5yb3VuZCgpIGluc3RlYWQge0BsaW5rIGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuNSNyb3VuZH0nKTtcbiAgICAgICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uIHx8IDA7XG4gICAgICAgIGxldCBmYWN0b3IgPSBNYXRoLnBvdygxMCwgcHJlY2lzaW9uKTtcbiAgICAgICAgbGV0IHRlbXBOdW1iZXIgPSBudW1iZXIgKiBmYWN0b3I7XG4gICAgICAgIGxldCByb3VuZGVkVGVtcE51bWJlciA9IE1hdGgucm91bmQodGVtcE51bWJlcik7XG4gICAgICAgIHJldHVybiByb3VuZGVkVGVtcE51bWJlciAvIGZhY3RvcjtcbiAgICB9XG59XG4iXX0=