@colijnit/sharedcomponents 1.0.24 → 1.0.25

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 (292) hide show
  1. package/.browserslistrc +16 -0
  2. package/.editorconfig +16 -0
  3. package/.vscode/extensions.json +4 -0
  4. package/.vscode/launch.json +20 -0
  5. package/.vscode/tasks.json +42 -0
  6. package/README.md +11 -8
  7. package/Sharedcomponents.iml +11 -0
  8. package/angular.json +133 -0
  9. package/karma.conf.js +44 -0
  10. package/move-assets.js +14 -0
  11. package/package.json +74 -26
  12. package/projects/sharedcomponents/.browserslistrc +16 -0
  13. package/projects/sharedcomponents/README.md +24 -0
  14. package/projects/sharedcomponents/karma.conf.js +44 -0
  15. package/projects/sharedcomponents/ng-package.json +17 -0
  16. package/projects/sharedcomponents/package.json +18 -0
  17. package/projects/sharedcomponents/src/lib/assets/dictionary/text.properties.ts +8 -0
  18. package/projects/sharedcomponents/src/lib/assets/icons/angle_left_solid.svg +1 -0
  19. package/projects/sharedcomponents/src/lib/assets/icons/angle_right_solid.svg +1 -0
  20. package/projects/sharedcomponents/src/lib/assets/icons/arrow_fat_right.svg +1 -0
  21. package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_left.svg +8 -0
  22. package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_right.svg +4 -0
  23. package/projects/sharedcomponents/src/lib/assets/icons/bring_forward_regular.svg +1 -0
  24. package/projects/sharedcomponents/src/lib/assets/icons/check_round.svg +1 -0
  25. package/projects/sharedcomponents/src/lib/assets/icons/delete_left_regular.svg +1 -0
  26. package/projects/sharedcomponents/src/lib/assets/icons/delivery_truck.svg +12 -0
  27. package/projects/sharedcomponents/src/lib/assets/icons/email.svg +5 -0
  28. package/projects/sharedcomponents/src/lib/assets/icons/pdf.svg +15 -0
  29. package/projects/sharedcomponents/src/lib/assets/icons/print.svg +10 -0
  30. package/projects/sharedcomponents/src/lib/assets/icons/signature_field.svg +9 -0
  31. package/projects/sharedcomponents/src/lib/assets/icons/xml.svg +9 -0
  32. package/projects/sharedcomponents/src/lib/components/circular-gauge/co-circular-gauge.component.ts +139 -0
  33. package/projects/sharedcomponents/src/lib/components/circular-gauge/co-circular-gauge.module.ts +19 -0
  34. package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/_layout.scss +0 -0
  35. package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/_material-definition.scss +0 -0
  36. package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/_theme.scss +0 -0
  37. package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/material.scss +0 -0
  38. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-base-view.component.ts +68 -0
  39. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-day-view.component.ts +31 -0
  40. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-event.component.ts +67 -0
  41. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-events.component.ts +48 -0
  42. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.ts +81 -0
  43. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-header.component.ts +265 -0
  44. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-cell.component.ts +38 -0
  45. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.ts +50 -0
  46. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view.component.ts +46 -0
  47. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-month-view.component.ts +65 -0
  48. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-view.component.ts +38 -0
  49. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-select-view.component.ts +63 -0
  50. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-view.component.ts +46 -0
  51. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/style/_layout.scss +443 -0
  52. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/style/_material-definition.scss +11 -0
  53. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/style/_theme.scss +7 -0
  54. package/{lib/components/layout-switcher → projects/sharedcomponents/src/lib/components/date-planning/component/agenda}/style/material.scss +0 -0
  55. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-months.component.ts +37 -0
  56. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-years.component.ts +52 -0
  57. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-header.component.ts +124 -0
  58. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-view.component.ts +201 -0
  59. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar.component.ts +35 -0
  60. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/style/_layout.scss +167 -0
  61. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/style/_material-definition.scss +7 -0
  62. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/style/_theme.scss +7 -0
  63. package/{lib/components/linear-gauge → projects/sharedcomponents/src/lib/components/date-planning/component/calendar}/style/material.scss +0 -0
  64. package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.component.ts +133 -0
  65. package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.module.ts +56 -0
  66. package/projects/sharedcomponents/src/lib/components/date-planning/style/_layout.scss +47 -0
  67. package/projects/sharedcomponents/src/lib/components/date-planning/style/_material-definition.scss +0 -0
  68. package/projects/sharedcomponents/src/lib/components/date-planning/style/_theme.scss +7 -0
  69. package/projects/sharedcomponents/src/lib/components/date-planning/style/material.scss +5 -0
  70. package/projects/sharedcomponents/src/lib/components/docsign/component/signature/signature.component.ts +82 -0
  71. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_layout.scss +0 -0
  72. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_material-definition.scss +0 -0
  73. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_theme.scss +0 -0
  74. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/material.scss +0 -0
  75. package/projects/sharedcomponents/src/lib/components/docsign/component/signatures/signatures.component.ts +50 -0
  76. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_layout.scss +0 -0
  77. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_material-definition.scss +0 -0
  78. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_theme.scss +0 -0
  79. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/material.scss +0 -0
  80. package/projects/sharedcomponents/src/lib/components/docsign/docsign.component.ts +252 -0
  81. package/projects/sharedcomponents/src/lib/components/docsign/docsign.module.ts +22 -0
  82. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_layout.scss +0 -0
  83. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_material-definition.scss +0 -0
  84. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_theme.scss +0 -0
  85. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/material.scss +0 -0
  86. package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.component.ts +205 -0
  87. package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.module.ts +19 -0
  88. package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_layout.scss +0 -0
  89. package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_material-definition.scss +0 -0
  90. package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_theme.scss +0 -0
  91. package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/material.scss +0 -0
  92. package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.component.ts +98 -0
  93. package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.module.ts +21 -0
  94. package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_layout.scss +0 -0
  95. package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_material-definition.scss +0 -0
  96. package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_theme.scss +0 -0
  97. package/projects/sharedcomponents/src/lib/components/layout-switcher/style/material.scss +5 -0
  98. package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.component.ts +56 -0
  99. package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.module.ts +17 -0
  100. package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_layout.scss +0 -0
  101. package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_material-definition.scss +0 -0
  102. package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_theme.scss +0 -0
  103. package/projects/sharedcomponents/src/lib/components/linear-gauge/style/material.scss +5 -0
  104. package/projects/sharedcomponents/src/lib/components/send-method-dialog/enums/send-option.ts +6 -0
  105. package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.component.ts +342 -0
  106. package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.module.ts +33 -0
  107. package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_layout.scss +0 -0
  108. package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_material-definition.scss +0 -0
  109. package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_theme.scss +0 -0
  110. package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/material.scss +0 -0
  111. package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.component.ts +97 -0
  112. package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.module.ts +21 -0
  113. package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_layout.scss +0 -0
  114. package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_material-definition.scss +0 -0
  115. package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_theme.scss +0 -0
  116. package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/material.scss +0 -0
  117. package/projects/sharedcomponents/src/lib/components/stock/stock-in-order/stock-in-order.component.ts +0 -0
  118. package/projects/sharedcomponents/src/lib/components/stock/stock-information/stock-information.component.ts +64 -0
  119. package/projects/sharedcomponents/src/lib/components/stock/stock-information-grid/stock-information-grid.component.ts +384 -0
  120. package/projects/sharedcomponents/src/lib/components/stock/stock-location/stock-location.component.ts +84 -0
  121. package/{lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts → projects/sharedcomponents/src/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.ts} +2 -2
  122. package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-change-amount.component.ts +73 -0
  123. package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-transfer.component.ts +153 -0
  124. package/projects/sharedcomponents/src/lib/components/stock/stock.component.ts +165 -0
  125. package/projects/sharedcomponents/src/lib/components/stock/stock.module.ts +51 -0
  126. package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_layout.scss +0 -0
  127. package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_material-definition.scss +0 -0
  128. package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_theme.scss +0 -0
  129. package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/material.scss +0 -0
  130. package/projects/sharedcomponents/src/lib/enum/calendar-view.enum.ts +6 -0
  131. package/{lib/enum/icon.enum.d.ts → projects/sharedcomponents/src/lib/enum/icon.enum.ts} +5 -2
  132. package/projects/sharedcomponents/src/lib/enum/keyboard-code.enum.ts +30 -0
  133. package/projects/sharedcomponents/src/lib/enum/language-code.enum.ts +6 -0
  134. package/projects/sharedcomponents/src/lib/enum/month.enum.ts +15 -0
  135. package/projects/sharedcomponents/src/lib/enum/time-period.enum.ts +9 -0
  136. package/projects/sharedcomponents/src/lib/factory/business-object-factory.ts +120 -0
  137. package/projects/sharedcomponents/src/lib/factory/decorators/boolean.decorator.ts +113 -0
  138. package/projects/sharedcomponents/src/lib/factory/decorators/complex-array.decorator.ts +61 -0
  139. package/projects/sharedcomponents/src/lib/factory/decorators/complex-field.decorator.ts +63 -0
  140. package/projects/sharedcomponents/src/lib/factory/decorators/date-field.decorator.ts +41 -0
  141. package/projects/sharedcomponents/src/lib/factory/decorators/string-number.decorator.ts +48 -0
  142. package/projects/sharedcomponents/src/lib/model/agenda-event-per-day.model.ts +6 -0
  143. package/projects/sharedcomponents/src/lib/model/agenda-event.model.ts +17 -0
  144. package/projects/sharedcomponents/src/lib/model/agenda-null-objects.ts +11 -0
  145. package/projects/sharedcomponents/src/lib/model/business-object.ts +85 -0
  146. package/projects/sharedcomponents/src/lib/model/constant/all-months.ts +17 -0
  147. package/projects/sharedcomponents/src/lib/model/date-range.ts +10 -0
  148. package/projects/sharedcomponents/src/lib/model/day.model.ts +9 -0
  149. package/projects/sharedcomponents/src/lib/model/icon-svg.ts +18 -0
  150. package/projects/sharedcomponents/src/lib/model/month.model.ts +11 -0
  151. package/projects/sharedcomponents/src/lib/model/time-window.bo.ts +21 -0
  152. package/projects/sharedcomponents/src/lib/model/week.model.ts +5 -0
  153. package/projects/sharedcomponents/src/lib/model/weekday.model.ts +17 -0
  154. package/projects/sharedcomponents/src/lib/pipe/array-number.pipe.ts +14 -0
  155. package/projects/sharedcomponents/src/lib/pipe/master-pipes.ts +7 -0
  156. package/projects/sharedcomponents/src/lib/pipe/ucfirst.pipe.ts +14 -0
  157. package/projects/sharedcomponents/src/lib/service/dictionary.service.ts +86 -0
  158. package/projects/sharedcomponents/src/lib/service/icon-cache.service.ts +51 -0
  159. package/projects/sharedcomponents/src/lib/service/options.service.ts +66 -0
  160. package/projects/sharedcomponents/src/lib/service/shared-connector.service.ts +258 -0
  161. package/projects/sharedcomponents/src/lib/service/shared-initializer.service.ts +29 -0
  162. package/projects/sharedcomponents/src/lib/service/shared.service.ts +21 -0
  163. package/projects/sharedcomponents/src/lib/service/stock.service.ts +95 -0
  164. package/{lib → projects/sharedcomponents/src/lib}/style/_mixin.scss +0 -0
  165. package/{lib → projects/sharedcomponents/src/lib}/style/_variables.scss +0 -0
  166. package/{lib → projects/sharedcomponents/src/lib}/style/sharedcomponents-globals.scss +0 -0
  167. package/projects/sharedcomponents/src/lib/utils/array-utils.ts +202 -0
  168. package/projects/sharedcomponents/src/lib/utils/calendar.utils.ts +75 -0
  169. package/projects/sharedcomponents/src/lib/utils/date-utils.ts +302 -0
  170. package/projects/sharedcomponents/src/lib/utils/function/not-nill.function.ts +4 -0
  171. package/projects/sharedcomponents/src/lib/utils/is-nill.function.ts +4 -0
  172. package/projects/sharedcomponents/src/lib/utils/string-utils.ts +67 -0
  173. package/{public-api.d.ts → projects/sharedcomponents/src/public-api.ts} +5 -0
  174. package/projects/sharedcomponents/src/test.ts +27 -0
  175. package/projects/sharedcomponents/tsconfig.lib.json +18 -0
  176. package/projects/sharedcomponents/tsconfig.lib.prod.json +10 -0
  177. package/projects/sharedcomponents/tsconfig.spec.json +17 -0
  178. package/script/merge-icons.js +39 -0
  179. package/src/app/app.component.scss +9 -0
  180. package/src/app/app.component.spec.ts +31 -0
  181. package/src/app/app.component.ts +156 -0
  182. package/src/app/app.module.ts +60 -0
  183. package/src/assets/.gitkeep +0 -0
  184. package/src/environments/environment.prod.ts +3 -0
  185. package/src/environments/environment.ts +16 -0
  186. package/src/favicon.ico +0 -0
  187. package/src/index.html +13 -0
  188. package/src/main.ts +12 -0
  189. package/src/polyfills.ts +53 -0
  190. package/src/styles.scss +40 -0
  191. package/src/test.ts +26 -0
  192. package/tsconfig.app.json +15 -0
  193. package/tsconfig.json +65 -0
  194. package/tsconfig.spec.json +18 -0
  195. package/bundles/colijnit-sharedcomponents.umd.js +0 -3701
  196. package/bundles/colijnit-sharedcomponents.umd.js.map +0 -1
  197. package/colijnit-sharedcomponents.d.ts +0 -16
  198. package/colijnit-sharedcomponents.metadata.json +0 -1
  199. package/esm2015/colijnit-sharedcomponents.js +0 -17
  200. package/esm2015/lib/assets/dictionary/text.properties.js +0 -11
  201. package/esm2015/lib/components/circular-gauge/co-circular-gauge.component.js +0 -125
  202. package/esm2015/lib/components/circular-gauge/co-circular-gauge.module.js +0 -21
  203. package/esm2015/lib/components/docsign/component/signature/signature.component.js +0 -75
  204. package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +0 -44
  205. package/esm2015/lib/components/docsign/docsign.component.js +0 -225
  206. package/esm2015/lib/components/docsign/docsign.module.js +0 -23
  207. package/esm2015/lib/components/key-pad/key-pad.component.js +0 -191
  208. package/esm2015/lib/components/key-pad/key-pad.module.js +0 -21
  209. package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +0 -74
  210. package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +0 -21
  211. package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +0 -55
  212. package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +0 -19
  213. package/esm2015/lib/components/send-method-dialog/enums/send-option.js +0 -8
  214. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +0 -309
  215. package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +0 -31
  216. package/esm2015/lib/components/statusbar/statusbar.component.js +0 -81
  217. package/esm2015/lib/components/statusbar/statusbar.module.js +0 -23
  218. package/esm2015/lib/components/stock/stock-information/stock-information.component.js +0 -54
  219. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +0 -350
  220. package/esm2015/lib/components/stock/stock-location/stock-location.component.js +0 -62
  221. package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +0 -2
  222. package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +0 -68
  223. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +0 -130
  224. package/esm2015/lib/components/stock/stock.component.js +0 -140
  225. package/esm2015/lib/components/stock/stock.module.js +0 -48
  226. package/esm2015/lib/enum/icon.enum.js +0 -17
  227. package/esm2015/lib/enum/keyboard-code.enum.js +0 -32
  228. package/esm2015/lib/enum/language-code.enum.js +0 -8
  229. package/esm2015/lib/factory/business-object-factory.js +0 -120
  230. package/esm2015/lib/factory/decorators/boolean.decorator.js +0 -102
  231. package/esm2015/lib/factory/decorators/complex-array.decorator.js +0 -55
  232. package/esm2015/lib/factory/decorators/complex-field.decorator.js +0 -57
  233. package/esm2015/lib/factory/decorators/date-field.decorator.js +0 -36
  234. package/esm2015/lib/factory/decorators/string-number.decorator.js +0 -43
  235. package/esm2015/lib/model/business-object.js +0 -81
  236. package/esm2015/lib/model/icon-svg.js +0 -16
  237. package/esm2015/lib/service/dictionary.service.js +0 -76
  238. package/esm2015/lib/service/icon-cache.service.js +0 -51
  239. package/esm2015/lib/service/options.service.js +0 -71
  240. package/esm2015/lib/service/shared-connector.service.js +0 -278
  241. package/esm2015/lib/service/shared.service.js +0 -30
  242. package/esm2015/lib/service/stock.service.js +0 -95
  243. package/esm2015/lib/utils/array-utils.js +0 -183
  244. package/esm2015/lib/utils/is-nill.function.js +0 -5
  245. package/esm2015/lib/utils/string-utils.js +0 -64
  246. package/esm2015/public-api.js +0 -21
  247. package/fesm2015/colijnit-sharedcomponents.js +0 -3511
  248. package/fesm2015/colijnit-sharedcomponents.js.map +0 -1
  249. package/lib/assets/dictionary/text.properties.d.ts +0 -3
  250. package/lib/components/circular-gauge/co-circular-gauge.component.d.ts +0 -20
  251. package/lib/components/circular-gauge/co-circular-gauge.module.d.ts +0 -2
  252. package/lib/components/docsign/component/signature/signature.component.d.ts +0 -16
  253. package/lib/components/docsign/component/signatures/signatures.component.d.ts +0 -12
  254. package/lib/components/docsign/docsign.component.d.ts +0 -92
  255. package/lib/components/docsign/docsign.module.d.ts +0 -2
  256. package/lib/components/key-pad/key-pad.component.d.ts +0 -36
  257. package/lib/components/key-pad/key-pad.module.d.ts +0 -2
  258. package/lib/components/layout-switcher/layout-switcher.component.d.ts +0 -16
  259. package/lib/components/layout-switcher/layout-switcher.module.d.ts +0 -2
  260. package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +0 -16
  261. package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +0 -2
  262. package/lib/components/send-method-dialog/enums/send-option.d.ts +0 -6
  263. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +0 -62
  264. package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +0 -2
  265. package/lib/components/statusbar/statusbar.component.d.ts +0 -23
  266. package/lib/components/statusbar/statusbar.module.d.ts +0 -2
  267. package/lib/components/stock/stock-information/stock-information.component.d.ts +0 -10
  268. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +0 -60
  269. package/lib/components/stock/stock-location/stock-location.component.d.ts +0 -15
  270. package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +0 -18
  271. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +0 -36
  272. package/lib/components/stock/stock.component.d.ts +0 -42
  273. package/lib/components/stock/stock.module.d.ts +0 -2
  274. package/lib/enum/keyboard-code.enum.d.ts +0 -30
  275. package/lib/enum/language-code.enum.d.ts +0 -6
  276. package/lib/factory/business-object-factory.d.ts +0 -23
  277. package/lib/factory/decorators/boolean.decorator.d.ts +0 -43
  278. package/lib/factory/decorators/complex-array.decorator.d.ts +0 -25
  279. package/lib/factory/decorators/complex-field.decorator.d.ts +0 -25
  280. package/lib/factory/decorators/date-field.decorator.d.ts +0 -17
  281. package/lib/factory/decorators/string-number.decorator.d.ts +0 -22
  282. package/lib/model/business-object.d.ts +0 -7
  283. package/lib/model/icon-svg.d.ts +0 -4
  284. package/lib/service/dictionary.service.d.ts +0 -21
  285. package/lib/service/icon-cache.service.d.ts +0 -18
  286. package/lib/service/options.service.d.ts +0 -13
  287. package/lib/service/shared-connector.service.d.ts +0 -43
  288. package/lib/service/shared.service.d.ts +0 -8
  289. package/lib/service/stock.service.d.ts +0 -38
  290. package/lib/utils/array-utils.d.ts +0 -57
  291. package/lib/utils/is-nill.function.d.ts +0 -1
  292. package/lib/utils/string-utils.d.ts +0 -22
@@ -0,0 +1,73 @@
1
+ import {AfterViewInit, Component, EventEmitter, Input, Output, ViewEncapsulation} from "@angular/core";
2
+ import {StockService} from "../../../service/stock.service";
3
+ import {StockStatus} from "@colijnit/articleapi/build/model/stock-status.bo";
4
+ import {CoDropDownListFields} from "./co-drop-down-list-fields.interface";
5
+ import {ArticleDetailsBo} from "@colijnit/articleapi/build/model/article-details.bo";
6
+
7
+ @Component({
8
+ selector: "co-stock-change-amount",
9
+ template: `
10
+ <div class="stock-transfer">
11
+ <co-dialog-wizard [showCloseIcon]="true" (closeClick)="closeDialogClick()">
12
+ <ng-container header>
13
+ <span [textContent]="'STOCK_CHANGE_REASON'"></span>
14
+ </ng-container>
15
+ <div class="popup-wrapper">
16
+ <co-drop-down-list [collection]="stockState"
17
+ [fields]="stockStateDropdownField"
18
+ [placeholder]="'STOCK_STATE'"
19
+ [(model)]="selectedArticleDetailsData.stockStateId"
20
+ ></co-drop-down-list>
21
+
22
+ <co-input-textarea [(model)]="selectedArticleDetailsData.stockStateRemark"
23
+
24
+ ></co-input-textarea>
25
+ <div class="ok-cancel-buttons">
26
+ <co-button [textContent]="'Ok'" (click)="handleOkClick(selectedArticleDetailsData)"></co-button>
27
+ <co-button [textContent]="'Annuleren'" (click)="handleCancelClick()"></co-button>
28
+ </div>
29
+ </div>
30
+ </co-dialog-wizard>
31
+ </div>
32
+ `,
33
+ encapsulation: ViewEncapsulation.None
34
+ })
35
+ export class StockChangeAmountComponent implements AfterViewInit {
36
+
37
+ @Input()
38
+ public selectedArticleDetailsData: ArticleDetailsBo;
39
+
40
+ @Output()
41
+ public readonly closeStockChangeAmount: EventEmitter<any> = new EventEmitter();
42
+
43
+ public stockState: StockStatus[] = [];
44
+ public stockStateDropdownField: CoDropDownListFields = {text: "stateDescription", value: "stockStateId"};
45
+
46
+ constructor(
47
+ private _stockService: StockService
48
+ ) {
49
+ }
50
+
51
+ ngAfterViewInit() {
52
+ this.getStockState();
53
+ }
54
+
55
+ public closeDialogClick(): void {
56
+ this.closeStockChangeAmount.emit();
57
+ }
58
+
59
+ public async handleOkClick(data: ArticleDetailsBo): Promise<void> {
60
+ await this._stockService.updateArticleDetails(data);
61
+ }
62
+
63
+ public handleCancelClick(): void {
64
+ this.closeStockChangeAmount.emit();
65
+ }
66
+
67
+ public getStockState(): void {
68
+ this._stockService.getStockState().then((state: StockStatus[]) => {
69
+ this.stockState = state;
70
+ });
71
+ }
72
+
73
+ }
@@ -0,0 +1,153 @@
1
+ import {AfterViewInit, Component, EventEmitter, Input, Output, ViewEncapsulation} from "@angular/core";
2
+ import {PrintStockStickers} from "@colijnit/articleapi/build/model/print-stock-stickers";
3
+ import {StockService} from "../../../service/stock.service";
4
+ import {CoDropDownListFields} from "./co-drop-down-list-fields.interface";
5
+ import {ArticleStock as ArticleStockBo} from "@colijnit/articleapi/build/model/article-stock.bo";
6
+ import {ArticleDetailsBo} from "@colijnit/articleapi/build/model/article-details.bo";
7
+ import {StockManagementWarehouses} from "@colijnit/articleapi/build/model/stock-management-warehouses.bo";
8
+ import {StockStatus} from "@colijnit/articleapi/build/model/stock-status.bo";
9
+ import {StockLocation} from "@colijnit/articleapi/build/model/stock-location.bo";
10
+
11
+ @Component({
12
+ selector: "co-stock-transfer",
13
+ template: `
14
+ <div class="stock-transfer">
15
+ <div class="stock-transfer-columns">
16
+ <div *ngIf="articleToTransfer" class="stock-transfer-left-column">
17
+ <co-input-text disabled
18
+ [(model)]="articleToTransfer.warehouseDescription"
19
+ [textContent]="articleToTransfer.warehouseDescription"
20
+ [placeholder]="'Standaard magazijn'">
21
+ </co-input-text>
22
+ <co-input-text disabled
23
+ [(model)]="articleToTransfer.locationNo"
24
+ [textContent]="articleToTransfer.locationNo"
25
+ [placeholder]="'Standaard locatie'">
26
+ </co-input-text>
27
+ <co-input-text disabled
28
+ [(model)]="stockSticker.batch"
29
+ [placeholder]="'Batch'">
30
+ </co-input-text>
31
+ <co-input-text disabled
32
+ [(model)]="stockSticker.serial"
33
+ [placeholder]="'Serie'">
34
+ </co-input-text>
35
+ <co-input-text
36
+ [(model)]="articleToTransfer.amountTransfer"
37
+ [placeholder]="'Aantal'">
38
+ </co-input-text>
39
+ </div>
40
+
41
+ <div class="stock-transfer-right-column">
42
+ <co-drop-down-list [collection]="warehouses"
43
+ [fields]="allWarehousesDropdownFields"
44
+ (modelChange)="handleSelectedWarehouse($event)"
45
+ [(model)]="articleToTransfer.targetWarehouse">
46
+ </co-drop-down-list>
47
+ <co-drop-down-list [collection]="locations"
48
+ [fields]="allLocationDropdownFields"
49
+ [(model)]="articleToTransfer.targetLocation"
50
+ >
51
+ </co-drop-down-list>
52
+ <co-drop-down-list [collection]="stockState"
53
+ [fields]="stockStateDropdownField"
54
+ [placeholder]="'Voorraadstatus'"
55
+ [(model)]="articleToTransfer.stockStateId">
56
+ </co-drop-down-list>
57
+ <co-input-text [placeholder]="'Omschrijving'"
58
+ [(model)]="articleToTransfer.stockStateRemark">
59
+ </co-input-text>
60
+ </div>
61
+ </div>
62
+
63
+ <div class="ok-cancel-buttons">
64
+ <co-button [textContent]="'Ok'" (click)="handleOkClick(articleToTransfer)"></co-button>
65
+ <co-button [textContent]="'Annuleren'" (click)="handleCancelClick()"></co-button>
66
+ <co-button [textContent]="'Sticker'" (click)="handleStickerClick()"></co-button>
67
+ </div>
68
+ </div>
69
+ `,
70
+ encapsulation: ViewEncapsulation.None
71
+ })
72
+ export class StockTransferComponent implements AfterViewInit {
73
+
74
+ @Input()
75
+ public stockSticker: PrintStockStickers;
76
+
77
+ @Input()
78
+ public article: ArticleStockBo;
79
+
80
+ @Input()
81
+ public articleToTransfer: ArticleDetailsBo;
82
+
83
+ @Input()
84
+ public articleWarehouse: any[];
85
+
86
+ @Input()
87
+ public allWarehouses: any[];
88
+
89
+ @Output()
90
+ public handleCancelClicked: EventEmitter<any> = new EventEmitter();
91
+
92
+ @Output()
93
+ public handleStickerClicked: EventEmitter<any> = new EventEmitter();
94
+
95
+ public allWarehousesDropdownFields: CoDropDownListFields = {text: "warehouseDescription", value: "warehouseNo"};
96
+ public allLocationDropdownFields: CoDropDownListFields = {text: "locationNo", value: "locationNo"};
97
+
98
+ public showSendMethodDialog: boolean = false;
99
+ public warehouses: StockManagementWarehouses[];
100
+ public stockState: StockStatus[] = [];
101
+ public stockStateDropdownField: CoDropDownListFields = {text: "stateDescription", value: "stockStateId"};
102
+ public locations: StockLocation[];
103
+ public selectedWarehouse: any;
104
+
105
+ constructor(
106
+ private _stockService: StockService
107
+ ) {
108
+ }
109
+
110
+ ngAfterViewInit() {
111
+ this.getStockManagementWarehouses();
112
+ this.getStockState();
113
+ }
114
+
115
+ public async handleOkClick(data: ArticleDetailsBo): Promise<void> {
116
+ data.selected = true;
117
+ data.entryDate = new Date;
118
+ await this._stockService.updateArticleDetails(data);
119
+ }
120
+
121
+ public handleCancelClick(): void {
122
+ this.handleCancelClicked.emit();
123
+ }
124
+
125
+ public handleSelectedWarehouse(event): void {
126
+ this.selectedWarehouse = event;
127
+ this.getStockManagementLocations(this.selectedWarehouse);
128
+ }
129
+
130
+ public async handleStickerClick(): Promise<void> {
131
+ this.handleStickerClicked.emit();
132
+ this.showSendMethodDialog = true;
133
+ }
134
+
135
+ public getStockManagementWarehouses(): void {
136
+ this._stockService.getStockManagementWarehouses().then((warehouses) => {
137
+ this.warehouses = warehouses;
138
+ })
139
+ }
140
+
141
+ public getStockManagementLocations(data): void {
142
+ this._stockService.getStockManagementLocations(data).then((locations) => {
143
+ this.locations = locations;
144
+ })
145
+ }
146
+
147
+ public getStockState(): void {
148
+ this._stockService.getStockState().then((state: StockStatus[]) => {
149
+ this.stockState = state;
150
+ });
151
+ }
152
+
153
+ }
@@ -0,0 +1,165 @@
1
+ import {
2
+ ChangeDetectorRef,
3
+ Component,
4
+ EventEmitter,
5
+ HostBinding,
6
+ Input, OnDestroy,
7
+ Output,
8
+ ViewChild,
9
+ ViewEncapsulation
10
+ } from "@angular/core";
11
+ import {StockService} from "../../service/stock.service";
12
+ import {PrintStockStickers} from "@colijnit/sharedapi/build/model/print-stock-stickers";
13
+ import {GetStockHistoryRequest} from "@colijnit/articleapi/build/model/get-stock-history-request";
14
+ import {ArticleStock as ArticleStockBo} from "@colijnit/articleapi/build/model/article-stock.bo";
15
+ import {ArticleExtended} from "@colijnit/articleapi/build/model/article-extended.bo";
16
+ import {ArticleStock} from "@colijnit/articleapi/build/model/article-stock";
17
+ import {StockHistoryBo} from "@colijnit/articleapi/build/model/stock-history.bo";
18
+ import {ArticleDetailsBo} from "@colijnit/articleapi/build/model/article-details.bo";
19
+ import {OptionsService} from "../../service/options.service";
20
+ import {Subscription} from "rxjs";
21
+ import {DictionaryService} from "../../service/dictionary.service";
22
+
23
+ @Component({
24
+ selector: "co-stock",
25
+ template: `
26
+ <div class="stock-info-container">
27
+ <co-stock-information [article]="articleExtended"
28
+ [articleStock]=""
29
+ [allAvailableStockInformation]="allAvailableStock"
30
+ [allTechnicalStockInformation]="allTechnicalStock"
31
+ >
32
+ </co-stock-information>
33
+ <hr>
34
+ <co-stock-information-grid *ngIf="showStockInformationGrid"
35
+ [stockLocationData]="stockLocationInformation"
36
+ [articleStockInformation]="stockInformation"
37
+ (transferIconClicked)="handleStockTransferClick($event)"
38
+ (historyClicked)="getStockHistory()"
39
+ [stockHistoryInformation]="stockHistory"
40
+ >
41
+ </co-stock-information-grid>
42
+ <co-stock-location *ngIf="showStockLocation"
43
+ (backToStockLines)="backToStockLinesClicked()">
44
+
45
+ </co-stock-location>
46
+ <co-stock-transfer *ngIf="showStockTransfer"
47
+ (handleCancelClicked)="backToStock()"
48
+ [article]="stockTransferArticle"
49
+ [articleToTransfer]="stockTransferArticleDetails"
50
+ [stockSticker]="stockService.stockStickers"
51
+ (handleStickerClicked)="handleStickerClicked.emit($event)"
52
+ [articleWarehouse]="articleWarehouse"
53
+ [allWarehouses]="allWarehouses"
54
+ >
55
+ </co-stock-transfer>
56
+ </div>
57
+ `,
58
+ encapsulation: ViewEncapsulation.None
59
+ })
60
+ export class StockComponent implements OnDestroy {
61
+
62
+ @ViewChild(StockComponent)
63
+ public stock: StockComponent;
64
+
65
+ @Output()
66
+ public handleStickerClicked: EventEmitter<any> = new EventEmitter();
67
+
68
+ @Input()
69
+ public set article(article) {
70
+ this.articleExtended = article;
71
+ this.getStockInformation(article);
72
+ };
73
+
74
+ @Input()
75
+ public articleWarehouse: any[];
76
+
77
+ @Input()
78
+ public allWarehouses: any[];
79
+
80
+ @HostBinding("class.co-stock")
81
+ public showClass() {
82
+ return true;
83
+ }
84
+
85
+ public showStockInformationGrid: boolean = true;
86
+ public showStockLocation: boolean = false;
87
+ public showStockTransfer: boolean = false;
88
+ public stockInformation: ArticleStockBo[];
89
+ public stockLocationInformation: ArticleStockBo[];
90
+ public stockTransferArticle: ArticleStockBo;
91
+ public stockTransferArticleDetails: ArticleDetailsBo;
92
+ public articleExtended: ArticleExtended;
93
+ public stockHistory: StockHistoryBo[];
94
+ public allAvailableStock: number = 0;
95
+ public allTechnicalStock: number = 0;
96
+ private _subscriptions: Subscription[] = [];
97
+
98
+ constructor(
99
+ public stockService: StockService,
100
+ private _optionsService: OptionsService,
101
+ private _dictionary: DictionaryService,
102
+ private _changeDetector: ChangeDetectorRef,
103
+ ) {
104
+ this._subscriptions.push(
105
+ this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)),
106
+ )
107
+ }
108
+
109
+ ngOnDestroy(): void {
110
+ this._subscriptions.forEach(subscription => subscription.unsubscribe());
111
+ }
112
+
113
+ public backToStockLinesClicked(): void {
114
+ this.showStockLocation = false;
115
+ this.showStockInformationGrid = true;
116
+ }
117
+
118
+ public handleStockTransferClick(event): void {
119
+ this.stockTransferArticleDetails = event;
120
+ this.showStockTransfer = !this.showStockTransfer;
121
+ this.showStockInformationGrid = !this.showStockInformationGrid;
122
+ this.stockService.stockStickers = new PrintStockStickers();
123
+ }
124
+
125
+ public backToStock(): void {
126
+ this.showStockTransfer = !this.showStockTransfer;
127
+ this.showStockInformationGrid = !this.showStockInformationGrid;
128
+ }
129
+
130
+ public async getStockHistory(): Promise<void> {
131
+ const stockHistoryInformation: GetStockHistoryRequest = new GetStockHistoryRequest();
132
+ stockHistoryInformation.type = "B";
133
+ stockHistoryInformation.goodId = this.articleExtended.goodId.toString();
134
+ this.stockHistory = await this.stockService.getStockHistory(stockHistoryInformation);
135
+ }
136
+
137
+ public async getStockInformation(data: ArticleStock): Promise<void> {
138
+ const articleData: ArticleStock = new ArticleStock();
139
+ articleData.goodId = data.goodId.toString();
140
+ articleData.viewKind = "M";
141
+ this.stockInformation = await this.stockService.getStockInformation(articleData);
142
+ this.stockInformation.forEach((articleStock) => this.allAvailableStock += articleStock.availableStock);
143
+ this.stockInformation.forEach((articleStock) => this.allTechnicalStock += articleStock.technicalStock);
144
+
145
+ }
146
+
147
+ private async _handleSettingsLoaded(loaded: boolean): Promise<void> {
148
+ if (loaded) {
149
+ await this._initConnection().then();
150
+ }
151
+ }
152
+
153
+ private async _initConnection(): Promise<void> {
154
+ // await this._connector.connect(this._optionsService.options);
155
+
156
+ if (this._optionsService.options.url) {
157
+ this._dictionary.rootUrl = this._optionsService.options.url.replace("/ajaxservice", "");
158
+ }
159
+ await this._dictionary.setDictionary(this._optionsService.options.languageCode);
160
+ setTimeout(() => {
161
+ this._changeDetector.detectChanges();
162
+ });
163
+ }
164
+
165
+ }
@@ -0,0 +1,51 @@
1
+ import {NgModule} from "@angular/core";
2
+ import {StockComponent} from "./stock.component";
3
+ import {
4
+ ButtonModule, CoDialogWizardModule,
5
+ CoGridModule,
6
+ DropDownModule, IconModule, ImageModule,
7
+ InputComboBoxModule, InputNumberPickerModule,
8
+ InputRadioButtonModule, InputTextareaModule, InputTextModule, SimpleGridModule
9
+ } from "@colijnit/corecomponents_v12";
10
+ import {CommonModule} from "@angular/common";
11
+ import {StockInformationComponent} from "./stock-information/stock-information.component";
12
+ import {StockInformationGridComponent} from "./stock-information-grid/stock-information-grid.component";
13
+ import {StockLocationComponent} from "./stock-location/stock-location.component";
14
+ import {StockService} from "../../service/stock.service";
15
+ import {StockTransferComponent} from "./stock-transfer/stock-transfer.component";
16
+ import {SendMethodDialogModule} from "../send-method-dialog/send-method-dialog.module";
17
+ import {StockChangeAmountComponent} from "./stock-transfer/stock-change-amount.component";
18
+
19
+ @NgModule({
20
+ imports: [
21
+ InputComboBoxModule,
22
+ CoGridModule,
23
+ ButtonModule,
24
+ CommonModule,
25
+ InputRadioButtonModule,
26
+ DropDownModule,
27
+ SimpleGridModule,
28
+ ImageModule,
29
+ InputTextModule,
30
+ SendMethodDialogModule,
31
+ IconModule,
32
+ InputNumberPickerModule,
33
+ CoDialogWizardModule,
34
+ InputTextareaModule
35
+ ],
36
+ declarations: [
37
+ StockComponent,
38
+ StockInformationComponent,
39
+ StockInformationGridComponent,
40
+ StockLocationComponent,
41
+ StockTransferComponent,
42
+ StockChangeAmountComponent
43
+ ],
44
+ exports: [
45
+ StockComponent
46
+ ],
47
+ providers: [
48
+ StockService
49
+ ]
50
+ })
51
+ export class StockModule {}
@@ -0,0 +1,6 @@
1
+ export enum CalendarView {
2
+ DayView = "DAY",
3
+ WeekView = "WEEK",
4
+ WeekSelectView = "WEEK_SELECT",
5
+ MonthView = "MONTH"
6
+ }
@@ -1,10 +1,13 @@
1
1
  /** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/
2
- export declare enum Icon {
2
+
3
+ export enum Icon {
3
4
  AngleLeftSolid = "angle_left_solid",
4
5
  AngleRightSolid = "angle_right_solid",
5
6
  ArrowFatRight = "arrow_fat_right",
7
+ ArrowPointLeft = "arrow_point_left",
6
8
  ArrowPointRight = "arrow_point_right",
7
9
  BringForwardRegular = "bring_forward_regular",
10
+ CheckRound = "check_round",
8
11
  DeleteLeftRegular = "delete_left_regular",
9
12
  DeliveryTruck = "delivery_truck",
10
13
  Email = "email",
@@ -12,4 +15,4 @@ export declare enum Icon {
12
15
  Print = "print",
13
16
  SignatureField = "signature_field",
14
17
  Xml = "xml"
15
- }
18
+ }
@@ -0,0 +1,30 @@
1
+ export enum KeyboardCode {
2
+ Backspace = "Backspace",
3
+ Digit0 = "Digit0",
4
+ Digit1 = "Digit1",
5
+ Digit2 = "Digit2",
6
+ Digit3 = "Digit3",
7
+ Digit4 = "Digit4",
8
+ Digit5 = "Digit5",
9
+ Digit6 = "Digit6",
10
+ Digit7 = "Digit7",
11
+ Digit8 = "Digit8",
12
+ Digit9 = "Digit9",
13
+ Enter = "Enter",
14
+ Escape = "Escape",
15
+ Minus = "Minus",
16
+ Numpad0 = "Numpad0",
17
+ Numpad1 = "Numpad1",
18
+ Numpad2 = "Numpad2",
19
+ Numpad3 = "Numpad3",
20
+ Numpad4 = "Numpad4",
21
+ Numpad5 = "Numpad5",
22
+ Numpad6 = "Numpad6",
23
+ Numpad7 = "Numpad7",
24
+ Numpad8 = "Numpad8",
25
+ Numpad9 = "Numpad9",
26
+ NumpadDecimal = "NumpadDecimal",
27
+ NumpadEnter = "NumpadEnter",
28
+ NumpadSubtract = "NumpadSubtract",
29
+ Period = "Period"
30
+ }
@@ -0,0 +1,6 @@
1
+ export enum LanguageCode {
2
+ Dutch = "nl-NL",
3
+ English = "en-GB",
4
+ German = "de-DE",
5
+ French = "fr-FR",
6
+ }
@@ -0,0 +1,15 @@
1
+ // All the months. Values are corresponding dictionary keys in text_nl.
2
+ export enum Month {
3
+ January = "JANUARY",
4
+ Februrary = "FEBRUARY",
5
+ March = "MARCH",
6
+ April = "APRIL",
7
+ May = "MAY",
8
+ June = "JUNE",
9
+ July = "JULY",
10
+ August = "AUGUST",
11
+ September = "SEPTEMBER",
12
+ October = "OCTOBER",
13
+ November = "NOVEMBER",
14
+ December = "DECEMBER"
15
+ }
@@ -0,0 +1,9 @@
1
+ // DOM_DATUMSELECTIE
2
+ export enum TimePeriod {
3
+ LastSevenDays = "LW",
4
+ LastMonth = "LM",
5
+ LastYear = "LY",
6
+ LastCalendarYear = "LCY",
7
+ CurrentCalendarYear = "CCY",
8
+ Custom = "C"
9
+ }
@@ -0,0 +1,120 @@
1
+ import {ComplexFieldDecorator} from "./decorators/complex-field.decorator";
2
+ import {ComplexArrayDecorator} from "./decorators/complex-array.decorator";
3
+ import {BooleanTextDecorator} from "./decorators/boolean.decorator";
4
+ import {DateFieldFieldDecorator} from "./decorators/date-field.decorator";
5
+ import {StringNumberDecorator} from "./decorators/string-number.decorator";
6
+ import {isNill} from "../utils/is-nill.function";
7
+ import {ArrayUtils} from "../utils/array-utils";
8
+ import {BusinessObject} from "../model/business-object";
9
+
10
+ // Factory service creates businessobjects, using their decorators in the process.
11
+ export class BusinessObjectFactory {
12
+ constructor() {
13
+ }
14
+
15
+ /**
16
+ * Creates and returns a new business data object instance of given class, with all given data properties applied to it in a
17
+ * complex-aware style. That is, all properties on given class that are decorated with @ComplexField(..) or @ComplexArray(..) decorators
18
+ * become strongly typed business objects, with methods that are usable and such.
19
+ *
20
+ * @param modelClass
21
+ * @param {Object} rawData The object with all (possibly raw/flat/not alive) data to be applied to the created model object
22
+ */
23
+ public makeWithRawBackendData(modelClass: any, rawData: Object): BusinessObject {
24
+ if (!modelClass) {
25
+ return undefined;
26
+ }
27
+ if (typeof modelClass !== typeof BusinessObject) {
28
+ return undefined;
29
+ }
30
+
31
+ const model: BusinessObject = new modelClass();
32
+ this._copyAllPropertiesDecoratorProcessedFrom(rawData, model);
33
+ return model;
34
+ }
35
+
36
+ // see makeWithRawBackendData, this is a loop-wrapper around that method
37
+ public makeBOArrayFromRawBackendDataArray(modelClass: any, arrayOfRawDatas: Object[]): BusinessObject[] {
38
+ if (!modelClass) {
39
+ return undefined;
40
+ }
41
+
42
+ const trueClientBos: BusinessObject[] = [];
43
+ if (arrayOfRawDatas) {
44
+ for (let i: number = 0, len: number = arrayOfRawDatas.length; i < len; i++) {
45
+ trueClientBos.push(this.makeWithRawBackendData(modelClass, arrayOfRawDatas[i]));
46
+ }
47
+ }
48
+ return trueClientBos;
49
+ }
50
+
51
+ public instantiateNewBo(modelClass: any): BusinessObject {
52
+ return this.makeWithRawBackendData(modelClass, {});
53
+ }
54
+
55
+ /**
56
+ * Applies all properties of given 'source' object to the given 'destination' businessobject, if destination has that property.
57
+ * Works with the @ComplexField(), @ComplexArray, @BooleanText, @CoInject and @DateField annotations of given destination model.
58
+ *
59
+ * @param sourceData Raw data to copy to destination model
60
+ * @param {BusinessObject} destinationModel InOut: The annotated businessobject to apply source properties to
61
+ */
62
+ private _copyAllPropertiesDecoratorProcessedFrom(sourceData: any, destinationModel: BusinessObject): void {
63
+ if (!sourceData || !destinationModel) {
64
+ return;
65
+ }
66
+
67
+ // process all source data into destinationModel
68
+ for (const srcPropKey in sourceData) {
69
+ if (!sourceData.hasOwnProperty(srcPropKey)) {
70
+ continue;
71
+ }
72
+
73
+ const srcPropVal: any = sourceData[srcPropKey];
74
+
75
+ if (ComplexFieldDecorator.IsComplexField(destinationModel, srcPropKey)) {
76
+ const classOfField: any = ComplexFieldDecorator.GetComplexFieldType(destinationModel, srcPropKey);
77
+ destinationModel[srcPropKey] = this.makeWithRawBackendData(classOfField, srcPropVal);
78
+ } else if (ComplexArrayDecorator.IsComplexArray(destinationModel, srcPropKey)) {
79
+ const sourceArray: any[] = srcPropVal;
80
+ if (!sourceArray) {
81
+ continue;
82
+ }
83
+ const classOfArrayItems: any = ComplexArrayDecorator.GetComplexArrayType(destinationModel, srcPropKey);
84
+ const tempArray: any[] = [];
85
+ for (let i: number = 0, len: number = sourceArray.length; i < len; i++) {
86
+ tempArray.push(this.makeWithRawBackendData(classOfArrayItems, sourceArray[i]));
87
+ }
88
+ destinationModel[srcPropKey] = tempArray;
89
+ } else if (BooleanTextDecorator.IsBooleanTextField(destinationModel, srcPropKey)) {
90
+ // logical 'true' and 'false' also allowed as incoming values for @BooleanText() properties: then just copy their value
91
+ if (typeof srcPropVal === "boolean") {
92
+ destinationModel[srcPropKey] = srcPropVal;
93
+ // here, it should be a 'J' or 'N' (or 'T' or 'F'): assign the associated boolean value
94
+ } else {
95
+ destinationModel[srcPropKey] = BooleanTextDecorator.GetLogicalBooleanValue(srcPropVal);
96
+ }
97
+ } else if (DateFieldFieldDecorator.IsDateField(destinationModel, srcPropKey)) {
98
+ destinationModel[srcPropKey] = DateFieldFieldDecorator.StringAsDate(srcPropVal);
99
+ } else if (StringNumberDecorator.IsStringNumber(destinationModel, srcPropKey)) {
100
+ destinationModel[srcPropKey] = StringNumberDecorator.StringAsNumber(srcPropVal);
101
+ }
102
+ // non-decorated prop
103
+ else {
104
+ if (isNill(srcPropVal)) {
105
+ destinationModel[srcPropKey] = undefined;
106
+ } else if (Array.isArray(srcPropVal)) {
107
+ destinationModel[srcPropKey] = ArrayUtils.CloneArray(srcPropVal);
108
+ } else if (typeof srcPropVal === "object") {
109
+ if (srcPropVal instanceof Map) { //just copy the value in case of maps
110
+ destinationModel[srcPropKey] = srcPropVal;
111
+ } else {
112
+ destinationModel[srcPropKey] = Object.assign({}, srcPropVal);
113
+ }
114
+ } else {
115
+ destinationModel[srcPropKey] = srcPropVal;
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }