@colijnit/sharedcomponents 1.0.6 → 1.0.9

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 (150) hide show
  1. package/README.md +8 -11
  2. package/bundles/colijnit-sharedcomponents.umd.js +2140 -0
  3. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -0
  4. package/colijnit-sharedcomponents.d.ts +13 -0
  5. package/colijnit-sharedcomponents.metadata.json +1 -0
  6. package/esm2015/colijnit-sharedcomponents.js +14 -0
  7. package/esm2015/lib/components/docsign/component/signature/signature.component.js +75 -0
  8. package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +44 -0
  9. package/esm2015/lib/components/docsign/docsign.component.js +225 -0
  10. package/esm2015/lib/components/docsign/docsign.module.js +23 -0
  11. package/esm2015/lib/components/send-method-dialog/enums/send-option.js +8 -0
  12. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +203 -0
  13. package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +26 -0
  14. package/esm2015/lib/components/stock/stock-information/stock-information.component.js +57 -0
  15. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +254 -0
  16. package/esm2015/lib/components/stock/stock-location/stock-location.component.js +62 -0
  17. package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +2 -0
  18. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +98 -0
  19. package/esm2015/lib/components/stock/stock.component.js +67 -0
  20. package/esm2015/lib/components/stock/stock.module.js +44 -0
  21. package/esm2015/lib/enum/icon.enum.js +23 -0
  22. package/esm2015/lib/factory/business-object-factory.js +120 -0
  23. package/esm2015/lib/factory/decorators/boolean.decorator.js +102 -0
  24. package/esm2015/lib/factory/decorators/complex-array.decorator.js +55 -0
  25. package/esm2015/lib/factory/decorators/complex-field.decorator.js +57 -0
  26. package/esm2015/lib/factory/decorators/date-field.decorator.js +36 -0
  27. package/esm2015/lib/factory/decorators/string-number.decorator.js +43 -0
  28. package/esm2015/lib/model/business-object.js +81 -0
  29. package/esm2015/lib/model/icon-svg.js +22 -0
  30. package/esm2015/lib/service/icon-cache.service.js +51 -0
  31. package/esm2015/lib/service/ione-connector-adapter.service.js +117 -0
  32. package/esm2015/lib/service/stock.service.js +33 -0
  33. package/esm2015/lib/utils/array-utils.js +183 -0
  34. package/esm2015/lib/utils/is-nill.function.js +5 -0
  35. package/esm2015/public-api.js +10 -0
  36. package/fesm2015/colijnit-sharedcomponents.js +2066 -0
  37. package/fesm2015/colijnit-sharedcomponents.js.map +1 -0
  38. package/lib/components/docsign/component/signature/signature.component.d.ts +16 -0
  39. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/_layout.scss +0 -0
  40. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/_material-definition.scss +0 -0
  41. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/_theme.scss +0 -0
  42. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/material.scss +0 -0
  43. package/lib/components/docsign/component/signatures/signatures.component.d.ts +12 -0
  44. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/_layout.scss +0 -0
  45. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/_material-definition.scss +0 -0
  46. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/_theme.scss +0 -0
  47. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/material.scss +0 -0
  48. package/lib/components/docsign/docsign.component.d.ts +92 -0
  49. package/lib/components/docsign/docsign.module.d.ts +2 -0
  50. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/style/_layout.scss +0 -0
  51. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/style/_material-definition.scss +0 -0
  52. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/style/_theme.scss +0 -0
  53. package/{projects/sharedcomponents/src/lib → lib}/components/docsign/style/material.scss +0 -0
  54. package/lib/components/send-method-dialog/enums/send-option.d.ts +6 -0
  55. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +37 -0
  56. package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +2 -0
  57. package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/_layout.scss +0 -0
  58. package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/_material-definition.scss +0 -0
  59. package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/_theme.scss +0 -0
  60. package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/material.scss +0 -0
  61. package/lib/components/stock/stock-information/stock-information.component.d.ts +8 -0
  62. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +43 -0
  63. package/lib/components/stock/stock-location/stock-location.component.d.ts +12 -0
  64. package/{projects/sharedcomponents/src/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.ts → lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts} +2 -2
  65. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +20 -0
  66. package/lib/components/stock/stock.component.d.ts +19 -0
  67. package/lib/components/stock/stock.module.d.ts +2 -0
  68. package/{projects/sharedcomponents/src/lib → lib}/components/stock/style/_layout.scss +0 -0
  69. package/{projects/sharedcomponents/src/lib → lib}/components/stock/style/_material-definition.scss +0 -0
  70. package/{projects/sharedcomponents/src/lib → lib}/components/stock/style/_theme.scss +0 -0
  71. package/{projects/sharedcomponents/src/lib → lib}/components/stock/style/material.scss +0 -0
  72. package/{projects/sharedcomponents/src/lib/enum/icon.enum.ts → lib/enum/icon.enum.d.ts} +1 -2
  73. package/lib/factory/business-object-factory.d.ts +23 -0
  74. package/lib/factory/decorators/boolean.decorator.d.ts +43 -0
  75. package/lib/factory/decorators/complex-array.decorator.d.ts +25 -0
  76. package/lib/factory/decorators/complex-field.decorator.d.ts +25 -0
  77. package/lib/factory/decorators/date-field.decorator.d.ts +17 -0
  78. package/lib/factory/decorators/string-number.decorator.d.ts +22 -0
  79. package/lib/model/business-object.d.ts +7 -0
  80. package/lib/model/icon-svg.d.ts +4 -0
  81. package/lib/service/icon-cache.service.d.ts +18 -0
  82. package/lib/service/ione-connector-adapter.service.d.ts +21 -0
  83. package/lib/service/stock.service.d.ts +13 -0
  84. package/{projects/sharedcomponents/src/lib → lib}/style/_mixin.scss +0 -0
  85. package/{projects/sharedcomponents/src/lib → lib}/style/_variables.scss +0 -0
  86. package/lib/utils/array-utils.d.ts +57 -0
  87. package/lib/utils/is-nill.function.d.ts +1 -0
  88. package/package.json +26 -70
  89. package/{projects/sharedcomponents/src/public-api.ts → public-api.d.ts} +0 -4
  90. package/.browserslistrc +0 -16
  91. package/.editorconfig +0 -16
  92. package/.vscode/extensions.json +0 -4
  93. package/.vscode/launch.json +0 -20
  94. package/.vscode/tasks.json +0 -42
  95. package/Sharedcomponents.iml +0 -11
  96. package/angular.json +0 -133
  97. package/colijnit-sharedcomponents-1.0.6.tgz +0 -0
  98. package/karma.conf.js +0 -44
  99. package/move-assets.js +0 -14
  100. package/projects/sharedcomponents/.browserslistrc +0 -16
  101. package/projects/sharedcomponents/README.md +0 -24
  102. package/projects/sharedcomponents/karma.conf.js +0 -44
  103. package/projects/sharedcomponents/ng-package.json +0 -17
  104. package/projects/sharedcomponents/package.json +0 -15
  105. package/projects/sharedcomponents/src/lib/components/docsign/component/signature/signature.component.ts +0 -82
  106. package/projects/sharedcomponents/src/lib/components/docsign/component/signatures/signatures.component.ts +0 -50
  107. package/projects/sharedcomponents/src/lib/components/docsign/docsign.component.ts +0 -252
  108. package/projects/sharedcomponents/src/lib/components/docsign/docsign.module.ts +0 -22
  109. package/projects/sharedcomponents/src/lib/components/send-method-dialog/enums/send-option.ts +0 -6
  110. package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.component.ts +0 -215
  111. package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.module.ts +0 -27
  112. package/projects/sharedcomponents/src/lib/components/stock/stock-information/stock-information.component.ts +0 -59
  113. package/projects/sharedcomponents/src/lib/components/stock/stock-information-grid/stock-information-grid.component.ts +0 -278
  114. package/projects/sharedcomponents/src/lib/components/stock/stock-location/stock-location.component.ts +0 -82
  115. package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-transfer.component.ts +0 -111
  116. package/projects/sharedcomponents/src/lib/components/stock/stock.component.ts +0 -78
  117. package/projects/sharedcomponents/src/lib/components/stock/stock.module.ts +0 -47
  118. package/projects/sharedcomponents/src/lib/factory/business-object-factory.ts +0 -120
  119. package/projects/sharedcomponents/src/lib/factory/decorators/boolean.decorator.ts +0 -113
  120. package/projects/sharedcomponents/src/lib/factory/decorators/complex-array.decorator.ts +0 -61
  121. package/projects/sharedcomponents/src/lib/factory/decorators/complex-field.decorator.ts +0 -63
  122. package/projects/sharedcomponents/src/lib/factory/decorators/date-field.decorator.ts +0 -41
  123. package/projects/sharedcomponents/src/lib/factory/decorators/string-number.decorator.ts +0 -48
  124. package/projects/sharedcomponents/src/lib/model/business-object.ts +0 -85
  125. package/projects/sharedcomponents/src/lib/model/icon-svg.ts +0 -22
  126. package/projects/sharedcomponents/src/lib/service/icon-cache.service.ts +0 -51
  127. package/projects/sharedcomponents/src/lib/service/ione-connector-adapter.service.ts +0 -113
  128. package/projects/sharedcomponents/src/lib/service/stock.service.ts +0 -35
  129. package/projects/sharedcomponents/src/lib/utils/array-utils.ts +0 -202
  130. package/projects/sharedcomponents/src/lib/utils/is-nill.function.ts +0 -4
  131. package/projects/sharedcomponents/src/test.ts +0 -27
  132. package/projects/sharedcomponents/tsconfig.lib.json +0 -18
  133. package/projects/sharedcomponents/tsconfig.lib.prod.json +0 -10
  134. package/projects/sharedcomponents/tsconfig.spec.json +0 -17
  135. package/src/app/app.component.scss +0 -8
  136. package/src/app/app.component.spec.ts +0 -31
  137. package/src/app/app.component.ts +0 -97
  138. package/src/app/app.module.ts +0 -24
  139. package/src/assets/.gitkeep +0 -0
  140. package/src/environments/environment.prod.ts +0 -3
  141. package/src/environments/environment.ts +0 -16
  142. package/src/favicon.ico +0 -0
  143. package/src/index.html +0 -13
  144. package/src/main.ts +0 -12
  145. package/src/polyfills.ts +0 -53
  146. package/src/styles.scss +0 -28
  147. package/src/test.ts +0 -26
  148. package/tsconfig.app.json +0 -15
  149. package/tsconfig.json +0 -65
  150. package/tsconfig.spec.json +0 -18
@@ -0,0 +1,55 @@
1
+ import { notNill } from "@colijnit/articleapi/build/utils/function/not-nill.function";
2
+ import { ObjectUtils } from "@colijnit/articleapi/build/utils/object-utils";
3
+ const PROP_META_KEY = "complexArray";
4
+ /**
5
+ * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
6
+ */
7
+ /**
8
+ * Property decorator for properties of businessobject classes that are an array of other strongly typed businessobjects.
9
+ * Ensures that the BusinessObjectFactoryService makes properly typed objects from incoming raw persistence data. Otherwise we couldn't add methods
10
+ * to our own businessobjects and use them, since all fields would be flat data without methods after BusinessObjectFactoryService creation.
11
+ *
12
+ * Usage:
13
+ *
14
+ * @ComplexArray(TransactionLine)
15
+ * public transactionLines: TransactionLine[]
16
+ */
17
+ export function ComplexArray(type) {
18
+ return function (target, propertyKey) {
19
+ if (!target || !propertyKey || typeof target !== "object") {
20
+ return;
21
+ }
22
+ // warn the programmer if given type was undefined; it's probably an import order glitch that caused this, because decorators seem
23
+ // to be immediately processed when a class is first imported
24
+ if (!type) {
25
+ console.warn(`@ComplexArray(type): type was UNDEFINED. Called on prop (${ObjectUtils.GetClassName(target)}, ${propertyKey}). ` +
26
+ `Class will not properly serialize and deserialize now. We've always been able to fix this by CHANGING IMPORT ORDERS ` +
27
+ `where both classes and their dependencies are used, e.g. factory, repository or models..`);
28
+ return;
29
+ }
30
+ Reflect.defineMetadata(PROP_META_KEY, type, target, propertyKey);
31
+ };
32
+ }
33
+ // Utility function holder of the ComplexArrayDecorator decorator.
34
+ export class ComplexArrayDecorator {
35
+ /**
36
+ * Returns whether given property (as a string) on given object is a complex array. A complex array is an array field that is decorated
37
+ * with the @ComplexArray decorator.
38
+ */
39
+ static IsComplexArray(target, propertyKey) {
40
+ if (!target || !propertyKey || typeof target !== "object") {
41
+ return false;
42
+ }
43
+ return (notNill(Reflect.getMetadata(PROP_META_KEY, target, propertyKey)));
44
+ }
45
+ /**
46
+ * Returns the VALUE of the @ComplexArray(VALUE) property decorator on the given propertyKey on the given modelobject.
47
+ */
48
+ static GetComplexArrayType(target, propertyKey) {
49
+ if (!target || !propertyKey || typeof target !== "object") {
50
+ return undefined;
51
+ }
52
+ return Reflect.getMetadata(PROP_META_KEY, target, propertyKey);
53
+ }
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxleC1hcnJheS5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvZmFjdG9yeS9kZWNvcmF0b3JzL2NvbXBsZXgtYXJyYXkuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUNwRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFFMUUsTUFBTSxhQUFhLEdBQVcsY0FBYyxDQUFDO0FBRTdDOztHQUVHO0FBRUg7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFTO0lBQ2xDLE9BQU8sVUFBVSxNQUFXLEVBQUUsV0FBbUI7UUFDN0MsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDdkQsT0FBTztTQUNWO1FBQ0Qsa0lBQWtJO1FBQ2xJLDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyw0REFBNEQsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxXQUFXLEtBQUs7Z0JBQzFILHNIQUFzSDtnQkFDdEgsMEZBQTBGLENBQUMsQ0FBQztZQUNoRyxPQUFPO1NBQ1Y7UUFDRCxPQUFPLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLHFCQUFxQjtJQUM5Qjs7O09BR0c7SUFDSSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQWMsRUFBRSxXQUFtQjtRQUM1RCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUN2RCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsTUFBYyxFQUFFLFdBQW1CO1FBQ2pFLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3ZELE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBRUQsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtub3ROaWxsfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvdXRpbHMvZnVuY3Rpb24vbm90LW5pbGwuZnVuY3Rpb25cIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL3V0aWxzL29iamVjdC11dGlsc1wiO1xyXG5cclxuY29uc3QgUFJPUF9NRVRBX0tFWTogc3RyaW5nID0gXCJjb21wbGV4QXJyYXlcIjtcclxuXHJcbi8qKlxyXG4gKiAhISBqdXN0IGEgVEFHIERFQ09SQVRPUiBmb3Igbm93LCB0aGVyZSBpcyBubyBjb2RlIHRoYXQgdXNlcyB0aGlzIG1ldGEgZGF0YSB3aXRoaW4gdGhlIGlvbmUgY29ubmVjdG9yIGxpYiBpdHNlbGYuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFByb3BlcnR5IGRlY29yYXRvciBmb3IgcHJvcGVydGllcyBvZiBidXNpbmVzc29iamVjdCBjbGFzc2VzIHRoYXQgYXJlIGFuIGFycmF5IG9mIG90aGVyIHN0cm9uZ2x5IHR5cGVkIGJ1c2luZXNzb2JqZWN0cy5cclxuICogRW5zdXJlcyB0aGF0IHRoZSBCdXNpbmVzc09iamVjdEZhY3RvcnlTZXJ2aWNlIG1ha2VzIHByb3Blcmx5IHR5cGVkIG9iamVjdHMgZnJvbSBpbmNvbWluZyByYXcgcGVyc2lzdGVuY2UgZGF0YS4gT3RoZXJ3aXNlIHdlIGNvdWxkbid0IGFkZCBtZXRob2RzXHJcbiAqIHRvIG91ciBvd24gYnVzaW5lc3NvYmplY3RzIGFuZCB1c2UgdGhlbSwgc2luY2UgYWxsIGZpZWxkcyB3b3VsZCBiZSBmbGF0IGRhdGEgd2l0aG91dCBtZXRob2RzIGFmdGVyIEJ1c2luZXNzT2JqZWN0RmFjdG9yeVNlcnZpY2UgY3JlYXRpb24uXHJcbiAqXHJcbiAqIFVzYWdlOlxyXG4gKlxyXG4gKiBAQ29tcGxleEFycmF5KFRyYW5zYWN0aW9uTGluZSlcclxuICogcHVibGljIHRyYW5zYWN0aW9uTGluZXM6IFRyYW5zYWN0aW9uTGluZVtdXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gQ29tcGxleEFycmF5KHR5cGU6IGFueSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRhcmdldCB8fCAhcHJvcGVydHlLZXkgfHwgdHlwZW9mIHRhcmdldCAhPT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHdhcm4gdGhlIHByb2dyYW1tZXIgaWYgZ2l2ZW4gdHlwZSB3YXMgdW5kZWZpbmVkOyBpdCdzIHByb2JhYmx5IGFuIGltcG9ydCBvcmRlciBnbGl0Y2ggdGhhdCBjYXVzZWQgdGhpcywgYmVjYXVzZSBkZWNvcmF0b3JzIHNlZW1cclxuICAgICAgICAvLyB0byBiZSBpbW1lZGlhdGVseSBwcm9jZXNzZWQgd2hlbiBhIGNsYXNzIGlzIGZpcnN0IGltcG9ydGVkXHJcbiAgICAgICAgaWYgKCF0eXBlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgQENvbXBsZXhBcnJheSh0eXBlKTogdHlwZSB3YXMgVU5ERUZJTkVELiBDYWxsZWQgb24gcHJvcCAoJHtPYmplY3RVdGlscy5HZXRDbGFzc05hbWUodGFyZ2V0KX0sICR7cHJvcGVydHlLZXl9KS4gYCArXHJcbiAgICAgICAgICAgICAgICBgQ2xhc3Mgd2lsbCBub3QgcHJvcGVybHkgc2VyaWFsaXplIGFuZCBkZXNlcmlhbGl6ZSBub3cuIFdlJ3ZlIGFsd2F5cyBiZWVuIGFibGUgdG8gZml4IHRoaXMgYnkgQ0hBTkdJTkcgSU1QT1JUIE9SREVSUyBgICtcclxuICAgICAgICAgICAgICAgIGB3aGVyZSBib3RoIGNsYXNzZXMgYW5kIHRoZWlyIGRlcGVuZGVuY2llcyBhcmUgdXNlZCwgZS5nLiBmYWN0b3J5LCByZXBvc2l0b3J5IG9yIG1vZGVscy4uYCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShQUk9QX01FVEFfS0VZLCB0eXBlLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICAgIH07XHJcbn1cclxuXHJcbi8vIFV0aWxpdHkgZnVuY3Rpb24gaG9sZGVyIG9mIHRoZSBDb21wbGV4QXJyYXlEZWNvcmF0b3IgZGVjb3JhdG9yLlxyXG5leHBvcnQgY2xhc3MgQ29tcGxleEFycmF5RGVjb3JhdG9yIHtcclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGdpdmVuIHByb3BlcnR5IChhcyBhIHN0cmluZykgb24gZ2l2ZW4gb2JqZWN0IGlzIGEgY29tcGxleCBhcnJheS4gQSBjb21wbGV4IGFycmF5IGlzIGFuIGFycmF5IGZpZWxkIHRoYXQgaXMgZGVjb3JhdGVkXHJcbiAgICAgKiB3aXRoIHRoZSBAQ29tcGxleEFycmF5IGRlY29yYXRvci5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBJc0NvbXBsZXhBcnJheSh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdGFyZ2V0IHx8ICFwcm9wZXJ0eUtleSB8fCB0eXBlb2YgdGFyZ2V0ICE9PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAobm90TmlsbChSZWZsZWN0LmdldE1ldGFkYXRhKFBST1BfTUVUQV9LRVksIHRhcmdldCwgcHJvcGVydHlLZXkpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBWQUxVRSBvZiB0aGUgQENvbXBsZXhBcnJheShWQUxVRSkgcHJvcGVydHkgZGVjb3JhdG9yIG9uIHRoZSBnaXZlbiBwcm9wZXJ0eUtleSBvbiB0aGUgZ2l2ZW4gbW9kZWxvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Q29tcGxleEFycmF5VHlwZSh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgaWYgKCF0YXJnZXQgfHwgIXByb3BlcnR5S2V5IHx8IHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKFBST1BfTUVUQV9LRVksIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,57 @@
1
+ import { notNill } from "@colijnit/articleapi/build/utils/function/not-nill.function";
2
+ import { ObjectUtils } from "@colijnit/articleapi/build/utils/object-utils";
3
+ const PROP_META_KEY = "complexField";
4
+ /**
5
+ * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
6
+ */
7
+ /**
8
+ * Property decorator for properties of businessobject classes that are other strongly typed businessobjects.
9
+ * Ensures that the BusinessObjectFactoryService makes properly typed objects from incoming raw persistence data. Otherwise we couldn't add methods
10
+ * to our own businessobjects and use them, since all fields would be flat data without methods after BusinessObjectFactoryService creation.
11
+ *
12
+ * Usage:
13
+ *
14
+ * @ComplexField(Transaction)
15
+ * public transaction: Transaction
16
+ *
17
+ * Also keeps track of a "complexFieldProps" metadata on the class-level, as a reflect-metadata workaround to be able to
18
+ * retrieve all properties that have the @ComplexField(..) decorator (impossible with current Reflect API).
19
+ */
20
+ export function ComplexField(type) {
21
+ return function (target, propertyKey) {
22
+ if (!target || !propertyKey) {
23
+ return;
24
+ }
25
+ // warn the programmer if given type was undefined; it's probably an import order glitch that caused this, because decorators seem
26
+ // to be immediately processed when a class is first imported
27
+ if (!type) {
28
+ // eslint-disable-next-line no-console
29
+ console.warn(`@ComplexField(type): type was UNDEFINED. Called on prop (${ObjectUtils.GetClassName(target)}, ${propertyKey}). ` +
30
+ `Class will not properly serialize and deserialize now. We've always been able to fix this by CHANGING IMPORT ORDERS ` +
31
+ `where both classes and their dependencies are used, e.g. factory, repository or models..`);
32
+ return;
33
+ }
34
+ Reflect.defineMetadata(PROP_META_KEY, type, target, propertyKey);
35
+ };
36
+ }
37
+ // Utility function holder of the ComplexFieldDecorator decorator.
38
+ export class ComplexFieldDecorator {
39
+ /**
40
+ * Returns whether given property (as a string) on given object is a complex field. A complex field is a field that is decorated
41
+ * with the @ComplexField decorator.
42
+ */
43
+ static IsComplexField(target, propertyKey) {
44
+ if (!target || !propertyKey || typeof target !== "object") {
45
+ return false;
46
+ }
47
+ return (notNill(Reflect.getMetadata(PROP_META_KEY, target, propertyKey)));
48
+ }
49
+ // Returns the VALUE of the @ComplexField(VALUE) property decorator on the given propertyKey on the given modelObject.
50
+ static GetComplexFieldType(target, propertyKey) {
51
+ if (!target || !propertyKey || typeof target !== "object") {
52
+ return undefined;
53
+ }
54
+ return Reflect.getMetadata(PROP_META_KEY, target, propertyKey);
55
+ }
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxleC1maWVsZC5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvZmFjdG9yeS9kZWNvcmF0b3JzL2NvbXBsZXgtZmllbGQuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUNwRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFFMUUsTUFBTSxhQUFhLEdBQVcsY0FBYyxDQUFDO0FBRTdDOztHQUVHO0FBRUg7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFTO0lBQ2xDLE9BQU8sVUFBVSxNQUFXLEVBQUUsV0FBbUI7UUFDN0MsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN6QixPQUFPO1NBQ1Y7UUFFRCxrSUFBa0k7UUFDbEksNkRBQTZEO1FBQzdELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxzQ0FBc0M7WUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyw0REFBNEQsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxXQUFXLEtBQUs7Z0JBQzFILHNIQUFzSDtnQkFDdEgsMEZBQTBGLENBQUMsQ0FBQztZQUNoRyxPQUFPO1NBQ1Y7UUFDRCxPQUFPLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLHFCQUFxQjtJQUU5Qjs7O09BR0c7SUFDSSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQWMsRUFBRSxXQUFtQjtRQUM1RCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUN2RCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsc0hBQXNIO0lBQy9HLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFjLEVBQUUsV0FBbUI7UUFDakUsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDdkQsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge25vdE5pbGx9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC91dGlscy9mdW5jdGlvbi9ub3QtbmlsbC5mdW5jdGlvblwiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvdXRpbHMvb2JqZWN0LXV0aWxzXCI7XHJcblxyXG5jb25zdCBQUk9QX01FVEFfS0VZOiBzdHJpbmcgPSBcImNvbXBsZXhGaWVsZFwiO1xyXG5cclxuLyoqXHJcbiAqICEhIGp1c3QgYSBUQUcgREVDT1JBVE9SIGZvciBub3csIHRoZXJlIGlzIG5vIGNvZGUgdGhhdCB1c2VzIHRoaXMgbWV0YSBkYXRhIHdpdGhpbiB0aGUgaW9uZSBjb25uZWN0b3IgbGliIGl0c2VsZi5cclxuICovXHJcblxyXG4vKipcclxuICogUHJvcGVydHkgZGVjb3JhdG9yIGZvciBwcm9wZXJ0aWVzIG9mIGJ1c2luZXNzb2JqZWN0IGNsYXNzZXMgdGhhdCBhcmUgb3RoZXIgc3Ryb25nbHkgdHlwZWQgYnVzaW5lc3NvYmplY3RzLlxyXG4gKiBFbnN1cmVzIHRoYXQgdGhlIEJ1c2luZXNzT2JqZWN0RmFjdG9yeVNlcnZpY2UgbWFrZXMgcHJvcGVybHkgdHlwZWQgb2JqZWN0cyBmcm9tIGluY29taW5nIHJhdyBwZXJzaXN0ZW5jZSBkYXRhLiBPdGhlcndpc2Ugd2UgY291bGRuJ3QgYWRkIG1ldGhvZHNcclxuICogdG8gb3VyIG93biBidXNpbmVzc29iamVjdHMgYW5kIHVzZSB0aGVtLCBzaW5jZSBhbGwgZmllbGRzIHdvdWxkIGJlIGZsYXQgZGF0YSB3aXRob3V0IG1ldGhvZHMgYWZ0ZXIgQnVzaW5lc3NPYmplY3RGYWN0b3J5U2VydmljZSBjcmVhdGlvbi5cclxuICpcclxuICogVXNhZ2U6XHJcbiAqXHJcbiAqIEBDb21wbGV4RmllbGQoVHJhbnNhY3Rpb24pXHJcbiAqIHB1YmxpYyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25cclxuICpcclxuICogQWxzbyBrZWVwcyB0cmFjayBvZiBhIFwiY29tcGxleEZpZWxkUHJvcHNcIiBtZXRhZGF0YSBvbiB0aGUgY2xhc3MtbGV2ZWwsIGFzIGEgcmVmbGVjdC1tZXRhZGF0YSB3b3JrYXJvdW5kIHRvIGJlIGFibGUgdG9cclxuICogcmV0cmlldmUgYWxsIHByb3BlcnRpZXMgdGhhdCBoYXZlIHRoZSBAQ29tcGxleEZpZWxkKC4uKSBkZWNvcmF0b3IgKGltcG9zc2libGUgd2l0aCBjdXJyZW50IFJlZmxlY3QgQVBJKS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBDb21wbGV4RmllbGQodHlwZTogYW55KTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGFyZ2V0IHx8ICFwcm9wZXJ0eUtleSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB3YXJuIHRoZSBwcm9ncmFtbWVyIGlmIGdpdmVuIHR5cGUgd2FzIHVuZGVmaW5lZDsgaXQncyBwcm9iYWJseSBhbiBpbXBvcnQgb3JkZXIgZ2xpdGNoIHRoYXQgY2F1c2VkIHRoaXMsIGJlY2F1c2UgZGVjb3JhdG9ycyBzZWVtXHJcbiAgICAgICAgLy8gdG8gYmUgaW1tZWRpYXRlbHkgcHJvY2Vzc2VkIHdoZW4gYSBjbGFzcyBpcyBmaXJzdCBpbXBvcnRlZFxyXG4gICAgICAgIGlmICghdHlwZSkge1xyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKGBAQ29tcGxleEZpZWxkKHR5cGUpOiB0eXBlIHdhcyBVTkRFRklORUQuIENhbGxlZCBvbiBwcm9wICgke09iamVjdFV0aWxzLkdldENsYXNzTmFtZSh0YXJnZXQpfSwgJHtwcm9wZXJ0eUtleX0pLiBgICtcclxuICAgICAgICAgICAgICAgIGBDbGFzcyB3aWxsIG5vdCBwcm9wZXJseSBzZXJpYWxpemUgYW5kIGRlc2VyaWFsaXplIG5vdy4gV2UndmUgYWx3YXlzIGJlZW4gYWJsZSB0byBmaXggdGhpcyBieSBDSEFOR0lORyBJTVBPUlQgT1JERVJTIGAgK1xyXG4gICAgICAgICAgICAgICAgYHdoZXJlIGJvdGggY2xhc3NlcyBhbmQgdGhlaXIgZGVwZW5kZW5jaWVzIGFyZSB1c2VkLCBlLmcuIGZhY3RvcnksIHJlcG9zaXRvcnkgb3IgbW9kZWxzLi5gKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFBST1BfTUVUQV9LRVksIHR5cGUsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG4gICAgfTtcclxufVxyXG5cclxuLy8gVXRpbGl0eSBmdW5jdGlvbiBob2xkZXIgb2YgdGhlIENvbXBsZXhGaWVsZERlY29yYXRvciBkZWNvcmF0b3IuXHJcbmV4cG9ydCBjbGFzcyBDb21wbGV4RmllbGREZWNvcmF0b3Ige1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGdpdmVuIHByb3BlcnR5IChhcyBhIHN0cmluZykgb24gZ2l2ZW4gb2JqZWN0IGlzIGEgY29tcGxleCBmaWVsZC4gQSBjb21wbGV4IGZpZWxkIGlzIGEgZmllbGQgdGhhdCBpcyBkZWNvcmF0ZWRcclxuICAgICAqIHdpdGggdGhlIEBDb21wbGV4RmllbGQgZGVjb3JhdG9yLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIElzQ29tcGxleEZpZWxkKHRhcmdldDogT2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0YXJnZXQgfHwgIXByb3BlcnR5S2V5IHx8IHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gKG5vdE5pbGwoUmVmbGVjdC5nZXRNZXRhZGF0YShQUk9QX01FVEFfS0VZLCB0YXJnZXQsIHByb3BlcnR5S2V5KSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJldHVybnMgdGhlIFZBTFVFIG9mIHRoZSBAQ29tcGxleEZpZWxkKFZBTFVFKSBwcm9wZXJ0eSBkZWNvcmF0b3Igb24gdGhlIGdpdmVuIHByb3BlcnR5S2V5IG9uIHRoZSBnaXZlbiBtb2RlbE9iamVjdC5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Q29tcGxleEZpZWxkVHlwZSh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgaWYgKCF0YXJnZXQgfHwgIXByb3BlcnR5S2V5IHx8IHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoUFJPUF9NRVRBX0tFWSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,36 @@
1
+ import { DateUtils } from "@colijnit/articleapi/build/utils/date-utils";
2
+ const PROP_META_KEY = "dateField";
3
+ /**
4
+ * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
5
+ */
6
+ /**
7
+ * Property decorator for properties of businessobject classes that are of type Date, but are sent to us as strings.
8
+ * Ensures that the BusinessObjectFactory makes proper JavaScript Date objects from incoming strings for @DateField() decorated properties.
9
+ *
10
+ * Usage:
11
+ *
12
+ * @DateField()
13
+ * public expectedDeliveryDate: Date
14
+ */
15
+ export function DateField() {
16
+ return function (target, propertyKey) {
17
+ if (!target || !propertyKey) {
18
+ return;
19
+ }
20
+ Reflect.defineMetadata(PROP_META_KEY, undefined, target, propertyKey);
21
+ };
22
+ }
23
+ // Utility function holder of the @DateField() decorator.
24
+ export class DateFieldFieldDecorator {
25
+ // Returns whether given property (as a string) on given object is decorated with @DateField().
26
+ static IsDateField(target, propertyKey) {
27
+ if (!target || !propertyKey || typeof target !== "object") {
28
+ return false;
29
+ }
30
+ return Reflect.hasMetadata(PROP_META_KEY, target, propertyKey);
31
+ }
32
+ static StringAsDate(str) {
33
+ return DateUtils.StringAsDate(str);
34
+ }
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWVsZC5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvZmFjdG9yeS9kZWNvcmF0b3JzL2RhdGUtZmllbGQuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUV0RSxNQUFNLGFBQWEsR0FBVyxXQUFXLENBQUM7QUFFMUM7O0dBRUc7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxTQUFTO0lBQ3JCLE9BQU8sVUFBVSxNQUFXLEVBQUUsV0FBbUI7UUFDN0MsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN6QixPQUFPO1NBQ1Y7UUFDRCxPQUFPLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFFLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCx5REFBeUQ7QUFDekQsTUFBTSxPQUFPLHVCQUF1QjtJQUVoQywrRkFBK0Y7SUFDeEYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFjLEVBQUUsV0FBbUI7UUFDekQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDdkQsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFXO1FBQ2xDLE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGVVdGlsc30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL3V0aWxzL2RhdGUtdXRpbHNcIjtcclxuXHJcbmNvbnN0IFBST1BfTUVUQV9LRVk6IHN0cmluZyA9IFwiZGF0ZUZpZWxkXCI7XHJcblxyXG4vKipcclxuICogISEganVzdCBhIFRBRyBERUNPUkFUT1IgZm9yIG5vdywgdGhlcmUgaXMgbm8gY29kZSB0aGF0IHVzZXMgdGhpcyBtZXRhIGRhdGEgd2l0aGluIHRoZSBpb25lIGNvbm5lY3RvciBsaWIgaXRzZWxmLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBQcm9wZXJ0eSBkZWNvcmF0b3IgZm9yIHByb3BlcnRpZXMgb2YgYnVzaW5lc3NvYmplY3QgY2xhc3NlcyB0aGF0IGFyZSBvZiB0eXBlIERhdGUsIGJ1dCBhcmUgc2VudCB0byB1cyBhcyBzdHJpbmdzLlxyXG4gKiBFbnN1cmVzIHRoYXQgdGhlIEJ1c2luZXNzT2JqZWN0RmFjdG9yeSBtYWtlcyBwcm9wZXIgSmF2YVNjcmlwdCBEYXRlIG9iamVjdHMgZnJvbSBpbmNvbWluZyBzdHJpbmdzIGZvciBARGF0ZUZpZWxkKCkgZGVjb3JhdGVkIHByb3BlcnRpZXMuXHJcbiAqXHJcbiAqIFVzYWdlOlxyXG4gKlxyXG4gKiBARGF0ZUZpZWxkKClcclxuICogcHVibGljIGV4cGVjdGVkRGVsaXZlcnlEYXRlOiBEYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gRGF0ZUZpZWxkKCk6IFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRhcmdldCB8fCAhcHJvcGVydHlLZXkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFBST1BfTUVUQV9LRVksIHVuZGVmaW5lZCwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XHJcbiAgICB9O1xyXG59XHJcblxyXG4vLyBVdGlsaXR5IGZ1bmN0aW9uIGhvbGRlciBvZiB0aGUgQERhdGVGaWVsZCgpIGRlY29yYXRvci5cclxuZXhwb3J0IGNsYXNzIERhdGVGaWVsZEZpZWxkRGVjb3JhdG9yIHtcclxuXHJcbiAgICAvLyBSZXR1cm5zIHdoZXRoZXIgZ2l2ZW4gcHJvcGVydHkgKGFzIGEgc3RyaW5nKSBvbiBnaXZlbiBvYmplY3QgaXMgZGVjb3JhdGVkIHdpdGggQERhdGVGaWVsZCgpLlxyXG4gICAgcHVibGljIHN0YXRpYyBJc0RhdGVGaWVsZCh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdGFyZ2V0IHx8ICFwcm9wZXJ0eUtleSB8fCB0eXBlb2YgdGFyZ2V0ICE9PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzTWV0YWRhdGEoUFJPUF9NRVRBX0tFWSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBTdHJpbmdBc0RhdGUoc3RyOiBzdHJpbmcpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gRGF0ZVV0aWxzLlN0cmluZ0FzRGF0ZShzdHIpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { NumberUtils } from "@colijnit/articleapi/build/utils/number-utils";
2
+ const PROP_META_KEY = "stringNumber";
3
+ /**
4
+ * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
5
+ */
6
+ /**
7
+ * Decorator for properties of businessobjects that are sent to us as strings from the database, but which we want to use as a number in the client.
8
+ *
9
+ * Can be handy for incongruent backend api cases, where id data types are communicated wrongly via strings instead of numbers
10
+ * (e.g. on EmployeeFullObject.district, points to a District which has a number id, but in employee it's a string representation of that number...)
11
+ *
12
+ * Used by business object factory and -serializer.
13
+ *
14
+ * Usage:
15
+ *
16
+ * @StringNumber()
17
+ * public rights: UserRightType
18
+ */
19
+ export function StringNumber() {
20
+ return function (target, propertyKey) {
21
+ if (!target || !propertyKey) {
22
+ return;
23
+ }
24
+ Reflect.defineMetadata(PROP_META_KEY, undefined, target, propertyKey);
25
+ };
26
+ }
27
+ // Utility function holder of the @StringNumber() decorator.
28
+ export class StringNumberDecorator {
29
+ // Returns whether given property (as a string) on given object is decorated with @StringNumber().
30
+ static IsStringNumber(target, propertyKey) {
31
+ if (!target || !propertyKey || typeof target !== "object") {
32
+ return false;
33
+ }
34
+ return Reflect.hasMetadata(PROP_META_KEY, target, propertyKey);
35
+ }
36
+ static StringAsNumber(str) {
37
+ return NumberUtils.ParseFloatKeepPrecision(str);
38
+ }
39
+ static NumberAsString(nr) {
40
+ return "" + nr;
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLW51bWJlci5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvZmFjdG9yeS9kZWNvcmF0b3JzL3N0cmluZy1udW1iZXIuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUUxRSxNQUFNLGFBQWEsR0FBVyxjQUFjLENBQUM7QUFDN0M7O0dBRUc7QUFFSDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLFVBQVUsWUFBWTtJQUN4QixPQUFPLFVBQVUsTUFBVyxFQUFFLFdBQW1CO1FBQzdDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDekIsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRSxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsNERBQTREO0FBQzVELE1BQU0sT0FBTyxxQkFBcUI7SUFFOUIsa0dBQWtHO0lBQzNGLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBYyxFQUFFLFdBQW1CO1FBQzVELElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3ZELE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBVztRQUNwQyxPQUFPLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFVO1FBQ25DLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNuQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge051bWJlclV0aWxzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvdXRpbHMvbnVtYmVyLXV0aWxzXCI7XHJcblxyXG5jb25zdCBQUk9QX01FVEFfS0VZOiBzdHJpbmcgPSBcInN0cmluZ051bWJlclwiO1xyXG4vKipcclxuICogISEganVzdCBhIFRBRyBERUNPUkFUT1IgZm9yIG5vdywgdGhlcmUgaXMgbm8gY29kZSB0aGF0IHVzZXMgdGhpcyBtZXRhIGRhdGEgd2l0aGluIHRoZSBpb25lIGNvbm5lY3RvciBsaWIgaXRzZWxmLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBEZWNvcmF0b3IgZm9yIHByb3BlcnRpZXMgb2YgYnVzaW5lc3NvYmplY3RzIHRoYXQgYXJlIHNlbnQgdG8gdXMgYXMgc3RyaW5ncyBmcm9tIHRoZSBkYXRhYmFzZSwgYnV0IHdoaWNoIHdlIHdhbnQgdG8gdXNlIGFzIGEgbnVtYmVyIGluIHRoZSBjbGllbnQuXHJcbiAqXHJcbiAqIENhbiBiZSBoYW5keSBmb3IgaW5jb25ncnVlbnQgYmFja2VuZCBhcGkgY2FzZXMsIHdoZXJlIGlkIGRhdGEgdHlwZXMgYXJlIGNvbW11bmljYXRlZCB3cm9uZ2x5IHZpYSBzdHJpbmdzIGluc3RlYWQgb2YgbnVtYmVyc1xyXG4gKiAoZS5nLiBvbiBFbXBsb3llZUZ1bGxPYmplY3QuZGlzdHJpY3QsIHBvaW50cyB0byBhIERpc3RyaWN0IHdoaWNoIGhhcyBhIG51bWJlciBpZCwgYnV0IGluIGVtcGxveWVlIGl0J3MgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhhdCBudW1iZXIuLi4pXHJcbiAqXHJcbiAqIFVzZWQgYnkgYnVzaW5lc3Mgb2JqZWN0IGZhY3RvcnkgYW5kIC1zZXJpYWxpemVyLlxyXG4gKlxyXG4gKiBVc2FnZTpcclxuICpcclxuICogQFN0cmluZ051bWJlcigpXHJcbiAqIHB1YmxpYyByaWdodHM6IFVzZXJSaWdodFR5cGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBTdHJpbmdOdW1iZXIoKTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGFyZ2V0IHx8ICFwcm9wZXJ0eUtleSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoUFJPUF9NRVRBX0tFWSwgdW5kZWZpbmVkLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICAgIH07XHJcbn1cclxuXHJcbi8vIFV0aWxpdHkgZnVuY3Rpb24gaG9sZGVyIG9mIHRoZSBAU3RyaW5nTnVtYmVyKCkgZGVjb3JhdG9yLlxyXG5leHBvcnQgY2xhc3MgU3RyaW5nTnVtYmVyRGVjb3JhdG9yIHtcclxuXHJcbiAgICAvLyBSZXR1cm5zIHdoZXRoZXIgZ2l2ZW4gcHJvcGVydHkgKGFzIGEgc3RyaW5nKSBvbiBnaXZlbiBvYmplY3QgaXMgZGVjb3JhdGVkIHdpdGggQFN0cmluZ051bWJlcigpLlxyXG4gICAgcHVibGljIHN0YXRpYyBJc1N0cmluZ051bWJlcih0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdGFyZ2V0IHx8ICFwcm9wZXJ0eUtleSB8fCB0eXBlb2YgdGFyZ2V0ICE9PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzTWV0YWRhdGEoUFJPUF9NRVRBX0tFWSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBTdHJpbmdBc051bWJlcihzdHI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE51bWJlclV0aWxzLlBhcnNlRmxvYXRLZWVwUHJlY2lzaW9uKHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBOdW1iZXJBc1N0cmluZyhucjogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gXCJcIiArIG5yO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,81 @@
1
+ /**
2
+ * This type represents the concept of a business object ID type. ID's of business objects can be a primary number, a simple string or a
3
+ * object for a composite key.
4
+ *
5
+ * Simply to prevent type declarations of 'number | string | Object' for BO ID data all over the application.
6
+ */
7
+ import { MapPropertyDecorator } from "@colijnit/articleapi/build/factory/decorators/map-property.decorator";
8
+ import { BooleanTextDecorator } from "@colijnit/articleapi/build/factory/decorators/boolean.decorator";
9
+ import { JsonFieldFieldDecorator } from "@colijnit/articleapi/build/factory/decorators/json.decorator";
10
+ import { ComplexArrayDecorator } from "@colijnit/articleapi/build/factory/decorators/complex-array.decorator";
11
+ export class BusinessObject {
12
+ constructor() {
13
+ }
14
+ // Overridable. Returns the ID of the model. Concrete model classes often override this method to provide their specific ID getter.
15
+ getId() {
16
+ return this.id;
17
+ }
18
+ setOwnMappedPropsFromRawData(rawData = {}) {
19
+ if (!rawData) {
20
+ return;
21
+ }
22
+ Object.keys(this).forEach((key) => {
23
+ // check if property needs to be mapped
24
+ if (MapPropertyDecorator.IsMapProperty(this, key)) {
25
+ const mapKeys = MapPropertyDecorator.GetMapProperty(this, key).split(",");
26
+ const len = mapKeys.length;
27
+ for (let i = 0; i < len; i++) {
28
+ // eslint-disable-next-line
29
+ const mapKey = mapKeys[i].trim();
30
+ const objProp = rawData[mapKey];
31
+ let decorated = false;
32
+ if (rawData.hasOwnProperty(mapKey)) {
33
+ if (BooleanTextDecorator.IsBooleanTextField(this, key)) {
34
+ this[key] = BooleanTextDecorator.GetLogicalBooleanValue(objProp);
35
+ decorated = true;
36
+ }
37
+ if (JsonFieldFieldDecorator.IsJsonField(this, key)) {
38
+ this[key] = JsonFieldFieldDecorator.StringAsJson(objProp);
39
+ decorated = true;
40
+ }
41
+ if (ComplexArrayDecorator.IsComplexArray(this, key)) {
42
+ const arrayClass = ComplexArrayDecorator.GetComplexArrayType(this, key);
43
+ // eslint-disable-next-line
44
+ const origArray = this[key];
45
+ // eslint-disable-next-line
46
+ const newArray = [];
47
+ // eslint-disable-next-line @typescript-eslint/prefer-for-of
48
+ for (let j = 0; j < origArray.length; j++) {
49
+ // eslint-disable-next-line
50
+ const item = new arrayClass(origArray[j]);
51
+ newArray.push(item);
52
+ }
53
+ this[key] = newArray;
54
+ }
55
+ else {
56
+ if (!decorated) {
57
+ this[key] = objProp;
58
+ }
59
+ }
60
+ break;
61
+ }
62
+ }
63
+ }
64
+ else {
65
+ if (rawData.hasOwnProperty(key)) {
66
+ const objProp = rawData[key];
67
+ if (BooleanTextDecorator.IsBooleanTextField(this, key)) {
68
+ this[key] = BooleanTextDecorator.GetLogicalBooleanValue(objProp);
69
+ }
70
+ else if (JsonFieldFieldDecorator.IsJsonField(this, key)) {
71
+ this[key] = JsonFieldFieldDecorator.StringAsJson(objProp);
72
+ }
73
+ else {
74
+ this[key] = objProp;
75
+ }
76
+ }
77
+ }
78
+ });
79
+ }
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3Mtb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL21vZGVsL2J1c2luZXNzLW9iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBQzFHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBSTVHLE1BQU0sT0FBZ0IsY0FBYztJQVNoQztJQUNBLENBQUM7SUFORCxtSUFBbUk7SUFDNUgsS0FBSztRQUNSLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBS1MsNEJBQTRCLENBQUMsVUFBZSxFQUFFO1FBQ3BELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzlCLHVDQUF1QztZQUN2QyxJQUFJLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQy9DLE1BQU0sT0FBTyxHQUFhLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwRixNQUFNLEdBQUcsR0FBVyxPQUFPLENBQUMsTUFBTSxDQUFDO2dCQUNuQyxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNwQywyQkFBMkI7b0JBQ3pCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDakMsTUFBTSxPQUFPLEdBQVEsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNyQyxJQUFJLFNBQVMsR0FBWSxLQUFLLENBQUM7b0JBQy9CLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTt3QkFDaEMsSUFBSSxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7NEJBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQzs0QkFDakUsU0FBUyxHQUFHLElBQUksQ0FBQzt5QkFDcEI7d0JBQ0QsSUFBSSx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFOzRCQUNoRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsdUJBQXVCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDOzRCQUMxRCxTQUFTLEdBQUcsSUFBSSxDQUFDO3lCQUNwQjt3QkFDRCxJQUFJLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7NEJBQ2pELE1BQU0sVUFBVSxHQUFRLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQzs0QkFDL0UsMkJBQTJCOzRCQUN6QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQzlCLDJCQUEyQjs0QkFDekIsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDOzRCQUN0Qiw0REFBNEQ7NEJBQzFELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dDQUN6QywyQkFBMkI7Z0NBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUMxQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOzZCQUN2Qjs0QkFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO3lCQUN4Qjs2QkFBTTs0QkFDSCxJQUFJLENBQUMsU0FBUyxFQUFFO2dDQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUM7NkJBQ3ZCO3lCQUNKO3dCQUNELE1BQU07cUJBQ1Q7aUJBQ0o7YUFDSjtpQkFBTTtnQkFDSCxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzdCLE1BQU0sT0FBTyxHQUFRLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbEMsSUFBSSxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7d0JBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDcEU7eUJBQU0sSUFBSSx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO3dCQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsdUJBQXVCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUM3RDt5QkFBTTt3QkFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDO3FCQUN2QjtpQkFDSjthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVGhpcyB0eXBlIHJlcHJlc2VudHMgdGhlIGNvbmNlcHQgb2YgYSBidXNpbmVzcyBvYmplY3QgSUQgdHlwZS4gSUQncyBvZiBidXNpbmVzcyBvYmplY3RzIGNhbiBiZSBhIHByaW1hcnkgbnVtYmVyLCBhIHNpbXBsZSBzdHJpbmcgb3IgYVxyXG4gKiBvYmplY3QgZm9yIGEgY29tcG9zaXRlIGtleS5cclxuICpcclxuICogU2ltcGx5IHRvIHByZXZlbnQgdHlwZSBkZWNsYXJhdGlvbnMgb2YgJ251bWJlciB8IHN0cmluZyB8IE9iamVjdCcgZm9yIEJPIElEIGRhdGEgYWxsIG92ZXIgdGhlIGFwcGxpY2F0aW9uLlxyXG4gKi9cclxuaW1wb3J0IHtNYXBQcm9wZXJ0eURlY29yYXRvcn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL2ZhY3RvcnkvZGVjb3JhdG9ycy9tYXAtcHJvcGVydHkuZGVjb3JhdG9yXCI7XHJcbmltcG9ydCB7Qm9vbGVhblRleHREZWNvcmF0b3J9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9mYWN0b3J5L2RlY29yYXRvcnMvYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtKc29uRmllbGRGaWVsZERlY29yYXRvcn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL2ZhY3RvcnkvZGVjb3JhdG9ycy9qc29uLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge0NvbXBsZXhBcnJheURlY29yYXRvcn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL2ZhY3RvcnkvZGVjb3JhdG9ycy9jb21wbGV4LWFycmF5LmRlY29yYXRvclwiO1xyXG5cclxuZXhwb3J0IHR5cGUgQnVzaW5lc3NPYmplY3RJRFR5cGUgPSBudW1iZXIgfCBzdHJpbmcgfCBPYmplY3Q7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQnVzaW5lc3NPYmplY3Qge1xyXG4gICAgLy8gVGhlIElEIG9mIHRoZSBtb2RlbC5cclxuICAgIHB1YmxpYyBpZDogQnVzaW5lc3NPYmplY3RJRFR5cGU7XHJcblxyXG4gICAgLy8gT3ZlcnJpZGFibGUuIFJldHVybnMgdGhlIElEIG9mIHRoZSBtb2RlbC4gQ29uY3JldGUgbW9kZWwgY2xhc3NlcyBvZnRlbiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBwcm92aWRlIHRoZWlyIHNwZWNpZmljIElEIGdldHRlci5cclxuICAgIHB1YmxpYyBnZXRJZCgpOiBCdXNpbmVzc09iamVjdElEVHlwZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldE93bk1hcHBlZFByb3BzRnJvbVJhd0RhdGEocmF3RGF0YTogYW55ID0ge30pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXJhd0RhdGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgICAgLy8gY2hlY2sgaWYgcHJvcGVydHkgbmVlZHMgdG8gYmUgbWFwcGVkXHJcbiAgICAgICAgICAgIGlmIChNYXBQcm9wZXJ0eURlY29yYXRvci5Jc01hcFByb3BlcnR5KHRoaXMsIGtleSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1hcEtleXM6IHN0cmluZ1tdID0gTWFwUHJvcGVydHlEZWNvcmF0b3IuR2V0TWFwUHJvcGVydHkodGhpcywga2V5KS5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsZW46IG51bWJlciA9IG1hcEtleXMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcEtleSA9IG1hcEtleXNbaV0udHJpbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9ialByb3A6IGFueSA9IHJhd0RhdGFbbWFwS2V5XTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGVjb3JhdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJhd0RhdGEuaGFzT3duUHJvcGVydHkobWFwS2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQm9vbGVhblRleHREZWNvcmF0b3IuSXNCb29sZWFuVGV4dEZpZWxkKHRoaXMsIGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IEJvb2xlYW5UZXh0RGVjb3JhdG9yLkdldExvZ2ljYWxCb29sZWFuVmFsdWUob2JqUHJvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvcmF0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChKc29uRmllbGRGaWVsZERlY29yYXRvci5Jc0pzb25GaWVsZCh0aGlzLCBrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBKc29uRmllbGRGaWVsZERlY29yYXRvci5TdHJpbmdBc0pzb24ob2JqUHJvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvcmF0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChDb21wbGV4QXJyYXlEZWNvcmF0b3IuSXNDb21wbGV4QXJyYXkodGhpcywga2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJyYXlDbGFzczogYW55ID0gQ29tcGxleEFycmF5RGVjb3JhdG9yLkdldENvbXBsZXhBcnJheVR5cGUodGhpcywga2V5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdBcnJheSA9IHRoaXNba2V5XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0FycmF5ID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItZm9yLW9mXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG9yaWdBcnJheS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gbmV3IGFycmF5Q2xhc3Mob3JpZ0FycmF5W2pdKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdBcnJheS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gbmV3QXJyYXk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWRlY29yYXRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IG9ialByb3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJhd0RhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9ialByb3A6IGFueSA9IHJhd0RhdGFba2V5XTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoQm9vbGVhblRleHREZWNvcmF0b3IuSXNCb29sZWFuVGV4dEZpZWxkKHRoaXMsIGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gQm9vbGVhblRleHREZWNvcmF0b3IuR2V0TG9naWNhbEJvb2xlYW5WYWx1ZShvYmpQcm9wKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKEpzb25GaWVsZEZpZWxkRGVjb3JhdG9yLklzSnNvbkZpZWxkKHRoaXMsIGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gSnNvbkZpZWxkRmllbGREZWNvcmF0b3IuU3RyaW5nQXNKc29uKG9ialByb3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IG9ialByb3A7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ /** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/
2
+ export const IconSvg = {
3
+ "arrow_fat_right": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"37.5 25 25.2 12.7 25.2 20.35 12.5 20.35 12.5 29.66 25.2 29.66 25.2 37.3 37.5 25\" fill=\"#484f60\"/></svg>",
4
+ "arrow_point_down": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"-280 371 51 51\" enable-background=\"new -280 371 51 51\" ><path fill=\"#29363E\" d=\"M-248.3,392.2c0.3,0,0.6,0.1,0.8,0.3c0.5,0.5,0.5,1.2,0,1.6l-6.2,6.2c-0.2,0.2-0.5,0.3-0.8,0.3c-0.3,0-0.6-0.1-0.8-0.3l-6.2-6.2c-0.2-0.2-0.3-0.5-0.3-0.8c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3c0.3,0,0.6,0.1,0.8,0.3l5.4,5.4l5.4-5.4C-248.9,392.4-248.6,392.2-248.3,392.2z\"/></svg>",
5
+ "arrow_point_left": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 51 51\" enable-background=\"new 0 0 51 51\" ><path fill=\"#484F5F\" d=\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\"/></svg>",
6
+ "arrow_point_right": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 51 51\" enable-background=\"new 0 0 51 51\" ><path fill=\"#484F5F\" d=\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\"/></svg>",
7
+ "calendar_day": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 50 50\" enable-background=\"new 0 0 50 50\" ><g><path fill=\"#022D42\" d=\"M35.4,13.7H14.6c-0.6,0-1,0.5-1,1V20h22.9v-5.2C36.4,14.2,36,13.7,35.4,13.7z M19,18.8c-1,0-1.8-0.8-1.8-1.8c0-1,0.8-1.8,1.8-1.8c1,0,1.8,0.8,1.8,1.8C20.8,18,20,18.8,19,18.8z M31,18.8c-1,0-1.8-0.8-1.8-1.8c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8C32.7,18,32,18.8,31,18.8z\"/><path fill=\"#022D42\" d=\"M35.4,22.3v12.6L31.3,39H14.6c0,0,0,0,0,0V22.3H35.4 M36.4,21.3H13.6V39c0,0.6,0.5,1,1,1h17.2l4.7-4.7V21.3L36.4,21.3z\"/><rect x=\"18.2\" y=\"10\" fill=\"#022D42\" width=\"1.6\" height=\"5.2\"/><rect x=\"30.2\" y=\"10\" fill=\"#022D42\" width=\"1.6\" height=\"5.2\"/><rect x=\"18.6\" y=\"30.5\" fill=\"#022D42\" width=\"3.4\" height=\"3.4\"/><rect x=\"19.1\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"19.1\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"19.1\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/></g></svg>",
8
+ "cancel": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"36 35.16 30.45 35.16 14 14.84 19.55 14.84 36 35.16\" fill=\"#484f60\"/><polygon points=\"14 35.16 19.55 35.16 36 14.84 30.45 14.84 14 35.16\" fill=\"#484f60\"/></svg>",
9
+ "delivery_truck": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"15.35\" y=\"16.56\" width=\"15.14\" height=\"10.94\" transform=\"translate(-1.83 2.08) rotate(-5)\" fill=\"#484f60\"/><path d=\"M38.5,18.1l-6.9.61L32.41,28l-7.63.67a3.76,3.76,0,0,1,1.43,2.25l7.25-.63A3.83,3.83,0,0,1,41,29.6l1-.1-.52-6Zm.29,5.84-3.91.34a.51.51,0,0,1-.55-.46L34,20.1a.49.49,0,0,1,.45-.54l2.27-.2a.5.5,0,0,1,.48.25l2,3.59A.5.5,0,0,1,38.79,23.94Z\" fill=\"#484f60\"/><path d=\"M19.66,29.09a3.8,3.8,0,0,0-1,2.46l-.74.07-1.82-.94L16,29.41Z\" fill=\"#484f60\"/><path d=\"M34.56,30.62a2.74,2.74,0,1,0,2.49-3A2.73,2.73,0,0,0,34.56,30.62Z\" fill=\"#484f60\"/><path d=\"M19.74,31.91a2.74,2.74,0,1,0,2.49-3A2.74,2.74,0,0,0,19.74,31.91Z\" fill=\"#484f60\"/><rect x=\"7.96\" y=\"17.63\" width=\"5\" height=\"1\" transform=\"translate(-1.54 0.98) rotate(-5)\" fill=\"#484f60\"/><rect x=\"11.02\" y=\"29.71\" width=\"3\" height=\"1\" transform=\"translate(-2.59 1.21) rotate(-5)\" fill=\"#484f60\"/><rect x=\"9.48\" y=\"23.53\" width=\"4\" height=\"1\" transform=\"matrix(1, -0.09, 0.09, 1, -2.05, 1.09)\" fill=\"#484f60\"/></svg>",
10
+ "edit_pencil": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"12.54 38.16 12 37.62 14.85 29.64 20.52 35.31 12.54 38.16\" fill=\"#484f60\"/><rect x=\"16.33\" y=\"20.52\" width=\"17.99\" height=\"8.64\" transform=\"translate(-10.15 25.18) rotate(-45)\" fill=\"#484f60\"/><path d=\"M37.54,18.73,36,20.32l-6.11-6.1,1.59-1.59a1.55,1.55,0,0,1,2.2,0l3.91,3.9A1.55,1.55,0,0,1,37.54,18.73Z\" fill=\"#484f60\"/></svg>",
11
+ "email": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M31.79,38.45A17.82,17.82,0,0,1,23.86,40,13.09,13.09,0,0,1,10.41,26.42C10.41,17.63,16.83,10,26.53,10c7.63,0,13.06,5.21,13.06,12.46,0,6.33-3.53,10.3-8.19,10.3a3.42,3.42,0,0,1-3.71-3.32h-.08A6.5,6.5,0,0,1,22,32.76c-2.75,0-4.82-2.11-4.82-5.65a9.85,9.85,0,0,1,10.13-10,12.89,12.89,0,0,1,5.13,1l-1.3,8c-.43,2.54-.13,3.71,1.08,3.75,1.85.09,4.18-2.28,4.18-7.28,0-5.65-3.62-10-10.3-10S13.73,17.76,13.73,26c0,7.25,4.57,11.3,11,11.3A14.81,14.81,0,0,0,31,36ZM28,20.65a5.34,5.34,0,0,0-1.33-.18c-2.85,0-5.09,2.81-5.09,6.12,0,1.64.73,2.68,2.16,2.68,1.59,0,3.27-2,3.66-4.53Z\" fill=\"#484f60\"/></svg>",
12
+ "pdf": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M31.42,40.17H13.88c-2.16,0-2.72-.56-2.72-2.72V12.88c0-2.15.56-2.71,2.72-2.71h11.6l8.66,8.88v3.43H32.8V19.6l-7.88-8.09h-11c-1.38,0-1.38,0-1.38,1.37V37.45c0,1.37,0,1.37,1.38,1.37H31.42c1.38,0,1.38,0,1.38-1.37V35h1.34v2.43C34.14,39.61,33.58,40.17,31.42,40.17Z\" fill=\"#484f60\"/><path d=\"M27.83,26.63v4.24h1a3.57,3.57,0,0,0,.78-.06,1.22,1.22,0,0,0,.52-.26,1.44,1.44,0,0,0,.34-.62,4.13,4.13,0,0,0,.13-1.18,3.79,3.79,0,0,0-.13-1.14,1.51,1.51,0,0,0-.37-.62,1.14,1.14,0,0,0-.6-.3,5.93,5.93,0,0,0-1.06-.06Z\" fill=\"#484f60\"/><path d=\"M21.86,26.63v1.82h.71a3.57,3.57,0,0,0,1-.1A.88.88,0,0,0,24,28a.84.84,0,0,0,.14-.5.8.8,0,0,0-.2-.57.88.88,0,0,0-.52-.29,6.36,6.36,0,0,0-.93,0Z\" fill=\"#484f60\"/><path d=\"M19.14,24.27v9h19.7v-9Zm6.12,4.24a1.68,1.68,0,0,1-.54.63,1.9,1.9,0,0,1-.67.3,6.57,6.57,0,0,1-1.34.1h-.85V32H20.57V25.54h2.07a7.75,7.75,0,0,1,1.54.1,1.73,1.73,0,0,1,.93.63,2,2,0,0,1,.37,1.25A2,2,0,0,1,25.26,28.51Zm6.45,1.66A2.91,2.91,0,0,1,31,31.31a2.28,2.28,0,0,1-.91.51A4,4,0,0,1,29,32H26.54V25.54H28.9a4.21,4.21,0,0,1,1.22.13,2.08,2.08,0,0,1,1,.59,2.79,2.79,0,0,1,.61,1,4.76,4.76,0,0,1,.21,1.52A4.19,4.19,0,0,1,31.71,30.17Zm5.7-3.54h-3.1v1.52H37v1.08H34.31V32H33V25.54h4.39Z\" fill=\"#484f60\"/><path d=\"M25.2,10.84v6.44c0,1.78.27,2,2,2h6.23Z\" fill=\"#484f60\"/></svg>",
13
+ "plus_round": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"-288 379 35 35\" enable-background=\"new -288 379 35 35\" ><path fill=\"#29363E\" d=\"M-270.5,381.5c-8.3,0-15,6.7-15,15c0,8.3,6.7,15,15,15s15-6.7,15-15C-255.5,388.2-262.2,381.5-270.5,381.5z M-261.1,397.3c0,0.9-0.7,1.6-1.6,1.6h-5.5v5.5c0,0.9-0.7,1.6-1.6,1.6h-1.6c-0.9,0-1.6-0.7-1.6-1.6v-5.5h-5.5c-0.9,0-1.6-0.7-1.6-1.6v-1.6c0-0.9,0.7-1.6,1.6-1.6h5.5v-5.5c0-0.9,0.7-1.6,1.6-1.6h1.6c0.9,0,1.6,0.7,1.6,1.6v5.5h5.5c0.9,0,1.6,0.7,1.6,1.6V397.3z\"/></svg>",
14
+ "print": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M38,16.5H12a2,2,0,0,0-2,2v9a2,2,0,0,0,2,2h2v-5H36v5h2a2,2,0,0,0,2-2v-9A2,2,0,0,0,38,16.5ZM37,21a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,37,21Z\" fill=\"#484f60\"/><path d=\"M35,11.5v5H15v-5H35m1-1H14v7H36v-7Z\" fill=\"#484f60\"/><path d=\"M35,25.5v13H15v-13H35m1-1H14v15H36v-15Z\" fill=\"#484f60\"/><rect x=\"17\" y=\"28.3\" width=\"16\" height=\"0.8\" fill=\"#484f60\"/><rect x=\"17\" y=\"31.5\" width=\"16\" height=\"0.8\" fill=\"#484f60\"/><rect x=\"17\" y=\"34.7\" width=\"16\" height=\"0.8\" fill=\"#484f60\"/></svg>",
15
+ "signature_field": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M20.1,25.42a1.1,1.1,0,1,1,1.27,1.45l-3.3,9.07A63.13,63.13,0,0,1,28,28.3l1.26-12-8.26-3-6.77,10A62.4,62.4,0,0,1,17,35.54l3.3-9.07A1.12,1.12,0,0,1,20.1,25.42Z\" fill=\"#484f60\"/><rect x=\"21.62\" y=\"11.43\" width=\"8.79\" height=\"2.34\" transform=\"translate(5.88 -8.14) rotate(20)\" fill=\"#484f60\"/><path d=\"M18.11,37.48c1.44,2.65,4.58,2.94,7.23,2.1,1.41-.44,2.2-1.49,3.44-2.06,2.42-1.1,3.13,1.2,5.36,1.37.42,0,2-.65,1.54-.68-2.55-.19-2.93-3.13-5.51-2.65a4.9,4.9,0,0,0-1.64.71c-.77.49-1.31,1.62-2.07,2l-4.61.56A3.38,3.38,0,0,1,20,37c-.22-.41-2,.28-1.85.5Z\" fill=\"#484f60\"/></svg>",
16
+ "tag": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M40,29.15v-.68a5.28,5.28,0,0,0-1.34-3.25L24.78,11.34A5.34,5.34,0,0,0,21.53,10H11.9A1.91,1.91,0,0,0,10,11.9v9.63a5.28,5.28,0,0,0,1.34,3.25L25.22,38.66A5.28,5.28,0,0,0,28.47,40h.68a5.28,5.28,0,0,0,3.24-1.34l6.27-6.27A5.28,5.28,0,0,0,40,29.15ZM13.13,16.72a2.54,2.54,0,1,1,3.59,0A2.55,2.55,0,0,1,13.13,16.72Zm15.9,19L17.84,24.55l1.34-1.34L30.37,34.4Zm2.69-2.69L20.52,21.87l1.35-1.35,11.19,11.2Zm2.68-2.69L23.21,19.18l1.34-1.34L35.75,29Z\" fill=\"#484f60\"/></svg>",
17
+ "thick_lines": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"12.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/><rect x=\"10\" y=\"21.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/><rect x=\"10\" y=\"30.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/></svg>",
18
+ "thin_lines": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"14.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"20.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"26.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"32.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/></svg>",
19
+ "txt": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M31.42,40.17H13.87c-2.15,0-2.71-.56-2.71-2.72V12.88c0-2.15.56-2.71,2.71-2.71H25.48l8.66,8.88v3.43H32.8V19.6l-7.88-8.09H13.87c-1.37,0-1.37,0-1.37,1.37V37.45c0,1.37,0,1.37,1.37,1.37H31.42c1.38,0,1.38,0,1.38-1.37V35h1.34v2.43C34.14,39.61,33.58,40.17,31.42,40.17Z\" fill=\"#484f60\"/><path d=\"M25.2,10.84v6.44c0,1.78.27,2,2,2h6.23Z\" fill=\"#484f60\"/><path d=\"M19.14,24.27v9h19.7v-9Zm6.68,2.36h-1.9V32h-1.3V26.63h-1.9V25.54h5.1ZM30.4,32,29,29.74,27.55,32H26l2.19-3.34-2-3.07h1.52L29,27.6l1.26-2.06h1.5l-2,3.12L32,32Zm6.86-5.32h-1.9V32H34.07V26.63H32.16V25.54h5.1Z\" fill=\"#484f60\"/></svg>",
20
+ "xml": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M31.42,40.17H13.87c-2.15,0-2.71-.56-2.71-2.72V12.88c0-2.15.56-2.71,2.71-2.71H25.48l8.66,8.88v3.43H32.8V19.6l-7.88-8.09H13.87c-1.37,0-1.37,0-1.37,1.37V37.45c0,1.37,0,1.37,1.37,1.37H31.42c1.38,0,1.38,0,1.38-1.37V35h1.34v2.43C34.14,39.61,33.58,40.17,31.42,40.17Z\" fill=\"#484f60\"/><path d=\"M25.2,10.84v6.44c0,1.78.27,2,2,2h6.23Z\" fill=\"#484f60\"/><path d=\"M19.14,24.27v9h19.7v-9Zm5.36,7.41-1.3-2-1.3,2H20.48l2-3.06-1.81-2.8h1.38l1.18,1.88,1.15-1.88h1.37l-1.83,2.85,2,3Zm7.67,0h-1.1V27.07l-1.16,4.61H28.77l-1.16-4.61v4.61H26.52V25.82h1.76l1.07,4,1-4h1.77Zm5.33,0H33.38V25.87h1.18v4.82H37.5Z\" fill=\"#484f60\"/></svg>"
21
+ };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1zdmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvbW9kZWwvaWNvbi1zdmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0dBQWdHO0FBRWhHLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBa0M7SUFDckQsaUJBQWlCLEVBQUUsOExBQThMO0lBQ2pOLGtCQUFrQixFQUFFLHdjQUF3YztJQUM1ZCxrQkFBa0IsRUFBRSw4WkFBOFo7SUFDbGIsbUJBQW1CLEVBQUUsK1pBQStaO0lBQ3BiLGNBQWMsRUFBRSw0dkZBQTR2RjtJQUM1d0YsUUFBUSxFQUFFLDBQQUEwUDtJQUNwUSxnQkFBZ0IsRUFBRSxtbENBQW1sQztJQUNybUMsYUFBYSxFQUFFLDZhQUE2YTtJQUM1YixPQUFPLEVBQUUscXBCQUFxcEI7SUFDOXBCLEtBQUssRUFBRSx1MENBQXUwQztJQUM5MEMsWUFBWSxFQUFFLDBoQkFBMGhCO0lBQ3hpQixPQUFPLEVBQUUsaWxCQUFpbEI7SUFDMWxCLGlCQUFpQixFQUFFLHVwQkFBdXBCO0lBQzFxQixLQUFLLEVBQUUsdWhCQUF1aEI7SUFDOWhCLGFBQWEsRUFBRSw2UkFBNlI7SUFDNVMsWUFBWSxFQUFFLG9XQUFvVztJQUNsWCxLQUFLLEVBQUUseXBCQUF5cEI7SUFDaHFCLEtBQUssRUFBRSx1ckJBQXVyQjtDQUM5ckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBBVVRPIEdFTkVSQVRFRCBGSUxFLiBETyBOT1QgQ0hBTkdFLi4gT1IgWU9VIFdJTEwgU1VGRkVSIFRIRSBDT05TRVFVRU5DRVMgT0YgWU9VUiBBQ1RJT05TICoqL1xyXG5cclxuZXhwb3J0IGNvbnN0IEljb25Tdmc6IHtbaWNvbk5hbWU6IHN0cmluZ106IHN0cmluZ30gPSAge1xyXG4gXCJhcnJvd19mYXRfcmlnaHRcIjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDUwIDUwXFxcIj48cG9seWdvbiBwb2ludHM9XFxcIjM3LjUgMjUgMjUuMiAxMi43IDI1LjIgMjAuMzUgMTIuNSAyMC4zNSAxMi41IDI5LjY2IDI1LjIgMjkuNjYgMjUuMiAzNy4zIDM3LjUgMjVcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48L3N2Zz5cIixcclxuIFwiYXJyb3dfcG9pbnRfZG93blwiOiBcIjxzdmcgdmVyc2lvbj1cXFwiMS4xXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHg9XFxcIjBweFxcXCIgeT1cXFwiMHB4XFxcIiB2aWV3Qm94PVxcXCItMjgwIDM3MSA1MSA1MVxcXCIgZW5hYmxlLWJhY2tncm91bmQ9XFxcIm5ldyAtMjgwIDM3MSA1MSA1MVxcXCIgPjxwYXRoIGZpbGw9XFxcIiMyOTM2M0VcXFwiIGQ9XFxcIk0tMjQ4LjMsMzkyLjJjMC4zLDAsMC42LDAuMSwwLjgsMC4zYzAuNSwwLjUsMC41LDEuMiwwLDEuNmwtNi4yLDYuMmMtMC4yLDAuMi0wLjUsMC4zLTAuOCwwLjNjLTAuMywwLTAuNi0wLjEtMC44LTAuM2wtNi4yLTYuMmMtMC4yLTAuMi0wLjMtMC41LTAuMy0wLjhjMC0wLjMsMC4xLTAuNiwwLjMtMC44YzAuMi0wLjIsMC41LTAuMywwLjgtMC4zYzAuMywwLDAuNiwwLjEsMC44LDAuM2w1LjQsNS40bDUuNC01LjRDLTI0OC45LDM5Mi40LTI0OC42LDM5Mi4yLTI0OC4zLDM5Mi4yelxcXCIvPjwvc3ZnPlwiLFxyXG4gXCJhcnJvd19wb2ludF9sZWZ0XCI6IFwiPHN2ZyB2ZXJzaW9uPVxcXCIxLjFcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgeD1cXFwiMHB4XFxcIiB5PVxcXCIwcHhcXFwiIHZpZXdCb3g9XFxcIjAgMCA1MSA1MVxcXCIgZW5hYmxlLWJhY2tncm91bmQ9XFxcIm5ldyAwIDAgNTEgNTFcXFwiID48cGF0aCBmaWxsPVxcXCIjNDg0RjVGXFxcIiBkPVxcXCJNMzEuOSwzNi43bC0xNC43LTkuNkMxNy4xLDI3LDE3LDI2LjksMTcsMjYuN3YtMi40YzAtMC4yLDAuMS0wLjMsMC4yLTAuNGwxNC43LTkuNmMwLjItMC4yLDAuNS0wLjEsMC43LDAuMWwxLjQsMi4xYzAuMiwwLjIsMC4xLDAuNS0wLjEsMC43bC0xMiw3LjhjLTAuMywwLjItMC4zLDAuNiwwLDAuOGwxMiw3LjhjMC4yLDAuMiwwLjMsMC41LDAuMSwwLjdsLTEuNCwyLjFDMzIuNCwzNi44LDMyLjEsMzYuOCwzMS45LDM2Ljd6XFxcIi8+PC9zdmc+XCIsXHJcbiBcImFycm93X3BvaW50X3JpZ2h0XCI6IFwiPHN2ZyB2ZXJzaW9uPVxcXCIxLjFcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgeD1cXFwiMHB4XFxcIiB5PVxcXCIwcHhcXFwiIHZpZXdCb3g9XFxcIjAgMCA1MSA1MVxcXCIgZW5hYmxlLWJhY2tncm91bmQ9XFxcIm5ldyAwIDAgNTEgNTFcXFwiID48cGF0aCBmaWxsPVxcXCIjNDg0RjVGXFxcIiBkPVxcXCJNMTkuMSwxNC4zbDE0LjcsOS42YzAuMSwwLjEsMC4yLDAuMiwwLjIsMC40djIuNGMwLDAuMi0wLjEsMC4zLTAuMiwwLjRsLTE0LjcsOS42Yy0wLjIsMC4yLTAuNSwwLjEtMC43LTAuMWwtMS40LTIuMWMtMC4yLTAuMi0wLjEtMC41LDAuMS0wLjdsMTItNy44YzAuMy0wLjIsMC4zLTAuNiwwLTAuOGwtMTItNy44Yy0wLjItMC4yLTAuMy0wLjUtMC4xLTAuN2wxLjQtMi4xQzE4LjYsMTQuMiwxOC45LDE0LjIsMTkuMSwxNC4zelxcXCIvPjwvc3ZnPlwiLFxyXG4gXCJjYWxlbmRhcl9kYXlcIjogXCI8c3ZnIHZlcnNpb249XFxcIjEuMVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB4PVxcXCIwcHhcXFwiIHk9XFxcIjBweFxcXCIgdmlld0JveD1cXFwiMCAwIDUwIDUwXFxcIiBlbmFibGUtYmFja2dyb3VuZD1cXFwibmV3IDAgMCA1MCA1MFxcXCIgPjxnPjxwYXRoIGZpbGw9XFxcIiMwMjJENDJcXFwiIGQ9XFxcIk0zNS40LDEzLjdIMTQuNmMtMC42LDAtMSwwLjUtMSwxVjIwaDIyLjl2LTUuMkMzNi40LDE0LjIsMzYsMTMuNywzNS40LDEzLjd6IE0xOSwxOC44Yy0xLDAtMS44LTAuOC0xLjgtMS44YzAtMSwwLjgtMS44LDEuOC0xLjhjMSwwLDEuOCwwLjgsMS44LDEuOEMyMC44LDE4LDIwLDE4LjgsMTksMTguOHogTTMxLDE4LjhjLTEsMC0xLjgtMC44LTEuOC0xLjhjMC0xLDAuOC0xLjgsMS44LTEuOHMxLjgsMC44LDEuOCwxLjhDMzIuNywxOCwzMiwxOC44LDMxLDE4Ljh6XFxcIi8+PHBhdGggZmlsbD1cXFwiIzAyMkQ0MlxcXCIgZD1cXFwiTTM1LjQsMjIuM3YxMi42TDMxLjMsMzlIMTQuNmMwLDAsMCwwLDAsMFYyMi4zSDM1LjQgTTM2LjQsMjEuM0gxMy42VjM5YzAsMC42LDAuNSwxLDEsMWgxNy4ybDQuNy00LjdWMjEuM0wzNi40LDIxLjN6XFxcIi8+PHJlY3QgeD1cXFwiMTguMlxcXCIgeT1cXFwiMTBcXFwiIGZpbGw9XFxcIiMwMjJENDJcXFwiIHdpZHRoPVxcXCIxLjZcXFwiIGhlaWdodD1cXFwiNS4yXFxcIi8+PHJlY3QgeD1cXFwiMzAuMlxcXCIgeT1cXFwiMTBcXFwiIGZpbGw9XFxcIiMwMjJENDJcXFwiIHdpZHRoPVxcXCIxLjZcXFwiIGhlaWdodD1cXFwiNS4yXFxcIi8+PHJlY3QgeD1cXFwiMTguNlxcXCIgeT1cXFwiMzAuNVxcXCIgZmlsbD1cXFwiIzAyMkQ0MlxcXCIgd2lkdGg9XFxcIjMuNFxcXCIgaGVpZ2h0PVxcXCIzLjRcXFwiLz48cmVjdCB4PVxcXCIxOS4xXFxcIiB5PVxcXCIyNC44XFxcIiBvcGFjaXR5PVxcXCIwLjFcXFwiIGZpbGw9XFxcIiMwMjJENDJcXFwiIHdpZHRoPVxcXCIyLjRcXFwiIGhlaWdodD1cXFwiMi40XFxcIi8+PHJlY3QgeD1cXFwiMTkuMVxcXCIgeT1cXFwiMjcuOVxcXCIgb3BhY2l0eT1cXFwiMC4yNVxcXCIgZmlsbD1cXFwiIzAyMkQ0MlxcXCIgd2lkdGg9XFxcIjIuNFxcXCIgaGVpZ2h0PVxcXCIyLjRcXFwiLz48cmVjdCB4PVxcXCIxOS4xXFxcIiB5PVxcXCIzNC4xXFxcIiBvcGFjaXR5PVxcXCIwLjI1XFxcIiBmaWxsPVxcXCIjMDIyRDQyXFxcIiB3aWR0aD1cXFwiMi40XFxcIiBoZWlnaHQ9XFxcIjIuNFxcXCIvPjxyZWN0IHg9XFxcIjIyLjJcXFwiIHk9XFxcIjI0LjhcXFwiIG9wYWNpdHk9XFxcIjAuMVxcXCIgZmlsbD1cXFwiIzAyMkQ0MlxcXCIgd2lkdGg9XFxcIjIuNFxcXCIgaGVpZ2h0PVxcXCIyLjRcXFwiLz48cmVjdCB4PVxcXCIyMi4yXFxcIiB5PVxcXCIyNy45XFxcIiBvcGFjaXR5PVxcXCIwLjI1XFxcIiBmaWxsPVxcXCIjMDIyRDQyXFxcIiB3aWR0aD1cXFwiMi40XFxcIiBoZWlnaHQ9XFxcIjIuNFxcXCIvPjxyZWN0IHg9XFxcIjIyLjJcXFwiIHk9XFxcIjMxXFxcIiBvcGFjaXR5PVxcXCIwLjI1XFxcIiBmaWxsPVxcXCIjMDIyRDQyXFxcIiB3aWR0aD1cXFwiMi40XFxcIiBoZWlnaHQ9XFxcIjIuNFxcXCIvPjxyZWN0IHg9XFxcIjIyLjJcXFwiIHk9XFxcIjM0LjFcXFwiIG9wYWNpdHk9XFxcIjAuMjVcXFwiIGZpbGw9XFxcIiMwMjJENDJcXFwiIHdpZHRoPVxcXCIyLjRcXFwiIGhlaWdodD1cXFwiMi40XFxcIi8+PHJlY3QgeD1cXFwiMjUuNFxcXCIgeT1cXFwiMzFcXFwiIG9wYWNpdHk9XFxcIjAuMjVcXFwiIGZpbGw9XFxcIiMwMjJENDJcXFwiIHdpZHRoPVxcXCIyLjRcXFwiIGhlaWdodD1cXFwiMi40XFxcIi8+PHJlY3QgeD1cXFwiMjUuNFxcXCIgeT1cXFwiMjQuOFxcXCIgb3BhY2l0eT1cXFwiMC4yNVxcXCIgZmlsbD1cXFwiIzAyMkQ0MlxcXCIgd2lkdGg9XFxcIjIuNFxcXCIgaGVpZ2h0PVxcXCIyLjRcXFwiLz48cmVjdCB4PVxcXCIyNS40XFxcIiB5PVxcXCIyNy45XFxcIiBvcGFjaXR5PVxcXCIwLjI1XFxcIiBmaWxsPVxcXCIjMDIyRDQyXFxcIiB3aWR0aD1cXFwiMi40XFxcIiBoZWlnaHQ9XFxcIjIuNFxcXCIvPjxyZWN0IHg9XFxcIjI1LjRcXFwiIHk9XFxcIjM0LjFcXFwiIG9wYWNpdHk9XFxcIjAuMjVcXFwiIGZpbGw9XFxcIiMwMjJENDJcXFwiIHdpZHRoPVxcXCIyLjRcXFwiIGhlaWdodD1cXFwiMi40XFxcIi8+PHJlY3QgeD1cXFwiMzEuNlxcXCIgeT1cXFwiMzFcXFwiIG9wYWNpdHk9XFxcIjAuMjVcXFwiIGZpbGw9XFxcIiMwMjJENDJcXFwiIHdpZHRoPVxcXCIyLjRcXFwiIGhlaWdodD1cXFwiMi40XFxcIi8+PHJlY3QgeD1cXFwiMzEuNlxcXCIgeT1cXFwiMjQuOFxcXCIgb3BhY2l0eT1cXFwiMC4yNVxcXCIgZmlsbD1cXFwiIzAyMkQ0MlxcXCIgd2lkdGg9XFxcIjIuNFxcXCIgaGVpZ2h0PVxcXCIyLjRcXFwiLz48cmVjdCB4PVxcXCIzMS42XFxcIiB5PVxcXCIyNy45XFxcIiBvcGFjaXR5PVxcXCIwLjI1XFxcIiBmaWxsPVxcXCIjMDIyRDQyXFxcIiB3aWR0aD1cXFwiMi40XFxcIiBoZWlnaHQ9XFxcIjIuNFxcXCIvPjxyZWN0IHg9XFxcIjI4LjVcXFwiIHk9XFxcIjI3LjlcXFwiIG9wYWNpdHk9XFxcIjAuMjVcXFwiIGZpbGw9XFxcIiMwMjJENDJcXFwiIHdpZHRoPVxcXCIyLjRcXFwiIGhlaWdodD1cXFwiMi40XFxcIi8+PHJlY3QgeD1cXFwiMjguNVxcXCIgeT1cXFwiMjQuOFxcXCIgb3BhY2l0eT1cXFwiMC4yNVxcXCIgZmlsbD1cXFwiIzAyMkQ0MlxcXCIgd2lkdGg9XFxcIjIuNFxcXCIgaGVpZ2h0PVxcXCIyLjRcXFwiLz48cmVjdCB4PVxcXCIyOC41XFxcIiB5PVxcXCIzMVxcXCIgb3BhY2l0eT1cXFwiMC4yNVxcXCIgZmlsbD1cXFwiIzAyMkQ0MlxcXCIgd2lkdGg9XFxcIjIuNFxcXCIgaGVpZ2h0PVxcXCIyLjRcXFwiLz48cmVjdCB4PVxcXCIyOC41XFxcIiB5PVxcXCIzNC4xXFxcIiBvcGFjaXR5PVxcXCIwLjI1XFxcIiBmaWxsPVxcXCIjMDIyRDQyXFxcIiB3aWR0aD1cXFwiMi40XFxcIiBoZWlnaHQ9XFxcIjIuNFxcXCIvPjxyZWN0IHg9XFxcIjE2XFxcIiB5PVxcXCIyNC44XFxcIiBvcGFjaXR5PVxcXCIwLjFcXFwiIGZpbGw9XFxcIiMwMjJENDJcXFwiIHdpZHRoPVxcXCIyLjRcXFwiIGhlaWdodD1cXFwiMi40XFxcIi8+PHJlY3QgeD1cXFwiMTZcXFwiIHk9XFxcIjI3LjlcXFwiIG9wYWNpdHk9XFxcIjAuMjVcXFwiIGZpbGw9XFxcIiMwMjJENDJcXFwiIHdpZHRoPVxcXCIyLjRcXFwiIGhlaWdodD1cXFwiMi40XFxcIi8+PHJlY3QgeD1cXFwiMTZcXFwiIHk9XFxcIjMxXFxcIiBvcGFjaXR5PVxcXCIwLjI1XFxcIiBmaWxsPVxcXCIjMDIyRDQyXFxcIiB3aWR0aD1cXFwiMi40XFxcIiBoZWlnaHQ9XFxcIjIuNFxcXCIvPjxyZWN0IHg9XFxcIjE2XFxcIiB5PVxcXCIzNC4xXFxcIiBvcGFjaXR5PVxcXCIwLjI1XFxcIiBmaWxsPVxcXCIjMDIyRDQyXFxcIiB3aWR0aD1cXFwiMi40XFxcIiBoZWlnaHQ9XFxcIjIuNFxcXCIvPjwvZz48L3N2Zz5cIixcclxuIFwiY2FuY2VsXCI6IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCA1MCA1MFxcXCI+PHBvbHlnb24gcG9pbnRzPVxcXCIzNiAzNS4xNiAzMC40NSAzNS4xNiAxNCAxNC44NCAxOS41NSAxNC44NCAzNiAzNS4xNlxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQgMzUuMTYgMTkuNTUgMzUuMTYgMzYgMTQuODQgMzAuNDUgMTQuODQgMTQgMzUuMTZcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48L3N2Zz5cIixcclxuIFwiZGVsaXZlcnlfdHJ1Y2tcIjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDUwIDUwXFxcIj48cmVjdCB4PVxcXCIxNS4zNVxcXCIgeT1cXFwiMTYuNTZcXFwiIHdpZHRoPVxcXCIxNS4xNFxcXCIgaGVpZ2h0PVxcXCIxMC45NFxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTEuODMgMi4wOCkgcm90YXRlKC01KVxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjxwYXRoIGQ9XFxcIk0zOC41LDE4LjFsLTYuOS42MUwzMi40MSwyOGwtNy42My42N2EzLjc2LDMuNzYsMCwwLDEsMS40MywyLjI1bDcuMjUtLjYzQTMuODMsMy44MywwLDAsMSw0MSwyOS42bDEtLjEtLjUyLTZabS4yOSw1Ljg0LTMuOTEuMzRhLjUxLjUxLDAsMCwxLS41NS0uNDZMMzQsMjAuMWEuNDkuNDksMCwwLDEsLjQ1LS41NGwyLjI3LS4yYS41LjUsMCwwLDEsLjQ4LjI1bDIsMy41OUEuNS41LDAsMCwxLDM4Ljc5LDIzLjk0WlxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS42NiwyOS4wOWEzLjgsMy44LDAsMCwwLTEsMi40NmwtLjc0LjA3LTEuODItLjk0TDE2LDI5LjQxWlxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjxwYXRoIGQ9XFxcIk0zNC41NiwzMC42MmEyLjc0LDIuNzQsMCwxLDAsMi40OS0zQTIuNzMsMi43MywwLDAsMCwzNC41NiwzMC42MlpcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cGF0aCBkPVxcXCJNMTkuNzQsMzEuOTFhMi43NCwyLjc0LDAsMSwwLDIuNDktM0EyLjc0LDIuNzQsMCwwLDAsMTkuNzQsMzEuOTFaXFxcIiBmaWxsPVxcXCIjNDg0ZjYwXFxcIi8+PHJlY3QgeD1cXFwiNy45NlxcXCIgeT1cXFwiMTcuNjNcXFwiIHdpZHRoPVxcXCI1XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xLjU0IDAuOTgpIHJvdGF0ZSgtNSlcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cmVjdCB4PVxcXCIxMS4wMlxcXCIgeT1cXFwiMjkuNzFcXFwiIHdpZHRoPVxcXCIzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0yLjU5IDEuMjEpIHJvdGF0ZSgtNSlcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cmVjdCB4PVxcXCI5LjQ4XFxcIiB5PVxcXCIyMy41M1xcXCIgd2lkdGg9XFxcIjRcXFwiIGhlaWdodD1cXFwiMVxcXCIgdHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgLTAuMDksIDAuMDksIDEsIC0yLjA1LCAxLjA5KVxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjwvc3ZnPlwiLFxyXG4gXCJlZGl0X3BlbmNpbFwiOiBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgNTAgNTBcXFwiPjxwb2x5Z29uIHBvaW50cz1cXFwiMTIuNTQgMzguMTYgMTIgMzcuNjIgMTQuODUgMjkuNjQgMjAuNTIgMzUuMzEgMTIuNTQgMzguMTZcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cmVjdCB4PVxcXCIxNi4zM1xcXCIgeT1cXFwiMjAuNTJcXFwiIHdpZHRoPVxcXCIxNy45OVxcXCIgaGVpZ2h0PVxcXCI4LjY0XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTAuMTUgMjUuMTgpIHJvdGF0ZSgtNDUpXFxcIiBmaWxsPVxcXCIjNDg0ZjYwXFxcIi8+PHBhdGggZD1cXFwiTTM3LjU0LDE4LjczLDM2LDIwLjMybC02LjExLTYuMSwxLjU5LTEuNTlhMS41NSwxLjU1LDAsMCwxLDIuMiwwbDMuOTEsMy45QTEuNTUsMS41NSwwLDAsMSwzNy41NCwxOC43M1pcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48L3N2Zz5cIixcclxuIFwiZW1haWxcIjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDUwIDUwXFxcIj48cGF0aCBkPVxcXCJNMzEuNzksMzguNDVBMTcuODIsMTcuODIsMCwwLDEsMjMuODYsNDAsMTMuMDksMTMuMDksMCwwLDEsMTAuNDEsMjYuNDJDMTAuNDEsMTcuNjMsMTYuODMsMTAsMjYuNTMsMTBjNy42MywwLDEzLjA2LDUuMjEsMTMuMDYsMTIuNDYsMCw2LjMzLTMuNTMsMTAuMy04LjE5LDEwLjNhMy40MiwzLjQyLDAsMCwxLTMuNzEtMy4zMmgtLjA4QTYuNSw2LjUsMCwwLDEsMjIsMzIuNzZjLTIuNzUsMC00LjgyLTIuMTEtNC44Mi01LjY1YTkuODUsOS44NSwwLDAsMSwxMC4xMy0xMCwxMi44OSwxMi44OSwwLDAsMSw1LjEzLDFsLTEuMyw4Yy0uNDMsMi41NC0uMTMsMy43MSwxLjA4LDMuNzUsMS44NS4wOSw0LjE4LTIuMjgsNC4xOC03LjI4LDAtNS42NS0zLjYyLTEwLTEwLjMtMTBTMTMuNzMsMTcuNzYsMTMuNzMsMjZjMCw3LjI1LDQuNTcsMTEuMywxMSwxMS4zQTE0LjgxLDE0LjgxLDAsMCwwLDMxLDM2Wk0yOCwyMC42NWE1LjM0LDUuMzQsMCwwLDAtMS4zMy0uMThjLTIuODUsMC01LjA5LDIuODEtNS4wOSw2LjEyLDAsMS42NC43MywyLjY4LDIuMTYsMi42OCwxLjU5LDAsMy4yNy0yLDMuNjYtNC41M1pcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48L3N2Zz5cIixcclxuIFwicGRmXCI6IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCA1MCA1MFxcXCI+PHBhdGggZD1cXFwiTTMxLjQyLDQwLjE3SDEzLjg4Yy0yLjE2LDAtMi43Mi0uNTYtMi43Mi0yLjcyVjEyLjg4YzAtMi4xNS41Ni0yLjcxLDIuNzItMi43MWgxMS42bDguNjYsOC44OHYzLjQzSDMyLjhWMTkuNmwtNy44OC04LjA5aC0xMWMtMS4zOCwwLTEuMzgsMC0xLjM4LDEuMzdWMzcuNDVjMCwxLjM3LDAsMS4zNywxLjM4LDEuMzdIMzEuNDJjMS4zOCwwLDEuMzgsMCwxLjM4LTEuMzdWMzVoMS4zNHYyLjQzQzM0LjE0LDM5LjYxLDMzLjU4LDQwLjE3LDMxLjQyLDQwLjE3WlxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNy44MywyNi42M3Y0LjI0aDFhMy41NywzLjU3LDAsMCwwLC43OC0uMDYsMS4yMiwxLjIyLDAsMCwwLC41Mi0uMjYsMS40NCwxLjQ0LDAsMCwwLC4zNC0uNjIsNC4xMyw0LjEzLDAsMCwwLC4xMy0xLjE4LDMuNzksMy43OSwwLDAsMC0uMTMtMS4xNCwxLjUxLDEuNTEsMCwwLDAtLjM3LS42MiwxLjE0LDEuMTQsMCwwLDAtLjYtLjMsNS45Myw1LjkzLDAsMCwwLTEuMDYtLjA2WlxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS44NiwyNi42M3YxLjgyaC43MWEzLjU3LDMuNTcsMCwwLDAsMS0uMUEuODguODgsMCwwLDAsMjQsMjhhLjg0Ljg0LDAsMCwwLC4xNC0uNS44LjgsMCwwLDAtLjItLjU3Ljg4Ljg4LDAsMCwwLS41Mi0uMjksNi4zNiw2LjM2LDAsMCwwLS45MywwWlxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4xNCwyNC4yN3Y5aDE5Ljd2LTlabTYuMTIsNC4yNGExLjY4LDEuNjgsMCwwLDEtLjU0LjYzLDEuOSwxLjksMCwwLDEtLjY3LjMsNi41Nyw2LjU3LDAsMCwxLTEuMzQuMWgtLjg1VjMySDIwLjU3VjI1LjU0aDIuMDdhNy43NSw3Ljc1LDAsMCwxLDEuNTQuMSwxLjczLDEuNzMsMCwwLDEsLjkzLjYzLDIsMiwwLDAsMSwuMzcsMS4yNUEyLDIsMCwwLDEsMjUuMjYsMjguNTFabTYuNDUsMS42NkEyLjkxLDIuOTEsMCwwLDEsMzEsMzEuMzFhMi4yOCwyLjI4LDAsMCwxLS45MS41MUE0LDQsMCwwLDEsMjksMzJIMjYuNTRWMjUuNTRIMjguOWE0LjIxLDQuMjEsMCwwLDEsMS4yMi4xMywyLjA4LDIuMDgsMCwwLDEsMSwuNTksMi43OSwyLjc5LDAsMCwxLC42MSwxLDQuNzYsNC43NiwwLDAsMSwuMjEsMS41MkE0LjE5LDQuMTksMCwwLDEsMzEuNzEsMzAuMTdabTUuNy0zLjU0aC0zLjF2MS41MkgzN3YxLjA4SDM0LjMxVjMySDMzVjI1LjU0aDQuMzlaXFxcIiBmaWxsPVxcXCIjNDg0ZjYwXFxcIi8+PHBhdGggZD1cXFwiTTI1LjIsMTAuODR2Ni40NGMwLDEuNzguMjcsMiwyLDJoNi4yM1pcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48L3N2Zz5cIixcclxuIFwicGx1c19yb3VuZFwiOiBcIjxzdmcgdmVyc2lvbj1cXFwiMS4xXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHg9XFxcIjBweFxcXCIgeT1cXFwiMHB4XFxcIiB2aWV3Qm94PVxcXCItMjg4IDM3OSAzNSAzNVxcXCIgZW5hYmxlLWJhY2tncm91bmQ9XFxcIm5ldyAtMjg4IDM3OSAzNSAzNVxcXCIgPjxwYXRoIGZpbGw9XFxcIiMyOTM2M0VcXFwiIGQ9XFxcIk0tMjcwLjUsMzgxLjVjLTguMywwLTE1LDYuNy0xNSwxNWMwLDguMyw2LjcsMTUsMTUsMTVzMTUtNi43LDE1LTE1Qy0yNTUuNSwzODguMi0yNjIuMiwzODEuNS0yNzAuNSwzODEuNXogTS0yNjEuMSwzOTcuM2MwLDAuOS0wLjcsMS42LTEuNiwxLjZoLTUuNXY1LjVjMCwwLjktMC43LDEuNi0xLjYsMS42aC0xLjZjLTAuOSwwLTEuNi0wLjctMS42LTEuNnYtNS41aC01LjVjLTAuOSwwLTEuNi0wLjctMS42LTEuNnYtMS42YzAtMC45LDAuNy0xLjYsMS42LTEuNmg1LjV2LTUuNWMwLTAuOSwwLjctMS42LDEuNi0xLjZoMS42YzAuOSwwLDEuNiwwLjcsMS42LDEuNnY1LjVoNS41YzAuOSwwLDEuNiwwLjcsMS42LDEuNlYzOTcuM3pcXFwiLz48L3N2Zz5cIixcclxuIFwicHJpbnRcIjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDUwIDUwXFxcIj48cGF0aCBkPVxcXCJNMzgsMTYuNUgxMmEyLDIsMCwwLDAtMiwydjlhMiwyLDAsMCwwLDIsMmgydi01SDM2djVoMmEyLDIsMCwwLDAsMi0ydi05QTIsMiwwLDAsMCwzOCwxNi41Wk0zNywyMWExLjUsMS41LDAsMSwxLDEuNS0xLjVBMS41LDEuNSwwLDAsMSwzNywyMVpcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cGF0aCBkPVxcXCJNMzUsMTEuNXY1SDE1di01SDM1bTEtMUgxNHY3SDM2di03WlxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjxwYXRoIGQ9XFxcIk0zNSwyNS41djEzSDE1di0xM0gzNW0xLTFIMTR2MTVIMzZ2LTE1WlxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjxyZWN0IHg9XFxcIjE3XFxcIiB5PVxcXCIyOC4zXFxcIiB3aWR0aD1cXFwiMTZcXFwiIGhlaWdodD1cXFwiMC44XFxcIiBmaWxsPVxcXCIjNDg0ZjYwXFxcIi8+PHJlY3QgeD1cXFwiMTdcXFwiIHk9XFxcIjMxLjVcXFwiIHdpZHRoPVxcXCIxNlxcXCIgaGVpZ2h0PVxcXCIwLjhcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cmVjdCB4PVxcXCIxN1xcXCIgeT1cXFwiMzQuN1xcXCIgd2lkdGg9XFxcIjE2XFxcIiBoZWlnaHQ9XFxcIjAuOFxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjwvc3ZnPlwiLFxyXG4gXCJzaWduYXR1cmVfZmllbGRcIjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDUwIDUwXFxcIj48cGF0aCBkPVxcXCJNMjAuMSwyNS40MmExLjEsMS4xLDAsMSwxLDEuMjcsMS40NWwtMy4zLDkuMDdBNjMuMTMsNjMuMTMsMCwwLDEsMjgsMjguM2wxLjI2LTEyLTguMjYtMy02Ljc3LDEwQTYyLjQsNjIuNCwwLDAsMSwxNywzNS41NGwzLjMtOS4wN0ExLjEyLDEuMTIsMCwwLDEsMjAuMSwyNS40MlpcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cmVjdCB4PVxcXCIyMS42MlxcXCIgeT1cXFwiMTEuNDNcXFwiIHdpZHRoPVxcXCI4Ljc5XFxcIiBoZWlnaHQ9XFxcIjIuMzRcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDUuODggLTguMTQpIHJvdGF0ZSgyMClcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cGF0aCBkPVxcXCJNMTguMTEsMzcuNDhjMS40NCwyLjY1LDQuNTgsMi45NCw3LjIzLDIuMSwxLjQxLS40NCwyLjItMS40OSwzLjQ0LTIuMDYsMi40Mi0xLjEsMy4xMywxLjIsNS4zNiwxLjM3LjQyLDAsMi0uNjUsMS41NC0uNjgtMi41NS0uMTktMi45My0zLjEzLTUuNTEtMi42NWE0LjksNC45LDAsMCwwLTEuNjQuNzFjLS43Ny40OS0xLjMxLDEuNjItMi4wNywybC00LjYxLjU2QTMuMzgsMy4zOCwwLDAsMSwyMCwzN2MtLjIyLS40MS0yLC4yOC0xLjg1LjVaXFxcIiBmaWxsPVxcXCIjNDg0ZjYwXFxcIi8+PC9zdmc+XCIsXHJcbiBcInRhZ1wiOiBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgNTAgNTBcXFwiPjxwYXRoIGQ9XFxcIk00MCwyOS4xNXYtLjY4YTUuMjgsNS4yOCwwLDAsMC0xLjM0LTMuMjVMMjQuNzgsMTEuMzRBNS4zNCw1LjM0LDAsMCwwLDIxLjUzLDEwSDExLjlBMS45MSwxLjkxLDAsMCwwLDEwLDExLjl2OS42M2E1LjI4LDUuMjgsMCwwLDAsMS4zNCwzLjI1TDI1LjIyLDM4LjY2QTUuMjgsNS4yOCwwLDAsMCwyOC40Nyw0MGguNjhhNS4yOCw1LjI4LDAsMCwwLDMuMjQtMS4zNGw2LjI3LTYuMjdBNS4yOCw1LjI4LDAsMCwwLDQwLDI5LjE1Wk0xMy4xMywxNi43MmEyLjU0LDIuNTQsMCwxLDEsMy41OSwwQTIuNTUsMi41NSwwLDAsMSwxMy4xMywxNi43MlptMTUuOSwxOUwxNy44NCwyNC41NWwxLjM0LTEuMzRMMzAuMzcsMzQuNFptMi42OS0yLjY5TDIwLjUyLDIxLjg3bDEuMzUtMS4zNSwxMS4xOSwxMS4yWm0yLjY4LTIuNjlMMjMuMjEsMTkuMThsMS4zNC0xLjM0TDM1Ljc1LDI5WlxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjwvc3ZnPlwiLFxyXG4gXCJ0aGlja19saW5lc1wiOiBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgNTAgNTBcXFwiPjxyZWN0IHg9XFxcIjEwXFxcIiB5PVxcXCIxMi42N1xcXCIgd2lkdGg9XFxcIjMwXFxcIiBoZWlnaHQ9XFxcIjdcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cmVjdCB4PVxcXCIxMFxcXCIgeT1cXFwiMjEuNjdcXFwiIHdpZHRoPVxcXCIzMFxcXCIgaGVpZ2h0PVxcXCI3XFxcIiBmaWxsPVxcXCIjNDg0ZjYwXFxcIi8+PHJlY3QgeD1cXFwiMTBcXFwiIHk9XFxcIjMwLjY3XFxcIiB3aWR0aD1cXFwiMzBcXFwiIGhlaWdodD1cXFwiN1xcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjwvc3ZnPlwiLFxyXG4gXCJ0aGluX2xpbmVzXCI6IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCA1MCA1MFxcXCI+PHJlY3QgeD1cXFwiMTBcXFwiIHk9XFxcIjE0LjE3XFxcIiB3aWR0aD1cXFwiMzBcXFwiIGhlaWdodD1cXFwiNFxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjxyZWN0IHg9XFxcIjEwXFxcIiB5PVxcXCIyMC4xN1xcXCIgd2lkdGg9XFxcIjMwXFxcIiBoZWlnaHQ9XFxcIjRcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cmVjdCB4PVxcXCIxMFxcXCIgeT1cXFwiMjYuMTdcXFwiIHdpZHRoPVxcXCIzMFxcXCIgaGVpZ2h0PVxcXCI0XFxcIiBmaWxsPVxcXCIjNDg0ZjYwXFxcIi8+PHJlY3QgeD1cXFwiMTBcXFwiIHk9XFxcIjMyLjE3XFxcIiB3aWR0aD1cXFwiMzBcXFwiIGhlaWdodD1cXFwiNFxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjwvc3ZnPlwiLFxyXG4gXCJ0eHRcIjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDUwIDUwXFxcIj48cGF0aCBkPVxcXCJNMzEuNDIsNDAuMTdIMTMuODdjLTIuMTUsMC0yLjcxLS41Ni0yLjcxLTIuNzJWMTIuODhjMC0yLjE1LjU2LTIuNzEsMi43MS0yLjcxSDI1LjQ4bDguNjYsOC44OHYzLjQzSDMyLjhWMTkuNmwtNy44OC04LjA5SDEzLjg3Yy0xLjM3LDAtMS4zNywwLTEuMzcsMS4zN1YzNy40NWMwLDEuMzcsMCwxLjM3LDEuMzcsMS4zN0gzMS40MmMxLjM4LDAsMS4zOCwwLDEuMzgtMS4zN1YzNWgxLjM0djIuNDNDMzQuMTQsMzkuNjEsMzMuNTgsNDAuMTcsMzEuNDIsNDAuMTdaXFxcIiBmaWxsPVxcXCIjNDg0ZjYwXFxcIi8+PHBhdGggZD1cXFwiTTI1LjIsMTAuODR2Ni40NGMwLDEuNzguMjcsMiwyLDJoNi4yM1pcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cGF0aCBkPVxcXCJNMTkuMTQsMjQuMjd2OWgxOS43di05Wm02LjY4LDIuMzZoLTEuOVYzMmgtMS4zVjI2LjYzaC0xLjlWMjUuNTRoNS4xWk0zMC40LDMyLDI5LDI5Ljc0LDI3LjU1LDMySDI2bDIuMTktMy4zNC0yLTMuMDdoMS41MkwyOSwyNy42bDEuMjYtMi4wNmgxLjVsLTIsMy4xMkwzMiwzMlptNi44Ni01LjMyaC0xLjlWMzJIMzQuMDdWMjYuNjNIMzIuMTZWMjUuNTRoNS4xWlxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjwvc3ZnPlwiLFxyXG4gXCJ4bWxcIjogXCI8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDUwIDUwXFxcIj48cGF0aCBkPVxcXCJNMzEuNDIsNDAuMTdIMTMuODdjLTIuMTUsMC0yLjcxLS41Ni0yLjcxLTIuNzJWMTIuODhjMC0yLjE1LjU2LTIuNzEsMi43MS0yLjcxSDI1LjQ4bDguNjYsOC44OHYzLjQzSDMyLjhWMTkuNmwtNy44OC04LjA5SDEzLjg3Yy0xLjM3LDAtMS4zNywwLTEuMzcsMS4zN1YzNy40NWMwLDEuMzcsMCwxLjM3LDEuMzcsMS4zN0gzMS40MmMxLjM4LDAsMS4zOCwwLDEuMzgtMS4zN1YzNWgxLjM0djIuNDNDMzQuMTQsMzkuNjEsMzMuNTgsNDAuMTcsMzEuNDIsNDAuMTdaXFxcIiBmaWxsPVxcXCIjNDg0ZjYwXFxcIi8+PHBhdGggZD1cXFwiTTI1LjIsMTAuODR2Ni40NGMwLDEuNzguMjcsMiwyLDJoNi4yM1pcXFwiIGZpbGw9XFxcIiM0ODRmNjBcXFwiLz48cGF0aCBkPVxcXCJNMTkuMTQsMjQuMjd2OWgxOS43di05Wm01LjM2LDcuNDEtMS4zLTItMS4zLDJIMjAuNDhsMi0zLjA2LTEuODEtMi44aDEuMzhsMS4xOCwxLjg4LDEuMTUtMS44OGgxLjM3bC0xLjgzLDIuODUsMiwzWm03LjY3LDBoLTEuMVYyNy4wN2wtMS4xNiw0LjYxSDI4Ljc3bC0xLjE2LTQuNjF2NC42MUgyNi41MlYyNS44MmgxLjc2bDEuMDcsNCwxLTRoMS43N1ptNS4zMywwSDMzLjM4VjI1Ljg3aDEuMTh2NC44MkgzNy41WlxcXCIgZmlsbD1cXFwiIzQ4NGY2MFxcXCIvPjwvc3ZnPlwiXHJcbn07XHJcbiJdfQ==
@@ -0,0 +1,51 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { DomSanitizer } from "@angular/platform-browser";
3
+ import { IconSvg } from "../model/icon-svg";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/platform-browser";
6
+ export class IconCacheService {
7
+ constructor(_sanitizer) {
8
+ this._sanitizer = _sanitizer;
9
+ this._iconCache = {};
10
+ this.setIconCache();
11
+ }
12
+ /**
13
+ * All the icons as a large JSON object, from the all-icons.json file.
14
+ * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.
15
+ */
16
+ get iconCache() {
17
+ return this._iconCache;
18
+ }
19
+ getIcon(iconName) {
20
+ if (iconName) {
21
+ return this._iconCache[iconName.toLowerCase()];
22
+ }
23
+ }
24
+ getIconAsBase64(iconName) {
25
+ const icon = IconSvg[iconName];
26
+ const base64Data = window.btoa(icon);
27
+ return this._sanitizer.bypassSecurityTrustUrl(`data:image/svg+xml;base64,${base64Data}`);
28
+ }
29
+ getRawIcon(iconName) {
30
+ if (iconName) {
31
+ return IconSvg[iconName.toLowerCase()];
32
+ }
33
+ }
34
+ setIconCache() {
35
+ for (const key in IconSvg) {
36
+ if (IconSvg.hasOwnProperty(key) && typeof IconSvg[key] !== "function") {
37
+ this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(IconSvg[key]);
38
+ }
39
+ }
40
+ }
41
+ }
42
+ IconCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(i0.ɵɵinject(i1.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
43
+ IconCacheService.decorators = [
44
+ { type: Injectable, args: [{
45
+ providedIn: "root"
46
+ },] }
47
+ ];
48
+ IconCacheService.ctorParameters = () => [
49
+ { type: DomSanitizer }
50
+ ];
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1jYWNoZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFlBQVksRUFBVyxNQUFNLDJCQUEyQixDQUFDO0FBRWpFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBSzFDLE1BQU0sT0FBTyxnQkFBZ0I7SUFXM0IsWUFDVSxVQUF3QjtRQUF4QixlQUFVLEdBQVYsVUFBVSxDQUFjO1FBSDFCLGVBQVUsR0FBcUMsRUFBRSxDQUFDO1FBS3hELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBZEQ7OztPQUdHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBVU0sT0FBTyxDQUFDLFFBQWM7UUFDM0IsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRU0sZUFBZSxDQUFDLFFBQWM7UUFDbkMsTUFBTSxJQUFJLEdBQVcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sVUFBVSxHQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLDZCQUE2QixVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFTSxVQUFVLENBQUMsUUFBYztRQUM5QixJQUFJLFFBQVEsRUFBRTtZQUNaLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVNLFlBQVk7UUFDakIsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUU7WUFDekIsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsRUFBRTtnQkFDckUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzVGO1NBQ0Y7SUFDSCxDQUFDOzs7O1lBNUNGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBTk8sWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtEb21TYW5pdGl6ZXIsIFNhZmVIdG1sfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25Tdmd9IGZyb20gXCIuLi9tb2RlbC9pY29uLXN2Z1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJY29uQ2FjaGVTZXJ2aWNlIHtcclxuICAvKipcclxuICAgKiBBbGwgdGhlIGljb25zIGFzIGEgbGFyZ2UgSlNPTiBvYmplY3QsIGZyb20gdGhlIGFsbC1pY29ucy5qc29uIGZpbGUuXHJcbiAgICogVGhlIG9iamVjdCBoYXMgcHJvcGVydHkga2V5cyB0aGF0IGFyZSB0aGUgaWNvbiBuYW1lcywgYW5kIHByb3BlcnR5IHZhbHVlcyB3aXRoIHRoZSBkYXRhIHN0cmluZyBvZiB0aGUgYWN0dWFsIHN2ZyBpY29uLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgaWNvbkNhY2hlKCk6IHsgW2ljb25OYW1lOiBzdHJpbmddOiBTYWZlSHRtbCB9IHtcclxuICAgIHJldHVybiB0aGlzLl9pY29uQ2FjaGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pY29uQ2FjaGU6IHsgW2ljb25OYW1lOiBzdHJpbmddOiBTYWZlSHRtbCB9ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHtcclxuICAgIHRoaXMuc2V0SWNvbkNhY2hlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SWNvbihpY29uTmFtZTogSWNvbik6IFNhZmVIdG1sIHtcclxuICAgIGlmIChpY29uTmFtZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5faWNvbkNhY2hlW2ljb25OYW1lLnRvTG93ZXJDYXNlKCldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEljb25Bc0Jhc2U2NChpY29uTmFtZTogSWNvbik6IFNhZmVIdG1sIHtcclxuICAgIGNvbnN0IGljb246IHN0cmluZyA9IEljb25TdmdbaWNvbk5hbWVdO1xyXG4gICAgY29uc3QgYmFzZTY0RGF0YTogc3RyaW5nID0gd2luZG93LmJ0b2EoaWNvbik7XHJcbiAgICByZXR1cm4gdGhpcy5fc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoYGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsJHtiYXNlNjREYXRhfWApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFJhd0ljb24oaWNvbk5hbWU6IEljb24pOiBzdHJpbmcge1xyXG4gICAgaWYgKGljb25OYW1lKSB7XHJcbiAgICAgIHJldHVybiBJY29uU3ZnW2ljb25OYW1lLnRvTG93ZXJDYXNlKCldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEljb25DYWNoZSgpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIEljb25TdmcpIHtcclxuICAgICAgaWYgKEljb25TdmcuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB0eXBlb2YgSWNvblN2Z1trZXldICE9PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICB0aGlzLl9pY29uQ2FjaGVba2V5LnRvTG93ZXJDYXNlKCldID0gdGhpcy5fc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEljb25Tdmdba2V5XSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19