@colijnit/sharedcomponents 1.0.63 → 1.0.64

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 (486) hide show
  1. package/README.md +24 -24
  2. package/bundles/colijnit-sharedcomponents.umd.js +9881 -9879
  3. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  4. package/colijnit-sharedcomponents.d.ts +91 -91
  5. package/colijnit-sharedcomponents.metadata.json +1 -1
  6. package/esm2015/colijnit-sharedcomponents.js +91 -91
  7. package/esm2015/lib/assets/dictionary/text.properties.js +11 -11
  8. package/esm2015/lib/businessobject/build-images-and-documentation-result.js +2 -2
  9. package/esm2015/lib/businessobject/co-document-right.bo.js +3 -3
  10. package/esm2015/lib/businessobject/drag-drop-container-element.js +2 -2
  11. package/esm2015/lib/businessobject/drag-drop-container.js +7 -7
  12. package/esm2015/lib/components/activity-list/activity-list.component.js +130 -130
  13. package/esm2015/lib/components/activity-list/activity-list.module.js +24 -24
  14. package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.component.js +47 -47
  15. package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.module.js +20 -20
  16. package/esm2015/lib/components/date-planning/component/agenda/agenda-base-view.component.js +61 -61
  17. package/esm2015/lib/components/date-planning/component/agenda/agenda-day-view.component.js +36 -36
  18. package/esm2015/lib/components/date-planning/component/agenda/agenda-event.component.js +56 -56
  19. package/esm2015/lib/components/date-planning/component/agenda/agenda-events.component.js +47 -47
  20. package/esm2015/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.js +68 -68
  21. package/esm2015/lib/components/date-planning/component/agenda/agenda-header.component.js +243 -243
  22. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-cell.component.js +36 -36
  23. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.js +50 -50
  24. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view.component.js +46 -46
  25. package/esm2015/lib/components/date-planning/component/agenda/agenda-month-view.component.js +61 -61
  26. package/esm2015/lib/components/date-planning/component/agenda/agenda-select-event.component.js +39 -39
  27. package/esm2015/lib/components/date-planning/component/agenda/agenda-view.component.js +35 -35
  28. package/esm2015/lib/components/date-planning/component/agenda/agenda-week-select-view.component.js +64 -64
  29. package/esm2015/lib/components/date-planning/component/agenda/agenda-week-view.component.js +48 -48
  30. package/esm2015/lib/components/date-planning/component/agenda/view-select.component.js +42 -42
  31. package/esm2015/lib/components/date-planning/component/calendar/calendar-all-months.component.js +34 -34
  32. package/esm2015/lib/components/date-planning/component/calendar/calendar-all-years.component.js +48 -48
  33. package/esm2015/lib/components/date-planning/component/calendar/calendar-header.component.js +107 -107
  34. package/esm2015/lib/components/date-planning/component/calendar/calendar-view.component.js +178 -178
  35. package/esm2015/lib/components/date-planning/component/calendar/calendar.component.js +34 -34
  36. package/esm2015/lib/components/date-planning/date-planning.component.js +113 -113
  37. package/esm2015/lib/components/date-planning/date-planning.module.js +63 -63
  38. package/esm2015/lib/components/docsign/component/signature/signature.component.js +75 -75
  39. package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +44 -44
  40. package/esm2015/lib/components/docsign/docsign.component.js +242 -242
  41. package/esm2015/lib/components/docsign/docsign.module.js +23 -23
  42. package/esm2015/lib/components/file-upload/file-upload.component.js +189 -189
  43. package/esm2015/lib/components/file-upload/file-upload.module.js +25 -25
  44. package/esm2015/lib/components/file-upload-popup/file-upload-popup.component.js +397 -397
  45. package/esm2015/lib/components/file-upload-popup/file-upload-popup.module.js +30 -30
  46. package/esm2015/lib/components/files-upload/components/base-file-upload.component.js +469 -469
  47. package/esm2015/lib/components/files-upload/components/drag-drop-container.component.js +115 -115
  48. package/esm2015/lib/components/files-upload/files-upload.component.js +131 -131
  49. package/esm2015/lib/components/files-upload/files-upload.module.js +47 -47
  50. package/esm2015/lib/components/image-display/image-display.component.js +36 -36
  51. package/esm2015/lib/components/image-display/image-display.module.js +23 -23
  52. package/esm2015/lib/components/key-pad/key-pad.component.js +200 -200
  53. package/esm2015/lib/components/key-pad/key-pad.module.js +22 -22
  54. package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +74 -74
  55. package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +21 -21
  56. package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +59 -59
  57. package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +19 -19
  58. package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.component.js +89 -89
  59. package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.module.js +21 -21
  60. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.js +79 -79
  61. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.js +21 -21
  62. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.js +85 -85
  63. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.js +21 -21
  64. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.js +64 -64
  65. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.js +26 -26
  66. package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.js +40 -40
  67. package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.js +23 -23
  68. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.js +61 -61
  69. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.js +28 -28
  70. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.component.js +38 -38
  71. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.module.js +21 -21
  72. package/esm2015/lib/components/send-method-dialog/model/email-address-viewmodel.js +7 -7
  73. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +258 -258
  74. package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +35 -35
  75. package/esm2015/lib/components/send-method-dialog/send-method-params.interface.js +2 -2
  76. package/esm2015/lib/components/send-method-dialog/service/send-method.service.js +59 -59
  77. package/esm2015/lib/components/simple-tags/simple-tags.component.js +229 -229
  78. package/esm2015/lib/components/simple-tags/simple-tags.module.js +26 -26
  79. package/esm2015/lib/components/statusbar/statusbar-popup.component.js +97 -97
  80. package/esm2015/lib/components/statusbar/statusbar.component.js +81 -81
  81. package/esm2015/lib/components/statusbar/statusbar.module.js +27 -27
  82. package/esm2015/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.js +47 -47
  83. package/esm2015/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.js +47 -47
  84. package/esm2015/lib/components/stock/components/order-stock-history/order-stock-history.component.js +47 -47
  85. package/esm2015/lib/components/stock/components/order-stock-tab/order-stock-tab.component.js +47 -47
  86. package/esm2015/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.js +47 -47
  87. package/esm2015/lib/components/stock/components/order-tab/order-tab.component.js +67 -67
  88. package/esm2015/lib/components/stock/components/stock-history/stock-history.component.js +53 -53
  89. package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +251 -251
  90. package/esm2015/lib/components/stock/components/stock-prognose/stock-prognose.component.js +52 -52
  91. package/esm2015/lib/components/stock/components/stock-tab/stock-tab.component.js +39 -39
  92. package/esm2015/lib/components/stock/localization/translation.js +72 -70
  93. package/esm2015/lib/components/stock/stock-history-tabs/stock-history-tabs.component.js +33 -33
  94. package/esm2015/lib/components/stock/stock-information/stock-information.component.js +48 -49
  95. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +457 -457
  96. package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +243 -243
  97. package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +2 -2
  98. package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +72 -72
  99. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +160 -160
  100. package/esm2015/lib/components/stock/stock.component.js +237 -238
  101. package/esm2015/lib/components/stock/stock.module.js +80 -80
  102. package/esm2015/lib/components/stock-statusbar/stock-statusbar.component.js +23 -23
  103. package/esm2015/lib/components/stock-statusbar/stock-statusbar.module.js +19 -19
  104. package/esm2015/lib/components/tab-bar/tab-bar.component.js +90 -90
  105. package/esm2015/lib/components/tab-bar/tab-bar.module.js +21 -21
  106. package/esm2015/lib/components/tab-bar/tab.interface.js +2 -2
  107. package/esm2015/lib/components/tile-renderer/tile-render.component.js +80 -80
  108. package/esm2015/lib/components/tile-renderer/tile-render.module.js +26 -26
  109. package/esm2015/lib/decorator/input-boolean.decorator.js +34 -34
  110. package/esm2015/lib/enum/calendar-view.enum.js +9 -9
  111. package/esm2015/lib/enum/document-email-report.enum.js +18 -18
  112. package/esm2015/lib/enum/domain-multiple-name.enum.js +13 -13
  113. package/esm2015/lib/enum/file-type.js +14 -14
  114. package/esm2015/lib/enum/files-upload-config-objects.js +3 -3
  115. package/esm2015/lib/enum/gauge-color.enum.js +10 -10
  116. package/esm2015/lib/enum/icon.enum.js +47 -47
  117. package/esm2015/lib/enum/internal-param.enum.js +38 -38
  118. package/esm2015/lib/enum/keyboard-code.enum.js +32 -32
  119. package/esm2015/lib/enum/language-code.enum.js +8 -8
  120. package/esm2015/lib/enum/month.enum.js +17 -17
  121. package/esm2015/lib/enum/read-write-access-config-names.enum.js +2 -2
  122. package/esm2015/lib/enum/table-name.enum.js +86 -86
  123. package/esm2015/lib/enum/tag-category.enum.js +22 -22
  124. package/esm2015/lib/enum/tags-component-config-names.js +2 -2
  125. package/esm2015/lib/enum/thumb-three-way-state.js +19 -19
  126. package/esm2015/lib/enum/tile-size-type.js +7 -7
  127. package/esm2015/lib/enum/time-period.enum.js +11 -11
  128. package/esm2015/lib/event/co-drag-event.js +2 -2
  129. package/esm2015/lib/event/co-drop-event.js +2 -2
  130. package/esm2015/lib/interface/key-value-pair.js +2 -2
  131. package/esm2015/lib/interface/operation-callback-simple-function.js +4 -4
  132. package/esm2015/lib/localization/localization.module.js +19 -19
  133. package/esm2015/lib/localization/localize.pipe.js +26 -26
  134. package/esm2015/lib/localization/localize.service.js +30 -30
  135. package/esm2015/lib/localization/translation.js +3 -3
  136. package/esm2015/lib/model/agenda-event-per-day.model.js +6 -6
  137. package/esm2015/lib/model/agenda-event.model.js +8 -8
  138. package/esm2015/lib/model/agenda-null-objects.js +11 -11
  139. package/esm2015/lib/model/constant/all-months.js +17 -17
  140. package/esm2015/lib/model/date-range.js +5 -5
  141. package/esm2015/lib/model/day.model.js +7 -7
  142. package/esm2015/lib/model/icon-svg.js +46 -46
  143. package/esm2015/lib/model/month.model.js +11 -11
  144. package/esm2015/lib/model/send-method.js +8 -8
  145. package/esm2015/lib/model/settings.js +4 -4
  146. package/esm2015/lib/model/tag-tree-item.bo.js +16 -16
  147. package/esm2015/lib/model/time-window.bo.js +26 -26
  148. package/esm2015/lib/model/tree-object.js +15 -15
  149. package/esm2015/lib/model/week.model.js +6 -6
  150. package/esm2015/lib/model/weekday.model.js +10 -10
  151. package/esm2015/lib/pipe/array-number.pipe.js +15 -15
  152. package/esm2015/lib/pipe/file-type-image.pipe.js +51 -51
  153. package/esm2015/lib/pipe/master-pipes.js +9 -9
  154. package/esm2015/lib/pipe/ucfirst.pipe.js +16 -16
  155. package/esm2015/lib/service/dictionary.service.js +76 -76
  156. package/esm2015/lib/service/drag-drop.service.js +365 -365
  157. package/esm2015/lib/service/icon-cache.service.js +51 -51
  158. package/esm2015/lib/service/options.service.js +48 -48
  159. package/esm2015/lib/service/shared-connector.service.js +433 -433
  160. package/esm2015/lib/service/shared.service.js +60 -60
  161. package/esm2015/lib/service/stock.service.js +110 -110
  162. package/esm2015/lib/utils/array-utils.js +202 -202
  163. package/esm2015/lib/utils/calendar.utils.js +68 -68
  164. package/esm2015/lib/utils/check-precision-and-scale-result.js +2 -2
  165. package/esm2015/lib/utils/check-within-stepped-bounds-result.js +2 -2
  166. package/esm2015/lib/utils/co-document-shared-field-logic.js +50 -50
  167. package/esm2015/lib/utils/date-utils.js +264 -264
  168. package/esm2015/lib/utils/enum-utils.js +128 -128
  169. package/esm2015/lib/utils/function/not-nill.function.js +5 -5
  170. package/esm2015/lib/utils/is-nill.function.js +5 -5
  171. package/esm2015/lib/utils/map-utils.js +41 -41
  172. package/esm2015/lib/utils/number-utils.js +390 -390
  173. package/esm2015/lib/utils/object-utils.js +278 -278
  174. package/esm2015/lib/utils/ref-code-utils.js +49 -49
  175. package/esm2015/lib/utils/string-utils.js +93 -93
  176. package/esm2015/public-api.js +31 -31
  177. package/fesm2015/colijnit-sharedcomponents.js +10408 -10408
  178. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  179. package/lib/assets/dictionary/text.properties.d.ts +3 -3
  180. package/lib/businessobject/build-images-and-documentation-result.d.ts +5 -5
  181. package/lib/businessobject/co-document-right.bo.d.ts +6 -6
  182. package/lib/businessobject/drag-drop-container-element.d.ts +6 -6
  183. package/lib/businessobject/drag-drop-container.d.ts +6 -6
  184. package/lib/components/access/read-write-access.scss +25 -25
  185. package/lib/components/access/style/_layout.scss +23 -23
  186. package/lib/components/access/style/_material-definition.scss +12 -12
  187. package/lib/components/access/style/_theme.scss +4 -4
  188. package/lib/components/access/style/material.scss +4 -4
  189. package/lib/components/activity-list/activity-list.component.d.ts +33 -33
  190. package/lib/components/activity-list/activity-list.module.d.ts +2 -2
  191. package/lib/components/activity-list/style/_layout.scss +68 -68
  192. package/lib/components/activity-list/style/_theme.scss +4 -4
  193. package/lib/components/activity-list/style/material.scss +4 -4
  194. package/lib/components/app-file-dropzone/app-file-dropzone.component.d.ts +14 -14
  195. package/lib/components/app-file-dropzone/app-file-dropzone.module.d.ts +2 -2
  196. package/lib/components/app-file-dropzone/style/_layout.scss +61 -61
  197. package/lib/components/app-file-dropzone/style/_theme.scss +4 -4
  198. package/lib/components/app-file-dropzone/style/material.scss +4 -4
  199. package/lib/components/date-planning/component/agenda/agenda-base-view.component.d.ts +21 -21
  200. package/lib/components/date-planning/component/agenda/agenda-day-view.component.d.ts +7 -7
  201. package/lib/components/date-planning/component/agenda/agenda-event.component.d.ts +18 -18
  202. package/lib/components/date-planning/component/agenda/agenda-events.component.d.ts +13 -13
  203. package/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.d.ts +18 -18
  204. package/lib/components/date-planning/component/agenda/agenda-header.component.d.ts +48 -48
  205. package/lib/components/date-planning/component/agenda/agenda-hour-cell.component.d.ts +9 -9
  206. package/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.d.ts +8 -8
  207. package/lib/components/date-planning/component/agenda/agenda-hour-view.component.d.ts +7 -7
  208. package/lib/components/date-planning/component/agenda/agenda-month-view.component.d.ts +10 -10
  209. package/lib/components/date-planning/component/agenda/agenda-select-event.component.d.ts +12 -12
  210. package/lib/components/date-planning/component/agenda/agenda-view.component.d.ts +12 -12
  211. package/lib/components/date-planning/component/agenda/agenda-week-select-view.component.d.ts +10 -10
  212. package/lib/components/date-planning/component/agenda/agenda-week-view.component.d.ts +9 -9
  213. package/lib/components/date-planning/component/agenda/style/_layout.scss +443 -443
  214. package/lib/components/date-planning/component/agenda/style/_material-definition.scss +12 -12
  215. package/lib/components/date-planning/component/agenda/style/_theme.scss +7 -7
  216. package/lib/components/date-planning/component/agenda/style/material.scss +5 -5
  217. package/lib/components/date-planning/component/agenda/view-select.component.d.ts +11 -11
  218. package/lib/components/date-planning/component/calendar/calendar-all-months.component.d.ts +9 -9
  219. package/lib/components/date-planning/component/calendar/calendar-all-years.component.d.ts +9 -9
  220. package/lib/components/date-planning/component/calendar/calendar-header.component.d.ts +23 -23
  221. package/lib/components/date-planning/component/calendar/calendar-view.component.d.ts +31 -31
  222. package/lib/components/date-planning/component/calendar/calendar.component.d.ts +10 -10
  223. package/lib/components/date-planning/component/calendar/style/_layout.scss +167 -167
  224. package/lib/components/date-planning/component/calendar/style/_material-definition.scss +7 -7
  225. package/lib/components/date-planning/component/calendar/style/_theme.scss +7 -7
  226. package/lib/components/date-planning/component/calendar/style/material.scss +5 -5
  227. package/lib/components/date-planning/date-planning.component.d.ts +28 -28
  228. package/lib/components/date-planning/date-planning.module.d.ts +2 -2
  229. package/lib/components/date-planning/style/_layout.scss +45 -45
  230. package/lib/components/date-planning/style/_theme.scss +5 -5
  231. package/lib/components/date-planning/style/material.scss +7 -7
  232. package/lib/components/docsign/component/signature/signature.component.d.ts +16 -16
  233. package/lib/components/docsign/component/signature/style/_layout.scss +40 -40
  234. package/lib/components/docsign/component/signature/style/_material-definition.scss +11 -11
  235. package/lib/components/docsign/component/signature/style/_theme.scss +13 -13
  236. package/lib/components/docsign/component/signature/style/material.scss +4 -4
  237. package/lib/components/docsign/component/signatures/signatures.component.d.ts +12 -12
  238. package/lib/components/docsign/component/signatures/style/_layout.scss +13 -13
  239. package/lib/components/docsign/component/signatures/style/_material-definition.scss +1 -1
  240. package/lib/components/docsign/component/signatures/style/_theme.scss +4 -4
  241. package/lib/components/docsign/component/signatures/style/material.scss +5 -5
  242. package/lib/components/docsign/docsign.component.d.ts +94 -94
  243. package/lib/components/docsign/docsign.module.d.ts +2 -2
  244. package/lib/components/docsign/style/_layout.scss +40 -40
  245. package/lib/components/docsign/style/_material-definition.scss +12 -12
  246. package/lib/components/docsign/style/_theme.scss +12 -12
  247. package/lib/components/docsign/style/material.scss +15 -15
  248. package/lib/components/file-upload/file-upload.component.d.ts +42 -42
  249. package/lib/components/file-upload/file-upload.module.d.ts +2 -2
  250. package/lib/components/file-upload/style/_layout.scss +59 -59
  251. package/lib/components/file-upload/style/_material-definition.scss +2 -2
  252. package/lib/components/file-upload/style/_theme.scss +4 -4
  253. package/lib/components/file-upload/style/material.scss +4 -4
  254. package/lib/components/file-upload-popup/file-upload-popup.component.d.ts +75 -75
  255. package/lib/components/file-upload-popup/file-upload-popup.module.d.ts +2 -2
  256. package/lib/components/file-upload-popup/style/_layout.scss +48 -48
  257. package/lib/components/file-upload-popup/style/_material-definition.scss +2 -2
  258. package/lib/components/file-upload-popup/style/_theme.scss +5 -5
  259. package/lib/components/file-upload-popup/style/material.scss +4 -4
  260. package/lib/components/files-upload/components/base-file-upload.component.d.ts +98 -98
  261. package/lib/components/files-upload/components/drag-drop-container.component.d.ts +34 -34
  262. package/lib/components/files-upload/files-upload.component.d.ts +32 -32
  263. package/lib/components/files-upload/files-upload.module.d.ts +2 -2
  264. package/lib/components/files-upload/style/_layout.scss +49 -49
  265. package/lib/components/files-upload/style/_theme.scss +5 -5
  266. package/lib/components/files-upload/style/material.scss +4 -4
  267. package/lib/components/image-display/image-display.component.d.ts +14 -14
  268. package/lib/components/image-display/image-display.module.d.ts +2 -2
  269. package/lib/components/image-display/style/_layout.scss +56 -56
  270. package/lib/components/image-display/style/_material-definition.scss +4 -4
  271. package/lib/components/image-display/style/_theme.scss +6 -6
  272. package/lib/components/image-display/style/material.scss +3 -3
  273. package/lib/components/key-pad/key-pad.component.d.ts +38 -38
  274. package/lib/components/key-pad/key-pad.module.d.ts +2 -2
  275. package/lib/components/key-pad/style/_layout.scss +160 -160
  276. package/lib/components/key-pad/style/_material-definition.scss +19 -19
  277. package/lib/components/key-pad/style/_theme.scss +35 -35
  278. package/lib/components/key-pad/style/material.scss +4 -4
  279. package/lib/components/layout-switcher/layout-switcher.component.d.ts +16 -16
  280. package/lib/components/layout-switcher/layout-switcher.module.d.ts +2 -2
  281. package/lib/components/layout-switcher/style/_layout.scss +94 -94
  282. package/lib/components/layout-switcher/style/_material-definition.scss +16 -16
  283. package/lib/components/layout-switcher/style/_theme.scss +4 -4
  284. package/lib/components/layout-switcher/style/material.scss +6 -6
  285. package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +11 -11
  286. package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +2 -2
  287. package/lib/components/linear-gauge/style/_layout.scss +20 -20
  288. package/lib/components/linear-gauge/style/_material-definition.scss +8 -8
  289. package/lib/components/linear-gauge/style/_theme.scss +4 -4
  290. package/lib/components/linear-gauge/style/material.scss +6 -6
  291. package/lib/components/login/style/_layout.scss +57 -57
  292. package/lib/components/login/style/_material-definition.scss +23 -23
  293. package/lib/components/login/style/_theme.scss +7 -7
  294. package/lib/components/login/style/material.scss +4 -4
  295. package/lib/components/multi-property-toggler/multiple-property-toggler.component.d.ts +27 -27
  296. package/lib/components/multi-property-toggler/multiple-property-toggler.module.d.ts +2 -2
  297. package/lib/components/multi-property-toggler/style/_layout.scss +24 -24
  298. package/lib/components/multi-property-toggler/style/_theme.scss +4 -4
  299. package/lib/components/multi-property-toggler/style/material.scss +4 -4
  300. package/lib/components/screen-config-generator/style/_layout.scss +95 -95
  301. package/lib/components/screen-config-generator/style/_theme.scss +4 -4
  302. package/lib/components/screen-config-generator/style/material.scss +4 -4
  303. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.d.ts +19 -19
  304. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.d.ts +2 -2
  305. package/lib/components/send-method-dialog/components/layout-selection/style/_layout.scss +44 -44
  306. package/lib/components/send-method-dialog/components/layout-selection/style/_material-definition.scss +19 -19
  307. package/lib/components/send-method-dialog/components/layout-selection/style/_theme.scss +17 -17
  308. package/lib/components/send-method-dialog/components/layout-selection/style/material.scss +4 -4
  309. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.d.ts +19 -19
  310. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.d.ts +2 -2
  311. package/lib/components/send-method-dialog/components/printer-selection/style/_layout.scss +69 -69
  312. package/lib/components/send-method-dialog/components/printer-selection/style/_material-definition.scss +37 -37
  313. package/lib/components/send-method-dialog/components/printer-selection/style/_theme.scss +23 -23
  314. package/lib/components/send-method-dialog/components/printer-selection/style/material.scss +4 -4
  315. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +14 -14
  316. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.d.ts +2 -2
  317. package/lib/components/send-method-dialog/components/send-method-email/style/_layout.scss +29 -29
  318. package/lib/components/send-method-dialog/components/send-method-email/style/_material-definition.scss +8 -8
  319. package/lib/components/send-method-dialog/components/send-method-email/style/_theme.scss +5 -5
  320. package/lib/components/send-method-dialog/components/send-method-email/style/material.scss +4 -4
  321. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.d.ts +8 -8
  322. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.d.ts +2 -2
  323. package/lib/components/send-method-dialog/components/send-method-pdf/style/_layout.scss +25 -25
  324. package/lib/components/send-method-dialog/components/send-method-pdf/style/_material-definition.scss +5 -5
  325. package/lib/components/send-method-dialog/components/send-method-pdf/style/_theme.scss +5 -5
  326. package/lib/components/send-method-dialog/components/send-method-pdf/style/material.scss +4 -4
  327. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +13 -13
  328. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.d.ts +2 -2
  329. package/lib/components/send-method-dialog/components/send-method-printer/style/_layout.scss +30 -30
  330. package/lib/components/send-method-dialog/components/send-method-printer/style/_material-definition.scss +5 -5
  331. package/lib/components/send-method-dialog/components/send-method-printer/style/_theme.scss +5 -5
  332. package/lib/components/send-method-dialog/components/send-method-printer/style/material.scss +4 -4
  333. package/lib/components/send-method-dialog/components/signature-button/signature-button.component.d.ts +12 -12
  334. package/lib/components/send-method-dialog/components/signature-button/signature-button.module.d.ts +2 -2
  335. package/lib/components/send-method-dialog/components/signature-button/style/_layout.scss +28 -28
  336. package/lib/components/send-method-dialog/components/signature-button/style/_material-definition.scss +8 -8
  337. package/lib/components/send-method-dialog/components/signature-button/style/_theme.scss +4 -4
  338. package/lib/components/send-method-dialog/components/signature-button/style/material.scss +4 -4
  339. package/lib/components/send-method-dialog/model/email-address-viewmodel.d.ts +5 -5
  340. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +71 -71
  341. package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +2 -2
  342. package/lib/components/send-method-dialog/send-method-params.interface.d.ts +13 -13
  343. package/lib/components/send-method-dialog/service/send-method.service.d.ts +23 -23
  344. package/lib/components/send-method-dialog/style/_layout.scss +165 -165
  345. package/lib/components/send-method-dialog/style/_material-definition.scss +48 -48
  346. package/lib/components/send-method-dialog/style/_theme.scss +33 -33
  347. package/lib/components/send-method-dialog/style/material.scss +10 -10
  348. package/lib/components/simple-tags/simple-tags.component.d.ts +31 -31
  349. package/lib/components/simple-tags/simple-tags.module.d.ts +2 -2
  350. package/lib/components/simple-tags/style/_layout.scss +272 -272
  351. package/lib/components/simple-tags/style/_material-definition.scss +39 -39
  352. package/lib/components/simple-tags/style/_theme.scss +4 -4
  353. package/lib/components/simple-tags/style/material.scss +4 -4
  354. package/lib/components/statusbar/statusbar-popup.component.d.ts +21 -21
  355. package/lib/components/statusbar/statusbar.component.d.ts +26 -26
  356. package/lib/components/statusbar/statusbar.module.d.ts +2 -2
  357. package/lib/components/statusbar/style/_layout.scss +70 -70
  358. package/lib/components/statusbar/style/_material-definition.scss +23 -23
  359. package/lib/components/statusbar/style/_theme.scss +13 -13
  360. package/lib/components/statusbar/style/material.scss +5 -5
  361. package/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.d.ts +9 -9
  362. package/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.d.ts +9 -9
  363. package/lib/components/stock/components/order-stock-history/order-stock-history.component.d.ts +9 -9
  364. package/lib/components/stock/components/order-stock-tab/order-stock-tab.component.d.ts +11 -11
  365. package/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.d.ts +9 -9
  366. package/lib/components/stock/components/order-tab/order-tab.component.d.ts +20 -20
  367. package/lib/components/stock/components/stock-history/stock-history.component.d.ts +13 -13
  368. package/lib/components/stock/components/stock-location/stock-location.component.d.ts +52 -52
  369. package/lib/components/stock/components/stock-prognose/stock-prognose.component.d.ts +11 -11
  370. package/lib/components/stock/components/stock-tab/stock-tab.component.d.ts +7 -7
  371. package/lib/components/stock/localization/translation.d.ts +69 -67
  372. package/lib/components/stock/stock-history-tabs/stock-history-tabs.component.d.ts +7 -7
  373. package/lib/components/stock/stock-information/stock-information.component.d.ts +9 -9
  374. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +75 -75
  375. package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +56 -56
  376. package/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts +4 -4
  377. package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +18 -18
  378. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +38 -38
  379. package/lib/components/stock/stock.component.d.ts +64 -64
  380. package/lib/components/stock/stock.module.d.ts +2 -2
  381. package/lib/components/stock/style/_layout.scss +473 -421
  382. package/lib/components/stock/style/_material-definition.scss +28 -25
  383. package/lib/components/stock/style/_theme.scss +5 -5
  384. package/lib/components/stock/style/material.scss +4 -4
  385. package/lib/components/stock-statusbar/stock-statusbar.component.d.ts +4 -4
  386. package/lib/components/stock-statusbar/stock-statusbar.module.d.ts +2 -2
  387. package/lib/components/stock-statusbar/style/_layout.scss +24 -24
  388. package/lib/components/stock-statusbar/style/material.scss +4 -4
  389. package/lib/components/tab-bar/style/_layout.scss +83 -78
  390. package/lib/components/tab-bar/style/_material-definition.scss +6 -6
  391. package/lib/components/tab-bar/style/material.scss +4 -4
  392. package/lib/components/tab-bar/tab-bar.component.d.ts +21 -21
  393. package/lib/components/tab-bar/tab-bar.module.d.ts +2 -2
  394. package/lib/components/tab-bar/tab.interface.d.ts +5 -5
  395. package/lib/components/tags/component/style/_layout.scss +67 -67
  396. package/lib/components/tags/component/style/_material-definition.scss +1 -1
  397. package/lib/components/tags/component/style/_theme.scss +8 -8
  398. package/lib/components/tags/component/style/material.scss +3 -3
  399. package/lib/components/tags/component/tag-join-label/style/_layout.scss +97 -97
  400. package/lib/components/tags/component/tag-join-label/style/_material-definition.scss +4 -4
  401. package/lib/components/tags/component/tag-join-label/style/_theme.scss +8 -8
  402. package/lib/components/tags/component/tag-join-label/style/material.scss +3 -3
  403. package/lib/components/tile-renderer/style/_layout.scss +90 -90
  404. package/lib/components/tile-renderer/style/_theme.scss +4 -4
  405. package/lib/components/tile-renderer/style/material.scss +4 -4
  406. package/lib/components/tile-renderer/tile-render.component.d.ts +31 -31
  407. package/lib/components/tile-renderer/tile-render.module.d.ts +2 -2
  408. package/lib/decorator/input-boolean.decorator.d.ts +8 -8
  409. package/lib/enum/calendar-view.enum.d.ts +7 -7
  410. package/lib/enum/document-email-report.enum.d.ts +15 -15
  411. package/lib/enum/domain-multiple-name.enum.d.ts +10 -10
  412. package/lib/enum/file-type.d.ts +7 -7
  413. package/lib/enum/files-upload-config-objects.d.ts +22 -22
  414. package/lib/enum/gauge-color.enum.d.ts +8 -8
  415. package/lib/enum/icon.enum.d.ts +46 -46
  416. package/lib/enum/internal-param.enum.d.ts +34 -34
  417. package/lib/enum/keyboard-code.enum.d.ts +30 -30
  418. package/lib/enum/language-code.enum.d.ts +6 -6
  419. package/lib/enum/month.enum.d.ts +14 -14
  420. package/lib/enum/read-write-access-config-names.enum.d.ts +4 -4
  421. package/lib/enum/table-name.enum.d.ts +84 -84
  422. package/lib/enum/tag-category.enum.d.ts +19 -19
  423. package/lib/enum/tags-component-config-names.d.ts +4 -4
  424. package/lib/enum/thumb-three-way-state.d.ts +6 -6
  425. package/lib/enum/tile-size-type.d.ts +4 -4
  426. package/lib/enum/time-period.enum.d.ts +8 -8
  427. package/lib/event/co-drag-event.d.ts +5 -5
  428. package/lib/event/co-drop-event.d.ts +8 -8
  429. package/lib/interface/key-value-pair.d.ts +4 -4
  430. package/lib/interface/operation-callback-simple-function.d.ts +4 -4
  431. package/lib/localization/localization.module.d.ts +2 -2
  432. package/lib/localization/localize.pipe.d.ts +7 -7
  433. package/lib/localization/localize.service.d.ts +7 -7
  434. package/lib/localization/translation.d.ts +2 -2
  435. package/lib/model/agenda-event-per-day.model.d.ts +5 -5
  436. package/lib/model/agenda-event.model.d.ts +17 -17
  437. package/lib/model/agenda-null-objects.d.ts +10 -10
  438. package/lib/model/constant/all-months.d.ts +2 -2
  439. package/lib/model/date-range.d.ts +7 -7
  440. package/lib/model/day.model.d.ts +8 -8
  441. package/lib/model/icon-svg.d.ts +4 -4
  442. package/lib/model/month.model.d.ts +5 -5
  443. package/lib/model/send-method.d.ts +7 -7
  444. package/lib/model/settings.d.ts +3 -3
  445. package/lib/model/tag-tree-item.bo.d.ts +18 -18
  446. package/lib/model/time-window.bo.d.ts +13 -13
  447. package/lib/model/tree-object.d.ts +8 -8
  448. package/lib/model/week.model.d.ts +4 -4
  449. package/lib/model/weekday.model.d.ts +16 -16
  450. package/lib/pipe/array-number.pipe.d.ts +4 -4
  451. package/lib/pipe/file-type-image.pipe.d.ts +12 -12
  452. package/lib/pipe/master-pipes.d.ts +1 -1
  453. package/lib/pipe/ucfirst.pipe.d.ts +4 -4
  454. package/lib/service/dictionary.service.d.ts +21 -21
  455. package/lib/service/drag-drop.service.d.ts +86 -86
  456. package/lib/service/icon-cache.service.d.ts +18 -18
  457. package/lib/service/options.service.d.ts +13 -13
  458. package/lib/service/shared-connector.service.d.ts +55 -55
  459. package/lib/service/shared.service.d.ts +18 -18
  460. package/lib/service/stock.service.d.ts +41 -41
  461. package/lib/style/_mixin.scss +14 -14
  462. package/lib/style/_variables.scss +21 -21
  463. package/lib/style/sharedcomponents-globals.scss +10 -10
  464. package/lib/utils/array-utils.d.ts +63 -63
  465. package/lib/utils/calendar.utils.d.ts +10 -10
  466. package/lib/utils/check-precision-and-scale-result.d.ts +4 -4
  467. package/lib/utils/check-within-stepped-bounds-result.d.ts +8 -8
  468. package/lib/utils/co-document-shared-field-logic.d.ts +7 -7
  469. package/lib/utils/date-utils.d.ts +44 -44
  470. package/lib/utils/enum-utils.d.ts +31 -31
  471. package/lib/utils/function/not-nill.function.d.ts +1 -1
  472. package/lib/utils/is-nill.function.d.ts +1 -1
  473. package/lib/utils/map-utils.d.ts +16 -16
  474. package/lib/utils/number-utils.d.ts +125 -125
  475. package/lib/utils/object-utils.d.ts +40 -40
  476. package/lib/utils/ref-code-utils.d.ts +10 -10
  477. package/lib/utils/string-utils.d.ts +38 -38
  478. package/package.json +6 -6
  479. package/public-api.d.ts +27 -27
  480. package/3rdpartylicenses.txt +0 -1200
  481. package/favicon.ico +0 -0
  482. package/index.html +0 -12
  483. package/main.b63cf8c6791cb3e37f3c.js +0 -1
  484. package/polyfills.907fe9d1887c5de17993.js +0 -1
  485. package/runtime.8aac21847ed3d3829cca.js +0 -1
  486. package/styles.6807e7b997183dacbe3b.css +0 -1
@@ -1,238 +1,237 @@
1
- import { __awaiter } from "tslib";
2
- import { ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from "@angular/core";
3
- import { StockService } from "../../service/stock.service";
4
- import { PrintStockStickers } from "@colijnit/sharedapi/build/model/print-stock-stickers";
5
- import { ArticleExtended } from "@colijnit/articleapi/build/model/article-extended.bo";
6
- import { ArticleStock } from "@colijnit/articleapi/build/model/article-stock";
7
- import { OptionsService } from "../../service/options.service";
8
- import { DictionaryService } from "../../service/dictionary.service";
9
- import { LocalizeService } from '../../localization/localize.service';
10
- import { ArticleExtendedRequest } from "@colijnit/articleapi/build/model/article-extended-request";
11
- import { SharedConnectorService } from "../../service/shared-connector.service";
12
- import { Icon } from "../../enum/icon.enum";
13
- import { IconCacheService } from "../../service/icon-cache.service";
14
- export class StockComponent {
15
- constructor(_stockService, _optionsService, _dictionary, _changeDetector, _localizeService, _connector, iconCacheService) {
16
- this._stockService = _stockService;
17
- this._optionsService = _optionsService;
18
- this._dictionary = _dictionary;
19
- this._changeDetector = _changeDetector;
20
- this._localizeService = _localizeService;
21
- this._connector = _connector;
22
- this.iconCacheService = iconCacheService;
23
- this.icons = Icon;
24
- this.handleStickerClicked = new EventEmitter();
25
- this.articleWarehouse = [];
26
- this.allWarehouses = [];
27
- this.okButtonClicked = new EventEmitter();
28
- this.cancelButtonClicked = new EventEmitter();
29
- this.handleClick = new EventEmitter();
30
- this.loaded = false;
31
- this.showStockInformationGrid = true;
32
- this.showStockTransfer = false;
33
- this.stockInformation = [];
34
- this.stockHistory = [];
35
- this.allAvailableStock = 0;
36
- this.allTechnicalStock = 0;
37
- this.economicalStock = 0;
38
- this.showSendMethodDialog = false;
39
- this.warehouses = [];
40
- this._subscriptions = [];
41
- this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)));
42
- }
43
- set translation(value) {
44
- this._localizeService.translation = value;
45
- this._changeDetector.markForCheck();
46
- }
47
- set article(articleOrGoodId) {
48
- if (articleOrGoodId instanceof ArticleExtended) {
49
- this.articleExtended = articleOrGoodId;
50
- this._goodId = articleOrGoodId.goodId;
51
- }
52
- else if (typeof articleOrGoodId === "number") {
53
- this._goodId = articleOrGoodId;
54
- }
55
- }
56
- ;
57
- showClass() {
58
- return true;
59
- }
60
- ngOnDestroy() {
61
- this.articleExtended = undefined;
62
- this.articleFlat = undefined;
63
- this._subscriptions.forEach(subscription => subscription.unsubscribe());
64
- }
65
- ngOnInit() {
66
- }
67
- handleStockTransferClick(event) {
68
- this.stockTransferArticleDetails = event;
69
- this.showStockTransfer = !this.showStockTransfer;
70
- this.showStockInformationGrid = !this.showStockInformationGrid;
71
- this._stockService.stockStickers = new PrintStockStickers();
72
- }
73
- handleSendMethodClick(event) {
74
- this.showSendMethodDialog = true;
75
- }
76
- handleOkClick(data) {
77
- data.selected = true;
78
- data.entryDate = new Date;
79
- this._stockService.updateArticleDetails(data).then(result => {
80
- this.handleClick.emit();
81
- });
82
- }
83
- backToStock(goodId) {
84
- this.loadData();
85
- this.showStockTransfer = !this.showStockTransfer;
86
- this.showStockInformationGrid = !this.showStockInformationGrid;
87
- }
88
- getStockInformation(goodId) {
89
- const articleData = new ArticleStock();
90
- articleData.goodId = goodId.toString();
91
- articleData.viewKind = "M";
92
- this._stockService.getStockInformation(articleData).then(result => {
93
- this.stockInformation = result;
94
- this.stockInformation.forEach((articleStock) => this.allAvailableStock += articleStock.availableStock);
95
- this.stockInformation.forEach((articleStock) => this.allTechnicalStock += articleStock.technicalStock);
96
- this.stockInformation.forEach((articleStock) => this.economicalStock += articleStock.economicalStock);
97
- });
98
- }
99
- getArtStockStatus() {
100
- this._stockService.getArtStockStatus(this.articleExtended ? this.articleExtended.goodId : this._goodId).then(result => {
101
- this.articleStockState = result;
102
- });
103
- }
104
- getStockManagementWarehouses() {
105
- this._stockService.getStockManagementWarehouses().then((warehouses) => {
106
- this.warehouses = warehouses;
107
- });
108
- }
109
- _handleSettingsLoaded(loaded) {
110
- return __awaiter(this, void 0, void 0, function* () {
111
- if (loaded) {
112
- yield this._initConnection().then();
113
- }
114
- });
115
- }
116
- _initConnection() {
117
- return __awaiter(this, void 0, void 0, function* () {
118
- yield this._connector.connect();
119
- if (this._optionsService.options.url) {
120
- this._dictionary.rootUrl = this._optionsService.options.url.replace("/ajaxservice", "");
121
- }
122
- yield this._dictionary.setDictionary(this._optionsService.options.languageCode);
123
- setTimeout(() => {
124
- this._changeDetector.detectChanges();
125
- });
126
- this.loaded = true;
127
- this.loadData();
128
- });
129
- }
130
- loadData() {
131
- if (this.loaded) {
132
- if (this._goodId && !this.articleExtended) {
133
- let request = new ArticleExtendedRequest();
134
- request.goodId = this._goodId;
135
- this._stockService.searchArticles(request).then((articleExtended) => {
136
- if (articleExtended[0]) {
137
- this.articleExtended = articleExtended[0];
138
- this._stockService.getArticleFlat(articleExtended[0].articleNumber).then(result => {
139
- this.articleFlat = result;
140
- });
141
- }
142
- });
143
- }
144
- this.getArtStockStatus();
145
- this.getStockManagementWarehouses();
146
- this.getStockInformation(this.articleExtended ? this.articleExtended.goodId : this._goodId);
147
- }
148
- this._changeDetector.markForCheck();
149
- this._changeDetector.detectChanges();
150
- }
151
- }
152
- StockComponent.decorators = [
153
- { type: Component, args: [{
154
- selector: "co-stock",
155
- template: `
156
- <div class="stock-info-container" *ngIf="loaded && articleExtended">
157
- <co-stock-information [article]="articleExtended"
158
- [articleStockState]="articleStockState"
159
- [allAvailableStockInformation]="allAvailableStock"
160
- [allTechnicalStockInformation]="allTechnicalStock"
161
- [economicalStock]="economicalStock"
162
- >
163
- </co-stock-information>
164
- <hr>
165
- <co-stock-tabs [stockInformation]="stockInformation"
166
- [article]="articleExtended"
167
- [articleFlat]="articleFlat"
168
- (transferIconClicked)="handleStockTransferClick($event)"
169
- (sendMethodDialogClicked)="handleSendMethodClick($event)"
170
- [warehouses]="warehouses"
171
- ></co-stock-tabs>
172
- <div class="stock-transfer-wrapper">
173
- <co-dialog *ngIf="showStockTransfer"
174
- (closeClick)="showStockTransfer = false"
175
- [showCloseIcon]="true"
176
- [modal]="true"
177
- [headerTemplate]="headerTemplate"
178
- [footerTemplate]="footerTemplate">
179
- <ng-template #headerTemplate>
180
- <div class="co-dialog-header-title-wrapper">
181
- <co-icon [iconData]="iconCacheService.getIcon(icons.Cubes)"></co-icon>
182
- <div class="co-dialog-header-title" [textContent]="'TRANSFER_STOCK' | localize"></div>
183
- </div>
184
- </ng-template>
185
- <div class="dialog-wrapper">
186
- <co-stock-transfer (handleClick)="backToStock($event)"
187
- class="stock-transfer-dialog"
188
- [article]="stockTransferArticle"
189
- [articleToTransfer]="stockTransferArticleDetails"
190
- (handleStickerClicked)="handleStickerClicked.emit($event)"
191
- [articleWarehouse]="articleWarehouse"
192
- [allWarehouses]="allWarehouses">
193
- </co-stock-transfer>
194
- </div>
195
- <ng-template #footerTemplate>
196
- <div class="button-wrapper ok-cancel-buttons">
197
- <co-button class="save-button"
198
- (click)="handleOkClick(stockTransferArticleDetails)"
199
- [iconData]="iconCacheService.getIcon(icons.CheckDuotone)">
200
- </co-button>
201
- <co-button class="cancel-button"
202
- (click)="showStockTransfer = false"
203
- [iconData]="iconCacheService.getIcon(icons.CrossSkinny)">
204
- </co-button>
205
- </div>
206
- </ng-template>
207
- </co-dialog>
208
- </div>
209
-
210
- <co-send-method-dialog *ngIf="showSendMethodDialog">
211
-
212
- </co-send-method-dialog>
213
- </div>
214
- `,
215
- encapsulation: ViewEncapsulation.None
216
- },] }
217
- ];
218
- StockComponent.ctorParameters = () => [
219
- { type: StockService },
220
- { type: OptionsService },
221
- { type: DictionaryService },
222
- { type: ChangeDetectorRef },
223
- { type: LocalizeService },
224
- { type: SharedConnectorService },
225
- { type: IconCacheService }
226
- ];
227
- StockComponent.propDecorators = {
228
- translation: [{ type: Input }],
229
- handleStickerClicked: [{ type: Output }],
230
- article: [{ type: Input }],
231
- articleWarehouse: [{ type: Input }],
232
- allWarehouses: [{ type: Input }],
233
- okButtonClicked: [{ type: Output }],
234
- cancelButtonClicked: [{ type: Output }],
235
- handleClick: [{ type: Output }],
236
- showClass: [{ type: HostBinding, args: ["class.co-stock",] }]
237
- };
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svc3RvY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUV4RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDckYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBRzVFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUduRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBa0VsRSxNQUFNLE9BQU8sY0FBYztJQThEekIsWUFDVSxhQUEyQixFQUMzQixlQUErQixFQUMvQixXQUE4QixFQUM5QixlQUFrQyxFQUNsQyxnQkFBaUMsRUFDakMsVUFBa0MsRUFDbkMsZ0JBQWtDO1FBTmpDLGtCQUFhLEdB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QUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0Y7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7O1lBaFBGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJEVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBbEZPLFlBQVk7WUFPWixjQUFjO1lBRWQsaUJBQWlCO1lBbEJ2QixpQkFBaUI7WUFxQlgsZUFBZTtZQUVmLHNCQUFzQjtZQUd0QixnQkFBZ0I7OzswQkFvRXJCLEtBQUs7bUNBTUwsTUFBTTtzQkFHTixLQUFLOytCQVlMLEtBQUs7NEJBR0wsS0FBSzs4QkFHTCxNQUFNO2tDQUdOLE1BQU07MEJBRU4sTUFBTTt3QkFFTixXQUFXLFNBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtQcmludFN0b2NrU3RpY2tlcnN9IGZyb20gXCJAY29saWpuaXQvc2hhcmVkYXBpL2J1aWxkL21vZGVsL3ByaW50LXN0b2NrLXN0aWNrZXJzXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrIGFzIEFydGljbGVTdG9ja0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVFeHRlbmRlZH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZXh0ZW5kZWQuYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2t9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrXCI7XHJcbmltcG9ydCB7U3RvY2tIaXN0b3J5Qm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1oaXN0b3J5LmJvXCI7XHJcbmltcG9ydCB7QXJ0aWNsZURldGFpbHNCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZGV0YWlscy5ib1wiO1xyXG5pbXBvcnQge09wdGlvbnNTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9vcHRpb25zLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge1N0b2NrTWFuYWdlbWVudFdhcmVob3VzZXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1tYW5hZ2VtZW50LXdhcmVob3VzZXMuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2xhdGlvbn0gZnJvbSAnLi9sb2NhbGl6YXRpb24vdHJhbnNsYXRpb24nO1xyXG5pbXBvcnQge0xvY2FsaXplU2VydmljZX0gZnJvbSAnLi4vLi4vbG9jYWxpemF0aW9uL2xvY2FsaXplLnNlcnZpY2UnO1xyXG5pbXBvcnQge0FydGljbGVFeHRlbmRlZFJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtTaGFyZWRDb25uZWN0b3JTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQtY29ubmVjdG9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBcnRpY2xlRmxhdH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZmxhdC5ib1wiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tc3RvY2tcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RvY2staW5mby1jb250YWluZXJcIiAqbmdJZj1cImxvYWRlZCAmJiBhcnRpY2xlRXh0ZW5kZWRcIj5cclxuICAgICAgICA8Y28tc3RvY2staW5mb3JtYXRpb24gW2FydGljbGVdPVwiYXJ0aWNsZUV4dGVuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVTdG9ja1N0YXRlXT1cImFydGljbGVTdG9ja1N0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsbEF2YWlsYWJsZVN0b2NrSW5mb3JtYXRpb25dPVwiYWxsQXZhaWxhYmxlU3RvY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsVGVjaG5pY2FsU3RvY2tJbmZvcm1hdGlvbl09XCJhbGxUZWNobmljYWxTdG9ja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlY29ub21pY2FsU3RvY2tdPVwiZWNvbm9taWNhbFN0b2NrXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9jby1zdG9jay1pbmZvcm1hdGlvbj5cclxuICAgICAgICA8aHI+XHJcbiAgICAgICAgPGNvLXN0b2NrLXRhYnMgW3N0b2NrSW5mb3JtYXRpb25dPVwic3RvY2tJbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVdPVwiYXJ0aWNsZUV4dGVuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZUZsYXRdPVwiYXJ0aWNsZUZsYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICh0cmFuc2Zlckljb25DbGlja2VkKT1cImhhbmRsZVN0b2NrVHJhbnNmZXJDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQpPVwiaGFuZGxlU2VuZE1ldGhvZENsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFt3YXJlaG91c2VzXT1cIndhcmVob3VzZXNcIlxyXG4gICAgICAgID48L2NvLXN0b2NrLXRhYnM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLXRyYW5zZmVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxjby1kaWFsb2cgKm5nSWY9XCJzaG93U3RvY2tUcmFuc2ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cInNob3dTdG9ja1RyYW5zZmVyID0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgW21vZGFsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkN1YmVzKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidUUkFOU0ZFUl9TVE9DSycgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28tc3RvY2stdHJhbnNmZXIgKGhhbmRsZUNsaWNrKT1cImJhY2tUb1N0b2NrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0b2NrLXRyYW5zZmVyLWRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcnRpY2xlXT1cInN0b2NrVHJhbnNmZXJBcnRpY2xlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVUb1RyYW5zZmVyXT1cInN0b2NrVHJhbnNmZXJBcnRpY2xlRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYW5kbGVTdGlja2VyQ2xpY2tlZCk9XCJoYW5kbGVTdGlja2VyQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZVdhcmVob3VzZV09XCJhcnRpY2xlV2FyZWhvdXNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsbFdhcmVob3VzZXNdPVwiYWxsV2FyZWhvdXNlc1wiPlxyXG4gICAgICAgICAgICAgIDwvY28tc3RvY2stdHJhbnNmZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24td3JhcHBlciBvay1jYW5jZWwtYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInNhdmUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9rQ2xpY2soc3RvY2tUcmFuc2ZlckFydGljbGVEZXRhaWxzKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93U3RvY2tUcmFuc2ZlciA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc1NraW5ueSlcIj5cclxuICAgICAgICAgICAgICAgIDwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9jby1kaWFsb2c+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxjby1zZW5kLW1ldGhvZC1kaWFsb2cgKm5nSWY9XCJzaG93U2VuZE1ldGhvZERpYWxvZ1wiPlxyXG5cclxuICAgICAgICA8L2NvLXNlbmQtbWV0aG9kLWRpYWxvZz5cclxuICAgICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9ja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdHJhbnNsYXRpb24odmFsdWU6IFRyYW5zbGF0aW9uKSB7XHJcbiAgICB0aGlzLl9sb2NhbGl6ZVNlcnZpY2UudHJhbnNsYXRpb24gPSB2YWx1ZTtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGhhbmRsZVN0aWNrZXJDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFydGljbGUoYXJ0aWNsZU9yR29vZElkOiBBcnRpY2xlRXh0ZW5kZWQgfCBudW1iZXIpIHtcclxuICAgIGlmKGFydGljbGVPckdvb2RJZCBpbnN0YW5jZW9mIEFydGljbGVFeHRlbmRlZCkge1xyXG4gICAgICB0aGlzLmFydGljbGVFeHRlbmRlZCA9IGFydGljbGVPckdvb2RJZDtcclxuICAgICAgdGhpcy5fZ29vZElkID0gYXJ0aWNsZU9yR29vZElkLmdvb2RJZDtcclxuXHJcbiAgICB9IGVsc2UgaWYodHlwZW9mIGFydGljbGVPckdvb2RJZCA9PT0gXCJudW1iZXJcIiApIHtcclxuICAgICAgdGhpcy5fZ29vZElkID0gYXJ0aWNsZU9yR29vZElkO1xyXG4gICAgfVxyXG5cclxuICB9O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlV2FyZWhvdXNlOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhbGxXYXJlaG91c2VzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgb2tCdXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IGNhbmNlbEJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tc3RvY2tcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzaG93U3RvY2tJbmZvcm1hdGlvbkdyaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBzaG93U3RvY2tUcmFuc2ZlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzdG9ja0luZm9ybWF0aW9uOiBBcnRpY2xlU3RvY2tCb1tdID0gW107XHJcbiAgcHVibGljIHN0b2NrVHJhbnNmZXJBcnRpY2xlOiBBcnRpY2xlU3RvY2tCbztcclxuICBwdWJsaWMgc3RvY2tUcmFuc2ZlckFydGljbGVEZXRhaWxzOiBBcnRpY2xlRGV0YWlsc0JvO1xyXG4gIHB1YmxpYyBhcnRpY2xlRXh0ZW5kZWQ6IEFydGljbGVFeHRlbmRlZDtcclxuXHJcbiAgcHVibGljIGFydGljbGVGbGF0OkFydGljbGVGbGF0O1xyXG4gIHB1YmxpYyBzdG9ja0hpc3Rvcnk6IFN0b2NrSGlzdG9yeUJvW10gPSBbXTtcclxuICBwdWJsaWMgYWxsQXZhaWxhYmxlU3RvY2s6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGFsbFRlY2huaWNhbFN0b2NrOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBlY29ub21pY2FsU3RvY2s6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHNob3dTZW5kTWV0aG9kRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGFydGljbGVTdG9ja1N0YXRlOiBudW1iZXI7XHJcbiAgcHVibGljIHdhcmVob3VzZXM6IFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXNbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHByaXZhdGUgX2dvb2RJZDogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3N0b2NrU2VydmljZTogU3RvY2tTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9sb2NhbGl6ZVNlcnZpY2U6IExvY2FsaXplU2VydmljZSxcclxuICAgIHByaXZhdGUgX2Nvbm5lY3RvcjogU2hhcmVkQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnNMb2FkZWQuc3Vic2NyaWJlKGxvYWRlZCA9PiB0aGlzLl9oYW5kbGVTZXR0aW5nc0xvYWRlZChsb2FkZWQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlRXh0ZW5kZWQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmFydGljbGVGbGF0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2soZXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvY2tUcmFuc2ZlckFydGljbGVEZXRhaWxzID0gZXZlbnQ7XHJcbiAgICB0aGlzLnNob3dTdG9ja1RyYW5zZmVyID0gIXRoaXMuc2hvd1N0b2NrVHJhbnNmZXI7XHJcbiAgICB0aGlzLnNob3dTdG9ja0luZm9ybWF0aW9uR3JpZCA9ICF0aGlzLnNob3dTdG9ja0luZm9ybWF0aW9uR3JpZDtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5zdG9ja1N0aWNrZXJzID0gbmV3IFByaW50U3RvY2tTdGlja2VycygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbmRNZXRob2RDbGljayhldmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93U2VuZE1ldGhvZERpYWxvZyA9IHRydWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBoYW5kbGVPa0NsaWNrKGRhdGE6IEFydGljbGVEZXRhaWxzQm8pOiB2b2lkIHtcclxuICAgIGRhdGEuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgZGF0YS5lbnRyeURhdGUgPSBuZXcgRGF0ZTtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS51cGRhdGVBcnRpY2xlRGV0YWlscyhkYXRhKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMuaGFuZGxlQ2xpY2suZW1pdCgpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGJhY2tUb1N0b2NrKGdvb2RJZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWREYXRhKCk7XHJcbiAgICB0aGlzLnNob3dTdG9ja1RyYW5zZmVyID0gIXRoaXMuc2hvd1N0b2NrVHJhbnNmZXI7XHJcbiAgICB0aGlzLnNob3dTdG9ja0luZm9ybWF0aW9uR3JpZCA9ICF0aGlzLnNob3dTdG9ja0luZm9ybWF0aW9uR3JpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja0luZm9ybWF0aW9uKGdvb2RJZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBjb25zdCBhcnRpY2xlRGF0YTogQXJ0aWNsZVN0b2NrID0gbmV3IEFydGljbGVTdG9jaygpO1xyXG4gICAgYXJ0aWNsZURhdGEuZ29vZElkID0gZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICBhcnRpY2xlRGF0YS52aWV3S2luZCA9IFwiTVwiO1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrSW5mb3JtYXRpb24oYXJ0aWNsZURhdGEpLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5zdG9ja0luZm9ybWF0aW9uID0gcmVzdWx0O1xyXG4gICAgICB0aGlzLnN0b2NrSW5mb3JtYXRpb24uZm9yRWFjaCgoYXJ0aWNsZVN0b2NrKSA9PiB0aGlzLmFsbEF2YWlsYWJsZVN0b2NrICs9IGFydGljbGVTdG9jay5hdmFpbGFibGVTdG9jayk7XHJcbiAgICAgIHRoaXMuc3RvY2tJbmZvcm1hdGlvbi5mb3JFYWNoKChhcnRpY2xlU3RvY2spID0+IHRoaXMuYWxsVGVjaG5pY2FsU3RvY2sgKz0gYXJ0aWNsZVN0b2NrLnRlY2huaWNhbFN0b2NrKTtcclxuICAgICAgdGhpcy5zdG9ja0luZm9ybWF0aW9uLmZvckVhY2goKGFydGljbGVTdG9jaykgPT4gdGhpcy5lY29ub21pY2FsU3RvY2sgKz0gYXJ0aWNsZVN0b2NrLmVjb25vbWljYWxTdG9jayk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFydFN0b2NrU3RhdHVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydFN0b2NrU3RhdHVzKHRoaXMuYXJ0aWNsZUV4dGVuZGVkID8gdGhpcy5hcnRpY2xlRXh0ZW5kZWQuZ29vZElkIDogdGhpcy5fZ29vZElkKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMuYXJ0aWNsZVN0b2NrU3RhdGUgPSByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoKS50aGVuKCh3YXJlaG91c2VzKSA9PiB7XHJcbiAgICAgIHRoaXMud2FyZWhvdXNlcyA9IHdhcmVob3VzZXM7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlU2V0dGluZ3NMb2FkZWQobG9hZGVkOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAobG9hZGVkKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuX2luaXRDb25uZWN0aW9uKCkudGhlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfaW5pdENvbm5lY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLl9jb25uZWN0b3IuY29ubmVjdCgpO1xyXG4gICAgaWYgKHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMudXJsKSB7XHJcbiAgICAgIHRoaXMuX2RpY3Rpb25hcnkucm9vdFVybCA9IHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMudXJsLnJlcGxhY2UoXCIvYWpheHNlcnZpY2VcIiwgXCJcIik7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLl9kaWN0aW9uYXJ5LnNldERpY3Rpb25hcnkodGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5sYW5ndWFnZUNvZGUpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5sb2FkZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5sb2FkRGF0YSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBsb2FkRGF0YSgpIHtcclxuICAgIGlmKHRoaXMubG9hZGVkKSB7XHJcbiAgICAgIGlmKHRoaXMuX2dvb2RJZCAmJiAhdGhpcy5hcnRpY2xlRXh0ZW5kZWQpIHtcclxuICAgICAgICBsZXQgcmVxdWVzdDogQXJ0aWNsZUV4dGVuZGVkUmVxdWVzdCA9IG5ldyBBcnRpY2xlRXh0ZW5kZWRSZXF1ZXN0KCk7XHJcbiAgICAgICAgcmVxdWVzdC5nb29kSWQgPSB0aGlzLl9nb29kSWQ7XHJcbiAgICAgICAgdGhpcy5fc3RvY2tTZXJ2aWNlLnNlYXJjaEFydGljbGVzKHJlcXVlc3QpLnRoZW4oKGFydGljbGVFeHRlbmRlZDogQXJ0aWNsZUV4dGVuZGVkW10pID0+IHtcclxuICAgICAgICAgIGlmKGFydGljbGVFeHRlbmRlZFswXSkge1xyXG4gICAgICAgICAgICB0aGlzLmFydGljbGVFeHRlbmRlZCA9IGFydGljbGVFeHRlbmRlZFswXTtcclxuICAgICAgICAgICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydGljbGVGbGF0KGFydGljbGVFeHRlbmRlZFswXS5hcnRpY2xlTnVtYmVyKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hcnRpY2xlRmxhdCA9IHJlc3VsdDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgICB0aGlzLmdldEFydFN0b2NrU3RhdHVzKCk7XHJcbiAgICAgICAgdGhpcy5nZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCk7XHJcbiAgICAgICAgdGhpcy5nZXRTdG9ja0luZm9ybWF0aW9uKHRoaXMuYXJ0aWNsZUV4dGVuZGVkID8gdGhpcy5hcnRpY2xlRXh0ZW5kZWQuZ29vZElkIDogdGhpcy5fZ29vZElkKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
1
+ import { __awaiter } from "tslib";
2
+ import { ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from "@angular/core";
3
+ import { StockService } from "../../service/stock.service";
4
+ import { PrintStockStickers } from "@colijnit/sharedapi/build/model/print-stock-stickers";
5
+ import { ArticleExtended } from "@colijnit/articleapi/build/model/article-extended.bo";
6
+ import { ArticleStock } from "@colijnit/articleapi/build/model/article-stock";
7
+ import { OptionsService } from "../../service/options.service";
8
+ import { DictionaryService } from "../../service/dictionary.service";
9
+ import { LocalizeService } from '../../localization/localize.service';
10
+ import { ArticleExtendedRequest } from "@colijnit/articleapi/build/model/article-extended-request";
11
+ import { SharedConnectorService } from "../../service/shared-connector.service";
12
+ import { Icon } from "../../enum/icon.enum";
13
+ import { IconCacheService } from "../../service/icon-cache.service";
14
+ export class StockComponent {
15
+ constructor(_stockService, _optionsService, _dictionary, _changeDetector, _localizeService, _connector, iconCacheService) {
16
+ this._stockService = _stockService;
17
+ this._optionsService = _optionsService;
18
+ this._dictionary = _dictionary;
19
+ this._changeDetector = _changeDetector;
20
+ this._localizeService = _localizeService;
21
+ this._connector = _connector;
22
+ this.iconCacheService = iconCacheService;
23
+ this.icons = Icon;
24
+ this.handleStickerClicked = new EventEmitter();
25
+ this.articleWarehouse = [];
26
+ this.allWarehouses = [];
27
+ this.okButtonClicked = new EventEmitter();
28
+ this.cancelButtonClicked = new EventEmitter();
29
+ this.handleClick = new EventEmitter();
30
+ this.loaded = false;
31
+ this.showStockInformationGrid = true;
32
+ this.showStockTransfer = false;
33
+ this.stockInformation = [];
34
+ this.stockHistory = [];
35
+ this.allAvailableStock = 0;
36
+ this.allTechnicalStock = 0;
37
+ this.economicalStock = 0;
38
+ this.showSendMethodDialog = false;
39
+ this.warehouses = [];
40
+ this._subscriptions = [];
41
+ this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)));
42
+ }
43
+ set translation(value) {
44
+ this._localizeService.translation = value;
45
+ this._changeDetector.markForCheck();
46
+ }
47
+ set article(articleOrGoodId) {
48
+ if (articleOrGoodId instanceof ArticleExtended) {
49
+ this.articleExtended = articleOrGoodId;
50
+ this._goodId = articleOrGoodId.goodId;
51
+ }
52
+ else if (typeof articleOrGoodId === "number") {
53
+ this._goodId = articleOrGoodId;
54
+ }
55
+ }
56
+ ;
57
+ showClass() {
58
+ return true;
59
+ }
60
+ ngOnDestroy() {
61
+ this.articleExtended = undefined;
62
+ this.articleFlat = undefined;
63
+ this._subscriptions.forEach(subscription => subscription.unsubscribe());
64
+ }
65
+ ngOnInit() {
66
+ }
67
+ handleStockTransferClick(event) {
68
+ this.stockTransferArticleDetails = event;
69
+ this.showStockTransfer = !this.showStockTransfer;
70
+ this.showStockInformationGrid = !this.showStockInformationGrid;
71
+ this._stockService.stockStickers = new PrintStockStickers();
72
+ }
73
+ handleSendMethodClick(event) {
74
+ this.showSendMethodDialog = true;
75
+ }
76
+ handleOkClick(data) {
77
+ data.selected = true;
78
+ data.entryDate = new Date;
79
+ this._stockService.updateArticleDetails(data).then(result => {
80
+ this.handleClick.emit();
81
+ });
82
+ }
83
+ backToStock(goodId) {
84
+ this.loadData();
85
+ this.showStockTransfer = !this.showStockTransfer;
86
+ this.showStockInformationGrid = !this.showStockInformationGrid;
87
+ }
88
+ getStockInformation(goodId) {
89
+ const articleData = new ArticleStock();
90
+ articleData.goodId = goodId.toString();
91
+ articleData.viewKind = "M";
92
+ this._stockService.getStockInformation(articleData).then(result => {
93
+ this.stockInformation = result;
94
+ this.stockInformation.forEach((articleStock) => this.allAvailableStock += articleStock.availableStock);
95
+ this.stockInformation.forEach((articleStock) => this.allTechnicalStock += articleStock.technicalStock);
96
+ this.stockInformation.forEach((articleStock) => this.economicalStock += articleStock.economicalStock);
97
+ });
98
+ }
99
+ getArtStockStatus() {
100
+ this._stockService.getArtStockStatus(this.articleExtended ? this.articleExtended.goodId : this._goodId).then(result => {
101
+ this.articleStockState = result;
102
+ });
103
+ }
104
+ getStockManagementWarehouses() {
105
+ this._stockService.getStockManagementWarehouses().then((warehouses) => {
106
+ this.warehouses = warehouses;
107
+ });
108
+ }
109
+ _handleSettingsLoaded(loaded) {
110
+ return __awaiter(this, void 0, void 0, function* () {
111
+ if (loaded) {
112
+ yield this._initConnection().then();
113
+ }
114
+ });
115
+ }
116
+ _initConnection() {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ yield this._connector.connect();
119
+ if (this._optionsService.options.url) {
120
+ this._dictionary.rootUrl = this._optionsService.options.url.replace("/ajaxservice", "");
121
+ }
122
+ yield this._dictionary.setDictionary(this._optionsService.options.languageCode);
123
+ setTimeout(() => {
124
+ this._changeDetector.detectChanges();
125
+ });
126
+ this.loaded = true;
127
+ this.loadData();
128
+ });
129
+ }
130
+ loadData() {
131
+ if (this.loaded) {
132
+ if (this._goodId && !this.articleExtended) {
133
+ let request = new ArticleExtendedRequest();
134
+ request.goodId = this._goodId;
135
+ this._stockService.searchArticles(request).then((articleExtended) => {
136
+ if (articleExtended[0]) {
137
+ this.articleExtended = articleExtended[0];
138
+ this._stockService.getArticleFlat(articleExtended[0].articleNumber).then(result => {
139
+ this.articleFlat = result;
140
+ });
141
+ }
142
+ });
143
+ }
144
+ this.getArtStockStatus();
145
+ this.getStockManagementWarehouses();
146
+ this.getStockInformation(this.articleExtended ? this.articleExtended.goodId : this._goodId);
147
+ }
148
+ this._changeDetector.markForCheck();
149
+ this._changeDetector.detectChanges();
150
+ }
151
+ }
152
+ StockComponent.decorators = [
153
+ { type: Component, args: [{
154
+ selector: "co-stock",
155
+ template: `
156
+ <div class="stock-info-container" *ngIf="loaded && articleExtended">
157
+ <co-stock-information [article]="articleExtended"
158
+ [articleStockState]="articleStockState"
159
+ [allAvailableStockInformation]="allAvailableStock"
160
+ [allTechnicalStockInformation]="allTechnicalStock"
161
+ [economicalStock]="economicalStock"
162
+ >
163
+ </co-stock-information>
164
+ <co-stock-tabs [stockInformation]="stockInformation"
165
+ [article]="articleExtended"
166
+ [articleFlat]="articleFlat"
167
+ (transferIconClicked)="handleStockTransferClick($event)"
168
+ (sendMethodDialogClicked)="handleSendMethodClick($event)"
169
+ [warehouses]="warehouses"
170
+ ></co-stock-tabs>
171
+ <div class="stock-transfer-wrapper">
172
+ <co-dialog *ngIf="showStockTransfer"
173
+ (closeClick)="showStockTransfer = false"
174
+ [showCloseIcon]="true"
175
+ [modal]="true"
176
+ [headerTemplate]="headerTemplate"
177
+ [footerTemplate]="footerTemplate">
178
+ <ng-template #headerTemplate>
179
+ <div class="co-dialog-header-title-wrapper">
180
+ <co-icon [iconData]="iconCacheService.getIcon(icons.Cubes)"></co-icon>
181
+ <div class="co-dialog-header-title" [textContent]="'TRANSFER_STOCK' | localize"></div>
182
+ </div>
183
+ </ng-template>
184
+ <div class="dialog-wrapper">
185
+ <co-stock-transfer (handleClick)="backToStock($event)"
186
+ class="stock-transfer-dialog"
187
+ [article]="stockTransferArticle"
188
+ [articleToTransfer]="stockTransferArticleDetails"
189
+ (handleStickerClicked)="handleStickerClicked.emit($event)"
190
+ [articleWarehouse]="articleWarehouse"
191
+ [allWarehouses]="allWarehouses">
192
+ </co-stock-transfer>
193
+ </div>
194
+ <ng-template #footerTemplate>
195
+ <div class="button-wrapper ok-cancel-buttons">
196
+ <co-button class="save-button"
197
+ (click)="handleOkClick(stockTransferArticleDetails)"
198
+ [iconData]="iconCacheService.getIcon(icons.CheckDuotone)">
199
+ </co-button>
200
+ <co-button class="cancel-button"
201
+ (click)="showStockTransfer = false"
202
+ [iconData]="iconCacheService.getIcon(icons.CrossSkinny)">
203
+ </co-button>
204
+ </div>
205
+ </ng-template>
206
+ </co-dialog>
207
+ </div>
208
+
209
+ <co-send-method-dialog *ngIf="showSendMethodDialog">
210
+
211
+ </co-send-method-dialog>
212
+ </div>
213
+ `,
214
+ encapsulation: ViewEncapsulation.None
215
+ },] }
216
+ ];
217
+ StockComponent.ctorParameters = () => [
218
+ { type: StockService },
219
+ { type: OptionsService },
220
+ { type: DictionaryService },
221
+ { type: ChangeDetectorRef },
222
+ { type: LocalizeService },
223
+ { type: SharedConnectorService },
224
+ { type: IconCacheService }
225
+ ];
226
+ StockComponent.propDecorators = {
227
+ translation: [{ type: Input }],
228
+ handleStickerClicked: [{ type: Output }],
229
+ article: [{ type: Input }],
230
+ articleWarehouse: [{ type: Input }],
231
+ allWarehouses: [{ type: Input }],
232
+ okButtonClicked: [{ type: Output }],
233
+ cancelButtonClicked: [{ type: Output }],
234
+ handleClick: [{ type: Output }],
235
+ showClass: [{ type: HostBinding, args: ["class.co-stock",] }]
236
+ };
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svc3RvY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUV4RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDckYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBRzVFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUduRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBaUVsRSxNQUFNLE9BQU8sY0FBYztJQThEekIsWUFDVSxhQUEyQixFQUMzQixlQUErQixFQUMvQixXQUE4QixFQUM5QixlQUFrQyxFQUNsQyxnQkFBaUMsRUFDakMsVUFBa0MsRUFDbkMsZ0JBQWtDO1FBTmpDLGtCQUFhLEdB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QUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0Y7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7O1lBL09GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMERUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFqRk8sWUFBWTtZQU9aLGNBQWM7WUFFZCxpQkFBaUI7WUFsQnZCLGlCQUFpQjtZQXFCWCxlQUFlO1lBRWYsc0JBQXNCO1lBR3RCLGdCQUFnQjs7OzBCQW1FckIsS0FBSzttQ0FNTCxNQUFNO3NCQUdOLEtBQUs7K0JBWUwsS0FBSzs0QkFHTCxLQUFLOzhCQUdMLE1BQU07a0NBR04sTUFBTTswQkFFTixNQUFNO3dCQUVOLFdBQVcsU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcbmltcG9ydCB7UHJpbnRTdG9ja1N0aWNrZXJzfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9tb2RlbC9wcmludC1zdG9jay1zdGlja2Vyc1wiO1xuaW1wb3J0IHtBcnRpY2xlU3RvY2sgYXMgQXJ0aWNsZVN0b2NrQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrLmJvXCI7XG5pbXBvcnQge0FydGljbGVFeHRlbmRlZH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZXh0ZW5kZWQuYm9cIjtcbmltcG9ydCB7QXJ0aWNsZVN0b2NrfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9ja1wiO1xuaW1wb3J0IHtTdG9ja0hpc3RvcnlCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWhpc3RvcnkuYm9cIjtcbmltcG9ydCB7QXJ0aWNsZURldGFpbHNCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZGV0YWlscy5ib1wiO1xuaW1wb3J0IHtPcHRpb25zU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uvb3B0aW9ucy5zZXJ2aWNlXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xuaW1wb3J0IHtTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbWFuYWdlbWVudC13YXJlaG91c2VzLmJvXCI7XG5pbXBvcnQge1RyYW5zbGF0aW9ufSBmcm9tICcuL2xvY2FsaXphdGlvbi90cmFuc2xhdGlvbic7XG5pbXBvcnQge0xvY2FsaXplU2VydmljZX0gZnJvbSAnLi4vLi4vbG9jYWxpemF0aW9uL2xvY2FsaXplLnNlcnZpY2UnO1xuaW1wb3J0IHtBcnRpY2xlRXh0ZW5kZWRSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1leHRlbmRlZC1yZXF1ZXN0XCI7XG5pbXBvcnQge1NoYXJlZENvbm5lY3RvclNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3NoYXJlZC1jb25uZWN0b3Iuc2VydmljZVwiO1xuaW1wb3J0IHtBcnRpY2xlRmxhdH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZmxhdC5ib1wiO1xuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjby1zdG9ja1wiLFxuICB0ZW1wbGF0ZTogYFxuICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWluZm8tY29udGFpbmVyXCIgKm5nSWY9XCJsb2FkZWQgJiYgYXJ0aWNsZUV4dGVuZGVkXCI+XG4gICAgICAgIDxjby1zdG9jay1pbmZvcm1hdGlvbiBbYXJ0aWNsZV09XCJhcnRpY2xlRXh0ZW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVTdG9ja1N0YXRlXT1cImFydGljbGVTdG9ja1N0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbGxBdmFpbGFibGVTdG9ja0luZm9ybWF0aW9uXT1cImFsbEF2YWlsYWJsZVN0b2NrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbGxUZWNobmljYWxTdG9ja0luZm9ybWF0aW9uXT1cImFsbFRlY2huaWNhbFN0b2NrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlY29ub21pY2FsU3RvY2tdPVwiZWNvbm9taWNhbFN0b2NrXCJcbiAgICAgICAgPlxuICAgICAgICA8L2NvLXN0b2NrLWluZm9ybWF0aW9uPlxuICAgICAgICA8Y28tc3RvY2stdGFicyBbc3RvY2tJbmZvcm1hdGlvbl09XCJzdG9ja0luZm9ybWF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVdPVwiYXJ0aWNsZUV4dGVuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVGbGF0XT1cImFydGljbGVGbGF0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5zZmVySWNvbkNsaWNrZWQpPVwiaGFuZGxlU3RvY2tUcmFuc2ZlckNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAoc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQpPVwiaGFuZGxlU2VuZE1ldGhvZENsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICBbd2FyZWhvdXNlc109XCJ3YXJlaG91c2VzXCJcbiAgICAgICAgPjwvY28tc3RvY2stdGFicz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLXRyYW5zZmVyLXdyYXBwZXJcIj5cbiAgICAgICAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd1N0b2NrVHJhbnNmZXJcIlxuICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd1N0b2NrVHJhbnNmZXIgPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFttb2RhbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkN1YmVzKVwiPjwvY28taWNvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCInVFJBTlNGRVJfU1RPQ0snIHwgbG9jYWxpemVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxjby1zdG9jay10cmFuc2ZlciAoaGFuZGxlQ2xpY2spPVwiYmFja1RvU3RvY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0b2NrLXRyYW5zZmVyLWRpYWxvZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZV09XCJzdG9ja1RyYW5zZmVyQXJ0aWNsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZVRvVHJhbnNmZXJdPVwic3RvY2tUcmFuc2ZlckFydGljbGVEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYW5kbGVTdGlja2VyQ2xpY2tlZCk9XCJoYW5kbGVTdGlja2VyQ2xpY2tlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVXYXJlaG91c2VdPVwiYXJ0aWNsZVdhcmVob3VzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsV2FyZWhvdXNlc109XCJhbGxXYXJlaG91c2VzXCI+XG4gICAgICAgICAgICAgIDwvY28tc3RvY2stdHJhbnNmZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24td3JhcHBlciBvay1jYW5jZWwtYnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT2tDbGljayhzdG9ja1RyYW5zZmVyQXJ0aWNsZURldGFpbHMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiPlxuICAgICAgICAgICAgICAgIDwvY28tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93U3RvY2tUcmFuc2ZlciA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3NTa2lubnkpXCI+XG4gICAgICAgICAgICAgICAgPC9jby1idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2NvLWRpYWxvZz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGNvLXNlbmQtbWV0aG9kLWRpYWxvZyAqbmdJZj1cInNob3dTZW5kTWV0aG9kRGlhbG9nXCI+XG5cbiAgICAgICAgPC9jby1zZW5kLW1ldGhvZC1kaWFsb2c+XG4gICAgICA8L2Rpdj5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTdG9ja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdHJhbnNsYXRpb24odmFsdWU6IFRyYW5zbGF0aW9uKSB7XG4gICAgdGhpcy5fbG9jYWxpemVTZXJ2aWNlLnRyYW5zbGF0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGhhbmRsZVN0aWNrZXJDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFydGljbGUoYXJ0aWNsZU9yR29vZElkOiBBcnRpY2xlRXh0ZW5kZWQgfCBudW1iZXIpIHtcbiAgICBpZihhcnRpY2xlT3JHb29kSWQgaW5zdGFuY2VvZiBBcnRpY2xlRXh0ZW5kZWQpIHtcbiAgICAgIHRoaXMuYXJ0aWNsZUV4dGVuZGVkID0gYXJ0aWNsZU9yR29vZElkO1xuICAgICAgdGhpcy5fZ29vZElkID0gYXJ0aWNsZU9yR29vZElkLmdvb2RJZDtcblxuICAgIH0gZWxzZSBpZih0eXBlb2YgYXJ0aWNsZU9yR29vZElkID09PSBcIm51bWJlclwiICkge1xuICAgICAgdGhpcy5fZ29vZElkID0gYXJ0aWNsZU9yR29vZElkO1xuICAgIH1cblxuICB9O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcnRpY2xlV2FyZWhvdXNlOiBhbnlbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbGxXYXJlaG91c2VzOiBhbnlbXSA9IFtdO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgb2tCdXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGNhbmNlbEJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgcHVibGljIGhhbmRsZUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tc3RvY2tcIilcbiAgcHVibGljIHNob3dDbGFzcygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgc2hvd1N0b2NrSW5mb3JtYXRpb25HcmlkOiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIHNob3dTdG9ja1RyYW5zZmVyOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzdG9ja0luZm9ybWF0aW9uOiBBcnRpY2xlU3RvY2tCb1tdID0gW107XG4gIHB1YmxpYyBzdG9ja1RyYW5zZmVyQXJ0aWNsZTogQXJ0aWNsZVN0b2NrQm87XG4gIHB1YmxpYyBzdG9ja1RyYW5zZmVyQXJ0aWNsZURldGFpbHM6IEFydGljbGVEZXRhaWxzQm87XG4gIHB1YmxpYyBhcnRpY2xlRXh0ZW5kZWQ6IEFydGljbGVFeHRlbmRlZDtcblxuICBwdWJsaWMgYXJ0aWNsZUZsYXQ6QXJ0aWNsZUZsYXQ7XG4gIHB1YmxpYyBzdG9ja0hpc3Rvcnk6IFN0b2NrSGlzdG9yeUJvW10gPSBbXTtcbiAgcHVibGljIGFsbEF2YWlsYWJsZVN0b2NrOiBudW1iZXIgPSAwO1xuICBwdWJsaWMgYWxsVGVjaG5pY2FsU3RvY2s6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBlY29ub21pY2FsU3RvY2s6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBzaG93U2VuZE1ldGhvZERpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYXJ0aWNsZVN0b2NrU3RhdGU6IG51bWJlcjtcbiAgcHVibGljIHdhcmVob3VzZXM6IFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXNbXSA9IFtdO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgX2dvb2RJZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N0b2NrU2VydmljZTogU3RvY2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgX29wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5U2VydmljZSxcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfbG9jYWxpemVTZXJ2aWNlOiBMb2NhbGl6ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfY29ubmVjdG9yOiBTaGFyZWRDb25uZWN0b3JTZXJ2aWNlLFxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnNMb2FkZWQuc3Vic2NyaWJlKGxvYWRlZCA9PiB0aGlzLl9oYW5kbGVTZXR0aW5nc0xvYWRlZChsb2FkZWQpKSxcbiAgICApXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFydGljbGVFeHRlbmRlZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFydGljbGVGbGF0ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlU3RvY2tUcmFuc2ZlckNsaWNrKGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zdG9ja1RyYW5zZmVyQXJ0aWNsZURldGFpbHMgPSBldmVudDtcbiAgICB0aGlzLnNob3dTdG9ja1RyYW5zZmVyID0gIXRoaXMuc2hvd1N0b2NrVHJhbnNmZXI7XG4gICAgdGhpcy5zaG93U3RvY2tJbmZvcm1hdGlvbkdyaWQgPSAhdGhpcy5zaG93U3RvY2tJbmZvcm1hdGlvbkdyaWQ7XG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLnN0b2NrU3RpY2tlcnMgPSBuZXcgUHJpbnRTdG9ja1N0aWNrZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlU2VuZE1ldGhvZENsaWNrKGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zaG93U2VuZE1ldGhvZERpYWxvZyA9IHRydWU7XG4gIH1cbiAgcHVibGljIGhhbmRsZU9rQ2xpY2soZGF0YTogQXJ0aWNsZURldGFpbHNCbyk6IHZvaWQge1xuICAgIGRhdGEuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIGRhdGEuZW50cnlEYXRlID0gbmV3IERhdGU7XG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLnVwZGF0ZUFydGljbGVEZXRhaWxzKGRhdGEpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlQ2xpY2suZW1pdCgpO1xuICAgIH0pO1xuXG4gIH1cblxuICBwdWJsaWMgYmFja1RvU3RvY2soZ29vZElkOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgdGhpcy5zaG93U3RvY2tUcmFuc2ZlciA9ICF0aGlzLnNob3dTdG9ja1RyYW5zZmVyO1xuICAgIHRoaXMuc2hvd1N0b2NrSW5mb3JtYXRpb25HcmlkID0gIXRoaXMuc2hvd1N0b2NrSW5mb3JtYXRpb25HcmlkO1xuICB9XG5cbiAgcHVibGljIGdldFN0b2NrSW5mb3JtYXRpb24oZ29vZElkOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBhcnRpY2xlRGF0YTogQXJ0aWNsZVN0b2NrID0gbmV3IEFydGljbGVTdG9jaygpO1xuICAgIGFydGljbGVEYXRhLmdvb2RJZCA9IGdvb2RJZC50b1N0cmluZygpO1xuICAgIGFydGljbGVEYXRhLnZpZXdLaW5kID0gXCJNXCI7XG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrSW5mb3JtYXRpb24oYXJ0aWNsZURhdGEpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgIHRoaXMuc3RvY2tJbmZvcm1hdGlvbiA9IHJlc3VsdDtcbiAgICAgIHRoaXMuc3RvY2tJbmZvcm1hdGlvbi5mb3JFYWNoKChhcnRpY2xlU3RvY2spID0+IHRoaXMuYWxsQXZhaWxhYmxlU3RvY2sgKz0gYXJ0aWNsZVN0b2NrLmF2YWlsYWJsZVN0b2NrKTtcbiAgICAgIHRoaXMuc3RvY2tJbmZvcm1hdGlvbi5mb3JFYWNoKChhcnRpY2xlU3RvY2spID0+IHRoaXMuYWxsVGVjaG5pY2FsU3RvY2sgKz0gYXJ0aWNsZVN0b2NrLnRlY2huaWNhbFN0b2NrKTtcbiAgICAgIHRoaXMuc3RvY2tJbmZvcm1hdGlvbi5mb3JFYWNoKChhcnRpY2xlU3RvY2spID0+IHRoaXMuZWNvbm9taWNhbFN0b2NrICs9IGFydGljbGVTdG9jay5lY29ub21pY2FsU3RvY2spO1xuXG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBnZXRBcnRTdG9ja1N0YXR1cygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0U3RvY2tTdGF0dXModGhpcy5hcnRpY2xlRXh0ZW5kZWQgPyB0aGlzLmFydGljbGVFeHRlbmRlZC5nb29kSWQgOiB0aGlzLl9nb29kSWQpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgIHRoaXMuYXJ0aWNsZVN0b2NrU3RhdGUgPSByZXN1bHQ7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcygpLnRoZW4oKHdhcmVob3VzZXMpID0+IHtcbiAgICAgIHRoaXMud2FyZWhvdXNlcyA9IHdhcmVob3VzZXM7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZVNldHRpbmdzTG9hZGVkKGxvYWRlZDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChsb2FkZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2luaXRDb25uZWN0aW9uKCkudGhlbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2luaXRDb25uZWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5jb25uZWN0KCk7XG4gICAgaWYgKHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMudXJsKSB7XG4gICAgICB0aGlzLl9kaWN0aW9uYXJ5LnJvb3RVcmwgPSB0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLnVybC5yZXBsYWNlKFwiL2FqYXhzZXJ2aWNlXCIsIFwiXCIpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLl9kaWN0aW9uYXJ5LnNldERpY3Rpb25hcnkodGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5sYW5ndWFnZUNvZGUpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuXG4gIHB1YmxpYyBsb2FkRGF0YSgpIHtcbiAgICBpZih0aGlzLmxvYWRlZCkge1xuICAgICAgaWYodGhpcy5fZ29vZElkICYmICF0aGlzLmFydGljbGVFeHRlbmRlZCkge1xuICAgICAgICBsZXQgcmVxdWVzdDogQXJ0aWNsZUV4dGVuZGVkUmVxdWVzdCA9IG5ldyBBcnRpY2xlRXh0ZW5kZWRSZXF1ZXN0KCk7XG4gICAgICAgIHJlcXVlc3QuZ29vZElkID0gdGhpcy5fZ29vZElkO1xuICAgICAgICB0aGlzLl9zdG9ja1NlcnZpY2Uuc2VhcmNoQXJ0aWNsZXMocmVxdWVzdCkudGhlbigoYXJ0aWNsZUV4dGVuZGVkOiBBcnRpY2xlRXh0ZW5kZWRbXSkgPT4ge1xuICAgICAgICAgIGlmKGFydGljbGVFeHRlbmRlZFswXSkge1xuICAgICAgICAgICAgdGhpcy5hcnRpY2xlRXh0ZW5kZWQgPSBhcnRpY2xlRXh0ZW5kZWRbMF07XG4gICAgICAgICAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZUZsYXQoYXJ0aWNsZUV4dGVuZGVkWzBdLmFydGljbGVOdW1iZXIpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5hcnRpY2xlRmxhdCA9IHJlc3VsdDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICAgIHRoaXMuZ2V0QXJ0U3RvY2tTdGF0dXMoKTtcbiAgICAgICAgdGhpcy5nZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCk7XG4gICAgICAgIHRoaXMuZ2V0U3RvY2tJbmZvcm1hdGlvbih0aGlzLmFydGljbGVFeHRlbmRlZCA/IHRoaXMuYXJ0aWNsZUV4dGVuZGVkLmdvb2RJZCA6IHRoaXMuX2dvb2RJZCk7XG4gICAgfVxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG59XG4iXX0=