@firestitch/common 15.0.0 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/app/directives/auto-focus.directive.d.ts +1 -1
  2. package/app/directives/auto-select.directive.d.ts +1 -1
  3. package/app/directives/model-change.directive.d.ts +1 -1
  4. package/esm2022/app/directives/auto-focus.directive.mjs +61 -0
  5. package/esm2022/app/directives/auto-select.directive.mjs +32 -0
  6. package/esm2022/app/directives/model-change.directive.mjs +39 -0
  7. package/{esm2020 → esm2022}/app/directives/prevent-default.directive.mjs +4 -4
  8. package/{esm2020 → esm2022}/app/directives/stop-propagation.directive.mjs +4 -4
  9. package/{esm2020 → esm2022}/app/fs-common.module.mjs +31 -31
  10. package/{esm2020 → esm2022}/app/pipes/bytes.pipe.mjs +4 -4
  11. package/esm2022/app/pipes/currency.pipe.mjs +24 -0
  12. package/{esm2020 → esm2022}/app/pipes/number.pipe.mjs +4 -4
  13. package/{esm2020 → esm2022}/app/pipes/ordinal-number.pipe.mjs +4 -4
  14. package/{esm2020 → esm2022}/app/pipes/truncate.pipe.mjs +5 -5
  15. package/{esm2020 → esm2022}/app/pipes/util.pipe.mjs +15 -15
  16. package/esm2022/app/services/array.service.mjs +225 -0
  17. package/{esm2020 → esm2022}/app/services/math.service.mjs +4 -4
  18. package/esm2022/app/services/util.service.mjs +249 -0
  19. package/esm2022/app/services/vaildate.service.mjs +29 -0
  20. package/{esm2020 → esm2022}/libs/array/compare/compare.mjs +1 -1
  21. package/esm2022/libs/array/filter/filter.mjs +27 -0
  22. package/esm2022/libs/array/inArray/inArray.mjs +12 -0
  23. package/esm2022/libs/array/indexOf/indexOf.mjs +16 -0
  24. package/{esm2020 → esm2022}/libs/array/list/list.mjs +1 -1
  25. package/esm2022/libs/array/nameValue/nameValue.mjs +21 -0
  26. package/{esm2020 → esm2022}/libs/array/remove/remove.mjs +1 -1
  27. package/esm2022/libs/array/sort/sort.mjs +27 -0
  28. package/esm2022/libs/format/acronym/acronym.mjs +22 -0
  29. package/esm2022/libs/format/bytes/bytes.mjs +18 -0
  30. package/{esm2020 → esm2022}/libs/format/number/number.mjs +1 -1
  31. package/esm2022/libs/format/truncate/truncate.mjs +12 -0
  32. package/esm2022/libs/rxjs/delayedRetry.mjs +20 -0
  33. package/esm2022/libs/util/clone/clone.mjs +21 -0
  34. package/esm2022/libs/util/guid/guid.mjs +19 -0
  35. package/esm2022/libs/util/is-array-equal/is-array-equal.mjs +22 -0
  36. package/esm2022/libs/util/is-class/is-class.mjs +18 -0
  37. package/esm2022/libs/util/length/length.mjs +10 -0
  38. package/esm2022/libs/util/queue/operation.mjs +17 -0
  39. package/esm2022/libs/util/queue/queue.mjs +166 -0
  40. package/esm2022/libs/util/source-loader/source-loader.mjs +155 -0
  41. package/esm2022/libs/util/throttle/throttle.mjs +13 -0
  42. package/{esm2020 → esm2022}/libs/util/to-string/to-string.mjs +1 -1
  43. package/esm2022/libs/util/value/value.mjs +9 -0
  44. package/{fesm2020 → fesm2022}/firestitch-common.mjs +136 -128
  45. package/fesm2022/firestitch-common.mjs.map +1 -0
  46. package/package.json +5 -11
  47. package/esm2020/app/directives/auto-focus.directive.mjs +0 -59
  48. package/esm2020/app/directives/auto-select.directive.mjs +0 -31
  49. package/esm2020/app/directives/model-change.directive.mjs +0 -37
  50. package/esm2020/app/pipes/currency.pipe.mjs +0 -23
  51. package/esm2020/app/services/array.service.mjs +0 -225
  52. package/esm2020/app/services/util.service.mjs +0 -251
  53. package/esm2020/app/services/vaildate.service.mjs +0 -28
  54. package/esm2020/libs/array/filter/filter.mjs +0 -27
  55. package/esm2020/libs/array/inArray/inArray.mjs +0 -12
  56. package/esm2020/libs/array/indexOf/indexOf.mjs +0 -16
  57. package/esm2020/libs/array/nameValue/nameValue.mjs +0 -21
  58. package/esm2020/libs/array/sort/sort.mjs +0 -27
  59. package/esm2020/libs/format/acronym/acronym.mjs +0 -22
  60. package/esm2020/libs/format/bytes/bytes.mjs +0 -18
  61. package/esm2020/libs/format/truncate/truncate.mjs +0 -12
  62. package/esm2020/libs/rxjs/delayedRetry.mjs +0 -20
  63. package/esm2020/libs/util/clone/clone.mjs +0 -21
  64. package/esm2020/libs/util/guid/guid.mjs +0 -19
  65. package/esm2020/libs/util/is-array-equal/is-array-equal.mjs +0 -22
  66. package/esm2020/libs/util/is-class/is-class.mjs +0 -18
  67. package/esm2020/libs/util/length/length.mjs +0 -10
  68. package/esm2020/libs/util/queue/operation.mjs +0 -15
  69. package/esm2020/libs/util/queue/queue.mjs +0 -165
  70. package/esm2020/libs/util/source-loader/source-loader.mjs +0 -155
  71. package/esm2020/libs/util/throttle/throttle.mjs +0 -13
  72. package/esm2020/libs/util/value/value.mjs +0 -9
  73. package/fesm2015/firestitch-common.mjs +0 -1754
  74. package/fesm2015/firestitch-common.mjs.map +0 -1
  75. package/fesm2020/firestitch-common.mjs.map +0 -1
  76. /package/{esm2020 → esm2022}/app/directives/index.mjs +0 -0
  77. /package/{esm2020 → esm2022}/app/pipes/index.mjs +0 -0
  78. /package/{esm2020 → esm2022}/firestitch-common.mjs +0 -0
  79. /package/{esm2020 → esm2022}/libs/array/compare/index.mjs +0 -0
  80. /package/{esm2020 → esm2022}/libs/array/filter/index.mjs +0 -0
  81. /package/{esm2020 → esm2022}/libs/array/find/find.mjs +0 -0
  82. /package/{esm2020 → esm2022}/libs/array/find/index.mjs +0 -0
  83. /package/{esm2020 → esm2022}/libs/array/inArray/index.mjs +0 -0
  84. /package/{esm2020 → esm2022}/libs/array/index/index.mjs +0 -0
  85. /package/{esm2020 → esm2022}/libs/array/index.mjs +0 -0
  86. /package/{esm2020 → esm2022}/libs/array/indexOf/index.mjs +0 -0
  87. /package/{esm2020 → esm2022}/libs/array/keyExists/index.mjs +0 -0
  88. /package/{esm2020 → esm2022}/libs/array/keyExists/keyExists.mjs +0 -0
  89. /package/{esm2020 → esm2022}/libs/array/ksort/index.mjs +0 -0
  90. /package/{esm2020 → esm2022}/libs/array/ksort/ksort.mjs +0 -0
  91. /package/{esm2020 → esm2022}/libs/array/list/index.mjs +0 -0
  92. /package/{esm2020 → esm2022}/libs/array/nameValue/index.mjs +0 -0
  93. /package/{esm2020 → esm2022}/libs/array/remove/index.mjs +0 -0
  94. /package/{esm2020 → esm2022}/libs/array/rsort/index.mjs +0 -0
  95. /package/{esm2020 → esm2022}/libs/array/rsort/rsort.mjs +0 -0
  96. /package/{esm2020 → esm2022}/libs/array/sort/index.mjs +0 -0
  97. /package/{esm2020 → esm2022}/libs/format/acronym/index.mjs +0 -0
  98. /package/{esm2020 → esm2022}/libs/format/bytes/index.mjs +0 -0
  99. /package/{esm2020 → esm2022}/libs/format/currency/currency.mjs +0 -0
  100. /package/{esm2020 → esm2022}/libs/format/currency/index.mjs +0 -0
  101. /package/{esm2020 → esm2022}/libs/format/index.mjs +0 -0
  102. /package/{esm2020 → esm2022}/libs/format/number/index.mjs +0 -0
  103. /package/{esm2020 → esm2022}/libs/format/truncate/index.mjs +0 -0
  104. /package/{esm2020 → esm2022}/libs/index.mjs +0 -0
  105. /package/{esm2020 → esm2022}/libs/rxjs/keyboard-shortcut.mjs +0 -0
  106. /package/{esm2020 → esm2022}/libs/util/boolean/boolean.mjs +0 -0
  107. /package/{esm2020 → esm2022}/libs/util/boolean/index.mjs +0 -0
  108. /package/{esm2020 → esm2022}/libs/util/clone/index.mjs +0 -0
  109. /package/{esm2020 → esm2022}/libs/util/debounce/debounce.mjs +0 -0
  110. /package/{esm2020 → esm2022}/libs/util/debounce/index.mjs +0 -0
  111. /package/{esm2020 → esm2022}/libs/util/get-normalized-path/get-normalized-path.mjs +0 -0
  112. /package/{esm2020 → esm2022}/libs/util/get-normalized-path/index.mjs +0 -0
  113. /package/{esm2020 → esm2022}/libs/util/guid/index.mjs +0 -0
  114. /package/{esm2020 → esm2022}/libs/util/index.mjs +0 -0
  115. /package/{esm2020 → esm2022}/libs/util/is-array-equal/index.mjs +0 -0
  116. /package/{esm2020 → esm2022}/libs/util/is-class/index.mjs +0 -0
  117. /package/{esm2020 → esm2022}/libs/util/is-empty/index.mjs +0 -0
  118. /package/{esm2020 → esm2022}/libs/util/is-empty/is-empty.mjs +0 -0
  119. /package/{esm2020 → esm2022}/libs/util/is-numeric/index.mjs +0 -0
  120. /package/{esm2020 → esm2022}/libs/util/is-numeric/is-numeric.mjs +0 -0
  121. /package/{esm2020 → esm2022}/libs/util/is-object/index.mjs +0 -0
  122. /package/{esm2020 → esm2022}/libs/util/is-object/is-object.mjs +0 -0
  123. /package/{esm2020 → esm2022}/libs/util/keys/index.mjs +0 -0
  124. /package/{esm2020 → esm2022}/libs/util/keys/keys.mjs +0 -0
  125. /package/{esm2020 → esm2022}/libs/util/length/index.mjs +0 -0
  126. /package/{esm2020 → esm2022}/libs/util/ordinal-number/index.mjs +0 -0
  127. /package/{esm2020 → esm2022}/libs/util/ordinal-number/ordinal-number.mjs +0 -0
  128. /package/{esm2020 → esm2022}/libs/util/queue/index.mjs +0 -0
  129. /package/{esm2020 → esm2022}/libs/util/queue/queue-stats.mjs +0 -0
  130. /package/{esm2020 → esm2022}/libs/util/queue/queue.enum.mjs +0 -0
  131. /package/{esm2020 → esm2022}/libs/util/remove-query-params/index.mjs +0 -0
  132. /package/{esm2020 → esm2022}/libs/util/remove-query-params/remove-query-params.mjs +0 -0
  133. /package/{esm2020 → esm2022}/libs/util/resolve/index.mjs +0 -0
  134. /package/{esm2020 → esm2022}/libs/util/resolve/resolve.mjs +0 -0
  135. /package/{esm2020 → esm2022}/libs/util/round/index.mjs +0 -0
  136. /package/{esm2020 → esm2022}/libs/util/round/round.mjs +0 -0
  137. /package/{esm2020 → esm2022}/libs/util/source-loader/index.mjs +0 -0
  138. /package/{esm2020 → esm2022}/libs/util/stringify/index.mjs +0 -0
  139. /package/{esm2020 → esm2022}/libs/util/stringify/stringify.mjs +0 -0
  140. /package/{esm2020 → esm2022}/libs/util/throttle/index.mjs +0 -0
  141. /package/{esm2020 → esm2022}/libs/util/to-string/index.mjs +0 -0
  142. /package/{esm2020 → esm2022}/libs/util/uuid/index.mjs +0 -0
  143. /package/{esm2020 → esm2022}/libs/util/uuid/uuid.mjs +0 -0
  144. /package/{esm2020 → esm2022}/libs/util/value/index.mjs +0 -0
  145. /package/{esm2020 → esm2022}/libs/validate/email/email.mjs +0 -0
  146. /package/{esm2020 → esm2022}/libs/validate/email/index.mjs +0 -0
  147. /package/{esm2020 → esm2022}/libs/validate/index.mjs +0 -0
  148. /package/{esm2020 → esm2022}/libs/validate/phone/index.mjs +0 -0
  149. /package/{esm2020 → esm2022}/libs/validate/phone/phone.mjs +0 -0
  150. /package/{esm2020 → esm2022}/libs/validate/url/index.mjs +0 -0
  151. /package/{esm2020 → esm2022}/libs/validate/url/url.mjs +0 -0
  152. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -0,0 +1,225 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FsArray {
4
+ /**
5
+ * @deprecated use import { nameValue } from @firestitch/common/array; instead
6
+ */
7
+ nameValue(array, name, value) {
8
+ console.warn('@deprecated use import { nameValue } from @firestitch/common/array; instead');
9
+ let list = [];
10
+ if (name || value) {
11
+ let nameFn = typeof name === 'function' ? name : function (item) { return item[name]; };
12
+ let valueFn = typeof value === 'function' ? value : function (item) { return item[value]; };
13
+ array.forEach(function (item) {
14
+ list.push({ name: nameFn(item), value: valueFn(item) });
15
+ });
16
+ }
17
+ else {
18
+ array.forEach(function (name, value) {
19
+ list.push({ name: name, value: value });
20
+ });
21
+ }
22
+ return list;
23
+ }
24
+ /**
25
+ * @deprecated use import { remove } from @firestitch/common/array; instead
26
+ */
27
+ remove(array, query) {
28
+ console.warn('@deprecated use import { remove } from @firestitch/common/array; instead');
29
+ let idx = this.indexOf(array, query);
30
+ if (idx >= 0) {
31
+ return array.splice(idx, 1);
32
+ }
33
+ return idx;
34
+ }
35
+ /**
36
+ * @deprecated use import { indexOf } from @firestitch/common/array; instead
37
+ */
38
+ indexOf(array, query) {
39
+ console.warn('@deprecated use import { indexOf } from @firestitch/common/array; instead');
40
+ if (typeof query !== 'function') {
41
+ let queryObj = query;
42
+ query = (item) => {
43
+ return this.compare(queryObj, item);
44
+ };
45
+ }
46
+ for (let i = 0, len = array.length; i < len; i++) {
47
+ if (query(array[i])) {
48
+ return i;
49
+ }
50
+ }
51
+ return -1;
52
+ }
53
+ /**
54
+ * @deprecated use import { compare } from @firestitch/common/array; instead
55
+ */
56
+ compare(query, item) {
57
+ console.warn('@deprecated use import { compare } from @firestitch/common/array; instead');
58
+ let value = true;
59
+ for (let key in query) {
60
+ value = value && item[key] == query[key];
61
+ }
62
+ return value;
63
+ }
64
+ /**
65
+ * @deprecated use import { filter } from @firestitch/common/array; instead
66
+ */
67
+ filter(array, query) {
68
+ console.warn('@deprecated use import { filter } from @firestitch/common/array; instead');
69
+ if (typeof query !== 'function') {
70
+ let queryObj = query;
71
+ query = (item) => {
72
+ return this.compare(queryObj, item);
73
+ };
74
+ }
75
+ let isarray = Array.isArray(array);
76
+ let list = isarray ? [] : {};
77
+ if (isarray)
78
+ array.forEach(function (item, idx) {
79
+ if (query(item)) {
80
+ list.push(item);
81
+ }
82
+ });
83
+ else
84
+ Object.keys(array).forEach(key => {
85
+ if (query(array[key])) {
86
+ list[key] = array[key];
87
+ }
88
+ });
89
+ return list;
90
+ }
91
+ /**
92
+ * @deprecated use import { index } from @firestitch/common/array; instead
93
+ */
94
+ index(array, property) {
95
+ console.warn('@deprecated use import { index } from @firestitch/common/array; instead');
96
+ let list = {};
97
+ array.forEach(function (item, idx) {
98
+ list[item[property]] = item;
99
+ });
100
+ return list;
101
+ }
102
+ /**
103
+ * @deprecated use import { sort } from @firestitch/common/array; instead
104
+ */
105
+ sort(array, query, reverse = false) {
106
+ console.warn('@deprecated use import { sort } from @firestitch/common/array; instead');
107
+ if (typeof query !== 'function') {
108
+ let queryStr = query;
109
+ query = function (a, b) {
110
+ if (reverse) {
111
+ if (a[queryStr] < b[queryStr]) {
112
+ return 1;
113
+ }
114
+ else if (a[queryStr] > b[queryStr]) {
115
+ return -1;
116
+ }
117
+ }
118
+ else {
119
+ if (a[queryStr] > b[queryStr]) {
120
+ return 1;
121
+ }
122
+ else if (a[queryStr] < b[queryStr]) {
123
+ return -1;
124
+ }
125
+ }
126
+ return 0;
127
+ };
128
+ }
129
+ array.sort(query);
130
+ return array;
131
+ }
132
+ /**
133
+ * @deprecated use import { rsort } from @firestitch/common/array; instead
134
+ */
135
+ rsort(array, query) {
136
+ console.warn('@deprecated use import { rsort } from @firestitch/common/array; instead');
137
+ return this.sort(array, query, true);
138
+ }
139
+ /**
140
+ * @deprecated use import { list } from @firestitch/common/array; instead
141
+ */
142
+ list(array, property, index = null) {
143
+ console.warn('@deprecated use import { list } from @firestitch/common/array; instead');
144
+ let list = index ? {} : [];
145
+ array.forEach(function (item, idx) {
146
+ if (index) {
147
+ list[item[index]] = item[property];
148
+ }
149
+ else {
150
+ list.push(item[property]);
151
+ }
152
+ });
153
+ return list;
154
+ }
155
+ /**
156
+ * @deprecated use import { applyDepth } from @firestitch/common/array; instead
157
+ */
158
+ applyDepth(objects, parent_property, id_property = 'id', depth_property = 'depth') {
159
+ console.warn('@deprecated use import { applyDepth } from @firestitch/common/array; instead');
160
+ let keyed = {};
161
+ objects.forEach(function (object) {
162
+ if (!object[parent_property]) {
163
+ object[depth_property] = 0;
164
+ }
165
+ keyed[object[id_property]] = object;
166
+ });
167
+ Object.keys(keyed).forEach(key => {
168
+ Object.keys(keyed).forEach(key => {
169
+ let object = keyed[key];
170
+ if (!keyed[key][depth_property]) {
171
+ if (keyed[key][parent_property]) {
172
+ keyed[key][depth_property] = keyed[keyed[key][parent_property]][depth_property] + 1;
173
+ }
174
+ }
175
+ });
176
+ });
177
+ return keyed;
178
+ }
179
+ /**
180
+ * @deprecated use import { inArray } from @firestitch/common/array; instead
181
+ */
182
+ inArray(values, array) {
183
+ console.warn('@deprecated use import { inArray } from @firestitch/common/array; instead');
184
+ if (!Array.isArray(values)) {
185
+ values = [values];
186
+ }
187
+ for (let i = 0, len = values.length; i < len; i++) {
188
+ if (array.indexOf(values[i]) >= 0) {
189
+ return true;
190
+ }
191
+ }
192
+ return false;
193
+ }
194
+ /**
195
+ * @deprecated use import { keyExists } from @firestitch/common/array; instead
196
+ */
197
+ keyExists(array, key) {
198
+ console.warn('@deprecated use import { keyExists } from @firestitch/common/array; instead');
199
+ return array.hasOwnProperty(key);
200
+ }
201
+ /**
202
+ * @deprecated use import { length } from @firestitch/common/array; instead
203
+ */
204
+ length(array) {
205
+ console.warn('@deprecated use import { length } from @firestitch/common/array; instead');
206
+ return array.length;
207
+ }
208
+ /**
209
+ * @deprecated use import { ksort } from @firestitch/common/array; instead
210
+ */
211
+ ksort(unordered) {
212
+ console.warn('@deprecated use import { ksort } from @firestitch/common/array; instead');
213
+ Object.keys(unordered).sort().forEach(function (key) {
214
+ let value = unordered[key];
215
+ delete unordered[key];
216
+ unordered[key] = value;
217
+ });
218
+ }
219
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsArray, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
220
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsArray });
221
+ }
222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsArray, decorators: [{
223
+ type: Injectable
224
+ }] });
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvYXJyYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sT0FBTztJQUNoQjs7TUFFRTtJQUNLLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUs7UUFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQyw2RUFBNkUsQ0FBQyxDQUFDO1FBQzVGLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNkLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBRWhCLElBQUksTUFBTSxHQUFHLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztZQUN2RixJQUFJLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7WUFFM0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUk7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1FBRVAsQ0FBQzthQUFNLENBQUM7WUFDSixLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEtBQUs7Z0JBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7TUFFRTtJQUNLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSztRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7UUFDekYsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFckMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRDs7TUFFRTtJQUNLLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSztRQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLDJFQUEyRSxDQUFDLENBQUM7UUFDMUYsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM5QixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDckIsS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBRWIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4QyxDQUFDLENBQUE7UUFDTCxDQUFDO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQy9DLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxDQUFDO1lBQ2IsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVEOztNQUVFO0lBQ0ssT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkVBQTJFLENBQUMsQ0FBQztRQUMxRixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDakIsS0FBSyxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNwQixLQUFLLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7TUFFRTtJQUNLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSztRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7UUFDekYsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM5QixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDckIsS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBRWIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4QyxDQUFDLENBQUE7UUFDTCxDQUFDO1FBRUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLElBQUksR0FBUSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xDLElBQUksT0FBTztZQUNQLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsR0FBRztnQkFDN0IsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwQixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7O1lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7TUFFRTtJQUNLLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUTtRQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLHlFQUF5RSxDQUFDLENBQUM7UUFDeEYsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRSxHQUFHO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBR0Q7O01BRUU7SUFDSyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEdBQUcsS0FBSztRQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLHdFQUF3RSxDQUFDLENBQUM7UUFDdkYsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM5QixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDckIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1YsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7d0JBQzVCLE9BQU8sQ0FBQyxDQUFDO29CQUNiLENBQUM7eUJBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7d0JBQ25DLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ2QsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7d0JBQzVCLE9BQU8sQ0FBQyxDQUFDO29CQUNiLENBQUM7eUJBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7d0JBQ25DLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ2QsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE9BQU8sQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOztNQUVFO0lBQ0ssS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLO1FBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMseUVBQXlFLENBQUMsQ0FBQztRQUN4RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBR0Q7O01BRUU7SUFDSyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEdBQUcsSUFBSTtRQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLHdFQUF3RSxDQUFDLENBQUM7UUFDdkYsSUFBSSxJQUFJLEdBQVEsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEdBQUc7WUFDN0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDUixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7TUFFRTtJQUNLLFVBQVUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsR0FBRyxJQUFJLEVBQUUsY0FBYyxHQUFHLE9BQU87UUFDcEYsT0FBTyxDQUFDLElBQUksQ0FBQyw4RUFBOEUsQ0FBQyxDQUFDO1FBQzdGLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxNQUFNO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvQixDQUFDO1lBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQzt3QkFDOUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hGLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUE7UUFFRixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQ7O01BRUU7SUFDRixPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUs7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOztNQUVFO0lBQ0YsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsNkVBQTZFLENBQUMsQ0FBQztRQUM1RixPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztNQUVFO0lBQ0YsTUFBTSxDQUFDLEtBQUs7UUFDUixPQUFPLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7UUFDekYsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7TUFFRTtJQUNGLEtBQUssQ0FBQyxTQUFTO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRztZQUMvQyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7d0dBaFBRLE9BQU87NEdBQVAsT0FBTzs7NEZBQVAsT0FBTztrQkFEbkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZzQXJyYXkge1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBuYW1lVmFsdWUgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIG5hbWVWYWx1ZShhcnJheSwgbmFtZSwgdmFsdWUpOiBBcnJheTxhbnk+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgbmFtZVZhbHVlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgbGV0IGxpc3QgPSBbXTtcbiAgICAgICAgaWYgKG5hbWUgfHwgdmFsdWUpIHtcblxuICAgICAgICAgICAgbGV0IG5hbWVGbiA9IHR5cGVvZiBuYW1lID09PSAnZnVuY3Rpb24nID8gbmFtZSA6IGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiBpdGVtW25hbWVdIH07XG4gICAgICAgICAgICBsZXQgdmFsdWVGbiA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlIDogZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuIGl0ZW1bdmFsdWVdIH07XG5cbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBsaXN0LnB1c2goeyBuYW1lOiBuYW1lRm4oaXRlbSksIHZhbHVlOiB2YWx1ZUZuKGl0ZW0pIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKHsgbmFtZTogbmFtZSwgdmFsdWU6IHZhbHVlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgcmVtb3ZlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyByZW1vdmUoYXJyYXksIHF1ZXJ5KTogYW55IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgcmVtb3ZlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuaW5kZXhPZihhcnJheSwgcXVlcnkpO1xuXG4gICAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGFycmF5LnNwbGljZShpZHgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlkeDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaW5kZXhPZiB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaW5kZXhPZihhcnJheSwgcXVlcnkpOiBudW1iZXIge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgaWYgKHR5cGVvZiBxdWVyeSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IHF1ZXJ5T2JqID0gcXVlcnk7XG4gICAgICAgICAgICBxdWVyeSA9IChpdGVtKSA9PiB7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKHF1ZXJ5T2JqLCBpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhcnJheS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgaWYgKHF1ZXJ5KGFycmF5W2ldKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBjb21wYXJlKHF1ZXJ5LCBpdGVtKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGNvbXBhcmUgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBsZXQgdmFsdWUgPSB0cnVlO1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4gcXVlcnkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgJiYgaXRlbVtrZXldID09IHF1ZXJ5W2tleV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGZpbHRlciB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgZmlsdGVyKGFycmF5LCBxdWVyeSk6IEFycmF5PGFueT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBpZiAodHlwZW9mIHF1ZXJ5ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBsZXQgcXVlcnlPYmogPSBxdWVyeTtcbiAgICAgICAgICAgIHF1ZXJ5ID0gKGl0ZW0pID0+IHtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUocXVlcnlPYmosIGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGlzYXJyYXkgPSBBcnJheS5pc0FycmF5KGFycmF5KTtcbiAgICAgICAgbGV0IGxpc3Q6IGFueSA9IGlzYXJyYXkgPyBbXSA6IHt9O1xuICAgICAgICBpZiAoaXNhcnJheSlcbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGlkeCkge1xuICAgICAgICAgICAgICAgIGlmIChxdWVyeShpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGVsc2UgT2JqZWN0LmtleXMoYXJyYXkpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmIChxdWVyeShhcnJheVtrZXldKSkge1xuICAgICAgICAgICAgICAgIGxpc3Rba2V5XSA9IGFycmF5W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpbmRleCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaW5kZXgoYXJyYXksIHByb3BlcnR5KTogT2JqZWN0IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaW5kZXggfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBsZXQgbGlzdCA9IHt9O1xuICAgICAgICBhcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpZHgpIHtcbiAgICAgICAgICAgIGxpc3RbaXRlbVtwcm9wZXJ0eV1dID0gaXRlbTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHNvcnQgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIHNvcnQoYXJyYXksIHF1ZXJ5LCByZXZlcnNlID0gZmFsc2UpOiBBcnJheTxhbnk+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgc29ydCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGlmICh0eXBlb2YgcXVlcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGxldCBxdWVyeVN0ciA9IHF1ZXJ5O1xuICAgICAgICAgICAgcXVlcnkgPSBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIGlmIChyZXZlcnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhW3F1ZXJ5U3RyXSA8IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhW3F1ZXJ5U3RyXSA+IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYVtxdWVyeVN0cl0gPiBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYVtxdWVyeVN0cl0gPCBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFycmF5LnNvcnQocXVlcnkpO1xuICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHJzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyByc29ydChhcnJheSwgcXVlcnkpOiBBcnJheTxhbnk+IHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHJzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgIHJldHVybiB0aGlzLnNvcnQoYXJyYXksIHF1ZXJ5LCB0cnVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBsaXN0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBsaXN0KGFycmF5LCBwcm9wZXJ0eSwgaW5kZXggPSBudWxsKTogT2JqZWN0IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgbGlzdCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGxldCBsaXN0OiBhbnkgPSBpbmRleCA/IHt9IDogW107XG4gICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGlkeCkge1xuICAgICAgICAgICAgaWYgKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgbGlzdFtpdGVtW2luZGV4XV0gPSBpdGVtW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKGl0ZW1bcHJvcGVydHldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBhcHBseURlcHRoIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBhcHBseURlcHRoKG9iamVjdHMsIHBhcmVudF9wcm9wZXJ0eSwgaWRfcHJvcGVydHkgPSAnaWQnLCBkZXB0aF9wcm9wZXJ0eSA9ICdkZXB0aCcpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgYXBwbHlEZXB0aCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGxldCBrZXllZCA9IHt9O1xuICAgICAgICBvYmplY3RzLmZvckVhY2goZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgICAgICAgaWYgKCFvYmplY3RbcGFyZW50X3Byb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgIG9iamVjdFtkZXB0aF9wcm9wZXJ0eV0gPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAga2V5ZWRbb2JqZWN0W2lkX3Byb3BlcnR5XV0gPSBvYmplY3Q7XG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Qua2V5cyhrZXllZCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoa2V5ZWQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgb2JqZWN0ID0ga2V5ZWRba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoIWtleWVkW2tleV1bZGVwdGhfcHJvcGVydHldKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXllZFtrZXldW3BhcmVudF9wcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleWVkW2tleV1bZGVwdGhfcHJvcGVydHldID0ga2V5ZWRba2V5ZWRba2V5XVtwYXJlbnRfcHJvcGVydHldXVtkZXB0aF9wcm9wZXJ0eV0gKyAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4ga2V5ZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGluQXJyYXkgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgaW5BcnJheSh2YWx1ZXMsIGFycmF5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGluQXJyYXkgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgdmFsdWVzID0gW3ZhbHVlc107XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmFsdWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoYXJyYXkuaW5kZXhPZih2YWx1ZXNbaV0pID49IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsga2V5RXhpc3RzIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIGtleUV4aXN0cyhhcnJheSwga2V5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGtleUV4aXN0cyB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIHJldHVybiBhcnJheS5oYXNPd25Qcm9wZXJ0eShrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBsZW5ndGggfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgbGVuZ3RoKGFycmF5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGxlbmd0aCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGtzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIGtzb3J0KHVub3JkZXJlZCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBrc29ydCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIE9iamVjdC5rZXlzKHVub3JkZXJlZCkuc29ydCgpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdW5vcmRlcmVkW2tleV07XG4gICAgICAgICAgICBkZWxldGUgdW5vcmRlcmVkW2tleV07XG4gICAgICAgICAgICB1bm9yZGVyZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxufVxuIl19
@@ -12,10 +12,10 @@ export class FsMath {
12
12
  let roundedTempNumber = Math.round(tempNumber);
13
13
  return roundedTempNumber / factor;
14
14
  }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsMath, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsMath });
15
17
  }
16
- FsMath.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsMath, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
- FsMath.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsMath });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsMath, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsMath, decorators: [{
19
19
  type: Injectable
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlcy9tYXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLE1BQU07SUFFZjs7TUFFRTtJQUNLLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUztRQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLGdGQUFnRixDQUFDLENBQUM7UUFDL0YsU0FBUyxHQUFHLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxVQUFVLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNqQyxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsT0FBTyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7SUFDdEMsQ0FBQzs7b0dBWlEsTUFBTTt3R0FBTixNQUFNOzRGQUFOLE1BQU07a0JBRGxCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGc01hdGgge1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIF8ucm91bmQoKSBpbnN0ZWFkIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjcm91bmR9XG4gICAgKi9cbiAgICBwdWJsaWMgcm91bmQobnVtYmVyLCBwcmVjaXNpb24pOiBudW1iZXIge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBfLnJvdW5kKCkgaW5zdGVhZCB7QGxpbmsgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy41I3JvdW5kfScpO1xuICAgICAgICBwcmVjaXNpb24gPSBwcmVjaXNpb24gfHwgMDtcbiAgICAgICAgbGV0IGZhY3RvciA9IE1hdGgucG93KDEwLCBwcmVjaXNpb24pO1xuICAgICAgICBsZXQgdGVtcE51bWJlciA9IG51bWJlciAqIGZhY3RvcjtcbiAgICAgICAgbGV0IHJvdW5kZWRUZW1wTnVtYmVyID0gTWF0aC5yb3VuZCh0ZW1wTnVtYmVyKTtcbiAgICAgICAgcmV0dXJuIHJvdW5kZWRUZW1wTnVtYmVyIC8gZmFjdG9yO1xuICAgIH1cbn1cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlcy9tYXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLE1BQU07SUFFZjs7TUFFRTtJQUNLLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUztRQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLGdGQUFnRixDQUFDLENBQUM7UUFDL0YsU0FBUyxHQUFHLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxVQUFVLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNqQyxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsT0FBTyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7SUFDdEMsQ0FBQzt3R0FaUSxNQUFNOzRHQUFOLE1BQU07OzRGQUFOLE1BQU07a0JBRGxCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGc01hdGgge1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIF8ucm91bmQoKSBpbnN0ZWFkIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjcm91bmR9XG4gICAgKi9cbiAgICBwdWJsaWMgcm91bmQobnVtYmVyLCBwcmVjaXNpb24pOiBudW1iZXIge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBfLnJvdW5kKCkgaW5zdGVhZCB7QGxpbmsgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy41I3JvdW5kfScpO1xuICAgICAgICBwcmVjaXNpb24gPSBwcmVjaXNpb24gfHwgMDtcbiAgICAgICAgbGV0IGZhY3RvciA9IE1hdGgucG93KDEwLCBwcmVjaXNpb24pO1xuICAgICAgICBsZXQgdGVtcE51bWJlciA9IG51bWJlciAqIGZhY3RvcjtcbiAgICAgICAgbGV0IHJvdW5kZWRUZW1wTnVtYmVyID0gTWF0aC5yb3VuZCh0ZW1wTnVtYmVyKTtcbiAgICAgICAgcmV0dXJuIHJvdW5kZWRUZW1wTnVtYmVyIC8gZmFjdG9yO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,249 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export const KEY_CANCEL = 3, KEY_HELP = 6, KEY_BACKSPACE = 8, KEY_TAB = 9, KEY_CLEAR = 12, KEY_RETURN = 13, KEY_ENTER = 14, KEY_SHIFT = 16, KEY_CONTROL = 17, KEY_ALT = 18, KEY_PAUSE = 19, KEY_CAPS_LOCK = 20, KEY_ESCAPE = 27, KEY_SPACE = 32, KEY_PAGE_UP = 33, KEY_PAGE_DOWN = 34, KEY_END = 35, KEY_HOME = 36, KEY_LEFT = 37, KEY_UP = 38, KEY_RIGHT = 39, KEY_DOWN = 40, KEY_PRINTSCREEN = 44, KEY_INSERT = 45, KEY_DELETE = 46, KEY_0 = 48, KEY_1 = 49, KEY_2 = 50, KEY_3 = 51, KEY_4 = 52, KEY_5 = 53, KEY_6 = 54, KEY_7 = 55, KEY_8 = 56, KEY_9 = 57, KEY_SEMICOLON = 59, KEY_EQUALS = 61;
4
+ /*
5
+ Basically, just copy-pasted functionality from fs-boilerplate v1.x, with some small changes (like we dont have angular.bind anymore, had to go with a workaround)
6
+ There might be a better way to organise constatns but I need to know use-cases
7
+ */
8
+ export class FsUtil {
9
+ intervals = {};
10
+ /**
11
+ * @deprecated use @firestitch/common/util/guid instead
12
+ */
13
+ guid(pattern) {
14
+ console.warn('@deprecated use @firestitch/common/util/guid instead');
15
+ pattern = pattern || 'xxxxxx';
16
+ return pattern.replace(/[xy]/g, function (c) {
17
+ var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
18
+ return v.toString(16);
19
+ });
20
+ }
21
+ /**
22
+ * @deprecated use import { uuid } from @firestitch/common/util; instead
23
+ */
24
+ uuid() {
25
+ console.warn('@deprecated use @firestitch/common/util/uuid instead');
26
+ return this.guid('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
27
+ }
28
+ /**
29
+ * @deprecated use import { resolve } from @firestitch/common/util; instead
30
+ */
31
+ resolve(promise, defaults = []) {
32
+ console.warn('@deprecated use @firestitch/common/util/resolve instead');
33
+ const result = defaults;
34
+ return new Promise(resolve => {
35
+ promise.then(function (data) {
36
+ Object.keys(data).forEach(key => result[key] = data[key]);
37
+ resolve(result);
38
+ });
39
+ });
40
+ }
41
+ /**
42
+ * @deprecated use _.toInteger() instead
43
+ */
44
+ int(value) {
45
+ console.warn('@deprecated use _.toInteger() instead');
46
+ value = parseInt(value);
47
+ if (isNaN(value)) {
48
+ value = 0;
49
+ }
50
+ return value;
51
+ }
52
+ /**
53
+ * @deprecated use _.toFinite() instead
54
+ */
55
+ float(value) {
56
+ console.warn('@deprecated use _.toFinite() instead');
57
+ value = parseFloat(value);
58
+ if (isNaN(value)) {
59
+ value = 0;
60
+ }
61
+ return value;
62
+ }
63
+ /**
64
+ * @deprecated use _.toString() instead
65
+ */
66
+ string(string) {
67
+ console.warn('@deprecated use _.toString() instead');
68
+ if (string === null || string === undefined) {
69
+ string = '';
70
+ }
71
+ return (string).toString();
72
+ }
73
+ /**
74
+ * @deprecated use import { isEmpty } from @firestitch/common/util; instead
75
+ */
76
+ isEmpty(value, options) {
77
+ console.warn('@deprecated use import { isEmpty } from @firestitch/common/util; instead');
78
+ options = options || {};
79
+ return value === undefined ||
80
+ value === null ||
81
+ value === false ||
82
+ value === '' ||
83
+ !this.string(value).length ||
84
+ (this.isObject(value) &&
85
+ (value.constructor.name === 'Object' && !Object.keys(value).length)) ||
86
+ (!options.zero && (value === 0 || value === '0'));
87
+ }
88
+ /**
89
+ * @deprecated use _.isInteger() instead
90
+ */
91
+ isInt(value, type) {
92
+ console.warn('@deprecated use _.isInteger() instead');
93
+ const int = !!this.string(value).match(/^\d+$/);
94
+ if (!int) {
95
+ return false;
96
+ }
97
+ if (type) {
98
+ return Number.isInteger(value);
99
+ }
100
+ return true;
101
+ }
102
+ /**
103
+ * @deprecated use _.each() instead {@link https://lodash.com/docs/4.17.5#forEach}
104
+ */
105
+ each(object, func) {
106
+ console.warn('@deprecated use _.each() instead {@link https://lodash.com/docs/4.17.5#forEach}');
107
+ if (!this.isArray(object) && !this.isObject(object)) {
108
+ return;
109
+ }
110
+ Object.keys(object).forEach(function (key) {
111
+ func(object[key], key);
112
+ });
113
+ }
114
+ /**
115
+ * @deprecated use _.isArrayLikeObject() {@link https://lodash.com/docs/4.17.5#isArrayLikeObject}
116
+ * or _.isObject() {@link https://lodash.com/docs/4.17.5#isObject} instead
117
+ */
118
+ isObject(value) {
119
+ console.warn('@deprecated use _.isArrayLikeObject() {@link https://lodash.com/docs/4.17.5#isArrayLikeObject} or _.isObject() {@link https://lodash.com/docs/4.17.5#isObject} instead');
120
+ return value !== null && typeof value === 'object' && !this.isArray(value);
121
+ }
122
+ /**
123
+ * @deprecated use _.isString() instead {@link https://lodash.com/docs/4.17.5#isString}
124
+ */
125
+ isString(value) {
126
+ console.warn('@deprecated use _.isString() instead {@link https://lodash.com/docs/4.17.5#isString}');
127
+ return typeof value === 'string' || value instanceof String;
128
+ }
129
+ /**
130
+ * @deprecated use _.isArray() instead {@link https://lodash.com/docs/4.17.5#isArray}
131
+ */
132
+ isArray(value) {
133
+ console.warn('@deprecated use _.isArray() instead {@link https://lodash.com/docs/4.17.5#isArray}');
134
+ return value instanceof Array;
135
+ }
136
+ /**
137
+ * @deprecated use import { isNumeric } from @firestitch/common/util; instead
138
+ */
139
+ isNumeric(value) {
140
+ console.warn('@deprecated use import { isNumeric } from @firestitch/common/util; instead');
141
+ return this.string(value).length && !!this.string(value).match(/^-?\d*\.?\d*$/);
142
+ }
143
+ /**
144
+ * @deprecated use import { isClass } from @firestitch/common/util; instead
145
+ */
146
+ isClass(value, cls) {
147
+ console.warn('@deprecated use import { isClass } from @firestitch/common/util; instead');
148
+ if (this.isObject(value)) {
149
+ if (this.isString(cls)) {
150
+ if (value.constructor) {
151
+ if (value.constructor.name === cls) {
152
+ return true;
153
+ }
154
+ }
155
+ }
156
+ else {
157
+ if (value instanceof cls) {
158
+ return true;
159
+ }
160
+ }
161
+ }
162
+ return false;
163
+ }
164
+ /**
165
+ * @deprecated use _.isBoolean() instead {@link https://lodash.com/docs/4.17.5#isBoolean}
166
+ */
167
+ isBoolean(value) {
168
+ console.warn('@deprecated use _.isBoolean() instead {@link https://lodash.com/docs/4.17.5#isBoolean}');
169
+ return value === true || value === false;
170
+ }
171
+ /**
172
+ * @deprecated use import { value } from @firestitch/common/util; instead
173
+ */
174
+ value(object, key, def) {
175
+ console.warn('@deprecated use import { value } from @firestitch/common/util; instead');
176
+ if (this.isObject(object) || this.isArray(object)) {
177
+ if (object.hasOwnProperty(key)) {
178
+ return object[key];
179
+ }
180
+ }
181
+ return def;
182
+ }
183
+ throttle(func, wait) {
184
+ console.warn('@deprecated use import { throttle } from @firestitch/common/util; instead');
185
+ let waiting = false; // Initially, we're not waiting
186
+ return function () {
187
+ if (!waiting) { // If we're not waiting
188
+ func.apply(null, arguments); // Execute users function
189
+ waiting = true; // Prevent future invocations
190
+ setTimeout(function () {
191
+ waiting = false; // And allow future invocations
192
+ }, wait);
193
+ }
194
+ };
195
+ }
196
+ /**
197
+ * @deprecated use import { debounce } from @firestitch/common/util; instead
198
+ */
199
+ debounce(func, wait, immediate) {
200
+ console.warn('@deprecated use import { debounce } from @firestitch/common/util; instead');
201
+ var timeout;
202
+ return function () {
203
+ var context = this, args = arguments;
204
+ var later = function () {
205
+ timeout = null;
206
+ if (!immediate)
207
+ func.apply(context, args);
208
+ };
209
+ var callNow = immediate && !timeout;
210
+ clearTimeout(timeout);
211
+ timeout = setTimeout(later, wait);
212
+ if (callNow)
213
+ func.apply(context, args);
214
+ };
215
+ }
216
+ /**
217
+ * @deprecated use import { length } from @firestitch/common/util; instead
218
+ */
219
+ length(object) {
220
+ console.warn('@deprecated use import { length } from @firestitch/common/util; instead');
221
+ if (this.isObject(object)) {
222
+ return Object.keys(object).length;
223
+ }
224
+ if (this.isArray(object)) {
225
+ return object.length;
226
+ }
227
+ return 0;
228
+ }
229
+ /**
230
+ * @deprecated use import { boolean } from @firestitch/common/util; instead
231
+ */
232
+ boolean(value) {
233
+ console.warn('@deprecated use import { boolean } from @firestitch/common/util; instead');
234
+ return this.string(value).toLowerCase() !== 'false' && !!value;
235
+ }
236
+ /**
237
+ * @deprecated use import { stringify } from @firestitch/common/util; instead
238
+ */
239
+ stringify(value) {
240
+ console.warn('@deprecated use import { stringify } from @firestitch/common/util; instead');
241
+ return JSON.stringify(value);
242
+ }
243
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
244
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsUtil });
245
+ }
246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsUtil, decorators: [{
247
+ type: Injectable
248
+ }] });
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlcy91dGlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsRUFDdkIsUUFBUSxHQUFHLENBQUMsRUFDWixhQUFhLEdBQUcsQ0FBQyxFQUNqQixPQUFPLEdBQUcsQ0FBQyxFQUNYLFNBQVMsR0FBRyxFQUFFLEVBQ2QsVUFBVSxHQUFHLEVBQUUsRUFDZixTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsV0FBVyxHQUFHLEVBQUUsRUFDaEIsT0FBTyxHQUFHLEVBQUUsRUFDWixTQUFTLEdBQUcsRUFBRSxFQUNkLGFBQWEsR0FBRyxFQUFFLEVBQ2xCLFVBQVUsR0FBRyxFQUFFLEVBQ2YsU0FBUyxHQUFHLEVBQUUsRUFDZCxXQUFXLEdBQUcsRUFBRSxFQUNoQixhQUFhLEdBQUcsRUFBRSxFQUNsQixPQUFPLEdBQUcsRUFBRSxFQUNaLFFBQVEsR0FBRyxFQUFFLEVBQ2IsUUFBUSxHQUFHLEVBQUUsRUFDYixNQUFNLEdBQUcsRUFBRSxFQUNYLFNBQVMsR0FBRyxFQUFFLEVBQ2QsUUFBUSxHQUFHLEVBQUUsRUFDYixlQUFlLEdBQUcsRUFBRSxFQUNwQixVQUFVLEdBQUcsRUFBRSxFQUNmLFVBQVUsR0FBRyxFQUFFLEVBQ2YsS0FBSyxHQUFHLEVBQUUsRUFDVixLQUFLLEdBQUcsRUFBRSxFQUNWLEtBQUssR0FBRyxFQUFFLEVBQ1YsS0FBSyxHQUFHLEVBQUUsRUFDVixLQUFLLEdBQUcsRUFBRSxFQUNWLEtBQUssR0FBRyxFQUFFLEVBQ1YsS0FBSyxHQUFHLEVBQUUsRUFDVixLQUFLLEdBQUcsRUFBRSxFQUNWLEtBQUssR0FBRyxFQUFFLEVBQ1YsS0FBSyxHQUFHLEVBQUUs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QUFDO0lBQ04sQ0FBQztJQUVEOztNQUVFO0lBQ0ssTUFBTSxDQUFDLE1BQU07UUFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO1FBQ3hGLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUN6QixDQUFDO1FBRUQsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQ7O01BRUU7SUFDSyxPQUFPLENBQUMsS0FBSztRQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7TUFFRTtJQUNLLFNBQVMsQ0FBQyxLQUFLO1FBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEVBQTRFLENBQUMsQ0FBQztRQUMzRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzt3R0E3UVEsTUFBTTs0R0FBTixNQUFNOzs0RkFBTixNQUFNO2tCQURsQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgS0VZX0NBTkNFTCA9IDMsXG4gICAgS0VZX0hFTFAgPSA2LFxuICAgIEtFWV9CQUNLU1BBQ0UgPSA4LFxuICAgIEtFWV9UQUIgPSA5LFxuICAgIEtFWV9DTEVBUiA9IDEyLFxuICAgIEtFWV9SRVRVUk4gPSAxMyxcbiAgICBLRVlfRU5URVIgPSAxNCxcbiAgICBLRVlfU0hJRlQgPSAxNixcbiAgICBLRVlfQ09OVFJPTCA9IDE3LFxuICAgIEtFWV9BTFQgPSAxOCxcbiAgICBLRVlfUEFVU0UgPSAxOSxcbiAgICBLRVlfQ0FQU19MT0NLID0gMjAsXG4gICAgS0VZX0VTQ0FQRSA9IDI3LFxuICAgIEtFWV9TUEFDRSA9IDMyLFxuICAgIEtFWV9QQUdFX1VQID0gMzMsXG4gICAgS0VZX1BBR0VfRE9XTiA9IDM0LFxuICAgIEtFWV9FTkQgPSAzNSxcbiAgICBLRVlfSE9NRSA9IDM2LFxuICAgIEtFWV9MRUZUID0gMzcsXG4gICAgS0VZX1VQID0gMzgsXG4gICAgS0VZX1JJR0hUID0gMzksXG4gICAgS0VZX0RPV04gPSA0MCxcbiAgICBLRVlfUFJJTlRTQ1JFRU4gPSA0NCxcbiAgICBLRVlfSU5TRVJUID0gNDUsXG4gICAgS0VZX0RFTEVURSA9IDQ2LFxuICAgIEtFWV8wID0gNDgsXG4gICAgS0VZXzEgPSA0OSxcbiAgICBLRVlfMiA9IDUwLFxuICAgIEtFWV8zID0gNTEsXG4gICAgS0VZXzQgPSA1MixcbiAgICBLRVlfNSA9IDUzLFxuICAgIEtFWV82ID0gNTQsXG4gICAgS0VZXzcgPSA1NSxcbiAgICBLRVlfOCA9IDU2LFxuICAgIEtFWV85ID0gNTcsXG4gICAgS0VZX1NFTUlDT0xPTiA9IDU5LFxuICAgIEtFWV9FUVVBTFMgPSA2MTtcblxuLypcbiAgICBCYXNpY2FsbHksIGp1c3QgY29weS1wYXN0ZWQgZnVuY3Rpb25hbGl0eSBmcm9tIGZzLWJvaWxlcnBsYXRlIHYxLngsIHdpdGggc29tZSBzbWFsbCBjaGFuZ2VzIChsaWtlIHdlIGRvbnQgaGF2ZSBhbmd1bGFyLmJpbmQgYW55bW9yZSwgaGFkIHRvIGdvIHdpdGggYSB3b3JrYXJvdW5kKVxuICAgIFRoZXJlIG1pZ2h0IGJlIGEgYmV0dGVyIHdheSB0byBvcmdhbmlzZSBjb25zdGF0bnMgYnV0IEkgbmVlZCB0byBrbm93IHVzZS1jYXNlc1xuKi9cblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRnNVdGlsIHtcblxuICAgIHByaXZhdGUgaW50ZXJ2YWxzID0ge307XG5cbiAgICAvKipcbiAgICAqIEBkZXByZWNhdGVkIHVzZSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbC9ndWlkIGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBndWlkKHBhdHRlcm4/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgQGZpcmVzdGl0Y2gvY29tbW9uL3V0aWwvZ3VpZCBpbnN0ZWFkJyk7XG4gICAgICBwYXR0ZXJuID0gcGF0dGVybiB8fCAneHh4eHh4JztcbiAgICAgIHJldHVybiBwYXR0ZXJuLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24oYykge1xuICAgICAgICB2YXIgciA9IE1hdGgucmFuZG9tKCkgKiAxNiB8IDAsIHYgPSBjID09ICd4JyA/IHIgOiAociAmIDB4MyB8IDB4OCk7XG4gICAgICAgIHJldHVybiB2LnRvU3RyaW5nKDE2KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyB1dWlkIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIHV1aWQoKTogc3RyaW5nIHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsL3V1aWQgaW5zdGVhZCcpO1xuICAgICAgcmV0dXJuIHRoaXMuZ3VpZCgneHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4Jyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHJlc29sdmUgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgcmVzb2x2ZShwcm9taXNlOiBQcm9taXNlPG9iamVjdD4sIGRlZmF1bHRzID0gW10pOiBQcm9taXNlPG9iamVjdD4ge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgQGZpcmVzdGl0Y2gvY29tbW9uL3V0aWwvcmVzb2x2ZSBpbnN0ZWFkJyk7XG4gICAgICBjb25zdCByZXN1bHQgPSBkZWZhdWx0cztcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIHByb21pc2UudGhlbihmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goa2V5ID0+IHJlc3VsdFtrZXldID0gZGF0YVtrZXldKVxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KVxuICAgICAgICAgICAgfSk7XG4gICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgXy50b0ludGVnZXIoKSBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaW50KHZhbHVlOiBhbnkpOiBudW1iZXIge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBfLnRvSW50ZWdlcigpIGluc3RlYWQnKTtcbiAgICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7XG4gICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIF8udG9GaW5pdGUoKSBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgZmxvYXQodmFsdWUpOiBudW1iZXIge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgXy50b0Zpbml0ZSgpIGluc3RlYWQnKTtcbiAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgdmFsdWUgPSAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBfLnRvU3RyaW5nKCkgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIHN0cmluZyhzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgXy50b1N0cmluZygpIGluc3RlYWQnKTtcbiAgICAgICAgaWYgKHN0cmluZyA9PT0gbnVsbCB8fCBzdHJpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc3RyaW5nID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKHN0cmluZykudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3V0aWw7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBpc0VtcHR5KHZhbHVlLCBvcHRpb25zPyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZCcpO1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgICAgICAgICB2YWx1ZSA9PT0gZmFsc2UgfHxcbiAgICAgICAgICAgIHZhbHVlID09PSAnJyB8fFxuICAgICAgICAgICAgIXRoaXMuc3RyaW5nKHZhbHVlKS5sZW5ndGggfHxcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICB0aGlzLmlzT2JqZWN0KHZhbHVlKSAmJlxuICAgICAgICAgICAgICAgICh2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09PSAnT2JqZWN0JyAmJiAhT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCkpIHx8XG4gICAgICAgICAgICAgICAgKCFvcHRpb25zLnplcm8gJiYgKHZhbHVlID09PSAwIHx8IHZhbHVlID09PSAnMCcpXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBfLmlzSW50ZWdlcigpIGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBpc0ludCh2YWx1ZSwgdHlwZT8pIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgXy5pc0ludGVnZXIoKSBpbnN0ZWFkJyk7XG4gICAgICAgIGNvbnN0IGludCA9ICEhdGhpcy5zdHJpbmcodmFsdWUpLm1hdGNoKC9eXFxkKyQvKTtcblxuICAgICAgICBpZiAoIWludCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBfLmVhY2goKSBpbnN0ZWFkIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjZm9yRWFjaH1cbiAgICAqL1xuICAgIHB1YmxpYyBlYWNoKG9iamVjdCwgZnVuYykge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgXy5lYWNoKCkgaW5zdGVhZCB7QGxpbmsgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy41I2ZvckVhY2h9Jyk7XG4gICAgICBpZiAoIXRoaXMuaXNBcnJheShvYmplY3QpICYmICF0aGlzLmlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBPYmplY3Qua2V5cyhvYmplY3QpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgIGZ1bmMob2JqZWN0W2tleV0sa2V5KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBfLmlzQXJyYXlMaWtlT2JqZWN0KCkge0BsaW5rIGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuNSNpc0FycmF5TGlrZU9iamVjdH1cbiAgICAgKiBvciBfLmlzT2JqZWN0KCkge0BsaW5rIGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuNSNpc09iamVjdH0gaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIGlzT2JqZWN0KHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBfLmlzQXJyYXlMaWtlT2JqZWN0KCkge0BsaW5rIGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuNSNpc0FycmF5TGlrZU9iamVjdH0gb3IgXy5pc09iamVjdCgpIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjaXNPYmplY3R9IGluc3RlYWQnKTtcbiAgICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICF0aGlzLmlzQXJyYXkodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAgKiBAZGVwcmVjYXRlZCB1c2UgXy5pc1N0cmluZygpIGluc3RlYWQge0BsaW5rIGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuNSNpc1N0cmluZ31cbiAgICAqL1xuICAgIHB1YmxpYyBpc1N0cmluZyh2YWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgXy5pc1N0cmluZygpIGluc3RlYWQge0BsaW5rIGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuNSNpc1N0cmluZ30nKTtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBfLmlzQXJyYXkoKSBpbnN0ZWFkIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjaXNBcnJheX1cbiAgICAqL1xuICAgIHB1YmxpYyBpc0FycmF5KHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBfLmlzQXJyYXkoKSBpbnN0ZWFkIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjaXNBcnJheX0nKTtcbiAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpc051bWVyaWMgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaXNOdW1lcmljKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpc051bWVyaWMgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkJyk7XG4gICAgICByZXR1cm4gdGhpcy5zdHJpbmcodmFsdWUpLmxlbmd0aCAmJiAhIXRoaXMuc3RyaW5nKHZhbHVlKS5tYXRjaCgvXi0/XFxkKlxcLj9cXGQqJC8pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpc0NsYXNzIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIGlzQ2xhc3ModmFsdWUsIGNscykge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpc0NsYXNzIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZCcpO1xuICAgICAgICBpZiAodGhpcy5pc09iamVjdCh2YWx1ZSkpIHtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNTdHJpbmcoY2xzKSkge1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmNvbnN0cnVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09PSBjbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgY2xzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgICogQGRlcHJlY2F0ZWQgdXNlIF8uaXNCb29sZWFuKCkgaW5zdGVhZCB7QGxpbmsgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy41I2lzQm9vbGVhbn1cbiAgICAqL1xuICAgIHB1YmxpYyBpc0Jvb2xlYW4odmFsdWUpOiBib29sZWFuIHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIF8uaXNCb29sZWFuKCkgaW5zdGVhZCB7QGxpbmsgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy41I2lzQm9vbGVhbn0nKTtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHZhbHVlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIHZhbHVlKG9iamVjdCwga2V5LCBkZWYpOiBhbnkge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgdmFsdWUgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkJyk7XG4gICAgICAgIGlmICh0aGlzLmlzT2JqZWN0KG9iamVjdCkgfHwgdGhpcy5pc0FycmF5KG9iamVjdCkpIHtcblxuICAgICAgICAgICAgaWYgKG9iamVjdC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlZjtcbiAgICB9XG5cbiAgICBwdWJsaWMgdGhyb3R0bGUoZnVuYywgd2FpdCkge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgdGhyb3R0bGUgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkJyk7XG4gICAgICBsZXQgd2FpdGluZyA9IGZhbHNlOyAgICAgICAgICAgICAgICAgIFx0Ly8gSW5pdGlhbGx5LCB3ZSdyZSBub3Qgd2FpdGluZ1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgeyAgICAgICAgICAgICAgIFx0XHQvLyBXZSByZXR1cm4gYSB0aHJvdHRsZWQgZnVuY3Rpb25cbiAgICAgICAgICAgIGlmICghd2FpdGluZykgeyAgICAgICAgICAgICAgICAgICBcdC8vIElmIHdlJ3JlIG5vdCB3YWl0aW5nXG4gICAgICAgICAgICAgICAgZnVuYy5hcHBseShudWxsLCBhcmd1bWVudHMpOyAgICAgLy8gRXhlY3V0ZSB1c2VycyBmdW5jdGlvblxuICAgICAgICAgICAgICAgIHdhaXRpbmcgPSB0cnVlOyAgICAgICAgICAgICAgIFx0Ly8gUHJldmVudCBmdXR1cmUgaW52b2NhdGlvbnNcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgICBcdFx0Ly8gQWZ0ZXIgYSBwZXJpb2Qgb2YgdGltZVxuICAgICAgICAgICAgICAgICAgICB3YWl0aW5nID0gZmFsc2U7ICAgICAgICAgIFx0Ly8gQW5kIGFsbG93IGZ1dHVyZSBpbnZvY2F0aW9uc1xuICAgICAgICAgICAgICAgIH0sIHdhaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGRlYm91bmNlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIGRlYm91bmNlKGZ1bmMsIHdhaXQsIGltbWVkaWF0ZSkge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkJyk7XG4gICAgICB2YXIgdGltZW91dDtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gdGhpcywgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgICAgIHZhciBsYXRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoIWltbWVkaWF0ZSkgZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2YXIgY2FsbE5vdyA9IGltbWVkaWF0ZSAmJiAhdGltZW91dDtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGxhdGVyLCB3YWl0KTtcbiAgICAgICAgICAgIGlmIChjYWxsTm93KSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBsZW5ndGggfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgbGVuZ3RoKG9iamVjdCk6IG51bWJlciB7XG4gICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBsZW5ndGggfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkJyk7XG4gICAgICBpZiAodGhpcy5pc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0FycmF5KG9iamVjdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmplY3QubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGJvb2xlYW4gfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgYm9vbGVhbih2YWx1ZSkge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgYm9vbGVhbiB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3V0aWw7IGluc3RlYWQnKTtcbiAgICAgIHJldHVybiB0aGlzLnN0cmluZyh2YWx1ZSkudG9Mb3dlckNhc2UoKSAhPT0gJ2ZhbHNlJyAmJiAhIXZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBzdHJpbmdpZnkgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgc3RyaW5naWZ5KHZhbHVlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBzdHJpbmdpZnkgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkJyk7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { FsUtil } from './util.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./util.service";
5
+ export class FsValidate {
6
+ fsUtil;
7
+ constructor(fsUtil) {
8
+ this.fsUtil = fsUtil;
9
+ }
10
+ /**
11
+ * @deprecated use import { email } from @firestitch/common/validate; instead
12
+ */
13
+ phone(value) {
14
+ const valid = /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/.test(value);
15
+ return valid || !String(value).length;
16
+ }
17
+ /**
18
+ * @deprecated use import { email } from @firestitch/common/validate; instead
19
+ */
20
+ email(value) {
21
+ return !!this.fsUtil.string(value).match(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
22
+ }
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsValidate, deps: [{ token: i1.FsUtil }], target: i0.ɵɵFactoryTarget.Injectable });
24
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsValidate });
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsValidate, decorators: [{
27
+ type: Injectable
28
+ }], ctorParameters: () => [{ type: i1.FsUtil }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFpbGRhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvdmFpbGRhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBR3hDLE1BQU0sT0FBTyxVQUFVO0lBRUM7SUFBcEIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBSSxDQUFDO0lBRXZDOztNQUVFO0lBQ0YsS0FBSyxDQUFDLEtBQUs7UUFDUCxNQUFNLEtBQUssR0FBRywyREFBMkQsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEYsT0FBTyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7TUFFRTtJQUNGLEtBQUssQ0FBQyxLQUFLO1FBQ1AsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLHdKQUF3SixDQUFDLENBQUM7SUFDdk0sQ0FBQzt3R0FqQlEsVUFBVTs0R0FBVixVQUFVOzs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRnNVdGlsIH0gZnJvbSAnLi91dGlsLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRnNWYWxpZGF0ZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZzVXRpbDogRnNVdGlsKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBlbWFpbCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3ZhbGlkYXRlOyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwaG9uZSh2YWx1ZSkge1xuICAgICAgICBjb25zdCB2YWxpZCA9IC9eW1xcK10/WyhdP1swLTldezN9WyldP1stXFxzXFwuXT9bMC05XXszfVstXFxzXFwuXT9bMC05XXs0LDZ9JC8udGVzdCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiB2YWxpZCB8fCAhU3RyaW5nKHZhbHVlKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBlbWFpbCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3ZhbGlkYXRlOyBpbnN0ZWFkXG4gICAgKi9cbiAgICBlbWFpbCh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gISF0aGlzLmZzVXRpbC5zdHJpbmcodmFsdWUpLm1hdGNoKC9eKChbXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvKTtcbiAgICB9XG59XG4iXX0=
@@ -5,4 +5,4 @@ export function compare(query, item) {
5
5
  }
6
6
  return value;
7
7
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2FycmF5L2NvbXBhcmUvY29tcGFyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJO0lBRWpDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztJQUNqQixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtRQUN2QixLQUFLLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDMUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY29tcGFyZShxdWVyeSwgaXRlbSkge1xuXG4gIGxldCB2YWx1ZSA9IHRydWU7XG4gIGZvciAoY29uc3Qga2V5IGluIHF1ZXJ5KSB7XG4gICAgdmFsdWUgPSB2YWx1ZSAmJiBpdGVtW2tleV0gPT0gcXVlcnlba2V5XTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2FycmF5L2NvbXBhcmUvY29tcGFyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJO0lBRWpDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztJQUNqQixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3hCLEtBQUssR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmUocXVlcnksIGl0ZW0pIHtcblxuICBsZXQgdmFsdWUgPSB0cnVlO1xuICBmb3IgKGNvbnN0IGtleSBpbiBxdWVyeSkge1xuICAgIHZhbHVlID0gdmFsdWUgJiYgaXRlbVtrZXldID09IHF1ZXJ5W2tleV07XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { compare } from '../compare';
2
+ export function filter(array, query) {
3
+ if (typeof query !== 'function') {
4
+ const queryObj = query;
5
+ query = (item) => {
6
+ return compare(queryObj, item);
7
+ };
8
+ }
9
+ const isarray = Array.isArray(array);
10
+ const list = isarray ? [] : {};
11
+ if (isarray) {
12
+ array.forEach(function (item, idx) {
13
+ if (query(item)) {
14
+ list.push(item);
15
+ }
16
+ });
17
+ }
18
+ else {
19
+ Object.keys(array).forEach(key => {
20
+ if (query(array[key])) {
21
+ list[key] = array[key];
22
+ }
23
+ });
24
+ }
25
+ return list;
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvYXJyYXkvZmlsdGVyL2ZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXJDLE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUs7SUFFakMsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdkIsS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDZixPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsTUFBTSxJQUFJLEdBQVEsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNwQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRSxHQUFHO1lBQy9CLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wYXJlIH0gZnJvbSAnLi4vY29tcGFyZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXIoYXJyYXksIHF1ZXJ5KSB7XG5cbiAgaWYgKHR5cGVvZiBxdWVyeSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IHF1ZXJ5T2JqID0gcXVlcnk7XG4gICAgcXVlcnkgPSAoaXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIGNvbXBhcmUocXVlcnlPYmosIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGlzYXJyYXkgPSBBcnJheS5pc0FycmF5KGFycmF5KTtcbiAgY29uc3QgbGlzdDogYW55ID0gaXNhcnJheSA/IFtdIDoge307XG4gIGlmIChpc2FycmF5KSB7XG4gICAgYXJyYXkuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaWR4KSB7XG4gICAgICBpZiAocXVlcnkoaXRlbSkpIHtcbiAgICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIE9iamVjdC5rZXlzKGFycmF5KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAocXVlcnkoYXJyYXlba2V5XSkpIHtcbiAgICAgICAgbGlzdFtrZXldID0gYXJyYXlba2V5XTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIHJldHVybiBsaXN0O1xufVxuIl19