tnx-shared 5.2.17 → 5.2.18

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 (452) hide show
  1. package/classes/base/component-base.d.ts +1 -1
  2. package/classes/base/data-form-base.d.ts +1 -1
  3. package/classes/base/data-list-base.d.ts +1 -1
  4. package/classes/base/list-base.d.ts +1 -1
  5. package/classes/base/tree-list-base.d.ts +1 -1
  6. package/classes/public-function.d.ts +3 -2
  7. package/components/access-denied-component/access-denied-v1/access-denied-v1.component.d.ts +1 -1
  8. package/components/access-denied-component/access-denied.component.d.ts +1 -1
  9. package/components/add-news/add-news.component.d.ts +1 -1
  10. package/components/address/address.component.d.ts +1 -1
  11. package/components/after-view-checked/after-view-checked.component.d.ts +1 -1
  12. package/components/autocomplete-datasource/autocomplete-datasource.component.d.ts +1 -1
  13. package/components/autocomplete-picker/autocomplete-picker.component.d.ts +1 -1
  14. package/components/avatar-uploader/avatar-uploader.component.d.ts +1 -1
  15. package/components/chat/chat-box/chat-box.component.d.ts +1 -1
  16. package/components/chat/chat-send-message-box/chat-send-message-box.component.d.ts +1 -1
  17. package/components/check-box-list/check-box-list.component.d.ts +1 -1
  18. package/components/cocautochuc/cocautochuc-picker/cocautochuc-picker.component.d.ts +1 -1
  19. package/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.d.ts +1 -1
  20. package/components/common-app-component/app-root-menu/app-root-menu.component.d.ts +1 -1
  21. package/components/common-app-component/app-topbar-v1/app-topbar-v1.component.d.ts +1 -1
  22. package/components/common-app-component/app-topbar-v2/app-topbar-v2.component.d.ts +1 -1
  23. package/components/common-app-component/app.footer.component.d.ts +1 -1
  24. package/components/common-app-component/app.menu.component.d.ts +2 -2
  25. package/components/common-app-component/app.profile.component.d.ts +1 -1
  26. package/components/common-app-component/app.topbar.component.d.ts +1 -1
  27. package/components/common-app-component/common-app-component.d.ts +1 -1
  28. package/components/common-app-component/default-setting-form/default-data-settings.component.d.ts +1 -1
  29. package/components/common-dashboard/common-dashboard.component.d.ts +1 -1
  30. package/components/congviec-picker/congviec-picker.component.d.ts +1 -1
  31. package/components/crud/advance-search/advance-search.component.d.ts +1 -1
  32. package/components/crud/check-ready/check-ready.component.d.ts +1 -1
  33. package/components/crud/crud-form/crud-form.component.d.ts +1 -1
  34. package/components/crud/crud-list/crud-list.component.d.ts +1 -1
  35. package/components/crud/table-detail-form/table-detail-form.component.d.ts +1 -1
  36. package/components/crud/tn-table.component.d.ts +1 -1
  37. package/components/crud/tree-table/tree-table.component.d.ts +1 -1
  38. package/components/datetime-picker/datetime-picker.component.d.ts +1 -1
  39. package/components/datetime-picker-range/datetime-picker-range.component.d.ts +1 -1
  40. package/components/dropdown/dropdown.component.d.ts +1 -1
  41. package/components/dropdown/quick-add-form/quick-add-form.component.d.ts +1 -1
  42. package/components/entity-permission/entity-permission.component.d.ts +1 -1
  43. package/components/entity-picker/entity-picker-box/entity-picker-box.component.d.ts +1 -1
  44. package/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.d.ts +1 -1
  45. package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts +1 -1
  46. package/components/entity-picker/entity-picker-dialog/entity-picker-dialog.component.d.ts +1 -1
  47. package/components/entity-picker/entity-picker.component.d.ts +1 -1
  48. package/components/equation-editor/equation-editor.component.d.ts +1 -1
  49. package/components/file-explorer/file-explorer.component.d.ts +1 -1
  50. package/components/file-explorer/file-form/file-form.component.d.ts +1 -1
  51. package/components/file-explorer/file-ky-so-sim/file-ky-so-sim.component.d.ts +1 -1
  52. package/components/file-explorer/file-manager/file-manager.component.d.ts +1 -1
  53. package/components/file-explorer/file-picker-dialog/file-picker-dialog.component.d.ts +1 -1
  54. package/components/file-explorer/file-tai-lieu/file-tai-lieu.component.d.ts +1 -1
  55. package/components/file-explorer/file-tai-lieu/khaithac-tailieu-dungchung/khaithac-tailieu-dungchung.component.d.ts +1 -1
  56. package/components/file-explorer/file-tai-lieu/tailieu-cuatoi/tailieu-cuatoi.component.d.ts +1 -1
  57. package/components/file-explorer/file-version-list/file-version-list.component.d.ts +1 -1
  58. package/components/file-explorer/file-viewer/file-viewer.component.d.ts +1 -1
  59. package/components/file-explorer/folder-form/folder-form.component.d.ts +1 -1
  60. package/components/file-explorer/ky-so-sim-danh-sach-chu-ky/ky-so-sim-danh-sach-chu-ky.component.d.ts +1 -1
  61. package/components/file-explorer/signature-detail/signature-detail.component.d.ts +1 -1
  62. package/components/file-upload/file-upload.component.d.ts +1 -1
  63. package/components/key-value/key-value.component.d.ts +1 -1
  64. package/components/mask/mask.component.d.ts +1 -1
  65. package/components/not-found/not-found.component.d.ts +1 -1
  66. package/components/number-picker-range/number-picker-range.component.d.ts +1 -1
  67. package/components/paging-next-back-only/paging-next-back-only.component.d.ts +1 -1
  68. package/components/permission-utils/permission-utils.component.d.ts +1 -1
  69. package/components/qr-code-generator/qr-code-generator.component.d.ts +1 -1
  70. package/components/query-builders/query-builder/query-builder.component.d.ts +1 -1
  71. package/components/query-builders/query-builder-group/query-builder-group.component.d.ts +1 -1
  72. package/components/query-builders/query-builder-rule/query-builder-rule.component.d.ts +1 -1
  73. package/components/radio-button-list/radio-button-list.component.d.ts +1 -1
  74. package/components/report-queue/report-queue.component.d.ts +1 -1
  75. package/components/service-file-upload/service-file-upload.component.d.ts +1 -1
  76. package/components/settings/settings-row/settings-row.component.d.ts +1 -1
  77. package/components/settings/settings-workflow/settings-workflow-no1/settings-workflow-no1.component.d.ts +1 -1
  78. package/components/settings/settings-workflow/settings-workflow.component.d.ts +1 -1
  79. package/components/settings/settings.component.d.ts +1 -1
  80. package/components/share-link-by-permission/share-link-by-permission.component.d.ts +1 -1
  81. package/components/splash-component/splash-component-v1/splash-component-v1.component.d.ts +1 -1
  82. package/components/splash-component/splash-component-v2/splash-component-v2.component.d.ts +1 -1
  83. package/components/splash-component/splash-component.component.d.ts +1 -1
  84. package/components/statemachines/dynamic-node/dynamic-node.component.d.ts +1 -1
  85. package/components/statemachines/state/state.component.d.ts +1 -1
  86. package/components/statemachines/state-metadata/state-metadata.component.d.ts +1 -1
  87. package/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.d.ts +1 -1
  88. package/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.d.ts +1 -1
  89. package/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.d.ts +1 -1
  90. package/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.d.ts +1 -1
  91. package/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.d.ts +1 -1
  92. package/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.d.ts +1 -1
  93. package/components/statemachines/statemachines-connection-receiver-user/statemachines-connection-receiver-user.component.d.ts +1 -1
  94. package/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.d.ts +1 -1
  95. package/components/statemachines/statemachines-designer/statemachines-designer.component.d.ts +1 -1
  96. package/components/tn-app-help/helper-current-page/helper-current-page.component.d.ts +1 -1
  97. package/components/tn-app-help/tn-app-help.component.d.ts +1 -1
  98. package/components/tn-app-notification/tn-app-notification-list/tn-app-notification-list.component.d.ts +1 -1
  99. package/components/tn-app-notification/tn-app-notification.component.d.ts +1 -1
  100. package/components/tn-checkbox/tn-checkbox.component.d.ts +1 -1
  101. package/components/tn-color-picker/tn-color-picker.component.d.ts +1 -1
  102. package/components/tn-custom-scrollbar/tn-custom-scrollbar.component.d.ts +1 -1
  103. package/components/tn-dialog/tn-dialog.component.d.ts +1 -1
  104. package/components/tn-tabview/tn-tabview.component.d.ts +1 -1
  105. package/components/tn-template/tn-template.component.d.ts +1 -1
  106. package/components/tn-tinymce/tn-tinymce.component.d.ts +1 -1
  107. package/components/universal-link-processor/universal-link-processor.component.d.ts +1 -1
  108. package/components/user-picker/user-picker-box/user-picker-box.component.d.ts +1 -1
  109. package/components/user-picker/user-picker-dialog/user-picker-dialog.component.d.ts +1 -1
  110. package/components/user-picker/user-picker.component.d.ts +1 -1
  111. package/components/vanban-picker/vanban-den-picker/vanban-den-picker.component.d.ts +1 -1
  112. package/components/vanban-picker/vanban-di-picker/vanban-di-picker.component.d.ts +1 -1
  113. package/components/vanban-picker/vanban-picker-dialog/vanban-picker-dialog.component.d.ts +1 -1
  114. package/components/vanban-picker/vanban-picker.component.d.ts +1 -1
  115. package/components/workflow/cho-y-kien-form/cho-y-kien-form.component.d.ts +1 -1
  116. package/components/workflow/permission-sharing/permission-sharing.component.d.ts +1 -1
  117. package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts +1 -1
  118. package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts +1 -1
  119. package/components/workflow/simple-workflow-form/simple-workflow-form.component.d.ts +1 -1
  120. package/components/workflow/start-workflow/start-workflow.component.d.ts +1 -1
  121. package/components/workflow/workflow-history/workflow-history.component.d.ts +1 -1
  122. package/components/workflow/workflow-history-dialog/workflow-history-dialog.component.d.ts +1 -1
  123. package/components/workflow/workflow-history-new/workflow-history-new.component.d.ts +1 -1
  124. package/components/workflow/workflow-permission/workflow-permission.component.d.ts +1 -1
  125. package/components/workflow/workflow-permission-form/workflow-permission-form.component.d.ts +1 -1
  126. package/components/workflow/workflow-picker/workflow-picker.component.d.ts +1 -1
  127. package/components/workflow/workflow-setting/workflow-setting.component.d.ts +1 -1
  128. package/components/workflow/workflow-setting-dialog/workflow-setting-dialog.component.d.ts +1 -1
  129. package/components/workflow/workflow-setting-new/workflow-setting-new.component.d.ts +1 -1
  130. package/congviec/cauhinh-workflow/cauhinh-workflow-detail/cauhinh-workflow-detail.component.d.ts +1 -1
  131. package/congviec/cauhinh-workflow/cauhinh-workflow.component.d.ts +1 -1
  132. package/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.d.ts +1 -1
  133. package/congviec/congviec/congviec-dinhkem-form/congviec-dinhkem-form.component.d.ts +1 -1
  134. package/congviec/congviec/congviec-form/congviec-form.component.d.ts +1 -1
  135. package/congviec/congviec/congviec-next-first-step/congviec-next-first-step.component.d.ts +1 -1
  136. package/congviec/congviec/congviec.component.d.ts +1 -1
  137. package/congviec/congviec-test/congviec.component.d.ts +1 -1
  138. package/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec-form/dm-linhvuc-congviec-form.component.d.ts +1 -1
  139. package/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec.component.d.ts +1 -1
  140. package/congviec/dm-loai-congviec/dm-loai-congviec-form/dm-loai-congviec-form.component.d.ts +1 -1
  141. package/congviec/dm-loai-congviec/dm-loai-congviec.component.d.ts +1 -1
  142. package/congviec/dm-priority/dm-priority-form/dm-priority-form.component.d.ts +1 -1
  143. package/congviec/dm-priority/dm-priority.component.d.ts +1 -1
  144. package/directives/authorize.directive.d.ts +1 -1
  145. package/directives/prevent-shift-tab.directive.d.ts +1 -1
  146. package/directives/primeng/tn-table.directive.d.ts +5 -5
  147. package/directives/tn-template.directive.d.ts +1 -1
  148. package/esm2020/app-context/application-context.service.mjs +3 -3
  149. package/esm2020/app-context/component-context.service.mjs +3 -3
  150. package/esm2020/classes/base/component-base.mjs +3 -3
  151. package/esm2020/classes/base/data-form-base.mjs +3 -3
  152. package/esm2020/classes/base/data-list-base.mjs +3 -3
  153. package/esm2020/classes/base/list-base.mjs +3 -3
  154. package/esm2020/classes/base/tree-list-base.mjs +3 -3
  155. package/esm2020/components/access-denied-component/access-denied-v1/access-denied-v1.component.mjs +3 -3
  156. package/esm2020/components/access-denied-component/access-denied.component.mjs +6 -6
  157. package/esm2020/components/add-news/add-news.component.mjs +6 -6
  158. package/esm2020/components/address/address.component.mjs +5 -5
  159. package/esm2020/components/address/services/address.service.mjs +3 -3
  160. package/esm2020/components/after-view-checked/after-view-checked.component.mjs +4 -4
  161. package/esm2020/components/autocomplete-datasource/autocomplete-datasource.component.mjs +7 -7
  162. package/esm2020/components/autocomplete-picker/autocomplete-picker.component.mjs +11 -11
  163. package/esm2020/components/avatar-uploader/avatar-uploader.component.mjs +6 -6
  164. package/esm2020/components/chat/chat-box/chat-box.component.mjs +7 -7
  165. package/esm2020/components/chat/chat-send-message-box/chat-send-message-box.component.mjs +10 -10
  166. package/esm2020/components/chat/services/chat.service.mjs +3 -3
  167. package/esm2020/components/chat/services/content.service.mjs +3 -3
  168. package/esm2020/components/chat/services/message-board.service.mjs +3 -3
  169. package/esm2020/components/chat/services/status.service.mjs +3 -3
  170. package/esm2020/components/check-box-list/check-box-list.component.mjs +8 -8
  171. package/esm2020/components/cocautochuc/cocautochuc-picker/cocautochuc-picker.component.mjs +7 -7
  172. package/esm2020/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.mjs +6 -6
  173. package/esm2020/components/cocautochuc/services/cocautochuc.service.mjs +3 -3
  174. package/esm2020/components/common-app-component/app-root-menu/app-root-menu.component.mjs +4 -4
  175. package/esm2020/components/common-app-component/app-topbar-v1/app-topbar-v1.component.mjs +11 -11
  176. package/esm2020/components/common-app-component/app-topbar-v2/app-topbar-v2.component.mjs +9 -9
  177. package/esm2020/components/common-app-component/app.footer.component.mjs +3 -3
  178. package/esm2020/components/common-app-component/app.menu.component.mjs +11 -17
  179. package/esm2020/components/common-app-component/app.profile.component.mjs +5 -5
  180. package/esm2020/components/common-app-component/app.topbar.component.mjs +11 -11
  181. package/esm2020/components/common-app-component/common-app-component.mjs +15 -15
  182. package/esm2020/components/common-app-component/default-setting-form/default-data-settings.component.mjs +7 -7
  183. package/esm2020/components/common-dashboard/common-dashboard.component.mjs +3 -3
  184. package/esm2020/components/congviec-picker/congviec-picker.component.mjs +7 -7
  185. package/esm2020/components/congviec-picker/services/congviec.service.mjs +3 -3
  186. package/esm2020/components/congviec-picker/services/taskworkflowhistories.service.mjs +3 -3
  187. package/esm2020/components/crud/advance-search/advance-search.component.mjs +14 -14
  188. package/esm2020/components/crud/check-ready/check-ready.component.mjs +4 -4
  189. package/esm2020/components/crud/crud-form/crud-form.component.mjs +26 -26
  190. package/esm2020/components/crud/crud-list/crud-list.component.mjs +25 -25
  191. package/esm2020/components/crud/table-detail-form/table-detail-form.component.mjs +6 -6
  192. package/esm2020/components/crud/tn-table.component.mjs +3 -3
  193. package/esm2020/components/crud/tree-table/tree-table.component.mjs +23 -23
  194. package/esm2020/components/datetime-picker/datetime-picker.component.mjs +7 -7
  195. package/esm2020/components/datetime-picker-range/datetime-picker-range.component.mjs +6 -6
  196. package/esm2020/components/dropdown/dropdown.component.mjs +11 -11
  197. package/esm2020/components/dropdown/quick-add-form/quick-add-form.component.mjs +6 -6
  198. package/esm2020/components/dropdown/services/dropdown.service.mjs +3 -3
  199. package/esm2020/components/entity-permission/entity-permission.component.mjs +9 -9
  200. package/esm2020/components/entity-permission/services.cs/entity-permission.service.mjs +3 -3
  201. package/esm2020/components/entity-picker/entity-picker-box/entity-picker-box.component.mjs +7 -7
  202. package/esm2020/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.mjs +7 -7
  203. package/esm2020/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.mjs +7 -7
  204. package/esm2020/components/entity-picker/entity-picker-dialog/entity-picker-dialog.component.mjs +7 -7
  205. package/esm2020/components/entity-picker/entity-picker.component.mjs +10 -10
  206. package/esm2020/components/equation-editor/equation-editor.component.mjs +6 -6
  207. package/esm2020/components/file-explorer/file-explorer.component.mjs +6 -6
  208. package/esm2020/components/file-explorer/file-form/file-form.component.mjs +7 -7
  209. package/esm2020/components/file-explorer/file-ky-so-sim/file-ky-so-sim.component.mjs +8 -8
  210. package/esm2020/components/file-explorer/file-manager/file-manager.component.mjs +22 -22
  211. package/esm2020/components/file-explorer/file-picker-dialog/file-picker-dialog.component.mjs +7 -7
  212. package/esm2020/components/file-explorer/file-tai-lieu/file-tai-lieu.component.mjs +9 -9
  213. package/esm2020/components/file-explorer/file-tai-lieu/khaithac-tailieu-dungchung/khaithac-tailieu-dungchung.component.mjs +4 -4
  214. package/esm2020/components/file-explorer/file-tai-lieu/tailieu-cuatoi/tailieu-cuatoi.component.mjs +4 -4
  215. package/esm2020/components/file-explorer/file-version-list/file-version-list.component.mjs +9 -9
  216. package/esm2020/components/file-explorer/file-viewer/file-viewer.component.mjs +9 -9
  217. package/esm2020/components/file-explorer/folder-form/folder-form.component.mjs +7 -7
  218. package/esm2020/components/file-explorer/ky-so-sim-danh-sach-chu-ky/ky-so-sim-danh-sach-chu-ky.component.mjs +6 -6
  219. package/esm2020/components/file-explorer/services/danhmuc-dungchung.service.mjs +3 -3
  220. package/esm2020/components/file-explorer/services/download-link.service.mjs +3 -3
  221. package/esm2020/components/file-explorer/services/file-data.service.mjs +3 -3
  222. package/esm2020/components/file-explorer/services/file-explorer-new.service.mjs +3 -3
  223. package/esm2020/components/file-explorer/services/file-explorer.service.mjs +3 -3
  224. package/esm2020/components/file-explorer/services/file-object.service.mjs +3 -3
  225. package/esm2020/components/file-explorer/services/file-version.service.mjs +3 -3
  226. package/esm2020/components/file-explorer/services/folder.service.mjs +3 -3
  227. package/esm2020/components/file-explorer/services/ky-so-sim-chu-ky-user.service.mjs +3 -3
  228. package/esm2020/components/file-explorer/services/ky-so-sim-signPDF.service.mjs +3 -3
  229. package/esm2020/components/file-explorer/services/my-drive.service.mjs +3 -3
  230. package/esm2020/components/file-explorer/signature-detail/signature-detail.component.mjs +3 -3
  231. package/esm2020/components/file-upload/file-upload.component.mjs +9 -9
  232. package/esm2020/components/key-value/key-value.component.mjs +3 -3
  233. package/esm2020/components/mask/mask.component.mjs +7 -7
  234. package/esm2020/components/not-found/not-found.component.mjs +3 -3
  235. package/esm2020/components/number-picker-range/number-picker-range.component.mjs +7 -7
  236. package/esm2020/components/paging-next-back-only/paging-next-back-only.component.mjs +8 -8
  237. package/esm2020/components/permission-utils/permission-utils.component.mjs +9 -9
  238. package/esm2020/components/qr-code-generator/qr-code-generator.component.mjs +4 -4
  239. package/esm2020/components/query-builders/query-builder/query-builder.component.mjs +8 -8
  240. package/esm2020/components/query-builders/query-builder-group/query-builder-group.component.mjs +10 -10
  241. package/esm2020/components/query-builders/query-builder-rule/query-builder-rule.component.mjs +18 -18
  242. package/esm2020/components/query-builders/services/dm-chucvu.service.mjs +3 -3
  243. package/esm2020/components/radio-button-list/radio-button-list.component.mjs +6 -6
  244. package/esm2020/components/report-queue/report-queue.component.mjs +8 -8
  245. package/esm2020/components/service-file-upload/service-file-upload.component.mjs +10 -10
  246. package/esm2020/components/settings/settings-row/settings-row.component.mjs +8 -8
  247. package/esm2020/components/settings/settings-workflow/settings-workflow-no1/settings-workflow-no1.component.mjs +4 -4
  248. package/esm2020/components/settings/settings-workflow/settings-workflow.component.mjs +9 -9
  249. package/esm2020/components/settings/settings.component.mjs +14 -14
  250. package/esm2020/components/share-link-by-permission/share-link-by-permission.component.mjs +7 -7
  251. package/esm2020/components/splash-component/splash-component-v1/splash-component-v1.component.mjs +7 -7
  252. package/esm2020/components/splash-component/splash-component-v2/splash-component-v2.component.mjs +7 -7
  253. package/esm2020/components/splash-component/splash-component.component.mjs +9 -9
  254. package/esm2020/components/statemachines/dynamic-node/dynamic-node.component.mjs +3 -3
  255. package/esm2020/components/statemachines/services/node.service.mjs +3 -3
  256. package/esm2020/components/statemachines/services/statemachines.service.mjs +3 -3
  257. package/esm2020/components/statemachines/state/state.component.mjs +4 -4
  258. package/esm2020/components/statemachines/state-metadata/state-metadata.component.mjs +7 -7
  259. package/esm2020/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.mjs +9 -9
  260. package/esm2020/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.mjs +7 -7
  261. package/esm2020/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.mjs +3 -3
  262. package/esm2020/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.mjs +3 -3
  263. package/esm2020/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.mjs +3 -3
  264. package/esm2020/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.mjs +3 -3
  265. package/esm2020/components/statemachines/statemachines-connection-receiver-user/statemachines-connection-receiver-user.component.mjs +3 -3
  266. package/esm2020/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.mjs +3 -3
  267. package/esm2020/components/statemachines/statemachines-designer/statemachines-designer.component.mjs +13 -13
  268. package/esm2020/components/tn-app-help/helper-current-page/helper-current-page.component.mjs +3 -3
  269. package/esm2020/components/tn-app-help/services/path-name.service.mjs +3 -3
  270. package/esm2020/components/tn-app-help/tn-app-help.component.mjs +7 -7
  271. package/esm2020/components/tn-app-notification/tn-app-notification-list/tn-app-notification-list.component.mjs +4 -4
  272. package/esm2020/components/tn-app-notification/tn-app-notification.component.mjs +5 -5
  273. package/esm2020/components/tn-checkbox/tn-checkbox.component.mjs +6 -6
  274. package/esm2020/components/tn-color-picker/tn-color-picker.component.mjs +7 -7
  275. package/esm2020/components/tn-custom-scrollbar/tn-custom-scrollbar.component.mjs +6 -6
  276. package/esm2020/components/tn-dialog/tn-dialog.component.mjs +8 -8
  277. package/esm2020/components/tn-tabview/tn-tabview.component.mjs +6 -6
  278. package/esm2020/components/tn-template/tn-template.component.mjs +4 -4
  279. package/esm2020/components/tn-tinymce/tn-tinymce.component.mjs +9 -9
  280. package/esm2020/components/universal-link-processor/universal-link-processor.component.mjs +4 -4
  281. package/esm2020/components/user-picker/user-picker-box/user-picker-box.component.mjs +9 -9
  282. package/esm2020/components/user-picker/user-picker-dialog/user-picker-dialog.component.mjs +4 -4
  283. package/esm2020/components/user-picker/user-picker.component.mjs +12 -12
  284. package/esm2020/components/vanban-picker/services/vanban-den.service.mjs +3 -3
  285. package/esm2020/components/vanban-picker/services/vanban-di.service.mjs +3 -3
  286. package/esm2020/components/vanban-picker/vanban-den-picker/vanban-den-picker.component.mjs +10 -10
  287. package/esm2020/components/vanban-picker/vanban-di-picker/vanban-di-picker.component.mjs +10 -10
  288. package/esm2020/components/vanban-picker/vanban-picker-dialog/vanban-picker-dialog.component.mjs +6 -6
  289. package/esm2020/components/vanban-picker/vanban-picker.component.mjs +10 -10
  290. package/esm2020/components/workflow/cho-y-kien-form/cho-y-kien-form.component.mjs +7 -7
  291. package/esm2020/components/workflow/permission-sharing/permission-sharing.component.mjs +7 -7
  292. package/esm2020/components/workflow/process-workflow-form/process-workflow-form.component.mjs +9 -9
  293. package/esm2020/components/workflow/process-workflow-target/process-workflow-target.component.mjs +4 -4
  294. package/esm2020/components/workflow/services/canbo-hoso.service.mjs +3 -3
  295. package/esm2020/components/workflow/services/dm-loai-congviec.service.mjs +3 -3
  296. package/esm2020/components/workflow/services/entity-workflow-history.service.mjs +3 -3
  297. package/esm2020/components/workflow/services/entity-workflow-setting.service.mjs +3 -3
  298. package/esm2020/components/workflow/services/workflow-history.service.mjs +3 -3
  299. package/esm2020/components/workflow/services/workflow-permission-detail.service.mjs +3 -3
  300. package/esm2020/components/workflow/services/workflow-permission.service.mjs +3 -3
  301. package/esm2020/components/workflow/services/workflow-settings.service.mjs +3 -3
  302. package/esm2020/components/workflow/simple-workflow-form/simple-workflow-form.component.mjs +7 -7
  303. package/esm2020/components/workflow/start-workflow/start-workflow.component.mjs +8 -8
  304. package/esm2020/components/workflow/workflow-history/workflow-history.component.mjs +6 -6
  305. package/esm2020/components/workflow/workflow-history-dialog/workflow-history-dialog.component.mjs +4 -4
  306. package/esm2020/components/workflow/workflow-history-new/workflow-history-new.component.mjs +10 -10
  307. package/esm2020/components/workflow/workflow-permission/workflow-permission.component.mjs +8 -8
  308. package/esm2020/components/workflow/workflow-permission-form/workflow-permission-form.component.mjs +7 -7
  309. package/esm2020/components/workflow/workflow-picker/workflow-picker.component.mjs +8 -8
  310. package/esm2020/components/workflow/workflow-setting/workflow-setting.component.mjs +5 -5
  311. package/esm2020/components/workflow/workflow-setting-dialog/workflow-setting-dialog.component.mjs +4 -4
  312. package/esm2020/components/workflow/workflow-setting-new/workflow-setting-new.component.mjs +7 -7
  313. package/esm2020/congviec/cauhinh-workflow/cauhinh-workflow-detail/cauhinh-workflow-detail.component.mjs +5 -5
  314. package/esm2020/congviec/cauhinh-workflow/cauhinh-workflow.component.mjs +3 -3
  315. package/esm2020/congviec/cauhinh-workflow/cauhinh-workflow.module.mjs +10 -12
  316. package/esm2020/congviec/cauhinh-workflow/services/cauhinh-workflow.service.mjs +3 -3
  317. package/esm2020/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.mjs +14 -14
  318. package/esm2020/congviec/congviec/congviec-dinhkem-form/congviec-dinhkem-form.component.mjs +4 -4
  319. package/esm2020/congviec/congviec/congviec-form/congviec-form.component.mjs +9 -9
  320. package/esm2020/congviec/congviec/congviec-next-first-step/congviec-next-first-step.component.mjs +9 -9
  321. package/esm2020/congviec/congviec/congviec.component.mjs +11 -11
  322. package/esm2020/congviec/congviec/services/congviec-dinhkem.service.mjs +3 -3
  323. package/esm2020/congviec/congviec/services/congviec.service.mjs +3 -3
  324. package/esm2020/congviec/congviec/services/congvieclienquan.service.mjs +3 -3
  325. package/esm2020/congviec/congviec-test/congviec.component.mjs +3 -3
  326. package/esm2020/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec-form/dm-linhvuc-congviec-form.component.mjs +7 -7
  327. package/esm2020/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec.component.mjs +6 -6
  328. package/esm2020/congviec/dm-linhvuc-congviec/services/dm-linhvuc-congviec.service.mjs +3 -3
  329. package/esm2020/congviec/dm-loai-congviec/dm-loai-congviec-form/dm-loai-congviec-form.component.mjs +7 -7
  330. package/esm2020/congviec/dm-loai-congviec/dm-loai-congviec.component.mjs +6 -6
  331. package/esm2020/congviec/dm-loai-congviec/services/dm-loai-congviec.service.mjs +3 -3
  332. package/esm2020/congviec/dm-priority/dm-priority-form/dm-priority-form.component.mjs +4 -4
  333. package/esm2020/congviec/dm-priority/dm-priority.component.mjs +5 -5
  334. package/esm2020/congviec/dm-priority/dm-priority.module.mjs +9 -9
  335. package/esm2020/congviec/dm-priority/services/dm-priority.service.mjs +3 -3
  336. package/esm2020/directives/authorize.directive.mjs +3 -3
  337. package/esm2020/directives/prevent-shift-tab.directive.mjs +3 -3
  338. package/esm2020/directives/primeng/tn-table.directive.mjs +17 -17
  339. package/esm2020/directives/tn-template.directive.mjs +3 -3
  340. package/esm2020/dynamic-components/dynamic-component.service.mjs +3 -3
  341. package/esm2020/intercepters/log.interceptor.mjs +3 -3
  342. package/esm2020/intercepters/permission-utils.interceptor.mjs +3 -3
  343. package/esm2020/intercepters/send-access-token.interceptor.mjs +3 -3
  344. package/esm2020/intercepters/trace.interceptor.mjs +3 -3
  345. package/esm2020/pipes/approval.pipe.mjs +3 -3
  346. package/esm2020/pipes/boolean-format.pipe.mjs +3 -3
  347. package/esm2020/pipes/convertMoneyToWord.pipe.mjs +3 -3
  348. package/esm2020/pipes/file-icon.pipe.mjs +3 -3
  349. package/esm2020/pipes/file-size.pipe.mjs +3 -3
  350. package/esm2020/pipes/highlight.pipe.mjs +3 -3
  351. package/esm2020/pipes/html-format.pipe.mjs +3 -3
  352. package/esm2020/pipes/masterData.pipe.mjs +3 -3
  353. package/esm2020/pipes/multiple-reference-data-format.pipe.mjs +3 -3
  354. package/esm2020/pipes/organization-format.pipe.mjs +3 -3
  355. package/esm2020/pipes/organization-name-format.pipe.mjs +3 -3
  356. package/esm2020/pipes/organizations-format.pipe.mjs +3 -3
  357. package/esm2020/pipes/reference-data-format.pipe.mjs +3 -3
  358. package/esm2020/pipes/safe-html.pipe.mjs +3 -3
  359. package/esm2020/pipes/safe-style.pipe.mjs +3 -3
  360. package/esm2020/pipes/safe-url.pipe.mjs +3 -3
  361. package/esm2020/pipes/secure.pipe.mjs +3 -3
  362. package/esm2020/pipes/string-format.pipe.mjs +3 -3
  363. package/esm2020/pipes/summary.pipe.mjs +3 -3
  364. package/esm2020/pipes/tn-date.pipe.mjs +3 -3
  365. package/esm2020/pipes/user-format.pipe.mjs +3 -3
  366. package/esm2020/pipes/users-format.pipe.mjs +3 -3
  367. package/esm2020/services/app-list.service.mjs +3 -3
  368. package/esm2020/services/article.service.mjs +3 -3
  369. package/esm2020/services/authen.service.mjs +3 -3
  370. package/esm2020/services/calculation-engine.service.mjs +3 -3
  371. package/esm2020/services/canbo-hoso.service.mjs +3 -3
  372. package/esm2020/services/check-control-visible.service.mjs +3 -3
  373. package/esm2020/services/common.service.mjs +3 -3
  374. package/esm2020/services/conditional-builder.service.mjs +3 -3
  375. package/esm2020/services/crud.service.mjs +3 -3
  376. package/esm2020/services/custom-router.service.mjs +3 -3
  377. package/esm2020/services/customize-ui.service.mjs +3 -3
  378. package/esm2020/services/danhmuc-api.service.mjs +3 -3
  379. package/esm2020/services/dhvinh-guard.service.mjs +3 -3
  380. package/esm2020/services/dm-chucvu.service.mjs +3 -3
  381. package/esm2020/services/dom.service.mjs +3 -3
  382. package/esm2020/services/eform.service.mjs +3 -3
  383. package/esm2020/services/entity-metadata.service.mjs +3 -3
  384. package/esm2020/services/entity-picker.service.mjs +3 -3
  385. package/esm2020/services/environment.service.mjs +3 -3
  386. package/esm2020/services/exception-handler.service.mjs +3 -3
  387. package/esm2020/services/export.service.mjs +3 -3
  388. package/esm2020/services/file-manager.service.mjs +3 -3
  389. package/esm2020/services/file-object-v4.service.mjs +3 -3
  390. package/esm2020/services/generic-guard-child.service.mjs +3 -3
  391. package/esm2020/services/generic-guard.service.mjs +3 -3
  392. package/esm2020/services/global.service.mjs +3 -3
  393. package/esm2020/services/guard-sv.service.mjs +3 -3
  394. package/esm2020/services/guard.service.mjs +3 -3
  395. package/esm2020/services/high-performance.service.mjs +3 -3
  396. package/esm2020/services/image.service.mjs +3 -3
  397. package/esm2020/services/list-helper.service.mjs +3 -3
  398. package/esm2020/services/localCache.service.mjs +3 -3
  399. package/esm2020/services/master-data.service.mjs +3 -3
  400. package/esm2020/services/menu.service.mjs +3 -3
  401. package/esm2020/services/newscategory.service.mjs +3 -3
  402. package/esm2020/services/notification.service.mjs +3 -3
  403. package/esm2020/services/notifier.service.mjs +3 -3
  404. package/esm2020/services/organization.service.mjs +3 -3
  405. package/esm2020/services/permission.service.mjs +3 -3
  406. package/esm2020/services/position.service.mjs +3 -3
  407. package/esm2020/services/print.service.mjs +3 -3
  408. package/esm2020/services/random-data.service.mjs +3 -3
  409. package/esm2020/services/role.service.mjs +3 -3
  410. package/esm2020/services/signalr.service.mjs +3 -3
  411. package/esm2020/services/storage-updated.service.mjs +3 -3
  412. package/esm2020/services/storage.service.mjs +3 -3
  413. package/esm2020/services/template-text-v4.service.mjs +3 -3
  414. package/esm2020/services/template-v4.service.mjs +3 -3
  415. package/esm2020/services/template.service.mjs +3 -3
  416. package/esm2020/services/templateinstance.service.mjs +3 -3
  417. package/esm2020/services/tn-client.service.mjs +3 -3
  418. package/esm2020/services/unique-number.service.mjs +3 -3
  419. package/esm2020/services/user-group-real.service.mjs +3 -3
  420. package/esm2020/services/user-group.service.mjs +3 -3
  421. package/esm2020/services/user-v5.service.mjs +3 -3
  422. package/esm2020/services/user.service.mjs +3 -3
  423. package/esm2020/services/virtual-base.service.mjs +3 -3
  424. package/esm2020/tnx-shared.module.mjs +6 -6
  425. package/fesm2015/tnx-shared.mjs +7269 -7277
  426. package/fesm2015/tnx-shared.mjs.map +1 -1
  427. package/fesm2020/tnx-shared.mjs +9215 -9223
  428. package/fesm2020/tnx-shared.mjs.map +1 -1
  429. package/{tnx-shared.d.ts → index.d.ts} +0 -0
  430. package/package.json +4 -4
  431. package/pipes/approval.pipe.d.ts +1 -1
  432. package/pipes/boolean-format.pipe.d.ts +1 -1
  433. package/pipes/convertMoneyToWord.pipe.d.ts +1 -1
  434. package/pipes/file-icon.pipe.d.ts +1 -1
  435. package/pipes/file-size.pipe.d.ts +1 -1
  436. package/pipes/highlight.pipe.d.ts +1 -1
  437. package/pipes/html-format.pipe.d.ts +1 -1
  438. package/pipes/masterData.pipe.d.ts +1 -1
  439. package/pipes/multiple-reference-data-format.pipe.d.ts +1 -1
  440. package/pipes/organization-format.pipe.d.ts +1 -1
  441. package/pipes/organization-name-format.pipe.d.ts +1 -1
  442. package/pipes/organizations-format.pipe.d.ts +1 -1
  443. package/pipes/reference-data-format.pipe.d.ts +1 -1
  444. package/pipes/safe-html.pipe.d.ts +1 -1
  445. package/pipes/safe-style.pipe.d.ts +1 -1
  446. package/pipes/safe-url.pipe.d.ts +1 -1
  447. package/pipes/secure.pipe.d.ts +1 -1
  448. package/pipes/string-format.pipe.d.ts +1 -1
  449. package/pipes/summary.pipe.d.ts +1 -1
  450. package/pipes/tn-date.pipe.d.ts +1 -1
  451. package/pipes/user-format.pipe.d.ts +1 -1
  452. package/pipes/users-format.pipe.d.ts +1 -1
@@ -8,11 +8,11 @@ import { ColumnSchemaBase } from '../../../classes/form-schema-with-service';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "../services/vanban-di.service";
10
10
  import * as i2 from "../../../services/environment.service";
11
- import * as i3 from "../../crud/crud-list/crud-list.component";
12
- import * as i4 from "../../tn-dialog/tn-dialog.component";
13
- import * as i5 from "@angular/common";
14
- import * as i6 from "tn-custom-primeng/button";
15
- import * as i7 from "tn-custom-primeng/tooltip";
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "tn-custom-primeng/button";
13
+ import * as i5 from "tn-custom-primeng/tooltip";
14
+ import * as i6 from "../../crud/crud-list/crud-list.component";
15
+ import * as i7 from "../../tn-dialog/tn-dialog.component";
16
16
  import * as i8 from "@ngx-translate/core";
17
17
  export class VanbanDiPickerComponent extends DataListBase {
18
18
  constructor(_injector, _vanBanDiService, _environmentService) {
@@ -159,11 +159,11 @@ export class VanbanDiPickerComponent extends DataListBase {
159
159
  this.onPicked.emit(data);
160
160
  }
161
161
  }
162
- VanbanDiPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: VanbanDiPickerComponent, deps: [{ token: i0.Injector }, { token: i1.VanBanDiService }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
163
- VanbanDiPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: VanbanDiPickerComponent, selector: "app-vanban-di-picker", inputs: { ids: "ids", hiddenPicker: "hiddenPicker" }, outputs: { onPicked: "onPicked", onRemoved: "onRemoved" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-di-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-di-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-di-picker>\r\n</tn-dialog>", styles: [""], components: [{ type: i3.CrudListComponent, selector: "crud-list", inputs: ["model", "setting", "fileName", "lazy", "widthCheckbox", "widthOrderColumn", "widthFunctionColumn", "classRowGroup", "showScrollBar", "pTableScrollable", "pTableScrollHeight", "responsive", "configScrollBar", "showScrollHorizontal", "showRadio", "hiddenAdd", "hiddenDelete", "hiddenEdit", "hiddenCopyLink", "hiddenView", "disableKeypressControl", "cancelBubble", "escape", "selectionMode", "config", "enableReorderRow", "templates", "templatesFromParent", "childrenFromParent", "menuButtons", "fieldOrder", "style", "tableClass", "dataSource", "filter_default"], outputs: ["onRowSelect", "onReordered", "onCheckAll", "onReload", "onReloaded", "onReady", "onContentInit", "onAdd", "onEdit", "onCopyLink", "onCopyLinkMultiple", "onView", "onDelete", "onDeleteMultiple", "onInvalidWorkflow", "onAfterTrinhKy", "onStartedWorkflow", "onProcessedWorkflow", "onRollbackedWorkflow", "onChangedStatusWorkflow"] }, { type: i4.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { type: VanbanDiPickerComponent, selector: "app-vanban-di-picker", inputs: ["ids", "hiddenPicker"], outputs: ["onPicked", "onRemoved"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }], pipes: { "translate": i8.TranslatePipe } });
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: VanbanDiPickerComponent, decorators: [{
162
+ VanbanDiPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanbanDiPickerComponent, deps: [{ token: i0.Injector }, { token: i1.VanBanDiService }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
163
+ VanbanDiPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: VanbanDiPickerComponent, selector: "app-vanban-di-picker", inputs: { ids: "ids", hiddenPicker: "hiddenPicker" }, outputs: { onPicked: "onPicked", onRemoved: "onRemoved" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-di-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-di-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-di-picker>\r\n</tn-dialog>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }, { kind: "component", type: i6.CrudListComponent, selector: "crud-list", inputs: ["model", "setting", "fileName", "lazy", "widthCheckbox", "widthOrderColumn", "widthFunctionColumn", "classRowGroup", "showScrollBar", "pTableScrollable", "pTableScrollHeight", "responsive", "configScrollBar", "showScrollHorizontal", "showRadio", "hiddenAdd", "hiddenDelete", "hiddenEdit", "hiddenCopyLink", "hiddenView", "disableKeypressControl", "cancelBubble", "escape", "selectionMode", "config", "enableReorderRow", "templates", "templatesFromParent", "childrenFromParent", "menuButtons", "fieldOrder", "style", "tableClass", "dataSource", "filter_default"], outputs: ["onRowSelect", "onReordered", "onCheckAll", "onReload", "onReloaded", "onReady", "onContentInit", "onAdd", "onEdit", "onCopyLink", "onCopyLinkMultiple", "onView", "onDelete", "onDeleteMultiple", "onInvalidWorkflow", "onAfterTrinhKy", "onStartedWorkflow", "onProcessedWorkflow", "onRollbackedWorkflow", "onChangedStatusWorkflow"] }, { kind: "component", type: VanbanDiPickerComponent, selector: "app-vanban-di-picker", inputs: ["ids", "hiddenPicker"], outputs: ["onPicked", "onRemoved"] }, { kind: "component", type: i7.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanbanDiPickerComponent, decorators: [{
165
165
  type: Component,
166
- args: [{ selector: 'app-vanban-di-picker', providers: [ComponentContextService], template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-di-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-di-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-di-picker>\r\n</tn-dialog>", styles: [""] }]
166
+ args: [{ selector: 'app-vanban-di-picker', providers: [ComponentContextService], template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-di-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-di-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-di-picker>\r\n</tn-dialog>" }]
167
167
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.VanBanDiService }, { type: i2.EnvironmentService }]; }, propDecorators: { ids: [{
168
168
  type: Input
169
169
  }], hiddenPicker: [{
@@ -173,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
173
173
  }], onRemoved: [{
174
174
  type: Output
175
175
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFuYmFuLWRpLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3ZhbmJhbi1waWNrZXIvdmFuYmFuLWRpLXBpY2tlci92YW5iYW4tZGktcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci92YW5iYW4tZGktcGlja2VyL3ZhbmJhbi1kaS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFZLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7O0FBVzdFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0lBaUNyRCxZQUNjLFNBQW1CLEVBQ25CLGdCQUFpQyxFQUMzQyxtQkFBdUM7UUFFdkMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSlAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBNUJ0QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU3QixhQUFRLEdBQUcsSUFB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c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvZW51bXMnO1xyXG5pbXBvcnQgeyBNb2RlbFNjaGVtYSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5pbXBvcnQgeyBDb2x1bW5TY2hlbWFCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYS13aXRoLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFuQmFuRGlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdmFuYmFuLWRpLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC12YW5iYW4tZGktcGlja2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi92YW5iYW4tZGktcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3ZhbmJhbi1kaS1waWNrZXIuY29tcG9uZW50LmNzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFuYmFuRGlQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgX2lkczogbnVtYmVyW107XHJcbiAgICBASW5wdXQoKSBzZXQgaWRzKHZhbHVlOiBudW1iZXJbXSkge1xyXG4gICAgICAgIHRoaXMuX2lkcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUubmV4dCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBoaWRkZW5QaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25QaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBlbnZpcm9ubWVudDogYW55ID0ge307XHJcbiAgICAvKipcclxuICAgICAqIFThuqFvIHN1YnNjcmlwdGlvblxyXG4gICAgICovXHJcbiAgICB2YWx1ZSA9IG5ldyBTdWJqZWN0PG51bWJlcltdPigpO1xyXG4gICAgdmFsdWUkID0gdGhpcy52YWx1ZS5hc09ic2VydmFibGUoKTtcclxuICAgIHJlYWR5ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAgIHJlYWR5JCA9IHRoaXMucmVhZHkuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBzb3VyY2UgPSBjb21iaW5lTGF0ZXN0KFxyXG4gICAgICAgIHRoaXMudmFsdWUkLFxyXG4gICAgICAgIHRoaXMucmVhZHkkXHJcbiAgICApO1xyXG4gICAgc3ViID0gdGhpcy5zb3VyY2Uuc3Vic2NyaWJlKHZhbHVlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja0FuZEdldERhdGEoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHNlYXJjaFNjaGVtYTogYW55ID0ge307XHJcbiAgICBzZWFyY2hEYXRhOiBhbnkgPSB7fTtcclxuXHJcbiAgICBzaG93Rm9ybVBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBfdmFuQmFuRGlTZXJ2aWNlOiBWYW5CYW5EaVNlcnZpY2UsXHJcbiAgICAgICAgX2Vudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMubG9hZERldGFpbEZyb21RdWVyeVBhcmFtID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fdmFuQmFuRGlTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nUGVybWlzc2lvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblNldHRpbmdXb3JrZmxvdyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNob3dFZGl0TGluayA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuUGFnZVRpdGxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLm1vZGVsU2NoZW1hcyA9IFtcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdzb0RpJywgZGF0YVR5cGU6ICdpbnQnLCBuYW1lOiAnU+G7kSDEkWknLCBmdWxsTmFtZTogJ1Phu5EgxJFpJywgZGVzY3JpcHRpb246ICdT4buRIMSRaScgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnc29LeUhpZXUnLCBuYW1lOiAnU+G7kSwga8O9IGhp4buHdScsIGZ1bGxOYW1lOiAnU+G7kSwga8O9IGhp4buHdScsIGRlc2NyaXB0aW9uOiAnU+G7kSwga8O9IGhp4buHdScgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAndHJpY2hZZXUnLCBuYW1lOiAnVHLDrWNoIHnhur91JywgZnVsbE5hbWU6ICcnLCBkZXNjcmlwdGlvbjogJycgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnbmdheUJhbkhhbmgnLCBkYXRhVHlwZTogJ2RhdGUnLCBuYW1lOiAnTmfDoHkgYmFuIGjDoG5oJywgZnVsbE5hbWU6ICcnLCBkZXNjcmlwdGlvbjogJycgfSksXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29EaScsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMHB4J1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzb0t5SGlldScsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzE1MHB4J1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICd0cmljaFlldSdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbmdheUJhbkhhbmgnLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMjVweCdcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5maWVsZFNlYXJjaFRleHQgPSBbJ2NvZGUnLCAnbmFtZSddO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5vYmplY3ROYW1lID0gJyB2xINuIGLhuqNuIMSRaSc7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5yZWFkeS5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvbWlzZUdldERhdGEoZ3JpZEluZm86IEdyaWRJbmZvKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZS5nZXRCeUdyaWRSZXF1ZXN0V2l0aEJvZHlPbGQoZ3JpZEluZm8sICdQZXJtaXNzaW9uJyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbW9kaWZ5R3JpZEluZm8oZ3JpZEluZm8/OiBHcmlkSW5mbykge1xyXG4gICAgICAgIGdyaWRJbmZvLnNvcnRzID0gW1xyXG4gICAgICAgICAgICB7IGZpZWxkOiAnaWQnLCBkaXI6IC0xIH1cclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmICh0aGlzLl9pZHMgJiYgdGhpcy5faWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgbGV0IG9wZXJhdG9yID0gT3BlcmF0b3IuaW47XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgb3BlcmF0b3IgPSBPcGVyYXRvci5ub3RJbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnVuc2hpZnQoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaW5zdGFuY2VJZCcsIG9wZXJhdG9yLCB0aGlzLl9pZHMpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrQW5kR2V0RGF0YSgpIHtcclxuICAgICAgICBpZiAodGhpcy5faWRzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzaG93Rm9ybVBpY2tWYW5CYW4oKSB7XHJcbiAgICAgICAgdGhpcy5iZWZvcmVBZGQoKTtcclxuICAgICAgICB0aGlzLnNldHRpbmcucG9wdXBTaXplLm1heGltaXplID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcucG9wdXBIZWFkZXIgPSBgVGjDqm0gbeG7m2kgJHt0aGlzLnNldHRpbmcub2JqZWN0TmFtZX1gO1xyXG4gICAgICAgIHRoaXMuc2hvd0Zvcm1QaWNrZXIgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHBpY2tWYW5CYW5TZWxlY3RlZCgpIHtcclxuICAgICAgICB0aGlzLl9waWNrVmFuQmFuKHRoaXMubW9kZWwuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcGlja1ZhbkJhbihyb3dEYXRhKSB7XHJcbiAgICAgICAgdGhpcy5fcGlja1ZhbkJhbihbcm93RGF0YV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3BpY2tWYW5CYW4oaXRlbXMpIHtcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoe1xyXG4gICAgICAgICAgICBpZHM6IGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0uaW5zdGFuY2VJZCksXHJcbiAgICAgICAgICAgIGl0ZW1zXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgeG9hVmFuQmFuU2VsZWN0ZWQoKSB7XHJcbiAgICAgICAgdGhpcy5feG9hVmFuQmFuKHRoaXMubW9kZWwuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgeG9hVmFuQmFuKHJvd0RhdGEpIHtcclxuICAgICAgICB0aGlzLl94b2FWYW5CYW4oW3Jvd0RhdGFdKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF94b2FWYW5CYW4oaXRlbXMpIHtcclxuICAgICAgICB0aGlzLm9uUmVtb3ZlZC5lbWl0KHtcclxuICAgICAgICAgICAgaWRzOiBpdGVtcy5tYXAoaXRlbSA9PiBpdGVtLmluc3RhbmNlSWQpLFxyXG4gICAgICAgICAgICBpdGVtc1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5hdmlnYXRlVG9WYW5CYW4ocm93RGF0YSkge1xyXG4gICAgICAgIHdpbmRvdy5vcGVuKGAke3RoaXMuZW52aXJvbm1lbnQuY2xpZW50RG9tYWluLnZhbmJhbkRvbWFpbn0vdmFuYmFuZGkjX2E9MSZfaT0ke3Jvd0RhdGEuaWR9YCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVBpY2tlZChkYXRhKSB7XHJcbiAgICAgICAgLy8gY29uc3QgaWRzID0gW1xyXG4gICAgICAgIC8vICAgICAuLi50aGlzLl9pZHMsXHJcbiAgICAgICAgLy8gICAgIC4uLmRhdGEuaWRzLmZpbHRlcihxID0+IHRoaXMuX2lkcy5pbmRleE9mKHEpID09IC0xKVxyXG4gICAgICAgIC8vIF1cclxuICAgICAgICAvLyB0aGlzLmlkcyA9IGlkcztcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoZGF0YSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIjxjcnVkLWxpc3QgI2NydWRMaXN0IFttb2RlbF09XCJtb2RlbFwiIFtzZXR0aW5nXT1cInNldHRpbmdcIiBbZGF0YVNvdXJjZV09XCJtb2RlbC5kYXRhU291cmNlXCJcclxuICAgIChvblJlbG9hZCk9XCJfdHJpZ2dlclByb2Nlc3NEYXRhKCRldmVudClcIiAob25BZGQpPVwiX2FkZCgkZXZlbnQpXCIgKG9uRWRpdCk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uVmlldyk9XCJfdmlldygkZXZlbnQpXCJcclxuICAgIChvbkRlbGV0ZSk9XCJfZGVsZXRlKCRldmVudClcIiAob25EZWxldGVNdWx0aXBsZSk9XCJfZGVsZXRlTXVsdGlwbGUoJGV2ZW50KVwiIChvblJlbG9hZGVkKT1cIl91bm1hcmtMb2FkaW5nKClcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGlkZGVuUGlja2VyXCIgdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLWNoZWNrXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tcHJpbWFyeVwiIGxhYmVsPVwiQ2jhu41uIHbEg24gYuG6o25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGlja1ZhbkJhblNlbGVjdGVkKClcIj48L2J1dHRvbj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1jbG9uZVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJDaOG7jW4gdsSDbiBi4bqjblwiIChjbGljayk9XCJzaG93Rm9ybVBpY2tWYW5CYW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlclwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIljDs2EgdsSDbiBi4bqjblwiIChjbGljayk9XCJ4b2FWYW5CYW5TZWxlY3RlZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNmdW5jdGlvbiBsZXQtcm93RGF0YT1cInJvd0RhdGFcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1leWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBsaW5rLW9yLWFjdGlvblwiIHBUb29sdGlwPVwiWGVtIGNoaSB0aeG6v3QgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwibmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwieG9hVmFuQmFuKHJvd0RhdGEpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwicGlja1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9jcnVkLWxpc3Q+XHJcbjx0bi1kaWFsb2cgKm5nSWY9XCJzaG93Rm9ybVBpY2tlclwiICNkaWFsb2cgW3N0eWxlQ2xhc3NdPVwiJ3ZiLWRpLWZvcm0gdG4tZm9ybS1kaWFsb2cnXCJcclxuICAgIFtoZWFkZXJdPVwic2V0dGluZy5wb3B1cEhlYWRlciB8IHRyYW5zbGF0ZVwiIFtwb3B1cFNpemVdPVwic2V0dGluZy5wb3B1cFNpemVcIiAob25IaWRlKT1cInNob3dGb3JtUGlja2VyID0gZmFsc2VcIj5cclxuICAgIDxhcHAtdmFuYmFuLWRpLXBpY2tlciBbcGFyZW50TW9kZWxdPVwibW9kZWxcIiBbcGFyZW50Q29udGV4dF09XCJjb250ZXh0XCIgW2hpZGRlblBpY2tlcl09XCJ0cnVlXCIgW2lkc109XCJfaWRzXCJcclxuICAgICAgICAob25TYXZlZCk9XCJzaG93Rm9ybVBpY2tlciA9IGZhbHNlO2NydWRMaXN0LnJlbG9hZCgpXCIgKG9uQ2FuY2VsKT1cIl9oYW5kbGVDYW5jZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uUGlja2VkKT1cImhhbmRsZVBpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICA8L2FwcC12YW5iYW4tZGktcGlja2VyPlxyXG48L3RuLWRpYWxvZz4iXX0=
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFuYmFuLWRpLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3ZhbmJhbi1waWNrZXIvdmFuYmFuLWRpLXBpY2tlci92YW5iYW4tZGktcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci92YW5iYW4tZGktcGlja2VyL3ZhbmJhbi1kaS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFZLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7O0FBVzdFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0lBaUNyRCxZQUNjLFNBQW1CLEVBQ25CLGdCQUFpQyxFQUMzQyxtQkFBdUM7UUFFdkMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSlAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBNUJ0QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU3QixhQUFRLEdBQUcsSUFB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c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvZW51bXMnO1xyXG5pbXBvcnQgeyBNb2RlbFNjaGVtYSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5pbXBvcnQgeyBDb2x1bW5TY2hlbWFCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYS13aXRoLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFuQmFuRGlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdmFuYmFuLWRpLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC12YW5iYW4tZGktcGlja2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi92YW5iYW4tZGktcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3ZhbmJhbi1kaS1waWNrZXIuY29tcG9uZW50LmNzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFuYmFuRGlQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgX2lkczogbnVtYmVyW107XHJcbiAgICBASW5wdXQoKSBzZXQgaWRzKHZhbHVlOiBudW1iZXJbXSkge1xyXG4gICAgICAgIHRoaXMuX2lkcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUubmV4dCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBoaWRkZW5QaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25QaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBlbnZpcm9ubWVudDogYW55ID0ge307XHJcbiAgICAvKipcclxuICAgICAqIFThuqFvIHN1YnNjcmlwdGlvblxyXG4gICAgICovXHJcbiAgICB2YWx1ZSA9IG5ldyBTdWJqZWN0PG51bWJlcltdPigpO1xyXG4gICAgdmFsdWUkID0gdGhpcy52YWx1ZS5hc09ic2VydmFibGUoKTtcclxuICAgIHJlYWR5ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAgIHJlYWR5JCA9IHRoaXMucmVhZHkuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBzb3VyY2UgPSBjb21iaW5lTGF0ZXN0KFxyXG4gICAgICAgIHRoaXMudmFsdWUkLFxyXG4gICAgICAgIHRoaXMucmVhZHkkXHJcbiAgICApO1xyXG4gICAgc3ViID0gdGhpcy5zb3VyY2Uuc3Vic2NyaWJlKHZhbHVlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja0FuZEdldERhdGEoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHNlYXJjaFNjaGVtYTogYW55ID0ge307XHJcbiAgICBzZWFyY2hEYXRhOiBhbnkgPSB7fTtcclxuXHJcbiAgICBzaG93Rm9ybVBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBfdmFuQmFuRGlTZXJ2aWNlOiBWYW5CYW5EaVNlcnZpY2UsXHJcbiAgICAgICAgX2Vudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMubG9hZERldGFpbEZyb21RdWVyeVBhcmFtID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fdmFuQmFuRGlTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nUGVybWlzc2lvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblNldHRpbmdXb3JrZmxvdyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNob3dFZGl0TGluayA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuUGFnZVRpdGxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLm1vZGVsU2NoZW1hcyA9IFtcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdzb0RpJywgZGF0YVR5cGU6ICdpbnQnLCBuYW1lOiAnU+G7kSDEkWknLCBmdWxsTmFtZTogJ1Phu5EgxJFpJywgZGVzY3JpcHRpb246ICdT4buRIMSRaScgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnc29LeUhpZXUnLCBuYW1lOiAnU+G7kSwga8O9IGhp4buHdScsIGZ1bGxOYW1lOiAnU+G7kSwga8O9IGhp4buHdScsIGRlc2NyaXB0aW9uOiAnU+G7kSwga8O9IGhp4buHdScgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAndHJpY2hZZXUnLCBuYW1lOiAnVHLDrWNoIHnhur91JywgZnVsbE5hbWU6ICcnLCBkZXNjcmlwdGlvbjogJycgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnbmdheUJhbkhhbmgnLCBkYXRhVHlwZTogJ2RhdGUnLCBuYW1lOiAnTmfDoHkgYmFuIGjDoG5oJywgZnVsbE5hbWU6ICcnLCBkZXNjcmlwdGlvbjogJycgfSksXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29EaScsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMHB4J1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzb0t5SGlldScsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzE1MHB4J1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICd0cmljaFlldSdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbmdheUJhbkhhbmgnLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMjVweCdcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5maWVsZFNlYXJjaFRleHQgPSBbJ2NvZGUnLCAnbmFtZSddO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5vYmplY3ROYW1lID0gJyB2xINuIGLhuqNuIMSRaSc7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5yZWFkeS5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvbWlzZUdldERhdGEoZ3JpZEluZm86IEdyaWRJbmZvKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZS5nZXRCeUdyaWRSZXF1ZXN0V2l0aEJvZHlPbGQoZ3JpZEluZm8sICdQZXJtaXNzaW9uJyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbW9kaWZ5R3JpZEluZm8oZ3JpZEluZm8/OiBHcmlkSW5mbykge1xyXG4gICAgICAgIGdyaWRJbmZvLnNvcnRzID0gW1xyXG4gICAgICAgICAgICB7IGZpZWxkOiAnaWQnLCBkaXI6IC0xIH1cclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmICh0aGlzLl9pZHMgJiYgdGhpcy5faWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgbGV0IG9wZXJhdG9yID0gT3BlcmF0b3IuaW47XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgb3BlcmF0b3IgPSBPcGVyYXRvci5ub3RJbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnVuc2hpZnQoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaW5zdGFuY2VJZCcsIG9wZXJhdG9yLCB0aGlzLl9pZHMpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrQW5kR2V0RGF0YSgpIHtcclxuICAgICAgICBpZiAodGhpcy5faWRzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzaG93Rm9ybVBpY2tWYW5CYW4oKSB7XHJcbiAgICAgICAgdGhpcy5iZWZvcmVBZGQoKTtcclxuICAgICAgICB0aGlzLnNldHRpbmcucG9wdXBTaXplLm1heGltaXplID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcucG9wdXBIZWFkZXIgPSBgVGjDqm0gbeG7m2kgJHt0aGlzLnNldHRpbmcub2JqZWN0TmFtZX1gO1xyXG4gICAgICAgIHRoaXMuc2hvd0Zvcm1QaWNrZXIgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHBpY2tWYW5CYW5TZWxlY3RlZCgpIHtcclxuICAgICAgICB0aGlzLl9waWNrVmFuQmFuKHRoaXMubW9kZWwuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcGlja1ZhbkJhbihyb3dEYXRhKSB7XHJcbiAgICAgICAgdGhpcy5fcGlja1ZhbkJhbihbcm93RGF0YV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3BpY2tWYW5CYW4oaXRlbXMpIHtcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoe1xyXG4gICAgICAgICAgICBpZHM6IGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0uaW5zdGFuY2VJZCksXHJcbiAgICAgICAgICAgIGl0ZW1zXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgeG9hVmFuQmFuU2VsZWN0ZWQoKSB7XHJcbiAgICAgICAgdGhpcy5feG9hVmFuQmFuKHRoaXMubW9kZWwuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgeG9hVmFuQmFuKHJvd0RhdGEpIHtcclxuICAgICAgICB0aGlzLl94b2FWYW5CYW4oW3Jvd0RhdGFdKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF94b2FWYW5CYW4oaXRlbXMpIHtcclxuICAgICAgICB0aGlzLm9uUmVtb3ZlZC5lbWl0KHtcclxuICAgICAgICAgICAgaWRzOiBpdGVtcy5tYXAoaXRlbSA9PiBpdGVtLmluc3RhbmNlSWQpLFxyXG4gICAgICAgICAgICBpdGVtc1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5hdmlnYXRlVG9WYW5CYW4ocm93RGF0YSkge1xyXG4gICAgICAgIHdpbmRvdy5vcGVuKGAke3RoaXMuZW52aXJvbm1lbnQuY2xpZW50RG9tYWluLnZhbmJhbkRvbWFpbn0vdmFuYmFuZGkjX2E9MSZfaT0ke3Jvd0RhdGEuaWR9YCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVBpY2tlZChkYXRhKSB7XHJcbiAgICAgICAgLy8gY29uc3QgaWRzID0gW1xyXG4gICAgICAgIC8vICAgICAuLi50aGlzLl9pZHMsXHJcbiAgICAgICAgLy8gICAgIC4uLmRhdGEuaWRzLmZpbHRlcihxID0+IHRoaXMuX2lkcy5pbmRleE9mKHEpID09IC0xKVxyXG4gICAgICAgIC8vIF1cclxuICAgICAgICAvLyB0aGlzLmlkcyA9IGlkcztcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoZGF0YSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIjxjcnVkLWxpc3QgI2NydWRMaXN0IFttb2RlbF09XCJtb2RlbFwiIFtzZXR0aW5nXT1cInNldHRpbmdcIiBbZGF0YVNvdXJjZV09XCJtb2RlbC5kYXRhU291cmNlXCJcclxuICAgIChvblJlbG9hZCk9XCJfdHJpZ2dlclByb2Nlc3NEYXRhKCRldmVudClcIiAob25BZGQpPVwiX2FkZCgkZXZlbnQpXCIgKG9uRWRpdCk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uVmlldyk9XCJfdmlldygkZXZlbnQpXCJcclxuICAgIChvbkRlbGV0ZSk9XCJfZGVsZXRlKCRldmVudClcIiAob25EZWxldGVNdWx0aXBsZSk9XCJfZGVsZXRlTXVsdGlwbGUoJGV2ZW50KVwiIChvblJlbG9hZGVkKT1cIl91bm1hcmtMb2FkaW5nKClcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGlkZGVuUGlja2VyXCIgdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLWNoZWNrXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tcHJpbWFyeVwiIGxhYmVsPVwiQ2jhu41uIHbEg24gYuG6o25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGlja1ZhbkJhblNlbGVjdGVkKClcIj48L2J1dHRvbj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1jbG9uZVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJDaOG7jW4gdsSDbiBi4bqjblwiIChjbGljayk9XCJzaG93Rm9ybVBpY2tWYW5CYW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlclwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIljDs2EgdsSDbiBi4bqjblwiIChjbGljayk9XCJ4b2FWYW5CYW5TZWxlY3RlZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNmdW5jdGlvbiBsZXQtcm93RGF0YT1cInJvd0RhdGFcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1leWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBsaW5rLW9yLWFjdGlvblwiIHBUb29sdGlwPVwiWGVtIGNoaSB0aeG6v3QgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwibmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwieG9hVmFuQmFuKHJvd0RhdGEpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwicGlja1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9jcnVkLWxpc3Q+XHJcbjx0bi1kaWFsb2cgKm5nSWY9XCJzaG93Rm9ybVBpY2tlclwiICNkaWFsb2cgW3N0eWxlQ2xhc3NdPVwiJ3ZiLWRpLWZvcm0gdG4tZm9ybS1kaWFsb2cnXCJcclxuICAgIFtoZWFkZXJdPVwic2V0dGluZy5wb3B1cEhlYWRlciB8IHRyYW5zbGF0ZVwiIFtwb3B1cFNpemVdPVwic2V0dGluZy5wb3B1cFNpemVcIiAob25IaWRlKT1cInNob3dGb3JtUGlja2VyID0gZmFsc2VcIj5cclxuICAgIDxhcHAtdmFuYmFuLWRpLXBpY2tlciBbcGFyZW50TW9kZWxdPVwibW9kZWxcIiBbcGFyZW50Q29udGV4dF09XCJjb250ZXh0XCIgW2hpZGRlblBpY2tlcl09XCJ0cnVlXCIgW2lkc109XCJfaWRzXCJcclxuICAgICAgICAob25TYXZlZCk9XCJzaG93Rm9ybVBpY2tlciA9IGZhbHNlO2NydWRMaXN0LnJlbG9hZCgpXCIgKG9uQ2FuY2VsKT1cIl9oYW5kbGVDYW5jZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uUGlja2VkKT1cImhhbmRsZVBpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICA8L2FwcC12YW5iYW4tZGktcGlja2VyPlxyXG48L3RuLWRpYWxvZz4iXX0=
@@ -2,10 +2,10 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { ComponentContextService } from '../../../app-context/component-context.service';
3
3
  import { ComponentBase } from '../../../classes/base/component-base';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "tn-custom-primeng/tabview";
6
- import * as i2 from "../vanban-den-picker/vanban-den-picker.component";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "tn-custom-primeng/tabview";
7
7
  import * as i3 from "../vanban-di-picker/vanban-di-picker.component";
8
- import * as i4 from "@angular/common";
8
+ import * as i4 from "../vanban-den-picker/vanban-den-picker.component";
9
9
  export class VanBanPickerDialogComponent extends ComponentBase {
10
10
  constructor(_injector) {
11
11
  super(_injector);
@@ -60,9 +60,9 @@ export class VanBanPickerDialogComponent extends ComponentBase {
60
60
  }
61
61
  }
62
62
  }
63
- VanBanPickerDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: VanBanPickerDialogComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
64
- VanBanPickerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: VanBanPickerDialogComponent, selector: "app-vanban-picker-dialog", inputs: { control: "control", idVanBanDens: "idVanBanDens", idVanBanDis: "idVanBanDis" }, outputs: { onChanged: "onChanged", onReady: "onReady" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 100%\">\r\n <div style=\"height: 100%\">\r\n <p-tabView *ngIf=\"useAll\" #tab orientation=\"top\" [styleClass]=\"'tn-tabview-beauty'\"\r\n [activeIndex]=\"currentTabIndex\" (onChange)=\"onTabChange($event)\">\r\n <p-tabPanel [leftIcon]=\"'pi pi-exclamation-circle'\" header=\"V\u0103n b\u1EA3n \u0111\u1EBFn\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n <p-tabPanel [leftIcon]=\"'pi pi-list'\" header=\"V\u0103n b\u1EA3n \u0111i\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <ng-container *ngIf=\"!useAll && control.useVbDen\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!useAll && control.useVbDi\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ng-template #vbden>\r\n <app-vanban-den-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDens\" (onPicked)=\"handlePickedVbDen($event)\"\r\n (onRemoved)=\"handleRemovedVbDen($event)\"></app-vanban-den-picker>\r\n</ng-template>\r\n<ng-template #vbdi>\r\n <app-vanban-di-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDis\" (onPicked)=\"handlePickedVbDi($event)\"\r\n (onRemoved)=\"handleRemovedVbDi($event)\"></app-vanban-di-picker>\r\n</ng-template>", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.p-col-horizontal{padding:.5em;position:relative}.tn-check-box-list{position:relative}.tn-check-box-list.flex-end{justify-content:flex-end}.tn-check-box-list.flex-center{justify-content:center}\n"], components: [{ type: i1.TabView, selector: "p-tabView", inputs: ["orientation", "activeIndex", "style", "styleClass", "controlClose"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i1.TabPanel, selector: "p-tabPanel", inputs: ["cache", "tooltipPosition", "tooltipPositionStyle", "selected", "disabled", "header", "closable", "headerStyle", "headerStyleClass", "leftIcon", "rightIcon", "tooltip", "tooltipStyleClass"] }, { type: i2.VanbanDenPickerComponent, selector: "app-vanban-den-picker", inputs: ["ids", "hiddenPicker"], outputs: ["onPicked", "onRemoved"] }, { type: i3.VanbanDiPickerComponent, selector: "app-vanban-di-picker", inputs: ["ids", "hiddenPicker"], outputs: ["onPicked", "onRemoved"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: VanBanPickerDialogComponent, decorators: [{
63
+ VanBanPickerDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanPickerDialogComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
64
+ VanBanPickerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: VanBanPickerDialogComponent, selector: "app-vanban-picker-dialog", inputs: { control: "control", idVanBanDens: "idVanBanDens", idVanBanDis: "idVanBanDis" }, outputs: { onChanged: "onChanged", onReady: "onReady" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 100%\">\r\n <div style=\"height: 100%\">\r\n <p-tabView *ngIf=\"useAll\" #tab orientation=\"top\" [styleClass]=\"'tn-tabview-beauty'\"\r\n [activeIndex]=\"currentTabIndex\" (onChange)=\"onTabChange($event)\">\r\n <p-tabPanel [leftIcon]=\"'pi pi-exclamation-circle'\" header=\"V\u0103n b\u1EA3n \u0111\u1EBFn\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n <p-tabPanel [leftIcon]=\"'pi pi-list'\" header=\"V\u0103n b\u1EA3n \u0111i\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <ng-container *ngIf=\"!useAll && control.useVbDen\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!useAll && control.useVbDi\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ng-template #vbden>\r\n <app-vanban-den-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDens\" (onPicked)=\"handlePickedVbDen($event)\"\r\n (onRemoved)=\"handleRemovedVbDen($event)\"></app-vanban-den-picker>\r\n</ng-template>\r\n<ng-template #vbdi>\r\n <app-vanban-di-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDis\" (onPicked)=\"handlePickedVbDi($event)\"\r\n (onRemoved)=\"handleRemovedVbDi($event)\"></app-vanban-di-picker>\r\n</ng-template>", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.p-col-horizontal{padding:.5em;position:relative}.tn-check-box-list{position:relative}.tn-check-box-list.flex-end{justify-content:flex-end}.tn-check-box-list.flex-center{justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.TabView, selector: "p-tabView", inputs: ["orientation", "activeIndex", "style", "styleClass", "controlClose"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i2.TabPanel, selector: "p-tabPanel", inputs: ["cache", "tooltipPosition", "tooltipPositionStyle", "selected", "disabled", "header", "closable", "headerStyle", "headerStyleClass", "leftIcon", "rightIcon", "tooltip", "tooltipStyleClass"] }, { kind: "component", type: i3.VanbanDiPickerComponent, selector: "app-vanban-di-picker", inputs: ["ids", "hiddenPicker"], outputs: ["onPicked", "onRemoved"] }, { kind: "component", type: i4.VanbanDenPickerComponent, selector: "app-vanban-den-picker", inputs: ["ids", "hiddenPicker"], outputs: ["onPicked", "onRemoved"] }] });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanPickerDialogComponent, decorators: [{
66
66
  type: Component,
67
67
  args: [{ selector: 'app-vanban-picker-dialog', providers: [ComponentContextService], template: "<div style=\"height: 100%\">\r\n <div style=\"height: 100%\">\r\n <p-tabView *ngIf=\"useAll\" #tab orientation=\"top\" [styleClass]=\"'tn-tabview-beauty'\"\r\n [activeIndex]=\"currentTabIndex\" (onChange)=\"onTabChange($event)\">\r\n <p-tabPanel [leftIcon]=\"'pi pi-exclamation-circle'\" header=\"V\u0103n b\u1EA3n \u0111\u1EBFn\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n <p-tabPanel [leftIcon]=\"'pi pi-list'\" header=\"V\u0103n b\u1EA3n \u0111i\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <ng-container *ngIf=\"!useAll && control.useVbDen\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!useAll && control.useVbDi\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ng-template #vbden>\r\n <app-vanban-den-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDens\" (onPicked)=\"handlePickedVbDen($event)\"\r\n (onRemoved)=\"handleRemovedVbDen($event)\"></app-vanban-den-picker>\r\n</ng-template>\r\n<ng-template #vbdi>\r\n <app-vanban-di-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDis\" (onPicked)=\"handlePickedVbDi($event)\"\r\n (onRemoved)=\"handleRemovedVbDi($event)\"></app-vanban-di-picker>\r\n</ng-template>", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.p-col-horizontal{padding:.5em;position:relative}.tn-check-box-list{position:relative}.tn-check-box-list.flex-end{justify-content:flex-end}.tn-check-box-list.flex-center{justify-content:center}\n"] }]
68
68
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { control: [{
@@ -11,12 +11,12 @@ import * as i0 from "@angular/core";
11
11
  import * as i1 from "./services/vanban-den.service";
12
12
  import * as i2 from "./services/vanban-di.service";
13
13
  import * as i3 from "../../services/environment.service";
14
- import * as i4 from "../crud/crud-list/crud-list.component";
15
- import * as i5 from "../tn-dialog/tn-dialog.component";
16
- import * as i6 from "./vanban-picker-dialog/vanban-picker-dialog.component";
17
- import * as i7 from "tn-custom-primeng/button";
18
- import * as i8 from "tn-custom-primeng/tooltip";
19
- import * as i9 from "@angular/common";
14
+ import * as i4 from "@angular/common";
15
+ import * as i5 from "tn-custom-primeng/button";
16
+ import * as i6 from "tn-custom-primeng/tooltip";
17
+ import * as i7 from "../crud/crud-list/crud-list.component";
18
+ import * as i8 from "./vanban-picker-dialog/vanban-picker-dialog.component";
19
+ import * as i9 from "../tn-dialog/tn-dialog.component";
20
20
  import * as i10 from "@ngx-translate/core";
21
21
  export class VanBanPickerComponent extends DataListBase {
22
22
  constructor(_injector, _vanBanDenService, _vanBanDiService, _environmentService) {
@@ -272,16 +272,16 @@ export class VanBanPickerComponent extends DataListBase {
272
272
  this.control.disabled = isDisabled;
273
273
  }
274
274
  }
275
- VanBanPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: VanBanPickerComponent, deps: [{ token: i0.Injector }, { token: i1.VanBanDenService }, { token: i2.VanBanDiService }, { token: i3.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
276
- VanBanPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: VanBanPickerComponent, selector: "vanban-picker", inputs: { loaiVanBan: "loaiVanBan", readOnly: "readOnly", control: "control" }, outputs: { onChanged: "onChanged", onReady: "onReady" }, providers: [
275
+ VanBanPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanPickerComponent, deps: [{ token: i0.Injector }, { token: i1.VanBanDenService }, { token: i2.VanBanDiService }, { token: i3.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
276
+ VanBanPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: VanBanPickerComponent, selector: "vanban-picker", inputs: { loaiVanBan: "loaiVanBan", readOnly: "readOnly", control: "control" }, outputs: { onChanged: "onChanged", onReady: "onReady" }, providers: [
277
277
  ComponentContextService,
278
278
  {
279
279
  provide: NG_VALUE_ACCESSOR,
280
280
  useExisting: forwardRef(() => VanBanPickerComponent),
281
281
  multi: true
282
282
  }
283
- ], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n [style]=\"{'min-height': '300px'}\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button *ngIf=\"readOnly\" type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'tn-form-dialog'\" [header]=\"setting.popupHeader | translate\"\r\n [popupSize]=\"setting.popupSize\" [useDefaultScrollBar]=\"true\" (onHide)=\"_handleCancel($event)\">\r\n <app-vanban-picker-dialog [parentModel]=\"model\" [parentContext]=\"context\" [control]=\"control\"\r\n [idVanBanDens]=\"idVanBanDens\" [idVanBanDis]=\"idVanBanDis\" (onCancel)=\"_handleCancel($event)\"\r\n (onChanged)=\"handleChangeValue($event)\">\r\n </app-vanban-picker-dialog>\r\n</tn-dialog>", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.p-col-horizontal{padding:.5em;position:relative}.tn-check-box-list{position:relative}.tn-check-box-list.flex-end{justify-content:flex-end}.tn-check-box-list.flex-center{justify-content:center}\n"], components: [{ type: i4.CrudListComponent, selector: "crud-list", inputs: ["model", "setting", "fileName", "lazy", "widthCheckbox", "widthOrderColumn", "widthFunctionColumn", "classRowGroup", "showScrollBar", "pTableScrollable", "pTableScrollHeight", "responsive", "configScrollBar", "showScrollHorizontal", "showRadio", "hiddenAdd", "hiddenDelete", "hiddenEdit", "hiddenCopyLink", "hiddenView", "disableKeypressControl", "cancelBubble", "escape", "selectionMode", "config", "enableReorderRow", "templates", "templatesFromParent", "childrenFromParent", "menuButtons", "fieldOrder", "style", "tableClass", "dataSource", "filter_default"], outputs: ["onRowSelect", "onReordered", "onCheckAll", "onReload", "onReloaded", "onReady", "onContentInit", "onAdd", "onEdit", "onCopyLink", "onCopyLinkMultiple", "onView", "onDelete", "onDeleteMultiple", "onInvalidWorkflow", "onAfterTrinhKy", "onStartedWorkflow", "onProcessedWorkflow", "onRollbackedWorkflow", "onChangedStatusWorkflow"] }, { type: i5.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { type: i6.VanBanPickerDialogComponent, selector: "app-vanban-picker-dialog", inputs: ["control", "idVanBanDens", "idVanBanDis"], outputs: ["onChanged", "onReady"] }], directives: [{ type: i7.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { type: i8.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i10.TranslatePipe } });
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: VanBanPickerComponent, decorators: [{
283
+ ], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n [style]=\"{'min-height': '300px'}\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button *ngIf=\"readOnly\" type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'tn-form-dialog'\" [header]=\"setting.popupHeader | translate\"\r\n [popupSize]=\"setting.popupSize\" [useDefaultScrollBar]=\"true\" (onHide)=\"_handleCancel($event)\">\r\n <app-vanban-picker-dialog [parentModel]=\"model\" [parentContext]=\"context\" [control]=\"control\"\r\n [idVanBanDens]=\"idVanBanDens\" [idVanBanDis]=\"idVanBanDis\" (onCancel)=\"_handleCancel($event)\"\r\n (onChanged)=\"handleChangeValue($event)\">\r\n </app-vanban-picker-dialog>\r\n</tn-dialog>", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.p-col-horizontal{padding:.5em;position:relative}.tn-check-box-list{position:relative}.tn-check-box-list.flex-end{justify-content:flex-end}.tn-check-box-list.flex-center{justify-content:center}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }, { kind: "component", type: i7.CrudListComponent, selector: "crud-list", inputs: ["model", "setting", "fileName", "lazy", "widthCheckbox", "widthOrderColumn", "widthFunctionColumn", "classRowGroup", "showScrollBar", "pTableScrollable", "pTableScrollHeight", "responsive", "configScrollBar", "showScrollHorizontal", "showRadio", "hiddenAdd", "hiddenDelete", "hiddenEdit", "hiddenCopyLink", "hiddenView", "disableKeypressControl", "cancelBubble", "escape", "selectionMode", "config", "enableReorderRow", "templates", "templatesFromParent", "childrenFromParent", "menuButtons", "fieldOrder", "style", "tableClass", "dataSource", "filter_default"], outputs: ["onRowSelect", "onReordered", "onCheckAll", "onReload", "onReloaded", "onReady", "onContentInit", "onAdd", "onEdit", "onCopyLink", "onCopyLinkMultiple", "onView", "onDelete", "onDeleteMultiple", "onInvalidWorkflow", "onAfterTrinhKy", "onStartedWorkflow", "onProcessedWorkflow", "onRollbackedWorkflow", "onChangedStatusWorkflow"] }, { kind: "component", type: i8.VanBanPickerDialogComponent, selector: "app-vanban-picker-dialog", inputs: ["control", "idVanBanDens", "idVanBanDis"], outputs: ["onChanged", "onReady"] }, { kind: "component", type: i9.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanPickerComponent, decorators: [{
285
285
  type: Component,
286
286
  args: [{ selector: 'vanban-picker', providers: [
287
287
  ComponentContextService,
@@ -5,9 +5,9 @@ import { EditorControlSchema } from '../../../classes/form-schema';
5
5
  import { FileManagerControlSchema } from '../../file-explorer/models/schema';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../services/workflow-history.service";
8
- import * as i2 from "../../crud/crud-form/crud-form.component";
9
- import * as i3 from "@angular/common";
10
- import * as i4 from "tn-custom-primeng/button";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "tn-custom-primeng/button";
10
+ import * as i4 from "../../crud/crud-form/crud-form.component";
11
11
  import * as i5 from "@ngx-translate/core";
12
12
  export class ChoYKienFormComponent extends DataFormBase {
13
13
  constructor(_injector, _workflowHistoryService) {
@@ -49,11 +49,11 @@ export class ChoYKienFormComponent extends DataFormBase {
49
49
  return this.bussinessSetting.baseService.choYKien(this.model.data);
50
50
  }
51
51
  }
52
- ChoYKienFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ChoYKienFormComponent, deps: [{ token: i0.Injector }, { token: i1.WorkflowHistoryService }], target: i0.ɵɵFactoryTarget.Component });
53
- ChoYKienFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: ChoYKienFormComponent, selector: "cho-y-kien-form", inputs: { bussinessSetting: "bussinessSetting", rowItem: "rowItem" }, usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>", styles: [""], components: [{ type: i2.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }], pipes: { "translate": i5.TranslatePipe } });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ChoYKienFormComponent, decorators: [{
52
+ ChoYKienFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ChoYKienFormComponent, deps: [{ token: i0.Injector }, { token: i1.WorkflowHistoryService }], target: i0.ɵɵFactoryTarget.Component });
53
+ ChoYKienFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ChoYKienFormComponent, selector: "cho-y-kien-form", inputs: { bussinessSetting: "bussinessSetting", rowItem: "rowItem" }, usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "component", type: i4.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ChoYKienFormComponent, decorators: [{
55
55
  type: Component,
56
- args: [{ selector: 'cho-y-kien-form', template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>", styles: [""] }]
56
+ args: [{ selector: 'cho-y-kien-form', template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>" }]
57
57
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.WorkflowHistoryService }]; }, propDecorators: { bussinessSetting: [{
58
58
  type: Input
59
59
  }], rowItem: [{
@@ -8,10 +8,10 @@ import { PermissionBase } from '../../../enums/common';
8
8
  import { EnumPermissionType } from '../../statemachines/models/enums';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "../services/workflow-permission.service";
11
- import * as i2 from "../../crud/crud-list/crud-list.component";
12
- import * as i3 from "@angular/common";
13
- import * as i4 from "tn-custom-primeng/button";
14
- import * as i5 from "tn-custom-primeng/tooltip";
11
+ import * as i2 from "@angular/common";
12
+ import * as i3 from "tn-custom-primeng/button";
13
+ import * as i4 from "tn-custom-primeng/tooltip";
14
+ import * as i5 from "../../crud/crud-list/crud-list.component";
15
15
  export class PermissionSharingComponent extends DataListBase {
16
16
  constructor(_injector, _workflowPermissionService) {
17
17
  super(_injector);
@@ -120,9 +120,9 @@ export class PermissionSharingComponent extends DataListBase {
120
120
  this._notifierService.showSuccess('Copy đường link thành công');
121
121
  }
122
122
  }
123
- PermissionSharingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PermissionSharingComponent, deps: [{ token: i0.Injector }, { token: i1.WorkflowPermissionService }], target: i0.ɵɵFactoryTarget.Component });
124
- PermissionSharingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: PermissionSharingComponent, selector: "permission-sharing", inputs: { baseService: "baseService", item: "item" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list *ngIf=\"model.ready\" #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n [hiddenCopyLink]=\"true\" [hiddenAdd]=\"true\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"delete($event)\"\r\n (onDeleteMultiple)=\"deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\">\r\n <ng-template #buttonBefore let-rowData=\"rowData\">\r\n <button type=\"button\" pButton icon=\"pi pi-copy\" class=\"p-button-text p-button-rounded link-or-action\"\r\n pTooltip=\"Copy v\u00E0o clipboard\" tooltipPosition=\"top\" (click)=\"copyLinkToClipboard(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>", styles: [".state-designer-container>div:first-child{font-weight:700;font-size:.9em;padding:.5em 0}.container-receiver div{margin-bottom:10px}.container-receiver div:last-child{margin-bottom:0}::ng-deep workflow-history-new tr.recalled{opacity:.5}\n"], components: [{ type: i2.CrudListComponent, selector: "crud-list", inputs: ["model", "setting", "fileName", "lazy", "widthCheckbox", "widthOrderColumn", "widthFunctionColumn", "classRowGroup", "showScrollBar", "pTableScrollable", "pTableScrollHeight", "responsive", "configScrollBar", "showScrollHorizontal", "showRadio", "hiddenAdd", "hiddenDelete", "hiddenEdit", "hiddenCopyLink", "hiddenView", "disableKeypressControl", "cancelBubble", "escape", "selectionMode", "config", "enableReorderRow", "templates", "templatesFromParent", "childrenFromParent", "menuButtons", "fieldOrder", "style", "tableClass", "dataSource", "filter_default"], outputs: ["onRowSelect", "onReordered", "onCheckAll", "onReload", "onReloaded", "onReady", "onContentInit", "onAdd", "onEdit", "onCopyLink", "onCopyLinkMultiple", "onView", "onDelete", "onDeleteMultiple", "onInvalidWorkflow", "onAfterTrinhKy", "onStartedWorkflow", "onProcessedWorkflow", "onRollbackedWorkflow", "onChangedStatusWorkflow"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }] });
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: PermissionSharingComponent, decorators: [{
123
+ PermissionSharingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: PermissionSharingComponent, deps: [{ token: i0.Injector }, { token: i1.WorkflowPermissionService }], target: i0.ɵɵFactoryTarget.Component });
124
+ PermissionSharingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: PermissionSharingComponent, selector: "permission-sharing", inputs: { baseService: "baseService", item: "item" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list *ngIf=\"model.ready\" #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n [hiddenCopyLink]=\"true\" [hiddenAdd]=\"true\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"delete($event)\"\r\n (onDeleteMultiple)=\"deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\">\r\n <ng-template #buttonBefore let-rowData=\"rowData\">\r\n <button type=\"button\" pButton icon=\"pi pi-copy\" class=\"p-button-text p-button-rounded link-or-action\"\r\n pTooltip=\"Copy v\u00E0o clipboard\" tooltipPosition=\"top\" (click)=\"copyLinkToClipboard(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>", styles: [".state-designer-container>div:first-child{font-weight:700;font-size:.9em;padding:.5em 0}.container-receiver div{margin-bottom:10px}.container-receiver div:last-child{margin-bottom:0}::ng-deep workflow-history-new tr.recalled{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }, { kind: "component", type: i5.CrudListComponent, selector: "crud-list", inputs: ["model", "setting", "fileName", "lazy", "widthCheckbox", "widthOrderColumn", "widthFunctionColumn", "classRowGroup", "showScrollBar", "pTableScrollable", "pTableScrollHeight", "responsive", "configScrollBar", "showScrollHorizontal", "showRadio", "hiddenAdd", "hiddenDelete", "hiddenEdit", "hiddenCopyLink", "hiddenView", "disableKeypressControl", "cancelBubble", "escape", "selectionMode", "config", "enableReorderRow", "templates", "templatesFromParent", "childrenFromParent", "menuButtons", "fieldOrder", "style", "tableClass", "dataSource", "filter_default"], outputs: ["onRowSelect", "onReordered", "onCheckAll", "onReload", "onReloaded", "onReady", "onContentInit", "onAdd", "onEdit", "onCopyLink", "onCopyLinkMultiple", "onView", "onDelete", "onDeleteMultiple", "onInvalidWorkflow", "onAfterTrinhKy", "onStartedWorkflow", "onProcessedWorkflow", "onRollbackedWorkflow", "onChangedStatusWorkflow"] }] });
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: PermissionSharingComponent, decorators: [{
126
126
  type: Component,
127
127
  args: [{ selector: 'permission-sharing', providers: [ComponentContextService], template: "<crud-list *ngIf=\"model.ready\" #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n [hiddenCopyLink]=\"true\" [hiddenAdd]=\"true\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"delete($event)\"\r\n (onDeleteMultiple)=\"deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\">\r\n <ng-template #buttonBefore let-rowData=\"rowData\">\r\n <button type=\"button\" pButton icon=\"pi pi-copy\" class=\"p-button-text p-button-rounded link-or-action\"\r\n pTooltip=\"Copy v\u00E0o clipboard\" tooltipPosition=\"top\" (click)=\"copyLinkToClipboard(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>", styles: [".state-designer-container>div:first-child{font-weight:700;font-size:.9em;padding:.5em 0}.container-receiver div{margin-bottom:10px}.container-receiver div:last-child{margin-bottom:0}::ng-deep workflow-history-new tr.recalled{opacity:.5}\n"] }]
128
128
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.WorkflowPermissionService }]; }, propDecorators: { baseService: [{
@@ -8,11 +8,11 @@ import { WorkflowTargetDefaultValue } from '../models/models';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "../../statemachines/services/statemachines.service";
10
10
  import * as i2 from "../services/workflow-history.service";
11
- import * as i3 from "../../crud/crud-form/crud-form.component";
12
- import * as i4 from "../../tn-tabview/tn-tabview.component";
13
- import * as i5 from "../process-workflow-target/process-workflow-target.component";
14
- import * as i6 from "@angular/common";
15
- import * as i7 from "tn-custom-primeng/button";
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "tn-custom-primeng/button";
13
+ import * as i5 from "../../crud/crud-form/crud-form.component";
14
+ import * as i6 from "../process-workflow-target/process-workflow-target.component";
15
+ import * as i7 from "../../tn-tabview/tn-tabview.component";
16
16
  import * as i8 from "@ngx-translate/core";
17
17
  export class ProcessWorkflowFormComponent extends DataFormBase {
18
18
  constructor(_injector, _stateMachinesService, _workflowHistoryService) {
@@ -234,11 +234,11 @@ export class ProcessWorkflowFormComponent extends DataFormBase {
234
234
  });
235
235
  }
236
236
  }
237
- ProcessWorkflowFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ProcessWorkflowFormComponent, deps: [{ token: i0.Injector }, { token: i1.StateMachinesService }, { token: i2.WorkflowHistoryService }], target: i0.ɵɵFactoryTarget.Component });
238
- ProcessWorkflowFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: ProcessWorkflowFormComponent, selector: "process-workflow-form", inputs: { businessSetting: "businessSetting", item: "item", workflow: "workflow", action: "action" }, outputs: { onInvalidWorkflow: "onInvalidWorkflow" }, viewQueries: [{ propertyName: "formTargetAllowEdit", first: true, predicate: ["targetAllowEdit"], descendants: true }, { propertyName: "formTargetOnlyView", first: true, predicate: ["targetOnlyView"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crud-form *ngIf=\"formReady\" #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\"\r\n [disableCaching]=\"true\" (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #separator>\r\n <div style=\"height: 3px; width: 100%; background: #2196f3;\"></div>\r\n </ng-template>\r\n</crud-form>\r\n<tn-tabview *ngIf=\"formReady\" [data]=\"mainTabData\" [allowViewAll]=\"true\" [isDynamicHeight]=\"true\">\r\n <ng-template #allowEdit>\r\n <process-workflow-target #targetAllowEdit [data]=\"dataAllowEdit\" [initValue]=\"initValueForTargetForm\">\r\n </process-workflow-target>\r\n </ng-template>\r\n <ng-template #onlyView>\r\n <process-workflow-target #targetOnlyView [data]=\"dataOnlyView\" [initValue]=\"initValueForTargetForm\"\r\n [action]=\"action\">\r\n </process-workflow-target>\r\n </ng-template>\r\n</tn-tabview>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>", styles: [""], components: [{ type: i3.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { type: i4.TnTabViewComponent, selector: "tn-tabview", inputs: ["vertical", "data", "allowViewAll", "activeIndex", "isDynamicHeight", "useScrollbar"], outputs: ["onTabChange", "activeIndexChange"] }, { type: i5.ProcessWorkflowTargetComponent, selector: "process-workflow-target", inputs: ["data", "initValue", "action"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }], pipes: { "translate": i8.TranslatePipe } });
239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ProcessWorkflowFormComponent, decorators: [{
237
+ ProcessWorkflowFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ProcessWorkflowFormComponent, deps: [{ token: i0.Injector }, { token: i1.StateMachinesService }, { token: i2.WorkflowHistoryService }], target: i0.ɵɵFactoryTarget.Component });
238
+ ProcessWorkflowFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ProcessWorkflowFormComponent, selector: "process-workflow-form", inputs: { businessSetting: "businessSetting", item: "item", workflow: "workflow", action: "action" }, outputs: { onInvalidWorkflow: "onInvalidWorkflow" }, viewQueries: [{ propertyName: "formTargetAllowEdit", first: true, predicate: ["targetAllowEdit"], descendants: true }, { propertyName: "formTargetOnlyView", first: true, predicate: ["targetOnlyView"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crud-form *ngIf=\"formReady\" #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\"\r\n [disableCaching]=\"true\" (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #separator>\r\n <div style=\"height: 3px; width: 100%; background: #2196f3;\"></div>\r\n </ng-template>\r\n</crud-form>\r\n<tn-tabview *ngIf=\"formReady\" [data]=\"mainTabData\" [allowViewAll]=\"true\" [isDynamicHeight]=\"true\">\r\n <ng-template #allowEdit>\r\n <process-workflow-target #targetAllowEdit [data]=\"dataAllowEdit\" [initValue]=\"initValueForTargetForm\">\r\n </process-workflow-target>\r\n </ng-template>\r\n <ng-template #onlyView>\r\n <process-workflow-target #targetOnlyView [data]=\"dataOnlyView\" [initValue]=\"initValueForTargetForm\"\r\n [action]=\"action\">\r\n </process-workflow-target>\r\n </ng-template>\r\n</tn-tabview>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "component", type: i5.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { kind: "component", type: i6.ProcessWorkflowTargetComponent, selector: "process-workflow-target", inputs: ["data", "initValue", "action"] }, { kind: "component", type: i7.TnTabViewComponent, selector: "tn-tabview", inputs: ["vertical", "data", "allowViewAll", "activeIndex", "isDynamicHeight", "useScrollbar"], outputs: ["onTabChange", "activeIndexChange"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ProcessWorkflowFormComponent, decorators: [{
240
240
  type: Component,
241
- args: [{ selector: 'process-workflow-form', template: "<crud-form *ngIf=\"formReady\" #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\"\r\n [disableCaching]=\"true\" (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #separator>\r\n <div style=\"height: 3px; width: 100%; background: #2196f3;\"></div>\r\n </ng-template>\r\n</crud-form>\r\n<tn-tabview *ngIf=\"formReady\" [data]=\"mainTabData\" [allowViewAll]=\"true\" [isDynamicHeight]=\"true\">\r\n <ng-template #allowEdit>\r\n <process-workflow-target #targetAllowEdit [data]=\"dataAllowEdit\" [initValue]=\"initValueForTargetForm\">\r\n </process-workflow-target>\r\n </ng-template>\r\n <ng-template #onlyView>\r\n <process-workflow-target #targetOnlyView [data]=\"dataOnlyView\" [initValue]=\"initValueForTargetForm\"\r\n [action]=\"action\">\r\n </process-workflow-target>\r\n </ng-template>\r\n</tn-tabview>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>", styles: [""] }]
241
+ args: [{ selector: 'process-workflow-form', template: "<crud-form *ngIf=\"formReady\" #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\"\r\n [disableCaching]=\"true\" (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #separator>\r\n <div style=\"height: 3px; width: 100%; background: #2196f3;\"></div>\r\n </ng-template>\r\n</crud-form>\r\n<tn-tabview *ngIf=\"formReady\" [data]=\"mainTabData\" [allowViewAll]=\"true\" [isDynamicHeight]=\"true\">\r\n <ng-template #allowEdit>\r\n <process-workflow-target #targetAllowEdit [data]=\"dataAllowEdit\" [initValue]=\"initValueForTargetForm\">\r\n </process-workflow-target>\r\n </ng-template>\r\n <ng-template #onlyView>\r\n <process-workflow-target #targetOnlyView [data]=\"dataOnlyView\" [initValue]=\"initValueForTargetForm\"\r\n [action]=\"action\">\r\n </process-workflow-target>\r\n </ng-template>\r\n</tn-tabview>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>" }]
242
242
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.StateMachinesService }, { type: i2.WorkflowHistoryService }]; }, propDecorators: { formTargetAllowEdit: [{
243
243
  type: ViewChild,
244
244
  args: ['targetAllowEdit', { static: false }]
@@ -94,11 +94,11 @@ export class ProcessWorkflowTargetComponent extends DataFormBase {
94
94
  }
95
95
  }
96
96
  }
97
- ProcessWorkflowTargetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ProcessWorkflowTargetComponent, deps: [{ token: i0.Injector }, { token: i1.StateMachinesService }, { token: i2.CoCauToChucService }, { token: i3.UserGroupRealService }, { token: i4.DmChucVuService }], target: i0.ɵɵFactoryTarget.Component });
98
- ProcessWorkflowTargetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: ProcessWorkflowTargetComponent, selector: "process-workflow-target", inputs: { data: "data", initValue: "initValue", action: "action" }, usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>", styles: [""], components: [{ type: i5.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }] });
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ProcessWorkflowTargetComponent, decorators: [{
97
+ ProcessWorkflowTargetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ProcessWorkflowTargetComponent, deps: [{ token: i0.Injector }, { token: i1.StateMachinesService }, { token: i2.CoCauToChucService }, { token: i3.UserGroupRealService }, { token: i4.DmChucVuService }], target: i0.ɵɵFactoryTarget.Component });
98
+ ProcessWorkflowTargetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ProcessWorkflowTargetComponent, selector: "process-workflow-target", inputs: { data: "data", initValue: "initValue", action: "action" }, usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>", styles: [""], dependencies: [{ kind: "component", type: i5.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }] });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ProcessWorkflowTargetComponent, decorators: [{
100
100
  type: Component,
101
- args: [{ selector: 'process-workflow-target', template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>", styles: [""] }]
101
+ args: [{ selector: 'process-workflow-target', template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>" }]
102
102
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.StateMachinesService }, { type: i2.CoCauToChucService }, { type: i3.UserGroupRealService }, { type: i4.DmChucVuService }]; }, propDecorators: { data: [{
103
103
  type: Input
104
104
  }], initValue: [{
@@ -16,9 +16,9 @@ export class CanBo_HoSoService extends BaseService {
16
16
  return this.defaultGet(`${this.serviceUri}/CanBoQuanLyByUserId/${idUser}`);
17
17
  }
18
18
  }
19
- CanBo_HoSoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CanBo_HoSoService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
20
- CanBo_HoSoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CanBo_HoSoService, providedIn: 'root' });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CanBo_HoSoService, decorators: [{
19
+ CanBo_HoSoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CanBo_HoSoService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
20
+ CanBo_HoSoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CanBo_HoSoService, providedIn: 'root' });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CanBo_HoSoService, decorators: [{
22
22
  type: Injectable,
23
23
  args: [{
24
24
  providedIn: 'root'
@@ -13,9 +13,9 @@ export class DmLoaiCongViecService extends BaseService {
13
13
  this.serviceUri = `${this.endPoint}/DM_LoaiCongViec`;
14
14
  }
15
15
  }
16
- DmLoaiCongViecService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DmLoaiCongViecService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
17
- DmLoaiCongViecService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DmLoaiCongViecService, providedIn: 'root' });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DmLoaiCongViecService, decorators: [{
16
+ DmLoaiCongViecService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DmLoaiCongViecService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
17
+ DmLoaiCongViecService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DmLoaiCongViecService, providedIn: 'root' });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DmLoaiCongViecService, decorators: [{
19
19
  type: Injectable,
20
20
  args: [{
21
21
  providedIn: 'root'
@@ -46,9 +46,9 @@ export class EntityWorkflowHistoryService extends BaseService {
46
46
  return this.defaultPost(url, gridInfo);
47
47
  }
48
48
  }
49
- EntityWorkflowHistoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: EntityWorkflowHistoryService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
50
- EntityWorkflowHistoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: EntityWorkflowHistoryService });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: EntityWorkflowHistoryService, decorators: [{
49
+ EntityWorkflowHistoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: EntityWorkflowHistoryService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
50
+ EntityWorkflowHistoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: EntityWorkflowHistoryService });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: EntityWorkflowHistoryService, decorators: [{
52
52
  type: Injectable
53
53
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.Injector }, { type: i2.EnvironmentService }]; } });
54
54
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXdvcmtmbG93LWhpc3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3cvc2VydmljZXMvZW50aXR5LXdvcmtmbG93LWhpc3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBVSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7O0FBR3JFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxXQUFXO0lBTXpELFlBQ0ksSUFBZ0IsRUFDaEIsUUFBa0IsRUFDbEIsbUJBQXVDO1FBRXZDLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBVjlCLGdCQUFXLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyx1QkFBdUIsQ0FBQztRQUM3QixvQkFBZSxHQUVuQixFQUFFLENBQUM7UUFPSCxJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFtQixDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsd0JBQXdCLENBQUM7SUFDL0QsQ0FBQztJQUVELGVBQWUsQ0FBQyxVQUFrQixFQUFFLE9BQW9CO1FBQ3BELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQy9DLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFvQjtRQUNyQyxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFNBQWlCO1FBQ2xDLE1BQU0sT0FBTyxHQUFnQixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxJQUFJLFNBQVMsRUFBRTtZQUN0QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7U0FDbEg7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztJQUNwRixDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQWlCLEVBQUUsVUFBb0IsRUFBRTtRQUNwRCxNQUFNLE9BQU8sR0FBZ0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RCxJQUFJLE9BQU8sSUFBSSxTQUFTLEVBQUU7WUFDdEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1NBQ2xIO1FBQ0QsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO1FBQzFGLE1BQU0sUUFBUSxHQUFHO1lBQ2IsUUFBUSxFQUFFO2dCQUNOLElBQUksRUFBRSxDQUFDO2dCQUNQLFFBQVEsRUFBRSxDQUFDO2FBQ2Q7WUFDRCxPQUFPO1lBQ1AsS0FBSyxFQUFFO2dCQUNILElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDekM7U0FDSixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDOzt5SEFqRFEsNEJBQTRCOzZIQUE1Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbHRlciwgU29ydCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Jhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEVudGl0eVdvcmtmbG93SGlzdG9yeVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcbiAgICBzZXJ2aWNlQ29kZSA9ICd1c2VyT3JnJztcclxuICAgIGVudGl0eU5hbWUgPSAnRW50aXR5V29ya2Zsb3dIaXN0b3J5JztcclxuICAgIHByaXZhdGUgc2VydmljZU1hbmFnZXJzOiB7XHJcbiAgICAgICAgW2tleTogc3RyaW5nXTogQmFzZVNlcnZpY2VcclxuICAgIH0gPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIF9lbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaHR0cCwgaW5qZWN0b3IsICcnKTtcclxuICAgICAgICB0aGlzLmVuZFBvaW50ID0gX2Vudmlyb25tZW50U2VydmljZS5nZXRIdHRwU2VydmljZUVuZHBvaW50V2l0aFZlcnNpb24odGhpcy5zZXJ2aWNlQ29kZSk7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpID0gYCR7dGhpcy5lbmRQb2ludH0vRW50aXR5V29ya2Zsb3dIaXN0b3J5YDtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlclNlcnZpY2UoZW50aXR5TmFtZTogc3RyaW5nLCBzZXJ2aWNlOiBCYXNlU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMuc2VydmljZU1hbmFnZXJzW2VudGl0eU5hbWVdID0gc2VydmljZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRFbmRwb2ludEJ5U2VydmljZShzZXJ2aWNlOiBCYXNlU2VydmljZSkge1xyXG4gICAgICAgIHJldHVybiBzZXJ2aWNlLmVuZFBvaW50O1xyXG4gICAgfVxyXG5cclxuICAgIHNldEN1cnJlbnRTZXJ2aWNlVXJpKHRhYmxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3Qgc2VydmljZTogQmFzZVNlcnZpY2UgPSB0aGlzLnNlcnZpY2VNYW5hZ2Vyc1t0YWJsZU5hbWVdO1xyXG4gICAgICAgIGlmIChzZXJ2aWNlID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAodGhpcy5faW5qZWN0b3IuZ2V0KE5vdGlmaWVyU2VydmljZSkpLnNob3dXYXJuaW5nKCdC4bqhbiBjaMawYSDEkcSDbmcga8O9IGJhc2Ugc2VydmljZSBjaG8gZW50aXR5IHdvcmtmbG93IGhpc3RvcnknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpID0gYCR7dGhpcy5nZXRFbmRwb2ludEJ5U2VydmljZShzZXJ2aWNlKX0vRW50aXR5V29ya2Zsb3dIaXN0b3J5YDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRMYXN0SGlzdG9yeSh0YWJsZU5hbWU6IHN0cmluZywgZmlsdGVyczogRmlsdGVyW10gPSBbXSkge1xyXG4gICAgICAgIGNvbnN0IHNlcnZpY2U6IEJhc2VTZXJ2aWNlID0gdGhpcy5zZXJ2aWNlTWFuYWdlcnNbdGFibGVOYW1lXTtcclxuICAgICAgICBpZiAoc2VydmljZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgKHRoaXMuX2luamVjdG9yLmdldChOb3RpZmllclNlcnZpY2UpKS5zaG93V2FybmluZygnQuG6oW4gY2jGsGEgxJHEg25nIGvDvSBiYXNlIHNlcnZpY2UgY2hvIGVudGl0eSB3b3JrZmxvdyBoaXN0b3J5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0RW5kcG9pbnRCeVNlcnZpY2Uoc2VydmljZSl9L0VudGl0eVdvcmtmbG93SGlzdG9yeS9HZXRMYXN0QnlGaWx0ZXJgO1xyXG4gICAgICAgIGNvbnN0IGdyaWRJbmZvID0ge1xyXG4gICAgICAgICAgICBwYWdlSW5mbzoge1xyXG4gICAgICAgICAgICAgICAgcGFnZTogMSxcclxuICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZpbHRlcnMsXHJcbiAgICAgICAgICAgIHNvcnRzOiBbXHJcbiAgICAgICAgICAgICAgICBuZXcgU29ydCh7IGZpZWxkOiAnY3JlYXRlZCcsIGRpcjogMSB9KVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIGdyaWRJbmZvKTtcclxuICAgIH1cclxufVxyXG4iXX0=