@colijnit/sharedcomponents 1.0.23 → 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 (293) 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-1.0.23.tgz +0 -0
  198. package/colijnit-sharedcomponents.d.ts +0 -16
  199. package/colijnit-sharedcomponents.metadata.json +0 -1
  200. package/esm2015/colijnit-sharedcomponents.js +0 -17
  201. package/esm2015/lib/assets/dictionary/text.properties.js +0 -11
  202. package/esm2015/lib/components/circular-gauge/co-circular-gauge.component.js +0 -125
  203. package/esm2015/lib/components/circular-gauge/co-circular-gauge.module.js +0 -21
  204. package/esm2015/lib/components/docsign/component/signature/signature.component.js +0 -75
  205. package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +0 -44
  206. package/esm2015/lib/components/docsign/docsign.component.js +0 -225
  207. package/esm2015/lib/components/docsign/docsign.module.js +0 -23
  208. package/esm2015/lib/components/key-pad/key-pad.component.js +0 -191
  209. package/esm2015/lib/components/key-pad/key-pad.module.js +0 -21
  210. package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +0 -74
  211. package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +0 -21
  212. package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +0 -55
  213. package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +0 -19
  214. package/esm2015/lib/components/send-method-dialog/enums/send-option.js +0 -8
  215. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +0 -309
  216. package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +0 -31
  217. package/esm2015/lib/components/statusbar/statusbar.component.js +0 -81
  218. package/esm2015/lib/components/statusbar/statusbar.module.js +0 -23
  219. package/esm2015/lib/components/stock/stock-information/stock-information.component.js +0 -54
  220. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +0 -350
  221. package/esm2015/lib/components/stock/stock-location/stock-location.component.js +0 -62
  222. package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +0 -2
  223. package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +0 -68
  224. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +0 -130
  225. package/esm2015/lib/components/stock/stock.component.js +0 -140
  226. package/esm2015/lib/components/stock/stock.module.js +0 -48
  227. package/esm2015/lib/enum/icon.enum.js +0 -17
  228. package/esm2015/lib/enum/keyboard-code.enum.js +0 -32
  229. package/esm2015/lib/enum/language-code.enum.js +0 -8
  230. package/esm2015/lib/factory/business-object-factory.js +0 -120
  231. package/esm2015/lib/factory/decorators/boolean.decorator.js +0 -102
  232. package/esm2015/lib/factory/decorators/complex-array.decorator.js +0 -55
  233. package/esm2015/lib/factory/decorators/complex-field.decorator.js +0 -57
  234. package/esm2015/lib/factory/decorators/date-field.decorator.js +0 -36
  235. package/esm2015/lib/factory/decorators/string-number.decorator.js +0 -43
  236. package/esm2015/lib/model/business-object.js +0 -81
  237. package/esm2015/lib/model/icon-svg.js +0 -16
  238. package/esm2015/lib/service/dictionary.service.js +0 -76
  239. package/esm2015/lib/service/icon-cache.service.js +0 -51
  240. package/esm2015/lib/service/options.service.js +0 -71
  241. package/esm2015/lib/service/shared-connector.service.js +0 -278
  242. package/esm2015/lib/service/shared.service.js +0 -30
  243. package/esm2015/lib/service/stock.service.js +0 -95
  244. package/esm2015/lib/utils/array-utils.js +0 -183
  245. package/esm2015/lib/utils/is-nill.function.js +0 -5
  246. package/esm2015/lib/utils/string-utils.js +0 -64
  247. package/esm2015/public-api.js +0 -21
  248. package/fesm2015/colijnit-sharedcomponents.js +0 -3511
  249. package/fesm2015/colijnit-sharedcomponents.js.map +0 -1
  250. package/lib/assets/dictionary/text.properties.d.ts +0 -3
  251. package/lib/components/circular-gauge/co-circular-gauge.component.d.ts +0 -20
  252. package/lib/components/circular-gauge/co-circular-gauge.module.d.ts +0 -2
  253. package/lib/components/docsign/component/signature/signature.component.d.ts +0 -16
  254. package/lib/components/docsign/component/signatures/signatures.component.d.ts +0 -12
  255. package/lib/components/docsign/docsign.component.d.ts +0 -92
  256. package/lib/components/docsign/docsign.module.d.ts +0 -2
  257. package/lib/components/key-pad/key-pad.component.d.ts +0 -36
  258. package/lib/components/key-pad/key-pad.module.d.ts +0 -2
  259. package/lib/components/layout-switcher/layout-switcher.component.d.ts +0 -16
  260. package/lib/components/layout-switcher/layout-switcher.module.d.ts +0 -2
  261. package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +0 -16
  262. package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +0 -2
  263. package/lib/components/send-method-dialog/enums/send-option.d.ts +0 -6
  264. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +0 -62
  265. package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +0 -2
  266. package/lib/components/statusbar/statusbar.component.d.ts +0 -23
  267. package/lib/components/statusbar/statusbar.module.d.ts +0 -2
  268. package/lib/components/stock/stock-information/stock-information.component.d.ts +0 -10
  269. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +0 -60
  270. package/lib/components/stock/stock-location/stock-location.component.d.ts +0 -15
  271. package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +0 -18
  272. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +0 -36
  273. package/lib/components/stock/stock.component.d.ts +0 -42
  274. package/lib/components/stock/stock.module.d.ts +0 -2
  275. package/lib/enum/keyboard-code.enum.d.ts +0 -30
  276. package/lib/enum/language-code.enum.d.ts +0 -6
  277. package/lib/factory/business-object-factory.d.ts +0 -23
  278. package/lib/factory/decorators/boolean.decorator.d.ts +0 -43
  279. package/lib/factory/decorators/complex-array.decorator.d.ts +0 -25
  280. package/lib/factory/decorators/complex-field.decorator.d.ts +0 -25
  281. package/lib/factory/decorators/date-field.decorator.d.ts +0 -17
  282. package/lib/factory/decorators/string-number.decorator.d.ts +0 -22
  283. package/lib/model/business-object.d.ts +0 -7
  284. package/lib/model/icon-svg.d.ts +0 -4
  285. package/lib/service/dictionary.service.d.ts +0 -21
  286. package/lib/service/icon-cache.service.d.ts +0 -18
  287. package/lib/service/options.service.d.ts +0 -13
  288. package/lib/service/shared-connector.service.d.ts +0 -43
  289. package/lib/service/shared.service.d.ts +0 -8
  290. package/lib/service/stock.service.d.ts +0 -38
  291. package/lib/utils/array-utils.d.ts +0 -57
  292. package/lib/utils/is-nill.function.d.ts +0 -1
  293. 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
+ }