@stamhoofd/structures 2.14.0 → 2.16.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 (277) hide show
  1. package/dist/index.d.ts +7 -13
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +7 -14
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/BalanceItem.d.ts +2 -0
  6. package/dist/src/BalanceItem.d.ts.map +1 -1
  7. package/dist/src/BalanceItem.js +24 -3
  8. package/dist/src/BalanceItem.js.map +1 -1
  9. package/dist/src/BalanceItemDetailed.d.ts +1 -0
  10. package/dist/src/BalanceItemDetailed.d.ts.map +1 -1
  11. package/dist/src/BalanceItemDetailed.js +4 -0
  12. package/dist/src/BalanceItemDetailed.js.map +1 -1
  13. package/dist/src/Document.d.ts +1 -1
  14. package/dist/src/Document.d.ts.map +1 -1
  15. package/dist/src/GroupSettings.d.ts +1 -1
  16. package/dist/src/GroupSettings.d.ts.map +1 -1
  17. package/dist/src/OrganizationMetaData.d.ts.map +1 -1
  18. package/dist/src/OrganizationMetaData.js +3 -0
  19. package/dist/src/OrganizationMetaData.js.map +1 -1
  20. package/dist/src/PaymentMethod.js +3 -3
  21. package/dist/src/PaymentMethod.js.map +1 -1
  22. package/dist/src/Permissions.js +6 -6
  23. package/dist/src/Permissions.js.map +1 -1
  24. package/dist/src/Platform.d.ts.map +1 -1
  25. package/dist/src/Platform.js +3 -3
  26. package/dist/src/Platform.js.map +1 -1
  27. package/dist/src/Version.d.ts +1 -1
  28. package/dist/src/Version.js +1 -1
  29. package/dist/src/addresses/Premise.d.ts +2 -0
  30. package/dist/src/addresses/Premise.d.ts.map +1 -1
  31. package/dist/src/addresses/Premise.js +8 -0
  32. package/dist/src/addresses/Premise.js.map +1 -1
  33. package/dist/src/billing/STPackage.js +2 -2
  34. package/dist/src/billing/STPackage.js.map +1 -1
  35. package/dist/src/email/EditorSmartButton.d.ts.map +1 -1
  36. package/dist/src/email/EditorSmartButton.js +6 -0
  37. package/dist/src/email/EditorSmartButton.js.map +1 -1
  38. package/dist/src/email/Email.d.ts +1 -1
  39. package/dist/src/email/Email.d.ts.map +1 -1
  40. package/dist/src/email/Email.js +3 -3
  41. package/dist/src/email/Email.js.map +1 -1
  42. package/dist/src/email/EmailTemplate.d.ts +6 -1
  43. package/dist/src/email/EmailTemplate.d.ts.map +1 -1
  44. package/dist/src/email/EmailTemplate.js +22 -0
  45. package/dist/src/email/EmailTemplate.js.map +1 -1
  46. package/dist/src/filters/ExcelExportRequest.d.ts +29 -0
  47. package/dist/src/filters/ExcelExportRequest.d.ts.map +1 -0
  48. package/dist/src/filters/ExcelExportRequest.js +62 -0
  49. package/dist/src/filters/ExcelExportRequest.js.map +1 -0
  50. package/dist/src/filters/{new/FilteredRequest.d.ts → FilteredRequest.d.ts} +1 -1
  51. package/dist/src/filters/FilteredRequest.d.ts.map +1 -0
  52. package/dist/src/filters/{new/FilteredRequest.js → FilteredRequest.js} +3 -3
  53. package/dist/src/filters/FilteredRequest.js.map +1 -0
  54. package/dist/src/filters/InMemoryFilter.d.ts.map +1 -0
  55. package/dist/src/filters/{new/InMemoryFilter.js → InMemoryFilter.js} +2 -2
  56. package/dist/src/filters/InMemoryFilter.js.map +1 -0
  57. package/{esm/dist/src/filters/new → dist/src/filters}/InMemorySorter.d.ts +1 -1
  58. package/dist/src/filters/InMemorySorter.d.ts.map +1 -0
  59. package/dist/src/filters/{new/InMemorySorter.js → InMemorySorter.js} +2 -2
  60. package/dist/src/filters/InMemorySorter.js.map +1 -0
  61. package/dist/src/filters/PropertyFilter.d.ts +1 -1
  62. package/dist/src/filters/PropertyFilter.d.ts.map +1 -1
  63. package/dist/src/filters/PropertyFilter.js +3 -14
  64. package/dist/src/filters/PropertyFilter.js.map +1 -1
  65. package/dist/src/filters/SortList.d.ts.map +1 -0
  66. package/dist/src/filters/{new/SortList.js → SortList.js} +2 -2
  67. package/dist/src/filters/SortList.js.map +1 -0
  68. package/dist/src/filters/Sorters.d.ts.map +1 -0
  69. package/dist/src/filters/{new/Sorters.js → Sorters.js} +1 -2
  70. package/dist/src/filters/Sorters.js.map +1 -0
  71. package/dist/src/filters/StamhoofdFilter.d.ts.map +1 -0
  72. package/dist/src/filters/{new/StamhoofdFilter.js → StamhoofdFilter.js} +3 -4
  73. package/dist/src/filters/StamhoofdFilter.js.map +1 -0
  74. package/dist/src/filters/inMemoryFilterDefinitions.d.ts +3 -0
  75. package/dist/src/filters/inMemoryFilterDefinitions.d.ts.map +1 -0
  76. package/dist/src/filters/{filterDefinitions.js → inMemoryFilterDefinitions.js} +2 -2
  77. package/dist/src/filters/inMemoryFilterDefinitions.js.map +1 -0
  78. package/dist/src/members/MemberWithRegistrationsBlob.d.ts +1 -1
  79. package/dist/src/members/MemberWithRegistrationsBlob.d.ts.map +1 -1
  80. package/dist/src/members/MemberWithRegistrationsBlob.js +3 -3
  81. package/dist/src/members/MemberWithRegistrationsBlob.js.map +1 -1
  82. package/dist/src/members/PlatformMember.d.ts +1 -1
  83. package/dist/src/members/PlatformMember.d.ts.map +1 -1
  84. package/dist/src/members/PlatformMember.js.map +1 -1
  85. package/dist/src/members/records/RecordCategory.d.ts +1 -1
  86. package/dist/src/members/records/RecordCategory.d.ts.map +1 -1
  87. package/dist/src/members/records/RecordCategory.js.map +1 -1
  88. package/dist/src/webshops/Checkout.d.ts +2 -2
  89. package/dist/src/webshops/Checkout.d.ts.map +1 -1
  90. package/dist/src/webshops/Checkout.js.map +1 -1
  91. package/esm/dist/index.d.ts +7 -13
  92. package/esm/dist/index.d.ts.map +1 -1
  93. package/esm/dist/index.js +7 -14
  94. package/esm/dist/index.js.map +1 -1
  95. package/esm/dist/src/BalanceItem.d.ts +2 -0
  96. package/esm/dist/src/BalanceItem.d.ts.map +1 -1
  97. package/esm/dist/src/BalanceItem.js +19 -0
  98. package/esm/dist/src/BalanceItem.js.map +1 -1
  99. package/esm/dist/src/BalanceItemDetailed.d.ts +1 -0
  100. package/esm/dist/src/BalanceItemDetailed.d.ts.map +1 -1
  101. package/esm/dist/src/BalanceItemDetailed.js +4 -0
  102. package/esm/dist/src/BalanceItemDetailed.js.map +1 -1
  103. package/esm/dist/src/Document.d.ts +1 -1
  104. package/esm/dist/src/Document.d.ts.map +1 -1
  105. package/esm/dist/src/GroupSettings.d.ts +1 -1
  106. package/esm/dist/src/GroupSettings.d.ts.map +1 -1
  107. package/esm/dist/src/OrganizationMetaData.d.ts.map +1 -1
  108. package/esm/dist/src/OrganizationMetaData.js +3 -0
  109. package/esm/dist/src/OrganizationMetaData.js.map +1 -1
  110. package/esm/dist/src/Platform.d.ts.map +1 -1
  111. package/esm/dist/src/Platform.js +3 -3
  112. package/esm/dist/src/Platform.js.map +1 -1
  113. package/esm/dist/src/Version.d.ts +1 -1
  114. package/esm/dist/src/Version.js +1 -1
  115. package/esm/dist/src/addresses/Premise.d.ts +2 -0
  116. package/esm/dist/src/addresses/Premise.d.ts.map +1 -1
  117. package/esm/dist/src/addresses/Premise.js +8 -0
  118. package/esm/dist/src/addresses/Premise.js.map +1 -1
  119. package/esm/dist/src/email/EditorSmartButton.d.ts.map +1 -1
  120. package/esm/dist/src/email/EditorSmartButton.js +6 -0
  121. package/esm/dist/src/email/EditorSmartButton.js.map +1 -1
  122. package/esm/dist/src/email/Email.d.ts +1 -1
  123. package/esm/dist/src/email/Email.d.ts.map +1 -1
  124. package/esm/dist/src/email/Email.js +1 -1
  125. package/esm/dist/src/email/Email.js.map +1 -1
  126. package/esm/dist/src/email/EmailTemplate.d.ts +6 -1
  127. package/esm/dist/src/email/EmailTemplate.d.ts.map +1 -1
  128. package/esm/dist/src/email/EmailTemplate.js +22 -0
  129. package/esm/dist/src/email/EmailTemplate.js.map +1 -1
  130. package/esm/dist/src/filters/ExcelExportRequest.d.ts +29 -0
  131. package/esm/dist/src/filters/ExcelExportRequest.d.ts.map +1 -0
  132. package/esm/dist/src/filters/ExcelExportRequest.js +55 -0
  133. package/esm/dist/src/filters/ExcelExportRequest.js.map +1 -0
  134. package/esm/dist/src/filters/{new/FilteredRequest.d.ts → FilteredRequest.d.ts} +1 -1
  135. package/esm/dist/src/filters/FilteredRequest.d.ts.map +1 -0
  136. package/esm/dist/src/filters/{new/FilteredRequest.js → FilteredRequest.js} +3 -3
  137. package/esm/dist/src/filters/FilteredRequest.js.map +1 -0
  138. package/esm/dist/src/filters/InMemoryFilter.d.ts.map +1 -0
  139. package/esm/dist/src/filters/InMemoryFilter.js.map +1 -0
  140. package/{dist/src/filters/new → esm/dist/src/filters}/InMemorySorter.d.ts +1 -1
  141. package/esm/dist/src/filters/InMemorySorter.d.ts.map +1 -0
  142. package/esm/dist/src/filters/InMemorySorter.js.map +1 -0
  143. package/esm/dist/src/filters/PropertyFilter.d.ts +1 -1
  144. package/esm/dist/src/filters/PropertyFilter.d.ts.map +1 -1
  145. package/esm/dist/src/filters/PropertyFilter.js +3 -14
  146. package/esm/dist/src/filters/PropertyFilter.js.map +1 -1
  147. package/esm/dist/src/filters/SortList.d.ts.map +1 -0
  148. package/esm/dist/src/filters/SortList.js.map +1 -0
  149. package/esm/dist/src/filters/Sorters.d.ts.map +1 -0
  150. package/esm/dist/src/filters/Sorters.js.map +1 -0
  151. package/esm/dist/src/filters/StamhoofdFilter.d.ts.map +1 -0
  152. package/esm/dist/src/filters/StamhoofdFilter.js.map +1 -0
  153. package/esm/dist/src/filters/inMemoryFilterDefinitions.d.ts +3 -0
  154. package/esm/dist/src/filters/inMemoryFilterDefinitions.d.ts.map +1 -0
  155. package/esm/dist/src/filters/{filterDefinitions.js → inMemoryFilterDefinitions.js} +2 -2
  156. package/esm/dist/src/filters/inMemoryFilterDefinitions.js.map +1 -0
  157. package/esm/dist/src/members/MemberWithRegistrationsBlob.d.ts +1 -1
  158. package/esm/dist/src/members/MemberWithRegistrationsBlob.d.ts.map +1 -1
  159. package/esm/dist/src/members/MemberWithRegistrationsBlob.js +2 -2
  160. package/esm/dist/src/members/MemberWithRegistrationsBlob.js.map +1 -1
  161. package/esm/dist/src/members/PlatformMember.d.ts +1 -1
  162. package/esm/dist/src/members/PlatformMember.d.ts.map +1 -1
  163. package/esm/dist/src/members/PlatformMember.js.map +1 -1
  164. package/esm/dist/src/members/records/RecordCategory.d.ts +1 -1
  165. package/esm/dist/src/members/records/RecordCategory.d.ts.map +1 -1
  166. package/esm/dist/src/members/records/RecordCategory.js.map +1 -1
  167. package/esm/dist/src/webshops/Checkout.d.ts +2 -2
  168. package/esm/dist/src/webshops/Checkout.d.ts.map +1 -1
  169. package/esm/dist/src/webshops/Checkout.js.map +1 -1
  170. package/package.json +2 -2
  171. package/dist/src/filters/ChoicesFilter.d.ts +0 -40
  172. package/dist/src/filters/ChoicesFilter.d.ts.map +0 -1
  173. package/dist/src/filters/ChoicesFilter.js +0 -131
  174. package/dist/src/filters/ChoicesFilter.js.map +0 -1
  175. package/dist/src/filters/DateFilter.d.ts +0 -41
  176. package/dist/src/filters/DateFilter.d.ts.map +0 -1
  177. package/dist/src/filters/DateFilter.js +0 -185
  178. package/dist/src/filters/DateFilter.js.map +0 -1
  179. package/dist/src/filters/FilterDefinition.d.ts +0 -51
  180. package/dist/src/filters/FilterDefinition.d.ts.map +0 -1
  181. package/dist/src/filters/FilterDefinition.js +0 -70
  182. package/dist/src/filters/FilterDefinition.js.map +0 -1
  183. package/dist/src/filters/FilterGroup.d.ts +0 -55
  184. package/dist/src/filters/FilterGroup.d.ts.map +0 -1
  185. package/dist/src/filters/FilterGroup.js +0 -194
  186. package/dist/src/filters/FilterGroup.js.map +0 -1
  187. package/dist/src/filters/FilterGroup.test.d.ts +0 -2
  188. package/dist/src/filters/FilterGroup.test.d.ts.map +0 -1
  189. package/dist/src/filters/FilterGroup.test.js +0 -80
  190. package/dist/src/filters/FilterGroup.test.js.map +0 -1
  191. package/dist/src/filters/NumberFilter.d.ts +0 -31
  192. package/dist/src/filters/NumberFilter.d.ts.map +0 -1
  193. package/dist/src/filters/NumberFilter.js +0 -167
  194. package/dist/src/filters/NumberFilter.js.map +0 -1
  195. package/dist/src/filters/RegistrationsFilter.d.ts +0 -44
  196. package/dist/src/filters/RegistrationsFilter.d.ts.map +0 -1
  197. package/dist/src/filters/RegistrationsFilter.js +0 -142
  198. package/dist/src/filters/RegistrationsFilter.js.map +0 -1
  199. package/dist/src/filters/StringFilter.d.ts +0 -24
  200. package/dist/src/filters/StringFilter.d.ts.map +0 -1
  201. package/dist/src/filters/StringFilter.js +0 -115
  202. package/dist/src/filters/StringFilter.js.map +0 -1
  203. package/dist/src/filters/filterDefinitions.d.ts +0 -3
  204. package/dist/src/filters/filterDefinitions.d.ts.map +0 -1
  205. package/dist/src/filters/filterDefinitions.js.map +0 -1
  206. package/dist/src/filters/new/FilteredRequest.d.ts.map +0 -1
  207. package/dist/src/filters/new/FilteredRequest.js.map +0 -1
  208. package/dist/src/filters/new/InMemoryFilter.d.ts.map +0 -1
  209. package/dist/src/filters/new/InMemoryFilter.js.map +0 -1
  210. package/dist/src/filters/new/InMemorySorter.d.ts.map +0 -1
  211. package/dist/src/filters/new/InMemorySorter.js.map +0 -1
  212. package/dist/src/filters/new/SortList.d.ts.map +0 -1
  213. package/dist/src/filters/new/SortList.js.map +0 -1
  214. package/dist/src/filters/new/Sorters.d.ts.map +0 -1
  215. package/dist/src/filters/new/Sorters.js.map +0 -1
  216. package/dist/src/filters/new/StamhoofdFilter.d.ts.map +0 -1
  217. package/dist/src/filters/new/StamhoofdFilter.js.map +0 -1
  218. package/esm/dist/src/filters/ChoicesFilter.d.ts +0 -40
  219. package/esm/dist/src/filters/ChoicesFilter.d.ts.map +0 -1
  220. package/esm/dist/src/filters/ChoicesFilter.js +0 -125
  221. package/esm/dist/src/filters/ChoicesFilter.js.map +0 -1
  222. package/esm/dist/src/filters/DateFilter.d.ts +0 -41
  223. package/esm/dist/src/filters/DateFilter.d.ts.map +0 -1
  224. package/esm/dist/src/filters/DateFilter.js +0 -180
  225. package/esm/dist/src/filters/DateFilter.js.map +0 -1
  226. package/esm/dist/src/filters/FilterDefinition.d.ts +0 -51
  227. package/esm/dist/src/filters/FilterDefinition.d.ts.map +0 -1
  228. package/esm/dist/src/filters/FilterDefinition.js +0 -63
  229. package/esm/dist/src/filters/FilterDefinition.js.map +0 -1
  230. package/esm/dist/src/filters/FilterGroup.d.ts +0 -55
  231. package/esm/dist/src/filters/FilterGroup.d.ts.map +0 -1
  232. package/esm/dist/src/filters/FilterGroup.js +0 -188
  233. package/esm/dist/src/filters/FilterGroup.js.map +0 -1
  234. package/esm/dist/src/filters/FilterGroup.test.d.ts +0 -2
  235. package/esm/dist/src/filters/FilterGroup.test.d.ts.map +0 -1
  236. package/esm/dist/src/filters/FilterGroup.test.js +0 -78
  237. package/esm/dist/src/filters/FilterGroup.test.js.map +0 -1
  238. package/esm/dist/src/filters/NumberFilter.d.ts +0 -31
  239. package/esm/dist/src/filters/NumberFilter.d.ts.map +0 -1
  240. package/esm/dist/src/filters/NumberFilter.js +0 -162
  241. package/esm/dist/src/filters/NumberFilter.js.map +0 -1
  242. package/esm/dist/src/filters/RegistrationsFilter.d.ts +0 -44
  243. package/esm/dist/src/filters/RegistrationsFilter.d.ts.map +0 -1
  244. package/esm/dist/src/filters/RegistrationsFilter.js +0 -136
  245. package/esm/dist/src/filters/RegistrationsFilter.js.map +0 -1
  246. package/esm/dist/src/filters/StringFilter.d.ts +0 -24
  247. package/esm/dist/src/filters/StringFilter.d.ts.map +0 -1
  248. package/esm/dist/src/filters/StringFilter.js +0 -110
  249. package/esm/dist/src/filters/StringFilter.js.map +0 -1
  250. package/esm/dist/src/filters/filterDefinitions.d.ts +0 -3
  251. package/esm/dist/src/filters/filterDefinitions.d.ts.map +0 -1
  252. package/esm/dist/src/filters/filterDefinitions.js.map +0 -1
  253. package/esm/dist/src/filters/new/FilteredRequest.d.ts.map +0 -1
  254. package/esm/dist/src/filters/new/FilteredRequest.js.map +0 -1
  255. package/esm/dist/src/filters/new/InMemoryFilter.d.ts.map +0 -1
  256. package/esm/dist/src/filters/new/InMemoryFilter.js.map +0 -1
  257. package/esm/dist/src/filters/new/InMemorySorter.d.ts.map +0 -1
  258. package/esm/dist/src/filters/new/InMemorySorter.js.map +0 -1
  259. package/esm/dist/src/filters/new/SortList.d.ts.map +0 -1
  260. package/esm/dist/src/filters/new/SortList.js.map +0 -1
  261. package/esm/dist/src/filters/new/Sorters.d.ts.map +0 -1
  262. package/esm/dist/src/filters/new/Sorters.js.map +0 -1
  263. package/esm/dist/src/filters/new/StamhoofdFilter.d.ts.map +0 -1
  264. package/esm/dist/src/filters/new/StamhoofdFilter.js.map +0 -1
  265. /package/dist/src/filters/{new/InMemoryFilter.d.ts → InMemoryFilter.d.ts} +0 -0
  266. /package/dist/src/filters/{new/SortList.d.ts → SortList.d.ts} +0 -0
  267. /package/dist/src/filters/{new/Sorters.d.ts → Sorters.d.ts} +0 -0
  268. /package/dist/src/filters/{new/StamhoofdFilter.d.ts → StamhoofdFilter.d.ts} +0 -0
  269. /package/esm/dist/src/filters/{new/InMemoryFilter.d.ts → InMemoryFilter.d.ts} +0 -0
  270. /package/esm/dist/src/filters/{new/InMemoryFilter.js → InMemoryFilter.js} +0 -0
  271. /package/esm/dist/src/filters/{new/InMemorySorter.js → InMemorySorter.js} +0 -0
  272. /package/esm/dist/src/filters/{new/SortList.d.ts → SortList.d.ts} +0 -0
  273. /package/esm/dist/src/filters/{new/SortList.js → SortList.js} +0 -0
  274. /package/esm/dist/src/filters/{new/Sorters.d.ts → Sorters.d.ts} +0 -0
  275. /package/esm/dist/src/filters/{new/Sorters.js → Sorters.js} +0 -0
  276. /package/esm/dist/src/filters/{new/StamhoofdFilter.d.ts → StamhoofdFilter.d.ts} +0 -0
  277. /package/esm/dist/src/filters/{new/StamhoofdFilter.js → StamhoofdFilter.js} +0 -0
@@ -1,180 +0,0 @@
1
- // Date example
2
- import { DateDecoder } from "@simonbackx/simple-encoding";
3
- import { Formatter } from "@stamhoofd/utility";
4
- import { Filter, FilterDefinition } from "./FilterDefinition";
5
- /**
6
- * @Example Create a date filter for orders
7
- * ```ts
8
- * const OrderDateDefinition = new FilterDateDefinition<Order>("orderDate", "Besteldatum", (order) => order?.createdAt ?? new Date() )
9
- * const exampleFilter = new DateFilter<Order>()
10
- * exampleFilter.definition = OrderDateDefinition
11
- * exampleFilter.minimumDate = new Date(2020, 0, 1)
12
- * ```
13
- */
14
- export class DateFilterDefinition extends FilterDefinition {
15
- constructor(settings) {
16
- super(settings);
17
- /**
18
- * Also filter on time
19
- */
20
- this.time = true;
21
- if (settings.time !== undefined) {
22
- this.time = settings.time;
23
- }
24
- }
25
- decode(data) {
26
- var _a, _b, _c, _d;
27
- const filter = new DateFilter();
28
- filter.definition = this;
29
- // TODO
30
- filter.mode = (_b = (_a = data.optionalField("mode")) === null || _a === void 0 ? void 0 : _a.enum(DateFilterMode)) !== null && _b !== void 0 ? _b : DateFilterMode.Equal;
31
- filter.minimumDate = (_c = data.optionalField("minimumDate")) === null || _c === void 0 ? void 0 : _c.decode(DateDecoder);
32
- filter.maximumDate = (_d = data.optionalField("maximumDate")) === null || _d === void 0 ? void 0 : _d.decode(DateDecoder);
33
- return filter;
34
- }
35
- createFilter() {
36
- const filter = new DateFilter();
37
- filter.definition = this;
38
- return filter;
39
- }
40
- }
41
- export var DateFilterMode;
42
- (function (DateFilterMode) {
43
- DateFilterMode["GreaterThan"] = "GreaterThan";
44
- DateFilterMode["LessThan"] = "LessThan";
45
- DateFilterMode["Between"] = "Between";
46
- DateFilterMode["NotBetween"] = "NotBetween";
47
- DateFilterMode["Equal"] = "Equal";
48
- DateFilterMode["NotEqual"] = "NotEqual";
49
- })(DateFilterMode || (DateFilterMode = {}));
50
- export class DateFilter extends Filter {
51
- constructor() {
52
- super(...arguments);
53
- this.mode = DateFilterMode.Equal;
54
- }
55
- doesMatch(object) {
56
- const date = new Date(this.definition.getValue(object));
57
- if (!this.definition.time) {
58
- date.setHours(0, 0, 0, 0);
59
- }
60
- else {
61
- date.setSeconds(0, 0);
62
- }
63
- if (this.mode === DateFilterMode.Between) {
64
- if (this.minimumDate) {
65
- if (date < this.minimumDate) {
66
- return false;
67
- }
68
- }
69
- if (this.maximumDate) {
70
- if (date > this.maximumDate) {
71
- return false;
72
- }
73
- }
74
- }
75
- if (this.mode === DateFilterMode.NotBetween) {
76
- if (this.minimumDate) {
77
- if (date < this.minimumDate) {
78
- return true;
79
- }
80
- }
81
- if (this.maximumDate) {
82
- if (date > this.maximumDate) {
83
- return true;
84
- }
85
- }
86
- return false;
87
- }
88
- if (this.mode === DateFilterMode.GreaterThan) {
89
- if (this.minimumDate) {
90
- if (date >= this.minimumDate) {
91
- return true;
92
- }
93
- }
94
- return false;
95
- }
96
- if (this.mode === DateFilterMode.LessThan) {
97
- if (this.maximumDate) {
98
- if (date <= this.maximumDate) {
99
- return true;
100
- }
101
- }
102
- return false;
103
- }
104
- if (this.mode === DateFilterMode.Equal) {
105
- if (this.minimumDate) {
106
- if (date.getTime() === this.minimumDate.getTime()) {
107
- return true;
108
- }
109
- }
110
- return false;
111
- }
112
- if (this.mode === DateFilterMode.NotEqual) {
113
- if (this.minimumDate) {
114
- if (date.getTime() === this.minimumDate.getTime()) {
115
- return false;
116
- }
117
- }
118
- return true;
119
- }
120
- return true;
121
- }
122
- encode(context) {
123
- var _a, _b;
124
- return {
125
- definitionId: this.definition.id,
126
- mode: this.mode,
127
- minimumDate: (_a = this.minimumDate) === null || _a === void 0 ? void 0 : _a.getTime(),
128
- maximumDate: (_b = this.maximumDate) === null || _b === void 0 ? void 0 : _b.getTime(),
129
- };
130
- }
131
- get inverted() {
132
- const filter = this.clone();
133
- if (filter.mode === DateFilterMode.Between) {
134
- filter.mode = DateFilterMode.NotBetween;
135
- }
136
- else if (filter.mode === DateFilterMode.NotBetween) {
137
- filter.mode = DateFilterMode.Between;
138
- }
139
- else if (filter.mode === DateFilterMode.GreaterThan) {
140
- filter.mode = DateFilterMode.LessThan;
141
- }
142
- else if (filter.mode === DateFilterMode.LessThan) {
143
- filter.mode = DateFilterMode.GreaterThan;
144
- }
145
- else if (filter.mode === DateFilterMode.Equal) {
146
- filter.mode = DateFilterMode.NotEqual;
147
- }
148
- else if (filter.mode === DateFilterMode.NotEqual) {
149
- filter.mode = DateFilterMode.Equal;
150
- }
151
- return filter;
152
- }
153
- toString() {
154
- if (this.definition.explainFilter) {
155
- return this.definition.explainFilter(this);
156
- }
157
- const start = this.minimumDate ? (this.definition.time ? Formatter.dateTime(this.minimumDate) : Formatter.date(this.minimumDate)) : "?";
158
- const end = this.maximumDate ? (this.definition.time ? Formatter.dateTime(this.maximumDate) : Formatter.date(this.maximumDate)) : "?";
159
- if (this.mode === DateFilterMode.GreaterThan) {
160
- return this.definition.name + " is op of na " + start;
161
- }
162
- if (this.mode === DateFilterMode.LessThan) {
163
- return this.definition.name + " is " + end + " of minder";
164
- }
165
- if (this.mode === DateFilterMode.Between) {
166
- return this.definition.name + " tussen " + start + " en " + end;
167
- }
168
- if (this.mode === DateFilterMode.NotBetween) {
169
- return this.definition.name + " niet tussen " + start + " en " + end;
170
- }
171
- if (this.mode === DateFilterMode.NotEqual) {
172
- return this.definition.name + " is niet gelijk aan " + start;
173
- }
174
- if (this.mode === DateFilterMode.Equal) {
175
- return this.definition.name + " is gelijk aan " + start;
176
- }
177
- return "Onbekend";
178
- }
179
- }
180
- //# sourceMappingURL=DateFilter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DateFilter.js","sourceRoot":"","sources":["../../../../src/filters/DateFilter.ts"],"names":[],"mappings":"AACA,eAAe;AAEf,OAAO,EAAQ,WAAW,EAA8B,MAAM,6BAA6B,CAAA;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAA4B,MAAM,oBAAoB,CAAA;AAEvF;;;;;;;;EAQE;AACF,MAAM,OAAO,oBAAwB,SAAQ,gBAAwC;IAMjF,YAAY,QAA+E;QACvF,KAAK,CAAC,QAAQ,CAAC,CAAA;QANnB;;WAEG;QACH,SAAI,GAAG,IAAI,CAAA;QAKP,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QAC7B,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAU;;QACb,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;QAC/B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAA;QAExB,OAAO;QACP,MAAM,CAAC,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,0CAAE,IAAI,CAAC,cAAc,CAAC,mCAAI,cAAc,CAAC,KAAK,CAAA;QACtF,MAAM,CAAC,WAAW,GAAG,MAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,0CAAE,MAAM,CAAC,WAAW,CAAC,CAAA;QAC3E,MAAM,CAAC,WAAW,GAAG,MAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,0CAAE,MAAM,CAAC,WAAW,CAAC,CAAA;QAE3E,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,YAAY;QACR,MAAM,MAAM,GAAG,IAAI,UAAU,EAAK,CAAA;QAClC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAA;QACxB,OAAO,MAAM,CAAA;IACjB,CAAC;CACJ;AAED,MAAM,CAAN,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,6CAA2B,CAAA;IAC3B,uCAAqB,CAAA;IACrB,qCAAmB,CAAA;IACnB,2CAAyB,CAAA;IACzB,iCAAe,CAAA;IACf,uCAAqB,CAAA;AACzB,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AAGD,MAAM,OAAO,UAAc,SAAQ,MAAS;IAA5C;;QAGI,SAAI,GAAmB,cAAc,CAAC,KAAK,CAAA;IAuI/C,CAAC;IApIG,SAAS,CAAC,MAAS;QACf,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QAEvD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACzB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC1B,OAAO,KAAK,CAAA;gBAChB,CAAC;YACL,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC1B,OAAO,KAAK,CAAA;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC1B,OAAO,IAAI,CAAA;gBACf,CAAC;YACL,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC1B,OAAO,IAAI,CAAA;gBACf,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,IAAI,CAAA;gBACf,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,IAAI,CAAA;gBACf,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;oBAChD,OAAO,IAAI,CAAA;gBACf,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;oBAChD,OAAO,KAAK,CAAA;gBAChB,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAC,OAAsB;;QACzB,OAAO;YACH,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,EAAE;YACxC,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,EAAE;SAC3C,CAAA;IACL,CAAC;IAED,IAAI,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAmB,CAAA;QAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,UAAU,CAAA;QAC3C,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAA;QACxC,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAA;QACzC,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,WAAW,CAAA;QAC5C,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAA;QACzC,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,CAAA;QACtC,CAAC;QACD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACvI,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QAErI,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,eAAe,GAAC,KAAK,CAAA;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,GAAC,GAAG,GAAC,YAAY,CAAA;QACzD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,GAAC,KAAK,GAAC,MAAM,GAAC,GAAG,CAAA;QAC7D,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,eAAe,GAAC,KAAK,GAAC,MAAM,GAAC,GAAG,CAAA;QAClE,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,sBAAsB,GAAC,KAAK,CAAA;QAC9D,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,iBAAiB,GAAC,KAAK,CAAA;QACzD,CAAC;QACD,OAAO,UAAU,CAAA;IACrB,CAAC;CACJ"}
@@ -1,51 +0,0 @@
1
- import { Data, Decoder, Encodeable, EncodeContext, PlainObject } from "@simonbackx/simple-encoding";
2
- export type FilterDefinitionSettings<T, FilterType extends Filter<T>, ValueType> = {
3
- id: string;
4
- name: string;
5
- description?: string;
6
- getValue: (object: T) => ValueType;
7
- explainFilter?: (filter: FilterType) => string;
8
- category?: string;
9
- };
10
- /**
11
- * Points to a value in a object of type T that is filterable
12
- */
13
- export declare abstract class FilterDefinition<T = any, FilterType extends Filter<T> = Filter<T>, ValueType = any> implements Decoder<FilterType> {
14
- id: string;
15
- name: string;
16
- description?: string;
17
- category?: string;
18
- getValue: (object: T) => ValueType;
19
- /**
20
- * Transform a filter in an explanation text (optional)
21
- */
22
- explainFilter?: (filter: FilterType) => string;
23
- constructor(settings: FilterDefinitionSettings<T, FilterType, ValueType>);
24
- abstract decode(data: Data): FilterType;
25
- abstract createFilter(): FilterType;
26
- }
27
- /**
28
- * A filter is an encodebale structure, that is associated with a specific definition
29
- */
30
- export declare abstract class Filter<T> implements Encodeable {
31
- definition: FilterDefinition<T, Filter<T>, any>;
32
- abstract doesMatch(object: T): boolean;
33
- abstract encode(context: EncodeContext): PlainObject;
34
- abstract get inverted(): Filter<T>;
35
- clone(): Filter<T>;
36
- }
37
- export declare class FilterDecoder<T> implements Decoder<Filter<T>> {
38
- definitions: FilterDefinition<T, Filter<T>, any>[];
39
- constructor(definitions: FilterDefinition<T, Filter<T>, any>[]);
40
- decode(data: Data): Filter<T>;
41
- }
42
- /**
43
- * Allow filters that are extendable on definitions that are saved in the contextx
44
- */
45
- export declare class ExtendableFilterDecoder<T> implements Decoder<Filter<T>> {
46
- definitions: FilterDefinition<T, Filter<T>, any>[];
47
- constructor(definitions: FilterDefinition<T, Filter<T>, any>[]);
48
- decode(data: Data): Filter<T>;
49
- static saveDefinitionInContext(context: EncodeContext, definition: FilterDefinition<any, Filter<any>, any>): void;
50
- }
51
- //# sourceMappingURL=FilterDefinition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterDefinition.d.ts","sourceRoot":"","sources":["../../../../src/filters/FilterDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,OAAO,EAAE,UAAU,EAAE,aAAa,EAAc,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAI5H,MAAM,MAAM,wBAAwB,CAAC,CAAC,EAAE,UAAU,SAAS,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI;IAC/E,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AACD;;GAEG;AACH,8BAAsB,gBAAgB,CAAC,CAAC,GAAG,GAAG,EAAE,UAAU,SAAS,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,GAAG,CAAE,YAAW,OAAO,CAAC,UAAU,CAAC;IACrI,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,SAAS,CAAA;IAElC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAA;gBAElC,QAAQ,EAAE,wBAAwB,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC;IASxE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU;IACvC,QAAQ,CAAC,YAAY,IAAI,UAAU;CACtC;AAED;;GAEG;AAEH,8BAAsB,MAAM,CAAC,CAAC,CAAE,YAAW,UAAU;IACjD,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAE/C,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO;IACtC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW;IACpD,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;IAElC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC;CAIrB;AAED,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvD,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;gBAEtC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAI9D,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;CAYhC;AAED;;GAEG;AACH,qBAAa,uBAAuB,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjE,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;gBAEtC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAI9D,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;IAM7B,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;CAO7G"}
@@ -1,63 +0,0 @@
1
- import { ObjectData } from "@simonbackx/simple-encoding";
2
- import { SimpleError } from "@simonbackx/simple-errors";
3
- /**
4
- * Points to a value in a object of type T that is filterable
5
- */
6
- export class FilterDefinition {
7
- constructor(settings) {
8
- this.id = settings.id;
9
- this.name = settings.name;
10
- this.category = settings.category;
11
- this.description = settings.description;
12
- this.getValue = settings.getValue;
13
- this.explainFilter = settings.explainFilter;
14
- }
15
- }
16
- /**
17
- * A filter is an encodebale structure, that is associated with a specific definition
18
- */
19
- export class Filter {
20
- clone() {
21
- const o = new ObjectData(this.encode({ version: 0 }), { version: 0 });
22
- return this.definition.decode(o);
23
- }
24
- }
25
- export class FilterDecoder {
26
- constructor(definitions) {
27
- this.definitions = definitions;
28
- }
29
- decode(data) {
30
- const definitionId = data.field("definitionId").string;
31
- const definition = this.definitions.find(d => d.id === definitionId);
32
- if (!definition) {
33
- throw new SimpleError({
34
- code: "invalid_definition",
35
- message: "De opgeslagen filter filtert op iets dat niet langer bestaat: " + definitionId,
36
- field: data.addToCurrentField("definitionId")
37
- });
38
- }
39
- return definition.decode(data);
40
- }
41
- }
42
- /**
43
- * Allow filters that are extendable on definitions that are saved in the contextx
44
- */
45
- export class ExtendableFilterDecoder {
46
- constructor(definitions) {
47
- this.definitions = definitions;
48
- }
49
- decode(data) {
50
- var _a;
51
- const general = data.context;
52
- const extendedDefinitions = (_a = general.definitions) !== null && _a !== void 0 ? _a : [];
53
- return new FilterDecoder([...this.definitions, ...extendedDefinitions]).decode(data);
54
- }
55
- static saveDefinitionInContext(context, definition) {
56
- const general = context;
57
- if (!general.definitions) {
58
- general.definitions = [];
59
- }
60
- general.definitions.push(definition);
61
- }
62
- }
63
- //# sourceMappingURL=FilterDefinition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterDefinition.js","sourceRoot":"","sources":["../../../../src/filters/FilterDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,UAAU,EAAe,MAAM,6BAA6B,CAAA;AAC5H,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAWxD;;GAEG;AACH,MAAM,OAAgB,gBAAgB;IAelC,YAAY,QAA4D;QACpE,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAA;QACrB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;QACjC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAA;IAC/C,CAAC;CAIJ;AAED;;GAEG;AAEH,MAAM,OAAgB,MAAM;IAOxB,KAAK;QACD,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,CAAC,CAAA;QACpE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;CACJ;AAED,MAAM,OAAO,aAAa;IAGtB,YAAY,WAAkD;QAC1D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAClC,CAAC;IAED,MAAM,CAAC,IAAU;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAA;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAA;QACpE,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,WAAW,CAAC;gBAClB,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,gEAAgE,GAAC,YAAY;gBACtF,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;aAChD,CAAC,CAAA;QACN,CAAC;QACD,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAGhC,YAAY,WAAkD;QAC1D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAClC,CAAC;IAED,MAAM,CAAC,IAAU;;QACb,MAAM,OAAO,GAA2E,IAAI,CAAC,OAAO,CAAA;QACpG,MAAM,mBAAmB,GAAG,MAAA,OAAO,CAAC,WAAW,mCAAI,EAAE,CAAA;QACrD,OAAO,IAAI,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxF,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,OAAsB,EAAE,UAAmD;QACtG,MAAM,OAAO,GAA+E,OAAO,CAAA;QACnG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,WAAW,GAAG,EAAE,CAAA;QAC5B,CAAC;QACD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC;CACJ"}
@@ -1,55 +0,0 @@
1
- import { Data, Decoder, Encodeable, EncodeContext, PlainObject } from "@simonbackx/simple-encoding";
2
- import { Filter, FilterDefinition } from "./FilterDefinition";
3
- /**
4
- * This is a list of filters, but without the known definitions because we can only decode at a point where the definitions are known.
5
- * This allows for more recursive structures in filter definitions.
6
- */
7
- export declare class FilterGroupEncoded<T> implements Encodeable {
8
- data: PlainObject;
9
- version: number;
10
- constructor(data: PlainObject, version: number);
11
- decode(definitions: FilterDefinition<T, Filter<T>, any>[]): FilterGroup<T>;
12
- encode(context: EncodeContext): PlainObject;
13
- static encode<T>(filter: FilterGroup<T>): FilterGroupEncoded<T>;
14
- static decode<T>(data: Data): FilterGroupEncoded<T>;
15
- }
16
- export declare enum GroupFilterMode {
17
- Or = "Or",
18
- And = "And",
19
- /**
20
- * Means !(A || B) == !A && !B
21
- */
22
- Nor = "Nor",
23
- /**
24
- * Means !(A && B) == !A || !B
25
- */
26
- Nand = "Nand"
27
- }
28
- /**
29
- * A filter is an encodebale structure, that is associated with a specific definition
30
- */
31
- export declare class FilterGroup<T> extends Filter<T> {
32
- definition: FilterGroupDecoder<T>;
33
- private definitions;
34
- filters: Filter<T>[];
35
- mode: GroupFilterMode;
36
- constructor(definitions: FilterDefinition<T, Filter<T>, any>[], filters?: Filter<T>[], mode?: GroupFilterMode);
37
- get encoded(): FilterGroupEncoded<T>;
38
- setDefinitions(definitions: FilterDefinition<T, Filter<T>, any>[]): void;
39
- getDefinitions(): FilterDefinition<T, Filter<T>, any>[];
40
- doesMatch(object: T): boolean;
41
- encode(context: EncodeContext): PlainObject;
42
- get inverted(): FilterGroup<T>;
43
- toString(): string;
44
- }
45
- export declare class FilterGroupDecoder<T> extends FilterDefinition<T, FilterGroup<T>, any> implements Decoder<FilterGroup<T>> {
46
- definitions: FilterDefinition<T, Filter<T>, any>[];
47
- constructor(definitions: FilterDefinition<T, Filter<T>, any>[]);
48
- decode(data: Data): FilterGroup<T>;
49
- createFilter(): FilterGroup<T>;
50
- }
51
- /**
52
- * The decoder is also the definition of a group filter (since it contains alle the available definitions needed for decoding)
53
- */
54
- export type FilterGroupDefinition<T> = FilterGroupDecoder<T>;
55
- //# sourceMappingURL=FilterGroup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterGroup.d.ts","sourceRoot":"","sources":["../../../../src/filters/FilterGroup.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAc,WAAW,EAAiC,MAAM,6BAA6B,CAAC;AAI3J,OAAO,EAAE,MAAM,EAAgB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE5E;;;GAGG;AACH,qBAAa,kBAAkB,CAAC,CAAC,CAAE,YAAW,UAAU;IAEpD,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;gBAEH,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;IAK9C,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;IAS1E,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW;IAU3C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;IAI/D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC;CAatD;AAGD,oBAAY,eAAe;IACvB,EAAE,OAAO;IACT,GAAG,QAAQ;IACX;;OAEG;IACH,GAAG,QAAQ;IACX;;OAEG;IACH,IAAI,SAAS;CAChB;AAED;;GAEG;AAEH,qBAAa,WAAW,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACzC,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAA;IACjC,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAK;IACzB,IAAI,kBAAsB;gBAEd,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,GAAE,MAAM,CAAC,CAAC,CAAC,EAAO,EAAE,IAAI,kBAAsB;IAQrH,IAAI,OAAO,0BAEV;IAED,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAOjE,cAAc;IAId,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO;IAuB7B,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW;IAQ3C,IAAI,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAiB7B;IAGD,QAAQ;CAYX;AAsBD,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,CAAE,YAAW,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAClH,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;gBAEtC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAY9D,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC;IAelC,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC;CAGjC;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAA"}
@@ -1,188 +0,0 @@
1
- import { AnyDecoder, ObjectData, VersionBoxDecoder } from "@simonbackx/simple-encoding";
2
- import { Formatter } from "@stamhoofd/utility";
3
- import { Version } from "../Version";
4
- import { Filter, FilterDecoder, FilterDefinition } from "./FilterDefinition";
5
- /**
6
- * This is a list of filters, but without the known definitions because we can only decode at a point where the definitions are known.
7
- * This allows for more recursive structures in filter definitions.
8
- */
9
- export class FilterGroupEncoded {
10
- constructor(data, version) {
11
- this.data = data;
12
- this.version = version;
13
- }
14
- decode(definitions) {
15
- const decoder = new FilterGroupDecoder(definitions);
16
- const versionBoxDecoder = new VersionBoxDecoder(decoder);
17
- return versionBoxDecoder.decode(new ObjectData({
18
- data: this.data,
19
- version: this.version
20
- }, { version: 0 })).data;
21
- }
22
- encode(context) {
23
- if (context.version < 169) {
24
- return this.data;
25
- }
26
- return {
27
- data: this.data,
28
- version: this.version
29
- };
30
- }
31
- static encode(filter) {
32
- return new FilterGroupEncoded(filter.encode({ version: Version }), Version);
33
- }
34
- static decode(data) {
35
- if (data.optionalField("version")) {
36
- const d = data.field("data").decode(AnyDecoder);
37
- const version = data.field("version").integer;
38
- return new FilterGroupEncoded(d, version);
39
- }
40
- const d = data.decode(AnyDecoder);
41
- const version = data.context.version;
42
- return new FilterGroupEncoded(d, version);
43
- }
44
- }
45
- export var GroupFilterMode;
46
- (function (GroupFilterMode) {
47
- GroupFilterMode["Or"] = "Or";
48
- GroupFilterMode["And"] = "And";
49
- /**
50
- * Means !(A || B) == !A && !B
51
- */
52
- GroupFilterMode["Nor"] = "Nor";
53
- /**
54
- * Means !(A && B) == !A || !B
55
- */
56
- GroupFilterMode["Nand"] = "Nand";
57
- })(GroupFilterMode || (GroupFilterMode = {}));
58
- /**
59
- * A filter is an encodebale structure, that is associated with a specific definition
60
- */
61
- export class FilterGroup extends Filter {
62
- constructor(definitions, filters = [], mode = GroupFilterMode.And) {
63
- super();
64
- this.filters = [];
65
- this.mode = GroupFilterMode.And;
66
- this.definitions = definitions;
67
- this.filters = filters;
68
- this.definition = new FilterGroupDecoder(this.definitions);
69
- this.mode = mode;
70
- }
71
- get encoded() {
72
- return FilterGroupEncoded.encode(this);
73
- }
74
- setDefinitions(definitions) {
75
- this.definitions = definitions;
76
- // Make sure that decoding is also updated
77
- this.definition.definitions = this.definitions;
78
- }
79
- getDefinitions() {
80
- return this.definitions;
81
- }
82
- doesMatch(object) {
83
- for (const filter of this.filters) {
84
- if (!filter.doesMatch(object)) {
85
- if (this.mode === GroupFilterMode.And) {
86
- return false;
87
- }
88
- if (this.mode === GroupFilterMode.Nand) {
89
- return true;
90
- }
91
- }
92
- else {
93
- if (this.mode === GroupFilterMode.Or) {
94
- return true;
95
- }
96
- if (this.mode === GroupFilterMode.Nor) {
97
- return false;
98
- }
99
- }
100
- }
101
- return this.filters.length == 0 || this.mode === GroupFilterMode.And || this.mode === GroupFilterMode.Nor;
102
- }
103
- encode(context) {
104
- return {
105
- filters: this.filters.map(f => f.encode(context)),
106
- mode: this.mode,
107
- definitionId: this.definition.id
108
- };
109
- }
110
- get inverted() {
111
- const group = this.clone();
112
- switch (group.mode) {
113
- case GroupFilterMode.And:
114
- group.mode = GroupFilterMode.Nand;
115
- break;
116
- case GroupFilterMode.Nand:
117
- group.mode = GroupFilterMode.And;
118
- break;
119
- case GroupFilterMode.Or:
120
- group.mode = GroupFilterMode.Nor;
121
- break;
122
- case GroupFilterMode.Nor:
123
- group.mode = GroupFilterMode.Or;
124
- break;
125
- }
126
- return group;
127
- }
128
- toString() {
129
- switch (this.mode) {
130
- case GroupFilterMode.Or:
131
- return Formatter.joinLast(this.filters.map(f => f.toString()), ", ", " of ");
132
- case GroupFilterMode.And:
133
- return Formatter.joinLast(this.filters.map(f => f.toString()), ", ", " en ");
134
- case GroupFilterMode.Nand:
135
- return Formatter.joinLast(this.filters.map(f => f.inverted.toString()), ", ", " of ");
136
- case GroupFilterMode.Nor:
137
- return Formatter.joinLast(this.filters.map(f => f.inverted.toString()), ", ", " en ");
138
- }
139
- }
140
- }
141
- class FailableDecoder {
142
- constructor(decoder) {
143
- this.decoder = decoder;
144
- }
145
- decode(data) {
146
- try {
147
- return {
148
- value: this.decoder.decode(data)
149
- };
150
- }
151
- catch (e) {
152
- return {
153
- error: e
154
- };
155
- }
156
- }
157
- }
158
- export class FilterGroupDecoder extends FilterDefinition {
159
- constructor(definitions) {
160
- super({
161
- id: "filter_group",
162
- name: "Filtergroep",
163
- description: 'Een groep van filters die je samen als filter kan gebruiken, waardoor je complexe filters kan opstellen (bv. door en/of te combineren).',
164
- getValue: () => {
165
- throw new Error("Can't get value of group filter definition");
166
- }
167
- });
168
- this.definitions = definitions;
169
- }
170
- decode(data) {
171
- var _a, _b;
172
- const filterDecoder = new FilterDecoder([...this.definitions, this]);
173
- const group = this.createFilter();
174
- const failableDecoder = new FailableDecoder(filterDecoder);
175
- const decodedFilters = data.field("filters").array(failableDecoder);
176
- const errors = decodedFilters.flatMap(f => f.error ? [f.error] : []);
177
- if (errors.length > 0) {
178
- console.warn('Failed to decode FilterGroup completely', errors);
179
- }
180
- group.filters = decodedFilters.flatMap(f => f.value ? [f.value] : []);
181
- group.mode = (_b = (_a = data.optionalField("mode")) === null || _a === void 0 ? void 0 : _a.enum(GroupFilterMode)) !== null && _b !== void 0 ? _b : GroupFilterMode.And;
182
- return group;
183
- }
184
- createFilter() {
185
- return new FilterGroup(this.definitions);
186
- }
187
- }
188
- //# sourceMappingURL=FilterGroup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterGroup.js","sourceRoot":"","sources":["../../../../src/filters/FilterGroup.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=FilterGroup.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterGroup.test.d.ts","sourceRoot":"","sources":["../../../../src/filters/FilterGroup.test.ts"],"names":[],"mappings":""}
@@ -1,78 +0,0 @@
1
- import { ObjectData } from "@simonbackx/simple-encoding";
2
- import { FilterGroup, FilterGroupDecoder, FilterGroupEncoded } from "./FilterGroup";
3
- import { StringFilterDefinition } from "./StringFilter";
4
- class TestObject {
5
- }
6
- describe('FilterGroup', () => {
7
- it("Can encode and decode", () => {
8
- const definitions = [
9
- new StringFilterDefinition({
10
- id: "test-id",
11
- name: "Test filter",
12
- getValue: (o) => {
13
- return o.name;
14
- }
15
- })
16
- ];
17
- const filter = definitions[0].createFilter();
18
- filter.value = "hello world";
19
- const group = new FilterGroup(definitions, [filter]);
20
- const encoded = group.encode({ version: 169 });
21
- const groupEncoded = new FilterGroupEncoded(encoded, 169);
22
- const savedEncoded = groupEncoded.encode({ version: 169 });
23
- // Now decode correctly
24
- const groupDecoded = FilterGroupEncoded.decode(new ObjectData(savedEncoded, { version: 169 }));
25
- // Decode with definitions
26
- const decodedGroup = groupDecoded.decode(definitions);
27
- expect(decodedGroup.filters).toEqual(group.filters);
28
- });
29
- it("Can encode and decode with changed definitions", () => {
30
- const definitions = [
31
- new StringFilterDefinition({
32
- id: "test-id",
33
- name: "Test filter",
34
- getValue: (o) => {
35
- return o.name;
36
- }
37
- })
38
- ];
39
- const filter = definitions[0].createFilter();
40
- filter.value = "hello world";
41
- const group = new FilterGroup(definitions, [filter]);
42
- const encoded = group.encode({ version: 169 });
43
- const groupEncoded = new FilterGroupEncoded(encoded, 169);
44
- const savedEncoded = groupEncoded.encode({ version: 169 });
45
- // Now decode correctly
46
- const groupDecoded = FilterGroupEncoded.decode(new ObjectData(savedEncoded, { version: 169 }));
47
- // Decode with definitions
48
- const decodedGroup = groupDecoded.decode([]);
49
- expect(decodedGroup.filters).toEqual([]);
50
- });
51
- it("Can encode and decode from version 168", () => {
52
- const definitions = [
53
- new StringFilterDefinition({
54
- id: "test-id",
55
- name: "Test filter",
56
- getValue: (o) => {
57
- return o.name;
58
- }
59
- })
60
- ];
61
- const filter = definitions[0].createFilter();
62
- filter.value = "hello world";
63
- const group = new FilterGroup(definitions, [filter]);
64
- const encoded = group.encode({ version: 168 });
65
- const groupEncoded = new FilterGroupEncoded(encoded, 168);
66
- const savedEncoded = groupEncoded.encode({ version: 168 });
67
- expect(savedEncoded).toEqual(encoded);
68
- // Now decode correctly from 169
69
- const groupDecoded = FilterGroupEncoded.decode(new ObjectData(savedEncoded, { version: 168 }));
70
- // Decode with definitions
71
- const decodedGroup = groupDecoded.decode(definitions);
72
- expect(decodedGroup.filters).toEqual(group.filters);
73
- // Also decode correctly from 168
74
- const groupDecodedFrom168 = new FilterGroupDecoder(definitions).decode(new ObjectData(savedEncoded, { version: 168 }));
75
- expect(groupDecodedFrom168.filters).toEqual(group.filters);
76
- });
77
- });
78
- //# sourceMappingURL=FilterGroup.test.js.map