@netgrif/components 6.0.1

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 (725) hide show
  1. package/LICENSE +132 -0
  2. package/README.md +106 -0
  3. package/bundles/netgrif-components.umd.js +4769 -0
  4. package/bundles/netgrif-components.umd.js.map +1 -0
  5. package/bundles/netgrif-components.umd.min.js +16 -0
  6. package/bundles/netgrif-components.umd.min.js.map +1 -0
  7. package/esm2015/lib/admin/admin.module.js +19 -0
  8. package/esm2015/lib/admin/public-api.js +5 -0
  9. package/esm2015/lib/admin/role-assignment/role-assignment.component.js +28 -0
  10. package/esm2015/lib/admin/user-invite/user-invite.component.js +35 -0
  11. package/esm2015/lib/authentication/auth.module.js +15 -0
  12. package/esm2015/lib/authentication/authentication-overlay/authentication-overlay.component.js +35 -0
  13. package/esm2015/lib/authentication/public-api.js +5 -0
  14. package/esm2015/lib/dashboard/cards/barchart-card/barchart-card.component.js +49 -0
  15. package/esm2015/lib/dashboard/cards/count-card/count-card.component.js +22 -0
  16. package/esm2015/lib/dashboard/cards/iframe-card/iframe-card.component.js +23 -0
  17. package/esm2015/lib/dashboard/cards/lineargauge-card/linear-gauge-card.component.js +47 -0
  18. package/esm2015/lib/dashboard/cards/linechart-card/line-chart-card.component.js +59 -0
  19. package/esm2015/lib/dashboard/cards/piechart-card/pie-chart-card.component.js +52 -0
  20. package/esm2015/lib/dashboard/cards/portal-card/portal-card.component.js +47 -0
  21. package/esm2015/lib/dashboard/dashboard-content/dashboard-content.component.js +22 -0
  22. package/esm2015/lib/dashboard/dashboard.module.js +44 -0
  23. package/esm2015/lib/dashboard/public-api.js +12 -0
  24. package/esm2015/lib/data-fields/boolean-field/boolean-field.component.js +28 -0
  25. package/esm2015/lib/data-fields/button-field/button-field.component.js +27 -0
  26. package/esm2015/lib/data-fields/data-field-template/data-field-template.component.js +25 -0
  27. package/esm2015/lib/data-fields/data-fields.module.js +134 -0
  28. package/esm2015/lib/data-fields/date-field/date-field.component.js +30 -0
  29. package/esm2015/lib/data-fields/date-time-field/date-time-field.component.js +30 -0
  30. package/esm2015/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.js +23 -0
  31. package/esm2015/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.js +23 -0
  32. package/esm2015/lib/data-fields/enumeration-field/enumeration-field.component.js +21 -0
  33. package/esm2015/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.js +16 -0
  34. package/esm2015/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.js +16 -0
  35. package/esm2015/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.js +16 -0
  36. package/esm2015/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.js +22 -0
  37. package/esm2015/lib/data-fields/file-field/file-field.component.js +52 -0
  38. package/esm2015/lib/data-fields/file-field/preview-dialog/preview-dialog.component.js +33 -0
  39. package/esm2015/lib/data-fields/file-field-list/file-list-field.component.js +32 -0
  40. package/esm2015/lib/data-fields/filter-field/filter-field-content/filter-field-content.component.js +42 -0
  41. package/esm2015/lib/data-fields/filter-field/filter-field.component.js +27 -0
  42. package/esm2015/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.js +16 -0
  43. package/esm2015/lib/data-fields/i18n-field/i18n-field.component.js +21 -0
  44. package/esm2015/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.js +22 -0
  45. package/esm2015/lib/data-fields/multichoice-field/multichoice-field.component.js +21 -0
  46. package/esm2015/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.js +16 -0
  47. package/esm2015/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.js +12 -0
  48. package/esm2015/lib/data-fields/number-field/number-currency-field/number-currency-field.component.js +34 -0
  49. package/esm2015/lib/data-fields/number-field/number-default-field/number-default-field.component.js +22 -0
  50. package/esm2015/lib/data-fields/number-field/number-field.component.js +32 -0
  51. package/esm2015/lib/data-fields/public-api.js +18 -0
  52. package/esm2015/lib/data-fields/required-label/required-label.component.js +20 -0
  53. package/esm2015/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.js +27 -0
  54. package/esm2015/lib/data-fields/text-field/password-text-field/password-text-field.component.js +26 -0
  55. package/esm2015/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.js +23 -0
  56. package/esm2015/lib/data-fields/text-field/simple-text-field/simple-text-field.component.js +23 -0
  57. package/esm2015/lib/data-fields/text-field/text-field.component.js +21 -0
  58. package/esm2015/lib/data-fields/text-field/textarea-field/textarea-field.component.js +26 -0
  59. package/esm2015/lib/data-fields/user-field/user-field.component.js +32 -0
  60. package/esm2015/lib/forms/email-submission/email-submission-form.component.js +22 -0
  61. package/esm2015/lib/forms/email-submission/email-submission-form.module.js +24 -0
  62. package/esm2015/lib/forms/forgotten-password/forgotten-password-form-component.module.js +22 -0
  63. package/esm2015/lib/forms/forgotten-password/forgotten-password-form.component.js +29 -0
  64. package/esm2015/lib/forms/login/login-form.component.js +25 -0
  65. package/esm2015/lib/forms/login/login-form.module.js +22 -0
  66. package/esm2015/lib/forms/public-api.js +11 -0
  67. package/esm2015/lib/forms/registration/registration-form.component.js +29 -0
  68. package/esm2015/lib/forms/registration/registration-form.module.js +24 -0
  69. package/esm2015/lib/header/header-modes/edit-mode/edit-mode.component.js +26 -0
  70. package/esm2015/lib/header/header-modes/loading-mode/loading-mode.component.js +16 -0
  71. package/esm2015/lib/header/header-modes/search-mode/search-mode.component.js +34 -0
  72. package/esm2015/lib/header/header-modes/sort-mode/sort-mode.component.js +16 -0
  73. package/esm2015/lib/header/header.component.js +36 -0
  74. package/esm2015/lib/header/header.module.js +39 -0
  75. package/esm2015/lib/header/public-api.js +12 -0
  76. package/esm2015/lib/legal/legal-notice/legal-notice.component.js +21 -0
  77. package/esm2015/lib/legal/legal-notice/legal-notice.module.js +17 -0
  78. package/esm2015/lib/legal/public-api.js +5 -0
  79. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.js +54 -0
  80. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.js +43 -0
  81. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.js +67 -0
  82. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.js +58 -0
  83. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.js +30 -0
  84. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-case-view-data-with-navigation-item-task-data.js +2 -0
  85. package/esm2015/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.js +35 -0
  86. package/esm2015/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.component.js +30 -0
  87. package/esm2015/lib/navigation/navigation-drawer/navigation-drawer.component.js +30 -0
  88. package/esm2015/lib/navigation/navigation-rail/navigation-rail.component.js +40 -0
  89. package/esm2015/lib/navigation/navigation-tree/navigation-tree.component.js +42 -0
  90. package/esm2015/lib/navigation/navigation.module.js +81 -0
  91. package/esm2015/lib/navigation/public-api.js +9 -0
  92. package/esm2015/lib/navigation/quick-panel/components/internal-link/internal-link.component.js +16 -0
  93. package/esm2015/lib/navigation/quick-panel/components/language-selector/language-selector.component.js +39 -0
  94. package/esm2015/lib/navigation/quick-panel/components/logout-shortcut/logout-shortcut.component.js +32 -0
  95. package/esm2015/lib/navigation/quick-panel/components/quick-panel.component.js +25 -0
  96. package/esm2015/lib/navigation/quick-panel/public-api.js +9 -0
  97. package/esm2015/lib/navigation/quick-panel/quick-panel.module.js +33 -0
  98. package/esm2015/lib/panel/case-panel/case-panel.component.js +50 -0
  99. package/esm2015/lib/panel/immediate/immediate-filter-text/immediate-filter-text.component.js +25 -0
  100. package/esm2015/lib/panel/immediate/immediate-filter-text-content/immediate-filter-text-content.component.js +46 -0
  101. package/esm2015/lib/panel/panel.component.js +22 -0
  102. package/esm2015/lib/panel/panel.module.js +55 -0
  103. package/esm2015/lib/panel/public-api.js +10 -0
  104. package/esm2015/lib/panel/public-workflow-panel/public-workflow-panel.component.js +26 -0
  105. package/esm2015/lib/panel/task-panel/task-panel.component.js +113 -0
  106. package/esm2015/lib/panel/task-panel-list/task-list.component.js +31 -0
  107. package/esm2015/lib/panel/workflow-panel/workflow-panel.component.js +26 -0
  108. package/esm2015/lib/routing/public-api.js +3 -0
  109. package/esm2015/lib/routing/redirect/redirect.component.js +28 -0
  110. package/esm2015/lib/routing/redirect.module.js +12 -0
  111. package/esm2015/lib/search/advanced-search/advanced-search-component/advanced-search.component.js +24 -0
  112. package/esm2015/lib/search/advanced-search/advanced-search.module.js +36 -0
  113. package/esm2015/lib/search/advanced-search/public-api.js +8 -0
  114. package/esm2015/lib/search/advanced-search/search-clause-component/search-clause.component.js +16 -0
  115. package/esm2015/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.js +20 -0
  116. package/esm2015/lib/search/advanced-search/search-operand-input-component/search-operand-input.component.js +26 -0
  117. package/esm2015/lib/search/advanced-search/search-predicate-component/search-predicate.component.js +27 -0
  118. package/esm2015/lib/search/fulltext-search-component/fulltext-search.component.js +21 -0
  119. package/esm2015/lib/search/public-api.js +10 -0
  120. package/esm2015/lib/search/search-component/case-search/case-search.component.js +24 -0
  121. package/esm2015/lib/search/search-component/search.component.js +98 -0
  122. package/esm2015/lib/search/search-component/task-search/task-search.component.js +24 -0
  123. package/esm2015/lib/search/search.module.js +36 -0
  124. package/esm2015/lib/side-menu/content-components/filter-selector/filter-selector-list-item/filter-selector-list-item.component.js +16 -0
  125. package/esm2015/lib/side-menu/content-components/filter-selector/filter-selector.component.js +45 -0
  126. package/esm2015/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.js +27 -0
  127. package/esm2015/lib/side-menu/content-components/import-net/import-net.component.js +44 -0
  128. package/esm2015/lib/side-menu/content-components/import-net/side-menu-import-net-component.module.js +27 -0
  129. package/esm2015/lib/side-menu/content-components/load-filter/load-filter.component.js +54 -0
  130. package/esm2015/lib/side-menu/content-components/load-filter/side-menu-load-filter-component.module.js +28 -0
  131. package/esm2015/lib/side-menu/content-components/new-case/new-case.component.js +48 -0
  132. package/esm2015/lib/side-menu/content-components/new-case/side-menu-new-case-component.module.js +35 -0
  133. package/esm2015/lib/side-menu/content-components/option-selector/option-selector.component.js +22 -0
  134. package/esm2015/lib/side-menu/content-components/option-selector/side-menu-option-selector-component.module.js +30 -0
  135. package/esm2015/lib/side-menu/content-components/public-api.js +19 -0
  136. package/esm2015/lib/side-menu/content-components/save-filter/save-filter.component.js +53 -0
  137. package/esm2015/lib/side-menu/content-components/save-filter/side-menu-save-filter-component.module.js +26 -0
  138. package/esm2015/lib/side-menu/content-components/side-menu-content-component.module.js +50 -0
  139. package/esm2015/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.js +36 -0
  140. package/esm2015/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/user-assign-item.component.js +19 -0
  141. package/esm2015/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-list.component.js +25 -0
  142. package/esm2015/lib/side-menu/content-components/user-assign/user-assign.component.js +29 -0
  143. package/esm2015/lib/side-menu/public-api.js +7 -0
  144. package/esm2015/lib/side-menu/side-menu-container/side-menu-container.component.js +22 -0
  145. package/esm2015/lib/side-menu/side-menu.module.js +27 -0
  146. package/esm2015/lib/tabs/public-api.js +4 -0
  147. package/esm2015/lib/tabs/tab-creation-detector/tab-creation-detector.component.js +22 -0
  148. package/esm2015/lib/tabs/tab-view/tab-view.component.js +32 -0
  149. package/esm2015/lib/tabs/tabs.module.js +28 -0
  150. package/esm2015/lib/task-content/field-component-resolver/field-component-resolver.component.js +21 -0
  151. package/esm2015/lib/task-content/public-api.js +6 -0
  152. package/esm2015/lib/task-content/task-content/task-content.component.js +36 -0
  153. package/esm2015/lib/task-content/task-content.module.js +32 -0
  154. package/esm2015/lib/toolbar/public-api.js +3 -0
  155. package/esm2015/lib/toolbar/toolbar.component.js +26 -0
  156. package/esm2015/lib/toolbar/toolbar.module.js +22 -0
  157. package/esm2015/lib/user/profile/profile.component.js +22 -0
  158. package/esm2015/lib/user/profile/profile.module.js +20 -0
  159. package/esm2015/lib/user/public-api.js +7 -0
  160. package/esm2015/lib/user/user-card/user-card.component.js +22 -0
  161. package/esm2015/lib/user/user.module.js +22 -0
  162. package/esm2015/lib/view/case-view/case-view.module.js +22 -0
  163. package/esm2015/lib/view/case-view/components/case-list/case-list.component.js +31 -0
  164. package/esm2015/lib/view/public-api.js +10 -0
  165. package/esm2015/lib/view/tree-case-view/tree-case-view.module.js +38 -0
  166. package/esm2015/lib/view/tree-case-view/tree-component/add-child-node/add-child-node.component.js +22 -0
  167. package/esm2015/lib/view/tree-case-view/tree-component/remove-node/remove-node.component.js +22 -0
  168. package/esm2015/lib/view/tree-case-view/tree-component/tree.component.js +23 -0
  169. package/esm2015/lib/view/tree-case-view/tree-task-content/tree-task-content.component.js +55 -0
  170. package/esm2015/lib/view/workflow-view/workflow-view.component.js +36 -0
  171. package/esm2015/lib/view/workflow-view.module.js +36 -0
  172. package/esm2015/netgrif-components.js +43 -0
  173. package/esm2015/public-api.js +22 -0
  174. package/esm5/lib/admin/admin.module.js +23 -0
  175. package/esm5/lib/admin/public-api.js +5 -0
  176. package/esm5/lib/admin/role-assignment/role-assignment.component.js +33 -0
  177. package/esm5/lib/admin/user-invite/user-invite.component.js +40 -0
  178. package/esm5/lib/authentication/auth.module.js +19 -0
  179. package/esm5/lib/authentication/authentication-overlay/authentication-overlay.component.js +40 -0
  180. package/esm5/lib/authentication/public-api.js +5 -0
  181. package/esm5/lib/dashboard/cards/barchart-card/barchart-card.component.js +55 -0
  182. package/esm5/lib/dashboard/cards/count-card/count-card.component.js +27 -0
  183. package/esm5/lib/dashboard/cards/iframe-card/iframe-card.component.js +28 -0
  184. package/esm5/lib/dashboard/cards/lineargauge-card/linear-gauge-card.component.js +52 -0
  185. package/esm5/lib/dashboard/cards/linechart-card/line-chart-card.component.js +65 -0
  186. package/esm5/lib/dashboard/cards/piechart-card/pie-chart-card.component.js +58 -0
  187. package/esm5/lib/dashboard/cards/portal-card/portal-card.component.js +52 -0
  188. package/esm5/lib/dashboard/dashboard-content/dashboard-content.component.js +27 -0
  189. package/esm5/lib/dashboard/dashboard.module.js +48 -0
  190. package/esm5/lib/dashboard/public-api.js +12 -0
  191. package/esm5/lib/data-fields/boolean-field/boolean-field.component.js +33 -0
  192. package/esm5/lib/data-fields/button-field/button-field.component.js +32 -0
  193. package/esm5/lib/data-fields/data-field-template/data-field-template.component.js +30 -0
  194. package/esm5/lib/data-fields/data-fields.module.js +138 -0
  195. package/esm5/lib/data-fields/date-field/date-field.component.js +34 -0
  196. package/esm5/lib/data-fields/date-time-field/date-time-field.component.js +34 -0
  197. package/esm5/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.js +28 -0
  198. package/esm5/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.js +28 -0
  199. package/esm5/lib/data-fields/enumeration-field/enumeration-field.component.js +25 -0
  200. package/esm5/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.js +20 -0
  201. package/esm5/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.js +20 -0
  202. package/esm5/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.js +20 -0
  203. package/esm5/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.js +27 -0
  204. package/esm5/lib/data-fields/file-field/file-field.component.js +57 -0
  205. package/esm5/lib/data-fields/file-field/preview-dialog/preview-dialog.component.js +36 -0
  206. package/esm5/lib/data-fields/file-field-list/file-list-field.component.js +36 -0
  207. package/esm5/lib/data-fields/filter-field/filter-field-content/filter-field-content.component.js +46 -0
  208. package/esm5/lib/data-fields/filter-field/filter-field.component.js +31 -0
  209. package/esm5/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.js +20 -0
  210. package/esm5/lib/data-fields/i18n-field/i18n-field.component.js +25 -0
  211. package/esm5/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.js +26 -0
  212. package/esm5/lib/data-fields/multichoice-field/multichoice-field.component.js +25 -0
  213. package/esm5/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.js +20 -0
  214. package/esm5/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.js +19 -0
  215. package/esm5/lib/data-fields/number-field/number-currency-field/number-currency-field.component.js +38 -0
  216. package/esm5/lib/data-fields/number-field/number-default-field/number-default-field.component.js +26 -0
  217. package/esm5/lib/data-fields/number-field/number-field.component.js +36 -0
  218. package/esm5/lib/data-fields/public-api.js +18 -0
  219. package/esm5/lib/data-fields/required-label/required-label.component.js +22 -0
  220. package/esm5/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.js +32 -0
  221. package/esm5/lib/data-fields/text-field/password-text-field/password-text-field.component.js +31 -0
  222. package/esm5/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.js +28 -0
  223. package/esm5/lib/data-fields/text-field/simple-text-field/simple-text-field.component.js +28 -0
  224. package/esm5/lib/data-fields/text-field/text-field.component.js +25 -0
  225. package/esm5/lib/data-fields/text-field/textarea-field/textarea-field.component.js +31 -0
  226. package/esm5/lib/data-fields/user-field/user-field.component.js +36 -0
  227. package/esm5/lib/forms/email-submission/email-submission-form.component.js +26 -0
  228. package/esm5/lib/forms/email-submission/email-submission-form.module.js +28 -0
  229. package/esm5/lib/forms/forgotten-password/forgotten-password-form-component.module.js +26 -0
  230. package/esm5/lib/forms/forgotten-password/forgotten-password-form.component.js +33 -0
  231. package/esm5/lib/forms/login/login-form.component.js +30 -0
  232. package/esm5/lib/forms/login/login-form.module.js +26 -0
  233. package/esm5/lib/forms/public-api.js +11 -0
  234. package/esm5/lib/forms/registration/registration-form.component.js +33 -0
  235. package/esm5/lib/forms/registration/registration-form.module.js +28 -0
  236. package/esm5/lib/header/header-modes/edit-mode/edit-mode.component.js +31 -0
  237. package/esm5/lib/header/header-modes/loading-mode/loading-mode.component.js +20 -0
  238. package/esm5/lib/header/header-modes/search-mode/search-mode.component.js +39 -0
  239. package/esm5/lib/header/header-modes/sort-mode/sort-mode.component.js +20 -0
  240. package/esm5/lib/header/header.component.js +41 -0
  241. package/esm5/lib/header/header.module.js +43 -0
  242. package/esm5/lib/header/public-api.js +12 -0
  243. package/esm5/lib/legal/legal-notice/legal-notice.component.js +25 -0
  244. package/esm5/lib/legal/legal-notice/legal-notice.module.js +21 -0
  245. package/esm5/lib/legal/public-api.js +5 -0
  246. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.js +58 -0
  247. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.js +45 -0
  248. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.js +71 -0
  249. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.js +62 -0
  250. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.js +30 -0
  251. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-case-view-data-with-navigation-item-task-data.js +2 -0
  252. package/esm5/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.js +39 -0
  253. package/esm5/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.component.js +34 -0
  254. package/esm5/lib/navigation/navigation-drawer/navigation-drawer.component.js +35 -0
  255. package/esm5/lib/navigation/navigation-rail/navigation-rail.component.js +44 -0
  256. package/esm5/lib/navigation/navigation-tree/navigation-tree.component.js +46 -0
  257. package/esm5/lib/navigation/navigation.module.js +85 -0
  258. package/esm5/lib/navigation/public-api.js +9 -0
  259. package/esm5/lib/navigation/quick-panel/components/internal-link/internal-link.component.js +20 -0
  260. package/esm5/lib/navigation/quick-panel/components/language-selector/language-selector.component.js +44 -0
  261. package/esm5/lib/navigation/quick-panel/components/logout-shortcut/logout-shortcut.component.js +37 -0
  262. package/esm5/lib/navigation/quick-panel/components/quick-panel.component.js +30 -0
  263. package/esm5/lib/navigation/quick-panel/public-api.js +9 -0
  264. package/esm5/lib/navigation/quick-panel/quick-panel.module.js +37 -0
  265. package/esm5/lib/panel/case-panel/case-panel.component.js +55 -0
  266. package/esm5/lib/panel/immediate/immediate-filter-text/immediate-filter-text.component.js +29 -0
  267. package/esm5/lib/panel/immediate/immediate-filter-text-content/immediate-filter-text-content.component.js +50 -0
  268. package/esm5/lib/panel/panel.component.js +26 -0
  269. package/esm5/lib/panel/panel.module.js +59 -0
  270. package/esm5/lib/panel/public-api.js +10 -0
  271. package/esm5/lib/panel/public-workflow-panel/public-workflow-panel.component.js +30 -0
  272. package/esm5/lib/panel/task-panel/task-panel.component.js +118 -0
  273. package/esm5/lib/panel/task-panel-list/task-list.component.js +36 -0
  274. package/esm5/lib/panel/workflow-panel/workflow-panel.component.js +30 -0
  275. package/esm5/lib/routing/public-api.js +3 -0
  276. package/esm5/lib/routing/redirect/redirect.component.js +30 -0
  277. package/esm5/lib/routing/redirect.module.js +16 -0
  278. package/esm5/lib/search/advanced-search/advanced-search-component/advanced-search.component.js +28 -0
  279. package/esm5/lib/search/advanced-search/advanced-search.module.js +40 -0
  280. package/esm5/lib/search/advanced-search/public-api.js +8 -0
  281. package/esm5/lib/search/advanced-search/search-clause-component/search-clause.component.js +20 -0
  282. package/esm5/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.js +25 -0
  283. package/esm5/lib/search/advanced-search/search-operand-input-component/search-operand-input.component.js +31 -0
  284. package/esm5/lib/search/advanced-search/search-predicate-component/search-predicate.component.js +31 -0
  285. package/esm5/lib/search/fulltext-search-component/fulltext-search.component.js +25 -0
  286. package/esm5/lib/search/public-api.js +10 -0
  287. package/esm5/lib/search/search-component/case-search/case-search.component.js +28 -0
  288. package/esm5/lib/search/search-component/search.component.js +105 -0
  289. package/esm5/lib/search/search-component/task-search/task-search.component.js +28 -0
  290. package/esm5/lib/search/search.module.js +40 -0
  291. package/esm5/lib/side-menu/content-components/filter-selector/filter-selector-list-item/filter-selector-list-item.component.js +23 -0
  292. package/esm5/lib/side-menu/content-components/filter-selector/filter-selector.component.js +50 -0
  293. package/esm5/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.js +31 -0
  294. package/esm5/lib/side-menu/content-components/import-net/import-net.component.js +49 -0
  295. package/esm5/lib/side-menu/content-components/import-net/side-menu-import-net-component.module.js +31 -0
  296. package/esm5/lib/side-menu/content-components/load-filter/load-filter.component.js +58 -0
  297. package/esm5/lib/side-menu/content-components/load-filter/side-menu-load-filter-component.module.js +32 -0
  298. package/esm5/lib/side-menu/content-components/new-case/new-case.component.js +53 -0
  299. package/esm5/lib/side-menu/content-components/new-case/side-menu-new-case-component.module.js +39 -0
  300. package/esm5/lib/side-menu/content-components/option-selector/option-selector.component.js +27 -0
  301. package/esm5/lib/side-menu/content-components/option-selector/side-menu-option-selector-component.module.js +34 -0
  302. package/esm5/lib/side-menu/content-components/public-api.js +19 -0
  303. package/esm5/lib/side-menu/content-components/save-filter/save-filter.component.js +57 -0
  304. package/esm5/lib/side-menu/content-components/save-filter/side-menu-save-filter-component.module.js +30 -0
  305. package/esm5/lib/side-menu/content-components/side-menu-content-component.module.js +54 -0
  306. package/esm5/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.js +40 -0
  307. package/esm5/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/user-assign-item.component.js +23 -0
  308. package/esm5/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-list.component.js +30 -0
  309. package/esm5/lib/side-menu/content-components/user-assign/user-assign.component.js +34 -0
  310. package/esm5/lib/side-menu/public-api.js +7 -0
  311. package/esm5/lib/side-menu/side-menu-container/side-menu-container.component.js +27 -0
  312. package/esm5/lib/side-menu/side-menu.module.js +31 -0
  313. package/esm5/lib/tabs/public-api.js +4 -0
  314. package/esm5/lib/tabs/tab-creation-detector/tab-creation-detector.component.js +26 -0
  315. package/esm5/lib/tabs/tab-view/tab-view.component.js +37 -0
  316. package/esm5/lib/tabs/tabs.module.js +32 -0
  317. package/esm5/lib/task-content/field-component-resolver/field-component-resolver.component.js +25 -0
  318. package/esm5/lib/task-content/public-api.js +6 -0
  319. package/esm5/lib/task-content/task-content/task-content.component.js +41 -0
  320. package/esm5/lib/task-content/task-content.module.js +36 -0
  321. package/esm5/lib/toolbar/public-api.js +3 -0
  322. package/esm5/lib/toolbar/toolbar.component.js +31 -0
  323. package/esm5/lib/toolbar/toolbar.module.js +26 -0
  324. package/esm5/lib/user/profile/profile.component.js +27 -0
  325. package/esm5/lib/user/profile/profile.module.js +24 -0
  326. package/esm5/lib/user/public-api.js +7 -0
  327. package/esm5/lib/user/user-card/user-card.component.js +27 -0
  328. package/esm5/lib/user/user.module.js +26 -0
  329. package/esm5/lib/view/case-view/case-view.module.js +26 -0
  330. package/esm5/lib/view/case-view/components/case-list/case-list.component.js +36 -0
  331. package/esm5/lib/view/public-api.js +10 -0
  332. package/esm5/lib/view/tree-case-view/tree-case-view.module.js +42 -0
  333. package/esm5/lib/view/tree-case-view/tree-component/add-child-node/add-child-node.component.js +27 -0
  334. package/esm5/lib/view/tree-case-view/tree-component/remove-node/remove-node.component.js +27 -0
  335. package/esm5/lib/view/tree-case-view/tree-component/tree.component.js +28 -0
  336. package/esm5/lib/view/tree-case-view/tree-task-content/tree-task-content.component.js +60 -0
  337. package/esm5/lib/view/workflow-view/workflow-view.component.js +41 -0
  338. package/esm5/lib/view/workflow-view.module.js +40 -0
  339. package/esm5/netgrif-components.js +43 -0
  340. package/esm5/public-api.js +22 -0
  341. package/fesm2015/netgrif-components.js +4034 -0
  342. package/fesm2015/netgrif-components.js.map +1 -0
  343. package/fesm5/netgrif-components.js +4419 -0
  344. package/fesm5/netgrif-components.js.map +1 -0
  345. package/lib/admin/admin.module.d.ts +2 -0
  346. package/lib/admin/public-api.d.ts +2 -0
  347. package/lib/admin/role-assignment/role-assignment.component.d.ts +6 -0
  348. package/lib/admin/user-invite/user-invite.component.d.ts +10 -0
  349. package/lib/authentication/auth.module.d.ts +2 -0
  350. package/lib/authentication/authentication-overlay/authentication-overlay.component.d.ts +10 -0
  351. package/lib/authentication/public-api.d.ts +2 -0
  352. package/lib/dashboard/cards/barchart-card/barchart-card.component.d.ts +14 -0
  353. package/lib/dashboard/cards/count-card/count-card.component.d.ts +6 -0
  354. package/lib/dashboard/cards/iframe-card/iframe-card.component.d.ts +6 -0
  355. package/lib/dashboard/cards/lineargauge-card/linear-gauge-card.component.d.ts +15 -0
  356. package/lib/dashboard/cards/linechart-card/line-chart-card.component.d.ts +16 -0
  357. package/lib/dashboard/cards/piechart-card/pie-chart-card.component.d.ts +17 -0
  358. package/lib/dashboard/cards/portal-card/portal-card.component.d.ts +18 -0
  359. package/lib/dashboard/dashboard-content/dashboard-content.component.d.ts +5 -0
  360. package/lib/dashboard/dashboard.module.d.ts +2 -0
  361. package/lib/dashboard/public-api.d.ts +9 -0
  362. package/lib/data-fields/boolean-field/boolean-field.component.d.ts +7 -0
  363. package/lib/data-fields/button-field/button-field.component.d.ts +6 -0
  364. package/lib/data-fields/data-field-template/data-field-template.component.d.ts +6 -0
  365. package/lib/data-fields/data-fields.module.d.ts +2 -0
  366. package/lib/data-fields/date-field/date-field.component.d.ts +5 -0
  367. package/lib/data-fields/date-time-field/date-time-field.component.d.ts +5 -0
  368. package/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.d.ts +6 -0
  369. package/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.d.ts +6 -0
  370. package/lib/data-fields/enumeration-field/enumeration-field.component.d.ts +4 -0
  371. package/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.d.ts +4 -0
  372. package/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.d.ts +4 -0
  373. package/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.d.ts +4 -0
  374. package/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.d.ts +6 -0
  375. package/lib/data-fields/file-field/file-field.component.d.ts +10 -0
  376. package/lib/data-fields/file-field/preview-dialog/preview-dialog.component.d.ts +11 -0
  377. package/lib/data-fields/file-field-list/file-list-field.component.d.ts +5 -0
  378. package/lib/data-fields/filter-field/filter-field-content/filter-field-content.component.d.ts +8 -0
  379. package/lib/data-fields/filter-field/filter-field.component.d.ts +7 -0
  380. package/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.d.ts +4 -0
  381. package/lib/data-fields/i18n-field/i18n-field.component.d.ts +4 -0
  382. package/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.d.ts +5 -0
  383. package/lib/data-fields/multichoice-field/multichoice-field.component.d.ts +4 -0
  384. package/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.d.ts +4 -0
  385. package/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.d.ts +3 -0
  386. package/lib/data-fields/number-field/number-currency-field/number-currency-field.component.d.ts +10 -0
  387. package/lib/data-fields/number-field/number-default-field/number-default-field.component.d.ts +5 -0
  388. package/lib/data-fields/number-field/number-field.component.d.ts +6 -0
  389. package/lib/data-fields/public-api.d.ts +15 -0
  390. package/lib/data-fields/required-label/required-label.component.d.ts +6 -0
  391. package/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.d.ts +9 -0
  392. package/lib/data-fields/text-field/password-text-field/password-text-field.component.d.ts +9 -0
  393. package/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.d.ts +6 -0
  394. package/lib/data-fields/text-field/simple-text-field/simple-text-field.component.d.ts +6 -0
  395. package/lib/data-fields/text-field/text-field.component.d.ts +4 -0
  396. package/lib/data-fields/text-field/textarea-field/textarea-field.component.d.ts +8 -0
  397. package/lib/data-fields/user-field/user-field.component.d.ts +6 -0
  398. package/lib/forms/email-submission/email-submission-form.component.d.ts +5 -0
  399. package/lib/forms/email-submission/email-submission-form.module.d.ts +2 -0
  400. package/lib/forms/forgotten-password/forgotten-password-form-component.module.d.ts +2 -0
  401. package/lib/forms/forgotten-password/forgotten-password-form.component.d.ts +6 -0
  402. package/lib/forms/login/login-form.component.d.ts +6 -0
  403. package/lib/forms/login/login-form.module.d.ts +2 -0
  404. package/lib/forms/public-api.d.ts +8 -0
  405. package/lib/forms/registration/registration-form.component.d.ts +6 -0
  406. package/lib/forms/registration/registration-form.module.d.ts +2 -0
  407. package/lib/header/header-modes/edit-mode/edit-mode.component.d.ts +7 -0
  408. package/lib/header/header-modes/loading-mode/loading-mode.component.d.ts +4 -0
  409. package/lib/header/header-modes/search-mode/search-mode.component.d.ts +6 -0
  410. package/lib/header/header-modes/sort-mode/sort-mode.component.d.ts +4 -0
  411. package/lib/header/header.component.d.ts +9 -0
  412. package/lib/header/header.module.d.ts +2 -0
  413. package/lib/header/public-api.d.ts +6 -0
  414. package/lib/legal/legal-notice/legal-notice.component.d.ts +4 -0
  415. package/lib/legal/legal-notice/legal-notice.module.d.ts +2 -0
  416. package/lib/legal/public-api.d.ts +2 -0
  417. package/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.d.ts +8 -0
  418. package/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.d.ts +6 -0
  419. package/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.d.ts +10 -0
  420. package/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.d.ts +11 -0
  421. package/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.d.ts +25 -0
  422. package/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-case-view-data-with-navigation-item-task-data.d.ts +9 -0
  423. package/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.d.ts +6 -0
  424. package/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.component.d.ts +6 -0
  425. package/lib/navigation/navigation-drawer/navigation-drawer.component.d.ts +9 -0
  426. package/lib/navigation/navigation-rail/navigation-rail.component.d.ts +4 -0
  427. package/lib/navigation/navigation-tree/navigation-tree.component.d.ts +5 -0
  428. package/lib/navigation/navigation.module.d.ts +3 -0
  429. package/lib/navigation/public-api.d.ts +5 -0
  430. package/lib/navigation/quick-panel/components/internal-link/internal-link.component.d.ts +4 -0
  431. package/lib/navigation/quick-panel/components/language-selector/language-selector.component.d.ts +9 -0
  432. package/lib/navigation/quick-panel/components/logout-shortcut/logout-shortcut.component.d.ts +9 -0
  433. package/lib/navigation/quick-panel/components/quick-panel.component.d.ts +6 -0
  434. package/lib/navigation/quick-panel/public-api.d.ts +5 -0
  435. package/lib/navigation/quick-panel/quick-panel.module.d.ts +2 -0
  436. package/lib/panel/case-panel/case-panel.component.d.ts +17 -0
  437. package/lib/panel/immediate/immediate-filter-text/immediate-filter-text.component.d.ts +7 -0
  438. package/lib/panel/immediate/immediate-filter-text-content/immediate-filter-text-content.component.d.ts +8 -0
  439. package/lib/panel/panel.component.d.ts +5 -0
  440. package/lib/panel/panel.module.d.ts +2 -0
  441. package/lib/panel/public-api.d.ts +7 -0
  442. package/lib/panel/public-workflow-panel/public-workflow-panel.component.d.ts +5 -0
  443. package/lib/panel/task-panel/task-panel.component.d.ts +28 -0
  444. package/lib/panel/task-panel-list/task-list.component.d.ts +8 -0
  445. package/lib/panel/workflow-panel/workflow-panel.component.d.ts +5 -0
  446. package/lib/routing/public-api.d.ts +2 -0
  447. package/lib/routing/redirect/redirect.component.d.ts +9 -0
  448. package/lib/routing/redirect.module.d.ts +2 -0
  449. package/lib/search/advanced-search/advanced-search-component/advanced-search.component.d.ts +4 -0
  450. package/lib/search/advanced-search/advanced-search.module.d.ts +2 -0
  451. package/lib/search/advanced-search/public-api.d.ts +5 -0
  452. package/lib/search/advanced-search/search-clause-component/search-clause.component.d.ts +4 -0
  453. package/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.d.ts +6 -0
  454. package/lib/search/advanced-search/search-operand-input-component/search-operand-input.component.d.ts +7 -0
  455. package/lib/search/advanced-search/search-predicate-component/search-predicate.component.d.ts +5 -0
  456. package/lib/search/fulltext-search-component/fulltext-search.component.d.ts +4 -0
  457. package/lib/search/public-api.d.ts +6 -0
  458. package/lib/search/search-component/case-search/case-search.component.d.ts +8 -0
  459. package/lib/search/search-component/search.component.d.ts +25 -0
  460. package/lib/search/search-component/task-search/task-search.component.d.ts +8 -0
  461. package/lib/search/search.module.d.ts +2 -0
  462. package/lib/side-menu/content-components/filter-selector/filter-selector-list-item/filter-selector-list-item.component.d.ts +7 -0
  463. package/lib/side-menu/content-components/filter-selector/filter-selector.component.d.ts +26 -0
  464. package/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.d.ts +2 -0
  465. package/lib/side-menu/content-components/import-net/import-net.component.d.ts +10 -0
  466. package/lib/side-menu/content-components/import-net/side-menu-import-net-component.module.d.ts +2 -0
  467. package/lib/side-menu/content-components/load-filter/load-filter.component.d.ts +10 -0
  468. package/lib/side-menu/content-components/load-filter/side-menu-load-filter-component.module.d.ts +2 -0
  469. package/lib/side-menu/content-components/new-case/new-case.component.d.ts +14 -0
  470. package/lib/side-menu/content-components/new-case/side-menu-new-case-component.module.d.ts +2 -0
  471. package/lib/side-menu/content-components/option-selector/option-selector.component.d.ts +5 -0
  472. package/lib/side-menu/content-components/option-selector/side-menu-option-selector-component.module.d.ts +2 -0
  473. package/lib/side-menu/content-components/public-api.d.ts +15 -0
  474. package/lib/side-menu/content-components/save-filter/save-filter.component.d.ts +6 -0
  475. package/lib/side-menu/content-components/save-filter/side-menu-save-filter-component.module.d.ts +2 -0
  476. package/lib/side-menu/content-components/side-menu-content-component.module.d.ts +2 -0
  477. package/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.d.ts +2 -0
  478. package/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/user-assign-item.component.d.ts +7 -0
  479. package/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-list.component.d.ts +8 -0
  480. package/lib/side-menu/content-components/user-assign/user-assign.component.d.ts +11 -0
  481. package/lib/side-menu/public-api.d.ts +3 -0
  482. package/lib/side-menu/side-menu-container/side-menu-container.component.d.ts +5 -0
  483. package/lib/side-menu/side-menu.module.d.ts +2 -0
  484. package/lib/tabs/public-api.d.ts +3 -0
  485. package/lib/tabs/tab-creation-detector/tab-creation-detector.component.d.ts +10 -0
  486. package/lib/tabs/tab-view/tab-view.component.d.ts +12 -0
  487. package/lib/tabs/tabs.module.d.ts +2 -0
  488. package/lib/task-content/field-component-resolver/field-component-resolver.component.d.ts +4 -0
  489. package/lib/task-content/public-api.d.ts +3 -0
  490. package/lib/task-content/task-content/task-content.component.d.ts +9 -0
  491. package/lib/task-content/task-content.module.d.ts +2 -0
  492. package/lib/toolbar/public-api.d.ts +2 -0
  493. package/lib/toolbar/toolbar.component.d.ts +7 -0
  494. package/lib/toolbar/toolbar.module.d.ts +2 -0
  495. package/lib/user/profile/profile.component.d.ts +5 -0
  496. package/lib/user/profile/profile.module.d.ts +2 -0
  497. package/lib/user/public-api.d.ts +4 -0
  498. package/lib/user/user-card/user-card.component.d.ts +6 -0
  499. package/lib/user/user.module.d.ts +2 -0
  500. package/lib/view/case-view/case-view.module.d.ts +2 -0
  501. package/lib/view/case-view/components/case-list/case-list.component.d.ts +8 -0
  502. package/lib/view/public-api.d.ts +7 -0
  503. package/lib/view/tree-case-view/tree-case-view.module.d.ts +2 -0
  504. package/lib/view/tree-case-view/tree-component/add-child-node/add-child-node.component.d.ts +5 -0
  505. package/lib/view/tree-case-view/tree-component/remove-node/remove-node.component.d.ts +5 -0
  506. package/lib/view/tree-case-view/tree-component/tree.component.d.ts +5 -0
  507. package/lib/view/tree-case-view/tree-task-content/tree-task-content.component.d.ts +11 -0
  508. package/lib/view/workflow-view/workflow-view.component.d.ts +9 -0
  509. package/lib/view/workflow-view.module.d.ts +2 -0
  510. package/nae-theme.scss +39 -0
  511. package/nae-typography.scss +35 -0
  512. package/netgrif-components.d.ts +43 -0
  513. package/netgrif-components.metadata.json +1 -0
  514. package/package.json +75 -0
  515. package/public-api.d.ts +17 -0
  516. package/schematics/_commons/angular-cli-devkit-core-strings.d.ts +93 -0
  517. package/schematics/_commons/angular-cli-devkit-core-strings.js +167 -0
  518. package/schematics/_commons/angular-cli-devkit-core-strings.js.map +1 -0
  519. package/schematics/_commons/import-to-add.d.ts +5 -0
  520. package/schematics/_commons/import-to-add.js +11 -0
  521. package/schematics/_commons/import-to-add.js.map +1 -0
  522. package/schematics/_commons/view-class-info.d.ts +22 -0
  523. package/schematics/_commons/view-class-info.js +58 -0
  524. package/schematics/_commons/view-class-info.js.map +1 -0
  525. package/schematics/_utility/models/file-data.d.ts +6 -0
  526. package/schematics/_utility/models/file-data.js +3 -0
  527. package/schematics/_utility/models/file-data.js.map +1 -0
  528. package/schematics/_utility/models/file-system-node.d.ts +6 -0
  529. package/schematics/_utility/models/file-system-node.js +12 -0
  530. package/schematics/_utility/models/file-system-node.js.map +1 -0
  531. package/schematics/_utility/models/project-info.d.ts +13 -0
  532. package/schematics/_utility/models/project-info.js +20 -0
  533. package/schematics/_utility/models/project-info.js.map +1 -0
  534. package/schematics/_utility/modified-library-functions.d.ts +24 -0
  535. package/schematics/_utility/modified-library-functions.js +150 -0
  536. package/schematics/_utility/modified-library-functions.js.map +1 -0
  537. package/schematics/_utility/utility-functions.d.ts +67 -0
  538. package/schematics/_utility/utility-functions.js +247 -0
  539. package/schematics/_utility/utility-functions.js.map +1 -0
  540. package/schematics/add/add/index.d.ts +2 -0
  541. package/schematics/add/add/index.js +16 -0
  542. package/schematics/add/add/index.js.map +1 -0
  543. package/schematics/add/create-nc-files/index.d.ts +2 -0
  544. package/schematics/add/create-nc-files/index.js +54 -0
  545. package/schematics/add/create-nc-files/index.js.map +1 -0
  546. package/schematics/add/create-nc-files/schema.json +7 -0
  547. package/schematics/add/custom-themes/files/custom-themes/custom-themes.scss.template +45 -0
  548. package/schematics/add/custom-themes/files/dark-theme/custom-dark-theme.scss.template +17 -0
  549. package/schematics/add/custom-themes/files/light-theme/custom-light-theme.scss.template +17 -0
  550. package/schematics/add/custom-themes/index.d.ts +2 -0
  551. package/schematics/add/custom-themes/index.js +199 -0
  552. package/schematics/add/custom-themes/index.js.map +1 -0
  553. package/schematics/add/custom-themes/schema.json +7 -0
  554. package/schematics/collection.json +47 -0
  555. package/schematics/migrations/4.1/migration-4.1.d.ts +5 -0
  556. package/schematics/migrations/4.1/migration-4.1.js +37 -0
  557. package/schematics/migrations/4.1/migration-4.1.js.map +1 -0
  558. package/schematics/migrations/5.4/migration-5.4.d.ts +5 -0
  559. package/schematics/migrations/5.4/migration-5.4.js +134 -0
  560. package/schematics/migrations/5.4/migration-5.4.js.map +1 -0
  561. package/schematics/migrations/5.4/schema.json +7 -0
  562. package/schematics/migrations.json +15 -0
  563. package/schematics/view/_utility/add-view-to-nae-json.d.ts +3 -0
  564. package/schematics/view/_utility/add-view-to-nae-json.js +57 -0
  565. package/schematics/view/_utility/add-view-to-nae-json.js.map +1 -0
  566. package/schematics/view/_utility/view-service-functions.d.ts +9 -0
  567. package/schematics/view/_utility/view-service-functions.js +59 -0
  568. package/schematics/view/_utility/view-service-functions.js.map +1 -0
  569. package/schematics/view/_utility/view-utility-functions.d.ts +8 -0
  570. package/schematics/view/_utility/view-utility-functions.js +61 -0
  571. package/schematics/view/_utility/view-utility-functions.js.map +1 -0
  572. package/schematics/view/create-view/models/nullable-create-view-arguments.d.ts +11 -0
  573. package/schematics/view/create-view/models/nullable-create-view-arguments.js +3 -0
  574. package/schematics/view/create-view/models/nullable-create-view-arguments.js.map +1 -0
  575. package/schematics/view/create-view/schema.json +7 -0
  576. package/schematics/view/create-view/schematic-create-view.d.ts +2 -0
  577. package/schematics/view/create-view/schematic-create-view.js +80 -0
  578. package/schematics/view/create-view/schematic-create-view.js.map +1 -0
  579. package/schematics/view/create-view-prompt/models/create-task-view-arguments.d.ts +4 -0
  580. package/schematics/view/create-view-prompt/models/create-task-view-arguments.js +3 -0
  581. package/schematics/view/create-view-prompt/models/create-task-view-arguments.js.map +1 -0
  582. package/schematics/view/create-view-prompt/models/create-view-arguments.d.ts +14 -0
  583. package/schematics/view/create-view-prompt/models/create-view-arguments.js +3 -0
  584. package/schematics/view/create-view-prompt/models/create-view-arguments.js.map +1 -0
  585. package/schematics/view/create-view-prompt/models/params-interfaces.d.ts +28 -0
  586. package/schematics/view/create-view-prompt/models/params-interfaces.js +3 -0
  587. package/schematics/view/create-view-prompt/models/params-interfaces.js.map +1 -0
  588. package/schematics/view/create-view-prompt/models/sidenav-prompt-options.d.ts +8 -0
  589. package/schematics/view/create-view-prompt/models/sidenav-prompt-options.js +3 -0
  590. package/schematics/view/create-view-prompt/models/sidenav-prompt-options.js.map +1 -0
  591. package/schematics/view/create-view-prompt/models/tab-content-template.d.ts +9 -0
  592. package/schematics/view/create-view-prompt/models/tab-content-template.js +11 -0
  593. package/schematics/view/create-view-prompt/models/tab-content-template.js.map +1 -0
  594. package/schematics/view/create-view-prompt/models/tabbed-view.d.ts +3 -0
  595. package/schematics/view/create-view-prompt/models/tabbed-view.js +3 -0
  596. package/schematics/view/create-view-prompt/models/tabbed-view.js.map +1 -0
  597. package/schematics/view/create-view-prompt/schema-create-sidenav-prompt.json +25 -0
  598. package/schematics/view/create-view-prompt/schema-create-view-prompt.json +68 -0
  599. package/schematics/view/create-view-prompt/schematic-create-sidenav-prompt.d.ts +5 -0
  600. package/schematics/view/create-view-prompt/schematic-create-sidenav-prompt.js +49 -0
  601. package/schematics/view/create-view-prompt/schematic-create-sidenav-prompt.js.map +1 -0
  602. package/schematics/view/create-view-prompt/schematic-create-view-prompt.d.ts +3 -0
  603. package/schematics/view/create-view-prompt/schematic-create-view-prompt.js +88 -0
  604. package/schematics/view/create-view-prompt/schematic-create-view-prompt.js.map +1 -0
  605. package/schematics/view/create-view-prompt/views/case-view/create-case-view.d.ts +4 -0
  606. package/schematics/view/create-view-prompt/views/case-view/create-case-view.js +57 -0
  607. package/schematics/view/create-view-prompt/views/case-view/create-case-view.js.map +1 -0
  608. package/schematics/view/create-view-prompt/views/case-view/files/common/__className@dasherize__.component.html.template +20 -0
  609. package/schematics/view/create-view-prompt/views/case-view/files/common/__className@dasherize__.component.spec.ts.template +52 -0
  610. package/schematics/view/create-view-prompt/views/case-view/files/simple/__className@dasherize__.component.scss.template +28 -0
  611. package/schematics/view/create-view-prompt/views/case-view/files/simple/__className@dasherize__.component.ts.template +67 -0
  612. package/schematics/view/create-view-prompt/views/case-view/files/tabbed/__className@dasherize__.component.scss.template +21 -0
  613. package/schematics/view/create-view-prompt/views/case-view/files/tabbed/__className@dasherize__.component.ts.template +64 -0
  614. package/schematics/view/create-view-prompt/views/dashboard-view/create-dashboard-view.d.ts +3 -0
  615. package/schematics/view/create-view-prompt/views/dashboard-view/create-dashboard-view.js +34 -0
  616. package/schematics/view/create-view-prompt/views/dashboard-view/create-dashboard-view.js.map +1 -0
  617. package/schematics/view/create-view-prompt/views/dashboard-view/files/__className@dasherize__.component.html.template +1 -0
  618. package/schematics/view/create-view-prompt/views/dashboard-view/files/__className@dasherize__.component.scss.template +0 -0
  619. package/schematics/view/create-view-prompt/views/dashboard-view/files/__className@dasherize__.component.spec.ts.template +31 -0
  620. package/schematics/view/create-view-prompt/views/dashboard-view/files/__className@dasherize__.component.ts.template +23 -0
  621. package/schematics/view/create-view-prompt/views/empty-view/create-empty-view.d.ts +3 -0
  622. package/schematics/view/create-view-prompt/views/empty-view/create-empty-view.js +28 -0
  623. package/schematics/view/create-view-prompt/views/empty-view/create-empty-view.js.map +1 -0
  624. package/schematics/view/create-view-prompt/views/empty-view/files/__className@dasherize__.component.html.template +1 -0
  625. package/schematics/view/create-view-prompt/views/empty-view/files/__className@dasherize__.component.scss.template +0 -0
  626. package/schematics/view/create-view-prompt/views/empty-view/files/__className@dasherize__.component.spec.ts.template +25 -0
  627. package/schematics/view/create-view-prompt/views/empty-view/files/__className@dasherize__.component.ts.template +18 -0
  628. package/schematics/view/create-view-prompt/views/group-view/create-group-view.d.ts +4 -0
  629. package/schematics/view/create-view-prompt/views/group-view/create-group-view.js +37 -0
  630. package/schematics/view/create-view-prompt/views/group-view/create-group-view.js.map +1 -0
  631. package/schematics/view/create-view-prompt/views/group-view/files/__className@dasherize__.component.html.template +7 -0
  632. package/schematics/view/create-view-prompt/views/group-view/files/__className@dasherize__.component.scss.template +22 -0
  633. package/schematics/view/create-view-prompt/views/group-view/files/__className@dasherize__.component.spec.ts.template +49 -0
  634. package/schematics/view/create-view-prompt/views/group-view/files/__className@dasherize__.component.ts.template +69 -0
  635. package/schematics/view/create-view-prompt/views/login/create-login-view.d.ts +3 -0
  636. package/schematics/view/create-view-prompt/views/login/create-login-view.js +36 -0
  637. package/schematics/view/create-view-prompt/views/login/create-login-view.js.map +1 -0
  638. package/schematics/view/create-view-prompt/views/login/files/__className@dasherize__.component.html.template +5 -0
  639. package/schematics/view/create-view-prompt/views/login/files/__className@dasherize__.component.scss.template +6 -0
  640. package/schematics/view/create-view-prompt/views/login/files/__className@dasherize__.component.spec.ts.template +38 -0
  641. package/schematics/view/create-view-prompt/views/login/files/__className@dasherize__.component.ts.template +18 -0
  642. package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/create-sidenav-or-toolbar-view.d.ts +3 -0
  643. package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/create-sidenav-or-toolbar-view.js +82 -0
  644. package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/create-sidenav-or-toolbar-view.js.map +1 -0
  645. package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/files/__className@dasherize__.component.html.template +8 -0
  646. package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/files/__className@dasherize__.component.scss.template +0 -0
  647. package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/files/__className@dasherize__.component.spec.ts.template +51 -0
  648. package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/files/__className@dasherize__.component.ts.template +19 -0
  649. package/schematics/view/create-view-prompt/views/tab-view/create-tab-view.d.ts +3 -0
  650. package/schematics/view/create-view-prompt/views/tab-view/create-tab-view.js +161 -0
  651. package/schematics/view/create-view-prompt/views/tab-view/create-tab-view.js.map +1 -0
  652. package/schematics/view/create-view-prompt/views/tab-view/files/__className@dasherize__.component.html.template +3 -0
  653. package/schematics/view/create-view-prompt/views/tab-view/files/__className@dasherize__.component.scss.template +3 -0
  654. package/schematics/view/create-view-prompt/views/tab-view/files/__className@dasherize__.component.spec.ts.template +27 -0
  655. package/schematics/view/create-view-prompt/views/tab-view/files/__className@dasherize__.component.ts.template +34 -0
  656. package/schematics/view/create-view-prompt/views/task-view/create-task-view.d.ts +4 -0
  657. package/schematics/view/create-view-prompt/views/task-view/create-task-view.js +47 -0
  658. package/schematics/view/create-view-prompt/views/task-view/create-task-view.js.map +1 -0
  659. package/schematics/view/create-view-prompt/views/task-view/files/common/__className@dasherize__.component.html.template +7 -0
  660. package/schematics/view/create-view-prompt/views/task-view/files/common/__className@dasherize__.component.scss.template +22 -0
  661. package/schematics/view/create-view-prompt/views/task-view/files/common/__className@dasherize__.component.spec.ts.template +49 -0
  662. package/schematics/view/create-view-prompt/views/task-view/files/simple/__className@dasherize__.component.ts.template +62 -0
  663. package/schematics/view/create-view-prompt/views/task-view/files/tabbed/__className@dasherize__.component.ts.template +64 -0
  664. package/schematics/view/create-view-prompt/views/tree-case-view/create-tree-case-view.d.ts +3 -0
  665. package/schematics/view/create-view-prompt/views/tree-case-view/create-tree-case-view.js +39 -0
  666. package/schematics/view/create-view-prompt/views/tree-case-view/create-tree-case-view.js.map +1 -0
  667. package/schematics/view/create-view-prompt/views/tree-case-view/files/__className@dasherize__.component.html.template +15 -0
  668. package/schematics/view/create-view-prompt/views/tree-case-view/files/__className@dasherize__.component.scss.template +17 -0
  669. package/schematics/view/create-view-prompt/views/tree-case-view/files/__className@dasherize__.component.spec.ts.template +33 -0
  670. package/schematics/view/create-view-prompt/views/tree-case-view/files/__className@dasherize__.component.ts.template +23 -0
  671. package/src/assets/default-user-avatar.png +0 -0
  672. package/src/assets/default-user-background.jpg +0 -0
  673. package/src/assets/flags/de.png +0 -0
  674. package/src/assets/flags/gb.png +0 -0
  675. package/src/assets/flags/sk.png +0 -0
  676. package/src/assets/fonts/MaterialIcons-Regular.eot +0 -0
  677. package/src/assets/fonts/MaterialIcons-Regular.otf +0 -0
  678. package/src/assets/fonts/MaterialIcons-Regular.ttf +0 -0
  679. package/src/assets/fonts/MaterialIcons-Regular.woff +0 -0
  680. package/src/assets/fonts/MaterialIcons-Regular.woff2 +0 -0
  681. package/src/assets/fonts/roboto-v20-latin-ext_latin-300.eot +0 -0
  682. package/src/assets/fonts/roboto-v20-latin-ext_latin-300.svg +312 -0
  683. package/src/assets/fonts/roboto-v20-latin-ext_latin-300.ttf +0 -0
  684. package/src/assets/fonts/roboto-v20-latin-ext_latin-300.woff +0 -0
  685. package/src/assets/fonts/roboto-v20-latin-ext_latin-300.woff2 +0 -0
  686. package/src/assets/fonts/roboto-v20-latin-ext_latin-300italic.eot +0 -0
  687. package/src/assets/fonts/roboto-v20-latin-ext_latin-300italic.svg +329 -0
  688. package/src/assets/fonts/roboto-v20-latin-ext_latin-300italic.ttf +0 -0
  689. package/src/assets/fonts/roboto-v20-latin-ext_latin-300italic.woff +0 -0
  690. package/src/assets/fonts/roboto-v20-latin-ext_latin-300italic.woff2 +0 -0
  691. package/src/assets/fonts/roboto-v20-latin-ext_latin-500.eot +0 -0
  692. package/src/assets/fonts/roboto-v20-latin-ext_latin-500.svg +305 -0
  693. package/src/assets/fonts/roboto-v20-latin-ext_latin-500.ttf +0 -0
  694. package/src/assets/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  695. package/src/assets/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  696. package/src/assets/fonts/roboto-v20-latin-ext_latin-500italic.eot +0 -0
  697. package/src/assets/fonts/roboto-v20-latin-ext_latin-500italic.svg +326 -0
  698. package/src/assets/fonts/roboto-v20-latin-ext_latin-500italic.ttf +0 -0
  699. package/src/assets/fonts/roboto-v20-latin-ext_latin-500italic.woff +0 -0
  700. package/src/assets/fonts/roboto-v20-latin-ext_latin-500italic.woff2 +0 -0
  701. package/src/assets/fonts/roboto-v20-latin-ext_latin-italic.eot +0 -0
  702. package/src/assets/fonts/roboto-v20-latin-ext_latin-italic.svg +323 -0
  703. package/src/assets/fonts/roboto-v20-latin-ext_latin-italic.ttf +0 -0
  704. package/src/assets/fonts/roboto-v20-latin-ext_latin-italic.woff +0 -0
  705. package/src/assets/fonts/roboto-v20-latin-ext_latin-italic.woff2 +0 -0
  706. package/src/assets/fonts/roboto-v20-latin-ext_latin-regular.eot +0 -0
  707. package/src/assets/fonts/roboto-v20-latin-ext_latin-regular.svg +308 -0
  708. package/src/assets/fonts/roboto-v20-latin-ext_latin-regular.ttf +0 -0
  709. package/src/assets/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  710. package/src/assets/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  711. package/src/lib/admin/role-assignment/role-assignment.component.theme.scss +10 -0
  712. package/src/lib/data-fields/data-field.theme.scss +73 -0
  713. package/src/lib/dialog/dialog.theme.scss +13 -0
  714. package/src/lib/header/header.theme.scss +8 -0
  715. package/src/lib/navigation/navigation.theme.scss +9 -0
  716. package/src/lib/panel/panel.theme.scss +31 -0
  717. package/src/lib/search/advanced-search/search-clause-component/search-clause.component.theme.scss +9 -0
  718. package/src/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.theme.scss +9 -0
  719. package/src/lib/search/advanced-search/search-predicate-component/search-predicate.component.theme.scss +9 -0
  720. package/src/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/theme/user-assign-item.component.theme.scss +15 -0
  721. package/src/lib/side-menu/side-menu.theme.scss +24 -0
  722. package/src/lib/snack-bar/snack-bar.theme.scss +17 -0
  723. package/src/lib/tabs/tabs.theme.scss +16 -0
  724. package/src/lib/user/user.theme.scss +11 -0
  725. package/src/lib/view/view.theme.scss +16 -0
@@ -0,0 +1,16 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@netgrif/components-core"),require("@angular/common"),require("@ngx-translate/core"),require("@angular/router"),require("@angular/platform-browser"),require("@swimlane/ngx-charts"),require("@angular/flex-layout"),require("angular-resize-event"),require("@angular/common/http"),require("@angular/forms"),require("@angular-material-components/datetime-picker"),require("@angular-material-components/moment-adapter"),require("@angular/material/core"),require("@angular/material/dialog"),require("ngx-quill"),require("@angular/material/progress-spinner"),require("hammerjs"),require("@angular/cdk/layout"),require("@angular/animations"),require("angular-resizable-element"),require("@angular/cdk/portal"),require("@angular/material/tabs"),require("@angular/cdk/stepper"),require("angular2-hotkeys"),require("@angular/material/sidenav")):"function"==typeof define&&define.amd?define("@netgrif/components",["exports","@angular/core","@netgrif/components-core","@angular/common","@ngx-translate/core","@angular/router","@angular/platform-browser","@swimlane/ngx-charts","@angular/flex-layout","angular-resize-event","@angular/common/http","@angular/forms","@angular-material-components/datetime-picker","@angular-material-components/moment-adapter","@angular/material/core","@angular/material/dialog","ngx-quill","@angular/material/progress-spinner","hammerjs","@angular/cdk/layout","@angular/animations","angular-resizable-element","@angular/cdk/portal","@angular/material/tabs","@angular/cdk/stepper","angular2-hotkeys","@angular/material/sidenav"],t):t(((e=e||self).netgrif=e.netgrif||{},e.netgrif.components={}),e.ng.core,e["@netgrif/components-core"],e.ng.common,e.core$1,e.ng.router,e.ng.platformBrowser,e.ngxCharts,e.ng.flexLayout,e.angularResizeEvent,e.ng.common.http,e.ng.forms,e.datetimePicker,e.momentAdapter,e.ng.material.core,e.ng.material.dialog,e.ngxQuill,e.ng.material.progressSpinner,null,e.ng.cdk.layout,e.ng.animations,e.angularResizableElement,e.ng.cdk.portal,e.ng.material.tabs,e.ng.cdk.stepper,e.angular2Hotkeys,e.ng.material.sidenav)}(this,(function(e,t,n,a,r,o,i,l,s,c,d,p,m,u,g,f,h,v,y,x,b,w,C,S,A,F,L){"use strict";
2
+ /*! *****************************************************************************
3
+ Copyright (c) Microsoft Corporation.
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
+ PERFORMANCE OF THIS SOFTWARE.
15
+ ***************************************************************************** */var I=function(e,t){return(I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function T(e,t){function n(){this.constructor=e}I(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var k=function(){return(k=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};function E(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var a,r,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(a=o.next()).done;)i.push(a.value)}catch(e){r={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return i}function _(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(E(arguments[t]));return e}var M=function(e){function a(t,n){var a=e.call(this,t,n)||this;return a._service=t,a._userService=n,a}return T(a,e),a.ctorParameters=function(){return[{type:n.RoleAssignmentService},{type:n.UserService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-role-assignment",template:'<div fxLayout="row" fxLayoutAlign="start center" class="full-height full-width padding-default">\n\n <div fxLayout="column" fxLayoutAlign="start center" fxFlex="44" class="full-height">\n <ng-container *ngIf="users.users$ | async as users_">\n\n <mat-toolbar color="primary" class="height-96">\n <span matTooltip="{{users_.length}}/{{users.totalUsers}}">\n {{\'admin.user-list.listTitle\' | translate}}\n </span>\n <div fxFlex="5"></div>\n\n <div fxLayout="row" fxLayoutAlign="start center">\n <mat-icon fxFlex class="search-icon">search</mat-icon>\n <mat-form-field fxFlex="100" class="user-assign-search" color="primary">\n <input matInput placeholder="{{ \'side-menu.user.choose\' | translate }}"\n [formControl]="searchUserControl">\n <button mat-button *ngIf="searchUserControl.value" matSuffix mat-icon-button\n (click)="searchUserControl.setValue(\'\')">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <span style="flex: 1 1 auto;"></span>\n <button disabled mat-icon-button\n matTooltip="{{userMultiSelect ? \'Multi selection\' : \'Single selection\'}}"\n (click)="userMultiSelect = !userMultiSelect">\n <mat-icon>{{userMultiSelect ? \'group\' : \'person\'}}</mat-icon>\n </button>\n <button mat-icon-button matTooltip="Select All" (click)="selectAllUsers(true)">\n <mat-icon>done_all</mat-icon>\n </button>\n <button mat-icon-button matTooltip="Deselect All" (click)="selectAllUsers(false)">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-toolbar>\n\n <div *ngIf="(users.loading$ | async) === false && users_.length === 0" fxLayout="column"\n fxLayoutAlign="center center" fxFlex class="margin-top-x2">\n <mat-icon color="accent" class="margin-bottom-default no-user-icon">perm_identity</mat-icon>\n <span class="font-size-20">{{ \'admin.user-list.noUsersWereFound\' | translate}}</span>\n </div>\n\n <mat-selection-list #userList color="accent" fxFlex="100" class="full-width">\n\n <cdk-virtual-scroll-viewport itemSize="72" (scrolledIndexChange)="loadNextUserPage()"\n class="full-width full-height">\n <mat-list-option *cdkVirtualFor="let user of users_; let i = index;" checkboxPosition="before"\n [selected]="user.selected"\n [value]="user"\n [ngClass]="{\'list-item-selected\':user.selected}"\n (click)="user.toggle();autoSelectRoles()">\n <h3 matLine>{{user.fullName}}</h3>\n <p matLine>ID: {{user.id}}, Email: {{user.email}}</p>\n </mat-list-option>\n\n <div *ngIf="users.loading$ | async" fxLayout="column" fxLayoutAlign="center center">\n <mat-spinner color="primary" diameter="50"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n </mat-selection-list>\n </ng-container>\n </div>\n\n <div fxFlex="6"></div>\n\n <div fxLayout="column" fxLayoutAlign="start center" fxFlex="50" class="full-height">\n\n <mat-toolbar color="primary" class="height-96">\n <span>{{\'admin.process-list.listTitle\' | translate}}</span>\n <span style="flex: 1 1 auto;"></span>\n <mat-spinner *ngIf="users.updating$ | async" color="accent" diameter="30"></mat-spinner>\n </mat-toolbar>\n\n <div *ngIf="(users.loading$ | async) === false && nets.processes.length === 0" fxLayout="column"\n fxLayoutAlign="center center" fxFlex class="margin-top-x2">\n <mat-icon color="accent" class="margin-bottom-default no-user-icon">timeline</mat-icon>\n <span class="font-size-20">{{ \'admin.process-list.noProcessesWereFound\' | translate}}</span>\n </div>\n\n <mat-accordion class="full-width margin-top-default process-list-accordion" multi fxFlex>\n\n <mat-expansion-panel *ngFor="let item of nets.processes" (afterExpand)="nets.loadProcessItemRoles(item)"\n (afterCollapse)="nets.prepareToTryAgainToLoadRoles(item)">\n\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon *ngIf="item.someRolesSelected" color="accent" class="margin-right-x2">tour</mat-icon>\n <span>{{item.initials}} - {{item.title}}</span>\n </mat-panel-title>\n <mat-panel-description class="process-item-description">\n <span\n class="process-item-description full-width">{{\'admin.process-list.newestVersion\' | translate}}\n : {{item.newestVersion}}</span>\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <div *ngIf="item.loading" fxFlex="100" class="full-width">\n <mat-progress-bar mode="indeterminate" color="primary"></mat-progress-bar>\n </div>\n\n <div *ngIf="!item.loading && item.emptyRoles" fxLayout="column"\n fxLayoutAlign="center center" fxFlex class="full-width full-height net-panel-content">\n <mat-icon color="accent" class="margin-bottom-default">account_circle</mat-icon>\n <span class="font-size-15">{{ \'admin.process-list.noRoles\' | translate}}</span>\n </div>\n\n <div *ngIf="!item.loading && !item.emptyRoles" fxLayout="column" fxLayoutAlign="start start"\n class="full-height full-width net-panel-content">\n <h3>{{ \'admin.process-list.roles\' | translate}}</h3>\n <div *ngFor="let net of item.processes; let first = first" fxLayout="column"\n fxLayoutAlign="start center" class="full-width">\n <mat-divider *ngIf="!first" style="position: relative"></mat-divider>\n\n <button mat-button matTooltip="{{item.someRolesSelected ? \'Deselect All\' : \'Select All\'}}"\n (click)="toggleAllRoles(net, !item.someRolesSelected)">\n {{net.version}}\n </button>\n\n <mat-selection-list color="accent" fxLayout="row wrap" fxLayoutAlign="start center"\n class="full-width">\n <mat-list-option *ngFor="let role of net.roles" checkboxPosition="before"\n [selected]="role.selected" (click)="role.toggle();update(role)"\n fxFlex="50">\n <h3 matLine>{{role.name}}</h3>\n </mat-list-option>\n </mat-selection-list>\n </div>\n </div>\n\n </mat-expansion-panel>\n\n </mat-accordion>\n\n <div *ngIf="nets.loading$ | async" fxLayout="column" fxLayoutAlign="center center" fxFlex="100">\n <mat-spinner color="primary" diameter="65"></mat-spinner>\n </div>\n </div>\n</div>\n',providers:[n.RoleAssignmentService],styles:[".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-default{margin-top:8px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-default{margin-bottom:8px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.user-list-item-margin{margin:4px 0}.net-panel-content{padding-left:24px;padding-right:24px;padding-bottom:24px}.font-size-20{font-size:20px}.font-size-15{font-size:15px}.no-user-icon{font-size:40px;width:40px;height:40px}.process-item-description{text-align:right}.process-list-accordion{overflow-y:auto;padding:0 2px 4px}.user-assign-search{width:100%}.search-icon{margin-right:10px}.height-96{min-height:96px}"]}]}],a.ctorParameters=function(){return[{type:n.RoleAssignmentService},{type:n.UserService}]},a}(n.AbstractRoleAssignment),N=function(e){function a(t,n,a,r,o){var i=e.call(this,t,n,a,r,o)||this;return i._userInviteService=t,i._orgList=n,i._signUpService=a,i._snackBar=r,i._translate=o,i}return T(a,e),a.ctorParameters=function(){return[{type:n.UserInviteService},{type:n.OrganizationListService},{type:n.SignUpService},{type:n.SnackBarService},{type:r.TranslateService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-user-invite",template:'<div fxLayout="row" fxLayoutAlign="start start" class="full-height full-width padding-default">\n\n <div fxLayout="column" fxLayoutAlign="start center" fxFlex="40" class="full-height margin-right-16px">\n\n <mat-toolbar color="primary" class="height-96 margin-bottom-16px">\n <span>{{\'admin.user-invite.newUser\' | translate}}</span>\n <div fxFlex></div>\n <div fxLayout="row" fxLayoutAlign="start center" fxFlex="40" class="padding-right-16px">\n <mat-icon fxFlex class="mail-icon">email</mat-icon>\n <mat-form-field fxFlex="100" class="user-assign-search" color="primary">\n <input matInput placeholder="{{ \'admin.user-invite.mail\' | translate }}"\n [formControl]="invitedEmailControl">\n <button mat-button *ngIf="invitedEmailControl.value" matSuffix mat-icon-button\n (click)="invitedEmailControl.setValue(\'\')">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </div>\n </mat-toolbar>\n\n\n <div fxLayout="column" class="invited-card margin-bottom-16px" fxLayoutAlign="start stretch">\n\n <span class="invited-card-font padding-16px">{{\'admin.user-invite.selectedOrgs\' | translate}}</span>\n\n <mat-divider class="inherited-divider"></mat-divider>\n\n <div class="padding-16px" fxLayout="column" *ngIf="invitedGroups.length !== 0">\n <div *ngFor="let org of invitedGroups" fxFlex fxLayout="row" fxLayoutAlign="start center">\n <span>{{org.name}}</span>\n\n <div fxFlex></div>\n\n <button mat-icon-button color="primary" (click)="removeGroup(org)">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </div>\n\n <span class="padding-16px"\n *ngIf="invitedGroups.length === 0">{{\'admin.user-invite.noSelectedOrgs\' | translate}}</span>\n </div>\n\n\n <div fxLayout="column" class="invited-card margin-bottom-16px" fxLayoutAlign="start stretch">\n\n <span class="invited-card-font padding-16px">{{\'admin.user-invite.selectedRoles\' | translate}}</span>\n\n <mat-divider class="inherited-divider"></mat-divider>\n\n <div class="padding-16px" fxLayout="column" *ngIf="invitedRoles.length !== 0">\n <div *ngFor="let role of invitedRoles" fxFlex fxLayout="row" fxLayoutAlign="start center">\n <span>{{role.name}}</span>\n\n <div fxFlex></div>\n\n <button mat-icon-button color="primary" (click)="removeRole(role)">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </div>\n\n <span class="padding-16px"\n *ngIf="invitedRoles.length === 0">{{\'admin.user-invite.noSelectedRoles\' | translate}}</span>\n </div>\n\n <div fxLayout="column" fxLayoutAlign="start stretch">\n <button mat-raised-button color="primary" (click)="invite()">\n <span>{{\'admin.user-invite.invite-user\' | translate}}</span>\n </button>\n </div>\n </div>\n\n <div fxLayout="column" fxLayoutAlign="start center" fxFlex="30" class="full-height margin-right-16px">\n\n <mat-toolbar color="primary" class="height-96 margin-bottom-16px">\n <span>{{\'admin.user-invite.orgs\' | translate}}</span>\n </mat-toolbar>\n\n <div *ngIf="groups.length === 0" fxLayout="column" fxLayoutAlign="center center" fxFlex>\n <mat-icon color="accent" class="margin-bottom-default no-user-icon">groups</mat-icon>\n <span class="font-size-20">{{\'admin.user-invite.noGroups\' | translate}}</span>\n </div>\n\n <div fxLayout="column" class="invited-card " *ngIf="groups.length !== 0">\n <div fxLayout="column">\n <div *ngFor="let group of groups" class="padding-16px-0" fxFlex fxLayout="row"\n fxLayoutAlign="start center">\n <span>{{group.name}}</span>\n\n <div fxFlex></div>\n\n <button mat-icon-button color="primary" (click)="addGroup(group)">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div fxLayout="column" fxLayoutAlign="start center" fxFlex="30" class="full-height">\n\n <mat-toolbar color="primary" class="height-96 margin-bottom-16px">\n <span>{{\'admin.process-list.listTitle\' | translate}}</span>\n </mat-toolbar>\n\n <div *ngIf="nets.processes.length === 0" fxLayout="column"\n fxLayoutAlign="center center" fxFlex class="margin-top-x2">\n <mat-icon color="accent" class="margin-bottom-default no-user-icon">timeline</mat-icon>\n <span class="font-size-20">{{ \'admin.process-list.noProcessesWereFound\' | translate}}</span>\n </div>\n\n <mat-accordion class="full-width margin-top-default process-list-accordion" multi fxFlex>\n\n <mat-expansion-panel *ngFor="let item of nets.processes" (afterExpand)="nets.loadProcessItemRoles(item)"\n (afterCollapse)="nets.prepareToTryAgainToLoadRoles(item)">\n\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon *ngIf="item.someRolesSelected" color="accent" class="margin-right-x2">tour</mat-icon>\n <span>{{item.initials}} - {{item.title}}</span>\n </mat-panel-title>\n <mat-panel-description class="process-item-description">\n <span\n class="process-item-description full-width">{{\'admin.process-list.newestVersion\' | translate}}\n : {{item.newestVersion}}</span>\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <div *ngIf="item.loading" fxFlex="100" class="full-width">\n <mat-progress-bar mode="indeterminate" color="primary"></mat-progress-bar>\n </div>\n\n <div *ngIf="!item.loading && item.emptyRoles" fxLayout="column"\n fxLayoutAlign="center center" fxFlex class="full-width full-height net-panel-content">\n <mat-icon color="accent" class="margin-bottom-default">account_circle</mat-icon>\n <span class="font-size-15">{{ \'admin.process-list.noRoles\' | translate}}</span>\n </div>\n\n <div *ngIf="!item.loading && !item.emptyRoles" fxLayout="column" fxLayoutAlign="start center"\n class="full-height full-width net-panel-content padding-0-16px">\n <h3>Roles</h3>\n <div *ngFor="let net of item.processes; let first = first" fxLayout="column"\n fxLayoutAlign="start center" class="full-width">\n <mat-divider *ngIf="!first" style="position: relative"></mat-divider>\n\n <span>{{\'admin.user-invite.version\' | translate }} - {{net.version}}</span>\n\n <div fxLayout="column" class="full-width padding-16px">\n <div *ngFor="let role of net.roles" fxFlex fxLayout="row wrap" fxLayoutAlign="start center">\n <span>{{role.name}}</span>\n\n <div fxFlex></div>\n\n <button mat-icon-button color="primary" (click)="addRole(role)">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n </mat-expansion-panel>\n\n </mat-accordion>\n\n <div *ngIf="nets.loading$ | async" fxLayout="column" fxLayoutAlign="center center" fxFlex="100">\n <mat-spinner color="primary" diameter="65"></mat-spinner>\n </div>\n </div>\n</div>\n\n',styles:[".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-default{margin-top:8px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-default{margin-bottom:8px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.flex-class{flex:1 1 auto}.height-96{min-height:96px}.mail-icon{margin-right:10px}.invited-card{padding:0 16px;width:100%;white-space:nowrap;border:1px solid #eee}.invited-card-font,.invited-card-font h1,.invited-card-font h2,.invited-card-font h3,.invited-card-font h4,.invited-card-font h5,.invited-card-font h6{font:500 20px/32px Roboto,monospace;letter-spacing:normal;margin:0}.inherited-divider{position:inherit}.padding-16px{padding:16px}.padding-0-16px{padding:0 16px}.padding-16px-0{padding:16px 0}.padding-right-16px{padding-right:16px}.margin-right-16px{margin-right:16px}.margin-bottom-16px{margin-bottom:16px}.font-size-20{font-size:20px}"]}]}],a.ctorParameters=function(){return[{type:n.UserInviteService},{type:n.OrganizationListService},{type:n.SignUpService},{type:n.SnackBarService},{type:r.TranslateService}]},a}(n.AbstractUserInviteComponent),P=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[M,N],exports:[M,N],imports:[a.CommonModule,n.MaterialModule,n.TranslateLibModule]}]}],e}(),O=function(e){function a(t,n,a,r,o){var i=e.call(this,t,n,a,r,o)||this;return i._session=t,i._spinnerOverlay=n,i.router=a,i.redirectService=r,i.userService=o,i}return T(a,e),a.ctorParameters=function(){return[{type:n.SessionService},{type:n.SpinnerOverlayService},{type:o.Router},{type:n.RedirectService},{type:n.UserService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-authentication-overlay",template:"<ng-content></ng-content>\n",styles:[""]}]}],a.ctorParameters=function(){return[{type:n.SessionService},{type:n.SpinnerOverlayService},{type:o.Router},{type:n.RedirectService},{type:n.UserService}]},a}(n.AbstractAuthenticationOverlay),R=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[O],exports:[O],imports:[a.CommonModule]}]}],e}(),D=function(e){function n(t){var n=e.call(this,t)||this;return n._sanitizer=t,n}return T(n,e),n.ctorParameters=function(){return[{type:i.DomSanitizer}]},n.decorators=[{type:t.Component,args:[{selector:"nc-iframe-card",template:'<mat-card class="dashboard-card" fxLayout="row" fxLayoutAlign="start start">\n <iframe [src]="sanitizedURL" fxFlex="100" class="full-size" title="Dashboard embedded content"></iframe>\n</mat-card>\n',styles:[".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}"]}]}],n.ctorParameters=function(){return[{type:i.DomSanitizer}]},n}(n.AbstractIframeCard),B=function(e){function n(t){var n=e.call(this,t)||this;return n._injector=t,n}return T(n,e),n.ctorParameters=function(){return[{type:t.Injector}]},n.decorators=[{type:t.Component,args:[{selector:"nc-count-card",template:'<mat-card fxLayout="column" fxLayoutAlign="center center" class="dashboard-card">\n <span>{{card.title}}</span>\n <ng-template [ngIf]="loading" [ngIfElse]="result">\n <mat-spinner color="primary"></mat-spinner>\n </ng-template>\n <ng-template #result>\n <span class="number">{{count}}</span>\n </ng-template>\n</mat-card>\n',styles:[".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.number{font-size:80px}"]}]}],n.ctorParameters=function(){return[{type:t.Injector}]},n}(n.AbstractCountCard),V=function(e){function a(n,a,r,o){var i=e.call(this,n,a,r,o)||this;return i._injector=n,i.resourceService=a,i.translateService=r,i.loggerService=o,i.selectEvent=new t.EventEmitter,i}return T(a,e),a.prototype.ngOnInit=function(){e.prototype.ngOnInit.call(this)},a.prototype.onSelect=function(e){this.loggerService.info("Linear gauge selected."),this.selectEvent.emit(e)},a.prototype.convertData=function(e){this.value=e.aggregations.types_count.value},a.ctorParameters=function(){return[{type:t.Injector},{type:n.DashboardResourceService},{type:r.TranslateService},{type:n.LoggerService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-linear-gauge-card",template:'<mat-card class="dashboard-card custom-mat-card" fxLayout="row" fxLayoutAlign="start start">\n <ngx-charts-linear-gauge class="custom-chart"\n [scheme]="colorScheme"\n [value]="value"\n (select)="onSelect($event)"\n [units]="card.units">\n </ngx-charts-linear-gauge>\n</mat-card>\n',styles:[".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-chart{width:90%;height:90%}.custom-mat-card{padding-left:0;padding-top:0}"]}]}],a.ctorParameters=function(){return[{type:t.Injector},{type:n.DashboardResourceService},{type:r.TranslateService},{type:n.LoggerService}]},a.propDecorators={selectEvent:[{type:t.Output}]},a}(n.AbstractCustomCard),z=function(e){function a(n,a,r,o){var i=e.call(this,n,a,r,o)||this;return i._injector=n,i.resourceService=a,i.translateService=r,i.loggerService=o,i.isDoughnut=!1,i.legendPosition="right",i.selectEvent=new t.EventEmitter,i}return T(a,e),a.prototype.ngOnInit=function(){e.prototype.ngOnInit.call(this)},a.prototype.onSelect=function(e){this.loggerService.info("Pie chart selected."),this.selectEvent.emit(e)},a.prototype.convertData=function(e){var t=this;e.aggregations.result.buckets.forEach((function(e){t.single.push(new n.DashboardSingleData(e.key,e.doc_count))})),this.single=_(this.single)},a.ctorParameters=function(){return[{type:t.Injector},{type:n.DashboardResourceService},{type:r.TranslateService},{type:n.LoggerService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-pie-chart-card",template:'<mat-card class="dashboard-card custom-mat-card" fxLayout="row" fxLayoutAlign="start start">\n <ngx-charts-pie-chart class="custom-chart"\n [scheme]="colorScheme"\n [results]="single"\n [gradient]="gradient"\n [legend]="showLegend"\n [legendPosition]="legendPosition"\n [labels]="showLabels"\n [doughnut]="isDoughnut"\n (select)="onSelect($event)"\n >\n </ngx-charts-pie-chart>\n</mat-card>\n',styles:[".custom-mat-card{padding-left:0;padding-top:0}.dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-chart{width:90%;height:90%}"]}]}],a.ctorParameters=function(){return[{type:t.Injector},{type:n.DashboardResourceService},{type:r.TranslateService},{type:n.LoggerService}]},a.propDecorators={selectEvent:[{type:t.Output}]},a}(n.AbstractCustomCard),U=function(e){function a(n,a,r,o){var i=e.call(this,n,a,r,o)||this;return i._injector=n,i.resourceService=a,i.translateService=r,i.loggerService=o,i.selectEvent=new t.EventEmitter,i}return T(a,e),a.prototype.ngOnInit=function(){e.prototype.ngOnInit.call(this)},a.prototype.onSelect=function(e){this.loggerService.info("BarChart was selected"),this.selectEvent.emit(e)},a.prototype.convertData=function(e){var t=this;e.aggregations.result.buckets.forEach((function(e){t.single.push(new n.DashboardSingleData(e.key,e.doc_count))})),this.single=_(this.single)},a.ctorParameters=function(){return[{type:t.Injector},{type:n.DashboardResourceService},{type:r.TranslateService},{type:n.LoggerService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-barchart-card",template:'<mat-card class="dashboard-card custom-mat-card" fxLayout="row" fxLayoutAlign="start start">\n <ngx-charts-bar-vertical class="custom-chart"\n [scheme]="colorScheme"\n [results]="single"\n [gradient]="gradient"\n [xAxis]="xAxis"\n [yAxis]="yAxis"\n [legend]="showLegend"\n [showXAxisLabel]="showXAxisLabel"\n [showYAxisLabel]="showYAxisLabel"\n [xAxisLabel]="card.xAxisLabel"\n [yAxisLabel]="card.yAxisLabel"\n (select)="onSelect($event)">\n </ngx-charts-bar-vertical>\n</mat-card>\n',styles:[".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-chart{width:90%;height:90%}.custom-mat-card{padding-left:0;padding-top:0}"]}]}],a.ctorParameters=function(){return[{type:t.Injector},{type:n.DashboardResourceService},{type:r.TranslateService},{type:n.LoggerService}]},a.propDecorators={selectEvent:[{type:t.Output}]},a}(n.AbstractCustomCard),H=function(e){function a(n,a,r,o){var i=e.call(this,n,a,r,o)||this;return i._injector=n,i.resourceService=a,i.translateService=r,i.loggerService=o,i.selectEvent=new t.EventEmitter,i}return T(a,e),a.prototype.ngOnInit=function(){this.injectedDashboard=this.componentPortal},a.prototype.onSelect=function(e){this.loggerService.info("Custom dashboard selected."),this.selectEvent.emit(e)},a.prototype.convertData=function(e){},a.ctorParameters=function(){return[{type:t.Injector},{type:n.DashboardResourceService},{type:r.TranslateService},{type:n.LoggerService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-portal-card",template:'<ng-template [cdkPortalOutlet]="injectedDashboard">\n</ng-template>\n',styles:[".custom-mat-card{padding-left:0;padding-top:0}.dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-chart{width:90%;height:90%}"]}]}],a.ctorParameters=function(){return[{type:t.Injector},{type:n.DashboardResourceService},{type:r.TranslateService},{type:n.LoggerService}]},a.propDecorators={componentPortal:[{type:t.Input}],selectEvent:[{type:t.Output}]},a}(n.AbstractCustomCard),j=function(e){function a(n,a,r,o){var i=e.call(this,n,a,r,o)||this;return i._injector=n,i.resourceService=a,i.translateService=r,i.loggerService=o,i.timeline=!0,i.selectEvent=new t.EventEmitter,i}return T(a,e),a.prototype.ngOnInit=function(){e.prototype.ngOnInit.call(this)},a.prototype.onSelect=function(e){this.loggerService.info("Line chart selected."),this.selectEvent.emit(e)},a.prototype.convertData=function(e){var t,a=this,r=0;for(t in e.aggregations)e.aggregations.hasOwnProperty(t)&&(this.multi.push(new n.DashboardMultiData(t,new Array)),e.aggregations[t].buckets.forEach((function(e){a.multi[r].series.push(new n.DashboardSingleData(e.key,e.doc_count))})),r++);this.multi=_(this.multi)},a.ctorParameters=function(){return[{type:t.Injector},{type:n.DashboardResourceService},{type:r.TranslateService},{type:n.LoggerService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-line-chart-card",template:'<mat-card class="dashboard-card custom-mat-card" fxLayout="row" fxLayoutAlign="start start">\n <ngx-charts-line-chart class="custom-chart"\n [legend]="showLegend"\n [showXAxisLabel]="showXAxisLabel"\n [showYAxisLabel]="showYAxisLabel"\n [xAxis]="xAxis"\n [yAxis]="yAxis"\n [xAxisLabel]="card.xAxisLabel"\n [yAxisLabel]="card.yAxisLabel"\n [timeline]="timeline"\n [results]="multi"\n (select)="onSelect($event)"\n >\n </ngx-charts-line-chart>\n</mat-card>\n',styles:[".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-mat-card{padding-left:0;padding-top:0}"]}]}],a.ctorParameters=function(){return[{type:t.Injector},{type:n.DashboardResourceService},{type:r.TranslateService},{type:n.LoggerService}]},a.propDecorators={selectEvent:[{type:t.Output}]},a}(n.AbstractCustomCard),q=function(e){function a(t){var n=e.call(this,t)||this;return n._log=t,n}return T(a,e),a.ctorParameters=function(){return[{type:n.LoggerService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-dashboard-content",template:'<mat-grid-list [cols]="params.columns" rowHeight="210px">\n <mat-grid-tile *ngFor="let card of gridElements"\n [colspan]="card.layout.cols"\n [rowspan]="card.layout.rows"\n [ngSwitch]="card.type">\n <nc-count-card *ngSwitchCase="cardTypes.COUNT" [card]="card.item" class="full-size"></nc-count-card>\n <nc-iframe-card *ngSwitchCase="cardTypes.IFRAME" [card]="card.item" class="full-size"></nc-iframe-card>\n <nc-pie-chart-card *ngSwitchCase="cardTypes.PIE" [card]="card.item" class="full-size"></nc-pie-chart-card>\n <nc-line-chart-card *ngSwitchCase="cardTypes.LINE" [card]="card.item" class="full-size"></nc-line-chart-card>\n <nc-linear-gauge-card *ngSwitchCase="cardTypes.LINEARGAUGE" [card]="card.item"\n class="full-size"></nc-linear-gauge-card>\n <nc-barchart-card *ngSwitchCase="cardTypes.BAR" [card]="card.item" class="full-size"></nc-barchart-card>\n <nc-portal-card *ngSwitchCase="cardTypes.DEFAULT" [card]="card.item"\n [componentPortal]="card.item.portalComponent" class="full-size"></nc-portal-card>\n <div *ngSwitchCase="cardTypes.BLANK"></div>\n </mat-grid-tile>\n</mat-grid-list>\n',styles:[".full-size{width:100%;height:100%;margin:auto;padding:0}"]}]}],a.ctorParameters=function(){return[{type:n.LoggerService}]},a}(n.AbstractDashboardContent),G=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[B,D,q,z,j,U,V,H],exports:[B,D,q,z,j,U,V],imports:[a.CommonModule,n.MaterialModule,n.TranslateLibModule,l.NgxChartsModule]}]}],e}(),$=function(e){function a(t,n,a){var r=e.call(this,t,a)||this;return r.isEnabled=n,r.valueLabelEnabled=n,r}return T(a,e),a.ctorParameters=function(){return[{type:r.TranslateService},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.BOOLEAN_VALUE_LABEL_ENABLED]}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-boolean-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="boolean"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #boolean let-showLargeLayout="showLargeLayout">\n <div>\n <mat-label *ngIf="!showLargeLayout.value">{{dataField.title}}\n <nc-required-label *ngIf="dataField.behavior.required" [isIn]="true"></nc-required-label>\n <br></mat-label>\n <mat-slide-toggle color="primary" [formControl]="formControl">\n {{createValueLabel()}}\n </mat-slide-toggle>\n <mat-error *ngIf="dataField.isInvalid(formControl)">{{getErrorMessage()}}</mat-error>\n </div>\n</ng-template>\n',styles:[""]}]}],a.ctorParameters=function(){return[{type:r.TranslateService},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.BOOLEAN_VALUE_LABEL_ENABLED]}]},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractBooleanFieldComponent),W=function(e){function a(t,n,a){var r=e.call(this,t,n,a)||this;return r.dialogService=n,r}return T(a,e),a.ctorParameters=function(){return[{type:r.TranslateService},{type:n.DialogService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-button-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="button"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #button let-showLargeLayout="showLargeLayout">\n <div>\n <mat-label *ngIf="!showLargeLayout.value">\n {{dataField.title}}\n <nc-required-label *ngIf="dataField.behavior.required" [isIn]="!dataField.disabled"></nc-required-label>\n <br>\n </mat-label>\n <button mat-button\n [ngClass]="{\n \'mat-raised-button\': resolveComponentType() === \'raised\',\n \'mat-stroked-button\': resolveComponentType() === \'stroked\',\n \'mat-flat-button\': resolveComponentType() === \'flat\',\n \'mat-icon-button\': resolveComponentType() === \'icon\',\n \'mat-fab\': resolveComponentType() === \'fab\',\n \'mat-mini-fab\': resolveComponentType() === \'minifab\'}"\n color="primary"\n [matTooltip]="dataField.description"\n [disabled]="formControl.disabled || dataField.waitingForResponse"\n (click)="resolveValue()">\n <div class="grid-wrapper">\n <mat-icon *ngIf="dataField.waitingForResponse" class="grid-1-1 margin-auto" >\n <mat-spinner color="warn" diameter="22"></mat-spinner>\n </mat-icon>\n <div [ngClass]="{\'label-waiting\': dataField.waitingForResponse}" class="grid-1-1">\n {{(dataField.placeholder === undefined || dataField.placeholder === \'\') ? dataField.title : (isIconTypeButton() ? \'\' : dataField.placeholder) }}\n </div>\n <mat-icon class="grid-1-1"\n *ngIf="isIconTypeButton() && !dataField.waitingForResponse">{{dataField.placeholder}}</mat-icon>\n </div>\n </button>\n\n <mat-error *ngIf="dataField.isInvalid(formControl)">{{getErrorMessage()}}</mat-error>\n </div>\n</ng-template>\n',styles:[".label-waiting{opacity:0}.grid-wrapper{display:-ms-grid;display:grid;place-items:center}.grid-1-1{-ms-grid-column:1;grid-column:1;-ms-grid-row:1;grid-row:1}.margin-auto{margin:0 auto}"]}]}],a.ctorParameters=function(){return[{type:r.TranslateService},{type:n.DialogService},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractButtonFieldComponent),K=function(e){function a(t,n){var a=e.call(this,t,n)||this;return a._paperView=t,a._config=n,a}return T(a,e),a.ctorParameters=function(){return[{type:n.PaperViewService},{type:n.ConfigurationService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-data-field-template",template:'<div class="fill-all-space" #dataFieldContainer>\n\n \x3c!-- Large layout --\x3e\n <ng-template [ngIf]="evaluateTemplateCondition()" [ngIfElse]="elseTemplate">\n <div fxLayout="row" fxLayoutAlign="start center" class="fill-all-space" [ngClass]="{\'padding-16px\': isPaperView(), \'padding-32px\': !isPaperView()}">\n <div fxFlex="{{offset}}"></div>\n <div fxFlex="{{47.5 - offset}}" class="cell-padding">\n <span class="data-field-title" [matTooltip]="dataField.description">{{dataField.title}}<nc-required-label *ngIf="dataField.behavior.required" [isIn]="true"></nc-required-label></span>\n </div>\n <div fxFlex="5"></div>\n <div fxFlex="{{47.5 - offset}}" class="cell-padding">\n <ng-container *ngTemplateOutlet="dataFieldTemplate; context: {\'showLargeLayout\':showLargeLayout}"></ng-container>\n </div>\n <div fxFlex="{{offset}}"></div>\n </div>\n </ng-template>\n\n \x3c!-- Small layout --\x3e\n <ng-template #elseTemplate>\n <div fxLayout="row" fxLayoutAlign="start center" class="fill-all-space padding-16px">\n <div fxFlex="{{offset}}"></div>\n <div fxFlex="{{100 - (2 * offset)}}" class="cell-padding">\n <ng-container *ngTemplateOutlet="dataFieldTemplate; context: {\'showLargeLayout\':showLargeLayout}"></ng-container>\n </div>\n <div fxFlex="{{offset}}"></div>\n </div>\n </ng-template>\n</div>\n',styles:[".data-field-title{font-size:16px;font-weight:400}.fill-all-space{min-width:100%;padding:0;margin:0 auto}.cell-padding{margin:0;padding:8px}.padding-16px{padding:0 16px}.padding-32px{padding:0 32px}"]}]}],a.ctorParameters=function(){return[{type:n.PaperViewService},{type:n.ConfigurationService}]},a}(n.AbstractDataFieldTemplateComponent),Q=n.DATE_FORMAT,X=function(e){function a(t,n){return e.call(this,t,n)||this}return T(a,e),a.ctorParameters=function(){return[{type:r.TranslateService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-date-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="date"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #date let-showLargeLayout="showLargeLayout">\n <mat-form-field [appearance]="dataField.materialAppearance" class="full-width" color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{dataField.title}}</mat-label>\n <input matInput\n [matDatepicker]="datepicker"\n [required]="dataField.behavior.required"\n [placeholder]="dataField.placeholder"\n [formControl]="formControl"\n (click)="datepicker.open()"\n [min]="dataField.min"\n [max]="dataField.max"\n (keydown.enter)="datepicker.close()">\n <mat-datepicker-toggle matPrefix [for]="datepicker"></mat-datepicker-toggle>\n <mat-datepicker #datepicker></mat-datepicker>\n <mat-hint>{{dataField.description}}</mat-hint>\n <mat-error *ngIf="dataField.isInvalid(formControl)">{{getErrorMessage()}}</mat-error>\n </mat-form-field>\n</ng-template>\n',providers:[{provide:g.MAT_DATE_FORMATS,useValue:Q}],styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],a.ctorParameters=function(){return[{type:r.TranslateService},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractDateFieldComponent),Y=n.DATE_TIME_FORMAT,Z=function(e){function a(t,n){return e.call(this,t,n)||this}return T(a,e),a.ctorParameters=function(){return[{type:r.TranslateService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-date-time-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="fieldTemplate"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #fieldTemplate let-showLargeLayout="showLargeLayout">\n <mat-form-field [appearance]="dataField.materialAppearance" class="full-width" color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{dataField.title}}</mat-label>\n <input matInput\n [ngxMatDatetimePicker]="picker"\n [required]="dataField.behavior.required"\n [placeholder]="dataField.placeholder"\n [formControl]="formControl"\n [min]="dataField.min"\n [max]="dataField.max"\n (click)="picker.open()">\n <mat-datepicker-toggle matPrefix [for]="picker"></mat-datepicker-toggle>\n <ngx-mat-datetime-picker #picker\n [showSpinners]="true"\n [showSeconds]="false"\n [stepHour]="1"\n [stepMinute]="5"\n [color]="\'primary\'"\n [enableMeridian]="false">\n </ngx-mat-datetime-picker>\n <mat-hint>{{dataField.description}}</mat-hint>\n <mat-error *ngIf="dataField.isInvalid(formControl)">{{getErrorMessage()}}</mat-error>\n </mat-form-field>\n</ng-template>\n',providers:[{provide:m.NGX_MAT_DATE_FORMATS,useValue:Y}],styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],a.ctorParameters=function(){return[{type:r.TranslateService},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractDateTimeFieldComponent),J=function(e){function a(t){return e.call(this,t)||this}return T(a,e),a.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-enumeration-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="enumFieldTemplate"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #enumFieldTemplate let-showLargeLayout="showLargeLayout">\n <div [ngSwitch]="dataField.getType()">\n <nc-enumeration-autocomplete-dynamic-field *ngSwitchCase="\'autocomplete_dynamic\'"\n [showLargeLayout]="showLargeLayout"\n [enumerationField]="dataField"\n [formControlRef]="formControl">\n </nc-enumeration-autocomplete-dynamic-field>\n <nc-enumeration-autocomplete-select-field *ngSwitchCase="\'autocomplete\'"\n [showLargeLayout]="showLargeLayout"\n [enumerationField]="dataField"\n [formControlRef]="formControl">\n </nc-enumeration-autocomplete-select-field>\n <nc-enumeration-list-field *ngSwitchCase="\'list\'"\n [showLargeLayout]="showLargeLayout"\n [enumerationField]="dataField"\n [formControlRef]="formControl">\n </nc-enumeration-list-field>\n <nc-enumeration-stepper-field *ngSwitchCase="\'stepper\'"\n [showLargeLayout]="showLargeLayout"\n [enumerationField]="dataField"\n [formControlRef]="formControl">\n </nc-enumeration-stepper-field>\n <nc-enumeration-icon-field *ngSwitchCase="\'icon\'"\n [showLargeLayout]="showLargeLayout"\n [enumerationField]="dataField"\n [formControlRef]="formControl">\n </nc-enumeration-icon-field>\n <nc-enumeration-select-field *ngSwitchDefault\n [showLargeLayout]="showLargeLayout"\n [enumerationField]="dataField"\n [formControlRef]="formControl">\n </nc-enumeration-select-field>\n </div>\n</ng-template>\n',styles:[""]}]}],a.ctorParameters=function(){return[{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractEnumerationFieldComponent),ee=function(e){function n(t){var n=e.call(this,t)||this;return n._translate=t,n}return T(n,e),n.ctorParameters=function(){return[{type:r.TranslateService}]},n.decorators=[{type:t.Component,args:[{selector:"nc-enumeration-autocomplete-select-field",template:'<mat-form-field [appearance]="enumerationField.materialAppearance" class="full-width" color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{enumerationField.title}}</mat-label>\n <input type="text"\n aria-label="Autocomplete"\n matInput\n #input\n [placeholder]="enumerationField.placeholder"\n [formControl]="formControlRef"\n [matAutocomplete]="auto"\n (keyup)="change()">\n <mat-autocomplete [displayWith]="renderSelection" autoActiveFirstOption #auto="matAutocomplete">\n <mat-option *ngFor="let option of filteredOptions | async" [value]="option.key" (click)="change()">\n {{option.value}}\n </mat-option>\n </mat-autocomplete>\n <mat-hint>{{enumerationField.description}}</mat-hint>\n <mat-error *ngIf="enumerationField.isInvalid(formControlRef)">{{buildErrorMessage()}}</mat-error>\n</mat-form-field>\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],n.ctorParameters=function(){return[{type:r.TranslateService}]},n}(n.AbstractEnumerationAutocompleteSelectFieldComponent),te=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-enumeration-select-field",template:'<mat-form-field [appearance]="enumerationField.materialAppearance" class="full-width" color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{enumerationField.title}}</mat-label>\n <mat-select [formControl]="formControlRef"\n [placeholder]="enumerationField.placeholder">\n <mat-option *ngFor="let option of enumerationField.choices" [value]="option.key">\n {{option.value}}\n </mat-option>\n </mat-select>\n <mat-hint>{{enumerationField.description}}</mat-hint>\n <mat-error *ngIf="enumerationField.isInvalid(formControlRef)">{{\'dataField.validations.required\' | translate}}</mat-error>\n</mat-form-field>\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],n.ctorParameters=function(){return[]},n}(n.AbstractEnumerationSelectFieldComponent),ne=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-enumeration-list-field",template:'<mat-radio-group\n color="primary"\n class="full-width example-radio-group"\n aria-labelledby="example-radio-group-label"\n [required]="enumerationField.behavior.required"\n [formControl]="formControlRef">\n <mat-label *ngIf="!showLargeLayout.value">{{enumerationField.title}}\n <nc-required-label *ngIf="enumerationField.behavior.required" [isIn]="true"></nc-required-label>\n <br></mat-label>\n <mat-radio-button class="example-radio-button" *ngFor="let option of enumerationField.choices" [value]="option.key">\n {{option.value}}\n </mat-radio-button>\n <mat-error *ngIf="enumerationField.isInvalid(formControlRef)">{{\'dataField.validations.required\' | translate}}</mat-error>\n</mat-radio-group>\n',styles:[".example-radio-group{display:flex;flex-direction:column;margin:16px 0}.example-radio-button{margin:8px}.full-width{width:100%}"]}]}],n.ctorParameters=function(){return[]},n}(n.AbstractEnumerationListFieldComponent),ae=function(){function e(e){var t=this;this.data=e,e.imageFull.subscribe((function(e){t.image=e}))}return e.prototype.ngOnInit=function(){},e.prototype.fullImageExists=function(){return!!this.image},e.prototype.isPdf=function(){return this.data.extension===n.FilePreviewType.pdf},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[f.MAT_DIALOG_DATA]}]}]},e.decorators=[{type:t.Component,args:[{selector:"nc-preview-dialog",template:'<button class="close" mat-icon-button [mat-dialog-close]="true">\n <mat-icon>close</mat-icon>\n</button>\n<h1 mat-dialog-title *ngIf="!isPdf()">Image: {{data.dataField.value.name}}</h1>\n<h1 mat-dialog-title *ngIf="isPdf()">PDF: {{data.dataField.value.name}}</h1>\n<div mat-dialog-content fxLayout="row" fxLayoutAlign="center center">\n <img class="image-size" *ngIf="!fullImageExists()" [src]="data.imagePreview" alt="Image preview"/>\n <img class="image-size" *ngIf="fullImageExists() && !isPdf()" [src]="image" alt="Image"/>\n <embed class="pdf-view" *ngIf="fullImageExists() && isPdf()" [src]="image" [type]="\'application/pdf\'" />\n</div>\n',styles:[".image-size{max-height:64vh}.close{float:right;top:-24px;right:-24px}.pdf-view{width:50vw;height:64vh}"]}]}],e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[f.MAT_DIALOG_DATA]}]}]},e}(),re=function(e){function a(t,n,a,r,o,i,l,s){var c=e.call(this,t,n,a,r,o,i,l)||this;return c._sanitizer=l,c.dialog=s,c}return T(a,e),a.prototype.showPreviewDialog=function(){e.prototype.showPreviewDialog.call(this),this.dialog.open(ae,{data:{dataField:this.dataField,imagePreview:this.previewSource,imageFull:this.fullSource,extension:this.previewExtension}})},a.ctorParameters=function(){return[{type:n.TaskResourceService},{type:n.LoggerService},{type:n.SnackBarService},{type:r.TranslateService},{type:n.EventService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]},{type:i.DomSanitizer},{type:f.MatDialog}]},a.decorators=[{type:t.Component,args:[{selector:"nc-file-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="dataFieldTemplate"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #dataFieldTemplate let-showLargeLayout="showLargeLayout">\n <div fxLayoutAlign="center center" fxLayout="row">\n <div fxFlex="{{!filePreview ? \'100\' : \'75\'}}">\n <mat-label *ngIf="!showLargeLayout.value">\n {{dataField.title}}\n <nc-required-label *ngIf="dataField.behavior.required" [isIn]="!dataField.disabled"></nc-required-label>\n <br>\n </mat-label>\n <div class="form-input button-icon-input full-width input-margin" fxLayout="row" fxLayoutAlign="start center">\n <button mat-icon-button color="accent" (click)="chooseFile()"\n [matTooltip]="\'dataField.file.clickToUpload\' | translate" *ngIf="!formControl.disabled"\n [class.do-not-click]="state.uploading">\n <mat-icon>file_upload</mat-icon>\n </button>\n <span (click)="isEmpty() ? chooseFile() : download()" fxFlex\n [matTooltip]="isEmpty() ? \'\' : (\'dataField.file.clickToDownload\' | translate : {fileName: constructDisplayName()})"\n class="input-name-ellipsis"\n [ngClass]="{\'input-placeholder\': isEmpty(), \'no-cursor\': isEmpty() && formControl.disabled}">{{constructDisplayName()}}</span>\n <button (click)="deleteFile()" [matTooltip]="\'dataField.file.clickToDelete\' | translate" mat-icon-button\n *ngIf="!isEmpty() && !formControl.disabled">\n <mat-icon color="warn">close</mat-icon>\n </button>\n </div>\n <mat-progress-bar *ngIf="state.uploading || state.downloading" color="primary" [value]="state.progress"\n [mode]="state.uploading ? \'determinate\' : \'indeterminate\'"\n class="margin-bottom-default"></mat-progress-bar>\n <input type="file" #fileUploadInput name="fileUpload" [multiple]="false"\n accept="{{dataField.allowTypes}}" class="invisible-input">\n <input type="text" [formControl]="formControl" class="invisible-input">\n <mat-hint class="file-hint-error"\n *ngIf="!dataField.isInvalid(formControl)">{{dataField.description}}</mat-hint>\n <mat-error class="file-hint-error"\n *ngIf="dataField.isInvalid(formControl)">{{\'dataField.validations.required\' | translate}}</mat-error>\n </div>\n <div *ngIf="filePreview" fxFlex="5"></div>\n <div *ngIf="filePreview" fxFlex="20" fxLayout="row" fxLayoutAlign="center center" #imageDiv\n (resized)="changeMaxWidth($event)"\n [ngStyle]="{\'max-height\': getHeight()+\'px\'}">\n <img *ngIf="previewSource !== undefined && !state.downloading && isDisplayable" class="image-preview" #imageEl\n [ngStyle]="!isBorderLGBTQ() && !isBorderDefault() && {\n \'border-width\': getPreviewBorderWidth(),\n \'border-style\': getPreviewBorderStyle(),\n \'border-color\': getPreviewBorderColor()\n }"\n [ngClass]="{\'border-LGBTQ\': isBorderLGBTQ(), \'border-default\': isBorderDefault()}"\n [src]="previewSource" alt="Image preview" (click)="showPreviewDialog()"/>\n <mat-spinner *ngIf="previewSource === undefined && !!state.downloading && isDisplayable"\n [diameter]="26"></mat-spinner>\n </div>\n </div>\n</ng-template>\n',styles:[".invisible-input{display:none}.margin-bottom-default{margin-bottom:8px}.file-field-image{width:120px}.file-field-image-wrapper{border-radius:3px}.progress-bar-size{height:8px}.margin-bottom-half{margin-bottom:4px}.do-not-click:hover{cursor:not-allowed}.file-button{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.input-name-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.input-placeholder{color:rgba(0,0,0,.42)}.button-icon-input{padding:2px!important}.full-width{width:100%;min-width:100%}.input-margin{margin-top:7px!important}.form-input{background:0 0;color:#333;outline:0;border:1px solid rgba(0,0,0,.12);text-align:left;font-size:14px;line-height:15.75px;border-radius:6px;min-width:5px;padding:10px 15px;box-sizing:border-box;height:54.81px}.form-input:hover{border-color:#000}.placeholder{color:rgba(0,0,0,.42)!important}.file-hint-error{padding:0 1em;font-size:75%}.image-preview{width:auto;height:auto;cursor:pointer}.no-cursor{cursor:default!important}.border-LGBTQ{border:5px solid transparent;-o-border-image:linear-gradient(to bottom right,#b827fc 0,#2c90fc 25%,#b8fd33 50%,#fec837 75%,#fd1892 100%);border-image:linear-gradient(to bottom right,#b827fc 0,#2c90fc 25%,#b8fd33 50%,#fec837 75%,#fd1892 100%);border-image-slice:1}.border-default{border:1px solid #000}"]}]}],a.ctorParameters=function(){return[{type:n.TaskResourceService},{type:n.LoggerService},{type:n.SnackBarService},{type:r.TranslateService},{type:n.EventService},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]},{type:i.DomSanitizer},{type:f.MatDialog}]},a}(n.AbstractFileFieldComponent),oe=function(e){function a(t,n,a,r,o,i){return e.call(this,t,n,a,r,o,i)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.TaskResourceService},{type:n.LoggerService},{type:n.SnackBarService},{type:r.TranslateService},{type:n.EventService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-file-list-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="dataFieldTemplate"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #dataFieldTemplate let-showLargeLayout="showLargeLayout">\n <div>\n <mat-label *ngIf="!showLargeLayout.value">\n {{dataField.title}}\n <nc-required-label *ngIf="dataField.behavior.required" [isIn]="!dataField.disabled"></nc-required-label>\n <br>\n </mat-label>\n <div class="form-input button-icon-input full-width input-margin" fxLayout="row" fxLayoutAlign="start center">\n <button mat-icon-button color="accent" (click)="chooseFile()"\n [matTooltip]="\'dataField.file.clickToUpload\' | translate" *ngIf="!formControl.disabled"\n [class.do-not-click]="state.uploading">\n <mat-icon>file_upload</mat-icon>\n </button>\n <span *ngIf="uploadedFiles.length === 0" (click)="chooseFile()" fxFlex\n [ngClass]="{\'no-cursor\': formControl.disabled}" class="input-placeholder input-name-ellipsis">{{constructDisplayName()}}</span>\n <div *ngIf="uploadedFiles.length !== 0" class="input-name-ellipsis" fxFlex>\n <div *ngFor="let name of uploadedFiles" fxLayoutAlign="start center">\n <span (click)="download(name)" fxFlex [matTooltip]="\'dataField.file.clickToDownload\' | translate : {fileName: name}"\n class="input-name-ellipsis file-list-item">{{name}}</span>\n <button (click)="deleteFile(name)" [matTooltip]="\'dataField.file.clickToDelete\' | translate" mat-icon-button\n *ngIf="!formControl.disabled">\n <mat-icon color="warn">close</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <mat-progress-bar *ngIf="state.uploading || state.downloading" color="primary" [value]="state.progress"\n [mode]="state.uploading ? \'determinate\' : \'indeterminate\'"\n class="margin-bottom-default"></mat-progress-bar>\n <input type="file" #fileUploadInput name="fileUpload" [multiple]="true"\n accept="{{dataField.allowTypes}}" class="invisible-input"/>\n <input type="text" [formControl]="formControl" class="invisible-input">\n <mat-hint class="file-hint-error" *ngIf="!dataField.isInvalid(formControl)">{{dataField.description}}</mat-hint>\n <mat-error class="file-hint-error" *ngIf="dataField.isInvalid(formControl)">{{\'dataField.validations.required\' | translate}}</mat-error>\n </div>\n</ng-template>\n',styles:[".invisible-input{display:none}.margin-bottom-default{margin-bottom:8px}.progress-bar-size{height:8px}.margin-bottom-half{margin-bottom:4px}.do-not-click:hover{cursor:not-allowed}.file-button{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.input-name-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.input-placeholder{color:rgba(0,0,0,.42)}.button-icon-input{padding:2px!important}.full-width{width:100%;min-width:100%}.input-margin{margin-top:7px!important}.form-input{background:0 0;color:#333;outline:0;border:1px solid rgba(0,0,0,.12);text-align:left;font-size:14px;line-height:15.75px;border-radius:6px;min-width:5px;padding:10px 15px;box-sizing:border-box;min-height:54.81px}.form-input:hover{border-color:#000}.file-hint-error{padding:0 1em;font-size:75%}.no-cursor{cursor:default!important}"]}]}],a.ctorParameters=function(){return[{type:n.TaskResourceService},{type:n.LoggerService},{type:n.SnackBarService},{type:r.TranslateService},{type:n.EventService},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractFileListFieldComponent),ie=function(e){function a(t){return e.call(this,t)||this}return T(a,e),a.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-multichoice-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="multiFieldTemplate"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #multiFieldTemplate let-showLargeLayout="showLargeLayout">\n <div *ngIf="dataField.component !== undefined" [ngSwitch]="dataField.component.name">\n <nc-multichoice-list-field *ngSwitchCase="\'list\'"\n [showLargeLayout]="showLargeLayout"\n [multichoiceField]="dataField"\n [formControlRef]="formControl">\n </nc-multichoice-list-field>\n <nc-multichoice-select-field *ngSwitchDefault\n [showLargeLayout]="showLargeLayout"\n [multichoiceField]="dataField"\n [formControlRef]="formControl">\n </nc-multichoice-select-field>\n </div>\n\n \x3c!-- @deprecated in 4.3.0--\x3e\n <div *ngIf="dataField.component === undefined" [ngSwitch]="dataField.view">\n <nc-multichoice-list-field *ngSwitchCase="\'list\'"\n [showLargeLayout]="showLargeLayout"\n [multichoiceField]="dataField"\n [formControlRef]="formControl">\n </nc-multichoice-list-field>\n <nc-multichoice-select-field *ngSwitchDefault\n [showLargeLayout]="showLargeLayout"\n [multichoiceField]="dataField"\n [formControlRef]="formControl">\n </nc-multichoice-select-field>\n </div>\n</ng-template>\n',styles:[""]}]}],a.ctorParameters=function(){return[{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractMultichoiceFieldComponent),le=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-multichoice-select-field",template:'<mat-form-field [appearance]="multichoiceField.materialAppearance" class="full-width" color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{multichoiceField.title}}</mat-label>\n <mat-select [placeholder]="multichoiceField.placeholder"\n [formControl]="formControlRef"\n [required]="multichoiceField.behavior.required"\n multiple>\n <mat-option *ngFor="let option of multichoiceField.choices" [value]="option.key">\n {{option.value}}\n </mat-option>\n </mat-select>\n <mat-hint>{{multichoiceField.description}}</mat-hint>\n <mat-error *ngIf="multichoiceField.isInvalid(formControlRef)">{{\'dataField.validations.required\' | translate}}</mat-error>\n</mat-form-field>\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],n}(n.AbstractMultichoiceSelectFieldComponent),se=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-multichoice-list-field",template:'<mat-selection-list color="primary"\n [formControl]="formControlRef"\n [required]="multichoiceField.behavior.required">\n <mat-label *ngIf="!showLargeLayout.value">{{multichoiceField.title}}\n <nc-required-label *ngIf="multichoiceField.behavior.required" [isIn]="true"></nc-required-label>\n <br></mat-label>\n <mat-list-option *ngFor="let option of multichoiceField.choices" [value]="option.key">\n {{option.value}}\n </mat-list-option>\n <mat-error *ngIf="multichoiceField.isInvalid(formControlRef)">{{\'dataField.validations.required\' | translate}}</mat-error>\n</mat-selection-list>\n',styles:[""]}]}],n.ctorParameters=function(){return[]},n}(n.AbstractMultichoiceListFieldComponent),ce=function(e){function a(t,n){return e.call(this,t,n)||this}return T(a,e),a.prototype.resolveComponent=function(){return void 0!==this.dataField.component?this.dataField.component.name:"default"},a.ctorParameters=function(){return[{type:r.TranslateService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-number-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="dataFieldTemplate"\n [offset]="taskOffset">\n\n</nc-data-field-template>\n\n<ng-template #dataFieldTemplate let-showLargeLayout="showLargeLayout">\n <div [ngSwitch]="resolveComponent()">\n <nc-number-currency-field *ngSwitchCase="\'currency\'"\n [numberField]="dataField"\n [formControlRef]="formControl"\n [showLargeLayout] = showLargeLayout>\n </nc-number-currency-field>\n <nc-number-default-field *ngSwitchDefault\n [numberField]="dataField"\n [formControlRef]="formControl"\n [showLargeLayout] = showLargeLayout>\n </nc-number-default-field>\n </div>\n\n</ng-template>\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],a.ctorParameters=function(){return[{type:r.TranslateService},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractNumberFieldComponent),de=function(e){function a(t){return e.call(this,t)||this}return T(a,e),a.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-text-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="textFieldTemplate"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #textFieldTemplate let-showLargeLayout="showLargeLayout">\n <div *ngIf="dataField.component !== undefined" [ngSwitch]="dataField.component.name">\n <nc-password-text-field *ngSwitchCase="\'password\'" [passwordTextField]="dataField" [formControlRef]="formControl"\n [showLargeLayout]="showLargeLayout"></nc-password-text-field>\n <nc-textarea-field *ngSwitchCase="\'textarea\'" [textAreaField]="dataField" [formControlRef]="formControl"\n [showLargeLayout]="showLargeLayout"></nc-textarea-field>\n <nc-rich-textarea-field *ngSwitchCase="\'richtextarea\'" [textAreaField]="dataField"\n [formControlRef]="formControl"\n [showLargeLayout]="showLargeLayout"></nc-rich-textarea-field>\n <nc-html-textarea-field *ngSwitchCase="\'htmltextarea\'" [textAreaField]="dataField"\n [formControlRef]="formControl"\n [showLargeLayout]="showLargeLayout"></nc-html-textarea-field>\n <nc-simple-text-field *ngSwitchDefault [textField]="dataField" [formControlRef]="formControl"\n [showLargeLayout]="showLargeLayout"></nc-simple-text-field>\n </div>\n\n \x3c!-- @deprecated in 4.3.0--\x3e\n <div *ngIf="dataField.component == undefined" [ngSwitch]="dataField.view">\n <nc-textarea-field *ngSwitchCase="\'textarea\'" [textAreaField]="dataField" [formControlRef]="formControl"\n [showLargeLayout]="showLargeLayout"></nc-textarea-field>\n <nc-rich-textarea-field *ngSwitchCase="\'richtextarea\'" [textAreaField]="dataField"\n [formControlRef]="formControl"\n [showLargeLayout]="showLargeLayout"></nc-rich-textarea-field>\n <nc-html-textarea-field *ngSwitchCase="\'htmltextarea\'" [textAreaField]="dataField"\n [formControlRef]="formControl"\n [showLargeLayout]="showLargeLayout"></nc-html-textarea-field>\n <nc-simple-text-field *ngSwitchDefault [textField]="dataField" [formControlRef]="formControl"\n [showLargeLayout]="showLargeLayout"></nc-simple-text-field>\n </div>\n</ng-template>\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],a.ctorParameters=function(){return[{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractTextFieldComponent),pe=function(e){function n(t,n){var a=e.call(this,t,n)||this;return a._translate=t,a._ngZone=n,a}return T(n,e),n.ctorParameters=function(){return[{type:r.TranslateService},{type:t.NgZone}]},n.decorators=[{type:t.Component,args:[{selector:"nc-textarea-field",template:'<mat-form-field [appearance]="textAreaField.materialAppearance"\n floatLabel="always"\n class="full-width"\n color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{textAreaField.title}}</mat-label>\n <textarea matInput\n #textArea\n [placeholder]="textAreaField.placeholder"\n [required]="textAreaField.behavior.required"\n [formControl]="formControlRef"\n [ngStyle]="{\'min-height\': getHeight()+\'px\', \'height\': getHeight()+\'px\'}"\n #dynamicTextArea="cdkTextareaAutosize"\n cdkTextareaAutosize\n cdkAutosizeMinRows="1"></textarea>\n <mat-hint>{{textAreaField.description}}</mat-hint>\n <mat-error *ngIf="textAreaField.isInvalid(formControlRef)">{{getErrorMessage()}}</mat-error>\n</mat-form-field>\n\n\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],n.ctorParameters=function(){return[{type:r.TranslateService},{type:t.NgZone}]},n}(n.AbstractTextareaFieldComponent),me=function(e){function n(t){var n=e.call(this,t)||this;return n._translate=t,n}return T(n,e),n.ctorParameters=function(){return[{type:r.TranslateService}]},n.decorators=[{type:t.Component,args:[{selector:"nc-rich-textarea-field",template:'<div class="height-100">\n <td-text-editor *ngIf="!formControlRef.disabled" [(ngModel)]="textAreaField.value"\n [options]="options"></td-text-editor>\n <mat-error *ngIf="textAreaField.isInvalid(formControlRef)">{{getErrorMessage()}}</mat-error>\n\n <input type="hidden" [formControl]="formControlRef">\n\n <div class="border" *ngIf="formControlRef.disabled">\n <td-markdown>{{textAreaField.value}}</td-markdown>\n </div>\n</div>\n',styles:[".height-100{height:100%}.border{border:1px solid #ddd;border-radius:4px;padding:10px;z-index:1;word-wrap:break-word}"]}]}],n.ctorParameters=function(){return[{type:r.TranslateService}]},n}(n.AbstractRichTextareaFieldComponent),ue=function(e){function n(t){var n=e.call(this,t)||this;return n._translate=t,n}return T(n,e),n.ctorParameters=function(){return[{type:r.TranslateService}]},n.decorators=[{type:t.Component,args:[{selector:"nc-simple-text-field",template:'<mat-form-field [appearance]="textField.materialAppearance" class="full-width" color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{textField.title}}</mat-label>\n <input matInput\n [placeholder]="textField.placeholder"\n [required]="textField.behavior.required"\n [formControl]="formControlRef">\n <mat-hint>{{textField.description}}</mat-hint>\n <mat-error *ngIf="textField.isInvalid(formControlRef)">{{getErrorMessage()}}</mat-error>\n</mat-form-field>\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],n.ctorParameters=function(){return[{type:r.TranslateService}]},n}(n.AbstractSimpleTextFieldComponent),ge=function(e){function a(t){var n=e.call(this,t)||this;return n._sideMenuControl=t,n}return T(a,e),a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-user-assign",template:'<div class="full-width full-height" fxLayout="column" fxLayoutAlign="start stretch">\n <mat-toolbar color="primary">{{ \'side-menu.user.assign\' | translate | uppercase }}</mat-toolbar>\n <div class="user-assign-container side-menu-root" fxLayout="column" fxFlex>\n <div fxLayout="row" fxLayoutAlign="start center">\n <mat-icon fxFlex class="search-icon">search</mat-icon>\n <mat-form-field fxFlex="100" class="user-assign-search" color="primary">\n <input matInput placeholder="{{ \'side-menu.user.choose\' | translate }}"\n [formControl]="searchUserControl">\n <button mat-button *ngIf="searchUserControl.value" matSuffix mat-icon-button\n (click)="searchUserControl.setValue(\'\')">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <nc-user-assign-list fxFlex\n [searchUserControl]="searchUserControl"\n [roles]="roles"\n [negativeRoles]="negativeRoles"\n [initiallySelectedUser]="initiallySelectedUser"\n (userSelected)="userWasSelected($event)">\n </nc-user-assign-list>\n\n <div fxLayout="row" fxLayoutAlign="end center">\n <button mat-button color="primary"\n (click)="assign()">{{ \'tasks.view.assign\' | translate | uppercase }}</button>\n </div>\n </div>\n</div>\n',providers:[n.UserListService],styles:[".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-default{margin-top:8px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-default{margin-bottom:8px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.user-assign-container{padding:16px;position:relative}.user-assign-search{width:100%}.search-icon{margin-right:10px}"]}]}],a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]}]},a}(n.AbstractUserAssignComponent),fe=function(e){function a(t,n,a,r){return e.call(this,t,n,a,r)||this}return T(a,e),a.prototype.selectUser=function(){this.selectAbstractUser(ge)},a.ctorParameters=function(){return[{type:n.SideMenuService},{type:n.SnackBarService},{type:r.TranslateService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-user-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="dataFieldTemplate"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #dataFieldTemplate let-showLargeLayout="showLargeLayout">\n\n <div>\n <mat-label *ngIf="!showLargeLayout.value">{{dataField.title}}\n <nc-required-label *ngIf="dataField.behavior.required" [isIn]="!dataField.disabled"></nc-required-label>\n <br>\n </mat-label>\n <button mat-stroked-button\n *ngIf="dataField.value !== undefined"\n [disabled]="formControl.disabled"\n color="primary"\n (click)="selectUser()">\n <mat-icon>how_to_reg</mat-icon>\n {{dataField.value.fullName}}\n </button>\n <button mat-stroked-button\n *ngIf="dataField.value === undefined"\n [disabled]="formControl.disabled"\n color="primary"\n (click)="selectUser()">\n <mat-icon>person_add</mat-icon>\n Select user\n </button>\n <mat-error *ngIf="dataField.isInvalid(formControl)">{{\'dataField.validations.required\' | translate}}</mat-error>\n </div>\n\n</ng-template>\n',styles:[""]}]}],a.ctorParameters=function(){return[{type:n.SideMenuService},{type:n.SnackBarService},{type:r.TranslateService},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractUserFieldComponent),he=function(){function e(){this.isIn=!1}return e.prototype.ngOnInit=function(){},e.decorators=[{type:t.Component,args:[{selector:"nc-required-label",template:'<span class="required-label-color" [ngClass]="{ \'disabled-opacity-45\': !isIn }"> * </span>\n',styles:[".required-label-color{color:red}.disabled-opacity-45{opacity:.45}"]}]}],e.ctorParameters=function(){return[]},e.propDecorators={isIn:[{type:t.Input}]},e}(),ve=function(e){function n(t,n){var a=e.call(this,t,n)||this;return a._translate=t,a._sanitizer=n,a}return T(n,e),n.ctorParameters=function(){return[{type:r.TranslateService},{type:i.DomSanitizer}]},n.decorators=[{type:t.Component,args:[{selector:"nc-html-textarea-field",template:'<div class="height-100" #quillContainer>\n <quill-editor theme="snow" *ngIf="!formControlRef.disabled" [(ngModel)]="textAreaField.value"\n [modules]="quillModules" [bounds]="quillContainer"></quill-editor>\n <mat-error *ngIf="textAreaField.isInvalid(formControlRef)">{{getErrorMessage()}}</mat-error>\n <input type="hidden" [formControl]="formControlRef">\n <div *ngIf="formControlRef.disabled" class="border ql-snow">\n <div class="ql-editor" [innerHTML]="disabledDisplay"></div>\n </div>\n</div>\n',styles:[".height-100{height:100%}.border{border:1px solid #ddd;border-radius:4px;padding:10px;z-index:1;word-wrap:break-word}"]}]}],n.ctorParameters=function(){return[{type:r.TranslateService},{type:i.DomSanitizer}]},n}(n.AbstractHtmlTextareaFieldComponent),ye=function(e){function n(t,n){return e.call(this,t,n)||this}return T(n,e),n.prototype.ngOnInit=function(){e.prototype.ngOnInit.call(this)},n.prototype.onFocusOut=function(e){this.transformToText(e)},n.prototype.onFocusIn=function(){this.transformToNumber()},n.ctorParameters=function(){return[{type:a.CurrencyPipe},{type:r.TranslateService}]},n.decorators=[{type:t.Component,args:[{selector:"nc-number-currency-field",template:'<mat-form-field [appearance]="numberField.materialAppearance" class="full-width" color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{numberField.title}}</mat-label>\n <input matInput\n [type]="fieldType"\n [value]="transformedValue"\n [formControl]="formControlRef"\n [placeholder]="numberField.placeholder"\n [required]="numberField.behavior.required"\n (focusout)="onFocusOut($event)"\n (focusin)="onFocusIn()">\n <mat-hint>{{numberField.description}}</mat-hint>\n <mat-error *ngIf="numberField.isInvalid(formControlRef)">{{getErrorMessage()}}</mat-error>\n</mat-form-field>\n<mat-label class="currency-label" *ngIf="fieldType == \'number\'">{{getCurrencySymbol()}}</mat-label>\n',styles:[".full-width{margin:0 auto;width:90%}.currency-label{margin-left:5px}"]}]}],n.ctorParameters=function(){return[{type:a.CurrencyPipe},{type:r.TranslateService}]},n}(n.AbstractCurrencyNumberFieldComponent),xe=function(e){function n(t){return e.call(this,t)||this}return T(n,e),n.ctorParameters=function(){return[{type:r.TranslateService}]},n.decorators=[{type:t.Component,args:[{selector:"nc-number-default-field",template:'<mat-form-field [appearance]="numberField.materialAppearance" class="full-width" color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{numberField.title}}</mat-label>\n <input matInput\n type="number"\n [formControl]="formControlRef"\n [placeholder]="numberField.placeholder"\n [required]="numberField.behavior.required">\n <mat-hint>{{numberField.description}}</mat-hint>\n <mat-error *ngIf="numberField.isInvalid(formControlRef)">{{getErrorMessage()}}</mat-error>\n</mat-form-field>\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],n.ctorParameters=function(){return[{type:r.TranslateService}]},n}(n.AbstractDefaultNumberFieldComponent),be=function(e){function n(t){var n=e.call(this,t)||this;return n._translate=t,n.hide=!0,n}return T(n,e),n.prototype.ngOnInit=function(){},n.ctorParameters=function(){return[{type:r.TranslateService}]},n.decorators=[{type:t.Component,args:[{selector:"nc-password-text-field",template:'<mat-form-field [appearance]="passwordTextField.materialAppearance" class="full-width" color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{passwordTextField.title}}</mat-label>\n <input matInput\n [placeholder]="passwordTextField.placeholder"\n [required]="passwordTextField.behavior.required"\n [formControl]="formControlRef"\n [type]="hide ? \'password\' : \'text\'">\n <button mat-icon-button matSuffix type="button"\n (click)="hide = !hide"\n (keypress)="false"\n [attr.aria-label]="\'Hide password\'"\n [attr.aria-pressed]="hide">\n <mat-icon\n [color]="hide ? undefined : \'accent\'">{{hide ? \'visibility_off\' : \'visibility\'}}</mat-icon>\n </button>\n <mat-hint>{{passwordTextField.description}}</mat-hint>\n <mat-error *ngIf="passwordTextField.isInvalid(formControlRef)">{{getErrorMessage()}}</mat-error>\n</mat-form-field>\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],n.ctorParameters=function(){return[{type:r.TranslateService}]},n}(n.AbstractPasswordTextFieldComponent),we=function(e){function n(t){var n=e.call(this,t)||this;return n.ref=t,n}return T(n,e),n.ctorParameters=function(){return[{type:t.ElementRef}]},n.decorators=[{type:t.Component,args:[{selector:"nc-enumeration-stepper-field",template:'<mat-label class="stepper-label" *ngIf="!showLargeLayout.value" matTooltipClass="stepper-tooltip-text" [matTooltip]="enumerationField.description" matTooltipPosition="right">\n {{enumerationField.title}}\n <nc-required-label *ngIf="enumerationField.behavior.required" [isIn]="!enumerationField.disabled" ></nc-required-label>\n</mat-label>\n\n<div class="horizontal-stepper" fxLayout="row" *ngIf="!arrowStepper">\n <div class="horizontal-step">\n <ng-template ngFor let-option [ngForOf]="enumerationField.choices" let-i="index">\n <div class="horizontal-step-header" #oneStep>\n <div class="horizontal-state" [ngClass]="{\'horizontal-state-primary\': canShowDoneIcon(i), \'horizontal-state-secondary\': !canShowDoneIcon(i)}">\n <mat-icon *ngIf="canShowDoneIcon(i + 1)">done</mat-icon>\n </div>\n <div class="horizontal-state-label">{{option.value}}</div>\n </div>\n <div class="horizontal-line" fxFlex *ngIf="i < enumerationField.choices.length - 1"></div>\n </ng-template>\n </div>\n</div>\n\n<div *ngIf="arrowStepper" class="stepper-min-height" fxLayoutAlign="stretch center" fxLayout="row">\n <ng-template ngFor let-option [ngForOf]="enumerationField.choices" let-i="index">\n <span class="stepper-arrow-text" [ngClass]="{\'stepper-arrow-selected\': isSelected(option.key), \'stepper-disabled\': enumerationField.disabled}"\n (click)="setStepperValue(option.key)" fxFlex fxLayoutAlign="center center">{{option.value}}</span>\n <span fxFlex *ngIf="i < enumerationField.choices.length - 1" fxLayoutAlign="center center">\n <mat-icon>arrow_forward_ios</mat-icon>\n </span>\n </ng-template>\n</div>\n',styles:['.horizontal-stepper{display:flex}.horizontal-step-header{box-sizing:border-box;flex-direction:column;height:auto;padding:24px;overflow:hidden;outline:0;position:relative;-webkit-tap-highlight-color:transparent;display:flex;align-items:center}.horizontal-step-header:not(:first-child)::before{left:0}.horizontal-step-header:not(:last-child)::after{right:0}.horizontal-step-header:not(:first-child)::before,.horizontal-step-header:not(:last-child)::after{border-top-width:1px;border-top-style:solid;content:"";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);top:36px}.horizontal-state{color:#fff;border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative}.horizontal-state-label{display:inline-block;overflow:hidden;text-overflow:ellipsis;min-width:36px;vertical-align:middle;padding:16px 0 0;text-align:center;width:100%;word-wrap:break-word}.horizontal-line{position:relative;top:36px;border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:12px}.horizontal-step{flex:auto;display:flex}.stepper-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:100%}.stepper-tooltip-text{color:#fff;padding:10px 15px}.stepper-min-height{border-radius:10px;min-height:70px;background-color:#f9f9f9}.stepper-arrow-text{font-weight:500;font-size:16px;letter-spacing:-.2;line-height:24px;color:#333;cursor:pointer}.stepper-disabled{cursor:unset!important}']}]}],n.ctorParameters=function(){return[{type:t.ElementRef}]},n}(n.AbstractEnumerationStepperFieldComponent),Ce=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-enumeration-icon-field",template:'<div>\n <div *ngFor="let option of enumerationField.choices; let i = index">\n <div class="enum-icon-item enum-icon-item-row" (click)="setEnumValue(option.key)" [ngClass]="{\'enum-icon-item-active\': isSelected(option.key)}">\n <mat-icon *ngIf="resolveIconType(option.key) === \'material\'">{{resolveIconValue(option.key)}}</mat-icon>\n <mat-icon *ngIf="resolveIconType(option.key) === \'svg\'" [svgIcon]="resolveIconValue(option.key)"></mat-icon>\n <span fxFlex class="enum-icon-text">{{option.value}}</span>\n <mat-icon *ngIf="resolveArrow(option.key)">arrow_forward</mat-icon>\n </div>\n <mat-divider class="enum-icon-divider" *ngIf="i !== enumerationField.choices.length - 1 && resolveDivider(option.key)"></mat-divider>\n </div>\n</div>\n\n',styles:[".enum-icon-item{font-size:18px;font-family:Asap,sans-serif;font-weight:500;line-height:24px;letter-spacing:-.2px;text-align:left;color:#333;text-decoration:none;padding:25px 0}.enum-icon-item-row:hover{cursor:pointer}.enum-icon-item-row:focus,.enum-icon-item:focus{outline:0}.enum-icon-divider{position:relative!important}.enum-icon-text{padding:0 16px}"]}]}],n.ctorParameters=function(){return[]},n}(n.AbstractEnumerationIconFieldComponent),Se=function(e){function n(t){var n=e.call(this,t)||this;return n._translate=t,n}return T(n,e),n.ctorParameters=function(){return[{type:r.TranslateService}]},n.decorators=[{type:t.Component,args:[{selector:"nc-enumeration-autocomplete-dynamic-field",template:'<mat-form-field [appearance]="enumerationField.materialAppearance" class="full-width" color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{enumerationField.title}}</mat-label>\n <input type="text"\n aria-label="Autocomplete"\n matInput\n #input\n [placeholder]="enumerationField.placeholder"\n [formControl]="formControlRef"\n [matAutocomplete]="auto"\n (keyup)="change()">\n <mat-spinner *ngIf="enumerationField.loading" matSuffix diameter="30"></mat-spinner>\n <mat-autocomplete [displayWith]="renderSelection" autoActiveFirstOption #auto="matAutocomplete">\n\n <mat-option disabled *ngIf="(filteredOptions | async)?.length === 0 && !enumerationField.loading && enumerationField.value && enumerationField.value.length > 0" fxLayoutAlign="center center">\n {{ \'dataField.dynamicEnum.noData\' | translate }}\n </mat-option>\n\n <ng-container *ngIf="!enumerationField.loading">\n <mat-option *ngFor="let option of filteredOptions | async" [value]="option.key" (click)="change()">\n {{option.value}}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n <mat-hint>{{enumerationField.description}}</mat-hint>\n <mat-error *ngIf="enumerationField.isInvalid(formControlRef)">{{buildErrorMessage()}}</mat-error>\n</mat-form-field>\n\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],n.ctorParameters=function(){return[{type:r.TranslateService}]},n}(n.AbstractEnumerationAutocompleteDynamicFieldComponent);function Ae(e){return{filter:n.SimpleFilter.empty(e.filterMetadata.filterType)}}function Fe(e,t){return e.createFromArray(t.allowedNets)}function Le(e,t){return t.filterMetadata.searchCategories.map((function(t){return e.toClass(t)}))}var Ie=function(e){function a(t,n){return e.call(this,t,n)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.FilterField,decorators:[{type:t.Inject,args:[n.NAE_FILTER_FIELD]}]},{type:n.SearchService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-filter-field-content",template:'<nc-advanced-search *ngIf="filterLoaded" [editable]="editable"></nc-advanced-search>\n',providers:[{provide:n.NAE_BASE_FILTER,useFactory:Ae,deps:[n.NAE_FILTER_FIELD]},{provide:n.AllowedNetsService,useFactory:Fe,deps:[n.AllowedNetsServiceFactory,n.NAE_FILTER_FIELD]},n.CategoryFactory,{provide:n.NAE_SEARCH_CATEGORIES,useFactory:Le,deps:[n.CategoryResolverService,n.NAE_FILTER_FIELD]},n.SearchService],styles:[""]}]}],a.ctorParameters=function(){return[{type:n.FilterField,decorators:[{type:t.Inject,args:[n.NAE_FILTER_FIELD]}]},{type:n.SearchService}]},a}(n.AbstractFilterFieldContentComponent),Te=function(e){function a(t,n){return e.call(this,t,n)||this}return T(a,e),a.prototype.getFilterContentComponent=function(){return Ie},a.ctorParameters=function(){return[{type:t.Injector},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-filter-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="filterFieldTemplate"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #filterFieldTemplate let-showLargeLayout="showLargeLayout">\n \x3c!-- TODO: title based on large layout --\x3e\n <ng-template [ngIf]="initialized">\n <ng-template [cdkPortalOutlet]="portal"></ng-template>\n </ng-template>\n \x3c!-- TODO: description? --\x3e\n</ng-template>\n',styles:[""]}]}],a.ctorParameters=function(){return[{type:t.Injector},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractFilterFieldComponent),ke=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-search-clause",template:'<div class="clause-body clause-body-color">\n <div fxLayout="row wrap" fxLayoutAlign="start center">\n <div *ngFor="let item of getPredicateMap() | keyvalue; trackBy: trackByPredicates; first as first" fxLayout="row" fxLayoutAlign="start center">\n <div *ngIf="!first" class="bool-operator-margin">{{\'search.or\' | translate | uppercase}}</div>\n <nc-search-predicate [predicate]="item.value.wrappedPredicate" [predicateId]="item.key"\n [remove$]="removeChild$" [generator]="item.value.generator" [editable]="editable"></nc-search-predicate>\n </div>\n <button *ngIf="editable" mat-stroked-button (click)="addChildPredicate()" class="bool-operator-button">+ {{\'search.or\' | translate | uppercase}}</button>\n </div>\n</div>\n',styles:[".clause-body{border-radius:4px;padding:4px 6px}.bool-operator-margin{margin-left:8px;margin-right:8px}.bool-operator-button{margin-left:4px}"]}]}],n.ctorParameters=function(){return[]},n}(n.AbstractSearchClauseComponent),Ee=function(e){function a(t,n,a,r){return e.call(this,t,n,a,r)||this}return T(a,e),a.ctorParameters=function(){return[{type:Array,decorators:[{type:t.Inject,args:[n.NAE_SEARCH_CATEGORIES]}]},{type:n.LoggerService},{type:n.AdvancedSearchComponentInitializationService},{type:n.CategoryFactory}]},a.decorators=[{type:t.Component,args:[{selector:"nc-search-predicate",template:'<div class="predicate-body" fxLayout="row" fxLayoutAlign="start center"\n [ngClass]="!!selectedCategory && selectedCategory.providesPredicate ? \'predicate-body-color\' : \'white-background\'">\n <div *ngIf="editable" fxLayout="row" fxLayoutAlign="center center">\n <button mat-icon-button color="warn" (click)="remove()" class="smaller-button">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n\n <div *ngIf="!selectedCategory; then categorySelection else categoryDisplay"></div>\n <ng-template #categorySelection>\n <mat-form-field class="text-margin" appearance="outline">\n <mat-label>{{\'search.category.select\' | translate}}</mat-label>\n <mat-select (selectionChange)="categoryChanged($event.value)" #categoryInput [disabled]="!editable">\n <mat-option *ngFor="let category of searchCategories"\n [value]="category">{{category.translationPath | translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-template>\n <ng-template #categoryDisplay>\n <div fxLayout="row" fxLayoutAlign="start center" class="text-margin"\n [ngClass]="{\'bold-text\': selectedCategory.displayBold}"\n (click)="clearCategorySelection()">\n {{selectedCategory.translationPath | translate}}\n </div>\n </ng-template>\n\n <div *ngIf="selectedCategory" fxLayout="row" fxLayoutAlign="start center">\n <ng-template ngFor let-configurationInput [ngForOf]="selectedCategory.configurationInputs$ | async">\n <nc-search-configuration-input [configuration]="configurationInput" [selectedCategory]="selectedCategory"\n [editable]="editable"></nc-search-configuration-input>\n </ng-template>\n </div>\n</div>\n',styles:[".predicate-body{border-radius:4px;padding-right:4px;margin-top:2px;margin-bottom:2px;min-height:32px}.smaller-button{width:32px;height:32px;line-height:32px;margin-right:-4px}.bold-text{font-weight:700}.text-margin{margin-left:4px}.white-background{background:#fafafa}::ng-deep .mat-form-field-wrapper{margin:0;padding-bottom:0}"]}]}],a.ctorParameters=function(){return[{type:Array,decorators:[{type:t.Inject,args:[n.NAE_SEARCH_CATEGORIES]}]},{type:n.LoggerService},{type:n.AdvancedSearchComponentInitializationService},{type:n.CategoryFactory}]},a}(n.AbstractSearchPredicateComponent),_e=n.DATE_TIME_FORMAT,Me=function(e){function a(){var t=e.call(this)||this;return t.searchInputType=n.SearchInputType,t.dateFormat=n.DATE_FORMAT_STRING,t.dateTimeFormat=n.DATE_TIME_FORMAT_STRING,t}return T(a,e),a.decorators=[{type:t.Component,args:[{selector:"nc-search-operand-input",template:'<div *ngIf="!isInputFilled; then operandSelection else operandDisplay"></div>\n\n<ng-template #operandSelection>\n <div [ngSwitch]="inputType">\n <ng-template [ngSwitchCase]="searchInputType.TEXT">\n <mat-form-field appearance="outline">\n <input type="text" matInput autocomplete="off"\n [formControl]="inputFormControl"\n [disabled]="!editable"\n (keydown.enter)="$event.target.blur()"\n (blur)="confirmInput()"\n #operandInput>\n </mat-form-field>\n </ng-template>\n\n <ng-template [ngSwitchCase]="searchInputType.AUTOCOMPLETE">\n <mat-form-field appearance="outline">\n <input type="text" matInput autocomplete="off"\n #autocompleteInput\n #autocompleteTrigger="matAutocompleteTrigger"\n [formControl]="inputFormControl"\n [matAutocomplete]="searchAutocomplete"\n [disabled]="!editable"\n (keydown.enter)="$event.target.blur(); autocompleteTrigger.closePanel()"\n (focus)="editInput()"\n #operandInput>\n <mat-autocomplete #searchAutocomplete="matAutocomplete"\n [displayWith]="renderSelection"\n (optionSelected)="autocompleteInput.blur()">\n <mat-option *ngFor="let option of filteredOptions$ | async" [value]="option">\n <mat-icon *ngIf="option.icon">{{option.icon}}</mat-icon>\n <span>{{option.text | translate}}</span>\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </ng-template>\n\n <ng-template [ngSwitchCase]="searchInputType.DATE">\n <mat-form-field appearance="outline">\n <input matInput autocomplete="off"\n [formControl]="inputFormControl"\n [matDatepicker]="searchDatepicker"\n [disabled]="!editable"\n (keydown.enter)="searchDatepicker.close()"\n (focus)="editInput(); searchDatepicker.open()"\n (blur)="confirmInput()"\n #operandInput>\n <mat-datepicker-toggle matPrefix [for]="searchDatepicker"></mat-datepicker-toggle>\n <mat-datepicker #searchDatepicker></mat-datepicker>\n </mat-form-field>\n </ng-template>\n\n <ng-template [ngSwitchCase]="searchInputType.DATE_TIME">\n <mat-form-field appearance="outline">\n <input matInput autocomplete="off"\n [formControl]="inputFormControl"\n [ngxMatDatetimePicker]="searchDateTimepicker"\n [disabled]="!editable"\n (keydown.enter)="searchDateTimepicker.close()"\n (focus)="editInput(); searchDateTimepicker.open()"\n #operandInput>\n <mat-datepicker-toggle matPrefix [for]="searchDateTimepicker">\n <mat-icon matDatepickerToggleIcon>schedule</mat-icon>\n </mat-datepicker-toggle>\n <ngx-mat-datetime-picker #searchDateTimepicker\n [showSpinners]="true"\n [showSeconds]="false"\n [stepHour]="1"\n [stepMinute]="5"\n [color]="\'primary\'"\n [enableMeridian]="false"\n (closed)="confirmInput()"></ngx-mat-datetime-picker>\n </mat-form-field>\n </ng-template>\n\n <ng-template [ngSwitchCase]="searchInputType.NUMBER">\n <mat-form-field appearance="outline">\n <input type="number" matInput autocomplete="off"\n [formControl]="inputFormControl"\n [disabled]="!editable"\n (keydown.enter)="$event.target.blur()"\n (focus)="editInput()"\n (blur)="confirmInput()"\n #operandInput>\n </mat-form-field>\n </ng-template>\n\n <ng-template [ngSwitchCase]="searchInputType.BOOLEAN">\n <div fxLayout="row">\n <mat-slide-toggle [formControl]="inputFormControl"\n [disabled]="!editable"\n (focus)="editInput()"\n (toggleChange)="confirmInput()"></mat-slide-toggle>\n </div>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #operandDisplay>\n <div [ngSwitch]="inputType" (click)="editInput()" class="bold-text">\n <div *ngSwitchCase="searchInputType.AUTOCOMPLETE">\n {{inputFormControl.value.text | translate}}\n </div>\n <div *ngSwitchCase="searchInputType.DATE">\n {{inputFormControl.value.format(dateFormat)}}\n </div>\n <div *ngSwitchCase="searchInputType.DATE_TIME">\n {{inputFormControl.value.format(dateTimeFormat)}}\n </div>\n <div *ngSwitchDefault>\n {{inputFormControl.value}}\n </div>\n </div>\n</ng-template>\n',providers:[{provide:m.NGX_MAT_DATE_FORMATS,useValue:_e}],styles:[".bold-text{font-weight:700}"]}]}],a.ctorParameters=function(){return[]},a}(n.AbstractSearchOperandInputComponent),Ne=function(e){function a(){var t=e.call(this)||this;return t.searchInputType=n.SearchInputType,t.operatorTemplatePartType=n.OperatorTemplatePartType,t}return T(a,e),a.decorators=[{type:t.Component,args:[{selector:"nc-search-configuration-input",template:'<div [ngSwitch]="configuration.type">\n <ng-template [ngSwitchCase]="searchInputType.AUTOCOMPLETE">\n <div *ngIf="!configuration.isOptionSelected; then configurationSelection else configurationDisplay"></div>\n\n <ng-template #configurationSelection>\n <mat-form-field class="text-margin" appearance="outline">\n <mat-label>{{configuration.label | translate}}</mat-label>\n <input type="text" matInput\n #autocompleteInput\n #autocompleteTrigger="matAutocompleteTrigger"\n [formControl]="configuration.formControl"\n [matAutocomplete]="configurationAutocomplete"\n [disabled]="!editable"\n (keydown.enter)="$event.target.blur(); autocompleteTrigger.closePanel()"\n #configurationInput>\n <mat-autocomplete #configurationAutocomplete="matAutocomplete"\n [displayWith]="renderSelection"\n (optionSelected)="autocompleteInput.blur()">\n <mat-option\n *ngFor="let option of configuration.filteredOptions$ | async"\n [value]="option">\n <mat-icon *ngIf="option.icon">{{option.icon}}</mat-icon>\n <span>{{option.text}}</span>\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </ng-template>\n\n <ng-template #configurationDisplay>\n <div class="text-margin"\n [ngClass]="{\'bold-text\': configuration.displayBold}"\n (click)="clearConfigurationInput()">\n {{configuration.selectedOptionTranslatePath | translate}}\n </div>\n </ng-template>\n </ng-template>\n <ng-template [ngSwitchCase]="searchInputType.OPERATOR">\n <div *ngIf="selectedCategory.isOperatorSelected(); then argumentsSelection; else operatorSelection"></div>\n\n <ng-template #operatorSelection>\n <mat-form-field appearance="outline">\n <mat-label>{{configuration.label | translate}}</mat-label>\n <mat-select [formControl]="configuration.formControl" [disabled]="!editable" #configurationInput>\n <mat-option *ngFor="let operator of selectedCategory.allowedOperators" [value]="operator">\n <div fxLayout="row" fxLayoutAlign="start center">\n <ng-template ngFor let-namePart [ngForOf]="operator.getOperatorNameTemplate()" let-last="last">\n <ng-container [ngTemplateOutlet]="namePart ? operatorInputText : operatorInputPlaceholder"\n [ngTemplateOutletContext]="{last:last, namePart:namePart}"></ng-container>\n </ng-template>\n\n <ng-template #operatorInputText let-last="last" let-namePart="namePart">\n <div [ngClass]="{\'argument-right-margin\': !last}">\n {{namePart | translate}}\n </div>\n </ng-template>\n\n <ng-template #operatorInputPlaceholder let-last="last">\n <div class="argument-placeholder-color argument-placeholder-dimensions" [ngClass]="{\'argument-right-margin\': !last}"></div>\n </ng-template>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </ng-template>\n\n <ng-template #argumentsSelection>\n <div fxLayout="row" fxLayoutAlign="start center" (click)="clearOperatorInput()">\n <ng-template ngFor let-templatePart [ngForOf]="selectedCategory.operatorTemplate$ | async"\n [ngForTrackBy]="trackByTemplateParts">\n <div [ngSwitch]="templatePart.type">\n <ng-template [ngSwitchCase]="operatorTemplatePartType.TEXT">\n <div fxLayout="row" fxLayoutAlign="start center"\n class="text-margin">\n {{templatePart.content | translate}}\n </div>\n </ng-template>\n\n <ng-template [ngSwitchCase]="operatorTemplatePartType.INPUT">\n <div class="text-margin"\n (click)="$event.stopPropagation()">\n <nc-search-operand-input [inputFormControl]="templatePart.content"\n [inputType]="selectedCategory.inputType"\n [first]="templatePart.first"\n [filterOptionsFunction]="filterOptions"\n [editable]="editable"></nc-search-operand-input>\n </div>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </ng-template>\n </ng-template>\n</div>\n',styles:[".bold-text{font-weight:700}.text-margin{margin-left:4px}.argument-placeholder-dimensions{height:1.5em;width:6em;border-radius:4px}.argument-right-margin{margin-right:.5em}"]}]}],a.ctorParameters=function(){return[]},a}(n.AbstractSearchConfigurationInputComponent),Pe=function(e){function a(t,n){return e.call(this,t,n)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.SearchService},{type:n.AdvancedSearchComponentInitializationService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-advanced-search",template:'<div fxLayout="row wrap" fxLayoutAlign="start center">\n <div *ngFor="let item of getPredicateMap() | keyvalue; trackBy: trackByPredicates; first as first" fxLayout="row" fxLayoutAlign="start center">\n <div *ngIf="!first" class="bool-operator-margin">{{\'search.and\' | translate | uppercase}}</div>\n <nc-search-clause [predicate]="item.value" [predicateId]="item.key" [remove$]="removeChild$" [editable]="editable"\n class="clause-margin"></nc-search-clause>\n </div>\n <button *ngIf="editable" mat-stroked-button (click)="addChildPredicate()" class="bool-operator-margin">+ {{\'search.and\' | translate | uppercase}}</button>\n</div>\n',providers:[n.AdvancedSearchComponentInitializationService],styles:[".bool-operator-margin{margin-left:8px;margin-right:8px}"]}]}],a.ctorParameters=function(){return[{type:n.SearchService},{type:n.AdvancedSearchComponentInitializationService}]},a}(n.AbstractAdvancedSearchComponent),Oe=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[ke,Ee,Me,Ne,Pe],exports:[ke,Ee,Me,Ne,Pe],imports:[a.CommonModule,n.MaterialModule,n.TranslateLibModule,m.NgxMatDatetimePickerModule]}]}],e}(),Re=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-user-assign-item",template:'<div fxLayout="row" fxLayoutAlign="start center" class="user-item" [ngClass]="{\n \'user-assign-item-selected\': (selectedId$ | async) === user.id\n }">\n <mat-icon class="icon">account_circle</mat-icon>\n <div fxLayout="column">\n <span>{{user.fullName}}</span>\n <span>{{user.email}}</span>\n </div>\n</div>\n',styles:[".user-item{padding:10px 15px;cursor:pointer}.user-item:hover{background-color:rgba(0,0,0,.14);border-radius:2.5px}.icon{margin-right:16px;height:40px;width:40px;font-size:40px}.email-selected,.email-unselected{font-size:.9em}"]}]}],n.ctorParameters=function(){return[]},n}(n.AbstractUserAssignItemComponent),De=function(e){function a(t){var n=e.call(this,t)||this;return n._userListService=t,n}return T(a,e),a.ctorParameters=function(){return[{type:n.UserListService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-user-assign-list",template:'<div fxLayout="column" fxLayoutAlign="start center" fxFlex>\n <ng-container *ngIf="users$ | async as users">\n <div *ngIf="!loading && users.length === 0" fxFlex="100" fxLayout="column" fxLayoutAlign="center center">\n <mat-icon color="accent" class="margin-bottom-default">person_add_disabled</mat-icon>\n <span class="font-size-20">{{ \'side-menu.user.noUser\' | translate }}</span>\n </div>\n\n <div class="full-height full-width" fxFlex="100">\n <cdk-virtual-scroll-viewport itemSize="60" (scrolledIndexChange)="loadNextPage()"\n class="full-height full-width">\n <nc-user-assign-item\n *cdkVirtualFor="let user of users;\n trackBy: trackBy;\n templateCacheSize: 0"\n [user]="user"\n [selectedId$]="selectedUser$"\n (click)="select(user)">\n </nc-user-assign-item>\n\n <div *ngIf="loading" fxLayout="column" fxLayoutAlign="center center"\n class="margin-top-default">\n <mat-spinner color="primary" diameter="40"></mat-spinner>\n </div>\n </cdk-virtual-scroll-viewport>\n </div>\n </ng-container>\n</div>\n',styles:[".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.font-size-20{font-size:20px}.margin-bottom-default{margin-bottom:8px}.margin-top-default{margin-top:8px}"]}]}],a.ctorParameters=function(){return[{type:n.UserListService}]},a}(n.AbstractUserAssignListComponent),Be=ge,Ve=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[ge,Re,De],imports:[a.CommonModule,n.MaterialModule,n.CovalentModule,s.FlexLayoutModule,s.FlexModule,p.FormsModule,n.TranslateLibModule],exports:[ge],entryComponents:[ge],providers:[{provide:n.NAE_USER_ASSIGN_COMPONENT,useValue:Be}]}]}],e}(),ze=function(e){function a(t){return e.call(this,t)||this}return T(a,e),a.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-i18n-field",template:'<nc-data-field-template *ngIf="!dataField.behavior.hidden"\n [dataField]="dataField"\n [dataFieldTemplate]="i18nFieldTemplate"\n [offset]="taskOffset">\n</nc-data-field-template>\n\n<ng-template #i18nFieldTemplate let-showLargeLayout="showLargeLayout">\n <div [ngSwitch]="getType()">\n <nc-i18n-divider-field *ngSwitchCase="\'divider\'" [dividerI18nField]="dataField" [formControlRef]="formControl"\n [showLargeLayout]="showLargeLayout"></nc-i18n-divider-field>\n <nc-i18n-text-field *ngSwitchDefault [textI18nField]="dataField" [formControlRef]="formControl"\n [showLargeLayout]="showLargeLayout"></nc-i18n-text-field>\n </div>\n</ng-template>\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],a.ctorParameters=function(){return[{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_INFORM_ABOUT_INVALID_DATA]}]}]},a}(n.AbstractI18nFieldComponent),Ue=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-i18n-divider-field",template:"<div fxFlex fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <div fxFlex=\"20\" class=\"divider-line\"\n [ngClass]=\"{'primary-background-color': !dividerPropertyEnabled('dividerColor')}\"\n [ngStyle]=\"dividerPropertyEnabled('dividerColor') && {'background': getDividerColor()}\"></div>\n <span [ngClass]=\"{'margin-default': dividerI18nField.value.defaultValue !== ''}\"\n [ngStyle]=\"dividerPropertyEnabled('fontSize') && {'font-size': getDividerFontSize()}\">\n {{dividerI18nField.value.defaultValue}}\n </span>\n <div fxFlex class=\"divider-line\"\n [ngClass]=\"{'primary-background-color': !dividerPropertyEnabled('dividerColor')}\"\n [ngStyle]=\"dividerPropertyEnabled('dividerColor') && {'background': getDividerColor()}\"></div>\n</div>\n",styles:[".divider-line{height:1px}.margin-default{margin-right:8px;margin-left:8px}"]}]}],n.ctorParameters=function(){return[]},n}(n.AbstractI18nDividerFieldComponent),He=function(e){function n(t){return e.call(this,t)||this}return T(n,e),n.ctorParameters=function(){return[{type:r.TranslateService}]},n.decorators=[{type:t.Component,args:[{selector:"nc-i18n-text-field",template:'<ng-template [ngIf]="textI18nField.disabled">\n <ng-template [ngIf]="!isPlainText()">\n <mat-form-field [appearance]="textI18nField.materialAppearance" class="full-width" color="primary">\n <mat-label *ngIf="!showLargeLayout.value">{{textI18nField.title}}</mat-label>\n <input matInput\n [disabled]="true"\n [ngModel]="getTranslation()"\n [placeholder]="textI18nField.placeholder"\n [required]="textI18nField.behavior.required">\n <mat-hint>{{textI18nField.description}}</mat-hint>\n </mat-form-field>\n </ng-template>\n <ng-template [ngIf]="isPlainText()">\n <div class="full-width"\n [ngStyle]="textPropertyEnabled(\'fontSize\') && {\'font-size\': getTextFontSize()}">\n <span [ngStyle]="textPropertyEnabled(\'textColor\') && {\'color\': getTextColor()}">\n {{getTranslation()}}\n </span>\n </div>\n </ng-template>\n</ng-template>\n<ng-template [ngIf]="!textI18nField.disabled">\n <div class="full-width">\n \x3c!-- TODO: add editable view for text component --\x3e\n </div>\n</ng-template>\n',styles:[".full-width{display:block;margin:0 auto;width:100%}"]}]}],n.ctorParameters=function(){return[{type:r.TranslateService}]},n}(n.AbstractI18nTextFieldComponent),je=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[$,W,K,X,Z,J,ee,te,ne,re,oe,ie,le,se,ce,de,pe,me,ue,fe,he,ve,be,ye,xe,ae,xe,we,Ce,Se,Te,Ie,ze,Ue,He],exports:[$,W,K,X,Z,J,re,oe,ie,ce,de,fe,Te,ze],imports:[a.CommonModule,s.FlexLayoutModule,n.MaterialModule,n.CovalentModule,c.AngularResizedEventModule,d.HttpClientModule,p.ReactiveFormsModule,m.NgxMatDatetimePickerModule,u.NgxMatMomentModule,n.TranslateLibModule,Ve,h.QuillModule.forRoot(),f.MatDialogModule,Oe,v.MatProgressSpinnerModule,n.CurrencyModule],providers:[{provide:g.DateAdapter,useClass:n.CustomDateAdapter}],entryComponents:[ae,Ie]}]}],e}(),qe=function(e){function n(t){return e.call(this,t)||this}return T(n,e),n.ctorParameters=function(){return[{type:p.FormBuilder}]},n.decorators=[{type:t.Component,args:[{selector:"nc-email-submission-form",template:'<div fxLayout="column" fxLayoutAlign="start center" fxLayoutGap="24px">\n <form [formGroup]="rootFormGroup" (ngSubmit)="onSubmit()" class="full-width">\n <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="16px">\n <mat-icon color="primary">email</mat-icon>\n <mat-form-field fxFlex="100">\n <input matInput placeholder="{{ \'forms.email.enterEmail\' | translate}}" formControlName="email" required autocomplete="email">\n <mat-error *ngIf="rootFormGroup.controls[\'email\'].hasError(\'email\')">\n {{ \'dataField.validations.email\' | translate}}\n </mat-error>\n </mat-form-field>\n </div>\n <nc-legal-notice *ngIf="displayLegalNotice" [buttonName]="\'dialog.submit\'"></nc-legal-notice>\n <div fxLayout="row" class="margin-top-4">\n <button mat-icon-button fxLayoutAlign="start" (click)="emitGoBack()">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <div fxFlex></div>\n <button fxLayoutAlign="end" mat-raised-button color="primary" fxFlexOffset="8px">{{ \'dialog.submit\' | translate}}</button>\n </div>\n </form>\n</div>\n',styles:[".margin-top-4{margin-top:4px}.full-width{width:100%}"]}]}],n.ctorParameters=function(){return[{type:p.FormBuilder}]},n}(n.AbstractEmailSubmissionFormComponent),Ge=function(e){function a(t,n){var a=e.call(this,t,n)||this;return a._userService=n,a}return T(a,e),a.ctorParameters=function(){return[{type:p.FormBuilder},{type:n.UserService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-login-form",template:'<div fxLayout="column" fxLayoutAlign="start center" fxLayoutGap="8px">\n <form [formGroup]="rootFormGroup" (ngSubmit)="onSubmit()" class="full-width">\n <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="16px">\n <mat-icon color="primary">account_circle</mat-icon>\n <mat-form-field fxFlex="100">\n <input matInput placeholder="{{ \'forms.login.login\' | translate}}" formControlName="login" minlength="4"\n required autocomplete="username">\n <mat-error *ngIf="rootFormGroup.controls[\'login\'].hasError(\'minlength\')">\n {{ \'forms.login.length\' | translate}}\n </mat-error>\n </mat-form-field>\n </div>\n <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="16px">\n <mat-icon color="primary">vpn_key</mat-icon>\n <mat-form-field fxFlex="100">\n <input matInput placeholder="{{ \'forms.login.enterPass\' | translate}}"\n [type]="hidePassword ? \'password\' : \'text\'"\n formControlName="password" required autocomplete="current-password">\n <button mat-icon-button matSuffix type="button"\n (click)="hidePassword = !hidePassword"\n (keypress)="false"\n [attr.aria-label]="\'Hide password\'"\n [attr.aria-pressed]="hidePassword">\n <mat-icon\n [color]="hidePassword ? undefined : \'accent\'">{{hidePassword ? \'visibility_off\' : \'visibility\'}}</mat-icon>\n </button>\n </mat-form-field>\n </div>\n <div fxLayout="row" [fxLayoutAlign]="getButtonsFxLayoutAlign()" fxLayoutAlign.xs="center" class="margin-top-4">\n <button mat-stroked-button type="button" *ngIf="showForgottenPasswordButton && !showSignUpButton" (click)="resetEmit()" color="primary" class="margin-left-40">{{ \'forms.login.reset\' | translate}}</button>\n <button mat-stroked-button type="button" *ngIf="showSignUpButton" (click)="signUpEmit()" color="primary" class="margin-left-40">{{ \'forms.login.sign\' | translate}}</button>\n <button color="primary" type="submit" mat-raised-button fxLayout="row" fxLayoutAlign="center center">\n <mat-spinner *ngIf="loading | async"\n mode="indeterminate"\n diameter="36"\n color="accent"\n fxFlex></mat-spinner>\n <span *ngIf="(loading | async) === false" fxFlex>{{ \'forms.login.loginButton\' | translate}}</span>\n </button>\n </div>\n </form>\n\n <div *ngIf="showSignUpButton && showForgottenPasswordButton" fxLayout="row" class="width-100" fxLayoutAlign="end">\n <button mat-button *ngIf="showForgottenPasswordButton" (click)="resetEmit()" color="primary">{{ \'forms.login.reset\' | translate}}</button>\n </div>\n</div>\n',styles:[".forgotten-password{margin-bottom:10px}.login-form-container a{color:#757575}.login-form-container a:hover{color:rgba(0,0,0,.87);cursor:pointer}.margin-top-2x{margin-top:16px}.margin-right-default{margin-right:8px}.position-relative{position:relative!important}.width-100{width:100%}.margin-top-4{margin-top:4px}.full-width{width:100%}.margin-left-40{margin-left:40px}"]}]}],a.ctorParameters=function(){return[{type:p.FormBuilder},{type:n.UserService}]},a}(n.AbstractLoginFormComponent),$e=function(e){function a(t,n,a,r){return e.call(this,t,n,a,r)||this}return T(a,e),a.ctorParameters=function(){return[{type:p.FormBuilder},{type:n.SignUpService},{type:n.LoggerService},{type:r.TranslateService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-registration-form",template:'<div fxLayout="column" fxLayoutGap="24px" *ngIf="tokenVerified && (loadingToken | async) === false">\n <form [formGroup]="rootFormGroup" (ngSubmit)="onSubmit()" class="full-width">\n <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="16px">\n <mat-icon color="primary">email</mat-icon>\n <mat-form-field fxFlex="100">\n <input matInput placeholder="{{ \'forms.register.email\' | translate}}" disabled [value]="userEmail" autocomplete="username">\n </mat-form-field>\n </div>\n <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="16px">\n <mat-icon color="primary">account_circle</mat-icon>\n <mat-form-field fxFlex="100">\n <input matInput placeholder="{{ \'forms.register.name\' | translate }}" formControlName="name" required autocomplete="given-name">\n <mat-error *ngIf="!isFieldValid(\'name\')">{{getErrorMessage(\'name\')}}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="16px">\n <mat-icon color="primary">account_circle_outline</mat-icon>\n <mat-form-field fxFlex="100">\n <input matInput placeholder="{{ \'forms.register.surname\' | translate }}" formControlName="surname" required autocomplete="family-name">\n <mat-error *ngIf="!isFieldValid(\'surname\')">{{getErrorMessage(\'surname\')}}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="16px">\n <mat-icon color="primary">vpn_key</mat-icon>\n <mat-form-field fxFlex="100">\n <input matInput placeholder="{{ \'forms.login.enterPass\' | translate }}"\n [type]="hidePassword ? \'password\' : \'text\'"\n formControlName="password" required autocomplete="new-password">\n <button mat-icon-button matSuffix type="button"\n (click)="hidePassword = !hidePassword"\n (keypress)="false"\n [attr.aria-label]="\'Hide password\'"\n [attr.aria-pressed]="hidePassword">\n <mat-icon\n [color]="hidePassword ? undefined : \'accent\'">{{hidePassword ? \'visibility_off\' : \'visibility\'}}</mat-icon>\n </button>\n <mat-error *ngIf="!isFieldValid(\'password\')">{{getErrorMessage(\'password\')}}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="16px">\n <mat-icon color="primary">vpn_key</mat-icon>\n <mat-form-field fxFlex="100">\n <input matInput placeholder="{{ \'forms.register.repeatPass\' | translate }}"\n [type]="hideRepeatPassword ? \'password\' : \'text\'"\n formControlName="confirmPassword" required autocomplete="new-password">\n <button mat-icon-button matSuffix type="button"\n (click)="hideRepeatPassword = !hideRepeatPassword"\n (keypress)="false"\n [attr.aria-label]="\'Hide password\'"\n [attr.aria-pressed]="hideRepeatPassword">\n <mat-icon\n [color]="hideRepeatPassword ? undefined : \'accent\'">{{hideRepeatPassword ? \'visibility_off\' : \'visibility\'}}</mat-icon>\n </button>\n <mat-error *ngIf="!isFieldValid(\'confirmPassword\')">{{getErrorMessage(\'confirmPassword\')}}</mat-error>\n </mat-form-field>\n </div>\n <nc-legal-notice *ngIf="displayLegalNotice" [buttonName]="\'forms.register.register\'"></nc-legal-notice>\n <div fxLayout="row" fxLayoutAlign="end" fxLayoutAlign.xs="center" class="margin-top-4">\n <button fxFlexOffset="8px" fxFlexOffset.xs="0" mat-raised-button class="register-button" color="primary">\n {{ \'forms.register.register\' | translate }}\n </button>\n </div>\n </form>\n</div>\n\n<div *ngIf="!tokenVerified && (loadingToken | async) === false" fxLayout="column" fxLayoutAlign="center center" fxFlex>\n <mat-icon color="accent">unpublished</mat-icon>\n <span class="font-size-20">{{ \'forms.register.notVerified\' | translate}}</span>\n</div>\n\n<div *ngIf="loadingToken | async">\n <mat-progress-spinner></mat-progress-spinner>\n</div>\n',styles:[".font-size-20{font-size:20px}.margin-top-4{margin-top:4px}.full-width{width:100%}"]}]}],a.ctorParameters=function(){return[{type:p.FormBuilder},{type:n.SignUpService},{type:n.LoggerService},{type:r.TranslateService}]},a}(n.AbstractRegistrationFormComponent),We=function(e){function a(t,n,a,r){return e.call(this,t,n,a,r)||this}return T(a,e),a.ctorParameters=function(){return[{type:p.FormBuilder},{type:n.SignUpService},{type:n.LoggerService},{type:r.TranslateService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-forgotten-password-form",template:'<div fxLayout="column" fxLayoutGap="24px" *ngIf="tokenVerified && (loadingToken | async) === false">\n <form [formGroup]="rootFormGroup" (ngSubmit)="onSubmit()" class="full-width">\n <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="16px">\n <mat-icon color="primary">email</mat-icon>\n <mat-form-field fxFlex="100">\n <input matInput placeholder="{{ \'forms.register.email\' | translate}}" disabled [value]="userEmail" autocomplete="username">\n </mat-form-field>\n </div>\n <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="16px">\n <mat-icon color="primary">vpn_key</mat-icon>\n <mat-form-field fxFlex="100">\n <input matInput placeholder="{{ \'forms.forgottenPass.enterNewPass\' | translate }}"\n [type]="hidePassword ? \'password\' : \'text\'"\n formControlName="password" required autocomplete="new-password">\n <button mat-icon-button matSuffix type="button"\n (click)="hidePassword = !hidePassword"\n (keypress)="false"\n [attr.aria-label]="\'Hide password\'"\n [attr.aria-pressed]="hidePassword">\n <mat-icon\n [color]="hidePassword ? undefined : \'accent\'">{{hidePassword ? \'visibility_off\' : \'visibility\'}}</mat-icon>\n </button>\n <mat-error *ngIf="!isFieldValid(\'password\')">{{getErrorMessage(\'password\')}}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="16px">\n <mat-icon color="primary">vpn_key</mat-icon>\n <mat-form-field fxFlex="100">\n <input matInput placeholder="{{ \'forms.forgottenPass.repeatNewPass\' | translate }}"\n [type]="hideRepeatPassword ? \'password\' : \'text\'"\n formControlName="confirmPassword" required autocomplete="new-password">\n <button mat-icon-button matSuffix type="button"\n (click)="hideRepeatPassword = !hideRepeatPassword"\n (keypress)="false"\n [attr.aria-label]="\'Hide password\'"\n [attr.aria-pressed]="hideRepeatPassword">\n <mat-icon\n [color]="hideRepeatPassword ? undefined : \'accent\'">{{hideRepeatPassword ? \'visibility_off\' : \'visibility\'}}</mat-icon>\n </button>\n <mat-error *ngIf="!isFieldValid(\'confirmPassword\')">{{getErrorMessage(\'confirmPassword\')}}</mat-error>\n </mat-form-field>\n </div>\n <div fxLayout="row" fxLayoutAlign="end" fxLayoutAlign.xs="center" class="margin-top-4">\n <button fxFlexOffset="8px" fxFlexOffset.xs="0" mat-raised-button class="register-button" color="primary">\n {{ \'forms.forgottenPass.recover\' | translate }}\n </button>\n </div>\n </form>\n</div>\n\n<div *ngIf="!tokenVerified && (loadingToken | async) === false" fxLayout="column" fxLayoutAlign="center center" fxFlex>\n <mat-icon color="accent">unpublished</mat-icon>\n <span class="font-size-20">{{ \'forms.register.notVerified\' | translate}}</span>\n</div>\n\n<div *ngIf="loadingToken | async">\n <mat-progress-spinner></mat-progress-spinner>\n</div>\n',styles:[".font-size-20{font-size:20px}.margin-top-4{margin-top:4px}.full-width{width:100%}"]}]}],a.ctorParameters=function(){return[{type:p.FormBuilder},{type:n.SignUpService},{type:n.LoggerService},{type:r.TranslateService}]},a}(n.AbstractForgottenPasswordComponent),Ke=function(e){function a(t){return e.call(this,t)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.ConfigurationService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-legal-notice",template:"<div class=\"text-style\">\n {{'legal.byClicking' | translate:{'buttonName': (buttonName | translate)} }}\n {{'legal.youIndicate' | translate}}\n <a [href]=\"termsOfServiceLink\" [target]=\"'blank'\">{{'legal.termsOfService' | translate}}</a>\n {{'legal.and' | translate}}\n <a [href]=\"privacyPolicyLink\" [target]=\"'blank'\">{{'legal.privacyNotice' | translate}}</a>\n {{'legal.sentenceEnd' | translate}}\n</div>\n",styles:[".text-style{font-size:small;text-align:justify;margin:8px 4px}"]}]}],a.ctorParameters=function(){return[{type:n.ConfigurationService}]},a}(n.AbstractLegalNoticeComponent),Qe=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[Ke],imports:[a.CommonModule,n.TranslateLibModule],exports:[Ke]}]}],e}(),Xe=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[qe],exports:[qe],imports:[a.CommonModule,n.MaterialModule,s.FlexLayoutModule,p.ReactiveFormsModule,n.TranslateLibModule,Qe]}]}],e}(),Ye=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[Ge],exports:[Ge],imports:[a.CommonModule,n.MaterialModule,s.FlexLayoutModule,p.ReactiveFormsModule,n.TranslateLibModule]}]}],e}(),Ze=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[$e],exports:[$e],imports:[a.CommonModule,n.MaterialModule,s.FlexLayoutModule,p.ReactiveFormsModule,n.TranslateLibModule,Qe]}]}],e}(),Je=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[We],exports:[We],imports:[a.CommonModule,n.MaterialModule,s.FlexLayoutModule,p.ReactiveFormsModule,n.TranslateLibModule]}]}],e}(),et=function(e){function a(t,n,a){var r=e.call(this,t,n,a)||this;return r._injector=t,r._translate=n,r.overflowService=a,r}return T(a,e),a.ctorParameters=function(){return[{type:t.Injector},{type:r.TranslateService},{type:n.OverflowService,decorators:[{type:t.Optional}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-header",template:'<mat-card [ngClass]="{\'padding-custom\': headerService.headerState.mode === headerModeEnum.SORT}">\n <div fxLayout="row">\n <div fxLayout="row" fxFlex="95" class="header-content-container flex-95" fxLayoutAlign="start center"\n [ngSwitch]="headerService.headerState.mode" *ngIf="!headerService.loading.isActive">\n <div *ngSwitchCase="headerModeEnum.SORT" fxFlex="100" fxLayout="row">\n <nc-sort-mode fxFlex="100" [headerService]="headerService" [overflowWidth]="getMinWidth()"></nc-sort-mode>\n </div>\n <div *ngSwitchCase="headerModeEnum.SEARCH" fxFlex="100" fxLayout="row">\n <nc-search-mode fxFlex="100" [headerService]="headerService" [overflowWidth]="getMinWidth()"></nc-search-mode>\n </div>\n <div *ngSwitchCase="headerModeEnum.EDIT" fxFlex="100" fxLayout="row">\n <nc-edit-mode fxFlex="100" [headerService]="headerService" [overflowWidth]="getMinWidth()"></nc-edit-mode>\n </div>\n </div>\n <div fxLayout="row" fxFlex="95" class="header-content-container" fxLayoutAlign="start center"\n *ngIf="headerService.loading.isActive">\n <div fxFlex="100" fxLayout="row">\n <nc-loading-mode fxFlex="100" [headerService]="headerService" [overflowWidth]="getMinWidth()"></nc-loading-mode>\n </div>\n </div>\n <div fxLayout="row" fxLayoutAlign="end center" fxFlex="5" class="flex-5">\n <div *ngIf="!hideEditMode">\n <button mat-icon-button [matMenuTriggerFor]="headerMenu">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #headerMenu="matMenu">\n <div *ngIf="headerService.headerState.mode !== headerModeEnum.EDIT">\n <button mat-menu-item\n [ngClass]="{\'active-header-item\': headerService.headerState.mode === headerModeEnum.SORT}"\n (click)="headerService.changeMode(headerModeEnum.SORT, false)">\n <mat-icon>sort</mat-icon>\n {{ \'headers.orderMode\' | translate}}\n </button>\n <button *ngIf="type === headerTypeEnum.CASE" mat-menu-item\n [ngClass]="{\'active-header-item\': headerService.headerState.mode === headerModeEnum.SEARCH}"\n (click)="headerService.changeMode(headerModeEnum.SEARCH, false)">\n <mat-icon>search</mat-icon>\n {{ \'headers.searchMode\' | translate}}\n </button>\n <button mat-menu-item (click)="headerService.changeMode(headerModeEnum.EDIT)">\n <mat-icon>edit</mat-icon>\n {{ \'headers.editMode\' | translate}}\n </button>\n </div>\n <div *ngIf="headerService.headerState.mode === headerModeEnum.EDIT">\n <button mat-menu-item (click)="confirmEditMode()">\n <mat-icon color="primary">done</mat-icon>\n {{ \'dialog.submit\' | translate}}\n </button>\n <button mat-menu-item (click)="headerService.revertEditMode()">\n <mat-icon color="warn">close</mat-icon>\n {{ \'tasks.view.cancel\' | translate}}\n </button>\n <div class="mat-menu-item-look" *ngIf="canOverflow">\n <mat-slide-toggle [formControl]="overflowControl">{{ \'headers.overflowMode\' | translate}}</mat-slide-toggle>\n </div>\n <div class="mat-menu-item-look mat-menu-item-height" (click)="clickStop($event)" *ngIf="canOverflow && overflowControl.value">\n <mat-form-field appearance="outline">\n <mat-label>{{ \'headers.columnWidth\' | translate}}</mat-label>\n <input matInput type="number" [formControl]="columnWidthControl">\n <mat-error *ngIf="!columnWidthControl.valid">{{getErrorMessageWidth()}}</mat-error>\n </mat-form-field>\n </div>\n <div class="mat-menu-item-look mat-menu-item-height" (click)="clickStop($event)" *ngIf="canOverflow && overflowControl.value">\n <mat-form-field appearance="outline">\n <mat-label>{{ \'headers.columnCount\' | translate}}</mat-label>\n <input matInput type="number" [formControl]="columnCountControl">\n <mat-error *ngIf="!columnCountControl.valid">{{getErrorMessageCount()}}</mat-error>\n </mat-form-field>\n </div>\n </div>\n </mat-menu>\n </div>\n </div>\n </div>\n</mat-card>\n',providers:[n.CaseHeaderService,n.TaskHeaderService,n.WorkflowHeaderService,n.HeaderSearchService,n.CategoryFactory],styles:[".header-content-container{height:40px}.padding-custom{padding:8px 16px}.flex-95{flex:1 1 95%}.flex-5{flex:1 1 5%}.mat-menu-item-look{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;font-size:14px}.mat-menu-item-height{min-height:64px;height:auto}"]}]}],a.ctorParameters=function(){return[{type:t.Injector},{type:r.TranslateService},{type:n.OverflowService,decorators:[{type:t.Optional}]}]},a}(n.AbstractHeaderComponent),tt=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-sort-mode",template:'<div matSort (matSortChange)="sortHeaderChanged($event)" fxFlex="100" fxLayout="row" fxLayoutAlign=" center">\n <div [ngStyle]="{\'min-width\': getMinWidth()}" *ngFor="let header of headerService.headerState.selectedHeaders$ | async; let i = index" fxFlex\n [fxHide.lt-xl]="i >= 4 && this.headerService.responsiveHeaders"\n [fxHide.lt-lg]="i >= 3 && this.headerService.responsiveHeaders"\n [fxHide.lt-md]="i >= 2 && this.headerService.responsiveHeaders"\n [fxHide.lt-sm]="i >= 1 && this.headerService.responsiveHeaders">\n <div *ngIf="!!header; then thenBlock else elseBlock" fxFlex></div>\n <ng-template #thenBlock>\n <span fxFlex\n mat-sort-header="{{i}}-{{header.uniqueId}}">\n {{ header.title | translate}}\n </span>\n </ng-template>\n <ng-template #elseBlock>\n <div fxFlex></div>\n </ng-template>\n </div>\n</div>\n',styles:[""]}]}],n.ctorParameters=function(){return[]},n}(n.AbstractSortModeComponent),nt=function(e){function a(t,n){var a=e.call(this,t,n)||this;return a._translate=t,a.loggerService=n,a}return T(a,e),a.ctorParameters=function(){return[{type:r.TranslateService},{type:n.LoggerService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-edit-mode",template:'<div fxLayout="row" fxFlex="100" fxLayoutAlign="start center">\n <mat-form-field *ngFor="let header of this.headerService.selectedHeaders$ | async; let i = index" fxLayout="row"\n fxLayoutAlign=" center" fxFlex [ngStyle]="{\'min-width\': getMinWidth()}"\n [fxHide.lt-xl]="i >= 4 && this.headerService.responsiveHeaders"\n [fxHide.lt-lg]="i >= 3 && this.headerService.responsiveHeaders"\n [fxHide.lt-md]="i >= 2 && this.headerService.responsiveHeaders"\n [fxHide.lt-sm]="i >= 1 && this.headerService.responsiveHeaders">\n <mat-label *ngIf="!header">{{ \'headers.newHeader\' | translate}}</mat-label>\n <input type="text"\n aria-label="Autocomplete"\n matInput\n [formControl]="formControls[i]"\n [matAutocomplete]="auto">\n <mat-autocomplete autoActiveFirstOption #auto="matAutocomplete" [displayWith]="renderSelection"\n (optionSelected)="headerColumnSelected(i, $event.option.value)" fxFlex>\n <mat-optgroup *ngFor="let group of this.filterOptions[i] | async" [label]="group.groupTitle">\n <mat-option *ngFor="let field of group.fields" [value]="field">\n {{field.title | translate}}\n </mat-option>\n </mat-optgroup>\n </mat-autocomplete>\n </mat-form-field>\n</div>\n',styles:[""]}]}],a.ctorParameters=function(){return[{type:r.TranslateService},{type:n.LoggerService}]},a}(n.AbstractEditModeComponent),at=n.DATE_FORMAT,rt=n.DATE_TIME_FORMAT,ot=function(e){function a(t){var n=e.call(this,t)||this;return n._sideMenuService=t,n}return T(a,e),a.prototype.selectUser=function(e){this.selectAbstractUser(e,ge)},a.ctorParameters=function(){return[{type:n.SideMenuService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-search-mode",template:'<div fxFlex="100" fxLayout="row" fxLayoutAlign=" center">\n <div *ngFor="let header of this.headerService.selectedHeaders$ | async; let i = index"\n [fxHide.lt-xl]="i >= 4 && this.headerService.responsiveHeaders"\n [fxHide.lt-lg]="i >= 3 && this.headerService.responsiveHeaders"\n [fxHide.lt-md]="i >= 2 && this.headerService.responsiveHeaders"\n [fxHide.lt-sm]="i >= 1 && this.headerService.responsiveHeaders" fxFlex [ngStyle]="{\'min-width\': getMinWidth()}">\n <div\n *ngIf="!!header && header.fieldType !== \'button\'; then thenBlock else elseBlock"\n fxFlex></div>\n <ng-template #thenBlock>\n <div fxLayout="row" fxLayoutAlign=" center" fxFlex [ngSwitch]="header.fieldType">\n <mat-form-field fxLayout="row" fxLayoutAlign=" center" fxFlex *ngSwitchCase="\'date\'">\n <mat-label>{{header.title | translate}}</mat-label>\n <input matInput autocomplete="off"\n [matDatepicker]="datepicker"\n [formControl]="formControls[i]"\n [placeholder]="\'headers.date\' | translate"\n (click)="datepicker.open()"\n (keydown.enter)="datepicker.close()">\n <mat-datepicker-toggle matPrefix [for]="datepicker"></mat-datepicker-toggle>\n <mat-datepicker #datepicker></mat-datepicker>\n </mat-form-field>\n <mat-form-field fxLayout="row" fxLayoutAlign=" center" fxFlex *ngSwitchCase="\'dateTime\'">\n <mat-label>{{header.title | translate}}</mat-label>\n <input matInput autocomplete="off"\n [ngxMatDatetimePicker]="datetimepicker"\n [formControl]="formControls[i]"\n [placeholder]="\'headers.dateTime\' | translate"\n (click)="datetimepicker.open()"\n (keydown.enter)="datetimepicker.close()">\n <mat-datepicker-toggle matPrefix [for]="datetimepicker"></mat-datepicker-toggle>\n <ngx-mat-datetime-picker #datetimepicker\n [showSpinners]="true"\n [showSeconds]="false"\n [stepHour]="1"\n [stepMinute]="5"\n [color]="\'primary\'"\n [enableMeridian]="false">\n </ngx-mat-datetime-picker>\n </mat-form-field>\n <mat-form-field fxLayout="row" fxLayoutAlign=" center" fxFlex *ngSwitchCase="\'number\'">\n <mat-label>{{header.title | translate}}</mat-label>\n <input matInput type="number" [formControl]="formControls[i]">\n </mat-form-field>\n <div fxLayout="row" fxLayoutAlign="center center" *ngSwitchCase="\'boolean\'">\n <mat-slide-toggle color="primary" [formControl]="formControls[i]">\n {{header.title | translate}}\n </mat-slide-toggle>\n </div>\n <div fxLayout="column" fxLayoutAlign="center start" *ngSwitchCase="\'user\'">\n <mat-label>{{header.title | translate}}</mat-label>\n <button mat-stroked-button\n color="primary"\n (click)="selectUser(i)">\n <mat-icon>person_search</mat-icon>\n {{formControls[i].value ? formControls[i].value.fullName : (\'headers.selectUser\' | translate)}}\n </button>\n </div>\n <mat-form-field fxLayout="row" fxLayoutAlign=" center" fxFlex *ngSwitchDefault>\n <mat-label>{{header.title | translate}}</mat-label>\n <input matInput [formControl]="formControls[i]">\n </mat-form-field>\n </div>\n </ng-template>\n\n <ng-template #elseBlock>\n <div fxFlex></div>\n </ng-template>\n </div>\n</div>\n',providers:[{provide:g.MAT_DATE_FORMATS,useValue:at},{provide:m.NGX_MAT_DATE_FORMATS,useValue:rt}],styles:[""]}]}],a.ctorParameters=function(){return[{type:n.SideMenuService}]},a}(n.AbstractSearchModeComponent),it=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-loading-mode",template:'<div fxFlex="100" fxLayout="row" fxLayoutAlign=" center">\n <div *ngFor="let header of headerService.headerState.selectedHeaders$ | async; let i = index" fxFlex\n [fxHide.lt-xl]="i >= 4"\n [fxHide.lt-lg]="i >= 3"\n [fxHide.lt-md]="i >= 2"\n [fxHide.lt-sm]="i >= 1" [ngStyle]="{\'min-width\': getMinWidth()}">\n <div class="phl-item">\n <div class="phl-row" fxLayoutAlign="start center">\n <div class="phl-col">\n </div>\n </div>\n </div>\n </div>\n</div>\n',styles:['.phl-row{width:100%;flex-wrap:wrap}.phl-col{height:20px;flex:0 0 45%;background-color:#ced4da;border-radius:4px}.phl-item{position:relative;display:flex;flex-wrap:wrap;overflow:hidden;background-color:#fff}.phl-item::after{position:absolute;top:0;right:0;bottom:0;left:0;transform:translateX(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));-webkit-animation:1s infinite shimmer;animation:1s infinite shimmer;content:""}@-webkit-keyframes shimmer{100%{transform:translateX(100%)}}@keyframes shimmer{100%{transform:translateX(100%)}}.phl-item,.phl-item *,.phl-item::after,.phl-item::before{box-sizing:border-box}']}]}],n.ctorParameters=function(){return[]},n}(n.AbstractLoadingModeComponent),lt=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[et,tt,ot,nt,it],exports:[et,tt,ot,nt,it],imports:[a.CommonModule,n.MaterialModule,s.FlexModule,n.TranslateLibModule,n.MaterialModule,m.NgxMatDatetimePickerModule]}]}],e}(),st=function(e){function a(t,n){var a=e.call(this,t,n)||this;return a._select=t,a._paperView=n,a}return T(a,e),a.ctorParameters=function(){return[{type:n.LanguageService},{type:n.PaperViewService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-quick-panel",template:'<div fxLayout="row" fxLayoutAlign="space-between center" class="quick-panel" [style.width.px]="width">\n <nc-language-selector *ngIf="items.includes(\'language\')" [language]="getLang()"></nc-language-selector>\n <nc-internal-link *ngIf="items.includes(\'settings\')" icon="settings" link="/settings"></nc-internal-link>\n <nc-logout-shortcut *ngIf="items.includes(\'logout\')"></nc-logout-shortcut>\n\n <button mat-icon-button [matMenuTriggerFor]="quickPanelMoreMenu">\n <mat-icon class="quick-panel-more-icon">more_vert</mat-icon>\n </button>\n</div>\n<mat-menu #quickPanelMoreMenu="matMenu">\n <button mat-menu-item (click)="setPaperView()" fxLayout="row" fxLayoutAlign="start center">\n <mat-icon *ngIf="isPaperView()">cancel</mat-icon>\n <mat-icon *ngIf="!isPaperView()">check</mat-icon>\n <span>{{isPaperView() ? \'Disable\' : \'Enable\'}} Paper View</span>\n </button>\n</mat-menu>\n',styles:[".quick-panel{height:62px;padding:8px}.quick-panel-more-icon{text-align:center;font-size:24px}"]}]}],a.ctorParameters=function(){return[{type:n.LanguageService},{type:n.PaperViewService}]},a}(n.AbstractQuickPanelComponent),ct=function(e){function a(t,n,a,r){var o=e.call(this,t,n,a,r)||this;return o._user=t,o._log=n,o._config=a,o._router=r,o}return T(a,e),a.ctorParameters=function(){return[{type:n.UserService},{type:n.LoggerService},{type:n.ConfigurationService},{type:o.Router}]},a.decorators=[{type:t.Component,args:[{selector:"nc-logout-shortcut",template:'<button mat-icon-button (click)="logout()">\n <mat-icon class="logout-icon">exit_to_app</mat-icon>\n</button>\n',styles:[".logout-icon{font-size:24px;text-align:center;cursor:pointer}"]}]}],a.ctorParameters=function(){return[{type:n.UserService},{type:n.LoggerService},{type:n.ConfigurationService},{type:o.Router}]},a}(n.AbstractLogoutShortcutComponent),dt=function(e){function a(t){var n=e.call(this,t)||this;return n._select=t,n.skFlag="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABAElEQVRYhWP4//8/w0DiAbV81AGjDkB2wECBUQeMOgC/A34fO4ET08UBb2VU4BgE3mkZwfn/Pn6kngO4/Rb9R8dNNSvAFn2tb4H7GESD+CDxxrxZGHpIxXgdALIA5oBPodFgB4BoujsA5Os/V66BHQCiQXy6OKC5aytGGkDmg6KIpg6wzN/y/6GN+/8a0+T/8dZF/7n8FoJpEP+BrtV/j6qdtHUACJf27gVbjI5B4pRajuKAdzKq/7HhDxYO/0vQHJHatO3/R3c/rOpJxQQdAMLvtYz/r22c+98dGOTr+leD+dSwnGgHIIcGtSwmywG0wKMOGDwOGEg86oBRBwy4AwD9AXxVUM8swgAAAABJRU5ErkJggg==",n.deFlag="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAPElEQVRYw+3WIREAMADDwPjXNk8ZnIQOBIQ/6hWVZQQI8AUAcFGAAAHeDoCTAgT4B3BwUoAAAXrFAQIoF+hFdQp+ds+vAAAAAElFTkSuQmCC",n.gbFlag="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAByElEQVRYw+2WvUvDUBTFA04u7VTo0sGpf4Ao1L2L4FApdHN01slBcFIEJ0EcFDqqFaGubkJdtIhVKWhBobjZwc5+NMeeSNI0vOTdpmId8uBt7+N3Ts69LwYAY5TTiAAigH8B8Fwo4LPVwvtHB6u7VYxN7cOY3AucpgnU4nFcW0cAqdkD7Z7FjQpeNrdwn0rhrVSCA9BcWsZtIoF2uWwddlV/RXr++NcAJuYOcX5SwUMmg6dczhL71TF7ALysenSGejoNqRtSAIVqPDbbmF447QFwIS9a276A1A0dgJ/q9eINxmeK1po+AHv2uZHP+7oRBBCk2n2XEkDqhgpAoloEIHHDC7CycylSPRCA1427ZNJxg8MN0MhmRaqVAAg53AAhxw9ALRazDvrr6QCM4nKKHvoTWAd1P0OYYZqQhZBBYqAYLAaMQWPgVAAMKIPKwDK4ujdFC8ASYilxsLRYYiw1lpwXgKXJEiUkS5alyxIOelN8AVSq2VzYZNhs2HS8AHbfYLOy3WATC3JDCeCnmu3VXuMHYPcNqRt9ADrV7o1BAO4uqnPDAZCoHhRA6Ub3qXe74QBIVIcB0LnhAEhUDwPg50b0VxwBRACc37+H2GuakEPwAAAAAElFTkSuQmCC",n}return T(a,e),a.prototype.getFlag=function(e){return"sk"===e?this.skFlag:"gb"===e?this.gbFlag:this.deFlag},a.ctorParameters=function(){return[{type:n.LanguageService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-language-selector",template:'<mat-menu #languageMenu="matMenu">\n <button *ngFor="let lang of langMenuItems" mat-menu-item (click)="setLang(lang.key)" fxLayout="row"\n fxLayoutAlign="start center" [style.backgroundColor]="lang.key === language ? \'rgba(253,151,31,0.1)\':\'\'">\n <img [src]=\'getFlag(flagCode(lang.key))\' alt="Country icon" class="icon-small-dimensions">\n <span class="margin-left-default">{{\'toolbar.menu.\' + lang.value | translate}}</span>\n </button>\n</mat-menu>\n\n<button mat-icon-button [matMenuTriggerFor]="languageMenu">\n <img [src]=\'getFlag(flagCountryCode)\'\n alt="Country icon" class="icon-medium-dimensions">\n</button>\n',styles:[".icon-small-dimensions{width:24px;height:24px}.margin-left-default{margin-left:8px}.icon-medium-dimensions{width:32px;height:32px}"]}]}],a.ctorParameters=function(){return[{type:n.LanguageService}]},a}(n.AbstractLanguageSelectorComponent),pt=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-internal-link",template:'<button mat-icon-button [routerLink]="link">\n <mat-icon class="internal-link-icon">{{icon}}</mat-icon>\n</button>\n',styles:[".internal-link-icon{font-size:24px;text-align:center;vertical-align:center;cursor:pointer;outline:0!important}"]}]}],n.ctorParameters=function(){return[]},n}(n.AbstractInternalLinkComponent),mt=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[st,ct,dt,pt],exports:[st,ct,dt,pt],imports:[a.CommonModule,o.RouterModule,n.MaterialModule,n.TranslateLibModule]}]}],e}(),ut=function(e){function a(t,n,a){var r=e.call(this,t,n,a)||this;return r.breakpoint=t,r._log=n,r.userPreferenceService=a,r}return T(a,e),a.ctorParameters=function(){return[{type:x.BreakpointObserver},{type:n.LoggerService},{type:n.UserPreferenceService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-navigation-drawer",template:'<mat-sidenav-container class="drawer-container" (panright)="swipeRight()" (panleft)="swipeLeft()" autosize>\n <mat-sidenav #sidenav [mode]="config.mode" [(opened)]="opened" position="start"\n [disableClose]="config.disableClose" class="drawer-content mat-elevation-z10"\n mwlResizable\n [style.width.px]="width"\n [resizeCursorPrecision]="10"\n [resizeEdges]="{ right: true }"\n (resizing)="onResizeEvent($event)">\n <div fxLayout="column" fxLayoutAlign="start center" fxFlex>\n <nc-user-card *ngIf="showUser" [user]="user" mode="full" [contentWidth]="contentWidth"></nc-user-card>\n <mat-divider *ngIf="showUser" class="drawer-divider"></mat-divider>\n\n <nc-quick-panel *ngIf="showQuickPanel" [items]="quickPanelItems" [contentWidth]="contentWidth"></nc-quick-panel>\n <mat-divider *ngIf="showQuickPanel" class="drawer-divider"></mat-divider>\n\n <nc-navigation-tree *ngIf="navigation" [contentWidth]="contentWidth"></nc-navigation-tree>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n',styles:[".drawer-container{height:100%}.drawer-content{min-width:200px;outline:0!important}.mat-drawer-side{border-right:0}mat-divider.drawer-divider{width:90%}"]}]}],a.ctorParameters=function(){return[{type:x.BreakpointObserver},{type:n.LoggerService},{type:n.UserPreferenceService}]},a}(n.AbstractNavigationDrawerComponent),gt=b.trigger("transform",[b.state("expand",b.style({width:"184px","min-width":"184px",padding:"8px"})),b.state("collapse",b.style({width:"48px","min-width":"48px",padding:"4px"})),b.transition("expand <=> collapse",b.animate("400ms cubic-bezier(0.25, 0.8, 0.25, 1)"))]),ft=b.trigger("transformContent",[b.state("shrink",b.style({"margin-left":"185px"})),b.state("grow",b.style({"margin-left":"49px"})),b.transition("shrink <=> grow",b.animate("400ms cubic-bezier(0.25, 0.8, 0.25, 1)"))]),ht=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-navigation-rail",template:'<mat-sidenav-container class="drawer-container">\n <mat-sidenav #sideRail mode="side" opened="true" position="start" disableClose="true"\n class="drawer-content mat-elevation-z16"\n (mouseenter)="expandOnHover && open()"\n (mouseleave)="expandOnHover && close()">\n\n <div [@transform]="expanded ? \'expand\' : \'collapse\'">\n\n <div fxLayout="column" fxLayoutAlign="start start" fxFlex>\n <div fxLayout="row">\n <mat-icon>account_circle</mat-icon>\n <span *ngIf="expanded" class="margin-left-default">User</span>\n </div>\n <div fxLayout="row">\n <mat-icon>assignment</mat-icon>\n <span *ngIf="expanded" class="margin-left-default">Report</span>\n </div>\n <div fxLayout="row">\n <mat-icon>bug_report</mat-icon>\n <span *ngIf="expanded" class="margin-left-default">Bugs</span>\n </div>\n <div fxLayout="row">\n <mat-icon>fingerprint</mat-icon>\n <span *ngIf="expanded" class="margin-left-default">Security</span>\n </div>\n </div>\n\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content [@transformContent]="expanded ? \'shrink\' : \'grow\'">\n <ng-content></ng-content>\n </mat-sidenav-content>\n\n</mat-sidenav-container>\n',animations:[gt,ft],styles:[".margin-left-default{margin-left:8px}"]}]}],n.ctorParameters=function(){return[]},n}(n.AbstractNavigationRailComponent),vt=function(e){function a(t,n,a,r,o,i,l,s,c,d,p){return e.call(this,t,n,a,r,o,i,l,s,c,d,p)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.ConfigurationService},{type:o.Router},{type:n.LoggerService},{type:n.UserService},{type:n.RoleGuardService},{type:n.AuthorityGuardService},{type:n.GroupGuardService},{type:n.ActiveGroupService},{type:n.TaskResourceService},{type:n.LanguageService},{type:n.DynamicNavigationRouteProviderService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-navigation-tree",template:'<mat-tree [dataSource]="dataSource" [treeControl]="treeControl" [style.width.px]="width">\n\n \x3c!-- This is the tree node template for leaf nodes --\x3e\n <mat-tree-node *matTreeNodeDef="let node" [routerLink]="node.url" routerLinkActive="active-navigation-route"\n matTreeNodeToggle matRipple class="tree-node">\n <button *ngIf="node.level >= 1" mat-icon-button disabled class="margin-component"></button>\n <button *ngIf="node.level >= 2" mat-icon-button disabled class="margin-component"></button>\n <mat-icon color="primary" class="tree-node-icon">{{node.icon}}</mat-icon>\n {{node.translate ? (node.name | translate) : node.name}}\n </mat-tree-node>\n\n \x3c!-- This is the tree node template for expandable nodes --\x3e\n <mat-nested-tree-node *matTreeNodeDef="let node; when: hasChild">\n <div class="mat-tree-node tree-node" matTreeNodeToggle matRipple\n [class.bottom-shadow]="treeControl.isExpanded(node)">\n <button *ngIf="node.level >= 1" mat-icon-button disabled class="margin-component"></button>\n <button *ngIf="node.level >= 2" mat-icon-button disabled class="margin-component"></button>\n\n <mat-icon color="primary" class="tree-node-icon">{{node.icon}}</mat-icon>\n {{node.translate ? (node.name | translate) : node.name}}\n\n <div fxFlex></div>\n <button mat-icon-button class="nested-tree-expansion-icon">\n <mat-icon>\n {{treeControl.isExpanded(node) ? \'expand_more\' : \'chevron_right\'}}\n </mat-icon>\n </button>\n </div>\n <div [class.nested-tree-invisible]="!treeControl.isExpanded(node)" class="darker-background">\n <ng-container matTreeNodeOutlet></ng-container>\n </div>\n </mat-nested-tree-node>\n</mat-tree>\n',styles:[".navigation-tree{outline:0!important}.nested-tree-invisible{display:none}.darker-background{background-color:rgba(0,0,0,.05)}.bottom-shadow{box-shadow:0 2px 4px -4px rgba(0,0,0,.2),0 4px 5px -3px rgba(0,0,0,.14),0 6px 10px -5px rgba(0,0,0,.12)}.tree-node{outline:0!important;cursor:pointer;padding:4px 12px}.tree-node mat-icon.tree-node-icon{line-height:40px;height:40px;width:24px;margin-right:4px}.tree-node .margin-component{width:8px;margin-right:4px}.nested-tree-expansion-icon{width:24px}"]}]}],a.ctorParameters=function(){return[{type:n.ConfigurationService},{type:o.Router},{type:n.LoggerService},{type:n.UserService},{type:n.RoleGuardService},{type:n.AuthorityGuardService},{type:n.GroupGuardService},{type:n.ActiveGroupService},{type:n.TaskResourceService},{type:n.LanguageService},{type:n.DynamicNavigationRouteProviderService}]},a}(n.AbstractNavigationTreeComponent),yt=function(e){function n(t){var n=e.call(this,t)||this;return n._injector=t,n}return T(n,e),n.ctorParameters=function(){return[{type:t.Injector}]},n.decorators=[{type:t.Component,args:[{selector:"nc-user-card",template:'<div [ngSwitch]="mode" class="no-outline">\n <div *ngSwitchCase="\'full\'" #fullShowcase fxLayout="column" fxLayoutAlign="start center"\n class="full-showcase-container no-outline margin-bottom-x2" [style.width.px]="width"\n [routerLink]="link">\n <ng-template [ngIf]="!userBannerExists()">\n <div class="banner-wrapper mat-elevation-z6" matRipple [matRippleTrigger]="fullShowcase">\n <div [style.backgroundImage]="\'url(assets/netgrif-cubes-upper-left.png)\'" class="cube-upper-left">\n <div [style.backgroundImage]="\'url(assets/netgrif-cubes-down-right.png)\'" class="cube-down-right"></div>\n </div>\n </div>\n </ng-template>\n <ng-template [ngIf]="userBannerExists()">\n <div [style.backgroundImage]="\'url(\'+userBanner+\')\'" class="full-width user-banner mat-elevation-z6" matRipple\n [matRippleTrigger]="fullShowcase"></div>\n </ng-template>\n <div class="user-avatar-large margin-bottom-default mat-elevation-z6" matRipple\n [matRippleTrigger]="fullShowcase">\n <img [src]="userAvatar" alt="user avatar" class="full-width full-height">\n </div>\n <div fxLayout="column" fxLayoutAlign="center center" class="full-width full-showcase-text padding-default">\n <span>{{user.fullName}}</span>\n <span>{{user.email}}</span>\n </div>\n </div>\n <div *ngSwitchCase="\'horizontal\'" fxLayout="row" fxLayoutAlign="start center"\n class="horizontal-showcase-container no-outline padding-default" [routerLink]="link" matRipple>\n <div class="user-avatar-large mat-elevation-z6">\n <img [src]="userAvatar" alt="user avatar" class="full-width full-height">\n </div>\n <div fxLayout="column" fxLayoutAlign="center center" class="full-width full-showcase-text">\n <span>{{user.fullName}}</span>\n <span>{{user.email}}</span>\n </div>\n </div>\n <div *ngSwitchCase="\'vertical\'" fxLayout="column" fxLayoutAlign="start center"\n class="vertical-showcase-container no-outline padding-default"\n [routerLink]="link" matRipple>\n <div class="user-avatar-large mat-elevation-z6">\n <img [src]="userAvatar" alt="user avatar" class="full-width full-height">\n </div>\n <div fxLayout="column" fxLayoutAlign="center center" class="full-width full-showcase-text">\n <span>{{user.fullName}}</span>\n <span>{{user.email}}</span>\n </div>\n </div>\n <div *ngSwitchCase="\'icon\'" [routerLink]="link">\n <div class="mat-elevation-z6 no-outline"\n [ngClass]="{\'user-avatar-large\':iconStyle === \'large\', \'user-avatar-small\':iconStyle===\'small\'}"\n [matTooltip]="user.fullName+\'\\n\'+user.email"\n matTooltipHideDelay="1000"\n [matTooltipPosition]="tooltipPosition"\n matRipple>\n <img [src]="userAvatar" alt="user avatar" class="full-width full-height">\n </div>\n </div>\n <div *ngSwitchDefault>\n <span>{{ \'side-menu.user.showcase\' | translate}}</span>\n </div>\n</div>\n\n\n',styles:[".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-default{margin-top:8px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-default{margin-bottom:8px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.full-showcase-container .user-banner{height:100px;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.full-showcase-container .user-avatar-large{margin-top:-32px}.banner-wrapper{height:100px;width:100%}.cube-upper-left{width:100%;height:100%;background-repeat:no-repeat;background-size:auto 80px}.cube-down-right{background-repeat:no-repeat;background-position-x:right;background-position-y:bottom;background-size:auto 30px;min-width:100%;min-height:100%;padding:0;margin:0}.user-avatar-large{width:64px;height:64px;border-radius:64px}.user-avatar-small{width:46px;height:46px;border-radius:46px}.full-showcase-text{text-align:center}.full-showcase-text span{font-size:12px;color:#616161}.full-showcase-text span:first-child{font-size:20px;color:#424242;margin-bottom:4px}.horizontal-showcase-container{height:80px;border:1px solid #fd971f;border-radius:6px}.horizontal-showcase-container .user-avatar-large{margin-right:8px}.vertical-showcase-container{width:160px;border:1px solid #f0ad4e;border-radius:6px;white-space:pre-line}.vertical-showcase-container .user-avatar-large{margin-bottom:8px}::ng-deep .mat-tooltip{white-space:pre-line!important;text-align:center}.no-outline{outline:0!important}"]}]}],n.ctorParameters=function(){return[{type:t.Injector}]},n}(n.AbstractUserCardComponent),xt=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[yt],exports:[yt],imports:[a.CommonModule,o.RouterModule,n.MaterialModule,n.TranslateLibModule]}]}],e}(),bt=function(e){function a(t,n,a,r,o){return e.call(this,t,n,a,r,o)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.GroupNavigationComponentResolverService},{type:t.Injector},{type:o.ActivatedRoute},{type:o.Router},{type:n.LoggerService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-group-navigation-component-resolver",template:'<div *ngIf="initialized || errored; else loading" class="full-height">\n <div *ngIf="initialized; else displayError" class="full-height">\n <ng-template [cdkPortalOutlet]="portal"></ng-template>\n </div>\n</div>\n\n<ng-template #loading>\n <mat-progress-spinner></mat-progress-spinner>\n</ng-template>\n\n<ng-template #displayError>\n <div fxLayout="column" fxLayoutAlign="center center">\n <mat-icon color="accent" class="margin-bottom-error-icon">cancel</mat-icon>\n <span class="font-size-20">{{\'dynamicNavigation.couldNotResolveView\' | translate}}</span>\n </div>\n</ng-template>\n',styles:[".full-height{height:100%}.margin-bottom-error-icon{margin-bottom:8px}.font-size-20{font-size:20px}"]}]}],a.ctorParameters=function(){return[{type:n.GroupNavigationComponentResolverService},{type:t.Injector},{type:o.ActivatedRoute},{type:o.Router},{type:n.LoggerService}]},a}(n.AbstractGroupNavigationComponentResolverComponent);function wt(e,t){return n.navigationItemTaskFilterFactory(e,t.navigationItemTaskData)}function Ct(e,t,a){return n.navigationItemTaskAllowedNetsServiceFactory(e,t,a.navigationItemTaskData)}function St(e,t,a,r){return n.navigationItemTaskCategoryFactory(e,t.navigationItemTaskData,a,r)}var At=wt,Ft=Ct,Lt=St,It=function(e){function a(t,n,a){return e.call(this,t,n,a)||this}return T(a,e),a.prototype.ngAfterViewInit=function(){e.prototype.initializeHeader.call(this,this.caseHeaderComponent)},a.prototype.loadFilter=function(e){this._injectedTabData.tabViewRef.openTab({label:{text:e.filter.title},canBeClosed:!0,tabContentComponent:a,injectedObject:k(k({},this._injectedTabData),{filterCase:e.filterCase}),order:this._injectedTabData.tabViewOrder,parentUniqueId:this._injectedTabData.tabUniqueId},this._autoswitchToTaskTab,this._openExistingTab)},a.ctorParameters=function(){return[{type:n.CaseViewService},{type:n.LoggerService},{type:void 0,decorators:[{type:t.Inject,args:[n.NAE_TAB_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-default-tabbed-case-view",template:'<div class="case-view-container" fxLayout="column" fxLayoutAlign="start stretch">\n\n <mat-card class="case-view-search-container">\n <div fxLayout="row" fxLayoutAlign="space-between">\n <div fxLayoutAlign="start center" fxFlex>\n <nc-search class="search-width" (filterLoaded)="loadFilter($event)"></nc-search>\n </div>\n <div fxLayoutAlign="end center">\n <button mat-mini-fab color="primary" (click)="createNewCase()">\n <mat-icon class="net-upload" aria-hidden="false">add</mat-icon>\n </button>\n </div>\n </div>\n </mat-card>\n\n <nc-header #header [type]="headerType" class="case-header-padding"></nc-header>\n\n <nc-case-list [selectedHeaders$]="selectedHeaders$" [textEllipsis]="true"\n (caseClick)="handleCaseClick($event)" fxFlex></nc-case-list>\n</div>\n',providers:[n.CategoryFactory,n.CaseViewService,n.SearchService,n.ViewIdService,{provide:n.NAE_BASE_FILTER,useFactory:At,deps:[n.FilterExtractionService,n.NAE_TAB_DATA]},{provide:n.AllowedNetsService,useFactory:Ft,deps:[n.AllowedNetsServiceFactory,n.BaseAllowedNetsService,n.NAE_TAB_DATA]},{provide:n.NAE_SEARCH_CATEGORIES,useFactory:Lt,deps:[n.CategoryResolverService,n.NAE_TAB_DATA,n.NAE_DEFAULT_CASE_SEARCH_CATEGORIES,n.NAE_DEFAULT_TASK_SEARCH_CATEGORIES]}],styles:[".case-view-container{margin:16px;height:calc(100% - 32px)}.case-view-search-container{padding:16px}.case-header-padding{padding-bottom:20px;padding-top:20px}.font-size-20{font-size:20px}.search-width{width:100%}"]}]}],a.ctorParameters=function(){return[{type:n.CaseViewService},{type:n.LoggerService},{type:void 0,decorators:[{type:t.Inject,args:[n.NAE_TAB_DATA]}]}]},a.propDecorators={caseHeaderComponent:[{type:t.ViewChild,args:["header"]}]},a}(n.TabbedCaseView);function Tt(e){return{filter:e.baseFilter}}var kt=n.tabbedAllowedNetsServiceFactory,Et=n.tabbedTaskViewConfigurationFactory,_t=function(e){function a(t,n){return e.call(this,t,n)||this}return T(a,e),a.prototype.ngAfterViewInit=function(){this.initializeHeader(this.taskHeaderComponent)},a.ctorParameters=function(){return[{type:n.TaskViewService},{type:void 0,decorators:[{type:t.Inject,args:[n.NAE_TAB_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-default-tabbed-task-view",template:'<div class="task-tab-background full-height">\n <div fxLayout="column" fxLayoutAlign="start stretch" class="content-margin full-height" >\n <mat-card class="search-panel">\n <nc-search class="search-width"></nc-search>\n </mat-card>\n <nc-header #header type="task" class="task-panel-padding-mini"></nc-header>\n <nc-task-list [tasks$]="tasks$" [loading$]="loading$" [allowMultiOpen]="false" [selectedHeaders$]="selectedHeaders$" [textEllipsis]="true" fxFlex></nc-task-list>\n </div>\n</div>\n',providers:[n.CategoryFactory,n.TaskViewService,n.SearchService,n.ChangedFieldsService,{provide:n.ViewIdService,useValue:null},{provide:n.NAE_BASE_FILTER,useFactory:Tt,deps:[n.NAE_TAB_DATA]},{provide:n.AllowedNetsService,useFactory:kt,deps:[n.AllowedNetsServiceFactory,n.NAE_TAB_DATA]},{provide:n.NAE_TASK_VIEW_CONFIGURATION,useFactory:Et,deps:[n.NAE_TAB_DATA]}],styles:[".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.search-panel{margin-top:20px}.content-margin{margin:0 20px}.task-panel-padding-mini{padding-bottom:20px;padding-top:20px}.full-height{height:100%}.search-width{width:100%}"]}]}],a.ctorParameters=function(){return[{type:n.TaskViewService},{type:void 0,decorators:[{type:t.Inject,args:[n.NAE_TAB_DATA]}]}]},a.propDecorators={taskHeaderComponent:[{type:t.ViewChild,args:["header"]}]},a}(n.TabbedTaskView),Mt=n.groupNavigationViewIdSegmentFactory,Nt=function(){function e(e){this._navigationItemTaskData=e;var t=n.extractIconAndTitle(this._navigationItemTaskData);this.tabs=[{label:{text:t.name,icon:t.icon},canBeClosed:!1,tabContentComponent:It,injectedObject:{tabViewComponent:_t,tabViewOrder:0,navigationItemTaskData:this._navigationItemTaskData}}]}return e.ctorParameters=function(){return[{type:Array,decorators:[{type:t.Inject,args:[n.NAE_NAVIGATION_ITEM_TASK_DATA]}]}]},e.decorators=[{type:t.Component,args:[{selector:"nc-default-tab-view",template:'<div fxLayout="column" fxLayoutAlign="start stretch" class="full-height">\n <nc-tab-view [initialTabs]="tabs" stretch="false" class="full-height block"></nc-tab-view>\n</div>\n',providers:[n.ViewIdService,{provide:n.NAE_VIEW_ID_SEGMENT,useFactory:Mt,deps:[o.ActivatedRoute]}],styles:[".full-height{height:100%}.block{display:block!important}"]}]}],e.ctorParameters=function(){return[{type:Array,decorators:[{type:t.Inject,args:[n.NAE_NAVIGATION_ITEM_TASK_DATA]}]}]},e}(),Pt=n.groupNavigationViewIdSegmentFactory,Ot=n.navigationItemTaskFilterFactory,Rt=n.navigationItemTaskAllowedNetsServiceFactory,Dt=n.navigationItemTaskCategoryFactory,Bt=function(e){function a(t){return e.call(this,t)||this}return T(a,e),a.prototype.ngAfterViewInit=function(){this.initializeHeader(this.taskHeaderComponent)},a.ctorParameters=function(){return[{type:n.TaskViewService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-default-simple-task-view",template:'<div class="task-tab-background full-height">\n <div fxLayout="column" fxLayoutAlign="start stretch" class="content-margin full-height" >\n <mat-card class="search-panel">\n <nc-search class="search-width"></nc-search>\n </mat-card>\n <nc-header #header type="task" class="task-panel-padding-mini"></nc-header>\n <nc-task-list [tasks$]="tasks$" [loading$]="loading$" [allowMultiOpen]="false" [selectedHeaders$]="selectedHeaders$" [textEllipsis]="true" fxFlex></nc-task-list>\n </div>\n</div>\n',providers:[n.CategoryFactory,n.TaskViewService,n.SearchService,n.ViewIdService,n.ChangedFieldsService,{provide:n.NAE_VIEW_ID_SEGMENT,useFactory:Pt,deps:[o.ActivatedRoute]},{provide:n.NAE_BASE_FILTER,useFactory:Ot,deps:[n.FilterExtractionService,n.NAE_NAVIGATION_ITEM_TASK_DATA]},{provide:n.AllowedNetsService,useFactory:Rt,deps:[n.AllowedNetsServiceFactory,n.BaseAllowedNetsService,n.NAE_NAVIGATION_ITEM_TASK_DATA]},{provide:n.NAE_SEARCH_CATEGORIES,useFactory:Dt,deps:[n.CategoryResolverService,n.NAE_NAVIGATION_ITEM_TASK_DATA,n.NAE_DEFAULT_CASE_SEARCH_CATEGORIES,n.NAE_DEFAULT_TASK_SEARCH_CATEGORIES]}],styles:[".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.search-panel{margin-top:20px}.content-margin{margin:0 20px}.task-panel-padding-mini{padding-bottom:20px;padding-top:20px}.full-height{height:100%}.search-width{width:100%}"]}]}],a.ctorParameters=function(){return[{type:n.TaskViewService}]},a.propDecorators={taskHeaderComponent:[{type:t.ViewChild,args:["header"]}]},a}(n.AbstractTaskView),Vt=function(e){function a(t,n){return e.call(this,t,n)||this}return T(a,e),a.prototype.resolveViewComponent=function(e){var t=n.extractFilterFromData(e);if(void 0===t)throw new Error("Provided navigation item task data does not contain a filter field");switch(t.type){case n.FilterType.CASE:return Nt;case n.FilterType.TASK:return Bt;default:throw new Error("Cannot resolve group navigation component from '"+t.type+"' filter type")}},a.ctorParameters=function(){return[{type:n.TaskResourceService},{type:n.LoggerService}]},a.decorators=[{type:t.Injectable}],a.ctorParameters=function(){return[{type:n.TaskResourceService},{type:n.LoggerService}]},a}(n.GroupNavigationComponentResolverService);function zt(e,t,a,r,o){if(void 0===o&&(o=null),null===o){var i=t.filter instanceof n.Filter?t.filter.type:t.filterType;if(i===n.FilterType.CASE)return a;if(i===n.FilterType.TASK)return r;throw new Error("Illegal filter type: "+i)}return 0!==o.length&&o[0]instanceof n.Category?o.map((function(t){return e.toClass(e.serialize(t))})):o}var Ut=n.DATE_FORMAT,Ht=function(e){function a(t,n,a,r,o,i,l,s,c,d,p){return void 0===d&&(d=null),void 0===p&&(p=null),e.call(this,t,n,a,r,o,i,l,s,c,d,p)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.SearchService},{type:n.LoggerService},{type:n.DialogService},{type:r.TranslateService},{type:n.UserFiltersService},{type:n.AllowedNetsService},{type:n.ViewIdService},{type:Array,decorators:[{type:t.Inject,args:[n.NAE_SEARCH_CATEGORIES]}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_SEARCH_COMPONENT_CONFIGURATION]}]},{type:n.Filter,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_FILTERS_FILTER]}]},{type:Array,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_NAVIGATION_ITEM_TASK_DATA]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-search",template:'<div fxLayout="row wrap" fxLayoutAlign="start center">\n <div class="search-icon" fxLayout="row" fxLayoutAlign="start center" *ngIf="showSearchIcon">\n <mat-icon [inline]="true">search</mat-icon>\n </div>\n\n <div *ngIf="advancedSearchDisplayed; then advancedSearch; else fullTextSearch"></div>\n\n <ng-template #advancedSearch>\n <nc-advanced-search></nc-advanced-search>\n </ng-template>\n\n <ng-template #fullTextSearch>\n <nc-fulltext-search></nc-fulltext-search>\n </ng-template>\n\n <button mat-icon-button class="search-buttons-margin" *ngIf="showSearchToggleButton"\n [matTooltip]="(advancedSearchDisplayed ? \'search.tooltip.toFullText\' : \'search.tooltip.toAdvanced\') | translate"\n (click)="toggleSearchMode()">\n <mat-icon>youtube_searched_for</mat-icon>\n </button>\n\n <button mat-icon-button class="search-buttons-margin" *ngIf="advancedSearchDisplayed && showSaveFilterButton"\n [matTooltip]="\'search.tooltip.save\' | translate" (click)="saveFilter()">\n <mat-icon>save</mat-icon>\n </button>\n\n <button mat-icon-button class="search-buttons-margin" *ngIf="advancedSearchDisplayed && showLoadFilterButton"\n [matTooltip]="\'search.tooltip.load\' | translate" (click)="loadFilter()">\n <mat-icon>open_in_browser</mat-icon>\n </button>\n\n <button mat-icon-button class="search-buttons-margin" *ngIf="advancedSearchDisplayed && showAdvancedSearchHelp"\n [matTooltip]="\'search.tooltip.help\' | translate" (click)="showHelp()">\n <mat-icon>help</mat-icon>\n </button>\n</div>\n',encapsulation:t.ViewEncapsulation.None,providers:[{provide:g.MAT_DATE_FORMATS,useValue:Ut},{provide:n.NAE_SEARCH_CATEGORIES,useFactory:zt,deps:[n.CategoryResolverService,n.NAE_BASE_FILTER,n.NAE_DEFAULT_CASE_SEARCH_CATEGORIES,n.NAE_DEFAULT_TASK_SEARCH_CATEGORIES,[new t.Optional,new t.SkipSelf,n.NAE_SEARCH_CATEGORIES]]}],styles:[".button-margin{margin-left:8px;margin-right:8px}.clause-margin{margin-top:4px;margin-bottom:4px}.disable-error-margin .mat-form-field-wrapper{margin:0;padding-bottom:0}.search-buttons-margin{margin-left:8px}.search-icon{padding-right:8px;font-size:xx-large}.search-input{width:100%}.search-input-lg{width:60%}.search-input-md{width:80%}.search-input-sm{width:100%}"]}]}],a.ctorParameters=function(){return[{type:n.SearchService},{type:n.LoggerService},{type:n.DialogService},{type:r.TranslateService},{type:n.UserFiltersService},{type:n.AllowedNetsService},{type:n.ViewIdService},{type:Array,decorators:[{type:t.Inject,args:[n.NAE_SEARCH_CATEGORIES]}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_SEARCH_COMPONENT_CONFIGURATION]}]},{type:n.Filter,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_FILTERS_FILTER]}]},{type:Array,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_NAVIGATION_ITEM_TASK_DATA]}]}]},a}(n.AbstractSearchComponent),jt=n.defaultCaseSearchCategoriesFactory,qt=function(){function e(){}return e.decorators=[{type:t.Component,args:[{selector:"nc-case-search",template:"<nc-search></nc-search>\n",providers:[n.CategoryFactory,{provide:n.NAE_SEARCH_CATEGORIES,useFactory:jt,deps:[n.CategoryFactory]}],styles:[""]}]}],e}(),Gt=n.defaultTaskSearchCategoriesFactory,$t=function(){function e(){}return e.decorators=[{type:t.Component,args:[{selector:"nc-task-search",template:"<nc-search></nc-search>\n",providers:[n.CategoryFactory,{provide:n.NAE_SEARCH_CATEGORIES,useFactory:Gt,deps:[n.CategoryFactory]}],styles:[""]}]}],e}(),Wt=function(e){function a(t){return e.call(this,t)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.SearchService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-fulltext-search",template:'<mat-form-field appearance="outline" class="disable-error-margin">\n <input type="text" matInput\n [placeholder]="\'search.fullText\' | translate"\n [formControl]="fullTextFormControl"\n (keydown.enter)="$event.target.blur()">\n</mat-form-field>\n',styles:[""]}]}],a.ctorParameters=function(){return[{type:n.SearchService}]},a}(n.AbstractFulltextSearchComponent),Kt=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[Ht,qt,$t,Wt],exports:[Ht,qt,$t],imports:[a.CommonModule,n.MaterialModule,n.TranslateLibModule,m.NgxMatDatetimePickerModule,n.MaterialModule,Oe,n.DefaultSearchCategoriesModule]}]}],e}(),Qt=function(e){function a(t){return e.call(this,t)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.CaseListFontColorService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-app-panel",template:'<mat-expansion-panel [@.disabled]="expansionDisabled" hideToggle (afterExpand)="emitExpand()"\n (afterCollapse)="emitCollapse()" #matExpansionPanel class="panel-margin"\n [ngClass]="{\'margin-top\':first, \'margin-bottom\':last}">\n <mat-expansion-panel-header (click)="expandPanel()" class="panel-color header-padding header-min-height"\n [ngStyle]="{\'background\': caseColor, \'color\': getCaseFontColor()}">\n <mat-panel-description *ngTemplateOutlet="panelHeader">\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div *ngTemplateOutlet="panelContent"></div>\n </ng-template>\n</mat-expansion-panel>\n\n',styles:[".mat-expansion-panel-header{border-bottom:1px solid rgba(0,0,0,.03);color:rgba(0,0,0,.87)}.header-padding{padding:0 16px}.header-min-height{min-height:48px!important;height:auto!important}.panel-margin{margin:0 2px}.margin-top{margin-top:2px}.margin-bottom{margin-bottom:2px}"]}]}],a.ctorParameters=function(){return[{type:n.CaseListFontColorService}]},a}(n.AbstractPanelComponent),Xt=function(e){function a(t,n,a,r,o,i){var l=e.call(this,t,n,a,r,o,i)||this;return l._fieldConverter=t,l.taskContentService=n,l._paperView=a,l._logger=r,l._taskEventService=o,l}return T(a,e),a.ctorParameters=function(){return[{type:n.FieldConverterService},{type:n.TaskContentService},{type:n.PaperViewService},{type:n.LoggerService},{type:n.TaskEventService,decorators:[{type:t.Optional}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_ASYNC_RENDERING_CONFIGURATION]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-task-content",template:'<div *ngIf="loading$ | async; else notLoading" fxLayout="column" fxLayoutAlign="center center">\n <mat-spinner color="primary"></mat-spinner>\n</div>\n\n<ng-template #notLoading>\n <div *ngIf="hasDataToDisplay$ | async; else noContentToDisplay"\n [ngClass]="{\'paper-view-content mat-elevation-z10\': isPaperView(), \'scrolling_data\': this.scrollingNeeded()}"\n [ngStyle]="{\'max-height\': this.resolveContentHeightCss()}">\n <div fxLayout="column" fxLayoutAlign="start stretch"\n *ngFor="let subgrid of dataSource; trackBy: trackBySubgridFn">\n <div [gdAreas]="subgrid.gridAreas" [gdColumns]="subgrid.getGridColumns()" class="grid-rows-auto">\n <div *ngFor="let item of subgrid.content; trackBy: trackByFn"\n [gdArea]="item.gridAreaId"\n class="border" fxLayout="row" [fxLayoutAlign]="getItemAlignment(item)">\n <nc-field-component-resolver [id]="item?.item?.stringId" [gridElement]="item" fxFlex></nc-field-component-resolver>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #noContentToDisplay>\n <div fxLayout="column" fxLayoutAlign="center center">\n <mat-icon *ngIf="displayNoDataIcon">{{noDataIcon ? noDataIcon : \'block\'}}</mat-icon>\n <span>{{(noDataText ? noDataText : \'tasks.view.noData\') | translate}}</span>\n </div>\n</ng-template>\n',styles:[".border{overflow-y:auto}.paper-view-content{padding:20px;width:22cm;border:1px solid #ddd}.scrolling_data{overflow-y:auto!important}.grid-rows-auto{-ms-grid-rows:auto;grid-template-rows:auto}"]}]}],a.ctorParameters=function(){return[{type:n.FieldConverterService},{type:n.TaskContentService},{type:n.PaperViewService},{type:n.LoggerService},{type:n.TaskEventService,decorators:[{type:t.Optional}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_ASYNC_RENDERING_CONFIGURATION]}]}]},a}(n.AbstractTaskContentComponent),Yt=function(e){function o(t,n,a,r,o,i,l,s,c,d,p,m,u,g,f,h,v,y,x,b,w){var C=e.call(this,t,n,a,r,o,i,l,s,c,d,p,m,u,f,h,g,x,b,w)||this;return C._taskContentService=t,C._log=n,C._taskViewService=a,C._paperView=r,C._taskEventService=o,C._assignTaskService=i,C._delegateTaskService=l,C._cancelTaskService=s,C._finishTaskService=c,C._taskState=d,C._taskDataService=p,C._assignPolicyService=m,C._callChain=u,C._translate=g,C._disableFunctions=h,C.isEnabled=v,C._parentInjector=y,C._currencyPipe=x,C._changedFieldsService=b,C._permissionService=w,C}return T(o,e),o.prototype.createContentPortal=function(){var e=[{provide:n.TaskContentService,useValue:this._taskContentService},{provide:n.BOOLEAN_VALUE_LABEL_ENABLED,useValue:this.isEnabled}],a=t.Injector.create({providers:e,parent:this._parentInjector});void 0===this.panelContentComponent?this.portal=new C.ComponentPortal(Xt,null,a):this.portal=new C.ComponentPortal(this.panelContentComponent,null,a)},o.ctorParameters=function(){return[{type:n.TaskContentService},{type:n.LoggerService},{type:n.TaskViewService},{type:n.PaperViewService},{type:n.TaskEventService},{type:n.AssignTaskService},{type:n.DelegateTaskService},{type:n.CancelTaskService},{type:n.FinishTaskService},{type:n.TaskRequestStateService},{type:n.TaskDataService},{type:n.AssignPolicyService},{type:n.CallChainService},{type:r.TranslateService},{type:n.SubjectTaskOperations,decorators:[{type:t.Inject,args:[n.NAE_TASK_OPERATIONS]}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS]}]},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.BOOLEAN_VALUE_LABEL_ENABLED]}]},{type:t.Injector},{type:a.CurrencyPipe},{type:n.ChangedFieldsService},{type:n.PermissionService}]},o.decorators=[{type:t.Component,args:[{selector:"nc-task-panel",template:'<nc-app-panel [panelContent]="taskPanelContent" [panelHeader]="taskPanelHeader"\n (stopLoading)="stopLoading()" (getExpansionPanelRef)="setPanelRef($event)" [first]="first" [last]="last">\n <ng-template #taskPanelHeader>\n <div fxLayoutAlign="start center" fxLayout="row" fxFlex="95" (click)="preventSelectionClick($event)">\n <div fxFlex class="text-column-div" [ngClass]="{\'panel-header-padding\': !textEllipsis}">\n <span class="text-column-margin" fxLayoutAlign="start center">\n <mat-icon class="task-panel-icon panel-primary-icon">\n {{taskPanelData.task.icon ? taskPanelData.task.icon : \'label\'}}</mat-icon>\n <span [ngClass]="{\n \'text-column-ellipsis\': textEllipsis,\n \'text-column-word-wrap\': !textEllipsis\n }">{{firstFeaturedValue}}</span>\n </span>\n </div>\n <div *ngFor="let field of featuredFieldsValues; let i = index" fxFlex\n class="text-column-div"\n [fxHide.lt-xl]="i >= 3 && responsiveBody"\n [fxHide.lt-lg]="i >= 2 && responsiveBody"\n [fxHide.lt-md]="i >= 1 && responsiveBody"\n [fxHide.lt-sm]="i >= 0 && responsiveBody"\n [ngClass]="{\'panel-header-padding\': !textEllipsis && field.type !== \'button\'}">\n <span class="text-column-margin" fxLayoutAlign="start center">\n <mat-icon class="task-panel-icon panel-primary-icon"\n *ngIf="!!field.icon && !!field.value && field.type !== \'button\'">{{field.icon}}</mat-icon>\n <button *ngIf="field.type === \'button\'" mat-flat-button color="primary">{{field.value}}</button>\n <span [ngClass]="{\n \'text-column-ellipsis\': textEllipsis,\n \'text-column-word-wrap\': !textEllipsis\n }" [matTooltip]="field.value"\n [matTooltipDisabled]="!textEllipsis"\n [matTooltipClass]="\'pre-line-dialog\'"\n >{{field.type === \'button\' ? \'\' : field.value }}</span>\n </span>\n </div>\n </div>\n <div fxLayout="row" fxLayoutAlign="end center" fxFlex="5">\n <button mat-icon-button (click)="preventPanelOpen($event)"\n *ngIf="!isLoading && (canAssign() || canDo(\'delegate\') || canReassign() || canCancel() || canFinish())"\n [matMenuTriggerFor]="menu">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu="matMenu">\n <button mat-menu-item *ngIf="canAssign()" (click)="assign()" [disabled]="canDisable(\'assign\')">\n <mat-icon>person</mat-icon>\n <span>{{ getAssignTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf="canDo(\'delegate\')" (click)="delegate()"\n [disabled]="canDisable(\'delegate\')">\n <mat-icon>person_outline</mat-icon>\n <span>{{ getDelegateTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf="canReassign()" (click)="delegate()" [disabled]="canDisable(\'reassign\')">\n <mat-icon>person_add</mat-icon>\n <span>{{ \'tasks.view.reassign\' | translate}}</span>\n </button>\n <button mat-menu-item *ngIf="canCancel()" (click)="cancel()" [disabled]="canDisable(\'cancel\')">\n <mat-icon>cancel</mat-icon>\n <span>{{ getCancelTitle() | translate}}</span>\n </button>\n <button mat-menu-item *ngIf="canFinish()" (click)="finish()" [disabled]="canDisable(\'finish\')">\n <mat-icon>done</mat-icon>\n <span>{{ getFinishTitle() | translate}}</span>\n </button>\n </mat-menu>\n <mat-spinner *ngIf="isLoading" [diameter]="30"></mat-spinner>\n </div>\n </ng-template>\n <ng-template #taskPanelContent>\n <div class="panel-main-content" fxLayout="column">\n <div class="task-panel-body" [ngClass]="{\'paper-view\': isPaperView()}" fxFlex="100">\n <ng-template [cdkPortalOutlet]="portal"></ng-template>\n </div>\n <mat-action-row>\n <div fxLayout.lt-sm="column" fxLayoutAlign.lt-sm="center stretch" ngClass.lt-sm="width-100">\n <button *ngIf="canAssign()" (click)="assign()" mat-button [disabled]="canDisable(\'assign\')">\n {{ getAssignTitle() | translate | uppercase }}</button>\n <button *ngIf="canDo(\'delegate\')" (click)="delegate()" mat-button [disabled]="canDisable(\'delegate\')">\n {{ getDelegateTitle() | translate | uppercase }}</button>\n <button *ngIf="canReassign()" (click)="delegate()" mat-button [disabled]="canDisable(\'reassign\')">\n {{ \'tasks.view.reassign\' | translate | uppercase }}</button>\n <button *ngIf="canCancel()" (click)="cancel()" mat-button [disabled]="canDisable(\'cancel\')">\n {{ getCancelTitle() | translate | uppercase }}</button>\n <button *ngIf="canFinish()" (click)="finish()" mat-button [disabled]="canDisable(\'finish\')">\n {{ getFinishTitle() | translate | uppercase }}</button>\n <button *ngIf="canCollapse()" color="primary" (click)="collapse()" mat-button>\n {{ \'tasks.view.collapse\' | translate | uppercase }}</button>\n </div>\n </mat-action-row>\n </div>\n </ng-template>\n</nc-app-panel>\n',providers:[{provide:n.TaskContentService,useClass:n.SingleTaskContentService},n.TaskDataService,n.TaskEventService,n.AssignTaskService,n.DelegateTaskService,n.CancelTaskService,n.FinishTaskService,n.TaskRequestStateService,n.DataFocusPolicyService,n.AssignPolicyService,n.FinishPolicyService,n.ChangedFieldsService,{provide:n.NAE_TASK_OPERATIONS,useClass:n.SubjectTaskOperations}],styles:[".task-panel-icon{margin-right:8px}.task-panel-footer{border-top:1px solid rgba(0,0,0,.03);padding:5px 24px}.task-panel-body{padding:10px 24px}.paper-view{margin:auto}.width-100{width:100%}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-div{min-width:0;width:0}.text-column-margin{margin-right:15px;line-height:24px}.panel-header-padding{padding:12px 0!important}.pre-line-dialog{white-space:pre-line!important}"]}]}],o.ctorParameters=function(){return[{type:n.TaskContentService},{type:n.LoggerService},{type:n.TaskViewService},{type:n.PaperViewService},{type:n.TaskEventService},{type:n.AssignTaskService},{type:n.DelegateTaskService},{type:n.CancelTaskService},{type:n.FinishTaskService},{type:n.TaskRequestStateService},{type:n.TaskDataService},{type:n.AssignPolicyService},{type:n.CallChainService},{type:r.TranslateService},{type:n.SubjectTaskOperations,decorators:[{type:t.Inject,args:[n.NAE_TASK_OPERATIONS]}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS]}]},{type:Boolean,decorators:[{type:t.Optional},{type:t.Inject,args:[n.BOOLEAN_VALUE_LABEL_ENABLED]}]},{type:t.Injector},{type:a.CurrencyPipe},{type:n.ChangedFieldsService},{type:n.PermissionService}]},o}(n.AbstractTaskPanelComponent),Zt=function(e){function o(t,n,a,r,o,i,l,s,c){var d=e.call(this,t,n,a,r,o,i,l,s,c)||this;return d._caseResourceService=t,d._caseViewService=n,d._snackBarService=a,d._translateService=r,d._log=o,d._overflowService=i,d._userService=l,d._currencyPipe=s,d._permissionService=c,d}return T(o,e),o.ctorParameters=function(){return[{type:n.CaseResourceService},{type:n.CaseViewService},{type:n.SnackBarService},{type:r.TranslateService},{type:n.LoggerService},{type:n.OverflowService,decorators:[{type:t.Optional}]},{type:n.UserService},{type:a.CurrencyPipe},{type:n.PermissionService}]},o.decorators=[{type:t.Component,args:[{selector:"nc-case-panel",template:'<nc-app-panel [panelHeader]="casePanelHeader" [preventExpand]="true" [first]="first" [last]="last" [caseColor] = case_.color>\n <ng-template #casePanelHeader>\n <div fxLayoutAlign="start center" fxLayout="row" fxFlex="95" (click)="preventSelectionClick($event)">\n <div fxFlex class="text-column-div" [ngClass]="{\'panel-header-padding\': !textEllipsis}" [ngStyle]="{\'min-width\': getMinWidth()}">\n <span class="text-column-margin" fxLayoutAlign="start center">\n <mat-icon class="case-panel-icon panel-primary-icon" *ngIf="showCasePanelIcon">\n {{case_.icon ? case_.icon : \'label\'}}</mat-icon>\n <span [ngClass]="{\n \'text-column-ellipsis\': textEllipsis,\n \'text-column-word-wrap\': !textEllipsis\n }">{{firstFeaturedValue}}</span>\n </span>\n </div>\n <div *ngFor="let field of featuredFieldsValues; let i = index" fxFlex\n class="text-column-div" [ngStyle]="{\'min-width\': getMinWidth()}"\n [fxHide.lt-xl]="i >= 3 && responsiveBody"\n [fxHide.lt-lg]="i >= 2 && responsiveBody"\n [fxHide.lt-md]="i >= 1 && responsiveBody"\n [fxHide.lt-sm]="i >= 0 && responsiveBody"\n [ngClass]="{\'panel-header-padding\': !textEllipsis && field.type !== \'button\'}">\n <span class="text-column-margin" fxLayoutAlign="start center">\n <mat-icon class="case-panel-icon panel-primary-icon"\n *ngIf="field.icon && field.value && field.type !== \'button\'">{{field.icon}}</mat-icon>\n <ng-container [ngSwitch]="field.type">\n <span *ngSwitchDefault\n [ngClass]="{\'text-column-ellipsis\': textEllipsis, \'text-column-word-wrap\': !textEllipsis}"\n [matTooltip]="field.value"\n [matTooltipDisabled]="!textEllipsis"\n [matTooltipClass]="\'pre-line-dialog\'">{{field.value}}</span>\n <button *ngSwitchCase="\'button\'" mat-flat-button color="primary">{{field.value}}</button>\n <nc-immediate-filter-text *ngSwitchCase="\'filter\'"\n [filterMetadata]="field.filterMetadata"\n [ellipsis]="textEllipsis"\n class="width-100">\n </nc-immediate-filter-text>\n </ng-container>\n </span>\n </div>\n </div>\n <div fxLayout="row" fxLayoutAlign="end center" fxFlex="5">\n <div *ngIf="showDeleteMenu && canDelete()">\n <button mat-icon-button (click)="show($event)" [matMenuTriggerFor]="menu">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu="matMenu">\n <button mat-menu-item (click)="deleteCase()">\n <mat-icon>delete</mat-icon>\n <span>{{ \'panel.case.delete\' | translate}}</span>\n </button>\n </mat-menu>\n </div>\n </div>\n </ng-template>\n</nc-app-panel>\n',styles:[".case-panel-icon{margin-right:8px}.panel-main-content{margin-top:16px}.text-column-ellipsis{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-column-word-wrap{word-break:break-word!important;white-space:pre-line!important}.text-column-margin{margin-right:15px;line-height:24px}.text-column-div{min-width:0;width:0}.panel-header-padding{padding:12px 0!important}.width-100{width:100%}.pre-line-dialog{white-space:pre-line!important}"]}]}],o.ctorParameters=function(){return[{type:n.CaseResourceService},{type:n.CaseViewService},{type:n.SnackBarService},{type:r.TranslateService},{type:n.LoggerService},{type:n.OverflowService,decorators:[{type:t.Optional}]},{type:n.UserService},{type:a.CurrencyPipe},{type:n.PermissionService}]},o}(n.AbstractCasePanelComponent),Jt=function(e){function a(t,n,a,r){var o=e.call(this,t,n,a,r)||this;return o._taskViewService=t,o._log=n,o.route=r,o}return T(a,e),a.ctorParameters=function(){return[{type:n.TaskViewService},{type:n.LoggerService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_TAB_DATA]}]},{type:o.ActivatedRoute}]},a.decorators=[{type:t.Component,args:[{selector:"nc-task-list",template:'<div *ngIf="showVirtualScroll" fxLayout="column" fxLayoutAlign="start center" fxFlex>\n <ng-container *ngIf="tasks$ | async as tasks">\n\n <div *ngIf="(loading$ | async) === false && tasks.length === 0" fxLayout="column" fxLayoutAlign="center center"\n fxFlex>\n <mat-icon color="accent">check_box</mat-icon>\n <span class="font-size-20">{{ \'tasks.view.noTasksSatisfyingThisFilter\' | translate }}</span>\n </div>\n\n <mat-accordion [multi]="allowMultiOpen" class="full-width" fxFlex="100">\n <cdk-virtual-scroll-viewport itemSize="52" (scrolledIndexChange)="loadNextPage()"\n class="task-panel-scroll-container full-width full-height">\n <nc-task-panel\n [textEllipsis]="textEllipsis"\n *cdkVirtualFor="let task of tasks;\n let i = index;\n let first = first;\n let last = last;\n trackBy: trackBy;\n templateCacheSize: 0"\n [taskPanelData]="task" [selectedHeaders$]="selectedHeaders$" [first]="first" [last]="last"\n [forceLoadDataOnOpen]="forceLoadDataOnOpen"\n [responsiveBody]="responsiveBody"\n (taskEvent)="emitTaskEvent($event)"\n (panelRefOutput)="addToPanelRefs(task, $event)"\n class="panel-expanded-spacing">\n </nc-task-panel>\n\n <div *ngIf="loading$ | async" fxLayout="column" fxLayoutAlign="center center">\n <mat-spinner color="primary" diameter="52"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n </mat-accordion>\n\n </ng-container>\n</div>\n',styles:[".font-size-20{font-size:20px}.full-width{width:100%}.full-height{height:100%}.task-panel-scroll-container{padding:0 4px}"]}]}],a.ctorParameters=function(){return[{type:n.TaskViewService},{type:n.LoggerService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_TAB_DATA]}]},{type:o.ActivatedRoute}]},a}(n.AbstractTaskListComponent),en=function(e){function a(t,n,a){return e.call(this,t,n,a)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.LoggerService},{type:r.TranslateService},{type:n.WorkflowViewService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-workflow-panel",template:'<nc-app-panel [panelHeader]="header" [panelContent]="content" (getExpansionPanelRef)="setPanelRef($event)">\n <ng-template #header>\n <div fxLayoutAlign="start center" fxLayout="row" fxFlex="95" (click)="preventSelectionClick($event)">\n <div *ngFor="let field of featuredFieldsValues; let i = index" fxLayoutAlign="start center" fxFlex\n [fxHide.lt-xl]="i >= 4 && responsiveBody"\n [fxHide.lt-lg]="i >= 3 && responsiveBody"\n [fxHide.lt-md]="i >= 2 && responsiveBody"\n [fxHide.lt-sm]="i >= 1 && responsiveBody">\n <mat-icon class="workflow-panel-icon panel-primary-icon"\n *ngIf="!!field.icon && !!field.value">{{field.icon}}</mat-icon>\n {{field.value}}\n </div>\n </div>\n <div fxFlex="5"></div>\n </ng-template>\n <ng-template #content>\n <div class="panel-main-content" fxLayout="column">\n <div class="workflow-panel-body" fxFlex="100">\n <div fxLayout="row">\n <div fxFlex="50">\n <nc-text-field [dataField]="panelContent.netIdentifier">\n </nc-text-field>\n </div>\n <div fxFlex="50">\n <nc-text-field [dataField]="panelContent.title">\n </nc-text-field>\n </div>\n </div>\n <div fxLayout="row">\n <div fxFlex="50">\n <nc-text-field [dataField]="panelContent.version">\n </nc-text-field>\n </div>\n <div fxFlex="50">\n <nc-text-field [dataField]="panelContent.author">\n </nc-text-field>\n </div>\n </div>\n <div fxLayout="row">\n <div fxFlex="50">\n <nc-date-time-field [dataField]="panelContent.uploaded">\n </nc-date-time-field>\n </div>\n </div>\n </div>\n <mat-action-row>\n <button *ngIf="showDeleteMenu" mat-raised-button color="warn"\n (click)="deleteWorkflow()">{{\'workflow.delete\' | translate | uppercase }}</button>\n <button mat-button color="primary"\n (click)="panelRef.expanded = false">{{\'tasks.view.collapse\' | translate | uppercase }}</button>\n </mat-action-row>\n </div>\n </ng-template>\n</nc-app-panel>\n',styles:[".task-panel-icon{margin-right:10px}.workflow-panel-footer{border-top:1px solid rgba(0,0,0,.03);padding:5px 24px}.workflow-panel-body{padding:10px 24px}.workflow-panel-icon{margin-right:8px}"]}]}],a.ctorParameters=function(){return[{type:n.LoggerService},{type:r.TranslateService},{type:n.WorkflowViewService}]},a}(n.AbstractWorkflowPanelComponent),tn=function(e){function a(t){return e.call(this,t)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.TaskContentService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-field-component-resolver",template:'<div fxLayout="row" fxLayoutAlign="start center" [ngClass]="{\'min-row-height\': isField()}" [ngSwitch]="getElementType()">\n <nc-boolean-field *ngSwitchCase="fieldTypeEnum.BOOLEAN" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-boolean-field>\n\n <nc-text-field *ngSwitchCase="fieldTypeEnum.TEXT" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-text-field>\n\n <nc-number-field *ngSwitchCase="fieldTypeEnum.NUMBER" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-number-field>\n\n <nc-enumeration-field *ngSwitchCase="fieldTypeEnum.ENUMERATION" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-enumeration-field>\n\n <nc-enumeration-field *ngSwitchCase="fieldTypeEnum.ENUMERATION_MAP" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-enumeration-field>\n\n <nc-multichoice-field *ngSwitchCase="fieldTypeEnum.MULTICHOICE" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-multichoice-field>\n\n <nc-multichoice-field *ngSwitchCase="fieldTypeEnum.MULTICHOICE_MAP" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-multichoice-field>\n\n <nc-date-field *ngSwitchCase="fieldTypeEnum.DATE" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-date-field>\n\n <nc-date-time-field *ngSwitchCase="fieldTypeEnum.DATE_TIME" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-date-time-field>\n\n <nc-file-field *ngSwitchCase="fieldTypeEnum.FILE" [dataField]="getDataField()" [taskId]="getTaskId()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-file-field>\n\n <nc-file-list-field *ngSwitchCase="fieldTypeEnum.FILE_LIST" [dataField]="getDataField()" [taskId]="getTaskId()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-file-list-field>\n\n <nc-user-field *ngSwitchCase="fieldTypeEnum.USER" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-user-field>\n\n <nc-button-field *ngSwitchCase="fieldTypeEnum.BUTTON" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex>\n </nc-button-field>\n\n <nc-filter-field *ngSwitchCase="fieldTypeEnum.FILTER" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex="">\n </nc-filter-field>\n\n <nc-i18n-field *ngSwitchCase="fieldTypeEnum.I18N" [dataField]="getDataField()" [taskOffset]="getFieldOffset()" fxFlex="">\n </nc-i18n-field>\n\n <div *ngSwitchCase="taskElementEnum.DATA_GROUP_TITLE" fxFlex fxLayout="row" fxLayoutAlign="center center">\n <div fxFlex="20" class="line-datagroup"></div>\n <span [ngClass]="{\'margin-default\': getDataGroupTitle() !== \'\'}">{{getDataGroupTitle()}}</span>\n <div fxFlex class="line-datagroup"></div>\n </div>\n\n <div *ngSwitchCase="taskElementEnum.LOADER" class="min-row-height" fxFlex fxLayout="row" fxLayoutAlign="center center">\n <div class="phl-item">\n <div class="phl-row" fxLayoutAlign="center center">\n <div class="phl-col">\n </div>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase="taskElementEnum.BLANK"></div>\n</div>\n',styles:['.line-datagroup{height:1px;background:rgba(0,0,0,.12)}.margin-default{margin-right:8px;margin-left:8px}.min-row-height{min-height:105px}.phl-row{width:100%;flex-wrap:wrap}.phl-col{height:70px;flex:0 0 90%;background-color:#ced4da;border-radius:8px}.phl-item{width:100%;position:relative;display:flex;flex-wrap:wrap;overflow:hidden;background-color:#fff}.phl-item::after{position:absolute;top:0;right:0;bottom:0;left:0;transform:translateX(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));-webkit-animation:1s infinite shimmer;animation:1s infinite shimmer;content:""}@-webkit-keyframes shimmer{100%{transform:translateX(100%)}}@keyframes shimmer{100%{transform:translateX(100%)}}.phl-item,.phl-item *,.phl-item::after,.phl-item::before{box-sizing:border-box}']}]}],a.ctorParameters=function(){return[{type:n.TaskContentService}]},a}(n.AbstractFieldComponentResolverComponent),nn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[Xt,tn],imports:[a.CommonModule,n.MaterialModule,s.FlexModule,n.TranslateLibModule,n.SnackBarModule,je],exports:[Xt],entryComponents:[Xt]}]}],e}(),an=function(e){function a(t,n,a){return e.call(this,t,n,a)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.LoggerService},{type:r.TranslateService},{type:n.WorkflowViewService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-public-workflow-panel",template:'<nc-app-panel [panelHeader]="header" [preventExpand]="true">\n <ng-template #header>\n <div fxLayoutAlign="start center" fxLayout="row" fxFlex="95">\n <div *ngFor="let field of featuredFieldsValues; let i = index" fxLayoutAlign="start center" fxFlex\n [fxHide.lt-xl]="i >= 4 && responsiveBody"\n [fxHide.lt-lg]="i >= 3 && responsiveBody"\n [fxHide.lt-md]="i >= 2 && responsiveBody"\n [fxHide.lt-sm]="i >= 1 && responsiveBody">\n <mat-icon class="workflow-panel-icon panel-primary-icon"\n *ngIf="!!field.icon && !!field.value">{{field.icon}}</mat-icon>\n {{field.value}}\n </div>\n </div>\n <div fxFlex="5"></div>\n </ng-template>\n</nc-app-panel>\n',styles:[""]}]}],a.ctorParameters=function(){return[{type:n.LoggerService},{type:r.TranslateService},{type:n.WorkflowViewService}]},a}(n.AbstractWorkflowPanelComponent);function rn(e){return{filter:n.SimpleFilter.empty(e.metadata.filterMetadata.filterType)}}function on(e,t){return e.createFromArray(t.metadata.allowedNets)}function ln(e,t){var n=t.metadata.filterMetadata.searchCategories.map((function(t){return e.getByNameWithDefaultOperator(t)}));return n.forEach((function(e){return e.destroy()})),n}var sn=function(e){function a(t,n,a){return e.call(this,t,n,a)||this}return T(a,e),a.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[n.NAE_FILTER_TEXT]}]},{type:n.SearchService},{type:r.TranslateService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-immediate-filter-text-content",template:'<div [matTooltip]="ellipsis ? tooltip : null" [ngClass]="{\'ellipsis\': ellipsis}" fxFlex>\n <ng-template ngFor let-segment [ngForOf]="segments">\n <span [ngClass]="{\'bold-text\': segment.bold}" class="span-margin">\n {{segment.uppercase ? (segment.segment | translate | uppercase) : (segment.segment | translate)}}\n </span>\n </ng-template>\n</div>\n',providers:[{provide:n.NAE_BASE_FILTER,useFactory:rn,deps:[n.NAE_FILTER_TEXT]},{provide:n.AllowedNetsService,useFactory:on,deps:[n.AllowedNetsServiceFactory,n.NAE_FILTER_TEXT]},{provide:n.NAE_SEARCH_CATEGORIES,useFactory:ln,deps:[n.CategoryFactory,n.NAE_FILTER_TEXT]},n.CategoryFactory,n.SearchService],styles:[".bold-text{font-weight:700}.span-margin{margin-right:.4ex}.ellipsis{word-break:break-word!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}"]}]}],a.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[n.NAE_FILTER_TEXT]}]},{type:n.SearchService},{type:r.TranslateService}]},a}(n.AbstractImmediateFilterTextContentComponent),cn=function(e){function n(t){return e.call(this,t)||this}return T(n,e),n.prototype.getFilterTextContentComponent=function(){return sn},n.ctorParameters=function(){return[{type:t.Injector}]},n.decorators=[{type:t.Component,args:[{selector:"nc-immediate-filter-text",template:'<ng-template [ngIf]="initialized">\n <ng-template [cdkPortalOutlet]="portal"></ng-template>\n</ng-template>\n',styles:[""]}]}],n.ctorParameters=function(){return[{type:t.Injector}]},n}(n.AbstractImmediateFilterTextComponent),dn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[Qt,Yt,Zt,en,Jt,an,cn,sn],imports:[a.CommonModule,n.MaterialModule,s.FlexModule,je,n.TranslateLibModule,n.SnackBarModule,nn,Ve,n.CurrencyModule],exports:[Qt,Yt,Zt,en,Jt,an,cn],entryComponents:[sn]}]}],e}(),pn=function(e){function a(t,n,a){var r=e.call(this,t,n,a)||this;return r._viewService=t,r._logger=n,r}return T(a,e),a.ctorParameters=function(){return[{type:n.ViewService},{type:n.LoggerService},{type:t.Injector}]},a.decorators=[{type:t.Component,args:[{selector:"nc-tab-view",template:'<mat-tab-group [selectedIndex]="tabView.selectedIndex"\n [class.center-tabs]="align === \'center\'"\n [class.end-tabs]="align === \'end\'"\n (selectedTabChange)="tabView.tabChange($event)" class="tab-group"\n [class.nae-tab-fill-height]="stretch" fxFlex>\n <mat-tab *ngFor="let tab of tabView.openedTabs; let i=index">\n <ng-template mat-tab-label>\n <div fxLayout="row" fxLayoutAlign="start center">\n <div fxFlex fxLayout="row" fxLayoutAlign="start center">\n <mat-icon class="icon-margin-right"\n *ngIf="tab.label.icon !== undefined">{{tab.label.icon}}</mat-icon>\n <span class="custom-badge" [matBadge]="(badgeCount(tab) | async)"\n [matBadgeHidden]="(badgeHidden(tab) | async)">{{(tab.label.text | translate) + ((badgeHidden(tab) | async) ? \'\' : offset)}}</span>\n </div>\n <button mat-icon-button *ngIf="tab.canBeClosed" (click)="tabView.closeTabIndex(i)">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n </ng-template>\n \x3c!-- TODO 16.4.2020 - lazy loading of tab contents is disabled for now --\x3e\n \x3c!-- <ng-template matTabContent>--\x3e\n <nc-tab-creation-detector [initializeTabFunction]="initializeTabLambda"\n [tabIndex]="i"></nc-tab-creation-detector>\n <ng-template [ngIf]="tab.isTabInitialized" class="full-height">\n <ng-template [cdkPortalOutlet]="tab.portal" class="full-height"></ng-template>\n </ng-template>\n </mat-tab>\n</mat-tab-group>\n',styles:[".icon-margin-right{margin-right:5px}.full-height{height:100%}.full-width{width:100%}.tab-group{height:100%}.mat-badge-content{top:-3px!important;right:-24px!important}.custom-badge .mat-badge-content{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:16px;text-align:center;border-radius:8px;padding-left:3px;padding-right:3px}"]}]}],a.ctorParameters=function(){return[{type:n.ViewService},{type:n.LoggerService},{type:t.Injector}]},a}(n.AbstractTabViewComponent),mn=function(e){function n(){return e.call(this)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-tab-creation-detector",template:"",styles:[""]}]}],n.ctorParameters=function(){return[]},n}(n.AbstractTabCreationDetectorComponent),un=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[pn,mn],exports:[pn],imports:[a.CommonModule,S.MatTabsModule,n.MaterialModule,s.FlexLayoutModule,n.TranslateLibModule]}]}],e}(),gn=function(e){function a(t,n,a,r){var o=e.call(this,t,n,a,r)||this;return o._caseViewService=t,o._log=n,o.route=r,o}return T(a,e),a.ctorParameters=function(){return[{type:n.CaseViewService},{type:n.LoggerService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_TAB_DATA]}]},{type:o.ActivatedRoute}]},a.decorators=[{type:t.Component,args:[{selector:"nc-case-list",template:'<div *ngIf="showVirtualScroll" fxLayout="column" fxLayoutAlign="start center" fxFlex>\n <ng-container *ngIf="cases$ | async as cases">\n\n <div *ngIf="(loading$ | async) === false && cases.length === 0" fxLayout="column"\n fxLayoutAlign="center center" fxFlex>\n <mat-icon color="accent" class="margin-bottom-default">storage</mat-icon>\n <span class="font-size-20">{{ \'view-list.noCasesSatisfyingThisFilter\' | translate}}</span>\n </div>\n\n <mat-accordion multi="true" class="full-width" fxFlex="100">\n <cdk-virtual-scroll-viewport itemSize="50" (scrolledIndexChange)="loadNextPage()"\n class="full-height scroll-container" [ngStyle]="{\'width\': width ? width : \'100%\' }">\n\n <nc-case-panel [responsiveBody]="responsiveBody"\n [textEllipsis]="textEllipsis"\n *cdkVirtualFor="let case_ of cases;\n let i = index;\n let first = first;\n let last = last;\n trackBy: trackBy;\n templateCacheSize: 0"\n [showCasePanelIcon]="showCasePanelIcon"\n [showDeleteMenu]="showDeleteMenu"\n [case_]="case_" [selectedHeaders$]="selectedHeaders$" (click)="onCaseClick(case_)"\n [first]="first" [last]="last">\n </nc-case-panel>\n\n <div *ngIf="loading$ | async" fxLayout="column" fxLayoutAlign="center center"\n class="margin-top-default">\n <mat-spinner color="primary" diameter="50"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n </mat-accordion>\n </ng-container>\n</div>\n',styles:[".font-size-20{font-size:20px}.font-size-40{font-size:40px}.block-size-40{width:40px;height:40px}.margin-bottom-default{margin-bottom:8px}.margin-top-default{margin-top:8px}.full-width{width:100%}.full-height{height:100%}.scroll-container{padding:0 4px}"]}]}],a.ctorParameters=function(){return[{type:n.CaseViewService},{type:n.LoggerService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n.NAE_TAB_DATA]}]},{type:o.ActivatedRoute}]},a}(n.AbstractCaseListComponent),fn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[gn],exports:[gn],imports:[a.CommonModule,n.MaterialModule,s.FlexModule,dn,n.TranslateLibModule]}]}],e}(),hn=bt,vn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[ut,ht,vt,bt,Bt,_t,It,Nt],imports:[a.CommonModule,o.RouterModule,n.MaterialModule,s.FlexModule,s.FlexLayoutModule,mt,n.TranslateLibModule,xt,w.ResizableModule,v.MatProgressSpinnerModule,Kt,lt,dn,un,fn],exports:[ut,ht,vt,bt,Bt,_t,It,Nt],providers:[{provide:n.NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT,useValue:hn},{provide:n.GroupNavigationComponentResolverService,useClass:Vt}],entryComponents:[bt,Bt,_t,It,Nt]}]}],e}(),yn={showError:!0},xn=function(e){function a(t,n,a,r,o,i){var l=e.call(this,t,n,a,r,o,i)||this;return l._sideMenuControl=t,l._formBuilder=n,l._snackBarService=a,l._caseResourceService=r,l._hotkeysService=o,l._translate=i,l.isVersionVisible=t.isVersionVisible,l}return T(a,e),a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]},{type:p.FormBuilder},{type:n.SnackBarService},{type:n.CaseResourceService},{type:F.HotkeysService},{type:r.TranslateService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-new-case",template:'<div #toolbar class="custom-mat-toolbar" fxLayout="column" fxLayoutAlign="center none">\n {{titleShortening()}}\n</div>\n<mat-vertical-stepper *ngIf="hasMultipleNets$ | async" linear #stepper1>\n <mat-step [stepControl]="processFormControl" errorMessage="{{\'side-menu.new-case.errFirst\' | translate}}">\n <ng-template matStepLabel>{{\'side-menu.new-case.choose\' | translate}}</ng-template>\n <mat-form-field>\n <input type="text" matInput [formControl]="processFormControl" [matAutocomplete]="auto" required\n (keyup.enter)="nextStep()" (change)="checkVersion(processFormControl.value)">\n <span class="version-span" *ngIf="isVersionVisible" matSuffix>{{netVersion}}</span>\n <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn"\n (optionSelected)="showVersion($event.option)">\n <mat-option *ngFor="let option of filteredOptions$ | async" [value]="option">\n {{option.viewValue}}\n <span class="version-span" *ngIf="isVersionVisible">{{option.version}}</span>\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <div>\n <button *ngIf="isCaseTitleEnabled()" mat-button matStepperNext>{{\'side-menu.new-case.next\' | translate}}</button>\n <button *ngIf="!isCaseTitleEnabled()" mat-button (click)="createNewCase()">{{\'side-menu.new-case.create\' | translate}}</button>\n </div>\n </mat-step>\n <mat-step *ngIf="isCaseTitleEnabled()" [stepControl]="titleFormControl" errorMessage="{{\'side-menu.new-case.errSecond\' | translate}}">\n <ng-template matStepLabel>{{\'side-menu.new-case.caseTitle\' | translate}}</ng-template>\n <mat-form-field>\n <input matInput placeholder="Title" autocomplete="off" [formControl]="titleFormControl" [required]="isCaseTitleRequired()" (keyup.enter)="nextStep()">\n </mat-form-field>\n <div>\n <button mat-button (click)="stepper1.reset(); checkVersion(processFormControl.value)">{{\'side-menu.new-case.reset\' | translate}}</button>\n <button mat-button (click)="createNewCase()">{{\'side-menu.new-case.create\' | translate}}</button>\n </div>\n </mat-step>\n</mat-vertical-stepper>\n<mat-vertical-stepper *ngIf="(hasMultipleNets$ | async) === false" linear #stepper2>\n <mat-step [stepControl]="titleFormControl" errorMessage="{{\'side-menu.new-case.errSecond\' | translate}}">\n <ng-template matStepLabel>{{\'side-menu.new-case.caseTitle\' | translate}}</ng-template>\n <mat-form-field>\n <input matInput placeholder="Title" autocomplete="off" [formControl]="titleFormControl" [required]="isCaseTitleRequired()" (keyup.enter)="nextStep()">\n </mat-form-field>\n <div>\n <button mat-button (click)="stepper2.reset()">{{\'side-menu.new-case.reset\' | translate}}</button>\n <button mat-button (click)="createNewCase()">{{\'side-menu.new-case.create\' | translate}}</button>\n </div>\n </mat-step>\n</mat-vertical-stepper>\n<div *ngIf="(notInitialized$ | async)" fxLayout="row" fxLayoutAlign="center center">\n <mat-spinner class="spinner-margin"></mat-spinner>\n</div>\n',providers:[{provide:A.STEPPER_GLOBAL_OPTIONS,useValue:yn}],styles:[".version-span{padding-left:8px;color:gray}.spinner-margin{margin-top:16px}"]}]}],a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]},{type:p.FormBuilder},{type:n.SnackBarService},{type:n.CaseResourceService},{type:F.HotkeysService},{type:r.TranslateService}]},a}(n.AbstractNewCaseComponent),bn=xn,wn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[xn],imports:[a.CommonModule,n.MaterialModule,n.CovalentModule,s.FlexLayoutModule,s.FlexModule,p.FormsModule,n.SnackBarModule,n.TranslateLibModule,F.HotkeyModule.forRoot()],exports:[xn],entryComponents:[xn],providers:[{provide:n.NAE_NEW_CASE_COMPONENT,useValue:bn}]}]}],e}(),Cn=function(e){function a(t,n,a,r,o){var i=e.call(this,t,n,a,r,o)||this;return i._sideMenuControl=t,i._petriNetResource=n,i._log=a,i._snackbar=r,i._translate=o,i}return T(a,e),a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]},{type:n.PetriNetResourceService},{type:n.LoggerService},{type:n.SnackBarService},{type:r.TranslateService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-import-net",template:'<mat-toolbar color="primary">{{ \'side-menu.import-net.upload\' | translate}}</mat-toolbar>\n\n<div fxLayout="column" class="container side-menu-root">\n\n <ul class="file-list">\n <li *ngFor="let file of fileList" [@fadeInOut]="\'in\'">\n <mat-progress-bar color="accent" [value]="file.progress"></mat-progress-bar>\n <span class="file-list-label">\n <mat-progress-spinner *ngIf="file.inProgress && file.uploaded" class="margin-right-default"\n color="accent" mode="indeterminate" diameter="20"></mat-progress-spinner>\n <mat-icon *ngIf="!file.inProgress && file.uploaded && file.completed"\n class="done-icon margin-right-default">\n done\n </mat-icon>\n <mat-icon *ngIf="!file.inProgress && !file.completed && file.error"\n class="done-icon margin-right-default">\n error\n </mat-icon>\n {{file.data.name}}\n <a title="Retry" (click)="retryFile(file)" *ngIf="!file.inProgress && file.error">\n <mat-icon>refresh</mat-icon>\n </a>\n <a title="Cancel" (click)="cancelFile(file)" *ngIf="file.inProgress">\n <mat-icon>cancel</mat-icon>\n </a>\n </span>\n </li>\n </ul>\n\n <input type="file" id="sidemenu-fileUpload" name="fileUpload" multiple="multiple"\n accept="text/xml" class="display-none"/>\n\n <mat-form-field color="primary">\n <mat-label>Release</mat-label>\n <mat-select [formControl]="releaseTypeControl">\n <mat-option *ngFor="let type of releaseTypes" [value]="type">\n {{type}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <button mat-raised-button color="primary" (click)="onProcessFileChosen()">\n <mat-icon>file_upload</mat-icon>\n {{ \'side-menu.import-net.choose\' | translate}}\n </button>\n\n <button *ngIf="isAllFinished" mat-flat-button (click)="close()">\n {{ \'side-menu.import-net.done\' | translate}}\n </button>\n\n</div>\n',animations:[b.trigger("fadeInOut",[b.state("in",b.style({opacity:100})),b.transition("* => void",[b.animate(300,b.style({opacity:0}))])])],styles:[".file-list,.file-list li{margin:0;padding:0;list-style:none}.file-list-label{display:inline-flex;vertical-align:middle;font-size:12px;line-height:18px}.file-list-label mat-icon{font-size:18px;text-align:center}.file-list-label a{cursor:pointer}.container{padding:10%}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.display-none{display:none!important}"]}]}],a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]},{type:n.PetriNetResourceService},{type:n.LoggerService},{type:n.SnackBarService},{type:r.TranslateService}]},a}(n.AbstractImportNetComponent),Sn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[Cn],imports:[a.CommonModule,n.MaterialModule,n.CovalentModule,s.FlexLayoutModule,s.FlexModule,p.FormsModule,n.TranslateLibModule],exports:[Cn],entryComponents:[Cn]}]}],e}(),An=function(e){function a(t,n){var a=e.call(this,t,n)||this;return a._sideMenuControl=t,a._filterRepository=n,a}return T(a,e),a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]},{type:n.FilterRepository}]},a.decorators=[{type:t.Component,args:[{selector:"nc-filter-selector",template:'<mat-toolbar color="primary">{{ \'side-menu.filter-selector.choose-filter\' | translate}}</mat-toolbar>\n<div class="filter-selector-root side-menu-root">\n <div class="input-margin">\n <mat-form-field class="full-width-input">\n <mat-label>{{\'side-menu.filter-selector.search-filter\' | translate}}</mat-label>\n <input matInput type="text" [formControl]="searchFormControl">\n </mat-form-field>\n </div>\n <div *ngIf="caseFilters.filtered.length > 0">\n <h4 class="header-padding">{{ \'side-menu.filter-selector.case-filters\' | translate}}</h4>\n <mat-selection-list (selectionChange)="caseFilterSelected($event)" #caseFilterList>\n <mat-list-option *ngFor="let filter of caseFilters.filtered" [value]="filter">\n <nc-filter-selector-list-item [filter]="filter"></nc-filter-selector-list-item>\n </mat-list-option>\n </mat-selection-list>\n </div>\n <div *ngIf="taskFilters.filtered.length > 0">\n <h4 class="header-padding">{{ \'side-menu.filter-selector.task-filters\' | translate}}</h4>\n <mat-selection-list (selectionChange)="taskFilterSelected($event)" #taskFilterList>\n <mat-list-option *ngFor="let filter of taskFilters.filtered" [value]="filter">\n <nc-filter-selector-list-item [filter]="filter"></nc-filter-selector-list-item>\n </mat-list-option>\n </mat-selection-list>\n </div>\n <div fxLayout="row" fxLayoutAlign="end center">\n <button mat-stroked-button color="primary" class="submit-button-padding"\n (click)="filterSelectionConfirmed()">{{ \'side-menu.filter-selector.select\' | translate }}</button>\n </div>\n</div>\n',styles:[".filter-selector-root{width:calc(100% - 8px);margin:0;padding-top:4px;padding-left:4px;padding-right:4px}.header-padding{padding:0 0 0 16px}.submit-button-padding{margin-right:16px}.input-margin{margin-left:16px;margin-right:16px}.full-width-input{display:block;margin:0 auto;width:100%}"]}]}],a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]},{type:n.FilterRepository}]},a}(n.AbstractFilterSelectorComponent),Fn=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return T(n,e),n.decorators=[{type:t.Component,args:[{selector:"nc-filter-selector-list-item",template:'<div fxLayout="row" fxLayoutAlign="start center">\n <span>{{text}}</span>\n</div>\n',styles:[""]}]}],n}(n.AbstractFilterSelectorListItemComponent),Ln=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[An,Fn],imports:[a.CommonModule,n.MaterialModule,n.TranslateLibModule],exports:[An],entryComponents:[An]}]}],e}(),In=function(e){function a(t){var n=e.call(this,t)||this;return n._sideMenuControl=t,n}return T(a,e),a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]}]},a.decorators=[{type:t.Component,args:[{selector:"nc-option-selector",template:'<mat-toolbar color="primary">{{ data.title | translate}}</mat-toolbar>\n<div fxLayout="column" fxLayoutAlign="start stretch">\n <mat-form-field class="select-field-margin">\n <input type="text" matInput required\n [placeholder]="\'side-menu.option-selector.choose-one-option\' | translate"\n [formControl]="selectorFormControl"\n [matAutocomplete]="auto"\n (keyup.enter)="submit()">\n <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn">\n <mat-option *ngFor="let option of filteredOptions | async" [value]="option">\n {{option.text}}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <div fxLayout="row" fxLayoutAlign="center center">\n <button mat-stroked-button (click)="submit()">{{\'side-menu.option-selector.select\' | translate}}</button>\n </div>\n</div>\n',styles:[".select-field-margin{margin:8px 16px}"]}]}],a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]}]},a}(n.AbstractOptionSelectorComponent),Tn=In,kn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[a.CommonModule,n.MaterialModule,n.TranslateLibModule],declarations:[In],exports:[In],entryComponents:[In],providers:[{provide:n.NAE_OPTION_SELECTOR_COMPONENT,useValue:Tn}]}]}],e}();function En(e){if(!e.data)throw new Error("NewFilterCaseId was not provided in the sidemenu injectio data");var t=e.data;return{filter:n.SimpleFilter.fromTaskQuery({case:{id:t.newFilterCaseId},transitionId:n.UserFilterConstants.NEW_FILTER_TRANSITION_ID})}}function _n(e){return e.createFromArray([n.UserFilterConstants.FILTER_NET_IDENTIFIER])}var Mn=function(e){function a(t,n,a,r){return e.call(this,t,n,a,r)||this}return T(a,e),a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]},{type:n.UserFiltersService},{type:n.LoggerService},{type:n.TaskViewService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-save-filter",template:'<mat-toolbar color="primary">{{\'search.tooltip.save\' | translate}}</mat-toolbar>\n<div class="save-filter-container side-menu-root">\n <nc-task-list [allowMultiOpen]="false" [tasks$]="tasks$" [loading$]="loading$" [textEllipsis]="true" [forceLoadDataOnOpen]="true"\n [responsiveBody]="true" [selectedHeaders$]="selectedHeaders$" (taskEvent)="processTaskEvents($event)" fxFlex class="virtual-scroll-list-padding"></nc-task-list>\n</div>\n',providers:[n.TaskViewService,n.SearchService,{provide:n.NAE_BASE_FILTER,useFactory:En,deps:[n.NAE_SIDE_MENU_CONTROL]},{provide:n.AllowedNetsService,useFactory:_n,deps:[n.AllowedNetsServiceFactory]}],styles:[".save-filter-container{height:calc(100% - 64px);padding-left:8px;padding-right:8px}.virtual-scroll-list-padding{padding-right:4px}"]}]}],a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]},{type:n.UserFiltersService},{type:n.LoggerService},{type:n.TaskViewService}]},a}(n.AbstractSaveFilterComponent),Nn=Mn,Pn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[a.CommonModule,n.MaterialModule,n.TranslateLibModule,dn],declarations:[Mn],exports:[Mn],entryComponents:[Mn],providers:[{provide:n.NAE_SAVE_FILTER_COMPONENT,useValue:Nn}]}]}],e}();function On(e){if(!e.data)throw new Error("NewFilterCaseId was not provided in the side menu injection data");return{filter:e.data.filter}}function Rn(e){return e.createFromArray([n.UserFilterConstants.FILTER_NET_IDENTIFIER])}var Dn=["meta-title",n.UserFilterConstants.FILTER_NET_IDENTIFIER+"-"+n.UserFilterConstants.FILTER_FIELD_ID],Bn=function(e){function a(t,n,a){return e.call(this,t,n,a)||this}return T(a,e),a.prototype.ngAfterViewInit=function(){this.initializeHeader(this.caseHeaderComponent)},a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]},{type:n.LoggerService},{type:n.CaseViewService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-load-filter",template:'<mat-toolbar color="primary">{{\'search.tooltip.load\' | translate}}</mat-toolbar>\n<div class="load-filter-container side-menu-root" fxLayout="column" fxLayoutAlign="start stretch">\n <nc-header #header [type]="headerType" [maxHeaderColumns]="2" [responsiveHeaders]="true" [hideEditMode]="true" class="case-header-padding" [ngStyle]="{\'width\': getWidth()}"></nc-header>\n <nc-case-list [selectedHeaders$]="selectedHeaders$" [showDeleteMenu]="false" [width]="getWidth()"\n (caseClick)="handleCaseClick($event)" [responsiveBody]="true" fxFlex [textEllipsis]="true" class="virtual-scroll-list-padding"></nc-case-list>\n</div>\n',providers:[n.CaseViewService,n.SearchService,{provide:n.NAE_BASE_FILTER,useFactory:On,deps:[n.NAE_SIDE_MENU_CONTROL]},{provide:n.AllowedNetsService,useFactory:Rn,deps:[n.AllowedNetsServiceFactory]},{provide:n.NAE_DEFAULT_HEADERS,useValue:Dn}],styles:[".load-filter-container{height:calc(100% - 64px);padding-left:8px;padding-right:8px}.case-header-padding{padding-bottom:16px;padding-top:4px}.virtual-scroll-list-padding{padding-right:4px}"]}]}],a.ctorParameters=function(){return[{type:n.SideMenuControl,decorators:[{type:t.Inject,args:[n.NAE_SIDE_MENU_CONTROL]}]},{type:n.LoggerService},{type:n.CaseViewService}]},a.propDecorators={caseHeaderComponent:[{type:t.ViewChild,args:["header"]}]},a}(n.AbstractLoadFilterComponent),Vn=Bn,zn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[a.CommonModule,n.MaterialModule,n.TranslateLibModule,fn,lt],declarations:[Bn],exports:[Bn],entryComponents:[Bn],providers:[{provide:n.NAE_LOAD_FILTER_COMPONENT,useValue:Vn}]}]}],e}(),Un=ge,Hn=xn,jn=In,qn=Mn,Gn=Bn,$n=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[a.CommonModule,Ve,wn,Sn,Ln,kn,Pn,zn],exports:[Ve,wn,Sn,Ln,kn,Pn,zn],providers:[{provide:n.NAE_USER_ASSIGN_COMPONENT,useValue:Un},{provide:n.NAE_NEW_CASE_COMPONENT,useValue:Hn},{provide:n.NAE_OPTION_SELECTOR_COMPONENT,useValue:jn},{provide:n.NAE_SAVE_FILTER_COMPONENT,useValue:qn},{provide:n.NAE_LOAD_FILTER_COMPONENT,useValue:Gn}]}]}],e}(),Wn=function(e){function a(t){var n=e.call(this,t)||this;return n._sideMenuService=t,n}return T(a,e),a.ctorParameters=function(){return[{type:n.SideMenuService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-side-menu-container",template:'<mat-sidenav-container class="side-menu-container">\n <mat-sidenav #rightSideMenu mode="over" position="end" class="side-menu" ngClass.lt-sm="side-menu-size-mobile"\n [ngClass.gt-xs]="portalWrapper.size">\n <ng-template [cdkPortalOutlet]="portalWrapper.portal"></ng-template>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n',styles:[".side-menu-container{position:absolute;top:0;bottom:0;left:0;right:0}.side-menu{border-radius:4px}.side-menu-width-small{width:296px}.side-menu-width-medium{width:400px}.side-menu-width-large{width:496px}.side-menu-size-mobile{width:246px}"]}]}],a.ctorParameters=function(){return[{type:n.SideMenuService}]},a}(n.AbstractSideMenuContainerComponent),Kn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[Wn],imports:[a.CommonModule,o.RouterModule,n.MaterialModule,L.MatSidenavModule,C.PortalModule],exports:[Wn]}]}],e}(),Qn=function(e){function a(t,n){var a=e.call(this,t,n)||this;return a.translate=t,a.selectLangService=n,a}return T(a,e),a.ctorParameters=function(){return[{type:r.TranslateService},{type:n.LanguageService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-toolbar",template:'<mat-toolbar color="primary">\n <mat-toolbar-row fxLayout="row">\n <div class="main-toolbar-logo" fxFlex fxLayout="row">\n <a href="/">\n <img [src]="logoSrc" [alt]="logoAlt">\n </a>\n </div>\n <div fxFlex fxHide.gt-xs="false" fxHide.lt-md="true" fxLayout="row" fxLayoutAlign="center">\n {{appName}}\n </div>\n <div class="main-toolbar-menu" fxFlex fxLayout="row" fxLayoutAlign="end">\n <button mat-button [matMenuTriggerFor]="mainMenu" class="main-toolbar-menu-button" fxLayout="row">\n <span class="main-toolbar-logged-user" fxHide.xs="true">{{loggedUser}}</span>\n <mat-icon class="main-toolbar-icon" aria-hidden="false" aria-label="Example home icon">account_circle\n </mat-icon>\n <mat-menu #mainMenu="matMenu" class="main-toolbar-opened-menu">\n <button mat-menu-item [matMenuTriggerFor]="languages">\n <mat-icon class="main-toolbar-menu-icon" aria-hidden="false" aria-label="Example home icon">\n language\n </mat-icon>\n {{ \'toolbar.menu.lang\' | translate }}\n </button>\n <button mat-menu-item>\n <mat-icon class="main-toolbar-menu-icon" aria-hidden="false" aria-label="Example home icon">\n account_circle\n </mat-icon>\n {{ \'toolbar.menu.profile\' | translate }}\n </button>\n <button mat-menu-item>\n <mat-icon class="main-toolbar-menu-icon" aria-hidden="false" aria-label="Example home icon">\n exit_to_app\n </mat-icon>\n {{ \'toolbar.menu.logout\' | translate }}\n </button>\n </mat-menu>\n <mat-menu #languages="matMenu">\n <button mat-menu-item (click)="setLang(\'en-UK\')">{{ \'toolbar.menu.en\' | translate }}\n <mat-icon *ngIf="activeLang(\'en-UK\')" class="main-toolbar-menu-icon"\n aria-hidden="false" aria-label="Example home icon">keyboard_arrow_left\n </mat-icon>\n </button>\n <button mat-menu-item (click)="setLang(\'sk-SK\')">{{ \'toolbar.menu.sk\' | translate }}\n <mat-icon *ngIf="activeLang(\'sk-SK\')" class="main-toolbar-menu-icon"\n aria-hidden="false" aria-label="Example home icon">keyboard_arrow_left\n </mat-icon>\n </button>\n <button mat-menu-item (click)="setLang(\'de-DE\')">{{ \'toolbar.menu.de\' | translate }}\n <mat-icon *ngIf="activeLang(\'de-DE\')" class="main-toolbar-menu-icon"\n aria-hidden="false" aria-label="Example home icon">keyboard_arrow_left\n </mat-icon>\n </button>\n </mat-menu>\n </button>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n',styles:[".main-toolbar-logo{max-height:60%}.main-toolbar-logo img{width:120px}mat-icon.main-toolbar-icon{font-size:48px;height:100%;margin-right:15px}.main-toolbar-logged-user{margin-right:15px}.main-toolbar-menu,.main-toolbar-menu-button{font-size:20px;height:100%}.main-toolbar-menu-icon{font-size:23px}"]}]}],a.ctorParameters=function(){return[{type:r.TranslateService},{type:n.LanguageService}]},a}(n.AbstractToolbarComponent),Xn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[Qn],imports:[a.CommonModule,s.FlexLayoutModule,n.MaterialModule,n.TranslateLibModule],exports:[Qn]}]}],e}(),Yn=function(e){function a(t){var n=e.call(this,t)||this;return n._userService=t,n}return T(a,e),a.ctorParameters=function(){return[{type:n.UserService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-user-profile",template:'<div *ngIf="!user">\n <div fxLayout="row" fxFlex="50" fxLayoutAlign="center center">\n <mat-card fxLayoutAlign="center center">\n <h1>{{ \'profile.notLogged\' | translate}}</h1>\n </mat-card>\n </div>\n</div>\n<div *ngIf="user" fxLayout="column" fxLayoutAlign="center start">\n <div [style.backgroundImage]="\'url(\'+userBanner+\')\'" fxLayout="row" class="full-width banner mat-elevation-z6"\n matRipple fxLayoutAlign="start center">\n <div class="user-avatar-large mat-elevation-z6 margin-banner" matRipple>\n <img [src]="userAvatar" alt="user avatar" class="full-width full-height">\n </div>\n <h1 class="white-name">{{user.fullName}}</h1>\n </div>\n <div fxLayout="row" fxFlex fxLayoutAlign="center end" class="full-width div-background">\n <div fxFlex="80" class="tab-group margin-bottom-x2 mat-elevation-z4">\n <div fxLayout="row">\n <div fxFlex="50" class="padding-x2" fxLayout="column">\n <div fxLayout="column" class="full-height border">\n <div fxLayoutAlign="center start" class="card-title" matRipple>\n <h2>{{ \'profile.personal\' | translate}}</h2>\n </div>\n <div fxFlex fxLayout="column" fxLayoutAlign="center center" class="padding-default">\n <mat-form-field appearance="outline" class="full-width">\n <mat-label>{{ \'profile.name\' | translate}}</mat-label>\n <input matInput disabled [value]=user.firstName>\n </mat-form-field>\n <mat-form-field appearance="outline" class="full-width">\n <mat-label>{{ \'profile.surname\' | translate}}</mat-label>\n <input matInput disabled [value]=user.lastName>\n </mat-form-field>\n <mat-form-field appearance="outline" class="full-width">\n <mat-label>Email</mat-label>\n <input disabled matInput [value]="user.email">\n </mat-form-field>\n </div>\n </div>\n </div>\n <div fxFlex="50" class="padding-x2" fxLayout="column">\n <div fxLayout="column" class="full-height border">\n <div fxLayoutAlign="center start" class="card-title" matRipple>\n <h2>{{ \'profile.authority\' | translate}}</h2>\n </div>\n <div fxFlex fxLayout="column" fxLayoutAlign="center center" class="padding-default">\n <mat-form-field appearance="outline" class="user-chip-list">\n <mat-chip-list disabled>\n <mat-chip color="primary"\n *ngFor="let authority of user.authorities">{{authority}}</mat-chip>\n </mat-chip-list>\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n <div fxLayout="row">\n <div fxFlex="50" class="padding-x2" fxLayout="column">\n <div fxLayout="column" class="full-height border">\n <div fxLayoutAlign="center start" class="card-title" matRipple>\n <h2>{{ \'profile.roles\' | translate}}</h2>\n </div>\n <div fxFlex fxLayout="column" fxLayoutAlign="center center" class="padding-default">\n <mat-form-field appearance="outline" class="user-chip-list">\n <mat-chip-list disabled>\n <mat-chip color="primary" *ngFor="let role of user.roles">{{role.name}}</mat-chip>\n </mat-chip-list>\n </mat-form-field>\n </div>\n </div>\n </div>\n <div fxFlex="50" class="padding-x2" fxLayout="column">\n <div fxLayout="column" class="full-height border">\n <div fxLayoutAlign="center start" class="card-title" matRipple>\n <h2>{{ \'profile.groups\' | translate}}</h2>\n </div>\n <div fxFlex fxLayout="column" fxLayoutAlign="center center" class="padding-default">\n <mat-form-field appearance="outline" class="user-chip-list">\n <mat-chip-list disabled>\n <mat-chip color="primary" *ngFor="let group of user.groups">{{group}}</mat-chip>\n </mat-chip-list>\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n',styles:[".full-height{height:100%;min-height:100%}.full-width{width:100%;min-width:100%}.padding-default{padding:8px}.padding-half{padding:4px}.padding-x2{padding:16px}.margin-default{margin:8px}.margin-half{margin:4px}.margin-x2{margin:16px}.margin-top-default{margin-top:8px}.margin-top-half{margin-top:4px}.margin-top-x2{margin-top:16px}.margin-bottom-default{margin-bottom:8px}.margin-bottom-half{margin-bottom:4px}.margin-bottom-x2{margin-bottom:16px}.margin-left-default{margin-left:8px}.margin-left-half{margin-left:4px}.margin-left-x2{margin-left:16px}.margin-right-default{margin-right:8px}.margin-right-half{margin-right:4px}.margin-right-x2{margin-right:16px}.user-avatar-large{width:100px;height:100px;border-radius:100px}.banner{height:250px;background-repeat:no-repeat;background-size:cover}.margin-banner{margin-left:10%;margin-right:32px}.white-name{color:#fff}.tab-group{margin-top:-48px;z-index:100;background:#f0f0f0}.div-background{background:#ddd}.user-chip-list{width:100%}.border{border:1px solid #ddd;border-radius:5px;background:#fff}"]}]}],a.ctorParameters=function(){return[{type:n.UserService}]},a}(n.AbstractProfileComponent),Zn=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[Yn],exports:[Yn],imports:[a.CommonModule,n.MaterialModule,n.TranslateLibModule]}]}],e}(),Jn=function(e){function a(t,n,a,r){var o=e.call(this,t,n,a,r)||this;return o._sideMenuService=t,o._workflowViewService=n,o._log=a,o._processService=r,o}return T(a,e),a.prototype.importNet=function(){this.importSidemenuNet(Cn)},a.ctorParameters=function(){return[{type:n.SideMenuService},{type:n.WorkflowViewService},{type:n.LoggerService},{type:n.ProcessService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-workflow-view",template:'<div class="workflow-container full-height" fxLayout="column" fxLayoutAlign="start stretch">\n <div>\n <button mat-fab color="primary" class="upload-petri-net" (click)="importNet()">\n <mat-icon>cloud_upload</mat-icon>\n </button>\n </div>\n <div fxLayout="row" fxLayoutAlign="center" class="workflow-header">\n <nc-header #header fxFlex="100" [type]="headerType"></nc-header>\n </div>\n <div fxLayout="column" fxLayoutAlign="start center" fxFlex class="workflow-panels-container">\n <ng-container *ngIf="workflows$ | async as workflows">\n\n <div *ngIf="(loading$ | async) === false && workflows.length === 0" fxLayout="column"\n fxLayoutAlign="center center">\n <mat-icon color="accent" class="font-size-40 block-size-40 margin-bottom-default">linear_scale\n </mat-icon>\n <span class="font-size-20">{{ \'view-list.noProcessesSatisfyingThisFilter\' | translate}}</span>\n </div>\n\n <mat-accordion [multi]="true" fxFlex="100" class="full-width">\n\n <cdk-virtual-scroll-viewport itemSize="50" (scrolledIndexChange)="loadNextPage()" class="full-height full-width">\n\n <nc-workflow-panel\n *cdkVirtualFor="let workflow of workflows; let i = index; templateCacheSize: 0; trackBy: trackBy"\n [workflow]="workflow"\n [selectedHeaders$]="selectedHeaders$"\n [showDeleteMenu]="showDeleteMenu">\n </nc-workflow-panel>\n\n <div *ngIf="loading$ | async" fxLayout="column" fxLayoutAlign="center center"\n class="margin-top-default">\n <mat-spinner color="primary" diameter="50"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n </mat-accordion>\n </ng-container>\n </div>\n</div>\n',providers:[n.WorkflowViewService],styles:[".workflow-container{padding:16px}.workflow-header,.workflow-panels-container{margin-top:16px}.upload-petri-net{position:fixed;bottom:24px;right:24px;z-index:999}.full-width{width:100%}.full-height{height:100%}.font-size-20{font-size:20px}.font-size-40{font-size:40px}.block-size-40{width:40px;height:40px}"]}]}],a.ctorParameters=function(){return[{type:n.SideMenuService},{type:n.WorkflowViewService},{type:n.LoggerService},{type:n.ProcessService}]},a}(n.AbstractWorkflowViewComponent),ea=function(e){function a(t){var n=e.call(this,t)||this;return n._treeService=t,n}return T(a,e),a.ctorParameters=function(){return[{type:n.CaseTreeService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-tree-component",template:'<mat-tree [dataSource]="dataSource" [treeControl]="treeControl">\n \x3c!-- This is the tree node template for leaf nodes --\x3e\n <mat-tree-node *matTreeNodeDef="let node" matTreeNodeToggle>\n <div class="min-node-height width-100" fxLayout="row" fxLayoutAlign="start center"\n [ngClass]="{\'selected-tree-node border-radius\': selectedCaseNode(node)}" (click)="caseNodeClicked(node)">\n <mat-icon *ngIf="node.beforeTextIcon()" [matTooltip]="node.beforeTextIconTitle()" [svgIcon]="node.beforeTextIcon()"></mat-icon>\n <span class="padding-12px"\n [ngClass]="{\'selected-tree-node\': selectedCaseNode(node)}">{{node.case.title}}</span>\n <div fxFlex></div>\n <nc-add-child-node [node]="node" *ngIf="node.canAddChildren()"></nc-add-child-node>\n <nc-remove-node [node]="node" *ngIf="node.canBeRemoved()"></nc-remove-node>\n </div>\n </mat-tree-node>\n\n \x3c!-- This is the tree node template for expandable nodes --\x3e\n <mat-nested-tree-node *matTreeNodeDef="let node; when: hasChild">\n <div class="min-node-height" fxLayout="row" fxLayoutAlign="start center"\n [ngClass]="{\'selected-tree-node border-radius\': selectedCaseNode(node)}">\n <div class="mat-tree-node" (click)="caseNodeClicked(node)">\n <mat-icon *ngIf="node.beforeTextIcon()" [svgIcon]="node.beforeTextIcon()"></mat-icon>\n <span class="padding-12px"\n [ngClass]="{\'selected-tree-node\': selectedCaseNode(node)}">{{node.case.title}}</span>\n <div fxFlex></div>\n <nc-add-child-node [node]="node" *ngIf="node.canAddChildren()"></nc-add-child-node>\n <nc-remove-node [node]="node" *ngIf="node.canBeRemoved()"></nc-remove-node>\n\n <button *ngIf="!node.isLoadingChildren()" (click)="toggleCaseNode($event, node)" mat-icon-button\n [attr.aria-label]="\'toggle \' + node.case.title">\n <mat-icon class="mat-icon-rtl-mirror">\n {{treeControl.isExpanded(node) ? \'expand_more\' : \'chevron_right\'}}\n </mat-icon>\n </button>\n\n <div *ngIf="node.isLoadingChildren()" class="spinner-margin">\n <mat-spinner [diameter]="24"></mat-spinner>\n </div>\n </div>\n </div>\n <div class="tree-offset" [class.tree-invisible]="!treeControl.isExpanded(node)">\n <ng-container matTreeNodeOutlet></ng-container>\n </div>\n </mat-nested-tree-node>\n</mat-tree>\n',providers:[n.CaseTreeService],styles:[".padding-12px{padding-left:12px;padding-right:12px}.padding-12px:hover{cursor:pointer}.border-radius{border-radius:8px}.tree-offset{margin-left:20px}.tree-invisible{display:none}.mat-tree-node{min-height:0!important}.min-node-height{min-height:40px!important}.width-100{width:100%}.spinner-margin{margin:8px}"]}]}],a.ctorParameters=function(){return[{type:n.CaseTreeService}]},a}(n.AbstractTreeComponent),ta=function(e){function a(t,n,a,r,o,i,l){var s=e.call(this,t,n,a,r,o,i,l)||this;return s._treeTaskContentService=t,s._taskEventService=n,s._assign=a,s._cancel=r,s._finish=o,s._taskContentService=i,s._permissionService=l,s}return T(a,e),a.ctorParameters=function(){return[{type:n.TreeTaskContentService},{type:n.TaskEventService},{type:n.AssignTaskService},{type:n.CancelTaskService},{type:n.FinishTaskService},{type:n.TaskContentService},{type:n.PermissionService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-tree-task-content",template:'<div class="panel-main-content" fxLayout="column">\n <div class="task-panel-body" fxFlex="100">\n <nc-task-content [noDataText]="taskContentText$ | async"></nc-task-content>\n\n <div *ngIf="!processingTaskChange && displayTaskControlButtons" fxLayoutAlign="center center">\n <button *ngIf="canAssign()" color="primary" (click)="assign()" mat-raised-button>\n {{ getAssignTitle() | translate | uppercase }}</button>\n <button *ngIf="canCancel()" color="warn" (click)="cancel()" mat-stroked-button>\n {{ getCancelTitle() | translate | uppercase }}</button>\n <button *ngIf="canFinish()" color="primary" (click)="finish()" mat-raised-button>\n {{ getFinishTitle() | translate | uppercase }}</button>\n </div>\n <div *ngIf="processingTaskChange" fxLayoutAlign="center center">\n <mat-spinner [diameter]="40"></mat-spinner>\n </div>\n </div>\n</div>\n',providers:[{provide:n.TaskContentService,useClass:n.UnlimitedTaskContentService},n.TreeTaskContentService,n.AssignTaskService,n.TaskDataService,n.TaskEventService,n.CancelTaskService,n.FinishTaskService,n.TaskRequestStateService,n.DataFocusPolicyService,n.AssignPolicyService,n.FinishPolicyService,n.SelectedCaseService,{provide:n.NAE_TASK_OPERATIONS,useClass:n.SubjectTaskOperations}],styles:[".task-panel-body{padding:10px 24px}"]}]}],a.ctorParameters=function(){return[{type:n.TreeTaskContentService},{type:n.TaskEventService},{type:n.AssignTaskService},{type:n.CancelTaskService},{type:n.FinishTaskService},{type:n.TaskContentService},{type:n.PermissionService}]},a}(n.AbstractTreeTaskContentComponent),na=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[Jn],imports:[a.CommonModule,s.FlexLayoutModule,n.MaterialModule,Kn,lt,dn,je,n.TranslateLibModule],exports:[Jn],entryComponents:[Cn]}]}],e}(),aa=function(e){function a(t){var n=e.call(this,t)||this;return n._treeService=t,n}return T(a,e),a.ctorParameters=function(){return[{type:n.CaseTreeService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-add-child-node",template:'<button *ngIf="!node.isAddingNode()" mat-icon-button (click)="addChild($event)">\n <mat-icon *ngIf="!node.treeAddTextIcon()">add</mat-icon>\n <mat-icon *ngIf="node.treeAddTextIcon()" [matTooltip]="node.treeAddTextIconTitle()" [svgIcon]="node.treeAddTextIcon()"></mat-icon>\n</button>\n\n<div *ngIf="node.isAddingNode()" class="spinner-margin">\n <mat-spinner [diameter]="24"></mat-spinner>\n</div>\n',styles:[".spinner-margin{margin:8px}"]}]}],a.ctorParameters=function(){return[{type:n.CaseTreeService}]},a}(n.AbstractAddChildNodeComponent),ra=function(e){function a(t){var n=e.call(this,t)||this;return n._treeService=t,n}return T(a,e),a.ctorParameters=function(){return[{type:n.CaseTreeService}]},a.decorators=[{type:t.Component,args:[{selector:"nc-remove-node",template:'<button *ngIf="!node.isBeingRemoved()" mat-icon-button (click)="removeNode($event)">\n <mat-icon>delete_forever</mat-icon>\n</button>\n\n<div *ngIf="node.isBeingRemoved()" class="spinner-margin">\n <mat-spinner [diameter]="24"></mat-spinner>\n</div>\n',styles:[".spinner-margin{margin:8px}"]}]}],a.ctorParameters=function(){return[{type:n.CaseTreeService}]},a}(n.AbstractRemoveNodeComponent),oa=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[ea,ta,aa,ra],imports:[a.CommonModule,s.FlexLayoutModule,n.MaterialModule,je,n.TranslateLibModule,dn,nn],exports:[ea,ta],entryComponents:[]}]}],e}(),ia=function(){function e(e,t){this.redirectService=e,this.translate=t}return e.prototype.ngOnInit=function(){this.redirectService.redirectFromUrl()},e.ctorParameters=function(){return[{type:n.RedirectService},{type:r.TranslateService}]},e.decorators=[{type:t.Component,args:[{selector:"nc-redirect",template:"<p>{{this.translate.instant('tasks.view.redirecting')}}</p>\n",styles:[""]}]}],e.ctorParameters=function(){return[{type:n.RedirectService},{type:r.TranslateService}]},e}(),la=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[],exports:[ia],declarations:[ia]}]}],e}();e.AdminComponentModule=P,e.AdvancedSearchComponent=Pe,e.AuthenticationComponentModule=R,e.AuthenticationOverlayComponent=O,e.BarchartCardComponent=U,e.BooleanFieldComponent=$,e.ButtonFieldComponent=W,e.CaseListComponent=gn,e.CasePanelComponent=Zt,e.CaseSearchComponent=qt,e.CaseViewComponentModule=fn,e.CountCardComponent=B,e.DashboardComponentModule=G,e.DashboardContentComponent=q,e.DataFieldTemplateComponent=K,e.DataFieldsComponentModule=je,e.DateFieldComponent=X,e.DateTimeFieldComponent=Z,e.EditModeComponent=nt,e.EmailSubmissionFormComponent=qe,e.EmailSubmissionFormComponentModule=Xe,e.EnumerationFieldComponent=J,e.FieldComponentResolverComponent=tn,e.FileFieldComponent=re,e.FileListFieldComponent=oe,e.FilterFieldComponent=Te,e.FilterSelectorComponent=An,e.ForgottenPasswordFormComponent=We,e.ForgottenPasswordFormComponentModule=Je,e.FulltextSearchComponent=Wt,e.HeaderComponent=et,e.HeaderComponentModule=lt,e.I18nFieldComponent=ze,e.IframeCardComponent=D,e.ImportNetComponent=Cn,e.InternalLinkComponent=pt,e.LanguageSelectorComponent=dt,e.LegalNoticeComponent=Ke,e.LegalNoticeModule=Qe,e.LineChartCardComponent=j,e.LinearGaugeCardComponent=V,e.LoadFilterComponent=Bn,e.LoadingModeComponent=it,e.LoginFormComponent=Ge,e.LoginFormComponentModule=Ye,e.LogoutShortcutComponent=ct,e.MultichoiceFieldComponent=ie,e.NavigationComponentModule=vn,e.NavigationDrawerComponent=ut,e.NavigationRailComponent=ht,e.NavigationTreeComponent=vt,e.NewCaseComponent=xn,e.NumberFieldComponent=ce,e.OptionSelectorComponent=In,e.PanelComponent=Qt,e.PanelComponentModule=dn,e.PieChartCardComponent=z,e.PortalCardComponent=H,e.ProfileComponent=Yn,e.ProfileComponentModule=Zn,e.PublicWorkflowPanelComponent=an,e.QuickPanelComponent=st,e.QuickPanelComponentModule=mt,e.RedirectComponent=ia,e.RedirectComponentModule=la,e.RegistrationFormComponent=$e,e.RegistrationFormComponentModule=Ze,e.RoleAssignmentComponent=M,e.SaveFilterComponent=Mn,e.SearchClauseComponent=ke,e.SearchComponent=Ht,e.SearchComponentModule=Kt,e.SearchConfigurationInputComponent=Ne,e.SearchModeComponent=ot,e.SearchOperandInputComponent=Me,e.SearchPredicateComponent=Ee,e.SideMenuComponentModule=Kn,e.SideMenuContainerComponent=Wn,e.SideMenuContentComponentModule=$n,e.SideMenuFilterSelectorComponentModule=Ln,e.SideMenuImportNetComponentModule=Sn,e.SideMenuLoadFilterComponentModule=zn,e.SideMenuNewCaseComponentModule=wn,e.SideMenuOptionSelectorComponentModule=kn,e.SideMenuSaveFilterComponentModule=Pn,e.SideMenuUserAssignComponentModule=Ve,e.SortModeComponent=tt,e.TabCreationDetectorComponent=mn,e.TabViewComponent=pn,e.TabsComponentModule=un,e.TaskContentComponent=Xt,e.TaskContentComponentModule=nn,e.TaskListComponent=Jt,e.TaskPanelComponent=Yt,e.TaskSearchComponent=$t,e.TextFieldComponent=de,e.ToolbarComponent=Qn,e.ToolbarComponentModule=Xn,e.TreeCaseViewComponentModule=oa,e.TreeComponent=ea,e.TreeTaskContentComponent=ta,e.UserAssignComponent=ge,e.UserCardComponent=yt,e.UserComponentModule=xt,e.UserFieldComponent=fe,e.WorkflowPanelComponent=en,e.WorkflowViewComponent=Jn,e.WorkflowViewComponentModule=na,e.searchCategoryConverter=zt,e.ɵ0=Q,e.ɵ1=rt,e.ɵ2=jn,e.ɵ3=qn,e.ɵ4=Gn,e.ɵa=En,e.ɵb=_n,e.ɵba=Ue,e.ɵbb=He,e.ɵbc=Re,e.ɵbd=De,e.ɵbe=Oe,e.ɵbf=bt,e.ɵbg=Bt,e.ɵbh=Tt,e.ɵbi=_t,e.ɵbj=It,e.ɵbk=wt,e.ɵbl=Ct,e.ɵbm=St,e.ɵbo=Nt,e.ɵbp=cn,e.ɵbq=rn,e.ɵbr=on,e.ɵbs=ln,e.ɵbt=sn,e.ɵbu=Vt,e.ɵbv=Fn,e.ɵbw=aa,e.ɵbx=ra,e.ɵc=On,e.ɵd=Rn,e.ɵe=N,e.ɵf=ee,e.ɵg=te,e.ɵh=ne,e.ɵi=le,e.ɵj=se,e.ɵk=pe,e.ɵl=me,e.ɵm=ue,e.ɵn=he,e.ɵo=ve,e.ɵp=be,e.ɵq=ye,e.ɵr=xe,e.ɵs=ae,e.ɵt=we,e.ɵu=Ce,e.ɵv=Se,e.ɵw=Ae,e.ɵx=Fe,e.ɵy=Le,e.ɵz=Ie,Object.defineProperty(e,"__esModule",{value:!0})}));
16
+ //# sourceMappingURL=netgrif-components.umd.min.js.map