@colijnit/sharedcomponents 1.0.64 → 1.0.66

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 (488) hide show
  1. package/3rdpartylicenses.txt +1200 -0
  2. package/README.md +24 -24
  3. package/bundles/colijnit-sharedcomponents.umd.js +10078 -9926
  4. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  5. package/colijnit-sharedcomponents.d.ts +92 -91
  6. package/colijnit-sharedcomponents.metadata.json +1 -1
  7. package/esm2015/colijnit-sharedcomponents.js +93 -92
  8. package/esm2015/lib/assets/dictionary/text.properties.js +11 -11
  9. package/esm2015/lib/businessobject/build-images-and-documentation-result.js +2 -2
  10. package/esm2015/lib/businessobject/co-document-right.bo.js +3 -3
  11. package/esm2015/lib/businessobject/drag-drop-container-element.js +2 -2
  12. package/esm2015/lib/businessobject/drag-drop-container.js +7 -7
  13. package/esm2015/lib/components/activity-list/activity-list.component.js +130 -130
  14. package/esm2015/lib/components/activity-list/activity-list.module.js +24 -24
  15. package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.component.js +47 -47
  16. package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.module.js +20 -20
  17. package/esm2015/lib/components/date-planning/component/agenda/agenda-base-view.component.js +61 -61
  18. package/esm2015/lib/components/date-planning/component/agenda/agenda-day-view.component.js +36 -36
  19. package/esm2015/lib/components/date-planning/component/agenda/agenda-event.component.js +56 -56
  20. package/esm2015/lib/components/date-planning/component/agenda/agenda-events.component.js +47 -47
  21. package/esm2015/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.js +68 -68
  22. package/esm2015/lib/components/date-planning/component/agenda/agenda-header.component.js +243 -243
  23. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-cell.component.js +36 -36
  24. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.js +50 -50
  25. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view.component.js +46 -46
  26. package/esm2015/lib/components/date-planning/component/agenda/agenda-month-view.component.js +61 -61
  27. package/esm2015/lib/components/date-planning/component/agenda/agenda-select-event.component.js +39 -39
  28. package/esm2015/lib/components/date-planning/component/agenda/agenda-view.component.js +35 -35
  29. package/esm2015/lib/components/date-planning/component/agenda/agenda-week-select-view.component.js +64 -64
  30. package/esm2015/lib/components/date-planning/component/agenda/agenda-week-view.component.js +48 -48
  31. package/esm2015/lib/components/date-planning/component/agenda/view-select.component.js +42 -42
  32. package/esm2015/lib/components/date-planning/component/calendar/calendar-all-months.component.js +34 -34
  33. package/esm2015/lib/components/date-planning/component/calendar/calendar-all-years.component.js +48 -48
  34. package/esm2015/lib/components/date-planning/component/calendar/calendar-header.component.js +107 -107
  35. package/esm2015/lib/components/date-planning/component/calendar/calendar-view.component.js +178 -178
  36. package/esm2015/lib/components/date-planning/component/calendar/calendar.component.js +34 -34
  37. package/esm2015/lib/components/date-planning/date-planning.component.js +113 -113
  38. package/esm2015/lib/components/date-planning/date-planning.module.js +63 -63
  39. package/esm2015/lib/components/docsign/component/signature/signature.component.js +75 -75
  40. package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +44 -44
  41. package/esm2015/lib/components/docsign/docsign.component.js +242 -242
  42. package/esm2015/lib/components/docsign/docsign.module.js +23 -23
  43. package/esm2015/lib/components/file-upload/file-upload.component.js +189 -189
  44. package/esm2015/lib/components/file-upload/file-upload.module.js +25 -25
  45. package/esm2015/lib/components/file-upload-popup/file-upload-popup.component.js +397 -397
  46. package/esm2015/lib/components/file-upload-popup/file-upload-popup.module.js +30 -30
  47. package/esm2015/lib/components/files-upload/components/base-file-upload.component.js +469 -469
  48. package/esm2015/lib/components/files-upload/components/drag-drop-container.component.js +115 -115
  49. package/esm2015/lib/components/files-upload/files-upload.component.js +131 -131
  50. package/esm2015/lib/components/files-upload/files-upload.module.js +47 -47
  51. package/esm2015/lib/components/image-display/image-display.component.js +36 -36
  52. package/esm2015/lib/components/image-display/image-display.module.js +23 -23
  53. package/esm2015/lib/components/key-pad/key-pad.component.js +200 -200
  54. package/esm2015/lib/components/key-pad/key-pad.module.js +22 -22
  55. package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +74 -74
  56. package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +21 -21
  57. package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +59 -59
  58. package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +19 -19
  59. package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.component.js +89 -89
  60. package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.module.js +21 -21
  61. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.js +79 -79
  62. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.js +21 -21
  63. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.js +85 -85
  64. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.js +21 -21
  65. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.js +64 -64
  66. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.js +26 -26
  67. package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.js +40 -40
  68. package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.js +23 -23
  69. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.js +61 -61
  70. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.js +28 -28
  71. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.component.js +38 -38
  72. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.module.js +21 -21
  73. package/esm2015/lib/components/send-method-dialog/model/email-address-viewmodel.js +7 -7
  74. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +258 -258
  75. package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +35 -35
  76. package/esm2015/lib/components/send-method-dialog/send-method-params.interface.js +2 -2
  77. package/esm2015/lib/components/send-method-dialog/service/send-method.service.js +59 -59
  78. package/esm2015/lib/components/simple-tags/simple-tags.component.js +229 -229
  79. package/esm2015/lib/components/simple-tags/simple-tags.module.js +26 -26
  80. package/esm2015/lib/components/statusbar/statusbar-popup.component.js +97 -97
  81. package/esm2015/lib/components/statusbar/statusbar.component.js +81 -81
  82. package/esm2015/lib/components/statusbar/statusbar.module.js +27 -27
  83. package/esm2015/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.js +47 -47
  84. package/esm2015/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.js +47 -47
  85. package/esm2015/lib/components/stock/components/order-stock-history/order-stock-history.component.js +47 -47
  86. package/esm2015/lib/components/stock/components/order-stock-tab/order-stock-tab.component.js +47 -47
  87. package/esm2015/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.js +47 -47
  88. package/esm2015/lib/components/stock/components/order-tab/order-tab.component.js +67 -67
  89. package/esm2015/lib/components/stock/components/stock-history/stock-history.component.js +53 -53
  90. package/esm2015/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.js +210 -0
  91. package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +248 -251
  92. package/esm2015/lib/components/stock/components/stock-prognose/stock-prognose.component.js +52 -52
  93. package/esm2015/lib/components/stock/components/stock-tab/stock-tab.component.js +39 -39
  94. package/esm2015/lib/components/stock/localization/translation.js +74 -72
  95. package/esm2015/lib/components/stock/stock-history-tabs/stock-history-tabs.component.js +33 -33
  96. package/esm2015/lib/components/stock/stock-information/stock-information.component.js +48 -48
  97. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +457 -457
  98. package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +251 -243
  99. package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +2 -2
  100. package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +72 -72
  101. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +160 -160
  102. package/esm2015/lib/components/stock/stock.component.js +237 -237
  103. package/esm2015/lib/components/stock/stock.module.js +82 -80
  104. package/esm2015/lib/components/stock-statusbar/stock-statusbar.component.js +23 -23
  105. package/esm2015/lib/components/stock-statusbar/stock-statusbar.module.js +19 -19
  106. package/esm2015/lib/components/tab-bar/tab-bar.component.js +90 -90
  107. package/esm2015/lib/components/tab-bar/tab-bar.module.js +21 -21
  108. package/esm2015/lib/components/tab-bar/tab.interface.js +2 -2
  109. package/esm2015/lib/components/tile-renderer/tile-render.component.js +80 -80
  110. package/esm2015/lib/components/tile-renderer/tile-render.module.js +26 -26
  111. package/esm2015/lib/decorator/input-boolean.decorator.js +34 -34
  112. package/esm2015/lib/enum/calendar-view.enum.js +9 -9
  113. package/esm2015/lib/enum/document-email-report.enum.js +18 -18
  114. package/esm2015/lib/enum/domain-multiple-name.enum.js +13 -13
  115. package/esm2015/lib/enum/file-type.js +14 -14
  116. package/esm2015/lib/enum/files-upload-config-objects.js +3 -3
  117. package/esm2015/lib/enum/gauge-color.enum.js +10 -10
  118. package/esm2015/lib/enum/icon.enum.js +49 -48
  119. package/esm2015/lib/enum/internal-param.enum.js +38 -38
  120. package/esm2015/lib/enum/keyboard-code.enum.js +32 -32
  121. package/esm2015/lib/enum/language-code.enum.js +8 -8
  122. package/esm2015/lib/enum/month.enum.js +17 -17
  123. package/esm2015/lib/enum/read-write-access-config-names.enum.js +2 -2
  124. package/esm2015/lib/enum/table-name.enum.js +86 -86
  125. package/esm2015/lib/enum/tag-category.enum.js +22 -22
  126. package/esm2015/lib/enum/tags-component-config-names.js +2 -2
  127. package/esm2015/lib/enum/thumb-three-way-state.js +19 -19
  128. package/esm2015/lib/enum/tile-size-type.js +7 -7
  129. package/esm2015/lib/enum/time-period.enum.js +11 -11
  130. package/esm2015/lib/event/co-drag-event.js +2 -2
  131. package/esm2015/lib/event/co-drop-event.js +2 -2
  132. package/esm2015/lib/interface/key-value-pair.js +2 -2
  133. package/esm2015/lib/interface/operation-callback-simple-function.js +4 -4
  134. package/esm2015/lib/localization/localization.module.js +19 -19
  135. package/esm2015/lib/localization/localize.pipe.js +26 -26
  136. package/esm2015/lib/localization/localize.service.js +30 -30
  137. package/esm2015/lib/localization/translation.js +3 -3
  138. package/esm2015/lib/model/agenda-event-per-day.model.js +6 -6
  139. package/esm2015/lib/model/agenda-event.model.js +8 -8
  140. package/esm2015/lib/model/agenda-null-objects.js +11 -11
  141. package/esm2015/lib/model/constant/all-months.js +17 -17
  142. package/esm2015/lib/model/date-range.js +5 -5
  143. package/esm2015/lib/model/day.model.js +7 -7
  144. package/esm2015/lib/model/icon-svg.js +48 -47
  145. package/esm2015/lib/model/month.model.js +11 -11
  146. package/esm2015/lib/model/send-method.js +8 -8
  147. package/esm2015/lib/model/settings.js +4 -4
  148. package/esm2015/lib/model/tag-tree-item.bo.js +16 -16
  149. package/esm2015/lib/model/time-window.bo.js +26 -26
  150. package/esm2015/lib/model/tree-object.js +15 -15
  151. package/esm2015/lib/model/week.model.js +6 -6
  152. package/esm2015/lib/model/weekday.model.js +10 -10
  153. package/esm2015/lib/pipe/array-number.pipe.js +15 -15
  154. package/esm2015/lib/pipe/file-type-image.pipe.js +51 -51
  155. package/esm2015/lib/pipe/master-pipes.js +9 -9
  156. package/esm2015/lib/pipe/ucfirst.pipe.js +16 -16
  157. package/esm2015/lib/service/dictionary.service.js +76 -76
  158. package/esm2015/lib/service/drag-drop.service.js +365 -365
  159. package/esm2015/lib/service/icon-cache.service.js +51 -51
  160. package/esm2015/lib/service/options.service.js +48 -48
  161. package/esm2015/lib/service/shared-connector.service.js +433 -433
  162. package/esm2015/lib/service/shared.service.js +60 -60
  163. package/esm2015/lib/service/stock.service.js +110 -110
  164. package/esm2015/lib/utils/array-utils.js +202 -202
  165. package/esm2015/lib/utils/calendar.utils.js +68 -68
  166. package/esm2015/lib/utils/check-precision-and-scale-result.js +2 -2
  167. package/esm2015/lib/utils/check-within-stepped-bounds-result.js +2 -2
  168. package/esm2015/lib/utils/co-document-shared-field-logic.js +50 -50
  169. package/esm2015/lib/utils/date-utils.js +264 -264
  170. package/esm2015/lib/utils/enum-utils.js +128 -128
  171. package/esm2015/lib/utils/function/not-nill.function.js +5 -5
  172. package/esm2015/lib/utils/is-nill.function.js +5 -5
  173. package/esm2015/lib/utils/map-utils.js +41 -41
  174. package/esm2015/lib/utils/number-utils.js +390 -390
  175. package/esm2015/lib/utils/object-utils.js +278 -278
  176. package/esm2015/lib/utils/ref-code-utils.js +49 -49
  177. package/esm2015/lib/utils/string-utils.js +93 -93
  178. package/esm2015/public-api.js +31 -31
  179. package/favicon.ico +0 -0
  180. package/fesm2015/colijnit-sharedcomponents.js +10622 -10408
  181. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  182. package/index.html +12 -0
  183. package/lib/assets/dictionary/text.properties.d.ts +3 -3
  184. package/lib/businessobject/build-images-and-documentation-result.d.ts +5 -5
  185. package/lib/businessobject/co-document-right.bo.d.ts +6 -6
  186. package/lib/businessobject/drag-drop-container-element.d.ts +6 -6
  187. package/lib/businessobject/drag-drop-container.d.ts +6 -6
  188. package/lib/components/access/read-write-access.scss +25 -25
  189. package/lib/components/access/style/_layout.scss +23 -23
  190. package/lib/components/access/style/_material-definition.scss +12 -12
  191. package/lib/components/access/style/_theme.scss +4 -4
  192. package/lib/components/access/style/material.scss +4 -4
  193. package/lib/components/activity-list/activity-list.component.d.ts +33 -33
  194. package/lib/components/activity-list/activity-list.module.d.ts +2 -2
  195. package/lib/components/activity-list/style/_layout.scss +68 -68
  196. package/lib/components/activity-list/style/_theme.scss +4 -4
  197. package/lib/components/activity-list/style/material.scss +4 -4
  198. package/lib/components/app-file-dropzone/app-file-dropzone.component.d.ts +14 -14
  199. package/lib/components/app-file-dropzone/app-file-dropzone.module.d.ts +2 -2
  200. package/lib/components/app-file-dropzone/style/_layout.scss +61 -61
  201. package/lib/components/app-file-dropzone/style/_theme.scss +4 -4
  202. package/lib/components/app-file-dropzone/style/material.scss +4 -4
  203. package/lib/components/date-planning/component/agenda/agenda-base-view.component.d.ts +21 -21
  204. package/lib/components/date-planning/component/agenda/agenda-day-view.component.d.ts +7 -7
  205. package/lib/components/date-planning/component/agenda/agenda-event.component.d.ts +18 -18
  206. package/lib/components/date-planning/component/agenda/agenda-events.component.d.ts +13 -13
  207. package/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.d.ts +18 -18
  208. package/lib/components/date-planning/component/agenda/agenda-header.component.d.ts +48 -48
  209. package/lib/components/date-planning/component/agenda/agenda-hour-cell.component.d.ts +9 -9
  210. package/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.d.ts +8 -8
  211. package/lib/components/date-planning/component/agenda/agenda-hour-view.component.d.ts +7 -7
  212. package/lib/components/date-planning/component/agenda/agenda-month-view.component.d.ts +10 -10
  213. package/lib/components/date-planning/component/agenda/agenda-select-event.component.d.ts +12 -12
  214. package/lib/components/date-planning/component/agenda/agenda-view.component.d.ts +12 -12
  215. package/lib/components/date-planning/component/agenda/agenda-week-select-view.component.d.ts +10 -10
  216. package/lib/components/date-planning/component/agenda/agenda-week-view.component.d.ts +9 -9
  217. package/lib/components/date-planning/component/agenda/style/_layout.scss +443 -443
  218. package/lib/components/date-planning/component/agenda/style/_material-definition.scss +12 -12
  219. package/lib/components/date-planning/component/agenda/style/_theme.scss +7 -7
  220. package/lib/components/date-planning/component/agenda/style/material.scss +5 -5
  221. package/lib/components/date-planning/component/agenda/view-select.component.d.ts +11 -11
  222. package/lib/components/date-planning/component/calendar/calendar-all-months.component.d.ts +9 -9
  223. package/lib/components/date-planning/component/calendar/calendar-all-years.component.d.ts +9 -9
  224. package/lib/components/date-planning/component/calendar/calendar-header.component.d.ts +23 -23
  225. package/lib/components/date-planning/component/calendar/calendar-view.component.d.ts +31 -31
  226. package/lib/components/date-planning/component/calendar/calendar.component.d.ts +10 -10
  227. package/lib/components/date-planning/component/calendar/style/_layout.scss +167 -167
  228. package/lib/components/date-planning/component/calendar/style/_material-definition.scss +7 -7
  229. package/lib/components/date-planning/component/calendar/style/_theme.scss +7 -7
  230. package/lib/components/date-planning/component/calendar/style/material.scss +5 -5
  231. package/lib/components/date-planning/date-planning.component.d.ts +28 -28
  232. package/lib/components/date-planning/date-planning.module.d.ts +2 -2
  233. package/lib/components/date-planning/style/_layout.scss +45 -45
  234. package/lib/components/date-planning/style/_theme.scss +5 -5
  235. package/lib/components/date-planning/style/material.scss +7 -7
  236. package/lib/components/docsign/component/signature/signature.component.d.ts +16 -16
  237. package/lib/components/docsign/component/signature/style/_layout.scss +40 -40
  238. package/lib/components/docsign/component/signature/style/_material-definition.scss +11 -11
  239. package/lib/components/docsign/component/signature/style/_theme.scss +13 -13
  240. package/lib/components/docsign/component/signature/style/material.scss +4 -4
  241. package/lib/components/docsign/component/signatures/signatures.component.d.ts +12 -12
  242. package/lib/components/docsign/component/signatures/style/_layout.scss +13 -13
  243. package/lib/components/docsign/component/signatures/style/_material-definition.scss +1 -1
  244. package/lib/components/docsign/component/signatures/style/_theme.scss +4 -4
  245. package/lib/components/docsign/component/signatures/style/material.scss +5 -5
  246. package/lib/components/docsign/docsign.component.d.ts +94 -94
  247. package/lib/components/docsign/docsign.module.d.ts +2 -2
  248. package/lib/components/docsign/style/_layout.scss +40 -40
  249. package/lib/components/docsign/style/_material-definition.scss +12 -12
  250. package/lib/components/docsign/style/_theme.scss +12 -12
  251. package/lib/components/docsign/style/material.scss +15 -15
  252. package/lib/components/file-upload/file-upload.component.d.ts +42 -42
  253. package/lib/components/file-upload/file-upload.module.d.ts +2 -2
  254. package/lib/components/file-upload/style/_layout.scss +59 -59
  255. package/lib/components/file-upload/style/_material-definition.scss +2 -2
  256. package/lib/components/file-upload/style/_theme.scss +4 -4
  257. package/lib/components/file-upload/style/material.scss +4 -4
  258. package/lib/components/file-upload-popup/file-upload-popup.component.d.ts +75 -75
  259. package/lib/components/file-upload-popup/file-upload-popup.module.d.ts +2 -2
  260. package/lib/components/file-upload-popup/style/_layout.scss +48 -48
  261. package/lib/components/file-upload-popup/style/_material-definition.scss +2 -2
  262. package/lib/components/file-upload-popup/style/_theme.scss +5 -5
  263. package/lib/components/file-upload-popup/style/material.scss +4 -4
  264. package/lib/components/files-upload/components/base-file-upload.component.d.ts +98 -98
  265. package/lib/components/files-upload/components/drag-drop-container.component.d.ts +34 -34
  266. package/lib/components/files-upload/files-upload.component.d.ts +32 -32
  267. package/lib/components/files-upload/files-upload.module.d.ts +2 -2
  268. package/lib/components/files-upload/style/_layout.scss +49 -49
  269. package/lib/components/files-upload/style/_theme.scss +5 -5
  270. package/lib/components/files-upload/style/material.scss +4 -4
  271. package/lib/components/image-display/image-display.component.d.ts +14 -14
  272. package/lib/components/image-display/image-display.module.d.ts +2 -2
  273. package/lib/components/image-display/style/_layout.scss +56 -56
  274. package/lib/components/image-display/style/_material-definition.scss +4 -4
  275. package/lib/components/image-display/style/_theme.scss +6 -6
  276. package/lib/components/image-display/style/material.scss +3 -3
  277. package/lib/components/key-pad/key-pad.component.d.ts +38 -38
  278. package/lib/components/key-pad/key-pad.module.d.ts +2 -2
  279. package/lib/components/key-pad/style/_layout.scss +160 -160
  280. package/lib/components/key-pad/style/_material-definition.scss +19 -19
  281. package/lib/components/key-pad/style/_theme.scss +35 -35
  282. package/lib/components/key-pad/style/material.scss +4 -4
  283. package/lib/components/layout-switcher/layout-switcher.component.d.ts +16 -16
  284. package/lib/components/layout-switcher/layout-switcher.module.d.ts +2 -2
  285. package/lib/components/layout-switcher/style/_layout.scss +94 -94
  286. package/lib/components/layout-switcher/style/_material-definition.scss +16 -16
  287. package/lib/components/layout-switcher/style/_theme.scss +4 -4
  288. package/lib/components/layout-switcher/style/material.scss +6 -6
  289. package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +11 -11
  290. package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +2 -2
  291. package/lib/components/linear-gauge/style/_layout.scss +20 -20
  292. package/lib/components/linear-gauge/style/_material-definition.scss +8 -8
  293. package/lib/components/linear-gauge/style/_theme.scss +4 -4
  294. package/lib/components/linear-gauge/style/material.scss +6 -6
  295. package/lib/components/login/style/_layout.scss +57 -57
  296. package/lib/components/login/style/_material-definition.scss +23 -23
  297. package/lib/components/login/style/_theme.scss +7 -7
  298. package/lib/components/login/style/material.scss +4 -4
  299. package/lib/components/multi-property-toggler/multiple-property-toggler.component.d.ts +27 -27
  300. package/lib/components/multi-property-toggler/multiple-property-toggler.module.d.ts +2 -2
  301. package/lib/components/multi-property-toggler/style/_layout.scss +24 -24
  302. package/lib/components/multi-property-toggler/style/_theme.scss +4 -4
  303. package/lib/components/multi-property-toggler/style/material.scss +4 -4
  304. package/lib/components/screen-config-generator/style/_layout.scss +95 -95
  305. package/lib/components/screen-config-generator/style/_theme.scss +4 -4
  306. package/lib/components/screen-config-generator/style/material.scss +4 -4
  307. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.d.ts +19 -19
  308. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.d.ts +2 -2
  309. package/lib/components/send-method-dialog/components/layout-selection/style/_layout.scss +44 -44
  310. package/lib/components/send-method-dialog/components/layout-selection/style/_material-definition.scss +19 -19
  311. package/lib/components/send-method-dialog/components/layout-selection/style/_theme.scss +17 -17
  312. package/lib/components/send-method-dialog/components/layout-selection/style/material.scss +4 -4
  313. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.d.ts +19 -19
  314. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.d.ts +2 -2
  315. package/lib/components/send-method-dialog/components/printer-selection/style/_layout.scss +69 -69
  316. package/lib/components/send-method-dialog/components/printer-selection/style/_material-definition.scss +37 -37
  317. package/lib/components/send-method-dialog/components/printer-selection/style/_theme.scss +23 -23
  318. package/lib/components/send-method-dialog/components/printer-selection/style/material.scss +4 -4
  319. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +14 -14
  320. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.d.ts +2 -2
  321. package/lib/components/send-method-dialog/components/send-method-email/style/_layout.scss +29 -29
  322. package/lib/components/send-method-dialog/components/send-method-email/style/_material-definition.scss +8 -8
  323. package/lib/components/send-method-dialog/components/send-method-email/style/_theme.scss +5 -5
  324. package/lib/components/send-method-dialog/components/send-method-email/style/material.scss +4 -4
  325. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.d.ts +8 -8
  326. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.d.ts +2 -2
  327. package/lib/components/send-method-dialog/components/send-method-pdf/style/_layout.scss +25 -25
  328. package/lib/components/send-method-dialog/components/send-method-pdf/style/_material-definition.scss +5 -5
  329. package/lib/components/send-method-dialog/components/send-method-pdf/style/_theme.scss +5 -5
  330. package/lib/components/send-method-dialog/components/send-method-pdf/style/material.scss +4 -4
  331. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +13 -13
  332. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.d.ts +2 -2
  333. package/lib/components/send-method-dialog/components/send-method-printer/style/_layout.scss +30 -30
  334. package/lib/components/send-method-dialog/components/send-method-printer/style/_material-definition.scss +5 -5
  335. package/lib/components/send-method-dialog/components/send-method-printer/style/_theme.scss +5 -5
  336. package/lib/components/send-method-dialog/components/send-method-printer/style/material.scss +4 -4
  337. package/lib/components/send-method-dialog/components/signature-button/signature-button.component.d.ts +12 -12
  338. package/lib/components/send-method-dialog/components/signature-button/signature-button.module.d.ts +2 -2
  339. package/lib/components/send-method-dialog/components/signature-button/style/_layout.scss +28 -28
  340. package/lib/components/send-method-dialog/components/signature-button/style/_material-definition.scss +8 -8
  341. package/lib/components/send-method-dialog/components/signature-button/style/_theme.scss +4 -4
  342. package/lib/components/send-method-dialog/components/signature-button/style/material.scss +4 -4
  343. package/lib/components/send-method-dialog/model/email-address-viewmodel.d.ts +5 -5
  344. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +71 -71
  345. package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +2 -2
  346. package/lib/components/send-method-dialog/send-method-params.interface.d.ts +13 -13
  347. package/lib/components/send-method-dialog/service/send-method.service.d.ts +23 -23
  348. package/lib/components/send-method-dialog/style/_layout.scss +165 -165
  349. package/lib/components/send-method-dialog/style/_material-definition.scss +48 -48
  350. package/lib/components/send-method-dialog/style/_theme.scss +33 -33
  351. package/lib/components/send-method-dialog/style/material.scss +10 -10
  352. package/lib/components/simple-tags/simple-tags.component.d.ts +31 -31
  353. package/lib/components/simple-tags/simple-tags.module.d.ts +2 -2
  354. package/lib/components/simple-tags/style/_layout.scss +272 -272
  355. package/lib/components/simple-tags/style/_material-definition.scss +39 -39
  356. package/lib/components/simple-tags/style/_theme.scss +4 -4
  357. package/lib/components/simple-tags/style/material.scss +4 -4
  358. package/lib/components/statusbar/statusbar-popup.component.d.ts +21 -21
  359. package/lib/components/statusbar/statusbar.component.d.ts +26 -26
  360. package/lib/components/statusbar/statusbar.module.d.ts +2 -2
  361. package/lib/components/statusbar/style/_layout.scss +70 -70
  362. package/lib/components/statusbar/style/_material-definition.scss +23 -23
  363. package/lib/components/statusbar/style/_theme.scss +13 -13
  364. package/lib/components/statusbar/style/material.scss +5 -5
  365. package/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.d.ts +9 -9
  366. package/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.d.ts +9 -9
  367. package/lib/components/stock/components/order-stock-history/order-stock-history.component.d.ts +9 -9
  368. package/lib/components/stock/components/order-stock-tab/order-stock-tab.component.d.ts +11 -11
  369. package/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.d.ts +9 -9
  370. package/lib/components/stock/components/order-tab/order-tab.component.d.ts +20 -20
  371. package/lib/components/stock/components/stock-history/stock-history.component.d.ts +13 -13
  372. package/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.d.ts +41 -0
  373. package/lib/components/stock/components/stock-location/stock-location.component.d.ts +54 -52
  374. package/lib/components/stock/components/stock-prognose/stock-prognose.component.d.ts +11 -11
  375. package/lib/components/stock/components/stock-tab/stock-tab.component.d.ts +7 -7
  376. package/lib/components/stock/localization/translation.d.ts +71 -69
  377. package/lib/components/stock/stock-history-tabs/stock-history-tabs.component.d.ts +7 -7
  378. package/lib/components/stock/stock-information/stock-information.component.d.ts +9 -9
  379. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +75 -75
  380. package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +59 -56
  381. package/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts +4 -4
  382. package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +18 -18
  383. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +38 -38
  384. package/lib/components/stock/stock.component.d.ts +64 -64
  385. package/lib/components/stock/stock.module.d.ts +2 -2
  386. package/lib/components/stock/style/_layout.scss +519 -473
  387. package/lib/components/stock/style/_material-definition.scss +28 -28
  388. package/lib/components/stock/style/_theme.scss +5 -5
  389. package/lib/components/stock/style/material.scss +4 -4
  390. package/lib/components/stock-statusbar/stock-statusbar.component.d.ts +4 -4
  391. package/lib/components/stock-statusbar/stock-statusbar.module.d.ts +2 -2
  392. package/lib/components/stock-statusbar/style/_layout.scss +24 -24
  393. package/lib/components/stock-statusbar/style/material.scss +4 -4
  394. package/lib/components/tab-bar/style/_layout.scss +83 -83
  395. package/lib/components/tab-bar/style/_material-definition.scss +6 -6
  396. package/lib/components/tab-bar/style/material.scss +4 -4
  397. package/lib/components/tab-bar/tab-bar.component.d.ts +21 -21
  398. package/lib/components/tab-bar/tab-bar.module.d.ts +2 -2
  399. package/lib/components/tab-bar/tab.interface.d.ts +5 -5
  400. package/lib/components/tags/component/style/_layout.scss +67 -67
  401. package/lib/components/tags/component/style/_material-definition.scss +1 -1
  402. package/lib/components/tags/component/style/_theme.scss +8 -8
  403. package/lib/components/tags/component/style/material.scss +3 -3
  404. package/lib/components/tags/component/tag-join-label/style/_layout.scss +97 -97
  405. package/lib/components/tags/component/tag-join-label/style/_material-definition.scss +4 -4
  406. package/lib/components/tags/component/tag-join-label/style/_theme.scss +8 -8
  407. package/lib/components/tags/component/tag-join-label/style/material.scss +3 -3
  408. package/lib/components/tile-renderer/style/_layout.scss +90 -90
  409. package/lib/components/tile-renderer/style/_theme.scss +4 -4
  410. package/lib/components/tile-renderer/style/material.scss +4 -4
  411. package/lib/components/tile-renderer/tile-render.component.d.ts +31 -31
  412. package/lib/components/tile-renderer/tile-render.module.d.ts +2 -2
  413. package/lib/decorator/input-boolean.decorator.d.ts +8 -8
  414. package/lib/enum/calendar-view.enum.d.ts +7 -7
  415. package/lib/enum/document-email-report.enum.d.ts +15 -15
  416. package/lib/enum/domain-multiple-name.enum.d.ts +10 -10
  417. package/lib/enum/file-type.d.ts +7 -7
  418. package/lib/enum/files-upload-config-objects.d.ts +22 -22
  419. package/lib/enum/gauge-color.enum.d.ts +8 -8
  420. package/lib/enum/icon.enum.d.ts +47 -46
  421. package/lib/enum/internal-param.enum.d.ts +34 -34
  422. package/lib/enum/keyboard-code.enum.d.ts +30 -30
  423. package/lib/enum/language-code.enum.d.ts +6 -6
  424. package/lib/enum/month.enum.d.ts +14 -14
  425. package/lib/enum/read-write-access-config-names.enum.d.ts +4 -4
  426. package/lib/enum/table-name.enum.d.ts +84 -84
  427. package/lib/enum/tag-category.enum.d.ts +19 -19
  428. package/lib/enum/tags-component-config-names.d.ts +4 -4
  429. package/lib/enum/thumb-three-way-state.d.ts +6 -6
  430. package/lib/enum/tile-size-type.d.ts +4 -4
  431. package/lib/enum/time-period.enum.d.ts +8 -8
  432. package/lib/event/co-drag-event.d.ts +5 -5
  433. package/lib/event/co-drop-event.d.ts +8 -8
  434. package/lib/interface/key-value-pair.d.ts +4 -4
  435. package/lib/interface/operation-callback-simple-function.d.ts +4 -4
  436. package/lib/localization/localization.module.d.ts +2 -2
  437. package/lib/localization/localize.pipe.d.ts +7 -7
  438. package/lib/localization/localize.service.d.ts +7 -7
  439. package/lib/localization/translation.d.ts +2 -2
  440. package/lib/model/agenda-event-per-day.model.d.ts +5 -5
  441. package/lib/model/agenda-event.model.d.ts +17 -17
  442. package/lib/model/agenda-null-objects.d.ts +10 -10
  443. package/lib/model/constant/all-months.d.ts +2 -2
  444. package/lib/model/date-range.d.ts +7 -7
  445. package/lib/model/day.model.d.ts +8 -8
  446. package/lib/model/icon-svg.d.ts +4 -4
  447. package/lib/model/month.model.d.ts +5 -5
  448. package/lib/model/send-method.d.ts +7 -7
  449. package/lib/model/settings.d.ts +3 -3
  450. package/lib/model/tag-tree-item.bo.d.ts +18 -18
  451. package/lib/model/time-window.bo.d.ts +13 -13
  452. package/lib/model/tree-object.d.ts +8 -8
  453. package/lib/model/week.model.d.ts +4 -4
  454. package/lib/model/weekday.model.d.ts +16 -16
  455. package/lib/pipe/array-number.pipe.d.ts +4 -4
  456. package/lib/pipe/file-type-image.pipe.d.ts +12 -12
  457. package/lib/pipe/master-pipes.d.ts +1 -1
  458. package/lib/pipe/ucfirst.pipe.d.ts +4 -4
  459. package/lib/service/dictionary.service.d.ts +21 -21
  460. package/lib/service/drag-drop.service.d.ts +86 -86
  461. package/lib/service/icon-cache.service.d.ts +18 -18
  462. package/lib/service/options.service.d.ts +13 -13
  463. package/lib/service/shared-connector.service.d.ts +55 -55
  464. package/lib/service/shared.service.d.ts +18 -18
  465. package/lib/service/stock.service.d.ts +41 -41
  466. package/lib/style/_mixin.scss +14 -14
  467. package/lib/style/_variables.scss +21 -21
  468. package/lib/style/sharedcomponents-globals.scss +10 -10
  469. package/lib/utils/array-utils.d.ts +63 -63
  470. package/lib/utils/calendar.utils.d.ts +10 -10
  471. package/lib/utils/check-precision-and-scale-result.d.ts +4 -4
  472. package/lib/utils/check-within-stepped-bounds-result.d.ts +8 -8
  473. package/lib/utils/co-document-shared-field-logic.d.ts +7 -7
  474. package/lib/utils/date-utils.d.ts +44 -44
  475. package/lib/utils/enum-utils.d.ts +31 -31
  476. package/lib/utils/function/not-nill.function.d.ts +1 -1
  477. package/lib/utils/is-nill.function.d.ts +1 -1
  478. package/lib/utils/map-utils.d.ts +16 -16
  479. package/lib/utils/number-utils.d.ts +125 -125
  480. package/lib/utils/object-utils.d.ts +40 -40
  481. package/lib/utils/ref-code-utils.d.ts +10 -10
  482. package/lib/utils/string-utils.d.ts +38 -38
  483. package/main.1d1ac86d8023edac29b1.js +1 -0
  484. package/package.json +1 -1
  485. package/polyfills.907fe9d1887c5de17993.js +1 -0
  486. package/public-api.d.ts +27 -27
  487. package/runtime.8aac21847ed3d3829cca.js +1 -0
  488. package/styles.42e2561063e306e59f45.css +1 -0
@@ -1,251 +1,248 @@
1
- import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
2
- import { IconCacheService } from "../../../../service/icon-cache.service";
3
- import { Icon } from "../../../../enum/icon.enum";
4
- import { StockService } from "../../../../service/stock.service";
5
- import { ArticleStockManagement } from "@colijnit/articleapi/build/model/article-stock-management";
6
- import { ArticleDetailsBo } from "@colijnit/articleapi/build/model/article-details.bo";
7
- export class StockLocationComponent {
8
- constructor(iconCacheService, _stockService, _changeDetector) {
9
- this.iconCacheService = iconCacheService;
10
- this._stockService = _stockService;
11
- this._changeDetector = _changeDetector;
12
- this.icons = Icon;
13
- this.articleStockInfo = [];
14
- this.articleStockInformation = [];
15
- this.dataWareHouseCode = [];
16
- this.transferIconClicked = new EventEmitter();
17
- this.sendMethodDialogClicked = new EventEmitter();
18
- this.showConfirmationDialog = false;
19
- this.showConfirmStockRow = false;
20
- this.articleDetailsInformation = new ArticleStockManagement();
21
- this.stockLocations = [];
22
- this.stockStatus = [];
23
- this.selectedArticleDetailsData = new ArticleDetailsBo();
24
- this._subs = [];
25
- }
26
- set article(article) {
27
- }
28
- ;
29
- ngOnInit() {
30
- this._stockService.getStockState().then(result => {
31
- this.stockStatus = result;
32
- });
33
- this._subs.push(this._stockService.warehouseSelected.subscribe(selectedWarehouse => {
34
- this._stockService.getStockManagementLocations(selectedWarehouse.warehouseNo).then(result => {
35
- this.stockLocations = result;
36
- });
37
- }));
38
- }
39
- ngOnDestroy() {
40
- }
41
- onLocationDropdownClick() {
42
- this._stockService.getStockManagementLocations(this.selectedWarehouse.warehouseNo).then((locations) => {
43
- this.stockLocations = locations;
44
- });
45
- }
46
- locationChanged(row, event) {
47
- this.selectedLocationNo = event.locationNo;
48
- row.locationNo = event.locationNo;
49
- this.onLocationDropdownClick();
50
- }
51
- amountInStockChanged(data) {
52
- this.selectedArticleDetailsData.amountInStock = data;
53
- }
54
- openSendMethodDialog(data) {
55
- this.sendMethodDialogClicked.emit(data);
56
- }
57
- handleStockTransferClick(event) {
58
- this.transferIconClicked.emit(event);
59
- }
60
- onOkClickSendLocations() {
61
- this.showConfirmationDialog = true;
62
- }
63
- handleOkClick() {
64
- var _a;
65
- this.selectedArticleDetailsData.selected = true;
66
- this.selectedArticleDetailsData.goodId = this.articleFlat.goodId;
67
- this.selectedArticleDetailsData.entryDate = new Date();
68
- this.selectedArticleDetailsData.warehouseNo = this.selectedWarehouse.warehouseNo;
69
- this.selectedArticleDetailsData.locationNo = (_a = this.selectedLocationNo) === null || _a === void 0 ? void 0 : _a.toString();
70
- this._stockService.updateArticleDetails(this.selectedArticleDetailsData).then(result => {
71
- var _a;
72
- this.articleDetailsInformation.goodId = (_a = this.selectedArticleDetailsData.goodId) === null || _a === void 0 ? void 0 : _a.toString();
73
- this.articleDetailsInformation.warehouseNumber = this.selectedArticleDetailsData.warehouseNo;
74
- this._stockService.getArticleDetails(this.articleDetailsInformation).then((details) => {
75
- this.articleStockInfo = details;
76
- });
77
- });
78
- this.showConfirmationDialog = false;
79
- this._changeDetector.detectChanges();
80
- }
81
- handleStockStatusChange(status) {
82
- this.selectedArticleDetailsData.stockStateId = status.stockStateId;
83
- }
84
- handleStockStatusRemarkChange(remark) {
85
- this.selectedArticleDetailsData.stockStateRemark = remark;
86
- }
87
- disabled() {
88
- var _a, _b, _c;
89
- return (!((_a = this.selectedArticleDetailsData) === null || _a === void 0 ? void 0 : _a.stockStateId) && ((_c = (_b = this.selectedArticleDetailsData) === null || _b === void 0 ? void 0 : _b.stockStateRemark) === null || _c === void 0 ? void 0 : _c.length) <= 1);
90
- }
91
- statusForId(id) {
92
- return this.stockStatus.find(status => status.stockStateId === id);
93
- }
94
- locationForNumber(number) {
95
- var _a;
96
- return (_a = this.stockLocations) === null || _a === void 0 ? void 0 : _a.find(location => location.locationNo === (number === null || number === void 0 ? void 0 : number.toString()));
97
- }
98
- locationForDescription(locationNo) {
99
- // Find the location in stockLocations by locationNo
100
- const location = this.stockLocations.find(loc => loc.locationNo === locationNo);
101
- // If location is found and it has a non-empty description, return description
102
- // If location is not found or description is empty, return locationNo
103
- return location && location.description && location.description.trim() !== '' ? location.description : locationNo;
104
- }
105
- }
106
- StockLocationComponent.decorators = [
107
- { type: Component, args: [{
108
- selector: "co-stock-location",
109
- template: `
110
- <div class="stock-grid">
111
- <co-dialog *ngIf="showConfirmationDialog"
112
- [showCloseIcon]="true"
113
- [modal]="true"
114
- [headerTemplate]="headerTemplate"
115
- [footerTemplate]="footerTemplate">
116
- <ng-template #headerTemplate>
117
- <div class="header-wrapper">
118
- <span [textContent]="'CONFIRM_STOCK_CHANGE' | localize"></span>
119
- </div>
120
- </ng-template>
121
- <div class="dialog-wrapper">
122
- <co-list-of-values [label]="'STATUS' | localize"
123
- [model]="statusForId(selectedArticleDetailsData.stockStateId)"
124
- [collection]="stockStatus"
125
- [displayField]="'stateDescription'"
126
- (modelChange)="handleStockStatusChange($event)"
127
- ></co-list-of-values>
128
- <co-input-text [placeholder]="'REMARK' | localize"
129
- (modelChange)="handleStockStatusRemarkChange($event)"></co-input-text>
130
- </div>
131
- <ng-template #footerTemplate>
132
- <div class="button-wrapper ok-cancel-buttons">
133
- <co-button class="save-button"
134
- (click)="handleOkClick()"
135
- [iconData]="iconCacheService.getIcon(icons.CheckDuotone)"
136
- [disabled]="disabled()">
137
- </co-button>
138
- <co-button class="cancel-button"
139
- (click)="showConfirmationDialog = false"
140
- [iconData]="iconCacheService.getIcon(icons.CrossSkinny)">
141
- </co-button>
142
- </div>
143
- </ng-template>
144
- </co-dialog>
145
- <co-simple-grid [data]="articleStockInfo"
146
- class="simple-grid"
147
- [showAdd]="true"
148
- [inlineEdit]="true"
149
- (selectRow)="onLocationDropdownClick()"
150
- [showToolbar]="true"
151
- (saveRow)="onOkClickSendLocations()"
152
- (keydown.enter)="onOkClickSendLocations()"
153
-
154
- >
155
- <co-simple-grid-column [headerText]="'STOCK' | localize" [field]="'amountInStock'">
156
- <ng-template #editTemplate let-row="row">
157
- <co-input-text [(model)]="row['amountInStock']"
158
- [label]="'STOCK' | localize"
159
- (modelChange)="amountInStockChanged($event)"
160
- ></co-input-text>
161
- </ng-template>
162
- </co-simple-grid-column>
163
- <co-simple-grid-column [width]="150" [headerText]="'LOCATION' | localize" [field]="'locationNo'">
164
- <ng-template #editTemplate let-row="row">
165
- <co-list-of-values
166
- [model]="locationForNumber(row['locationNo'])"
167
- [collection]="stockLocations"
168
- [displayField]="'description'"
169
- [label]="'LOCATION' | localize"
170
- [required]="true"
171
- (modelChange)="locationChanged(row, $event)"
172
- ></co-list-of-values>
173
- </ng-template>
174
- </co-simple-grid-column>
175
- <co-simple-grid-column *ngIf="articleFlat?.batch" [headerText]="'BATCH' | localize" [field]="'batchNo'">
176
- <ng-template #editTemplate let-row="row">
177
- <co-input-text [model]="selectedArticleDetailsData.batchNo"
178
- [placeholder]="'BATCH' | localize"
179
- (modelChange)="row['batchNo'] = $event"
180
- ></co-input-text>
181
- </ng-template>
182
- </co-simple-grid-column>
183
- <co-simple-grid-column *ngIf="articleFlat?.serial" [headerText]="'SERIAL_NO' | localize" [field]="'serialNo'">
184
- <ng-template #editTemplate let-row="row">
185
- <co-input-text [model]="selectedArticleDetailsData.serialNo"
186
- [placeholder]="'SERIAL_NO' | localize"
187
- (modelChange)="row['serialNo'] = $event"
188
- ></co-input-text>
189
- </ng-template>
190
- </co-simple-grid-column>
191
- <co-simple-grid-column [headerText]="'ALLOCATED' | localize" [field]="'stockAssigned'">
192
- <ng-template #editTemplate let-row="row">
193
- <span [textContent]="row['stockAssigned']"></span>
194
- </ng-template>
195
- </co-simple-grid-column>
196
- <co-simple-grid-column [headerText]="'AVAILABLE_STOCK' | localize" [field]="'amountInStockFree'">
197
- <ng-template #editTemplate let-row="row">
198
- <span [textContent]="row['amountInStockFree']"></span>
199
- </ng-template>
200
- </co-simple-grid-column>
201
- <co-simple-grid-column [headerText]="'VALUTA' | localize" [field]="'currency'">
202
- <ng-template #editTemplate let-row="row">
203
- <span [textContent]="row['currency']"></span>
204
- </ng-template>
205
- </co-simple-grid-column>
206
- <co-simple-grid-column [headerText]="'PURCHASE_PRICE' | localize" [field]="'purchasePrice'">
207
- <ng-template #editTemplate let-row="row">
208
- <span [textContent]="row['purchasePrice']"></span>
209
- </ng-template>
210
- </co-simple-grid-column>
211
- <co-simple-grid-column [headerText]="'SUPPLIERNR' | localize" [field]="'supplierNo'">
212
- <ng-template #editTemplate let-row="row">
213
- <span [textContent]="row['supplierNo']"></span>
214
- </ng-template>
215
- </co-simple-grid-column>
216
- <co-simple-grid-column [readonly]="true" [headerText]="'TRANSFER' | localize" [field]="'transfer'">
217
- <ng-template #template let-row="row">
218
- <co-icon class="menu-icon" [iconData]="iconCacheService.getIcon(icons.DeliveryTruck)"
219
- (click)="handleStockTransferClick(row)"></co-icon>
220
- </ng-template>
221
- <ng-template #editTemplate></ng-template>
222
- </co-simple-grid-column>
223
- <co-simple-grid-column [readonly]="true" [headerText]="'STICKER' | localize" [field]="'sticker'">
224
- <ng-template #template let-row="row">
225
- <co-icon class="menu-icon" [iconData]="iconCacheService.getIcon(icons.Print)"
226
- (click)="openSendMethodDialog(row)"></co-icon>
227
- </ng-template>
228
- <ng-template #editTemplate></ng-template>
229
- </co-simple-grid-column>
230
- </co-simple-grid>
231
- </div>
232
- `,
233
- encapsulation: ViewEncapsulation.None
234
- },] }
235
- ];
236
- StockLocationComponent.ctorParameters = () => [
237
- { type: IconCacheService },
238
- { type: StockService },
239
- { type: ChangeDetectorRef }
240
- ];
241
- StockLocationComponent.propDecorators = {
242
- articleStockInfo: [{ type: Input }],
243
- articleStockInformation: [{ type: Input }],
244
- article: [{ type: Input }],
245
- articleFlat: [{ type: Input }],
246
- dataWareHouseCode: [{ type: Input }],
247
- transferIconClicked: [{ type: Output }],
248
- sendMethodDialogClicked: [{ type: Output }],
249
- selectedWarehouse: [{ type: Input }]
250
- };
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay1sb2NhdGlvbi9zdG9jay1sb2NhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scURBQXFELENBQUM7QUF3SXJGLE1BQU0sT0FBTyxzQkFBc0I7SUE0Q2pDLFlBQ1MsZ0JBQWtDLEVBQ2pDLGFBQTJCLEVBQzNCLGVBQWtDO1FBRm5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBOUM1QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUduQyxxQkFBZ0IsR0FBdUIsRUFBRSxDQUFDO1FBRzFDLDRCQUF1QixHQUFxQixFQUFFLENBQUM7UUFZL0Msc0JBQWlCLEdBQWdDLEVBQUUsQ0FBQztRQUczQyx3QkFBbUIsR0FBaUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd2RSw0QkFBdUIsR0FBcUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU94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b25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0FydGljbGVTdG9jayBhcyBBcnRpY2xlU3RvY2tCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2suYm9cIjtcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcbmltcG9ydCB7U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLW1hbmFnZW1lbnQtd2FyZWhvdXNlcy5ib1wiO1xuaW1wb3J0IHtBcnRpY2xlU3RvY2tNYW5hZ2VtZW50fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay1tYW5hZ2VtZW50XCI7XG5pbXBvcnQge0FydGljbGVEZXRhaWxzQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm9cIjtcbmltcG9ydCB7U3RvY2tMb2NhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWxvY2F0aW9uLmJvXCI7XG5pbXBvcnQge1ByaW50UHJpY2VTdGlja2Vyc30gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvbW9kZWwvcHJpbnQtcHJpY2Utc3RpY2tlcnMuYm9cIjtcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm9cIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtBcnRpY2xlRXh0ZW5kZWR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLmJvXCI7XG5pbXBvcnQge0FydGljbGVGbGF0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mbGF0LmJvXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjby1zdG9jay1sb2NhdGlvblwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJzdG9jay1ncmlkXCI+XG4gICAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd0NvbmZpcm1hdGlvbkRpYWxvZ1wiXG4gICAgICAgICAgICAgICAgIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICBbbW9kYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItd3JhcHBlclwiPlxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidDT05GSVJNX1NUT0NLX0NIQU5HRScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy13cmFwcGVyXCI+XG4gICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzIFtsYWJlbF09XCInU1RBVFVTJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInN0YXR1c0ZvcklkKHNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnN0b2NrU3RhdGVJZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJzdG9ja1N0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ3N0YXRlRGVzY3JpcHRpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVN0b2NrU3RhdHVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgID48L2NvLWxpc3Qtb2YtdmFsdWVzPlxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFtwbGFjZWhvbGRlcl09XCInUkVNQVJLJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU3RvY2tTdGF0dXNSZW1hcmtDaGFuZ2UoJGV2ZW50KVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi13cmFwcGVyIG9rLWNhbmNlbC1idXR0b25zXCI+XG4gICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT2tDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIj5cbiAgICAgICAgICAgIDwvY28tYnV0dG9uPlxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc1NraW5ueSlcIj5cbiAgICAgICAgICAgIDwvY28tYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9jby1kaWFsb2c+XG4gICAgICA8Y28tc2ltcGxlLWdyaWQgW2RhdGFdPVwiYXJ0aWNsZVN0b2NrSW5mb1wiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaW1wbGUtZ3JpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dBZGRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2lubGluZUVkaXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdFJvdyk9XCJvbkxvY2F0aW9uRHJvcGRvd25DbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd1Rvb2xiYXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKHNhdmVSb3cpPVwib25Pa0NsaWNrU2VuZExvY2F0aW9ucygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbk9rQ2xpY2tTZW5kTG9jYXRpb25zKClcIlxuXG4gICAgICA+XG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUT0NLJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidhbW91bnRJblN0b2NrJ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInJvd1snYW1vdW50SW5TdG9jayddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU1RPQ0snIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImFtb3VudEluU3RvY2tDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbd2lkdGhdPVwiMTUwXCIgW2hlYWRlclRleHRdPVwiJ0xPQ0FUSU9OJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidsb2NhdGlvbk5vJ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgICAgIDxjby1saXN0LW9mLXZhbHVlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJsb2NhdGlvbkZvck51bWJlcihyb3dbJ2xvY2F0aW9uTm8nXSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInN0b2NrTG9jYXRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZpZWxkXT1cIidkZXNjcmlwdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInTE9DQVRJT04nIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwibG9jYXRpb25DaGFuZ2VkKHJvdywgJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jby1saXN0LW9mLXZhbHVlcz5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiAqbmdJZj1cImFydGljbGVGbGF0Py5iYXRjaFwiIFtoZWFkZXJUZXh0XT1cIidCQVRDSCcgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInYmF0Y2hObydcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbbW9kZWxdPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYmF0Y2hOb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0JBVENIJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJyb3dbJ2JhdGNoTm8nXSA9ICRldmVudFwiXG4gICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uICpuZ0lmPVwiYXJ0aWNsZUZsYXQ/LnNlcmlhbFwiIFtoZWFkZXJUZXh0XT1cIidTRVJJQUxfTk8nIHwgbG9jYWxpemVcIiBbZmllbGRdPVwiJ3NlcmlhbE5vJ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zZXJpYWxOb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFUklBTF9OTycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwicm93WydzZXJpYWxObyddID0gJGV2ZW50XCJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FMTE9DQVRFRCcgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInc3RvY2tBc3NpZ25lZCdcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydzdG9ja0Fzc2lnbmVkJ11cIj48L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FWQUlMQUJMRV9TVE9DSycgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInYW1vdW50SW5TdG9ja0ZyZWUnXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1snYW1vdW50SW5TdG9ja0ZyZWUnXVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInVkFMVVRBJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidjdXJyZW5jeSdcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydjdXJyZW5jeSddXCI+PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidQVVJDSEFTRV9QUklDRScgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCIncHVyY2hhc2VQcmljZSdcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydwdXJjaGFzZVByaWNlJ11cIj48L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NVUFBMSUVSTlInIHwgbG9jYWxpemVcIiBbZmllbGRdPVwiJ3N1cHBsaWVyTm8nXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1snc3VwcGxpZXJObyddXCI+PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtyZWFkb25seV09XCJ0cnVlXCIgW2hlYWRlclRleHRdPVwiJ1RSQU5TRkVSJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIid0cmFuc2ZlcidcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5EZWxpdmVyeVRydWNrKVwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU3RvY2tUcmFuc2ZlckNsaWNrKHJvdylcIj48L2NvLWljb24+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZT48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbcmVhZG9ubHldPVwidHJ1ZVwiIFtoZWFkZXJUZXh0XT1cIidTVElDS0VSJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidzdGlja2VyJ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlByaW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblNlbmRNZXRob2REaWFsb2cocm93KVwiPjwvY28taWNvbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTdG9ja0xvY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXJ0aWNsZVN0b2NrSW5mbzogQXJ0aWNsZURldGFpbHNCb1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFydGljbGVTdG9ja0luZm9ybWF0aW9uOiBBcnRpY2xlU3RvY2tCb1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhcnRpY2xlKGFydGljbGU6IEFydGljbGVFeHRlbmRlZCkge1xuXG4gIH07XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFydGljbGVGbGF0OiBBcnRpY2xlRmxhdDtcblxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRhV2FyZUhvdXNlQ29kZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2Zlckljb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZVN0b2NrQm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxQcmludFByaWNlU3RpY2tlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcztcblxuXG4gIHB1YmxpYyBhcnRpY2xlRGV0YWlsczogQXJ0aWNsZURldGFpbHNCbztcbiAgcHVibGljIHNob3dDb25maXJtYXRpb25EaWFsb2c6Ym9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0NvbmZpcm1TdG9ja1Jvdzpib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGFydGljbGVEZXRhaWxzSW5mb3JtYXRpb246IEFydGljbGVTdG9ja01hbmFnZW1lbnQgPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpXG4gIHB1YmxpYyBzdG9ja0xvY2F0aW9uczogU3RvY2tMb2NhdGlvbltdID0gW107XG5cbiAgcHVibGljIHN0b2NrU3RhdHVzOiBTdG9ja1N0YXR1c1tdID0gW107XG4gIHB1YmxpYyBzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YTogQXJ0aWNsZURldGFpbHNCbyA9IG5ldyBBcnRpY2xlRGV0YWlsc0JvKCk7XG5cbiAgcHVibGljIHNlbGVjdGVkTG9jYXRpb25Obzogc3RyaW5nO1xuXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3N0b2NrU2VydmljZTogU3RvY2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcblxuICApIHtcbiAgfVxuXG4gICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tTdGF0ZSgpLnRoZW4oIHJlc3VsdCA9PiB7XG4gICAgICB0aGlzLnN0b2NrU3RhdHVzID0gcmVzdWx0O1xuICAgIH0pO1xuICAgIHRoaXMuX3N1YnMucHVzaCggdGhpcy5fc3RvY2tTZXJ2aWNlLndhcmVob3VzZVNlbGVjdGVkLnN1YnNjcmliZSggIHNlbGVjdGVkV2FyZWhvdXNlID0+IHtcbiAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnMoc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm8pLnRoZW4oIHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuc3RvY2tMb2NhdGlvbnMgPSByZXN1bHQ7XG4gICAgICB9KTtcbiAgICB9KSk7XG5cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuXG5cbiAgfVxuXG4gIHB1YmxpYyBvbkxvY2F0aW9uRHJvcGRvd25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tNYW5hZ2VtZW50TG9jYXRpb25zKHRoaXMuc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm8pLnRoZW4oKGxvY2F0aW9ucykgPT4ge1xuICAgICAgdGhpcy5zdG9ja0xvY2F0aW9ucyA9IGxvY2F0aW9ucztcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBsb2NhdGlvbkNoYW5nZWQocm93OiBBcnRpY2xlRGV0YWlsc0JvLCBldmVudDogU3RvY2tMb2NhdGlvbik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbk5vID0gZXZlbnQubG9jYXRpb25ObztcbiAgICByb3cubG9jYXRpb25ObyA9IGV2ZW50LmxvY2F0aW9uTm87XG4gICAgdGhpcy5vbkxvY2F0aW9uRHJvcGRvd25DbGljaygpXG4gIH1cblxuICBwdWJsaWMgYW1vdW50SW5TdG9ja0NoYW5nZWQoZGF0YSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYW1vdW50SW5TdG9jayA9IGRhdGE7XG4gIH1cblxuICBwdWJsaWMgb3BlblNlbmRNZXRob2REaWFsb2coZGF0YSk6IHZvaWQge1xuICAgIHRoaXMuc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQuZW1pdChkYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2soZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zZmVySWNvbkNsaWNrZWQuZW1pdChldmVudCk7XG4gIH1cbiAgcHVibGljIG9uT2tDbGlja1NlbmRMb2NhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93Q29uZmlybWF0aW9uRGlhbG9nID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVPa0NsaWNrKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZ29vZElkID0gdGhpcy5hcnRpY2xlRmxhdC5nb29kSWQ7XG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5lbnRyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEud2FyZWhvdXNlTm8gPSB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlLndhcmVob3VzZU5vO1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEubG9jYXRpb25ObyA9IHRoaXMuc2VsZWN0ZWRMb2NhdGlvbk5vPy50b1N0cmluZygpO1xuICAgIHRoaXMuX3N0b2NrU2VydmljZS51cGRhdGVBcnRpY2xlRGV0YWlscyh0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhKS50aGVuKCByZXN1bHQgPT4ge1xuICAgICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZ29vZElkPy50b1N0cmluZygpO1xuICAgICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLndhcmVob3VzZU51bWJlciA9IHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEud2FyZWhvdXNlTm87XG4gICAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZURldGFpbHModGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uKS50aGVuKChkZXRhaWxzKSA9PiB7XG4gICAgICAgIHRoaXMuYXJ0aWNsZVN0b2NrSW5mbyA9IGRldGFpbHM7XG4gICAgICB9KTtcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IGZhbHNlO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1N0YXR1c0NoYW5nZShzdGF0dXM6IFN0b2NrU3RhdHVzKSB7XG4gICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc3RvY2tTdGF0ZUlkID0gc3RhdHVzLnN0b2NrU3RhdGVJZDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1N0YXR1c1JlbWFya0NoYW5nZShyZW1hcms6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc3RvY2tTdGF0ZVJlbWFyayA9IHJlbWFyaztcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gKCF0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5zdG9ja1N0YXRlSWQgJiYgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YT8uc3RvY2tTdGF0ZVJlbWFyaz8ubGVuZ3RoIDw9IDEpO1xuICB9XG5cblxuICBwdWJsaWMgc3RhdHVzRm9ySWQoaWQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnN0b2NrU3RhdHVzLmZpbmQoIHN0YXR1cyA9PiBzdGF0dXMuc3RvY2tTdGF0ZUlkID09PSBpZCk7XG4gIH1cblxuICBwdWJsaWMgbG9jYXRpb25Gb3JOdW1iZXIobnVtYmVyOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9ja0xvY2F0aW9ucz8uZmluZCggbG9jYXRpb24gPT4gbG9jYXRpb24ubG9jYXRpb25ObyA9PT0gbnVtYmVyPy50b1N0cmluZygpKTtcbiAgfVxuICBwdWJsaWMgbG9jYXRpb25Gb3JEZXNjcmlwdGlvbihsb2NhdGlvbk5vOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIEZpbmQgdGhlIGxvY2F0aW9uIGluIHN0b2NrTG9jYXRpb25zIGJ5IGxvY2F0aW9uTm9cbiAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuc3RvY2tMb2NhdGlvbnMuZmluZChsb2MgPT4gbG9jLmxvY2F0aW9uTm8gPT09IGxvY2F0aW9uTm8pO1xuICAgIC8vIElmIGxvY2F0aW9uIGlzIGZvdW5kIGFuZCBpdCBoYXMgYSBub24tZW1wdHkgZGVzY3JpcHRpb24sIHJldHVybiBkZXNjcmlwdGlvblxuICAgIC8vIElmIGxvY2F0aW9uIGlzIG5vdCBmb3VuZCBvciBkZXNjcmlwdGlvbiBpcyBlbXB0eSwgcmV0dXJuIGxvY2F0aW9uTm9cbiAgICByZXR1cm4gbG9jYXRpb24gJiYgbG9jYXRpb24uZGVzY3JpcHRpb24gJiYgbG9jYXRpb24uZGVzY3JpcHRpb24udHJpbSgpICE9PSAnJyA/IGxvY2F0aW9uLmRlc2NyaXB0aW9uIDogbG9jYXRpb25ObztcbiAgfVxuXG59XG4iXX0=
1
+ import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
2
+ import { IconCacheService } from "../../../../service/icon-cache.service";
3
+ import { Icon } from "../../../../enum/icon.enum";
4
+ import { StockService } from "../../../../service/stock.service";
5
+ import { ArticleStockManagement } from "@colijnit/articleapi/build/model/article-stock-management";
6
+ import { ArticleDetailsBo } from "@colijnit/articleapi/build/model/article-details.bo";
7
+ export class StockLocationComponent {
8
+ constructor(iconCacheService, _stockService, _changeDetector) {
9
+ this.iconCacheService = iconCacheService;
10
+ this._stockService = _stockService;
11
+ this._changeDetector = _changeDetector;
12
+ this.icons = Icon;
13
+ this.articleStockInfo = [];
14
+ this.articleStockInformation = [];
15
+ this.dataWareHouseCode = [];
16
+ this.transferIconClicked = new EventEmitter();
17
+ this.sendMethodDialogClicked = new EventEmitter();
18
+ this.showConfirmationDialog = false;
19
+ this.newStockLine = false;
20
+ this.showConfirmStockRow = false;
21
+ this.articleDetailsInformation = new ArticleStockManagement();
22
+ this.stockLocations = [];
23
+ this.stockStatus = [];
24
+ this.selectedArticleDetailsData = new ArticleDetailsBo();
25
+ this._subs = [];
26
+ }
27
+ set article(article) {
28
+ }
29
+ ;
30
+ ngOnInit() {
31
+ this._stockService.getStockState().then(result => {
32
+ this.stockStatus = result;
33
+ });
34
+ this._subs.push(this._stockService.warehouseSelected.subscribe(selectedWarehouse => {
35
+ this._stockService.getStockManagementLocations(selectedWarehouse.warehouseNo).then(result => {
36
+ this.stockLocations = result;
37
+ });
38
+ }));
39
+ }
40
+ ngOnDestroy() {
41
+ }
42
+ onLocationDropdownClick() {
43
+ this._stockService.getStockManagementLocations(this.selectedWarehouse.warehouseNo).then((locations) => {
44
+ this.stockLocations = locations;
45
+ });
46
+ }
47
+ locationChanged(row, event) {
48
+ this.selectedLocationNo = event.locationNo;
49
+ row.locationNo = event.locationNo;
50
+ this.onLocationDropdownClick();
51
+ }
52
+ amountInStockChanged(data) {
53
+ this.selectedArticleDetailsData.amountInStock = data;
54
+ }
55
+ openSendMethodDialog(data) {
56
+ this.sendMethodDialogClicked.emit(data);
57
+ }
58
+ handleStockTransferClick(event) {
59
+ this.transferIconClicked.emit(event);
60
+ }
61
+ onOkClickSendLocations(row) {
62
+ this.selectedArticleDetailsData = row;
63
+ this.newStockLine = false;
64
+ this.showConfirmationDialog = true;
65
+ }
66
+ handleAddRow() {
67
+ var _a;
68
+ if (!((_a = this.articleStockInfo) === null || _a === void 0 ? void 0 : _a.length)) {
69
+ this.articleStockInfo = [];
70
+ }
71
+ this.articleStockInfo.push(new ArticleDetailsBo());
72
+ this.selectedArticleDetailsData = this.articleStockInfo[(this.articleStockInfo.length - 1)];
73
+ this.newStockLine = true;
74
+ this.showConfirmationDialog = true;
75
+ }
76
+ handleOkClick() {
77
+ var _a;
78
+ this.selectedArticleDetailsData.selected = true;
79
+ if (this.articleFlat.goodId) {
80
+ this.selectedArticleDetailsData.goodId = this.articleFlat.goodId;
81
+ }
82
+ else if (this.articleDetailsInformation.goodId) {
83
+ this.selectedArticleDetailsData.goodId = parseInt(this.articleDetailsInformation.goodId);
84
+ }
85
+ this.selectedArticleDetailsData.entryDate = new Date();
86
+ this.selectedArticleDetailsData.warehouseNo = this.selectedWarehouse.warehouseNo;
87
+ if (this.selectedLocationNo) {
88
+ this.selectedArticleDetailsData.locationNo = (_a = this.selectedLocationNo) === null || _a === void 0 ? void 0 : _a.toString();
89
+ }
90
+ this._stockService.updateArticleDetails(this.selectedArticleDetailsData).then(result => {
91
+ var _a;
92
+ this.articleDetailsInformation.goodId = (_a = this.selectedArticleDetailsData.goodId) === null || _a === void 0 ? void 0 : _a.toString();
93
+ this.articleDetailsInformation.warehouseNumber = this.selectedArticleDetailsData.warehouseNo;
94
+ this._stockService.getArticleDetails(this.articleDetailsInformation).then((details) => {
95
+ this.articleStockInfo = details;
96
+ });
97
+ });
98
+ this.showConfirmationDialog = false;
99
+ this._changeDetector.detectChanges();
100
+ }
101
+ handleStockStatusChange(status) {
102
+ this.selectedArticleDetailsData.stockStateId = status.stockStateId;
103
+ }
104
+ handleStockStatusRemarkChange(remark) {
105
+ this.selectedArticleDetailsData.stockStateRemark = remark;
106
+ }
107
+ disabled() {
108
+ var _a, _b, _c;
109
+ return (!((_a = this.selectedArticleDetailsData) === null || _a === void 0 ? void 0 : _a.stockStateId) && ((_c = (_b = this.selectedArticleDetailsData) === null || _b === void 0 ? void 0 : _b.stockStateRemark) === null || _c === void 0 ? void 0 : _c.length) <= 1);
110
+ }
111
+ statusForId(id) {
112
+ return this.stockStatus.find(status => status.stockStateId === id);
113
+ }
114
+ locationForNumber(number) {
115
+ var _a;
116
+ return (_a = this.stockLocations) === null || _a === void 0 ? void 0 : _a.find(location => location.locationNo === (number === null || number === void 0 ? void 0 : number.toString()));
117
+ }
118
+ locationForDescription(locationNo) {
119
+ // Find the location in stockLocations by locationNo
120
+ const location = this.stockLocations.find(loc => loc.locationNo === locationNo);
121
+ // If location is found and it has a non-empty description, return description
122
+ // If location is not found or description is empty, return locationNo
123
+ return location && location.description && location.description.trim() !== '' ? location.description : locationNo;
124
+ }
125
+ }
126
+ StockLocationComponent.decorators = [
127
+ { type: Component, args: [{
128
+ selector: "co-stock-location",
129
+ template: `
130
+ <div class="stock-grid">
131
+ <co-stock-location-popup
132
+ [selectedWarehouse]="selectedWarehouse"
133
+ [articleFlat]="articleFlat"
134
+ [selectedLocationNo]="selectedLocationNo"
135
+ [stockLocations]="stockLocations"
136
+ [articleDetailsInformation]="articleDetailsInformation"
137
+ [articleStockInfo]="articleStockInfo"
138
+ [selectedArticleDetailsData]="selectedArticleDetailsData"
139
+ [showConfirmationDialog]="showConfirmationDialog"
140
+ [newStockLine]="newStockLine"
141
+ (togglePopupEvent)="showConfirmationDialog = $event"
142
+
143
+ ></co-stock-location-popup>
144
+ <co-simple-grid [data]="articleStockInfo"
145
+ class="simple-grid"
146
+ [showAdd]="true"
147
+ [inlineEdit]="false"
148
+ [showToolbar]="true"
149
+ (addRow)="handleAddRow()"
150
+ >
151
+ <co-simple-grid-column [headerText]="'STOCK' | localize" [field]="'amountInStock'">
152
+ <ng-template #template let-row="row">
153
+ <div class="stock-amount" (click)="onOkClickSendLocations(row)">
154
+ <co-icon class="menu-icon" [iconData]="iconCacheService.getIcon(icons.EditPenRegular)"></co-icon>
155
+ <span [textContent]="row['amountInStock']"></span>
156
+ </div>
157
+ </ng-template>
158
+ </co-simple-grid-column>
159
+ <co-simple-grid-column [width]="150" [headerText]="'LOCATION' | localize" [field]="'locationNo'">
160
+ <ng-template #editTemplate let-row="row">
161
+ <co-list-of-values
162
+ [model]="locationForNumber(row['locationNo'])"
163
+ [collection]="stockLocations"
164
+ [displayField]="'description'"
165
+ [label]="'LOCATION' | localize"
166
+ [required]="true"
167
+ (modelChange)="locationChanged(row, $event)"
168
+ ></co-list-of-values>
169
+ </ng-template>
170
+ </co-simple-grid-column>
171
+ <co-simple-grid-column *ngIf="articleFlat?.batch" [headerText]="'BATCH' | localize" [field]="'batchNo'">
172
+ <ng-template #editTemplate let-row="row">
173
+ <co-input-text [model]="selectedArticleDetailsData.batchNo"
174
+ [placeholder]="'BATCH' | localize"
175
+ (modelChange)="row['batchNo'] = $event"
176
+ ></co-input-text>
177
+ </ng-template>
178
+ </co-simple-grid-column>
179
+ <co-simple-grid-column *ngIf="articleFlat?.serial" [headerText]="'SERIAL_NO' | localize" [field]="'serialNo'">
180
+ <ng-template #editTemplate let-row="row">
181
+ <co-input-text [model]="selectedArticleDetailsData.serialNo"
182
+ [placeholder]="'SERIAL_NO' | localize"
183
+ (modelChange)="row['serialNo'] = $event"
184
+ ></co-input-text>
185
+ </ng-template>
186
+ </co-simple-grid-column>
187
+ <co-simple-grid-column [headerText]="'ALLOCATED' | localize" [field]="'stockAssigned'">
188
+ <ng-template #editTemplate let-row="row">
189
+ <span [textContent]="row['stockAssigned']"></span>
190
+ </ng-template>
191
+ </co-simple-grid-column>
192
+ <co-simple-grid-column [headerText]="'AVAILABLE_STOCK' | localize" [field]="'amountInStockFree'">
193
+ <ng-template #editTemplate let-row="row">
194
+ <span [textContent]="row['amountInStockFree']"></span>
195
+ </ng-template>
196
+ </co-simple-grid-column>
197
+ <co-simple-grid-column [headerText]="'VALUTA' | localize" [field]="'currency'">
198
+ <ng-template #editTemplate let-row="row">
199
+ <span [textContent]="row['currency']"></span>
200
+ </ng-template>
201
+ </co-simple-grid-column>
202
+ <co-simple-grid-column [headerText]="'PURCHASE_PRICE' | localize" [field]="'purchasePrice'">
203
+ <ng-template #editTemplate let-row="row">
204
+ <span [textContent]="row['purchasePrice']"></span>
205
+ </ng-template>
206
+ </co-simple-grid-column>
207
+ <co-simple-grid-column [headerText]="'SUPPLIERNR' | localize" [field]="'supplierNo'">
208
+ <ng-template #editTemplate let-row="row">
209
+ <span [textContent]="row['supplierNo']"></span>
210
+ </ng-template>
211
+ </co-simple-grid-column>
212
+ <co-simple-grid-column [readonly]="true" [headerText]="'TRANSFER' | localize" [field]="'transfer'">
213
+ <ng-template #template let-row="row">
214
+ <co-icon class="menu-icon" [iconData]="iconCacheService.getIcon(icons.DeliveryTruck)"
215
+ (click)="handleStockTransferClick(row)"></co-icon>
216
+ </ng-template>
217
+ <ng-template #editTemplate></ng-template>
218
+ </co-simple-grid-column>
219
+ <co-simple-grid-column [readonly]="true" [headerText]="'STICKER' | localize" [field]="'sticker'">
220
+ <ng-template #template let-row="row">
221
+ <co-icon class="menu-icon" [iconData]="iconCacheService.getIcon(icons.Print)"
222
+ (click)="openSendMethodDialog(row)"></co-icon>
223
+ </ng-template>
224
+ <ng-template #editTemplate></ng-template>
225
+ </co-simple-grid-column>
226
+ </co-simple-grid>
227
+ </div>
228
+ `,
229
+ encapsulation: ViewEncapsulation.None
230
+ },] }
231
+ ];
232
+ StockLocationComponent.ctorParameters = () => [
233
+ { type: IconCacheService },
234
+ { type: StockService },
235
+ { type: ChangeDetectorRef }
236
+ ];
237
+ StockLocationComponent.propDecorators = {
238
+ articleStockInfo: [{ type: Input }],
239
+ articleStockInformation: [{ type: Input }],
240
+ article: [{ type: Input }],
241
+ articleFlat: [{ type: Input }],
242
+ dataWareHouseCode: [{ type: Input }],
243
+ transferIconClicked: [{ type: Output }],
244
+ sendMethodDialogClicked: [{ type: Output }],
245
+ selectedWarehouse: [{ type: Input }],
246
+ stockLocations: [{ type: Input }]
247
+ };
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay1sb2NhdGlvbi9zdG9jay1sb2NhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFnSHJGLE1BQU0sT0FBTyxzQkFBc0I7SUErQ2pDLFlBQ1MsZ0JBQWtDLEVBQ2pDLGFBQTJCLEVBQzNCLGVBQWtDO1FBRm5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBakQ1QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUduQyxxQkFBZ0IsR0FBdUIsRUFBRSxDQUFDO1FBRzFDLDRCQUF1QixHQUFxQixFQUFFLENBQUM7UUFZL0Msc0JBQWlCLEdBQWdDLEVBQUUsQ0FBQztRQUczQyx3QkFBbUIsR0FBaUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd2RSw0QkFBdUIsR0FBcUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU94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QzlDLG9EQUFvRDtRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUM7UUFDaEYsOEVBQThFO1FBQzlFLHNFQUFzRTtRQUN0RSxPQUFPLFFBQVEsSUFBSSxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDcEgsQ0FBQzs7O1lBdlFGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1HVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBcEhPLGdCQUFnQjtZQUVoQixZQUFZO1lBWmxCLGlCQUFpQjs7OytCQWtJaEIsS0FBSztzQ0FHTCxLQUFLO3NCQUdMLEtBQUs7MEJBS0wsS0FBSztnQ0FJTCxLQUFLO2tDQUdMLE1BQU07c0NBR04sTUFBTTtnQ0FHTixLQUFLOzZCQVdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FydGljbGVTdG9jayBhcyBBcnRpY2xlU3RvY2tCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2suYm9cIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbWFuYWdlbWVudC13YXJlaG91c2VzLmJvXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrTWFuYWdlbWVudH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2stbWFuYWdlbWVudFwiO1xyXG5pbXBvcnQge0FydGljbGVEZXRhaWxzQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm9cIjtcclxuaW1wb3J0IHtTdG9ja0xvY2F0aW9ufSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbG9jYXRpb24uYm9cIjtcclxuaW1wb3J0IHtQcmludFByaWNlU3RpY2tlcnN9IGZyb20gXCJAY29saWpuaXQvc2hhcmVkYXBpL2J1aWxkL21vZGVsL3ByaW50LXByaWNlLXN0aWNrZXJzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7QXJ0aWNsZUV4dGVuZGVkfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1leHRlbmRlZC5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVGbGF0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mbGF0LmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1zdG9jay1sb2NhdGlvblwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvY2stZ3JpZFwiPlxyXG4gICAgICAgIDxjby1zdG9jay1sb2NhdGlvbi1wb3B1cFxyXG4gICAgICAgICAgW3NlbGVjdGVkV2FyZWhvdXNlXT1cInNlbGVjdGVkV2FyZWhvdXNlXCJcclxuICAgICAgICAgIFthcnRpY2xlRmxhdF09XCJhcnRpY2xlRmxhdFwiXHJcbiAgICAgICAgICBbc2VsZWN0ZWRMb2NhdGlvbk5vXT1cInNlbGVjdGVkTG9jYXRpb25Ob1wiXHJcbiAgICAgICAgICBbc3RvY2tMb2NhdGlvbnNdPVwic3RvY2tMb2NhdGlvbnNcIlxyXG4gICAgICAgICAgW2FydGljbGVEZXRhaWxzSW5mb3JtYXRpb25dPVwiYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICBbYXJ0aWNsZVN0b2NrSW5mb109XCJhcnRpY2xlU3RvY2tJbmZvXCJcclxuICAgICAgICAgIFtzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YV09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YVwiXHJcbiAgICAgICAgICBbc2hvd0NvbmZpcm1hdGlvbkRpYWxvZ109XCJzaG93Q29uZmlybWF0aW9uRGlhbG9nXCJcclxuICAgICAgICAgIFtuZXdTdG9ja0xpbmVdPVwibmV3U3RvY2tMaW5lXCJcclxuICAgICAgICAgICh0b2dnbGVQb3B1cEV2ZW50KT1cInNob3dDb25maXJtYXRpb25EaWFsb2cgPSAkZXZlbnRcIlxyXG5cclxuICAgICAgICA+PC9jby1zdG9jay1sb2NhdGlvbi1wb3B1cD5cclxuICAgICAgPGNvLXNpbXBsZS1ncmlkIFtkYXRhXT1cImFydGljbGVTdG9ja0luZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaW1wbGUtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd0FkZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtpbmxpbmVFZGl0XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93VG9vbGJhcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChhZGRSb3cpPVwiaGFuZGxlQWRkUm93KClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1RPQ0snIHwgbG9jYWxpemVcIiBbZmllbGRdPVwiJ2Ftb3VudEluU3RvY2snXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWFtb3VudFwiIChjbGljayk9XCJvbk9rQ2xpY2tTZW5kTG9jYXRpb25zKHJvdylcIj5cclxuICAgICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuRWRpdFBlblJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJyb3dbJ2Ftb3VudEluU3RvY2snXVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW3dpZHRoXT1cIjE1MFwiIFtoZWFkZXJUZXh0XT1cIidMT0NBVElPTicgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInbG9jYXRpb25ObydcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwibG9jYXRpb25Gb3JOdW1iZXIocm93Wydsb2NhdGlvbk5vJ10pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInN0b2NrTG9jYXRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ2Rlc2NyaXB0aW9uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0xPQ0FUSU9OJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJsb2NhdGlvbkNoYW5nZWQocm93LCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gKm5nSWY9XCJhcnRpY2xlRmxhdD8uYmF0Y2hcIiBbaGVhZGVyVGV4dF09XCInQkFUQ0gnIHwgbG9jYWxpemVcIiBbZmllbGRdPVwiJ2JhdGNoTm8nXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5iYXRjaE5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidCQVRDSCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJyb3dbJ2JhdGNoTm8nXSA9ICRldmVudFwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gKm5nSWY9XCJhcnRpY2xlRmxhdD8uc2VyaWFsXCIgW2hlYWRlclRleHRdPVwiJ1NFUklBTF9OTycgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInc2VyaWFsTm8nXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zZXJpYWxOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU0VSSUFMX05PJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInJvd1snc2VyaWFsTm8nXSA9ICRldmVudFwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FMTE9DQVRFRCcgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInc3RvY2tBc3NpZ25lZCdcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1snc3RvY2tBc3NpZ25lZCddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidBVkFJTEFCTEVfU1RPQ0snIHwgbG9jYWxpemVcIiBbZmllbGRdPVwiJ2Ftb3VudEluU3RvY2tGcmVlJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydhbW91bnRJblN0b2NrRnJlZSddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidWQUxVVEEnIHwgbG9jYWxpemVcIiBbZmllbGRdPVwiJ2N1cnJlbmN5J1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydjdXJyZW5jeSddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidQVVJDSEFTRV9QUklDRScgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCIncHVyY2hhc2VQcmljZSdcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1sncHVyY2hhc2VQcmljZSddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVVBQTElFUk5SJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidzdXBwbGllck5vJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydzdXBwbGllck5vJ11cIj48L3NwYW4+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW3JlYWRvbmx5XT1cInRydWVcIiBbaGVhZGVyVGV4dF09XCInVFJBTlNGRVInIHwgbG9jYWxpemVcIiBbZmllbGRdPVwiJ3RyYW5zZmVyJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5EZWxpdmVyeVRydWNrKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2socm93KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZT48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW3JlYWRvbmx5XT1cInRydWVcIiBbaGVhZGVyVGV4dF09XCInU1RJQ0tFUicgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInc3RpY2tlcidcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuUHJpbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZW5kTWV0aG9kRGlhbG9nKHJvdylcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGU+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvY2tMb2NhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZVN0b2NrSW5mbzogQXJ0aWNsZURldGFpbHNCb1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVTdG9ja0luZm9ybWF0aW9uOiBBcnRpY2xlU3RvY2tCb1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhcnRpY2xlKGFydGljbGU6IEFydGljbGVFeHRlbmRlZCkge1xyXG5cclxuICB9O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlRmxhdDogQXJ0aWNsZUZsYXQ7XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkYXRhV2FyZUhvdXNlQ29kZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2Zlckljb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZVN0b2NrQm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxQcmludFByaWNlU3RpY2tlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcztcclxuXHJcblxyXG4gIHB1YmxpYyBhcnRpY2xlRGV0YWlsczogQXJ0aWNsZURldGFpbHNCbztcclxuICBwdWJsaWMgc2hvd0NvbmZpcm1hdGlvbkRpYWxvZzpib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIG5ld1N0b2NrTGluZTpib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dDb25maXJtU3RvY2tSb3c6Ym9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbjogQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCA9IG5ldyBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50KClcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3RvY2tMb2NhdGlvbnM6IFN0b2NrTG9jYXRpb25bXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc3RvY2tTdGF0dXM6IFN0b2NrU3RhdHVzW10gPSBbXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE6IEFydGljbGVEZXRhaWxzQm8gPSBuZXcgQXJ0aWNsZURldGFpbHNCbygpO1xyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbk5vOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3N0b2NrU2VydmljZTogU3RvY2tTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG5cclxuICApIHtcclxuICB9XHJcblxyXG4gICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja1N0YXRlKCkudGhlbiggcmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5zdG9ja1N0YXR1cyA9IHJlc3VsdDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKHRoaXMuX3N0b2NrU2VydmljZS53YXJlaG91c2VTZWxlY3RlZC5zdWJzY3JpYmUoICBzZWxlY3RlZFdhcmVob3VzZSA9PiB7XHJcbiAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnMoc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm8pLnRoZW4oIHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5zdG9ja0xvY2F0aW9ucyA9IHJlc3VsdDtcclxuICAgICAgfSk7XHJcbiAgICB9KSk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcblxyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkxvY2F0aW9uRHJvcGRvd25DbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnModGhpcy5zZWxlY3RlZFdhcmVob3VzZS53YXJlaG91c2VObykudGhlbigobG9jYXRpb25zKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RvY2tMb2NhdGlvbnMgPSBsb2NhdGlvbnM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NhdGlvbkNoYW5nZWQocm93OiBBcnRpY2xlRGV0YWlsc0JvLCBldmVudDogU3RvY2tMb2NhdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uTm8gPSBldmVudC5sb2NhdGlvbk5vO1xyXG4gICAgcm93LmxvY2F0aW9uTm8gPSBldmVudC5sb2NhdGlvbk5vO1xyXG4gICAgdGhpcy5vbkxvY2F0aW9uRHJvcGRvd25DbGljaygpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYW1vdW50SW5TdG9ja0NoYW5nZWQoZGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrID0gZGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuU2VuZE1ldGhvZERpYWxvZyhkYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbmRNZXRob2REaWFsb2dDbGlja2VkLmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RvY2tUcmFuc2ZlckNsaWNrKGV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zZmVySWNvbkNsaWNrZWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBvbk9rQ2xpY2tTZW5kTG9jYXRpb25zKHJvdzogQXJ0aWNsZURldGFpbHNCbyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YSA9IHJvdztcclxuICAgIHRoaXMubmV3U3RvY2tMaW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb25EaWFsb2cgPSB0cnVlO1xyXG4gIH1cclxuICBwdWJsaWMgaGFuZGxlQWRkUm93KCkge1xyXG4gICAgaWYoIXRoaXMuYXJ0aWNsZVN0b2NrSW5mbz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuYXJ0aWNsZVN0b2NrSW5mbyA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hcnRpY2xlU3RvY2tJbmZvLnB1c2gobmV3IEFydGljbGVEZXRhaWxzQm8oKSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhID0gdGhpcy5hcnRpY2xlU3RvY2tJbmZvWyh0aGlzLmFydGljbGVTdG9ja0luZm8ubGVuZ3RoIC0gMSldO1xyXG4gICAgdGhpcy5uZXdTdG9ja0xpbmUgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93Q29uZmlybWF0aW9uRGlhbG9nID0gdHJ1ZTtcclxuICB9XHJcbiAgcHVibGljIGhhbmRsZU9rQ2xpY2soKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIGlmKHRoaXMuYXJ0aWNsZUZsYXQuZ29vZElkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZ29vZElkID0gdGhpcy5hcnRpY2xlRmxhdC5nb29kSWQ7XHJcbiAgICB9IGVsc2UgaWYodGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmdvb2RJZCA9IHBhcnNlSW50KHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5lbnRyeURhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS53YXJlaG91c2VObyA9IHRoaXMuc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm87XHJcbiAgICBpZih0aGlzLnNlbGVjdGVkTG9jYXRpb25Obykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmxvY2F0aW9uTm8gPSB0aGlzLnNlbGVjdGVkTG9jYXRpb25Obz8udG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS51cGRhdGVBcnRpY2xlRGV0YWlscyh0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhKS50aGVuKCByZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24uZ29vZElkID0gdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5nb29kSWQ/LnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi53YXJlaG91c2VOdW1iZXIgPSB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLndhcmVob3VzZU5vO1xyXG4gICAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZURldGFpbHModGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uKS50aGVuKChkZXRhaWxzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcnRpY2xlU3RvY2tJbmZvID0gZGV0YWlscztcclxuICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb25EaWFsb2cgPSBmYWxzZTtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1N0YXR1c0NoYW5nZShzdGF0dXM6IFN0b2NrU3RhdHVzKSB7XHJcbiAgICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zdG9ja1N0YXRlSWQgPSBzdGF0dXMuc3RvY2tTdGF0ZUlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrU3RhdHVzUmVtYXJrQ2hhbmdlKHJlbWFyazogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnN0b2NrU3RhdGVSZW1hcmsgPSByZW1hcms7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gKCF0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5zdG9ja1N0YXRlSWQgJiYgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YT8uc3RvY2tTdGF0ZVJlbWFyaz8ubGVuZ3RoIDw9IDEpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0dXNGb3JJZChpZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9ja1N0YXR1cy5maW5kKCBzdGF0dXMgPT4gc3RhdHVzLnN0b2NrU3RhdGVJZCA9PT0gaWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2F0aW9uRm9yTnVtYmVyKG51bWJlcjogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9ja0xvY2F0aW9ucz8uZmluZCggbG9jYXRpb24gPT4gbG9jYXRpb24ubG9jYXRpb25ObyA9PT0gbnVtYmVyPy50b1N0cmluZygpKTtcclxuICB9XHJcbiAgcHVibGljIGxvY2F0aW9uRm9yRGVzY3JpcHRpb24obG9jYXRpb25Obzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIC8vIEZpbmQgdGhlIGxvY2F0aW9uIGluIHN0b2NrTG9jYXRpb25zIGJ5IGxvY2F0aW9uTm9cclxuICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5zdG9ja0xvY2F0aW9ucy5maW5kKGxvYyA9PiBsb2MubG9jYXRpb25ObyA9PT0gbG9jYXRpb25Obyk7XHJcbiAgICAvLyBJZiBsb2NhdGlvbiBpcyBmb3VuZCBhbmQgaXQgaGFzIGEgbm9uLWVtcHR5IGRlc2NyaXB0aW9uLCByZXR1cm4gZGVzY3JpcHRpb25cclxuICAgIC8vIElmIGxvY2F0aW9uIGlzIG5vdCBmb3VuZCBvciBkZXNjcmlwdGlvbiBpcyBlbXB0eSwgcmV0dXJuIGxvY2F0aW9uTm9cclxuICAgIHJldHVybiBsb2NhdGlvbiAmJiBsb2NhdGlvbi5kZXNjcmlwdGlvbiAmJiBsb2NhdGlvbi5kZXNjcmlwdGlvbi50cmltKCkgIT09ICcnID8gbG9jYXRpb24uZGVzY3JpcHRpb24gOiBsb2NhdGlvbk5vO1xyXG4gIH1cclxuXHJcbn1cclxuIl19