@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,4034 @@
1
+ import { Component, NgModule, Injector, EventEmitter, Output, Input, Optional, Inject, NgZone, ElementRef, ViewChild, Injectable, ViewEncapsulation, SkipSelf } from '@angular/core';
2
+ import { AbstractRoleAssignment, RoleAssignmentService, UserService, AbstractUserInviteComponent, UserInviteService, OrganizationListService, SignUpService, SnackBarService, MaterialModule, TranslateLibModule, AbstractAuthenticationOverlay, SessionService, SpinnerOverlayService, RedirectService, AbstractIframeCard, AbstractCountCard, AbstractCustomCard, DashboardResourceService, LoggerService, DashboardSingleData, DashboardMultiData, AbstractDashboardContent, AbstractBooleanFieldComponent, BOOLEAN_VALUE_LABEL_ENABLED, NAE_INFORM_ABOUT_INVALID_DATA, AbstractButtonFieldComponent, DialogService, AbstractDataFieldTemplateComponent, PaperViewService, ConfigurationService, DATE_FORMAT, AbstractDateFieldComponent, DATE_TIME_FORMAT, AbstractDateTimeFieldComponent, AbstractEnumerationFieldComponent, AbstractEnumerationAutocompleteSelectFieldComponent, AbstractEnumerationSelectFieldComponent, AbstractEnumerationListFieldComponent, FilePreviewType, AbstractFileFieldComponent, TaskResourceService, EventService, AbstractFileListFieldComponent, AbstractMultichoiceFieldComponent, AbstractMultichoiceSelectFieldComponent, AbstractMultichoiceListFieldComponent, AbstractNumberFieldComponent, AbstractTextFieldComponent, AbstractTextareaFieldComponent, AbstractRichTextareaFieldComponent, AbstractSimpleTextFieldComponent, AbstractUserAssignComponent, SideMenuControl, NAE_SIDE_MENU_CONTROL, UserListService, AbstractUserFieldComponent, SideMenuService, AbstractHtmlTextareaFieldComponent, AbstractCurrencyNumberFieldComponent, AbstractDefaultNumberFieldComponent, AbstractPasswordTextFieldComponent, AbstractEnumerationStepperFieldComponent, AbstractEnumerationIconFieldComponent, AbstractEnumerationAutocompleteDynamicFieldComponent, SimpleFilter, AbstractFilterFieldContentComponent, FilterField, NAE_FILTER_FIELD, SearchService, NAE_BASE_FILTER, AllowedNetsService, AllowedNetsServiceFactory, CategoryFactory, NAE_SEARCH_CATEGORIES, CategoryResolverService, AbstractFilterFieldComponent, AbstractSearchClauseComponent, AbstractSearchPredicateComponent, AdvancedSearchComponentInitializationService, AbstractSearchOperandInputComponent, SearchInputType, DATE_FORMAT_STRING, DATE_TIME_FORMAT_STRING, AbstractSearchConfigurationInputComponent, OperatorTemplatePartType, AbstractAdvancedSearchComponent, AbstractUserAssignItemComponent, AbstractUserAssignListComponent, CovalentModule, NAE_USER_ASSIGN_COMPONENT, AbstractI18nFieldComponent, AbstractI18nDividerFieldComponent, AbstractI18nTextFieldComponent, CurrencyModule, CustomDateAdapter, AbstractEmailSubmissionFormComponent, AbstractLoginFormComponent, AbstractRegistrationFormComponent, AbstractForgottenPasswordComponent, AbstractLegalNoticeComponent, AbstractHeaderComponent, OverflowService, CaseHeaderService, TaskHeaderService, WorkflowHeaderService, HeaderSearchService, AbstractSortModeComponent, AbstractEditModeComponent, AbstractSearchModeComponent, AbstractLoadingModeComponent, AbstractQuickPanelComponent, LanguageService, AbstractLogoutShortcutComponent, AbstractLanguageSelectorComponent, AbstractInternalLinkComponent, AbstractNavigationDrawerComponent, UserPreferenceService, AbstractNavigationRailComponent, AbstractNavigationTreeComponent, RoleGuardService, AuthorityGuardService, GroupGuardService, ActiveGroupService, DynamicNavigationRouteProviderService, AbstractUserCardComponent, AbstractGroupNavigationComponentResolverComponent, GroupNavigationComponentResolverService, navigationItemTaskFilterFactory, navigationItemTaskAllowedNetsServiceFactory, navigationItemTaskCategoryFactory, TabbedCaseView, CaseViewService, NAE_TAB_DATA, ViewIdService, FilterExtractionService, BaseAllowedNetsService, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_TASK_SEARCH_CATEGORIES, tabbedAllowedNetsServiceFactory, tabbedTaskViewConfigurationFactory, TabbedTaskView, TaskViewService, ChangedFieldsService, NAE_TASK_VIEW_CONFIGURATION, groupNavigationViewIdSegmentFactory, extractIconAndTitle, NAE_NAVIGATION_ITEM_TASK_DATA, NAE_VIEW_ID_SEGMENT, AbstractTaskView, extractFilterFromData, FilterType, Filter, Category, AbstractSearchComponent, UserFiltersService, NAE_SEARCH_COMPONENT_CONFIGURATION, NAE_FILTERS_FILTER, defaultCaseSearchCategoriesFactory, defaultTaskSearchCategoriesFactory, AbstractFulltextSearchComponent, DefaultSearchCategoriesModule, AbstractPanelComponent, CaseListFontColorService, AbstractTaskContentComponent, FieldConverterService, TaskContentService, TaskEventService, NAE_ASYNC_RENDERING_CONFIGURATION, AbstractTaskPanelComponent, AssignTaskService, DelegateTaskService, CancelTaskService, FinishTaskService, TaskRequestStateService, TaskDataService, AssignPolicyService, CallChainService, SubjectTaskOperations, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, PermissionService, SingleTaskContentService, DataFocusPolicyService, FinishPolicyService, AbstractCasePanelComponent, CaseResourceService, AbstractTaskListComponent, AbstractWorkflowPanelComponent, WorkflowViewService, AbstractFieldComponentResolverComponent, SnackBarModule, AbstractImmediateFilterTextContentComponent, NAE_FILTER_TEXT, AbstractImmediateFilterTextComponent, AbstractTabViewComponent, ViewService, AbstractTabCreationDetectorComponent, AbstractCaseListComponent, NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, AbstractNewCaseComponent, NAE_NEW_CASE_COMPONENT, AbstractImportNetComponent, PetriNetResourceService, AbstractFilterSelectorComponent, FilterRepository, AbstractFilterSelectorListItemComponent, AbstractOptionSelectorComponent, NAE_OPTION_SELECTOR_COMPONENT, UserFilterConstants, AbstractSaveFilterComponent, NAE_SAVE_FILTER_COMPONENT, AbstractLoadFilterComponent, NAE_DEFAULT_HEADERS, NAE_LOAD_FILTER_COMPONENT, AbstractSideMenuContainerComponent, AbstractToolbarComponent, AbstractProfileComponent, AbstractWorkflowViewComponent, ProcessService, AbstractTreeComponent, CaseTreeService, AbstractTreeTaskContentComponent, TreeTaskContentService, UnlimitedTaskContentService, SelectedCaseService, AbstractAddChildNodeComponent, AbstractRemoveNodeComponent } from '@netgrif/components-core';
3
+ import { CommonModule, CurrencyPipe } from '@angular/common';
4
+ import { TranslateService } from '@ngx-translate/core';
5
+ import { Router, RouterModule, ActivatedRoute } from '@angular/router';
6
+ import { DomSanitizer } from '@angular/platform-browser';
7
+ import { NgxChartsModule } from '@swimlane/ngx-charts';
8
+ import { FlexLayoutModule, FlexModule } from '@angular/flex-layout';
9
+ import { AngularResizedEventModule } from 'angular-resize-event';
10
+ import { HttpClientModule } from '@angular/common/http';
11
+ import { FormsModule, ReactiveFormsModule, FormBuilder } from '@angular/forms';
12
+ import { NGX_MAT_DATE_FORMATS, NgxMatDatetimePickerModule } from '@angular-material-components/datetime-picker';
13
+ import { NgxMatMomentModule } from '@angular-material-components/moment-adapter';
14
+ import { MAT_DATE_FORMATS, DateAdapter } from '@angular/material/core';
15
+ import { MAT_DIALOG_DATA, MatDialog, MatDialogModule } from '@angular/material/dialog';
16
+ import { QuillModule } from 'ngx-quill';
17
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
18
+ import 'hammerjs';
19
+ import { BreakpointObserver } from '@angular/cdk/layout';
20
+ import { trigger, state, style, transition, animate } from '@angular/animations';
21
+ import { ResizableModule } from 'angular-resizable-element';
22
+ import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
23
+ import { MatTabsModule } from '@angular/material/tabs';
24
+ import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
25
+ import { HotkeysService, HotkeyModule } from 'angular2-hotkeys';
26
+ import { MatSidenavModule } from '@angular/material/sidenav';
27
+
28
+ class RoleAssignmentComponent extends AbstractRoleAssignment {
29
+ constructor(_service, _userService) {
30
+ super(_service, _userService);
31
+ this._service = _service;
32
+ this._userService = _userService;
33
+ }
34
+ }
35
+ RoleAssignmentComponent.ctorParameters = () => [
36
+ { type: RoleAssignmentService },
37
+ { type: UserService }
38
+ ];
39
+ RoleAssignmentComponent.decorators = [
40
+ { type: Component, args: [{
41
+ selector: 'nc-role-assignment',
42
+ 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",
43
+ providers: [
44
+ RoleAssignmentService
45
+ ],
46
+ 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}"]
47
+ },] }
48
+ ];
49
+ RoleAssignmentComponent.ctorParameters = () => [
50
+ { type: RoleAssignmentService },
51
+ { type: UserService }
52
+ ];
53
+
54
+ class UserInviteComponent extends AbstractUserInviteComponent {
55
+ constructor(_userInviteService, _orgList, _signUpService, _snackBar, _translate) {
56
+ super(_userInviteService, _orgList, _signUpService, _snackBar, _translate);
57
+ this._userInviteService = _userInviteService;
58
+ this._orgList = _orgList;
59
+ this._signUpService = _signUpService;
60
+ this._snackBar = _snackBar;
61
+ this._translate = _translate;
62
+ }
63
+ }
64
+ UserInviteComponent.ctorParameters = () => [
65
+ { type: UserInviteService },
66
+ { type: OrganizationListService },
67
+ { type: SignUpService },
68
+ { type: SnackBarService },
69
+ { type: TranslateService }
70
+ ];
71
+ UserInviteComponent.decorators = [
72
+ { type: Component, args: [{
73
+ selector: 'nc-user-invite',
74
+ 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",
75
+ 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}"]
76
+ },] }
77
+ ];
78
+ UserInviteComponent.ctorParameters = () => [
79
+ { type: UserInviteService },
80
+ { type: OrganizationListService },
81
+ { type: SignUpService },
82
+ { type: SnackBarService },
83
+ { type: TranslateService }
84
+ ];
85
+
86
+ class AdminComponentModule {
87
+ }
88
+ AdminComponentModule.decorators = [
89
+ { type: NgModule, args: [{
90
+ declarations: [RoleAssignmentComponent, UserInviteComponent],
91
+ exports: [RoleAssignmentComponent, UserInviteComponent],
92
+ imports: [
93
+ CommonModule,
94
+ MaterialModule,
95
+ TranslateLibModule
96
+ ]
97
+ },] }
98
+ ];
99
+
100
+ /* COMPONENTS */
101
+
102
+ class AuthenticationOverlayComponent extends AbstractAuthenticationOverlay {
103
+ constructor(_session, _spinnerOverlay, router, redirectService, userService) {
104
+ super(_session, _spinnerOverlay, router, redirectService, userService);
105
+ this._session = _session;
106
+ this._spinnerOverlay = _spinnerOverlay;
107
+ this.router = router;
108
+ this.redirectService = redirectService;
109
+ this.userService = userService;
110
+ }
111
+ }
112
+ AuthenticationOverlayComponent.ctorParameters = () => [
113
+ { type: SessionService },
114
+ { type: SpinnerOverlayService },
115
+ { type: Router },
116
+ { type: RedirectService },
117
+ { type: UserService }
118
+ ];
119
+ AuthenticationOverlayComponent.decorators = [
120
+ { type: Component, args: [{
121
+ selector: 'nc-authentication-overlay',
122
+ template: "<ng-content></ng-content>\n",
123
+ styles: [""]
124
+ },] }
125
+ ];
126
+ AuthenticationOverlayComponent.ctorParameters = () => [
127
+ { type: SessionService },
128
+ { type: SpinnerOverlayService },
129
+ { type: Router },
130
+ { type: RedirectService },
131
+ { type: UserService }
132
+ ];
133
+
134
+ class AuthenticationComponentModule {
135
+ }
136
+ AuthenticationComponentModule.decorators = [
137
+ { type: NgModule, args: [{
138
+ declarations: [AuthenticationOverlayComponent],
139
+ exports: [AuthenticationOverlayComponent],
140
+ imports: [
141
+ CommonModule
142
+ ]
143
+ },] }
144
+ ];
145
+
146
+ /* COMPONENTS */
147
+
148
+ class IframeCardComponent extends AbstractIframeCard {
149
+ constructor(_sanitizer) {
150
+ super(_sanitizer);
151
+ this._sanitizer = _sanitizer;
152
+ }
153
+ }
154
+ IframeCardComponent.ctorParameters = () => [
155
+ { type: DomSanitizer }
156
+ ];
157
+ IframeCardComponent.decorators = [
158
+ { type: Component, args: [{
159
+ selector: 'nc-iframe-card',
160
+ 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",
161
+ styles: [".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}"]
162
+ },] }
163
+ ];
164
+ IframeCardComponent.ctorParameters = () => [
165
+ { type: DomSanitizer }
166
+ ];
167
+
168
+ class CountCardComponent extends AbstractCountCard {
169
+ constructor(_injector) {
170
+ super(_injector);
171
+ this._injector = _injector;
172
+ }
173
+ }
174
+ CountCardComponent.ctorParameters = () => [
175
+ { type: Injector }
176
+ ];
177
+ CountCardComponent.decorators = [
178
+ { type: Component, args: [{
179
+ selector: 'nc-count-card',
180
+ 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",
181
+ styles: [".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.number{font-size:80px}"]
182
+ },] }
183
+ ];
184
+ CountCardComponent.ctorParameters = () => [
185
+ { type: Injector }
186
+ ];
187
+
188
+ class LinearGaugeCardComponent extends AbstractCustomCard {
189
+ constructor(_injector, resourceService, translateService, loggerService) {
190
+ super(_injector, resourceService, translateService, loggerService);
191
+ this._injector = _injector;
192
+ this.resourceService = resourceService;
193
+ this.translateService = translateService;
194
+ this.loggerService = loggerService;
195
+ this.selectEvent = new EventEmitter();
196
+ }
197
+ ngOnInit() {
198
+ super.ngOnInit();
199
+ }
200
+ onSelect(data) {
201
+ this.loggerService.info('Linear gauge selected.');
202
+ this.selectEvent.emit(data);
203
+ }
204
+ convertData(json) {
205
+ this.value = json.aggregations.types_count.value;
206
+ }
207
+ }
208
+ LinearGaugeCardComponent.ctorParameters = () => [
209
+ { type: Injector },
210
+ { type: DashboardResourceService },
211
+ { type: TranslateService },
212
+ { type: LoggerService }
213
+ ];
214
+ LinearGaugeCardComponent.decorators = [
215
+ { type: Component, args: [{
216
+ selector: 'nc-linear-gauge-card',
217
+ 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",
218
+ 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}"]
219
+ },] }
220
+ ];
221
+ LinearGaugeCardComponent.ctorParameters = () => [
222
+ { type: Injector },
223
+ { type: DashboardResourceService },
224
+ { type: TranslateService },
225
+ { type: LoggerService }
226
+ ];
227
+ LinearGaugeCardComponent.propDecorators = {
228
+ selectEvent: [{ type: Output }]
229
+ };
230
+
231
+ class PieChartCardComponent extends AbstractCustomCard {
232
+ constructor(_injector, resourceService, translateService, loggerService) {
233
+ super(_injector, resourceService, translateService, loggerService);
234
+ this._injector = _injector;
235
+ this.resourceService = resourceService;
236
+ this.translateService = translateService;
237
+ this.loggerService = loggerService;
238
+ this.isDoughnut = false;
239
+ this.legendPosition = 'right';
240
+ this.selectEvent = new EventEmitter();
241
+ }
242
+ ngOnInit() {
243
+ super.ngOnInit();
244
+ }
245
+ onSelect(data) {
246
+ this.loggerService.info('Pie chart selected.');
247
+ this.selectEvent.emit(data);
248
+ }
249
+ convertData(json) {
250
+ json.aggregations.result.buckets.forEach(bucket => {
251
+ this.single.push(new DashboardSingleData(bucket.key, bucket.doc_count));
252
+ });
253
+ this.single = [...this.single];
254
+ }
255
+ }
256
+ PieChartCardComponent.ctorParameters = () => [
257
+ { type: Injector },
258
+ { type: DashboardResourceService },
259
+ { type: TranslateService },
260
+ { type: LoggerService }
261
+ ];
262
+ PieChartCardComponent.decorators = [
263
+ { type: Component, args: [{
264
+ selector: 'nc-pie-chart-card',
265
+ 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",
266
+ 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%}"]
267
+ },] }
268
+ ];
269
+ PieChartCardComponent.ctorParameters = () => [
270
+ { type: Injector },
271
+ { type: DashboardResourceService },
272
+ { type: TranslateService },
273
+ { type: LoggerService }
274
+ ];
275
+ PieChartCardComponent.propDecorators = {
276
+ selectEvent: [{ type: Output }]
277
+ };
278
+
279
+ class BarchartCardComponent extends AbstractCustomCard {
280
+ constructor(_injector, resourceService, translateService, loggerService) {
281
+ super(_injector, resourceService, translateService, loggerService);
282
+ this._injector = _injector;
283
+ this.resourceService = resourceService;
284
+ this.translateService = translateService;
285
+ this.loggerService = loggerService;
286
+ this.selectEvent = new EventEmitter();
287
+ }
288
+ ngOnInit() {
289
+ super.ngOnInit();
290
+ }
291
+ onSelect(data) {
292
+ this.loggerService.info('BarChart was selected');
293
+ this.selectEvent.emit(data);
294
+ }
295
+ convertData(json) {
296
+ json.aggregations.result.buckets.forEach(bucket => {
297
+ this.single.push(new DashboardSingleData(bucket.key, bucket.doc_count));
298
+ });
299
+ this.single = [...this.single];
300
+ }
301
+ }
302
+ BarchartCardComponent.ctorParameters = () => [
303
+ { type: Injector },
304
+ { type: DashboardResourceService },
305
+ { type: TranslateService },
306
+ { type: LoggerService }
307
+ ];
308
+ BarchartCardComponent.decorators = [
309
+ { type: Component, args: [{
310
+ selector: 'nc-barchart-card',
311
+ 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",
312
+ 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}"]
313
+ },] }
314
+ ];
315
+ BarchartCardComponent.ctorParameters = () => [
316
+ { type: Injector },
317
+ { type: DashboardResourceService },
318
+ { type: TranslateService },
319
+ { type: LoggerService }
320
+ ];
321
+ BarchartCardComponent.propDecorators = {
322
+ selectEvent: [{ type: Output }]
323
+ };
324
+
325
+ class PortalCardComponent extends AbstractCustomCard {
326
+ constructor(_injector, resourceService, translateService, loggerService) {
327
+ super(_injector, resourceService, translateService, loggerService);
328
+ this._injector = _injector;
329
+ this.resourceService = resourceService;
330
+ this.translateService = translateService;
331
+ this.loggerService = loggerService;
332
+ this.selectEvent = new EventEmitter();
333
+ }
334
+ ngOnInit() {
335
+ this.injectedDashboard = this.componentPortal;
336
+ }
337
+ onSelect(data) {
338
+ this.loggerService.info('Custom dashboard selected.');
339
+ this.selectEvent.emit(data);
340
+ }
341
+ convertData(json) {
342
+ }
343
+ }
344
+ PortalCardComponent.ctorParameters = () => [
345
+ { type: Injector },
346
+ { type: DashboardResourceService },
347
+ { type: TranslateService },
348
+ { type: LoggerService }
349
+ ];
350
+ PortalCardComponent.decorators = [
351
+ { type: Component, args: [{
352
+ selector: 'nc-portal-card',
353
+ template: "<ng-template [cdkPortalOutlet]=\"injectedDashboard\">\n</ng-template>\n",
354
+ 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%}"]
355
+ },] }
356
+ ];
357
+ PortalCardComponent.ctorParameters = () => [
358
+ { type: Injector },
359
+ { type: DashboardResourceService },
360
+ { type: TranslateService },
361
+ { type: LoggerService }
362
+ ];
363
+ PortalCardComponent.propDecorators = {
364
+ componentPortal: [{ type: Input }],
365
+ selectEvent: [{ type: Output }]
366
+ };
367
+
368
+ class LineChartCardComponent extends AbstractCustomCard {
369
+ constructor(_injector, resourceService, translateService, loggerService) {
370
+ super(_injector, resourceService, translateService, loggerService);
371
+ this._injector = _injector;
372
+ this.resourceService = resourceService;
373
+ this.translateService = translateService;
374
+ this.loggerService = loggerService;
375
+ this.timeline = true;
376
+ this.selectEvent = new EventEmitter();
377
+ }
378
+ ngOnInit() {
379
+ super.ngOnInit();
380
+ }
381
+ onSelect(data) {
382
+ this.loggerService.info('Line chart selected.');
383
+ this.selectEvent.emit(data);
384
+ }
385
+ convertData(json) {
386
+ let index = 0;
387
+ let result;
388
+ for (result in json.aggregations) {
389
+ if (json.aggregations.hasOwnProperty(result)) {
390
+ this.multi.push(new DashboardMultiData(result, new Array()));
391
+ json.aggregations[result].buckets.forEach(bucket => {
392
+ this.multi[index].series.push(new DashboardSingleData(bucket.key, bucket.doc_count));
393
+ });
394
+ index++;
395
+ }
396
+ }
397
+ this.multi = [...this.multi];
398
+ }
399
+ }
400
+ LineChartCardComponent.ctorParameters = () => [
401
+ { type: Injector },
402
+ { type: DashboardResourceService },
403
+ { type: TranslateService },
404
+ { type: LoggerService }
405
+ ];
406
+ LineChartCardComponent.decorators = [
407
+ { type: Component, args: [{
408
+ selector: 'nc-line-chart-card',
409
+ 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",
410
+ 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}"]
411
+ },] }
412
+ ];
413
+ LineChartCardComponent.ctorParameters = () => [
414
+ { type: Injector },
415
+ { type: DashboardResourceService },
416
+ { type: TranslateService },
417
+ { type: LoggerService }
418
+ ];
419
+ LineChartCardComponent.propDecorators = {
420
+ selectEvent: [{ type: Output }]
421
+ };
422
+
423
+ class DashboardContentComponent extends AbstractDashboardContent {
424
+ constructor(_log) {
425
+ super(_log);
426
+ this._log = _log;
427
+ }
428
+ }
429
+ DashboardContentComponent.ctorParameters = () => [
430
+ { type: LoggerService }
431
+ ];
432
+ DashboardContentComponent.decorators = [
433
+ { type: Component, args: [{
434
+ selector: 'nc-dashboard-content',
435
+ 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",
436
+ styles: [".full-size{width:100%;height:100%;margin:auto;padding:0}"]
437
+ },] }
438
+ ];
439
+ DashboardContentComponent.ctorParameters = () => [
440
+ { type: LoggerService }
441
+ ];
442
+
443
+ class DashboardComponentModule {
444
+ }
445
+ DashboardComponentModule.decorators = [
446
+ { type: NgModule, args: [{
447
+ declarations: [
448
+ CountCardComponent,
449
+ IframeCardComponent,
450
+ DashboardContentComponent,
451
+ PieChartCardComponent,
452
+ LineChartCardComponent,
453
+ BarchartCardComponent,
454
+ LinearGaugeCardComponent,
455
+ PortalCardComponent
456
+ ],
457
+ exports: [
458
+ CountCardComponent,
459
+ IframeCardComponent,
460
+ DashboardContentComponent,
461
+ PieChartCardComponent,
462
+ LineChartCardComponent,
463
+ BarchartCardComponent,
464
+ LinearGaugeCardComponent
465
+ ],
466
+ imports: [
467
+ CommonModule,
468
+ MaterialModule,
469
+ TranslateLibModule,
470
+ NgxChartsModule
471
+ ]
472
+ },] }
473
+ ];
474
+
475
+ /* COMPONENTS */
476
+
477
+ class BooleanFieldComponent extends AbstractBooleanFieldComponent {
478
+ constructor(translate, isEnabled, informAboutInvalidData) {
479
+ super(translate, informAboutInvalidData);
480
+ this.isEnabled = isEnabled;
481
+ this.valueLabelEnabled = isEnabled;
482
+ }
483
+ }
484
+ BooleanFieldComponent.ctorParameters = () => [
485
+ { type: TranslateService },
486
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [BOOLEAN_VALUE_LABEL_ENABLED,] }] },
487
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
488
+ ];
489
+ BooleanFieldComponent.decorators = [
490
+ { type: Component, args: [{
491
+ selector: 'nc-boolean-field',
492
+ 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",
493
+ styles: [""]
494
+ },] }
495
+ ];
496
+ BooleanFieldComponent.ctorParameters = () => [
497
+ { type: TranslateService },
498
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [BOOLEAN_VALUE_LABEL_ENABLED,] }] },
499
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
500
+ ];
501
+
502
+ class ButtonFieldComponent extends AbstractButtonFieldComponent {
503
+ constructor(translate, dialogService, informAboutInvalidData) {
504
+ super(translate, dialogService, informAboutInvalidData);
505
+ this.dialogService = dialogService;
506
+ }
507
+ }
508
+ ButtonFieldComponent.ctorParameters = () => [
509
+ { type: TranslateService },
510
+ { type: DialogService },
511
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
512
+ ];
513
+ ButtonFieldComponent.decorators = [
514
+ { type: Component, args: [{
515
+ selector: 'nc-button-field',
516
+ 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",
517
+ 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}"]
518
+ },] }
519
+ ];
520
+ ButtonFieldComponent.ctorParameters = () => [
521
+ { type: TranslateService },
522
+ { type: DialogService },
523
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
524
+ ];
525
+
526
+ class DataFieldTemplateComponent extends AbstractDataFieldTemplateComponent {
527
+ constructor(_paperView, _config) {
528
+ super(_paperView, _config);
529
+ this._paperView = _paperView;
530
+ this._config = _config;
531
+ }
532
+ }
533
+ DataFieldTemplateComponent.ctorParameters = () => [
534
+ { type: PaperViewService },
535
+ { type: ConfigurationService }
536
+ ];
537
+ DataFieldTemplateComponent.decorators = [
538
+ { type: Component, args: [{
539
+ selector: 'nc-data-field-template',
540
+ template: "<div class=\"fill-all-space\" #dataFieldContainer>\n\n <!-- Large layout -->\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 <!-- Small layout -->\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",
541
+ 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}"]
542
+ },] }
543
+ ];
544
+ DataFieldTemplateComponent.ctorParameters = () => [
545
+ { type: PaperViewService },
546
+ { type: ConfigurationService }
547
+ ];
548
+
549
+ const ɵ0 = DATE_FORMAT;
550
+ class DateFieldComponent extends AbstractDateFieldComponent {
551
+ constructor(translate, informAboutInvalidData) {
552
+ super(translate, informAboutInvalidData);
553
+ }
554
+ }
555
+ DateFieldComponent.ctorParameters = () => [
556
+ { type: TranslateService },
557
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
558
+ ];
559
+ DateFieldComponent.decorators = [
560
+ { type: Component, args: [{
561
+ selector: 'nc-date-field',
562
+ 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",
563
+ providers: [
564
+ { provide: MAT_DATE_FORMATS, useValue: ɵ0 }
565
+ ],
566
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
567
+ },] }
568
+ ];
569
+ DateFieldComponent.ctorParameters = () => [
570
+ { type: TranslateService },
571
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
572
+ ];
573
+
574
+ const ɵ0$1 = DATE_TIME_FORMAT;
575
+ class DateTimeFieldComponent extends AbstractDateTimeFieldComponent {
576
+ constructor(translate, informAboutInvalidData) {
577
+ super(translate, informAboutInvalidData);
578
+ }
579
+ }
580
+ DateTimeFieldComponent.ctorParameters = () => [
581
+ { type: TranslateService },
582
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
583
+ ];
584
+ DateTimeFieldComponent.decorators = [
585
+ { type: Component, args: [{
586
+ selector: 'nc-date-time-field',
587
+ 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",
588
+ providers: [
589
+ { provide: NGX_MAT_DATE_FORMATS, useValue: ɵ0$1 }
590
+ ],
591
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
592
+ },] }
593
+ ];
594
+ DateTimeFieldComponent.ctorParameters = () => [
595
+ { type: TranslateService },
596
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
597
+ ];
598
+
599
+ class EnumerationFieldComponent extends AbstractEnumerationFieldComponent {
600
+ constructor(informAboutInvalidData) {
601
+ super(informAboutInvalidData);
602
+ }
603
+ }
604
+ EnumerationFieldComponent.ctorParameters = () => [
605
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
606
+ ];
607
+ EnumerationFieldComponent.decorators = [
608
+ { type: Component, args: [{
609
+ selector: 'nc-enumeration-field',
610
+ 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",
611
+ styles: [""]
612
+ },] }
613
+ ];
614
+ EnumerationFieldComponent.ctorParameters = () => [
615
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
616
+ ];
617
+
618
+ class EnumerationAutocompleteSelectFieldComponent extends AbstractEnumerationAutocompleteSelectFieldComponent {
619
+ constructor(_translate) {
620
+ super(_translate);
621
+ this._translate = _translate;
622
+ }
623
+ }
624
+ EnumerationAutocompleteSelectFieldComponent.ctorParameters = () => [
625
+ { type: TranslateService }
626
+ ];
627
+ EnumerationAutocompleteSelectFieldComponent.decorators = [
628
+ { type: Component, args: [{
629
+ selector: 'nc-enumeration-autocomplete-select-field',
630
+ 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",
631
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
632
+ },] }
633
+ ];
634
+ EnumerationAutocompleteSelectFieldComponent.ctorParameters = () => [
635
+ { type: TranslateService }
636
+ ];
637
+
638
+ class EnumerationSelectFieldComponent extends AbstractEnumerationSelectFieldComponent {
639
+ constructor() {
640
+ super();
641
+ }
642
+ }
643
+ EnumerationSelectFieldComponent.decorators = [
644
+ { type: Component, args: [{
645
+ selector: 'nc-enumeration-select-field',
646
+ 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",
647
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
648
+ },] }
649
+ ];
650
+ EnumerationSelectFieldComponent.ctorParameters = () => [];
651
+
652
+ class EnumerationListFieldComponent extends AbstractEnumerationListFieldComponent {
653
+ constructor() {
654
+ super();
655
+ }
656
+ }
657
+ EnumerationListFieldComponent.decorators = [
658
+ { type: Component, args: [{
659
+ selector: 'nc-enumeration-list-field',
660
+ 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",
661
+ styles: [".example-radio-group{display:flex;flex-direction:column;margin:16px 0}.example-radio-button{margin:8px}.full-width{width:100%}"]
662
+ },] }
663
+ ];
664
+ EnumerationListFieldComponent.ctorParameters = () => [];
665
+
666
+ class PreviewDialogComponent {
667
+ constructor(data) {
668
+ this.data = data;
669
+ data.imageFull.subscribe(imageSource => {
670
+ this.image = imageSource;
671
+ });
672
+ }
673
+ ngOnInit() {
674
+ }
675
+ fullImageExists() {
676
+ return !!this.image;
677
+ }
678
+ isPdf() {
679
+ return this.data.extension === FilePreviewType.pdf;
680
+ }
681
+ }
682
+ PreviewDialogComponent.ctorParameters = () => [
683
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
684
+ ];
685
+ PreviewDialogComponent.decorators = [
686
+ { type: Component, args: [{
687
+ selector: 'nc-preview-dialog',
688
+ 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",
689
+ styles: [".image-size{max-height:64vh}.close{float:right;top:-24px;right:-24px}.pdf-view{width:50vw;height:64vh}"]
690
+ },] }
691
+ ];
692
+ PreviewDialogComponent.ctorParameters = () => [
693
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
694
+ ];
695
+
696
+ class FileFieldComponent extends AbstractFileFieldComponent {
697
+ constructor(taskResourceService, log, snackbar, translate, eventService, informAboutInvalidData, _sanitizer, dialog) {
698
+ super(taskResourceService, log, snackbar, translate, eventService, informAboutInvalidData, _sanitizer);
699
+ this._sanitizer = _sanitizer;
700
+ this.dialog = dialog;
701
+ }
702
+ showPreviewDialog() {
703
+ super.showPreviewDialog();
704
+ this.dialog.open(PreviewDialogComponent, {
705
+ data: {
706
+ dataField: this.dataField,
707
+ imagePreview: this.previewSource,
708
+ imageFull: this.fullSource,
709
+ extension: this.previewExtension
710
+ }
711
+ });
712
+ }
713
+ }
714
+ FileFieldComponent.ctorParameters = () => [
715
+ { type: TaskResourceService },
716
+ { type: LoggerService },
717
+ { type: SnackBarService },
718
+ { type: TranslateService },
719
+ { type: EventService },
720
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] },
721
+ { type: DomSanitizer },
722
+ { type: MatDialog }
723
+ ];
724
+ FileFieldComponent.decorators = [
725
+ { type: Component, args: [{
726
+ selector: 'nc-file-field',
727
+ 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",
728
+ 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}"]
729
+ },] }
730
+ ];
731
+ FileFieldComponent.ctorParameters = () => [
732
+ { type: TaskResourceService },
733
+ { type: LoggerService },
734
+ { type: SnackBarService },
735
+ { type: TranslateService },
736
+ { type: EventService },
737
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] },
738
+ { type: DomSanitizer },
739
+ { type: MatDialog }
740
+ ];
741
+
742
+ class FileListFieldComponent extends AbstractFileListFieldComponent {
743
+ constructor(taskResourceService, log, snackbar, translate, eventService, informAboutInvalidData) {
744
+ super(taskResourceService, log, snackbar, translate, eventService, informAboutInvalidData);
745
+ }
746
+ }
747
+ FileListFieldComponent.ctorParameters = () => [
748
+ { type: TaskResourceService },
749
+ { type: LoggerService },
750
+ { type: SnackBarService },
751
+ { type: TranslateService },
752
+ { type: EventService },
753
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
754
+ ];
755
+ FileListFieldComponent.decorators = [
756
+ { type: Component, args: [{
757
+ selector: 'nc-file-list-field',
758
+ 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",
759
+ 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}"]
760
+ },] }
761
+ ];
762
+ FileListFieldComponent.ctorParameters = () => [
763
+ { type: TaskResourceService },
764
+ { type: LoggerService },
765
+ { type: SnackBarService },
766
+ { type: TranslateService },
767
+ { type: EventService },
768
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
769
+ ];
770
+
771
+ class MultichoiceFieldComponent extends AbstractMultichoiceFieldComponent {
772
+ constructor(informAboutInvalidData) {
773
+ super(informAboutInvalidData);
774
+ }
775
+ }
776
+ MultichoiceFieldComponent.ctorParameters = () => [
777
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
778
+ ];
779
+ MultichoiceFieldComponent.decorators = [
780
+ { type: Component, args: [{
781
+ selector: 'nc-multichoice-field',
782
+ 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 <!-- @deprecated in 4.3.0-->\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",
783
+ styles: [""]
784
+ },] }
785
+ ];
786
+ MultichoiceFieldComponent.ctorParameters = () => [
787
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
788
+ ];
789
+
790
+ class MultichoiceSelectFieldComponent extends AbstractMultichoiceSelectFieldComponent {
791
+ }
792
+ MultichoiceSelectFieldComponent.decorators = [
793
+ { type: Component, args: [{
794
+ selector: 'nc-multichoice-select-field',
795
+ 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",
796
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
797
+ },] }
798
+ ];
799
+
800
+ class MultichoiceListFieldComponent extends AbstractMultichoiceListFieldComponent {
801
+ constructor() {
802
+ super();
803
+ }
804
+ }
805
+ MultichoiceListFieldComponent.decorators = [
806
+ { type: Component, args: [{
807
+ selector: 'nc-multichoice-list-field',
808
+ 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",
809
+ styles: [""]
810
+ },] }
811
+ ];
812
+ MultichoiceListFieldComponent.ctorParameters = () => [];
813
+
814
+ class NumberFieldComponent extends AbstractNumberFieldComponent {
815
+ constructor(translate, informAboutInvalidData) {
816
+ super(translate, informAboutInvalidData);
817
+ }
818
+ resolveComponent() {
819
+ if (this.dataField.component !== undefined) {
820
+ return this.dataField.component.name;
821
+ }
822
+ else {
823
+ return 'default';
824
+ }
825
+ }
826
+ }
827
+ NumberFieldComponent.ctorParameters = () => [
828
+ { type: TranslateService },
829
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
830
+ ];
831
+ NumberFieldComponent.decorators = [
832
+ { type: Component, args: [{
833
+ selector: 'nc-number-field',
834
+ 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",
835
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
836
+ },] }
837
+ ];
838
+ NumberFieldComponent.ctorParameters = () => [
839
+ { type: TranslateService },
840
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
841
+ ];
842
+
843
+ class TextFieldComponent extends AbstractTextFieldComponent {
844
+ constructor(informAboutInvalidData) {
845
+ super(informAboutInvalidData);
846
+ }
847
+ }
848
+ TextFieldComponent.ctorParameters = () => [
849
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
850
+ ];
851
+ TextFieldComponent.decorators = [
852
+ { type: Component, args: [{
853
+ selector: 'nc-text-field',
854
+ 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 <!-- @deprecated in 4.3.0-->\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",
855
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
856
+ },] }
857
+ ];
858
+ TextFieldComponent.ctorParameters = () => [
859
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
860
+ ];
861
+
862
+ class TextareaFieldComponent extends AbstractTextareaFieldComponent {
863
+ constructor(_translate, _ngZone) {
864
+ super(_translate, _ngZone);
865
+ this._translate = _translate;
866
+ this._ngZone = _ngZone;
867
+ }
868
+ }
869
+ TextareaFieldComponent.ctorParameters = () => [
870
+ { type: TranslateService },
871
+ { type: NgZone }
872
+ ];
873
+ TextareaFieldComponent.decorators = [
874
+ { type: Component, args: [{
875
+ selector: 'nc-textarea-field',
876
+ 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",
877
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
878
+ },] }
879
+ ];
880
+ TextareaFieldComponent.ctorParameters = () => [
881
+ { type: TranslateService },
882
+ { type: NgZone }
883
+ ];
884
+
885
+ class RichTextareaFieldComponent extends AbstractRichTextareaFieldComponent {
886
+ constructor(_translate) {
887
+ super(_translate);
888
+ this._translate = _translate;
889
+ }
890
+ }
891
+ RichTextareaFieldComponent.ctorParameters = () => [
892
+ { type: TranslateService }
893
+ ];
894
+ RichTextareaFieldComponent.decorators = [
895
+ { type: Component, args: [{
896
+ selector: 'nc-rich-textarea-field',
897
+ 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",
898
+ styles: [".height-100{height:100%}.border{border:1px solid #ddd;border-radius:4px;padding:10px;z-index:1;word-wrap:break-word}"]
899
+ },] }
900
+ ];
901
+ RichTextareaFieldComponent.ctorParameters = () => [
902
+ { type: TranslateService }
903
+ ];
904
+
905
+ class SimpleTextFieldComponent extends AbstractSimpleTextFieldComponent {
906
+ constructor(_translate) {
907
+ super(_translate);
908
+ this._translate = _translate;
909
+ }
910
+ }
911
+ SimpleTextFieldComponent.ctorParameters = () => [
912
+ { type: TranslateService }
913
+ ];
914
+ SimpleTextFieldComponent.decorators = [
915
+ { type: Component, args: [{
916
+ selector: 'nc-simple-text-field',
917
+ 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",
918
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
919
+ },] }
920
+ ];
921
+ SimpleTextFieldComponent.ctorParameters = () => [
922
+ { type: TranslateService }
923
+ ];
924
+
925
+ /**
926
+ * Is the main - parent component of the entire user assignment in the side menu.
927
+ *
928
+ * Holds logic link of the [UserAssignListComponent]{@link UserAssignListComponent}
929
+ * along with searching, selecting, and then assigning to the user field.
930
+ */
931
+ class UserAssignComponent extends AbstractUserAssignComponent {
932
+ constructor(_sideMenuControl) {
933
+ super(_sideMenuControl);
934
+ this._sideMenuControl = _sideMenuControl;
935
+ }
936
+ }
937
+ UserAssignComponent.ctorParameters = () => [
938
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] }
939
+ ];
940
+ UserAssignComponent.decorators = [
941
+ { type: Component, args: [{
942
+ selector: 'nc-user-assign',
943
+ 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",
944
+ providers: [UserListService],
945
+ 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}"]
946
+ },] }
947
+ ];
948
+ UserAssignComponent.ctorParameters = () => [
949
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] }
950
+ ];
951
+
952
+ class UserFieldComponent extends AbstractUserFieldComponent {
953
+ constructor(sideMenuService, snackbar, translate, informAboutInvalidData) {
954
+ super(sideMenuService, snackbar, translate, informAboutInvalidData);
955
+ }
956
+ selectUser() {
957
+ this.selectAbstractUser(UserAssignComponent);
958
+ }
959
+ }
960
+ UserFieldComponent.ctorParameters = () => [
961
+ { type: SideMenuService },
962
+ { type: SnackBarService },
963
+ { type: TranslateService },
964
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
965
+ ];
966
+ UserFieldComponent.decorators = [
967
+ { type: Component, args: [{
968
+ selector: 'nc-user-field',
969
+ 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",
970
+ styles: [""]
971
+ },] }
972
+ ];
973
+ UserFieldComponent.ctorParameters = () => [
974
+ { type: SideMenuService },
975
+ { type: SnackBarService },
976
+ { type: TranslateService },
977
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
978
+ ];
979
+
980
+ class RequiredLabelComponent {
981
+ constructor() {
982
+ this.isIn = false;
983
+ }
984
+ ngOnInit() {
985
+ }
986
+ }
987
+ RequiredLabelComponent.decorators = [
988
+ { type: Component, args: [{
989
+ selector: 'nc-required-label',
990
+ template: "<span class=\"required-label-color\" [ngClass]=\"{ 'disabled-opacity-45': !isIn }\"> * </span>\n",
991
+ styles: [".required-label-color{color:red}.disabled-opacity-45{opacity:.45}"]
992
+ },] }
993
+ ];
994
+ RequiredLabelComponent.ctorParameters = () => [];
995
+ RequiredLabelComponent.propDecorators = {
996
+ isIn: [{ type: Input }]
997
+ };
998
+
999
+ class HtmlTextareaFieldComponent extends AbstractHtmlTextareaFieldComponent {
1000
+ constructor(_translate, _sanitizer) {
1001
+ super(_translate, _sanitizer);
1002
+ this._translate = _translate;
1003
+ this._sanitizer = _sanitizer;
1004
+ }
1005
+ }
1006
+ HtmlTextareaFieldComponent.ctorParameters = () => [
1007
+ { type: TranslateService },
1008
+ { type: DomSanitizer }
1009
+ ];
1010
+ HtmlTextareaFieldComponent.decorators = [
1011
+ { type: Component, args: [{
1012
+ selector: 'nc-html-textarea-field',
1013
+ 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",
1014
+ styles: [".height-100{height:100%}.border{border:1px solid #ddd;border-radius:4px;padding:10px;z-index:1;word-wrap:break-word}"]
1015
+ },] }
1016
+ ];
1017
+ HtmlTextareaFieldComponent.ctorParameters = () => [
1018
+ { type: TranslateService },
1019
+ { type: DomSanitizer }
1020
+ ];
1021
+
1022
+ class NumberCurrencyFieldComponent extends AbstractCurrencyNumberFieldComponent {
1023
+ constructor(currencyPipe, translate) {
1024
+ super(currencyPipe, translate);
1025
+ }
1026
+ ngOnInit() {
1027
+ super.ngOnInit();
1028
+ }
1029
+ onFocusOut(event) {
1030
+ this.transformToText(event);
1031
+ }
1032
+ onFocusIn() {
1033
+ this.transformToNumber();
1034
+ }
1035
+ }
1036
+ NumberCurrencyFieldComponent.ctorParameters = () => [
1037
+ { type: CurrencyPipe },
1038
+ { type: TranslateService }
1039
+ ];
1040
+ NumberCurrencyFieldComponent.decorators = [
1041
+ { type: Component, args: [{
1042
+ selector: 'nc-number-currency-field',
1043
+ 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",
1044
+ styles: [".full-width{margin:0 auto;width:90%}.currency-label{margin-left:5px}"]
1045
+ },] }
1046
+ ];
1047
+ NumberCurrencyFieldComponent.ctorParameters = () => [
1048
+ { type: CurrencyPipe },
1049
+ { type: TranslateService }
1050
+ ];
1051
+
1052
+ class NumberDefaultFieldComponent extends AbstractDefaultNumberFieldComponent {
1053
+ constructor(translate) {
1054
+ super(translate);
1055
+ }
1056
+ }
1057
+ NumberDefaultFieldComponent.ctorParameters = () => [
1058
+ { type: TranslateService }
1059
+ ];
1060
+ NumberDefaultFieldComponent.decorators = [
1061
+ { type: Component, args: [{
1062
+ selector: 'nc-number-default-field',
1063
+ 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",
1064
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
1065
+ },] }
1066
+ ];
1067
+ NumberDefaultFieldComponent.ctorParameters = () => [
1068
+ { type: TranslateService }
1069
+ ];
1070
+
1071
+ class PasswordTextFieldComponent extends AbstractPasswordTextFieldComponent {
1072
+ constructor(_translate) {
1073
+ super(_translate);
1074
+ this._translate = _translate;
1075
+ this.hide = true;
1076
+ }
1077
+ ngOnInit() {
1078
+ }
1079
+ }
1080
+ PasswordTextFieldComponent.ctorParameters = () => [
1081
+ { type: TranslateService }
1082
+ ];
1083
+ PasswordTextFieldComponent.decorators = [
1084
+ { type: Component, args: [{
1085
+ selector: 'nc-password-text-field',
1086
+ 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",
1087
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
1088
+ },] }
1089
+ ];
1090
+ PasswordTextFieldComponent.ctorParameters = () => [
1091
+ { type: TranslateService }
1092
+ ];
1093
+
1094
+ class EnumerationStepperFieldComponent extends AbstractEnumerationStepperFieldComponent {
1095
+ constructor(ref) {
1096
+ super(ref);
1097
+ this.ref = ref;
1098
+ }
1099
+ }
1100
+ EnumerationStepperFieldComponent.ctorParameters = () => [
1101
+ { type: ElementRef }
1102
+ ];
1103
+ EnumerationStepperFieldComponent.decorators = [
1104
+ { type: Component, args: [{
1105
+ selector: 'nc-enumeration-stepper-field',
1106
+ 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",
1107
+ 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}"]
1108
+ },] }
1109
+ ];
1110
+ EnumerationStepperFieldComponent.ctorParameters = () => [
1111
+ { type: ElementRef }
1112
+ ];
1113
+
1114
+ class EnumerationIconFieldComponent extends AbstractEnumerationIconFieldComponent {
1115
+ constructor() {
1116
+ super();
1117
+ }
1118
+ }
1119
+ EnumerationIconFieldComponent.decorators = [
1120
+ { type: Component, args: [{
1121
+ selector: 'nc-enumeration-icon-field',
1122
+ 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",
1123
+ 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}"]
1124
+ },] }
1125
+ ];
1126
+ EnumerationIconFieldComponent.ctorParameters = () => [];
1127
+
1128
+ class EnumerationAutocompleteDynamicFieldComponent extends AbstractEnumerationAutocompleteDynamicFieldComponent {
1129
+ constructor(_translate) {
1130
+ super(_translate);
1131
+ this._translate = _translate;
1132
+ }
1133
+ }
1134
+ EnumerationAutocompleteDynamicFieldComponent.ctorParameters = () => [
1135
+ { type: TranslateService }
1136
+ ];
1137
+ EnumerationAutocompleteDynamicFieldComponent.decorators = [
1138
+ { type: Component, args: [{
1139
+ selector: 'nc-enumeration-autocomplete-dynamic-field',
1140
+ 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",
1141
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
1142
+ },] }
1143
+ ];
1144
+ EnumerationAutocompleteDynamicFieldComponent.ctorParameters = () => [
1145
+ { type: TranslateService }
1146
+ ];
1147
+
1148
+ function filterFieldBaseFilterFactory(filterField) {
1149
+ return {
1150
+ filter: SimpleFilter.empty(filterField.filterMetadata.filterType)
1151
+ };
1152
+ }
1153
+ function filterFieldAllowedNetsFactory(factory, filterField) {
1154
+ return factory.createFromArray(filterField.allowedNets);
1155
+ }
1156
+ function filterFieldCategoriesFactory(factory, filterField) {
1157
+ const result = filterField.filterMetadata.searchCategories.map(c => factory.toClass(c));
1158
+ return result;
1159
+ }
1160
+ class FilterFieldContentComponent extends AbstractFilterFieldContentComponent {
1161
+ constructor(filterField, fieldSearchService) {
1162
+ super(filterField, fieldSearchService);
1163
+ }
1164
+ }
1165
+ FilterFieldContentComponent.ctorParameters = () => [
1166
+ { type: FilterField, decorators: [{ type: Inject, args: [NAE_FILTER_FIELD,] }] },
1167
+ { type: SearchService }
1168
+ ];
1169
+ FilterFieldContentComponent.decorators = [
1170
+ { type: Component, args: [{
1171
+ selector: 'nc-filter-field-content',
1172
+ template: "<nc-advanced-search *ngIf=\"filterLoaded\" [editable]=\"editable\"></nc-advanced-search>\n",
1173
+ providers: [
1174
+ { provide: NAE_BASE_FILTER, useFactory: filterFieldBaseFilterFactory, deps: [NAE_FILTER_FIELD] },
1175
+ { provide: AllowedNetsService, useFactory: filterFieldAllowedNetsFactory, deps: [AllowedNetsServiceFactory, NAE_FILTER_FIELD] },
1176
+ CategoryFactory,
1177
+ { provide: NAE_SEARCH_CATEGORIES, useFactory: filterFieldCategoriesFactory, deps: [CategoryResolverService, NAE_FILTER_FIELD] },
1178
+ SearchService
1179
+ ],
1180
+ styles: [""]
1181
+ },] }
1182
+ ];
1183
+ FilterFieldContentComponent.ctorParameters = () => [
1184
+ { type: FilterField, decorators: [{ type: Inject, args: [NAE_FILTER_FIELD,] }] },
1185
+ { type: SearchService }
1186
+ ];
1187
+
1188
+ class FilterFieldComponent extends AbstractFilterFieldComponent {
1189
+ constructor(parentInjector, informAboutInvalidData) {
1190
+ super(parentInjector, informAboutInvalidData);
1191
+ }
1192
+ getFilterContentComponent() {
1193
+ return FilterFieldContentComponent;
1194
+ }
1195
+ }
1196
+ FilterFieldComponent.ctorParameters = () => [
1197
+ { type: Injector },
1198
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
1199
+ ];
1200
+ FilterFieldComponent.decorators = [
1201
+ { type: Component, args: [{
1202
+ selector: 'nc-filter-field',
1203
+ 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 <!-- TODO: title based on large layout -->\n <ng-template [ngIf]=\"initialized\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </ng-template>\n <!-- TODO: description? -->\n</ng-template>\n",
1204
+ styles: [""]
1205
+ },] }
1206
+ ];
1207
+ FilterFieldComponent.ctorParameters = () => [
1208
+ { type: Injector },
1209
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
1210
+ ];
1211
+
1212
+ class SearchClauseComponent extends AbstractSearchClauseComponent {
1213
+ constructor() {
1214
+ super();
1215
+ }
1216
+ }
1217
+ SearchClauseComponent.decorators = [
1218
+ { type: Component, args: [{
1219
+ selector: 'nc-search-clause',
1220
+ 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",
1221
+ styles: [".clause-body{border-radius:4px;padding:4px 6px}.bool-operator-margin{margin-left:8px;margin-right:8px}.bool-operator-button{margin-left:4px}"]
1222
+ },] }
1223
+ ];
1224
+ SearchClauseComponent.ctorParameters = () => [];
1225
+
1226
+ class SearchPredicateComponent extends AbstractSearchPredicateComponent {
1227
+ constructor(searchCategories, logger, initializationService, categoryFactory) {
1228
+ super(searchCategories, logger, initializationService, categoryFactory);
1229
+ }
1230
+ }
1231
+ SearchPredicateComponent.ctorParameters = () => [
1232
+ { type: Array, decorators: [{ type: Inject, args: [NAE_SEARCH_CATEGORIES,] }] },
1233
+ { type: LoggerService },
1234
+ { type: AdvancedSearchComponentInitializationService },
1235
+ { type: CategoryFactory }
1236
+ ];
1237
+ SearchPredicateComponent.decorators = [
1238
+ { type: Component, args: [{
1239
+ selector: 'nc-search-predicate',
1240
+ 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",
1241
+ 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}"]
1242
+ },] }
1243
+ ];
1244
+ SearchPredicateComponent.ctorParameters = () => [
1245
+ { type: Array, decorators: [{ type: Inject, args: [NAE_SEARCH_CATEGORIES,] }] },
1246
+ { type: LoggerService },
1247
+ { type: AdvancedSearchComponentInitializationService },
1248
+ { type: CategoryFactory }
1249
+ ];
1250
+
1251
+ const ɵ0$2 = DATE_TIME_FORMAT;
1252
+ class SearchOperandInputComponent extends AbstractSearchOperandInputComponent {
1253
+ constructor() {
1254
+ super();
1255
+ // make enum accessible in HTMl
1256
+ this.searchInputType = SearchInputType;
1257
+ this.dateFormat = DATE_FORMAT_STRING;
1258
+ this.dateTimeFormat = DATE_TIME_FORMAT_STRING;
1259
+ }
1260
+ }
1261
+ SearchOperandInputComponent.decorators = [
1262
+ { type: Component, args: [{
1263
+ selector: 'nc-search-operand-input',
1264
+ 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",
1265
+ providers: [
1266
+ { provide: NGX_MAT_DATE_FORMATS, useValue: ɵ0$2 }
1267
+ ],
1268
+ styles: [".bold-text{font-weight:700}"]
1269
+ },] }
1270
+ ];
1271
+ SearchOperandInputComponent.ctorParameters = () => [];
1272
+
1273
+ class SearchConfigurationInputComponent extends AbstractSearchConfigurationInputComponent {
1274
+ constructor() {
1275
+ super();
1276
+ // make the enum referencable in HTML
1277
+ this.searchInputType = SearchInputType;
1278
+ // make the enum referencable in HTML
1279
+ this.operatorTemplatePartType = OperatorTemplatePartType;
1280
+ }
1281
+ }
1282
+ SearchConfigurationInputComponent.decorators = [
1283
+ { type: Component, args: [{
1284
+ selector: 'nc-search-configuration-input',
1285
+ 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",
1286
+ 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}"]
1287
+ },] }
1288
+ ];
1289
+ SearchConfigurationInputComponent.ctorParameters = () => [];
1290
+
1291
+ class AdvancedSearchComponent extends AbstractAdvancedSearchComponent {
1292
+ constructor(searchService, initializationService) {
1293
+ super(searchService, initializationService);
1294
+ }
1295
+ }
1296
+ AdvancedSearchComponent.ctorParameters = () => [
1297
+ { type: SearchService },
1298
+ { type: AdvancedSearchComponentInitializationService }
1299
+ ];
1300
+ AdvancedSearchComponent.decorators = [
1301
+ { type: Component, args: [{
1302
+ selector: 'nc-advanced-search',
1303
+ 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",
1304
+ providers: [AdvancedSearchComponentInitializationService],
1305
+ styles: [".bool-operator-margin{margin-left:8px;margin-right:8px}"]
1306
+ },] }
1307
+ ];
1308
+ AdvancedSearchComponent.ctorParameters = () => [
1309
+ { type: SearchService },
1310
+ { type: AdvancedSearchComponentInitializationService }
1311
+ ];
1312
+
1313
+ class AdvancedSearchComponentModule {
1314
+ }
1315
+ AdvancedSearchComponentModule.decorators = [
1316
+ { type: NgModule, args: [{
1317
+ declarations: [
1318
+ SearchClauseComponent,
1319
+ SearchPredicateComponent,
1320
+ SearchOperandInputComponent,
1321
+ SearchConfigurationInputComponent,
1322
+ AdvancedSearchComponent,
1323
+ ],
1324
+ exports: [
1325
+ SearchClauseComponent,
1326
+ SearchPredicateComponent,
1327
+ SearchOperandInputComponent,
1328
+ SearchConfigurationInputComponent,
1329
+ AdvancedSearchComponent,
1330
+ ],
1331
+ imports: [
1332
+ CommonModule,
1333
+ MaterialModule,
1334
+ TranslateLibModule,
1335
+ NgxMatDatetimePickerModule,
1336
+ ]
1337
+ },] }
1338
+ ];
1339
+
1340
+ /**
1341
+ * Includes avatar user icon and full username in the side menu.
1342
+ */
1343
+ class UserAssignItemComponent extends AbstractUserAssignItemComponent {
1344
+ constructor() {
1345
+ super();
1346
+ }
1347
+ }
1348
+ UserAssignItemComponent.decorators = [
1349
+ { type: Component, args: [{
1350
+ selector: 'nc-user-assign-item',
1351
+ 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",
1352
+ 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}"]
1353
+ },] }
1354
+ ];
1355
+ UserAssignItemComponent.ctorParameters = () => [];
1356
+
1357
+ /**
1358
+ * Is responsible for displaying, filtering, loading and selecting users.
1359
+ */
1360
+ class UserAssignListComponent extends AbstractUserAssignListComponent {
1361
+ constructor(_userListService) {
1362
+ super(_userListService);
1363
+ this._userListService = _userListService;
1364
+ }
1365
+ }
1366
+ UserAssignListComponent.ctorParameters = () => [
1367
+ { type: UserListService }
1368
+ ];
1369
+ UserAssignListComponent.decorators = [
1370
+ { type: Component, args: [{
1371
+ selector: 'nc-user-assign-list',
1372
+ 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",
1373
+ 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}"]
1374
+ },] }
1375
+ ];
1376
+ UserAssignListComponent.ctorParameters = () => [
1377
+ { type: UserListService }
1378
+ ];
1379
+
1380
+ const ɵ0$3 = UserAssignComponent;
1381
+ class SideMenuUserAssignComponentModule {
1382
+ }
1383
+ SideMenuUserAssignComponentModule.decorators = [
1384
+ { type: NgModule, args: [{
1385
+ declarations: [
1386
+ UserAssignComponent,
1387
+ UserAssignItemComponent,
1388
+ UserAssignListComponent
1389
+ ],
1390
+ imports: [
1391
+ CommonModule,
1392
+ MaterialModule,
1393
+ CovalentModule,
1394
+ FlexLayoutModule,
1395
+ FlexModule,
1396
+ FormsModule,
1397
+ TranslateLibModule
1398
+ ],
1399
+ exports: [UserAssignComponent],
1400
+ entryComponents: [UserAssignComponent],
1401
+ providers: [
1402
+ { provide: NAE_USER_ASSIGN_COMPONENT, useValue: ɵ0$3 },
1403
+ ]
1404
+ },] }
1405
+ ];
1406
+
1407
+ class I18nFieldComponent extends AbstractI18nFieldComponent {
1408
+ constructor(informAboutInvalidData) {
1409
+ super(informAboutInvalidData);
1410
+ }
1411
+ }
1412
+ I18nFieldComponent.ctorParameters = () => [
1413
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
1414
+ ];
1415
+ I18nFieldComponent.decorators = [
1416
+ { type: Component, args: [{
1417
+ selector: 'nc-i18n-field',
1418
+ 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",
1419
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
1420
+ },] }
1421
+ ];
1422
+ I18nFieldComponent.ctorParameters = () => [
1423
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [NAE_INFORM_ABOUT_INVALID_DATA,] }] }
1424
+ ];
1425
+
1426
+ class I18nDividerFieldComponent extends AbstractI18nDividerFieldComponent {
1427
+ constructor() {
1428
+ super();
1429
+ }
1430
+ }
1431
+ I18nDividerFieldComponent.decorators = [
1432
+ { type: Component, args: [{
1433
+ selector: 'nc-i18n-divider-field',
1434
+ 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",
1435
+ styles: [".divider-line{height:1px}.margin-default{margin-right:8px;margin-left:8px}"]
1436
+ },] }
1437
+ ];
1438
+ I18nDividerFieldComponent.ctorParameters = () => [];
1439
+
1440
+ class I18nTextFieldComponent extends AbstractI18nTextFieldComponent {
1441
+ constructor(translateService) {
1442
+ super(translateService);
1443
+ }
1444
+ }
1445
+ I18nTextFieldComponent.ctorParameters = () => [
1446
+ { type: TranslateService }
1447
+ ];
1448
+ I18nTextFieldComponent.decorators = [
1449
+ { type: Component, args: [{
1450
+ selector: 'nc-i18n-text-field',
1451
+ 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 <!-- TODO: add editable view for text component -->\n </div>\n</ng-template>\n",
1452
+ styles: [".full-width{display:block;margin:0 auto;width:100%}"]
1453
+ },] }
1454
+ ];
1455
+ I18nTextFieldComponent.ctorParameters = () => [
1456
+ { type: TranslateService }
1457
+ ];
1458
+
1459
+ class DataFieldsComponentModule {
1460
+ }
1461
+ DataFieldsComponentModule.decorators = [
1462
+ { type: NgModule, args: [{
1463
+ declarations: [
1464
+ BooleanFieldComponent,
1465
+ ButtonFieldComponent,
1466
+ DataFieldTemplateComponent,
1467
+ DateFieldComponent,
1468
+ DateTimeFieldComponent,
1469
+ EnumerationFieldComponent,
1470
+ EnumerationAutocompleteSelectFieldComponent,
1471
+ EnumerationSelectFieldComponent,
1472
+ EnumerationListFieldComponent,
1473
+ FileFieldComponent,
1474
+ FileListFieldComponent,
1475
+ MultichoiceFieldComponent,
1476
+ MultichoiceSelectFieldComponent,
1477
+ MultichoiceListFieldComponent,
1478
+ NumberFieldComponent,
1479
+ TextFieldComponent,
1480
+ TextareaFieldComponent,
1481
+ RichTextareaFieldComponent,
1482
+ SimpleTextFieldComponent,
1483
+ UserFieldComponent,
1484
+ RequiredLabelComponent,
1485
+ HtmlTextareaFieldComponent,
1486
+ PasswordTextFieldComponent,
1487
+ NumberCurrencyFieldComponent,
1488
+ NumberDefaultFieldComponent,
1489
+ PreviewDialogComponent,
1490
+ NumberDefaultFieldComponent,
1491
+ EnumerationStepperFieldComponent,
1492
+ EnumerationIconFieldComponent,
1493
+ EnumerationAutocompleteDynamicFieldComponent,
1494
+ FilterFieldComponent,
1495
+ FilterFieldContentComponent,
1496
+ I18nFieldComponent,
1497
+ I18nDividerFieldComponent,
1498
+ I18nTextFieldComponent,
1499
+ ],
1500
+ exports: [
1501
+ BooleanFieldComponent,
1502
+ ButtonFieldComponent,
1503
+ DataFieldTemplateComponent,
1504
+ DateFieldComponent,
1505
+ DateTimeFieldComponent,
1506
+ EnumerationFieldComponent,
1507
+ FileFieldComponent,
1508
+ FileListFieldComponent,
1509
+ MultichoiceFieldComponent,
1510
+ NumberFieldComponent,
1511
+ TextFieldComponent,
1512
+ UserFieldComponent,
1513
+ FilterFieldComponent,
1514
+ I18nFieldComponent
1515
+ ],
1516
+ imports: [
1517
+ CommonModule,
1518
+ FlexLayoutModule,
1519
+ MaterialModule,
1520
+ CovalentModule,
1521
+ AngularResizedEventModule,
1522
+ HttpClientModule,
1523
+ ReactiveFormsModule,
1524
+ NgxMatDatetimePickerModule,
1525
+ NgxMatMomentModule,
1526
+ TranslateLibModule,
1527
+ SideMenuUserAssignComponentModule,
1528
+ QuillModule.forRoot(),
1529
+ MatDialogModule,
1530
+ AdvancedSearchComponentModule,
1531
+ MatProgressSpinnerModule,
1532
+ CurrencyModule
1533
+ ],
1534
+ providers: [
1535
+ { provide: DateAdapter, useClass: CustomDateAdapter }
1536
+ ],
1537
+ entryComponents: [
1538
+ PreviewDialogComponent,
1539
+ FilterFieldContentComponent
1540
+ ]
1541
+ },] }
1542
+ ];
1543
+
1544
+ /* Class */
1545
+
1546
+ class EmailSubmissionFormComponent extends AbstractEmailSubmissionFormComponent {
1547
+ constructor(formBuilder) {
1548
+ super(formBuilder);
1549
+ }
1550
+ }
1551
+ EmailSubmissionFormComponent.ctorParameters = () => [
1552
+ { type: FormBuilder }
1553
+ ];
1554
+ EmailSubmissionFormComponent.decorators = [
1555
+ { type: Component, args: [{
1556
+ selector: 'nc-email-submission-form',
1557
+ 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",
1558
+ styles: [".margin-top-4{margin-top:4px}.full-width{width:100%}"]
1559
+ },] }
1560
+ ];
1561
+ EmailSubmissionFormComponent.ctorParameters = () => [
1562
+ { type: FormBuilder }
1563
+ ];
1564
+
1565
+ class LoginFormComponent extends AbstractLoginFormComponent {
1566
+ constructor(formBuilder, _userService) {
1567
+ super(formBuilder, _userService);
1568
+ this._userService = _userService;
1569
+ }
1570
+ }
1571
+ LoginFormComponent.ctorParameters = () => [
1572
+ { type: FormBuilder },
1573
+ { type: UserService }
1574
+ ];
1575
+ LoginFormComponent.decorators = [
1576
+ { type: Component, args: [{
1577
+ selector: 'nc-login-form',
1578
+ 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",
1579
+ 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}"]
1580
+ },] }
1581
+ ];
1582
+ LoginFormComponent.ctorParameters = () => [
1583
+ { type: FormBuilder },
1584
+ { type: UserService }
1585
+ ];
1586
+
1587
+ class RegistrationFormComponent extends AbstractRegistrationFormComponent {
1588
+ constructor(formBuilder, signupService, log, translate) {
1589
+ super(formBuilder, signupService, log, translate);
1590
+ }
1591
+ }
1592
+ RegistrationFormComponent.ctorParameters = () => [
1593
+ { type: FormBuilder },
1594
+ { type: SignUpService },
1595
+ { type: LoggerService },
1596
+ { type: TranslateService }
1597
+ ];
1598
+ RegistrationFormComponent.decorators = [
1599
+ { type: Component, args: [{
1600
+ selector: 'nc-registration-form',
1601
+ 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",
1602
+ styles: [".font-size-20{font-size:20px}.margin-top-4{margin-top:4px}.full-width{width:100%}"]
1603
+ },] }
1604
+ ];
1605
+ RegistrationFormComponent.ctorParameters = () => [
1606
+ { type: FormBuilder },
1607
+ { type: SignUpService },
1608
+ { type: LoggerService },
1609
+ { type: TranslateService }
1610
+ ];
1611
+
1612
+ class ForgottenPasswordFormComponent extends AbstractForgottenPasswordComponent {
1613
+ constructor(formBuilder, signupService, log, translate) {
1614
+ super(formBuilder, signupService, log, translate);
1615
+ }
1616
+ }
1617
+ ForgottenPasswordFormComponent.ctorParameters = () => [
1618
+ { type: FormBuilder },
1619
+ { type: SignUpService },
1620
+ { type: LoggerService },
1621
+ { type: TranslateService }
1622
+ ];
1623
+ ForgottenPasswordFormComponent.decorators = [
1624
+ { type: Component, args: [{
1625
+ selector: 'nc-forgotten-password-form',
1626
+ 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",
1627
+ styles: [".font-size-20{font-size:20px}.margin-top-4{margin-top:4px}.full-width{width:100%}"]
1628
+ },] }
1629
+ ];
1630
+ ForgottenPasswordFormComponent.ctorParameters = () => [
1631
+ { type: FormBuilder },
1632
+ { type: SignUpService },
1633
+ { type: LoggerService },
1634
+ { type: TranslateService }
1635
+ ];
1636
+
1637
+ class LegalNoticeComponent extends AbstractLegalNoticeComponent {
1638
+ constructor(config) {
1639
+ super(config);
1640
+ }
1641
+ }
1642
+ LegalNoticeComponent.ctorParameters = () => [
1643
+ { type: ConfigurationService }
1644
+ ];
1645
+ LegalNoticeComponent.decorators = [
1646
+ { type: Component, args: [{
1647
+ selector: 'nc-legal-notice',
1648
+ 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",
1649
+ styles: [".text-style{font-size:small;text-align:justify;margin:8px 4px}"]
1650
+ },] }
1651
+ ];
1652
+ LegalNoticeComponent.ctorParameters = () => [
1653
+ { type: ConfigurationService }
1654
+ ];
1655
+
1656
+ class LegalNoticeModule {
1657
+ }
1658
+ LegalNoticeModule.decorators = [
1659
+ { type: NgModule, args: [{
1660
+ declarations: [LegalNoticeComponent],
1661
+ imports: [
1662
+ CommonModule,
1663
+ TranslateLibModule
1664
+ ],
1665
+ exports: [LegalNoticeComponent]
1666
+ },] }
1667
+ ];
1668
+
1669
+ class EmailSubmissionFormComponentModule {
1670
+ }
1671
+ EmailSubmissionFormComponentModule.decorators = [
1672
+ { type: NgModule, args: [{
1673
+ declarations: [EmailSubmissionFormComponent],
1674
+ exports: [EmailSubmissionFormComponent],
1675
+ imports: [
1676
+ CommonModule,
1677
+ MaterialModule,
1678
+ FlexLayoutModule,
1679
+ ReactiveFormsModule,
1680
+ TranslateLibModule,
1681
+ LegalNoticeModule
1682
+ ]
1683
+ },] }
1684
+ ];
1685
+
1686
+ class LoginFormComponentModule {
1687
+ }
1688
+ LoginFormComponentModule.decorators = [
1689
+ { type: NgModule, args: [{
1690
+ declarations: [LoginFormComponent],
1691
+ exports: [LoginFormComponent],
1692
+ imports: [
1693
+ CommonModule,
1694
+ MaterialModule,
1695
+ FlexLayoutModule,
1696
+ ReactiveFormsModule,
1697
+ TranslateLibModule
1698
+ ]
1699
+ },] }
1700
+ ];
1701
+
1702
+ class RegistrationFormComponentModule {
1703
+ }
1704
+ RegistrationFormComponentModule.decorators = [
1705
+ { type: NgModule, args: [{
1706
+ declarations: [RegistrationFormComponent],
1707
+ exports: [RegistrationFormComponent],
1708
+ imports: [
1709
+ CommonModule,
1710
+ MaterialModule,
1711
+ FlexLayoutModule,
1712
+ ReactiveFormsModule,
1713
+ TranslateLibModule,
1714
+ LegalNoticeModule
1715
+ ]
1716
+ },] }
1717
+ ];
1718
+
1719
+ class ForgottenPasswordFormComponentModule {
1720
+ }
1721
+ ForgottenPasswordFormComponentModule.decorators = [
1722
+ { type: NgModule, args: [{
1723
+ declarations: [ForgottenPasswordFormComponent],
1724
+ exports: [ForgottenPasswordFormComponent],
1725
+ imports: [
1726
+ CommonModule,
1727
+ MaterialModule,
1728
+ FlexLayoutModule,
1729
+ ReactiveFormsModule,
1730
+ TranslateLibModule
1731
+ ]
1732
+ },] }
1733
+ ];
1734
+
1735
+ /* COMPONENTS */
1736
+
1737
+ class HeaderComponent extends AbstractHeaderComponent {
1738
+ constructor(_injector, _translate, overflowService) {
1739
+ super(_injector, _translate, overflowService);
1740
+ this._injector = _injector;
1741
+ this._translate = _translate;
1742
+ this.overflowService = overflowService;
1743
+ }
1744
+ }
1745
+ HeaderComponent.ctorParameters = () => [
1746
+ { type: Injector },
1747
+ { type: TranslateService },
1748
+ { type: OverflowService, decorators: [{ type: Optional }] }
1749
+ ];
1750
+ HeaderComponent.decorators = [
1751
+ { type: Component, args: [{
1752
+ selector: 'nc-header',
1753
+ 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",
1754
+ providers: [
1755
+ CaseHeaderService,
1756
+ TaskHeaderService,
1757
+ WorkflowHeaderService,
1758
+ HeaderSearchService,
1759
+ CategoryFactory
1760
+ ],
1761
+ 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}"]
1762
+ },] }
1763
+ ];
1764
+ HeaderComponent.ctorParameters = () => [
1765
+ { type: Injector },
1766
+ { type: TranslateService },
1767
+ { type: OverflowService, decorators: [{ type: Optional }] }
1768
+ ];
1769
+
1770
+ class SortModeComponent extends AbstractSortModeComponent {
1771
+ constructor() {
1772
+ super();
1773
+ }
1774
+ }
1775
+ SortModeComponent.decorators = [
1776
+ { type: Component, args: [{
1777
+ selector: 'nc-sort-mode',
1778
+ 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",
1779
+ styles: [""]
1780
+ },] }
1781
+ ];
1782
+ SortModeComponent.ctorParameters = () => [];
1783
+
1784
+ class EditModeComponent extends AbstractEditModeComponent {
1785
+ constructor(_translate, loggerService) {
1786
+ super(_translate, loggerService);
1787
+ this._translate = _translate;
1788
+ this.loggerService = loggerService;
1789
+ }
1790
+ }
1791
+ EditModeComponent.ctorParameters = () => [
1792
+ { type: TranslateService },
1793
+ { type: LoggerService }
1794
+ ];
1795
+ EditModeComponent.decorators = [
1796
+ { type: Component, args: [{
1797
+ selector: 'nc-edit-mode',
1798
+ 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",
1799
+ styles: [""]
1800
+ },] }
1801
+ ];
1802
+ EditModeComponent.ctorParameters = () => [
1803
+ { type: TranslateService },
1804
+ { type: LoggerService }
1805
+ ];
1806
+
1807
+ const ɵ0$4 = DATE_FORMAT, ɵ1 = DATE_TIME_FORMAT;
1808
+ class SearchModeComponent extends AbstractSearchModeComponent {
1809
+ constructor(_sideMenuService) {
1810
+ super(_sideMenuService);
1811
+ this._sideMenuService = _sideMenuService;
1812
+ }
1813
+ selectUser(column) {
1814
+ this.selectAbstractUser(column, UserAssignComponent);
1815
+ }
1816
+ }
1817
+ SearchModeComponent.ctorParameters = () => [
1818
+ { type: SideMenuService }
1819
+ ];
1820
+ SearchModeComponent.decorators = [
1821
+ { type: Component, args: [{
1822
+ selector: 'nc-search-mode',
1823
+ 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",
1824
+ providers: [
1825
+ { provide: MAT_DATE_FORMATS, useValue: ɵ0$4 },
1826
+ { provide: NGX_MAT_DATE_FORMATS, useValue: ɵ1 }
1827
+ ],
1828
+ styles: [""]
1829
+ },] }
1830
+ ];
1831
+ SearchModeComponent.ctorParameters = () => [
1832
+ { type: SideMenuService }
1833
+ ];
1834
+
1835
+ class LoadingModeComponent extends AbstractLoadingModeComponent {
1836
+ constructor() {
1837
+ super();
1838
+ }
1839
+ }
1840
+ LoadingModeComponent.decorators = [
1841
+ { type: Component, args: [{
1842
+ selector: 'nc-loading-mode',
1843
+ 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",
1844
+ 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}"]
1845
+ },] }
1846
+ ];
1847
+ LoadingModeComponent.ctorParameters = () => [];
1848
+
1849
+ class HeaderComponentModule {
1850
+ }
1851
+ HeaderComponentModule.decorators = [
1852
+ { type: NgModule, args: [{
1853
+ declarations: [
1854
+ HeaderComponent,
1855
+ SortModeComponent,
1856
+ SearchModeComponent,
1857
+ EditModeComponent,
1858
+ LoadingModeComponent
1859
+ ],
1860
+ exports: [
1861
+ HeaderComponent,
1862
+ SortModeComponent,
1863
+ SearchModeComponent,
1864
+ EditModeComponent,
1865
+ LoadingModeComponent
1866
+ ],
1867
+ imports: [
1868
+ CommonModule,
1869
+ MaterialModule,
1870
+ FlexModule,
1871
+ TranslateLibModule,
1872
+ MaterialModule,
1873
+ NgxMatDatetimePickerModule
1874
+ ]
1875
+ },] }
1876
+ ];
1877
+
1878
+ /*
1879
+ * Public API Surface of netgrif-components
1880
+ */
1881
+
1882
+ class QuickPanelComponent extends AbstractQuickPanelComponent {
1883
+ constructor(_select, _paperView) {
1884
+ super(_select, _paperView);
1885
+ this._select = _select;
1886
+ this._paperView = _paperView;
1887
+ }
1888
+ }
1889
+ QuickPanelComponent.ctorParameters = () => [
1890
+ { type: LanguageService },
1891
+ { type: PaperViewService }
1892
+ ];
1893
+ QuickPanelComponent.decorators = [
1894
+ { type: Component, args: [{
1895
+ selector: 'nc-quick-panel',
1896
+ 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",
1897
+ styles: [".quick-panel{height:62px;padding:8px}.quick-panel-more-icon{text-align:center;font-size:24px}"]
1898
+ },] }
1899
+ ];
1900
+ QuickPanelComponent.ctorParameters = () => [
1901
+ { type: LanguageService },
1902
+ { type: PaperViewService }
1903
+ ];
1904
+
1905
+ class LogoutShortcutComponent extends AbstractLogoutShortcutComponent {
1906
+ constructor(_user, _log, _config, _router) {
1907
+ super(_user, _log, _config, _router);
1908
+ this._user = _user;
1909
+ this._log = _log;
1910
+ this._config = _config;
1911
+ this._router = _router;
1912
+ }
1913
+ }
1914
+ LogoutShortcutComponent.ctorParameters = () => [
1915
+ { type: UserService },
1916
+ { type: LoggerService },
1917
+ { type: ConfigurationService },
1918
+ { type: Router }
1919
+ ];
1920
+ LogoutShortcutComponent.decorators = [
1921
+ { type: Component, args: [{
1922
+ selector: 'nc-logout-shortcut',
1923
+ template: "<button mat-icon-button (click)=\"logout()\">\n <mat-icon class=\"logout-icon\">exit_to_app</mat-icon>\n</button>\n",
1924
+ styles: [".logout-icon{font-size:24px;text-align:center;cursor:pointer}"]
1925
+ },] }
1926
+ ];
1927
+ LogoutShortcutComponent.ctorParameters = () => [
1928
+ { type: UserService },
1929
+ { type: LoggerService },
1930
+ { type: ConfigurationService },
1931
+ { type: Router }
1932
+ ];
1933
+
1934
+ class LanguageSelectorComponent extends AbstractLanguageSelectorComponent {
1935
+ constructor(_select) {
1936
+ super(_select);
1937
+ this._select = _select;
1938
+ this.skFlag = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABAElEQVRYhWP4//8/w0DiAbV81AGjDkB2wECB' +
1939
+ 'UQeMOgC/A34fO4ET08UBb2VU4BgE3mkZwfn/Pn6kngO4/Rb9R8dNNSvAFn2tb4H7GESD+CDxxrxZGHpIxXgdALIA5oBPodFgB4BoujsA5Os/V66' +
1940
+ 'BHQCiQXy6OKC5aytGGkDmg6KIpg6wzN/y/6GN+/8a0+T/8dZF/7n8FoJpEP+BrtV/j6qdtHUACJf27gVbjI5B4pRajuKAdzKq/7HhDxYO/0vQHJ' +
1941
+ 'HatO3/R3c/rOpJxQQdAMLvtYz/r22c+98dGOTr+leD+dSwnGgHIIcGtSwmywG0wKMOGDwOGEg86oBRBwy4AwD9AXxVUM8swgAAAABJRU5ErkJgg' +
1942
+ 'g==';
1943
+ this.deFlag = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAPElEQVRYw+3WIREAMADDwPjXNk8ZnIQOBIQ/' +
1944
+ '6hWVZQQI8AUAcFGAAAHeDoCTAgT4B3BwUoAAAXrFAQIoF+hFdQp+ds+vAAAAAElFTkSuQmCC';
1945
+ this.gbFlag = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAByElEQVRYw+2WvUvDUBTFA04u7VTo0sGpf4Ao' +
1946
+ '1L2L4FApdHN01slBcFIEJ0EcFDqqFaGubkJdtIhVKWhBobjZwc5+NMeeSNI0vOTdpmId8uBt7+N3Ts69LwYAY5TTiAAigH8B8Fwo4LPVwvtHB6u' +
1947
+ '7VYxN7cOY3AucpgnU4nFcW0cAqdkD7Z7FjQpeNrdwn0rhrVSCA9BcWsZtIoF2uWwddlV/RXr++NcAJuYOcX5SwUMmg6dczhL71TF7ALysenSGej' +
1948
+ 'oNqRtSAIVqPDbbmF447QFwIS9a276A1A0dgJ/q9eINxmeK1po+AHv2uZHP+7oRBBCk2n2XEkDqhgpAoloEIHHDC7CycylSPRCA1427ZNJxg8MN0' +
1949
+ 'MhmRaqVAAg53AAhxw9ALRazDvrr6QCM4nKKHvoTWAd1P0OYYZqQhZBBYqAYLAaMQWPgVAAMKIPKwDK4ujdFC8ASYilxsLRYYiw1lpwXgKXJEiUk' +
1950
+ 'S5alyxIOelN8AVSq2VzYZNhs2HS8AHbfYLOy3WATC3JDCeCnmu3VXuMHYPcNqRt9ADrV7o1BAO4uqnPDAZCoHhRA6Ub3qXe74QBIVIcB0LnhAEh' +
1951
+ 'UDwPg50b0VxwBRACc37+H2GuakEPwAAAAAElFTkSuQmCC';
1952
+ }
1953
+ getFlag(flagCode) {
1954
+ return flagCode === 'sk' ? this.skFlag : (flagCode === 'gb' ? this.gbFlag : this.deFlag);
1955
+ }
1956
+ }
1957
+ LanguageSelectorComponent.ctorParameters = () => [
1958
+ { type: LanguageService }
1959
+ ];
1960
+ LanguageSelectorComponent.decorators = [
1961
+ { type: Component, args: [{
1962
+ selector: 'nc-language-selector',
1963
+ 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",
1964
+ styles: [".icon-small-dimensions{width:24px;height:24px}.margin-left-default{margin-left:8px}.icon-medium-dimensions{width:32px;height:32px}"]
1965
+ },] }
1966
+ ];
1967
+ LanguageSelectorComponent.ctorParameters = () => [
1968
+ { type: LanguageService }
1969
+ ];
1970
+
1971
+ class InternalLinkComponent extends AbstractInternalLinkComponent {
1972
+ constructor() {
1973
+ super();
1974
+ }
1975
+ }
1976
+ InternalLinkComponent.decorators = [
1977
+ { type: Component, args: [{
1978
+ selector: 'nc-internal-link',
1979
+ template: "<button mat-icon-button [routerLink]=\"link\">\n <mat-icon class=\"internal-link-icon\">{{icon}}</mat-icon>\n</button>\n",
1980
+ styles: [".internal-link-icon{font-size:24px;text-align:center;vertical-align:center;cursor:pointer;outline:0!important}"]
1981
+ },] }
1982
+ ];
1983
+ InternalLinkComponent.ctorParameters = () => [];
1984
+
1985
+ class QuickPanelComponentModule {
1986
+ }
1987
+ QuickPanelComponentModule.decorators = [
1988
+ { type: NgModule, args: [{
1989
+ declarations: [
1990
+ QuickPanelComponent,
1991
+ LogoutShortcutComponent,
1992
+ LanguageSelectorComponent,
1993
+ InternalLinkComponent
1994
+ ],
1995
+ exports: [
1996
+ QuickPanelComponent,
1997
+ LogoutShortcutComponent,
1998
+ LanguageSelectorComponent,
1999
+ InternalLinkComponent
2000
+ ],
2001
+ imports: [
2002
+ CommonModule,
2003
+ RouterModule,
2004
+ MaterialModule,
2005
+ TranslateLibModule
2006
+ ]
2007
+ },] }
2008
+ ];
2009
+
2010
+ /* MODULES */
2011
+ /* SERVICES */
2012
+
2013
+ class NavigationDrawerComponent extends AbstractNavigationDrawerComponent {
2014
+ constructor(breakpoint, _log, userPreferenceService) {
2015
+ super(breakpoint, _log, userPreferenceService);
2016
+ this.breakpoint = breakpoint;
2017
+ this._log = _log;
2018
+ this.userPreferenceService = userPreferenceService;
2019
+ }
2020
+ }
2021
+ NavigationDrawerComponent.ctorParameters = () => [
2022
+ { type: BreakpointObserver },
2023
+ { type: LoggerService },
2024
+ { type: UserPreferenceService }
2025
+ ];
2026
+ NavigationDrawerComponent.decorators = [
2027
+ { type: Component, args: [{
2028
+ selector: 'nc-navigation-drawer',
2029
+ 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",
2030
+ 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%}"]
2031
+ },] }
2032
+ ];
2033
+ NavigationDrawerComponent.ctorParameters = () => [
2034
+ { type: BreakpointObserver },
2035
+ { type: LoggerService },
2036
+ { type: UserPreferenceService }
2037
+ ];
2038
+
2039
+ const railAnimation = trigger('transform', [
2040
+ state('expand', style({
2041
+ width: '184px',
2042
+ 'min-width': '184px',
2043
+ padding: '8px'
2044
+ })),
2045
+ state('collapse', style({
2046
+ width: '48px',
2047
+ 'min-width': '48px',
2048
+ padding: '4px'
2049
+ })),
2050
+ transition('expand <=> collapse', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)'))
2051
+ ]);
2052
+ const railContentAnimation = trigger('transformContent', [
2053
+ state('shrink', style({
2054
+ 'margin-left': '185px'
2055
+ })),
2056
+ state('grow', style({
2057
+ 'margin-left': '49px'
2058
+ })),
2059
+ transition('shrink <=> grow', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)'))
2060
+ ]);
2061
+ class NavigationRailComponent extends AbstractNavigationRailComponent {
2062
+ constructor() {
2063
+ super();
2064
+ }
2065
+ }
2066
+ NavigationRailComponent.decorators = [
2067
+ { type: Component, args: [{
2068
+ selector: 'nc-navigation-rail',
2069
+ 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",
2070
+ animations: [railAnimation, railContentAnimation],
2071
+ styles: [".margin-left-default{margin-left:8px}"]
2072
+ },] }
2073
+ ];
2074
+ NavigationRailComponent.ctorParameters = () => [];
2075
+
2076
+ class NavigationTreeComponent extends AbstractNavigationTreeComponent {
2077
+ constructor(config, router, log, userService, roleGuard, authorityGuard, groupGuard, activeGroupService, taskResourceService, languageService, navigationRouteProvider) {
2078
+ super(config, router, log, userService, roleGuard, authorityGuard, groupGuard, activeGroupService, taskResourceService, languageService, navigationRouteProvider);
2079
+ }
2080
+ }
2081
+ NavigationTreeComponent.ctorParameters = () => [
2082
+ { type: ConfigurationService },
2083
+ { type: Router },
2084
+ { type: LoggerService },
2085
+ { type: UserService },
2086
+ { type: RoleGuardService },
2087
+ { type: AuthorityGuardService },
2088
+ { type: GroupGuardService },
2089
+ { type: ActiveGroupService },
2090
+ { type: TaskResourceService },
2091
+ { type: LanguageService },
2092
+ { type: DynamicNavigationRouteProviderService }
2093
+ ];
2094
+ NavigationTreeComponent.decorators = [
2095
+ { type: Component, args: [{
2096
+ selector: 'nc-navigation-tree',
2097
+ template: "<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\" [style.width.px]=\"width\">\n\n <!-- This is the tree node template for leaf nodes -->\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 <!-- This is the tree node template for expandable nodes -->\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",
2098
+ 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}"]
2099
+ },] }
2100
+ ];
2101
+ NavigationTreeComponent.ctorParameters = () => [
2102
+ { type: ConfigurationService },
2103
+ { type: Router },
2104
+ { type: LoggerService },
2105
+ { type: UserService },
2106
+ { type: RoleGuardService },
2107
+ { type: AuthorityGuardService },
2108
+ { type: GroupGuardService },
2109
+ { type: ActiveGroupService },
2110
+ { type: TaskResourceService },
2111
+ { type: LanguageService },
2112
+ { type: DynamicNavigationRouteProviderService }
2113
+ ];
2114
+
2115
+ class UserCardComponent extends AbstractUserCardComponent {
2116
+ constructor(_injector) {
2117
+ super(_injector);
2118
+ this._injector = _injector;
2119
+ }
2120
+ }
2121
+ UserCardComponent.ctorParameters = () => [
2122
+ { type: Injector }
2123
+ ];
2124
+ UserCardComponent.decorators = [
2125
+ { type: Component, args: [{
2126
+ selector: 'nc-user-card',
2127
+ 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",
2128
+ 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}"]
2129
+ },] }
2130
+ ];
2131
+ UserCardComponent.ctorParameters = () => [
2132
+ { type: Injector }
2133
+ ];
2134
+
2135
+ class UserComponentModule {
2136
+ }
2137
+ UserComponentModule.decorators = [
2138
+ { type: NgModule, args: [{
2139
+ declarations: [UserCardComponent],
2140
+ exports: [
2141
+ UserCardComponent
2142
+ ],
2143
+ imports: [
2144
+ CommonModule,
2145
+ RouterModule,
2146
+ MaterialModule,
2147
+ TranslateLibModule
2148
+ ]
2149
+ },] }
2150
+ ];
2151
+
2152
+ class GroupNavigationComponentResolverComponent extends AbstractGroupNavigationComponentResolverComponent {
2153
+ constructor(componentResolverService, parentInjector, activatedRoute, router, log) {
2154
+ super(componentResolverService, parentInjector, activatedRoute, router, log);
2155
+ }
2156
+ }
2157
+ GroupNavigationComponentResolverComponent.ctorParameters = () => [
2158
+ { type: GroupNavigationComponentResolverService },
2159
+ { type: Injector },
2160
+ { type: ActivatedRoute },
2161
+ { type: Router },
2162
+ { type: LoggerService }
2163
+ ];
2164
+ GroupNavigationComponentResolverComponent.decorators = [
2165
+ { type: Component, args: [{
2166
+ selector: 'nc-group-navigation-component-resolver',
2167
+ 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",
2168
+ styles: [".full-height{height:100%}.margin-bottom-error-icon{margin-bottom:8px}.font-size-20{font-size:20px}"]
2169
+ },] }
2170
+ ];
2171
+ GroupNavigationComponentResolverComponent.ctorParameters = () => [
2172
+ { type: GroupNavigationComponentResolverService },
2173
+ { type: Injector },
2174
+ { type: ActivatedRoute },
2175
+ { type: Router },
2176
+ { type: LoggerService }
2177
+ ];
2178
+
2179
+ /**
2180
+ * Converts a navigation item case task data injected by the {@link NAE_TAB_DATA} injection token into a {@link BaseFilter} instance
2181
+ * @param extractionService
2182
+ * @param tabData the injected data containing the navigation item case task data
2183
+ */
2184
+ function filterCaseTabbedDataFilterFactory(extractionService, tabData) {
2185
+ return navigationItemTaskFilterFactory(extractionService, tabData.navigationItemTaskData);
2186
+ }
2187
+ /**
2188
+ * Converts a navigation item case task data injected by the {@link NAE_TAB_DATA} injection token into an {@link AllowedNetsService}
2189
+ * instance
2190
+ * @param allowedNetsServiceFactory
2191
+ * @param baseAllowedNets
2192
+ * @param tabData the injected data containing the navigation item case task data
2193
+ */
2194
+ function filterCaseTabbedDataAllowedNetsServiceFactory(allowedNetsServiceFactory, baseAllowedNets, tabData) {
2195
+ return navigationItemTaskAllowedNetsServiceFactory(allowedNetsServiceFactory, baseAllowedNets, tabData.navigationItemTaskData);
2196
+ }
2197
+ /**
2198
+ * Converts a navigation item case task data injected by the {@link NAE_TAB_DATA} injection token into an array of {@link Category} classes
2199
+ * @param categoryResolverService
2200
+ * @param tabData the injected data containing the navigation item case task data
2201
+ * @param defaultCaseSearchCategories the default case search categories
2202
+ * @param defaultTaskSearchCategories the default task search categories
2203
+ */
2204
+ function filterCaseTabbedDataSearchCategoriesFactory(categoryResolverService, tabData, defaultCaseSearchCategories, defaultTaskSearchCategories) {
2205
+ return navigationItemTaskCategoryFactory(categoryResolverService, tabData.navigationItemTaskData, defaultCaseSearchCategories, defaultTaskSearchCategories);
2206
+ }
2207
+
2208
+ const ɵ0$5 = filterCaseTabbedDataFilterFactory, ɵ1$1 = filterCaseTabbedDataAllowedNetsServiceFactory, ɵ2 = filterCaseTabbedDataSearchCategoriesFactory;
2209
+ class DefaultTabbedCaseViewComponent extends TabbedCaseView {
2210
+ constructor(caseViewService, loggerService, injectedTabData) {
2211
+ super(caseViewService, loggerService, injectedTabData);
2212
+ }
2213
+ ngAfterViewInit() {
2214
+ super.initializeHeader(this.caseHeaderComponent);
2215
+ }
2216
+ loadFilter(filterData) {
2217
+ this._injectedTabData.tabViewRef.openTab({
2218
+ label: {
2219
+ text: filterData.filter.title
2220
+ },
2221
+ canBeClosed: true,
2222
+ tabContentComponent: DefaultTabbedCaseViewComponent,
2223
+ injectedObject: Object.assign(Object.assign({}, this._injectedTabData), { filterCase: filterData.filterCase }),
2224
+ order: this._injectedTabData.tabViewOrder,
2225
+ parentUniqueId: this._injectedTabData.tabUniqueId
2226
+ }, this._autoswitchToTaskTab, this._openExistingTab);
2227
+ }
2228
+ }
2229
+ DefaultTabbedCaseViewComponent.ctorParameters = () => [
2230
+ { type: CaseViewService },
2231
+ { type: LoggerService },
2232
+ { type: undefined, decorators: [{ type: Inject, args: [NAE_TAB_DATA,] }] }
2233
+ ];
2234
+ DefaultTabbedCaseViewComponent.decorators = [
2235
+ { type: Component, args: [{
2236
+ selector: 'nc-default-tabbed-case-view',
2237
+ 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",
2238
+ providers: [
2239
+ CategoryFactory,
2240
+ CaseViewService,
2241
+ SearchService,
2242
+ ViewIdService,
2243
+ {
2244
+ provide: NAE_BASE_FILTER,
2245
+ useFactory: ɵ0$5,
2246
+ deps: [FilterExtractionService, NAE_TAB_DATA]
2247
+ },
2248
+ {
2249
+ provide: AllowedNetsService,
2250
+ useFactory: ɵ1$1,
2251
+ deps: [AllowedNetsServiceFactory, BaseAllowedNetsService, NAE_TAB_DATA]
2252
+ },
2253
+ {
2254
+ provide: NAE_SEARCH_CATEGORIES,
2255
+ useFactory: ɵ2,
2256
+ deps: [CategoryResolverService, NAE_TAB_DATA, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_TASK_SEARCH_CATEGORIES]
2257
+ },
2258
+ ],
2259
+ 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%}"]
2260
+ },] }
2261
+ ];
2262
+ DefaultTabbedCaseViewComponent.ctorParameters = () => [
2263
+ { type: CaseViewService },
2264
+ { type: LoggerService },
2265
+ { type: undefined, decorators: [{ type: Inject, args: [NAE_TAB_DATA,] }] }
2266
+ ];
2267
+ DefaultTabbedCaseViewComponent.propDecorators = {
2268
+ caseHeaderComponent: [{ type: ViewChild, args: ['header',] }]
2269
+ };
2270
+
2271
+ function baseFilterFactory(injectedTabData) {
2272
+ return {
2273
+ filter: injectedTabData.baseFilter
2274
+ };
2275
+ }
2276
+ const ɵ0$6 = tabbedAllowedNetsServiceFactory, ɵ1$2 = tabbedTaskViewConfigurationFactory;
2277
+ class DefaultTabbedTaskViewComponent extends TabbedTaskView {
2278
+ constructor(taskViewService, injectedTabData) {
2279
+ super(taskViewService, injectedTabData);
2280
+ }
2281
+ ngAfterViewInit() {
2282
+ this.initializeHeader(this.taskHeaderComponent);
2283
+ }
2284
+ }
2285
+ DefaultTabbedTaskViewComponent.ctorParameters = () => [
2286
+ { type: TaskViewService },
2287
+ { type: undefined, decorators: [{ type: Inject, args: [NAE_TAB_DATA,] }] }
2288
+ ];
2289
+ DefaultTabbedTaskViewComponent.decorators = [
2290
+ { type: Component, args: [{
2291
+ selector: 'nc-default-tabbed-task-view',
2292
+ 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",
2293
+ providers: [
2294
+ CategoryFactory,
2295
+ TaskViewService,
2296
+ SearchService,
2297
+ ChangedFieldsService,
2298
+ { provide: ViewIdService, useValue: null },
2299
+ {
2300
+ provide: NAE_BASE_FILTER,
2301
+ useFactory: baseFilterFactory,
2302
+ deps: [NAE_TAB_DATA]
2303
+ },
2304
+ {
2305
+ provide: AllowedNetsService,
2306
+ useFactory: ɵ0$6,
2307
+ deps: [AllowedNetsServiceFactory, NAE_TAB_DATA]
2308
+ },
2309
+ {
2310
+ provide: NAE_TASK_VIEW_CONFIGURATION,
2311
+ useFactory: ɵ1$2,
2312
+ deps: [NAE_TAB_DATA]
2313
+ }
2314
+ ],
2315
+ 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%}"]
2316
+ },] }
2317
+ ];
2318
+ DefaultTabbedTaskViewComponent.ctorParameters = () => [
2319
+ { type: TaskViewService },
2320
+ { type: undefined, decorators: [{ type: Inject, args: [NAE_TAB_DATA,] }] }
2321
+ ];
2322
+ DefaultTabbedTaskViewComponent.propDecorators = {
2323
+ taskHeaderComponent: [{ type: ViewChild, args: ['header',] }]
2324
+ };
2325
+
2326
+ const ɵ0$7 = groupNavigationViewIdSegmentFactory;
2327
+ class DefaultTabViewComponent {
2328
+ constructor(_navigationItemTaskData) {
2329
+ this._navigationItemTaskData = _navigationItemTaskData;
2330
+ const labelData = extractIconAndTitle(this._navigationItemTaskData);
2331
+ this.tabs = [
2332
+ {
2333
+ label: { text: labelData.name, icon: labelData.icon },
2334
+ canBeClosed: false,
2335
+ tabContentComponent: DefaultTabbedCaseViewComponent,
2336
+ injectedObject: {
2337
+ tabViewComponent: DefaultTabbedTaskViewComponent,
2338
+ tabViewOrder: 0,
2339
+ navigationItemTaskData: this._navigationItemTaskData
2340
+ }
2341
+ }
2342
+ ];
2343
+ }
2344
+ }
2345
+ DefaultTabViewComponent.ctorParameters = () => [
2346
+ { type: Array, decorators: [{ type: Inject, args: [NAE_NAVIGATION_ITEM_TASK_DATA,] }] }
2347
+ ];
2348
+ DefaultTabViewComponent.decorators = [
2349
+ { type: Component, args: [{
2350
+ selector: 'nc-default-tab-view',
2351
+ 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",
2352
+ providers: [
2353
+ ViewIdService,
2354
+ { provide: NAE_VIEW_ID_SEGMENT, useFactory: ɵ0$7, deps: [ActivatedRoute] }
2355
+ ],
2356
+ styles: [".full-height{height:100%}.block{display:block!important}"]
2357
+ },] }
2358
+ ];
2359
+ DefaultTabViewComponent.ctorParameters = () => [
2360
+ { type: Array, decorators: [{ type: Inject, args: [NAE_NAVIGATION_ITEM_TASK_DATA,] }] }
2361
+ ];
2362
+
2363
+ const ɵ0$8 = groupNavigationViewIdSegmentFactory, ɵ1$3 = navigationItemTaskFilterFactory, ɵ2$1 = navigationItemTaskAllowedNetsServiceFactory, ɵ3 = navigationItemTaskCategoryFactory;
2364
+ class DefaultSimpleTaskViewComponent extends AbstractTaskView {
2365
+ constructor(taskViewService) {
2366
+ super(taskViewService);
2367
+ }
2368
+ ngAfterViewInit() {
2369
+ this.initializeHeader(this.taskHeaderComponent);
2370
+ }
2371
+ }
2372
+ DefaultSimpleTaskViewComponent.ctorParameters = () => [
2373
+ { type: TaskViewService }
2374
+ ];
2375
+ DefaultSimpleTaskViewComponent.decorators = [
2376
+ { type: Component, args: [{
2377
+ selector: 'nc-default-simple-task-view',
2378
+ 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",
2379
+ providers: [
2380
+ CategoryFactory,
2381
+ TaskViewService,
2382
+ SearchService,
2383
+ ViewIdService,
2384
+ ChangedFieldsService,
2385
+ { provide: NAE_VIEW_ID_SEGMENT, useFactory: ɵ0$8, deps: [ActivatedRoute] },
2386
+ {
2387
+ provide: NAE_BASE_FILTER,
2388
+ useFactory: ɵ1$3,
2389
+ deps: [FilterExtractionService, NAE_NAVIGATION_ITEM_TASK_DATA]
2390
+ },
2391
+ {
2392
+ provide: AllowedNetsService,
2393
+ useFactory: ɵ2$1,
2394
+ deps: [AllowedNetsServiceFactory, BaseAllowedNetsService, NAE_NAVIGATION_ITEM_TASK_DATA]
2395
+ },
2396
+ { provide: NAE_SEARCH_CATEGORIES, useFactory: ɵ3, deps: [
2397
+ CategoryResolverService,
2398
+ NAE_NAVIGATION_ITEM_TASK_DATA,
2399
+ NAE_DEFAULT_CASE_SEARCH_CATEGORIES,
2400
+ NAE_DEFAULT_TASK_SEARCH_CATEGORIES
2401
+ ] },
2402
+ ],
2403
+ 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%}"]
2404
+ },] }
2405
+ ];
2406
+ DefaultSimpleTaskViewComponent.ctorParameters = () => [
2407
+ { type: TaskViewService }
2408
+ ];
2409
+ DefaultSimpleTaskViewComponent.propDecorators = {
2410
+ taskHeaderComponent: [{ type: ViewChild, args: ['header',] }]
2411
+ };
2412
+
2413
+ class DefaultGroupNavigationComponentResolverService extends GroupNavigationComponentResolverService {
2414
+ constructor(taskResourceService, log) {
2415
+ super(taskResourceService, log);
2416
+ }
2417
+ resolveViewComponent(navigationItemTaskData) {
2418
+ const filter = extractFilterFromData(navigationItemTaskData);
2419
+ if (filter === undefined) {
2420
+ throw new Error('Provided navigation item task data does not contain a filter field');
2421
+ }
2422
+ switch (filter.type) {
2423
+ case FilterType.CASE:
2424
+ return DefaultTabViewComponent;
2425
+ case FilterType.TASK:
2426
+ return DefaultSimpleTaskViewComponent;
2427
+ default:
2428
+ throw new Error(`Cannot resolve group navigation component from '${filter.type}' filter type`);
2429
+ }
2430
+ }
2431
+ }
2432
+ DefaultGroupNavigationComponentResolverService.ctorParameters = () => [
2433
+ { type: TaskResourceService },
2434
+ { type: LoggerService }
2435
+ ];
2436
+ DefaultGroupNavigationComponentResolverService.decorators = [
2437
+ { type: Injectable }
2438
+ ];
2439
+ DefaultGroupNavigationComponentResolverService.ctorParameters = () => [
2440
+ { type: TaskResourceService },
2441
+ { type: LoggerService }
2442
+ ];
2443
+
2444
+ /**
2445
+ * Converts search categories provided by the {@link NAE_SEARCH_CATEGORIES}
2446
+ * injection token in the old (pre 5.6.0) format, to the new format.
2447
+ *
2448
+ * If no search categories are provided converts the default search categories into search categories
2449
+ * based on the base filter filter type.
2450
+ *
2451
+ * @param categoryResolverService service for serialisation and deserialization of search categories
2452
+ * @param baseFilter determines the default categories used if no categories are provided, injected by the {@link NAE_BASE_FILTER}
2453
+ * injection token
2454
+ * @param defaultCaseSearchCategories the default case search categories, injected by the {@link NAE_DEFAULT_CASE_SEARCH_CATEGORIES}
2455
+ * injection token
2456
+ * @param defaultTaskSearchCategories the default task search categories, injected by the {@link NAE_DEFAULT_TASK_SEARCH_CATEGORIES}
2457
+ * injection token
2458
+ * @param naeSearchCategories optionally the search category instances, or the search category classes. Instances are converted to classes.
2459
+ * If no categories are provided the default ones based on the base filter filter type will be returned.
2460
+ * Injected by the {@link NAE_SEARCH_CATEGORIES} injection token.
2461
+ */
2462
+ function searchCategoryConverter(categoryResolverService, baseFilter, defaultCaseSearchCategories, defaultTaskSearchCategories, naeSearchCategories = null) {
2463
+ if (naeSearchCategories === null) {
2464
+ // categories were not provided => return the defaults
2465
+ const type = baseFilter.filter instanceof Filter ? baseFilter.filter.type : baseFilter.filterType;
2466
+ if (type === FilterType.CASE) {
2467
+ return defaultCaseSearchCategories;
2468
+ }
2469
+ else if (type === FilterType.TASK) {
2470
+ return defaultTaskSearchCategories;
2471
+ }
2472
+ throw new Error(`Illegal filter type: ${type}`);
2473
+ }
2474
+ // categories were provided => convert them if necessary
2475
+ if (naeSearchCategories.length !== 0 && naeSearchCategories[0] instanceof Category) {
2476
+ return naeSearchCategories.map(c => {
2477
+ return categoryResolverService.toClass(categoryResolverService.serialize(c));
2478
+ });
2479
+ }
2480
+ return naeSearchCategories;
2481
+ }
2482
+ const ɵ0$9 = DATE_FORMAT;
2483
+ class SearchComponent extends AbstractSearchComponent {
2484
+ constructor(searchService, logger, dialogService, translate, userFilterService, allowedNetsService, viewIdService, searchCategories, configuration, filtersFilter = null, navigationItemTaskData = null) {
2485
+ super(searchService, logger, dialogService, translate, userFilterService, allowedNetsService, viewIdService, searchCategories, configuration, filtersFilter, navigationItemTaskData);
2486
+ }
2487
+ }
2488
+ SearchComponent.ctorParameters = () => [
2489
+ { type: SearchService },
2490
+ { type: LoggerService },
2491
+ { type: DialogService },
2492
+ { type: TranslateService },
2493
+ { type: UserFiltersService },
2494
+ { type: AllowedNetsService },
2495
+ { type: ViewIdService },
2496
+ { type: Array, decorators: [{ type: Inject, args: [NAE_SEARCH_CATEGORIES,] }] },
2497
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_SEARCH_COMPONENT_CONFIGURATION,] }] },
2498
+ { type: Filter, decorators: [{ type: Optional }, { type: Inject, args: [NAE_FILTERS_FILTER,] }] },
2499
+ { type: Array, decorators: [{ type: Optional }, { type: Inject, args: [NAE_NAVIGATION_ITEM_TASK_DATA,] }] }
2500
+ ];
2501
+ SearchComponent.decorators = [
2502
+ { type: Component, args: [{
2503
+ selector: 'nc-search',
2504
+ 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",
2505
+ encapsulation: ViewEncapsulation.None,
2506
+ providers: [
2507
+ { provide: MAT_DATE_FORMATS, useValue: ɵ0$9 },
2508
+ {
2509
+ provide: NAE_SEARCH_CATEGORIES,
2510
+ useFactory: searchCategoryConverter,
2511
+ deps: [
2512
+ CategoryResolverService,
2513
+ NAE_BASE_FILTER,
2514
+ NAE_DEFAULT_CASE_SEARCH_CATEGORIES,
2515
+ NAE_DEFAULT_TASK_SEARCH_CATEGORIES,
2516
+ [new Optional(), new SkipSelf(), NAE_SEARCH_CATEGORIES]
2517
+ ]
2518
+ }
2519
+ ],
2520
+ 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%}"]
2521
+ },] }
2522
+ ];
2523
+ SearchComponent.ctorParameters = () => [
2524
+ { type: SearchService },
2525
+ { type: LoggerService },
2526
+ { type: DialogService },
2527
+ { type: TranslateService },
2528
+ { type: UserFiltersService },
2529
+ { type: AllowedNetsService },
2530
+ { type: ViewIdService },
2531
+ { type: Array, decorators: [{ type: Inject, args: [NAE_SEARCH_CATEGORIES,] }] },
2532
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_SEARCH_COMPONENT_CONFIGURATION,] }] },
2533
+ { type: Filter, decorators: [{ type: Optional }, { type: Inject, args: [NAE_FILTERS_FILTER,] }] },
2534
+ { type: Array, decorators: [{ type: Optional }, { type: Inject, args: [NAE_NAVIGATION_ITEM_TASK_DATA,] }] }
2535
+ ];
2536
+
2537
+ const ɵ0$a = defaultCaseSearchCategoriesFactory;
2538
+ /**
2539
+ * A component that provides the default case search categories.
2540
+ *
2541
+ * @deprecated in 5.0.0 - Use the universal {@link SearchComponent} instead and provide the {@link NAE_SEARCH_CATEGORIES} yourself
2542
+ * (a [factory method]{@link defaultCaseSearchCategoriesFactory} can be used).
2543
+ */
2544
+ class CaseSearchComponent {
2545
+ }
2546
+ CaseSearchComponent.decorators = [
2547
+ { type: Component, args: [{
2548
+ selector: 'nc-case-search',
2549
+ template: "<nc-search></nc-search>\n",
2550
+ providers: [
2551
+ CategoryFactory,
2552
+ { provide: NAE_SEARCH_CATEGORIES, useFactory: ɵ0$a, deps: [CategoryFactory] }
2553
+ ],
2554
+ styles: [""]
2555
+ },] }
2556
+ ];
2557
+
2558
+ const ɵ0$b = defaultTaskSearchCategoriesFactory;
2559
+ /**
2560
+ * A component that provides the default task search categories.
2561
+ *
2562
+ * @deprecated in 5.0.0 - Use the universal {@link SearchComponent} instead and provide the {@link NAE_SEARCH_CATEGORIES} yourself
2563
+ * (a [factory method]{@link defaultTaskSearchCategoriesFactory} can be used).
2564
+ */
2565
+ class TaskSearchComponent {
2566
+ }
2567
+ TaskSearchComponent.decorators = [
2568
+ { type: Component, args: [{
2569
+ selector: 'nc-task-search',
2570
+ template: "<nc-search></nc-search>\n",
2571
+ providers: [
2572
+ CategoryFactory,
2573
+ { provide: NAE_SEARCH_CATEGORIES, useFactory: ɵ0$b, deps: [CategoryFactory] }
2574
+ ],
2575
+ styles: [""]
2576
+ },] }
2577
+ ];
2578
+
2579
+ class FulltextSearchComponent extends AbstractFulltextSearchComponent {
2580
+ constructor(searchService) {
2581
+ super(searchService);
2582
+ }
2583
+ }
2584
+ FulltextSearchComponent.ctorParameters = () => [
2585
+ { type: SearchService }
2586
+ ];
2587
+ FulltextSearchComponent.decorators = [
2588
+ { type: Component, args: [{
2589
+ selector: 'nc-fulltext-search',
2590
+ 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",
2591
+ styles: [""]
2592
+ },] }
2593
+ ];
2594
+ FulltextSearchComponent.ctorParameters = () => [
2595
+ { type: SearchService }
2596
+ ];
2597
+
2598
+ class SearchComponentModule {
2599
+ }
2600
+ SearchComponentModule.decorators = [
2601
+ { type: NgModule, args: [{
2602
+ declarations: [
2603
+ SearchComponent,
2604
+ CaseSearchComponent,
2605
+ TaskSearchComponent,
2606
+ FulltextSearchComponent,
2607
+ ],
2608
+ exports: [
2609
+ SearchComponent,
2610
+ CaseSearchComponent,
2611
+ TaskSearchComponent,
2612
+ ],
2613
+ imports: [
2614
+ CommonModule,
2615
+ MaterialModule,
2616
+ TranslateLibModule,
2617
+ NgxMatDatetimePickerModule,
2618
+ MaterialModule,
2619
+ AdvancedSearchComponentModule,
2620
+ DefaultSearchCategoriesModule
2621
+ ]
2622
+ },] }
2623
+ ];
2624
+
2625
+ class PanelComponent extends AbstractPanelComponent {
2626
+ constructor(caseListFontColorService) {
2627
+ super(caseListFontColorService);
2628
+ }
2629
+ }
2630
+ PanelComponent.ctorParameters = () => [
2631
+ { type: CaseListFontColorService }
2632
+ ];
2633
+ PanelComponent.decorators = [
2634
+ { type: Component, args: [{
2635
+ selector: 'nc-app-panel',
2636
+ 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",
2637
+ 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}"]
2638
+ },] }
2639
+ ];
2640
+ PanelComponent.ctorParameters = () => [
2641
+ { type: CaseListFontColorService }
2642
+ ];
2643
+
2644
+ class TaskContentComponent extends AbstractTaskContentComponent {
2645
+ constructor(_fieldConverter, taskContentService, _paperView, _logger, _taskEventService, config) {
2646
+ super(_fieldConverter, taskContentService, _paperView, _logger, _taskEventService, config);
2647
+ this._fieldConverter = _fieldConverter;
2648
+ this.taskContentService = taskContentService;
2649
+ this._paperView = _paperView;
2650
+ this._logger = _logger;
2651
+ this._taskEventService = _taskEventService;
2652
+ }
2653
+ }
2654
+ TaskContentComponent.ctorParameters = () => [
2655
+ { type: FieldConverterService },
2656
+ { type: TaskContentService },
2657
+ { type: PaperViewService },
2658
+ { type: LoggerService },
2659
+ { type: TaskEventService, decorators: [{ type: Optional }] },
2660
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_ASYNC_RENDERING_CONFIGURATION,] }] }
2661
+ ];
2662
+ TaskContentComponent.decorators = [
2663
+ { type: Component, args: [{
2664
+ selector: 'nc-task-content',
2665
+ 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",
2666
+ 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}"]
2667
+ },] }
2668
+ ];
2669
+ TaskContentComponent.ctorParameters = () => [
2670
+ { type: FieldConverterService },
2671
+ { type: TaskContentService },
2672
+ { type: PaperViewService },
2673
+ { type: LoggerService },
2674
+ { type: TaskEventService, decorators: [{ type: Optional }] },
2675
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_ASYNC_RENDERING_CONFIGURATION,] }] }
2676
+ ];
2677
+
2678
+ class TaskPanelComponent extends AbstractTaskPanelComponent {
2679
+ constructor(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _callChain, _translate, _taskOperations, _disableFunctions, isEnabled, _parentInjector, _currencyPipe, _changedFieldsService, _permissionService) {
2680
+ super(_taskContentService, _log, _taskViewService, _paperView, _taskEventService, _assignTaskService, _delegateTaskService, _cancelTaskService, _finishTaskService, _taskState, _taskDataService, _assignPolicyService, _callChain, _taskOperations, _disableFunctions, _translate, _currencyPipe, _changedFieldsService, _permissionService);
2681
+ this._taskContentService = _taskContentService;
2682
+ this._log = _log;
2683
+ this._taskViewService = _taskViewService;
2684
+ this._paperView = _paperView;
2685
+ this._taskEventService = _taskEventService;
2686
+ this._assignTaskService = _assignTaskService;
2687
+ this._delegateTaskService = _delegateTaskService;
2688
+ this._cancelTaskService = _cancelTaskService;
2689
+ this._finishTaskService = _finishTaskService;
2690
+ this._taskState = _taskState;
2691
+ this._taskDataService = _taskDataService;
2692
+ this._assignPolicyService = _assignPolicyService;
2693
+ this._callChain = _callChain;
2694
+ this._translate = _translate;
2695
+ this._disableFunctions = _disableFunctions;
2696
+ this.isEnabled = isEnabled;
2697
+ this._parentInjector = _parentInjector;
2698
+ this._currencyPipe = _currencyPipe;
2699
+ this._changedFieldsService = _changedFieldsService;
2700
+ this._permissionService = _permissionService;
2701
+ }
2702
+ createContentPortal() {
2703
+ const providers = [
2704
+ { provide: TaskContentService, useValue: this._taskContentService },
2705
+ { provide: BOOLEAN_VALUE_LABEL_ENABLED, useValue: this.isEnabled }
2706
+ ];
2707
+ const injector = Injector.create({ providers, parent: this._parentInjector });
2708
+ if (this.panelContentComponent === undefined) {
2709
+ this.portal = new ComponentPortal(TaskContentComponent, null, injector);
2710
+ }
2711
+ else {
2712
+ this.portal = new ComponentPortal(this.panelContentComponent, null, injector);
2713
+ }
2714
+ }
2715
+ }
2716
+ TaskPanelComponent.ctorParameters = () => [
2717
+ { type: TaskContentService },
2718
+ { type: LoggerService },
2719
+ { type: TaskViewService },
2720
+ { type: PaperViewService },
2721
+ { type: TaskEventService },
2722
+ { type: AssignTaskService },
2723
+ { type: DelegateTaskService },
2724
+ { type: CancelTaskService },
2725
+ { type: FinishTaskService },
2726
+ { type: TaskRequestStateService },
2727
+ { type: TaskDataService },
2728
+ { type: AssignPolicyService },
2729
+ { type: CallChainService },
2730
+ { type: TranslateService },
2731
+ { type: SubjectTaskOperations, decorators: [{ type: Inject, args: [NAE_TASK_OPERATIONS,] }] },
2732
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS,] }] },
2733
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [BOOLEAN_VALUE_LABEL_ENABLED,] }] },
2734
+ { type: Injector },
2735
+ { type: CurrencyPipe },
2736
+ { type: ChangedFieldsService },
2737
+ { type: PermissionService }
2738
+ ];
2739
+ TaskPanelComponent.decorators = [
2740
+ { type: Component, args: [{
2741
+ selector: 'nc-task-panel',
2742
+ 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",
2743
+ providers: [
2744
+ { provide: TaskContentService, useClass: SingleTaskContentService },
2745
+ TaskDataService,
2746
+ TaskEventService,
2747
+ AssignTaskService,
2748
+ DelegateTaskService,
2749
+ CancelTaskService,
2750
+ FinishTaskService,
2751
+ TaskRequestStateService,
2752
+ DataFocusPolicyService,
2753
+ AssignPolicyService,
2754
+ FinishPolicyService,
2755
+ ChangedFieldsService,
2756
+ { provide: NAE_TASK_OPERATIONS, useClass: SubjectTaskOperations },
2757
+ ],
2758
+ 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}"]
2759
+ },] }
2760
+ ];
2761
+ TaskPanelComponent.ctorParameters = () => [
2762
+ { type: TaskContentService },
2763
+ { type: LoggerService },
2764
+ { type: TaskViewService },
2765
+ { type: PaperViewService },
2766
+ { type: TaskEventService },
2767
+ { type: AssignTaskService },
2768
+ { type: DelegateTaskService },
2769
+ { type: CancelTaskService },
2770
+ { type: FinishTaskService },
2771
+ { type: TaskRequestStateService },
2772
+ { type: TaskDataService },
2773
+ { type: AssignPolicyService },
2774
+ { type: CallChainService },
2775
+ { type: TranslateService },
2776
+ { type: SubjectTaskOperations, decorators: [{ type: Inject, args: [NAE_TASK_OPERATIONS,] }] },
2777
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS,] }] },
2778
+ { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [BOOLEAN_VALUE_LABEL_ENABLED,] }] },
2779
+ { type: Injector },
2780
+ { type: CurrencyPipe },
2781
+ { type: ChangedFieldsService },
2782
+ { type: PermissionService }
2783
+ ];
2784
+
2785
+ class CasePanelComponent extends AbstractCasePanelComponent {
2786
+ constructor(_caseResourceService, _caseViewService, _snackBarService, _translateService, _log, _overflowService, _userService, _currencyPipe, _permissionService) {
2787
+ super(_caseResourceService, _caseViewService, _snackBarService, _translateService, _log, _overflowService, _userService, _currencyPipe, _permissionService);
2788
+ this._caseResourceService = _caseResourceService;
2789
+ this._caseViewService = _caseViewService;
2790
+ this._snackBarService = _snackBarService;
2791
+ this._translateService = _translateService;
2792
+ this._log = _log;
2793
+ this._overflowService = _overflowService;
2794
+ this._userService = _userService;
2795
+ this._currencyPipe = _currencyPipe;
2796
+ this._permissionService = _permissionService;
2797
+ }
2798
+ }
2799
+ CasePanelComponent.ctorParameters = () => [
2800
+ { type: CaseResourceService },
2801
+ { type: CaseViewService },
2802
+ { type: SnackBarService },
2803
+ { type: TranslateService },
2804
+ { type: LoggerService },
2805
+ { type: OverflowService, decorators: [{ type: Optional }] },
2806
+ { type: UserService },
2807
+ { type: CurrencyPipe },
2808
+ { type: PermissionService }
2809
+ ];
2810
+ CasePanelComponent.decorators = [
2811
+ { type: Component, args: [{
2812
+ selector: 'nc-case-panel',
2813
+ 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",
2814
+ 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}"]
2815
+ },] }
2816
+ ];
2817
+ CasePanelComponent.ctorParameters = () => [
2818
+ { type: CaseResourceService },
2819
+ { type: CaseViewService },
2820
+ { type: SnackBarService },
2821
+ { type: TranslateService },
2822
+ { type: LoggerService },
2823
+ { type: OverflowService, decorators: [{ type: Optional }] },
2824
+ { type: UserService },
2825
+ { type: CurrencyPipe },
2826
+ { type: PermissionService }
2827
+ ];
2828
+
2829
+ class TaskListComponent extends AbstractTaskListComponent {
2830
+ constructor(_taskViewService, _log, injectedTabData, route) {
2831
+ super(_taskViewService, _log, injectedTabData, route);
2832
+ this._taskViewService = _taskViewService;
2833
+ this._log = _log;
2834
+ this.route = route;
2835
+ }
2836
+ }
2837
+ TaskListComponent.ctorParameters = () => [
2838
+ { type: TaskViewService },
2839
+ { type: LoggerService },
2840
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TAB_DATA,] }] },
2841
+ { type: ActivatedRoute }
2842
+ ];
2843
+ TaskListComponent.decorators = [
2844
+ { type: Component, args: [{
2845
+ selector: 'nc-task-list',
2846
+ 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",
2847
+ styles: [".font-size-20{font-size:20px}.full-width{width:100%}.full-height{height:100%}.task-panel-scroll-container{padding:0 4px}"]
2848
+ },] }
2849
+ ];
2850
+ TaskListComponent.ctorParameters = () => [
2851
+ { type: TaskViewService },
2852
+ { type: LoggerService },
2853
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TAB_DATA,] }] },
2854
+ { type: ActivatedRoute }
2855
+ ];
2856
+
2857
+ class WorkflowPanelComponent extends AbstractWorkflowPanelComponent {
2858
+ constructor(log, translate, workflowService) {
2859
+ super(log, translate, workflowService);
2860
+ }
2861
+ }
2862
+ WorkflowPanelComponent.ctorParameters = () => [
2863
+ { type: LoggerService },
2864
+ { type: TranslateService },
2865
+ { type: WorkflowViewService }
2866
+ ];
2867
+ WorkflowPanelComponent.decorators = [
2868
+ { type: Component, args: [{
2869
+ selector: 'nc-workflow-panel',
2870
+ 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",
2871
+ 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}"]
2872
+ },] }
2873
+ ];
2874
+ WorkflowPanelComponent.ctorParameters = () => [
2875
+ { type: LoggerService },
2876
+ { type: TranslateService },
2877
+ { type: WorkflowViewService }
2878
+ ];
2879
+
2880
+ class FieldComponentResolverComponent extends AbstractFieldComponentResolverComponent {
2881
+ constructor(taskContentService) {
2882
+ super(taskContentService);
2883
+ }
2884
+ }
2885
+ FieldComponentResolverComponent.ctorParameters = () => [
2886
+ { type: TaskContentService }
2887
+ ];
2888
+ FieldComponentResolverComponent.decorators = [
2889
+ { type: Component, args: [{
2890
+ selector: 'nc-field-component-resolver',
2891
+ 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",
2892
+ 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}"]
2893
+ },] }
2894
+ ];
2895
+ FieldComponentResolverComponent.ctorParameters = () => [
2896
+ { type: TaskContentService }
2897
+ ];
2898
+
2899
+ class TaskContentComponentModule {
2900
+ }
2901
+ TaskContentComponentModule.decorators = [
2902
+ { type: NgModule, args: [{
2903
+ declarations: [
2904
+ TaskContentComponent,
2905
+ FieldComponentResolverComponent
2906
+ ],
2907
+ imports: [
2908
+ CommonModule,
2909
+ MaterialModule,
2910
+ FlexModule,
2911
+ TranslateLibModule,
2912
+ SnackBarModule,
2913
+ DataFieldsComponentModule
2914
+ ],
2915
+ exports: [
2916
+ TaskContentComponent
2917
+ ],
2918
+ entryComponents: [
2919
+ TaskContentComponent
2920
+ ]
2921
+ },] }
2922
+ ];
2923
+
2924
+ class PublicWorkflowPanelComponent extends AbstractWorkflowPanelComponent {
2925
+ constructor(log, translate, workflowService) {
2926
+ super(log, translate, workflowService);
2927
+ }
2928
+ }
2929
+ PublicWorkflowPanelComponent.ctorParameters = () => [
2930
+ { type: LoggerService },
2931
+ { type: TranslateService },
2932
+ { type: WorkflowViewService }
2933
+ ];
2934
+ PublicWorkflowPanelComponent.decorators = [
2935
+ { type: Component, args: [{
2936
+ selector: 'nc-public-workflow-panel',
2937
+ 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",
2938
+ styles: [""]
2939
+ },] }
2940
+ ];
2941
+ PublicWorkflowPanelComponent.ctorParameters = () => [
2942
+ { type: LoggerService },
2943
+ { type: TranslateService },
2944
+ { type: WorkflowViewService }
2945
+ ];
2946
+
2947
+ function filterTextBaseFilterFactory(configuration) {
2948
+ return {
2949
+ filter: SimpleFilter.empty(configuration.metadata.filterMetadata.filterType)
2950
+ };
2951
+ }
2952
+ function filterTextAllowedNetsFactory(factory, configuration) {
2953
+ return factory.createFromArray(configuration.metadata.allowedNets);
2954
+ }
2955
+ function filterTextCategoriesFactory(factory, configuration) {
2956
+ const categories = configuration.metadata.filterMetadata.searchCategories.map(c => factory.getByNameWithDefaultOperator(c));
2957
+ categories.forEach(c => c.destroy());
2958
+ return categories;
2959
+ }
2960
+ class ImmediateFilterTextContentComponent extends AbstractImmediateFilterTextContentComponent {
2961
+ constructor(configuration, textSearchService, translateService) {
2962
+ super(configuration, textSearchService, translateService);
2963
+ }
2964
+ }
2965
+ ImmediateFilterTextContentComponent.ctorParameters = () => [
2966
+ { type: undefined, decorators: [{ type: Inject, args: [NAE_FILTER_TEXT,] }] },
2967
+ { type: SearchService },
2968
+ { type: TranslateService }
2969
+ ];
2970
+ ImmediateFilterTextContentComponent.decorators = [
2971
+ { type: Component, args: [{
2972
+ selector: 'nc-immediate-filter-text-content',
2973
+ 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",
2974
+ providers: [
2975
+ { provide: NAE_BASE_FILTER, useFactory: filterTextBaseFilterFactory, deps: [NAE_FILTER_TEXT] },
2976
+ { provide: AllowedNetsService, useFactory: filterTextAllowedNetsFactory, deps: [AllowedNetsServiceFactory, NAE_FILTER_TEXT] },
2977
+ { provide: NAE_SEARCH_CATEGORIES, useFactory: filterTextCategoriesFactory, deps: [CategoryFactory, NAE_FILTER_TEXT] },
2978
+ CategoryFactory,
2979
+ SearchService,
2980
+ ],
2981
+ 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}"]
2982
+ },] }
2983
+ ];
2984
+ ImmediateFilterTextContentComponent.ctorParameters = () => [
2985
+ { type: undefined, decorators: [{ type: Inject, args: [NAE_FILTER_TEXT,] }] },
2986
+ { type: SearchService },
2987
+ { type: TranslateService }
2988
+ ];
2989
+
2990
+ class ImmediateFilterTextComponent extends AbstractImmediateFilterTextComponent {
2991
+ constructor(parentInjector) {
2992
+ super(parentInjector);
2993
+ }
2994
+ getFilterTextContentComponent() {
2995
+ return ImmediateFilterTextContentComponent;
2996
+ }
2997
+ }
2998
+ ImmediateFilterTextComponent.ctorParameters = () => [
2999
+ { type: Injector }
3000
+ ];
3001
+ ImmediateFilterTextComponent.decorators = [
3002
+ { type: Component, args: [{
3003
+ selector: 'nc-immediate-filter-text',
3004
+ template: "<ng-template [ngIf]=\"initialized\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n</ng-template>\n",
3005
+ styles: [""]
3006
+ },] }
3007
+ ];
3008
+ ImmediateFilterTextComponent.ctorParameters = () => [
3009
+ { type: Injector }
3010
+ ];
3011
+
3012
+ class PanelComponentModule {
3013
+ }
3014
+ PanelComponentModule.decorators = [
3015
+ { type: NgModule, args: [{
3016
+ declarations: [
3017
+ PanelComponent,
3018
+ TaskPanelComponent,
3019
+ CasePanelComponent,
3020
+ WorkflowPanelComponent,
3021
+ TaskListComponent,
3022
+ PublicWorkflowPanelComponent,
3023
+ ImmediateFilterTextComponent,
3024
+ ImmediateFilterTextContentComponent,
3025
+ ],
3026
+ imports: [
3027
+ CommonModule,
3028
+ MaterialModule,
3029
+ FlexModule,
3030
+ DataFieldsComponentModule,
3031
+ TranslateLibModule,
3032
+ SnackBarModule,
3033
+ TaskContentComponentModule,
3034
+ SideMenuUserAssignComponentModule,
3035
+ CurrencyModule
3036
+ ],
3037
+ exports: [
3038
+ PanelComponent,
3039
+ TaskPanelComponent,
3040
+ CasePanelComponent,
3041
+ WorkflowPanelComponent,
3042
+ TaskListComponent,
3043
+ PublicWorkflowPanelComponent,
3044
+ ImmediateFilterTextComponent,
3045
+ ],
3046
+ entryComponents: [
3047
+ ImmediateFilterTextContentComponent,
3048
+ ]
3049
+ },] }
3050
+ ];
3051
+
3052
+ /**
3053
+ * Component that renders a tab view.
3054
+ *
3055
+ * See {@link TabView} for the class that holds the logic for this view.
3056
+ */
3057
+ class TabViewComponent extends AbstractTabViewComponent {
3058
+ constructor(_viewService, _logger, injector) {
3059
+ super(_viewService, _logger, injector);
3060
+ this._viewService = _viewService;
3061
+ this._logger = _logger;
3062
+ }
3063
+ }
3064
+ TabViewComponent.ctorParameters = () => [
3065
+ { type: ViewService },
3066
+ { type: LoggerService },
3067
+ { type: Injector }
3068
+ ];
3069
+ TabViewComponent.decorators = [
3070
+ { type: Component, args: [{
3071
+ selector: 'nc-tab-view',
3072
+ 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 <!-- TODO 16.4.2020 - lazy loading of tab contents is disabled for now -->\n <!-- <ng-template matTabContent>-->\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",
3073
+ 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}"]
3074
+ },] }
3075
+ ];
3076
+ TabViewComponent.ctorParameters = () => [
3077
+ { type: ViewService },
3078
+ { type: LoggerService },
3079
+ { type: Injector }
3080
+ ];
3081
+
3082
+ /**
3083
+ * @ignore
3084
+ * Class that detects tab content creation and then initializes then calls the provided `initializeTab` function.
3085
+ * It is necessary if the tab content is lazy loaded, because the
3086
+ * ComponentPortal's outlet must be initialized before the Portal itself is created.
3087
+ */
3088
+ class TabCreationDetectorComponent extends AbstractTabCreationDetectorComponent {
3089
+ constructor() {
3090
+ super();
3091
+ }
3092
+ }
3093
+ TabCreationDetectorComponent.decorators = [
3094
+ { type: Component, args: [{
3095
+ selector: 'nc-tab-creation-detector',
3096
+ template: "",
3097
+ styles: [""]
3098
+ },] }
3099
+ ];
3100
+ TabCreationDetectorComponent.ctorParameters = () => [];
3101
+
3102
+ class TabsComponentModule {
3103
+ }
3104
+ TabsComponentModule.decorators = [
3105
+ { type: NgModule, args: [{
3106
+ declarations: [
3107
+ TabViewComponent,
3108
+ TabCreationDetectorComponent,
3109
+ ],
3110
+ exports: [
3111
+ TabViewComponent,
3112
+ ],
3113
+ imports: [
3114
+ CommonModule,
3115
+ MatTabsModule,
3116
+ MaterialModule,
3117
+ FlexLayoutModule,
3118
+ TranslateLibModule,
3119
+ ]
3120
+ },] }
3121
+ ];
3122
+
3123
+ class CaseListComponent extends AbstractCaseListComponent {
3124
+ constructor(_caseViewService, _log, injectedTabData, route) {
3125
+ super(_caseViewService, _log, injectedTabData, route);
3126
+ this._caseViewService = _caseViewService;
3127
+ this._log = _log;
3128
+ this.route = route;
3129
+ }
3130
+ }
3131
+ CaseListComponent.ctorParameters = () => [
3132
+ { type: CaseViewService },
3133
+ { type: LoggerService },
3134
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TAB_DATA,] }] },
3135
+ { type: ActivatedRoute }
3136
+ ];
3137
+ CaseListComponent.decorators = [
3138
+ { type: Component, args: [{
3139
+ selector: 'nc-case-list',
3140
+ 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",
3141
+ 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}"]
3142
+ },] }
3143
+ ];
3144
+ CaseListComponent.ctorParameters = () => [
3145
+ { type: CaseViewService },
3146
+ { type: LoggerService },
3147
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_TAB_DATA,] }] },
3148
+ { type: ActivatedRoute }
3149
+ ];
3150
+
3151
+ class CaseViewComponentModule {
3152
+ }
3153
+ CaseViewComponentModule.decorators = [
3154
+ { type: NgModule, args: [{
3155
+ declarations: [CaseListComponent],
3156
+ exports: [CaseListComponent],
3157
+ imports: [
3158
+ CommonModule,
3159
+ MaterialModule,
3160
+ FlexModule,
3161
+ PanelComponentModule,
3162
+ TranslateLibModule
3163
+ ]
3164
+ },] }
3165
+ ];
3166
+
3167
+ const ɵ0$c = GroupNavigationComponentResolverComponent;
3168
+ class NavigationComponentModule {
3169
+ }
3170
+ NavigationComponentModule.decorators = [
3171
+ { type: NgModule, args: [{
3172
+ declarations: [
3173
+ NavigationDrawerComponent,
3174
+ NavigationRailComponent,
3175
+ NavigationTreeComponent,
3176
+ GroupNavigationComponentResolverComponent,
3177
+ DefaultSimpleTaskViewComponent,
3178
+ DefaultTabbedTaskViewComponent,
3179
+ DefaultTabbedCaseViewComponent,
3180
+ DefaultTabViewComponent
3181
+ ],
3182
+ imports: [
3183
+ CommonModule,
3184
+ RouterModule,
3185
+ MaterialModule,
3186
+ FlexModule,
3187
+ FlexLayoutModule,
3188
+ QuickPanelComponentModule,
3189
+ TranslateLibModule,
3190
+ UserComponentModule,
3191
+ ResizableModule,
3192
+ MatProgressSpinnerModule,
3193
+ SearchComponentModule,
3194
+ HeaderComponentModule,
3195
+ PanelComponentModule,
3196
+ TabsComponentModule,
3197
+ CaseViewComponentModule,
3198
+ ],
3199
+ exports: [
3200
+ NavigationDrawerComponent,
3201
+ NavigationRailComponent,
3202
+ NavigationTreeComponent,
3203
+ GroupNavigationComponentResolverComponent,
3204
+ DefaultSimpleTaskViewComponent,
3205
+ DefaultTabbedTaskViewComponent,
3206
+ DefaultTabbedCaseViewComponent,
3207
+ DefaultTabViewComponent
3208
+ ],
3209
+ providers: [
3210
+ { provide: NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, useValue: ɵ0$c },
3211
+ { provide: GroupNavigationComponentResolverService, useClass: DefaultGroupNavigationComponentResolverService }
3212
+ ],
3213
+ entryComponents: [
3214
+ GroupNavigationComponentResolverComponent,
3215
+ DefaultSimpleTaskViewComponent,
3216
+ DefaultTabbedTaskViewComponent,
3217
+ DefaultTabbedCaseViewComponent,
3218
+ DefaultTabViewComponent
3219
+ ]
3220
+ },] }
3221
+ ];
3222
+
3223
+ /* APIS */
3224
+
3225
+ /* MODULES */
3226
+
3227
+ /* Module */
3228
+
3229
+ /* Advanced search */
3230
+
3231
+ const ɵ0$d = { showError: true };
3232
+ class NewCaseComponent extends AbstractNewCaseComponent {
3233
+ constructor(_sideMenuControl, _formBuilder, _snackBarService, _caseResourceService, _hotkeysService, _translate) {
3234
+ super(_sideMenuControl, _formBuilder, _snackBarService, _caseResourceService, _hotkeysService, _translate);
3235
+ this._sideMenuControl = _sideMenuControl;
3236
+ this._formBuilder = _formBuilder;
3237
+ this._snackBarService = _snackBarService;
3238
+ this._caseResourceService = _caseResourceService;
3239
+ this._hotkeysService = _hotkeysService;
3240
+ this._translate = _translate;
3241
+ this.isVersionVisible = _sideMenuControl.isVersionVisible;
3242
+ }
3243
+ }
3244
+ NewCaseComponent.ctorParameters = () => [
3245
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
3246
+ { type: FormBuilder },
3247
+ { type: SnackBarService },
3248
+ { type: CaseResourceService },
3249
+ { type: HotkeysService },
3250
+ { type: TranslateService }
3251
+ ];
3252
+ NewCaseComponent.decorators = [
3253
+ { type: Component, args: [{
3254
+ selector: 'nc-new-case',
3255
+ 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",
3256
+ providers: [{
3257
+ provide: STEPPER_GLOBAL_OPTIONS,
3258
+ useValue: ɵ0$d
3259
+ }],
3260
+ styles: [".version-span{padding-left:8px;color:gray}.spinner-margin{margin-top:16px}"]
3261
+ },] }
3262
+ ];
3263
+ NewCaseComponent.ctorParameters = () => [
3264
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
3265
+ { type: FormBuilder },
3266
+ { type: SnackBarService },
3267
+ { type: CaseResourceService },
3268
+ { type: HotkeysService },
3269
+ { type: TranslateService }
3270
+ ];
3271
+
3272
+ const ɵ0$e = NewCaseComponent;
3273
+ class SideMenuNewCaseComponentModule {
3274
+ }
3275
+ SideMenuNewCaseComponentModule.decorators = [
3276
+ { type: NgModule, args: [{
3277
+ declarations: [
3278
+ NewCaseComponent
3279
+ ],
3280
+ imports: [
3281
+ CommonModule,
3282
+ MaterialModule,
3283
+ CovalentModule,
3284
+ FlexLayoutModule,
3285
+ FlexModule,
3286
+ FormsModule,
3287
+ SnackBarModule,
3288
+ TranslateLibModule,
3289
+ HotkeyModule.forRoot()
3290
+ ],
3291
+ exports: [NewCaseComponent],
3292
+ entryComponents: [NewCaseComponent],
3293
+ providers: [
3294
+ { provide: NAE_NEW_CASE_COMPONENT, useValue: ɵ0$e }
3295
+ ]
3296
+ },] }
3297
+ ];
3298
+
3299
+ class ImportNetComponent extends AbstractImportNetComponent {
3300
+ constructor(_sideMenuControl, _petriNetResource, _log, _snackbar, _translate) {
3301
+ super(_sideMenuControl, _petriNetResource, _log, _snackbar, _translate);
3302
+ this._sideMenuControl = _sideMenuControl;
3303
+ this._petriNetResource = _petriNetResource;
3304
+ this._log = _log;
3305
+ this._snackbar = _snackbar;
3306
+ this._translate = _translate;
3307
+ }
3308
+ }
3309
+ ImportNetComponent.ctorParameters = () => [
3310
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
3311
+ { type: PetriNetResourceService },
3312
+ { type: LoggerService },
3313
+ { type: SnackBarService },
3314
+ { type: TranslateService }
3315
+ ];
3316
+ ImportNetComponent.decorators = [
3317
+ { type: Component, args: [{
3318
+ selector: 'nc-import-net',
3319
+ 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",
3320
+ animations: [
3321
+ trigger('fadeInOut', [
3322
+ state('in', style({ opacity: 100 })),
3323
+ transition('* => void', [
3324
+ animate(300, style({ opacity: 0 }))
3325
+ ])
3326
+ ])
3327
+ ],
3328
+ 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}"]
3329
+ },] }
3330
+ ];
3331
+ ImportNetComponent.ctorParameters = () => [
3332
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
3333
+ { type: PetriNetResourceService },
3334
+ { type: LoggerService },
3335
+ { type: SnackBarService },
3336
+ { type: TranslateService }
3337
+ ];
3338
+
3339
+ class SideMenuImportNetComponentModule {
3340
+ }
3341
+ SideMenuImportNetComponentModule.decorators = [
3342
+ { type: NgModule, args: [{
3343
+ declarations: [
3344
+ ImportNetComponent
3345
+ ],
3346
+ imports: [
3347
+ CommonModule,
3348
+ MaterialModule,
3349
+ CovalentModule,
3350
+ FlexLayoutModule,
3351
+ FlexModule,
3352
+ FormsModule,
3353
+ TranslateLibModule
3354
+ ],
3355
+ exports: [ImportNetComponent],
3356
+ entryComponents: [ImportNetComponent]
3357
+ },] }
3358
+ ];
3359
+
3360
+ /**
3361
+ * Allows user to choose a {@link Filter} from the {@link FilterRepository}.
3362
+ *
3363
+ * Publishes events to the {@link SideMenuControl} object when:
3364
+ *
3365
+ * - filter is selected by the user. Message: `New selected filter`, Data: is either the selected filter or `undefined` if the user
3366
+ * deselected the filter
3367
+ *
3368
+ * - filter selection is confirmed by the user. Message: `Selected filter was confirmed`, Data: the selected filter. If the user didn't
3369
+ * select any filter this event will not be published.
3370
+ *
3371
+ */
3372
+ class FilterSelectorComponent extends AbstractFilterSelectorComponent {
3373
+ /**
3374
+ * Retrieves the {@link Filter} objects from the {@link FilterRepository} and instantiates this component.
3375
+ *
3376
+ * Filters that are available for selection can be set using the injected data. See {@link FilterSelectorInjectionData}
3377
+ * for more information.
3378
+ * @param _sideMenuControl -
3379
+ * @param _filterRepository -
3380
+ */
3381
+ constructor(_sideMenuControl, _filterRepository) {
3382
+ super(_sideMenuControl, _filterRepository);
3383
+ this._sideMenuControl = _sideMenuControl;
3384
+ this._filterRepository = _filterRepository;
3385
+ }
3386
+ }
3387
+ FilterSelectorComponent.ctorParameters = () => [
3388
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
3389
+ { type: FilterRepository }
3390
+ ];
3391
+ FilterSelectorComponent.decorators = [
3392
+ { type: Component, args: [{
3393
+ selector: 'nc-filter-selector',
3394
+ 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",
3395
+ 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%}"]
3396
+ },] }
3397
+ ];
3398
+ FilterSelectorComponent.ctorParameters = () => [
3399
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
3400
+ { type: FilterRepository }
3401
+ ];
3402
+
3403
+ /**
3404
+ * @ignore
3405
+ * Renders a single filter in the selection list.
3406
+ */
3407
+ class FilterSelectorListItemComponent extends AbstractFilterSelectorListItemComponent {
3408
+ }
3409
+ FilterSelectorListItemComponent.decorators = [
3410
+ { type: Component, args: [{
3411
+ selector: 'nc-filter-selector-list-item',
3412
+ template: "<div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <span>{{text}}</span>\n</div>\n",
3413
+ styles: [""]
3414
+ },] }
3415
+ ];
3416
+
3417
+ class SideMenuFilterSelectorComponentModule {
3418
+ }
3419
+ SideMenuFilterSelectorComponentModule.decorators = [
3420
+ { type: NgModule, args: [{
3421
+ declarations: [
3422
+ FilterSelectorComponent,
3423
+ FilterSelectorListItemComponent,
3424
+ ],
3425
+ imports: [
3426
+ CommonModule,
3427
+ MaterialModule,
3428
+ TranslateLibModule,
3429
+ ],
3430
+ exports: [
3431
+ FilterSelectorComponent,
3432
+ ],
3433
+ entryComponents: [
3434
+ FilterSelectorComponent
3435
+ ]
3436
+ },] }
3437
+ ];
3438
+
3439
+ class OptionSelectorComponent extends AbstractOptionSelectorComponent {
3440
+ constructor(_sideMenuControl) {
3441
+ super(_sideMenuControl);
3442
+ this._sideMenuControl = _sideMenuControl;
3443
+ }
3444
+ }
3445
+ OptionSelectorComponent.ctorParameters = () => [
3446
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] }
3447
+ ];
3448
+ OptionSelectorComponent.decorators = [
3449
+ { type: Component, args: [{
3450
+ selector: 'nc-option-selector',
3451
+ 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",
3452
+ styles: [".select-field-margin{margin:8px 16px}"]
3453
+ },] }
3454
+ ];
3455
+ OptionSelectorComponent.ctorParameters = () => [
3456
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] }
3457
+ ];
3458
+
3459
+ const ɵ0$f = OptionSelectorComponent;
3460
+ class SideMenuOptionSelectorComponentModule {
3461
+ }
3462
+ SideMenuOptionSelectorComponentModule.decorators = [
3463
+ { type: NgModule, args: [{
3464
+ imports: [
3465
+ CommonModule,
3466
+ MaterialModule,
3467
+ TranslateLibModule
3468
+ ],
3469
+ declarations: [
3470
+ OptionSelectorComponent
3471
+ ],
3472
+ exports: [
3473
+ OptionSelectorComponent
3474
+ ],
3475
+ entryComponents: [
3476
+ OptionSelectorComponent
3477
+ ],
3478
+ providers: [
3479
+ { provide: NAE_OPTION_SELECTOR_COMPONENT, useValue: ɵ0$f }
3480
+ ]
3481
+ },] }
3482
+ ];
3483
+
3484
+ function baseFilterFactory$1(sideMenuControl) {
3485
+ if (!sideMenuControl.data) {
3486
+ throw new Error('NewFilterCaseId was not provided in the sidemenu injectio data');
3487
+ }
3488
+ const injectedData = sideMenuControl.data;
3489
+ return {
3490
+ filter: SimpleFilter.fromTaskQuery({
3491
+ case: { id: injectedData.newFilterCaseId },
3492
+ transitionId: UserFilterConstants.NEW_FILTER_TRANSITION_ID
3493
+ })
3494
+ };
3495
+ }
3496
+ function localAllowedNetsFactory(factory) {
3497
+ return factory.createFromArray([UserFilterConstants.FILTER_NET_IDENTIFIER]);
3498
+ }
3499
+ class SaveFilterComponent extends AbstractSaveFilterComponent {
3500
+ constructor(sideMenuControl, userFilterService, log, taskViewService) {
3501
+ super(sideMenuControl, userFilterService, log, taskViewService);
3502
+ }
3503
+ }
3504
+ SaveFilterComponent.ctorParameters = () => [
3505
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
3506
+ { type: UserFiltersService },
3507
+ { type: LoggerService },
3508
+ { type: TaskViewService }
3509
+ ];
3510
+ SaveFilterComponent.decorators = [
3511
+ { type: Component, args: [{
3512
+ selector: 'nc-save-filter',
3513
+ 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",
3514
+ providers: [
3515
+ TaskViewService,
3516
+ SearchService,
3517
+ { provide: NAE_BASE_FILTER,
3518
+ useFactory: baseFilterFactory$1,
3519
+ deps: [NAE_SIDE_MENU_CONTROL]
3520
+ },
3521
+ { provide: AllowedNetsService,
3522
+ useFactory: localAllowedNetsFactory,
3523
+ deps: [AllowedNetsServiceFactory] },
3524
+ ],
3525
+ styles: [".save-filter-container{height:calc(100% - 64px);padding-left:8px;padding-right:8px}.virtual-scroll-list-padding{padding-right:4px}"]
3526
+ },] }
3527
+ ];
3528
+ SaveFilterComponent.ctorParameters = () => [
3529
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
3530
+ { type: UserFiltersService },
3531
+ { type: LoggerService },
3532
+ { type: TaskViewService }
3533
+ ];
3534
+
3535
+ const ɵ0$g = SaveFilterComponent;
3536
+ class SideMenuSaveFilterComponentModule {
3537
+ }
3538
+ SideMenuSaveFilterComponentModule.decorators = [
3539
+ { type: NgModule, args: [{
3540
+ imports: [
3541
+ CommonModule,
3542
+ MaterialModule,
3543
+ TranslateLibModule,
3544
+ PanelComponentModule
3545
+ ],
3546
+ declarations: [SaveFilterComponent],
3547
+ exports: [SaveFilterComponent],
3548
+ entryComponents: [SaveFilterComponent],
3549
+ providers: [
3550
+ { provide: NAE_SAVE_FILTER_COMPONENT, useValue: ɵ0$g }
3551
+ ]
3552
+ },] }
3553
+ ];
3554
+
3555
+ function baseFilterFactory$2(sideMenuControl) {
3556
+ if (!sideMenuControl.data) {
3557
+ throw new Error('NewFilterCaseId was not provided in the side menu injection data');
3558
+ }
3559
+ const injectedData = sideMenuControl.data;
3560
+ return { filter: injectedData.filter };
3561
+ }
3562
+ function localAllowedNetsFactory$1(factory) {
3563
+ return factory.createFromArray([UserFilterConstants.FILTER_NET_IDENTIFIER]);
3564
+ }
3565
+ const ɵ0$h = ['meta-title', `${UserFilterConstants.FILTER_NET_IDENTIFIER}-${UserFilterConstants.FILTER_FIELD_ID}`];
3566
+ class LoadFilterComponent extends AbstractLoadFilterComponent {
3567
+ constructor(sideMenuControl, log, caseViewService) {
3568
+ super(sideMenuControl, log, caseViewService);
3569
+ }
3570
+ ngAfterViewInit() {
3571
+ this.initializeHeader(this.caseHeaderComponent);
3572
+ }
3573
+ }
3574
+ LoadFilterComponent.ctorParameters = () => [
3575
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
3576
+ { type: LoggerService },
3577
+ { type: CaseViewService }
3578
+ ];
3579
+ LoadFilterComponent.decorators = [
3580
+ { type: Component, args: [{
3581
+ selector: 'nc-load-filter',
3582
+ 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",
3583
+ providers: [
3584
+ CaseViewService,
3585
+ SearchService,
3586
+ { provide: NAE_BASE_FILTER,
3587
+ useFactory: baseFilterFactory$2,
3588
+ deps: [NAE_SIDE_MENU_CONTROL] },
3589
+ { provide: AllowedNetsService,
3590
+ useFactory: localAllowedNetsFactory$1,
3591
+ deps: [AllowedNetsServiceFactory] },
3592
+ { provide: NAE_DEFAULT_HEADERS, useValue: ɵ0$h }
3593
+ ],
3594
+ 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}"]
3595
+ },] }
3596
+ ];
3597
+ LoadFilterComponent.ctorParameters = () => [
3598
+ { type: SideMenuControl, decorators: [{ type: Inject, args: [NAE_SIDE_MENU_CONTROL,] }] },
3599
+ { type: LoggerService },
3600
+ { type: CaseViewService }
3601
+ ];
3602
+ LoadFilterComponent.propDecorators = {
3603
+ caseHeaderComponent: [{ type: ViewChild, args: ['header',] }]
3604
+ };
3605
+
3606
+ const ɵ0$i = LoadFilterComponent;
3607
+ class SideMenuLoadFilterComponentModule {
3608
+ }
3609
+ SideMenuLoadFilterComponentModule.decorators = [
3610
+ { type: NgModule, args: [{
3611
+ imports: [
3612
+ CommonModule,
3613
+ MaterialModule,
3614
+ TranslateLibModule,
3615
+ CaseViewComponentModule,
3616
+ HeaderComponentModule,
3617
+ ],
3618
+ declarations: [LoadFilterComponent],
3619
+ exports: [LoadFilterComponent],
3620
+ entryComponents: [LoadFilterComponent],
3621
+ providers: [
3622
+ { provide: NAE_LOAD_FILTER_COMPONENT, useValue: ɵ0$i }
3623
+ ]
3624
+ },] }
3625
+ ];
3626
+
3627
+ const ɵ0$j = UserAssignComponent, ɵ1$4 = NewCaseComponent, ɵ2$2 = OptionSelectorComponent, ɵ3$1 = SaveFilterComponent, ɵ4 = LoadFilterComponent;
3628
+ class SideMenuContentComponentModule {
3629
+ }
3630
+ SideMenuContentComponentModule.decorators = [
3631
+ { type: NgModule, args: [{
3632
+ imports: [
3633
+ CommonModule,
3634
+ SideMenuUserAssignComponentModule,
3635
+ SideMenuNewCaseComponentModule,
3636
+ SideMenuImportNetComponentModule,
3637
+ SideMenuFilterSelectorComponentModule,
3638
+ SideMenuOptionSelectorComponentModule,
3639
+ SideMenuSaveFilterComponentModule,
3640
+ SideMenuLoadFilterComponentModule,
3641
+ ],
3642
+ exports: [
3643
+ SideMenuUserAssignComponentModule,
3644
+ SideMenuNewCaseComponentModule,
3645
+ SideMenuImportNetComponentModule,
3646
+ SideMenuFilterSelectorComponentModule,
3647
+ SideMenuOptionSelectorComponentModule,
3648
+ SideMenuSaveFilterComponentModule,
3649
+ SideMenuLoadFilterComponentModule,
3650
+ ],
3651
+ providers: [
3652
+ { provide: NAE_USER_ASSIGN_COMPONENT, useValue: ɵ0$j },
3653
+ { provide: NAE_NEW_CASE_COMPONENT, useValue: ɵ1$4 },
3654
+ { provide: NAE_OPTION_SELECTOR_COMPONENT, useValue: ɵ2$2 },
3655
+ { provide: NAE_SAVE_FILTER_COMPONENT, useValue: ɵ3$1 },
3656
+ { provide: NAE_LOAD_FILTER_COMPONENT, useValue: ɵ4 }
3657
+ ]
3658
+ },] }
3659
+ ];
3660
+
3661
+ /* MODULES */
3662
+ /* MODELS */
3663
+
3664
+ class SideMenuContainerComponent extends AbstractSideMenuContainerComponent {
3665
+ constructor(_sideMenuService) {
3666
+ super(_sideMenuService);
3667
+ this._sideMenuService = _sideMenuService;
3668
+ }
3669
+ }
3670
+ SideMenuContainerComponent.ctorParameters = () => [
3671
+ { type: SideMenuService }
3672
+ ];
3673
+ SideMenuContainerComponent.decorators = [
3674
+ { type: Component, args: [{
3675
+ selector: 'nc-side-menu-container',
3676
+ 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",
3677
+ 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}"]
3678
+ },] }
3679
+ ];
3680
+ SideMenuContainerComponent.ctorParameters = () => [
3681
+ { type: SideMenuService }
3682
+ ];
3683
+
3684
+ class SideMenuComponentModule {
3685
+ }
3686
+ SideMenuComponentModule.decorators = [
3687
+ { type: NgModule, args: [{
3688
+ declarations: [
3689
+ SideMenuContainerComponent
3690
+ ],
3691
+ imports: [
3692
+ CommonModule,
3693
+ RouterModule,
3694
+ MaterialModule,
3695
+ MatSidenavModule,
3696
+ PortalModule
3697
+ ],
3698
+ exports: [
3699
+ SideMenuContainerComponent
3700
+ ]
3701
+ },] }
3702
+ ];
3703
+
3704
+ /* APIS */
3705
+
3706
+ /* MODULES */
3707
+
3708
+ class ToolbarComponent extends AbstractToolbarComponent {
3709
+ constructor(translate, selectLangService) {
3710
+ super(translate, selectLangService);
3711
+ this.translate = translate;
3712
+ this.selectLangService = selectLangService;
3713
+ }
3714
+ }
3715
+ ToolbarComponent.ctorParameters = () => [
3716
+ { type: TranslateService },
3717
+ { type: LanguageService }
3718
+ ];
3719
+ ToolbarComponent.decorators = [
3720
+ { type: Component, args: [{
3721
+ selector: 'nc-toolbar',
3722
+ 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",
3723
+ 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}"]
3724
+ },] }
3725
+ ];
3726
+ ToolbarComponent.ctorParameters = () => [
3727
+ { type: TranslateService },
3728
+ { type: LanguageService }
3729
+ ];
3730
+
3731
+ class ToolbarComponentModule {
3732
+ }
3733
+ ToolbarComponentModule.decorators = [
3734
+ { type: NgModule, args: [{
3735
+ declarations: [ToolbarComponent],
3736
+ imports: [
3737
+ CommonModule,
3738
+ FlexLayoutModule,
3739
+ MaterialModule,
3740
+ TranslateLibModule
3741
+ ],
3742
+ exports: [
3743
+ ToolbarComponent
3744
+ ]
3745
+ },] }
3746
+ ];
3747
+
3748
+ class ProfileComponent extends AbstractProfileComponent {
3749
+ constructor(_userService) {
3750
+ super(_userService);
3751
+ this._userService = _userService;
3752
+ }
3753
+ }
3754
+ ProfileComponent.ctorParameters = () => [
3755
+ { type: UserService }
3756
+ ];
3757
+ ProfileComponent.decorators = [
3758
+ { type: Component, args: [{
3759
+ selector: 'nc-user-profile',
3760
+ 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",
3761
+ 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}"]
3762
+ },] }
3763
+ ];
3764
+ ProfileComponent.ctorParameters = () => [
3765
+ { type: UserService }
3766
+ ];
3767
+
3768
+ class ProfileComponentModule {
3769
+ }
3770
+ ProfileComponentModule.decorators = [
3771
+ { type: NgModule, args: [{
3772
+ declarations: [ProfileComponent],
3773
+ exports: [
3774
+ ProfileComponent
3775
+ ],
3776
+ imports: [
3777
+ CommonModule,
3778
+ MaterialModule,
3779
+ TranslateLibModule
3780
+ ]
3781
+ },] }
3782
+ ];
3783
+
3784
+ /* MODULES */
3785
+
3786
+ class WorkflowViewComponent extends AbstractWorkflowViewComponent {
3787
+ constructor(_sideMenuService, _workflowViewService, _log, _processService) {
3788
+ super(_sideMenuService, _workflowViewService, _log, _processService);
3789
+ this._sideMenuService = _sideMenuService;
3790
+ this._workflowViewService = _workflowViewService;
3791
+ this._log = _log;
3792
+ this._processService = _processService;
3793
+ }
3794
+ importNet() {
3795
+ this.importSidemenuNet(ImportNetComponent);
3796
+ }
3797
+ }
3798
+ WorkflowViewComponent.ctorParameters = () => [
3799
+ { type: SideMenuService },
3800
+ { type: WorkflowViewService },
3801
+ { type: LoggerService },
3802
+ { type: ProcessService }
3803
+ ];
3804
+ WorkflowViewComponent.decorators = [
3805
+ { type: Component, args: [{
3806
+ selector: 'nc-workflow-view',
3807
+ 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",
3808
+ providers: [WorkflowViewService],
3809
+ 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}"]
3810
+ },] }
3811
+ ];
3812
+ WorkflowViewComponent.ctorParameters = () => [
3813
+ { type: SideMenuService },
3814
+ { type: WorkflowViewService },
3815
+ { type: LoggerService },
3816
+ { type: ProcessService }
3817
+ ];
3818
+
3819
+ class TreeComponent extends AbstractTreeComponent {
3820
+ constructor(_treeService) {
3821
+ super(_treeService);
3822
+ this._treeService = _treeService;
3823
+ }
3824
+ }
3825
+ TreeComponent.ctorParameters = () => [
3826
+ { type: CaseTreeService }
3827
+ ];
3828
+ TreeComponent.decorators = [
3829
+ { type: Component, args: [{
3830
+ selector: 'nc-tree-component',
3831
+ template: "<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- This is the tree node template for leaf nodes -->\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 <!-- This is the tree node template for expandable nodes -->\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",
3832
+ providers: [CaseTreeService],
3833
+ 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}"]
3834
+ },] }
3835
+ ];
3836
+ TreeComponent.ctorParameters = () => [
3837
+ { type: CaseTreeService }
3838
+ ];
3839
+
3840
+ class TreeTaskContentComponent extends AbstractTreeTaskContentComponent {
3841
+ constructor(_treeTaskContentService, _taskEventService, _assign, _cancel, _finish, _taskContentService, _permissionService) {
3842
+ super(_treeTaskContentService, _taskEventService, _assign, _cancel, _finish, _taskContentService, _permissionService);
3843
+ this._treeTaskContentService = _treeTaskContentService;
3844
+ this._taskEventService = _taskEventService;
3845
+ this._assign = _assign;
3846
+ this._cancel = _cancel;
3847
+ this._finish = _finish;
3848
+ this._taskContentService = _taskContentService;
3849
+ this._permissionService = _permissionService;
3850
+ }
3851
+ }
3852
+ TreeTaskContentComponent.ctorParameters = () => [
3853
+ { type: TreeTaskContentService },
3854
+ { type: TaskEventService },
3855
+ { type: AssignTaskService },
3856
+ { type: CancelTaskService },
3857
+ { type: FinishTaskService },
3858
+ { type: TaskContentService },
3859
+ { type: PermissionService }
3860
+ ];
3861
+ TreeTaskContentComponent.decorators = [
3862
+ { type: Component, args: [{
3863
+ selector: 'nc-tree-task-content',
3864
+ 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",
3865
+ providers: [
3866
+ { provide: TaskContentService, useClass: UnlimitedTaskContentService },
3867
+ TreeTaskContentService,
3868
+ AssignTaskService,
3869
+ TaskDataService,
3870
+ TaskEventService,
3871
+ CancelTaskService,
3872
+ FinishTaskService,
3873
+ TaskRequestStateService,
3874
+ DataFocusPolicyService,
3875
+ AssignPolicyService,
3876
+ FinishPolicyService,
3877
+ SelectedCaseService,
3878
+ { provide: NAE_TASK_OPERATIONS, useClass: SubjectTaskOperations },
3879
+ ],
3880
+ styles: [".task-panel-body{padding:10px 24px}"]
3881
+ },] }
3882
+ ];
3883
+ TreeTaskContentComponent.ctorParameters = () => [
3884
+ { type: TreeTaskContentService },
3885
+ { type: TaskEventService },
3886
+ { type: AssignTaskService },
3887
+ { type: CancelTaskService },
3888
+ { type: FinishTaskService },
3889
+ { type: TaskContentService },
3890
+ { type: PermissionService }
3891
+ ];
3892
+
3893
+ class WorkflowViewComponentModule {
3894
+ }
3895
+ WorkflowViewComponentModule.decorators = [
3896
+ { type: NgModule, args: [{
3897
+ declarations: [
3898
+ WorkflowViewComponent,
3899
+ ],
3900
+ imports: [
3901
+ CommonModule,
3902
+ FlexLayoutModule,
3903
+ MaterialModule,
3904
+ SideMenuComponentModule,
3905
+ HeaderComponentModule,
3906
+ PanelComponentModule,
3907
+ DataFieldsComponentModule,
3908
+ TranslateLibModule
3909
+ ],
3910
+ exports: [
3911
+ WorkflowViewComponent,
3912
+ ],
3913
+ entryComponents: [
3914
+ ImportNetComponent
3915
+ ]
3916
+ },] }
3917
+ ];
3918
+
3919
+ class AddChildNodeComponent extends AbstractAddChildNodeComponent {
3920
+ constructor(_treeService) {
3921
+ super(_treeService);
3922
+ this._treeService = _treeService;
3923
+ }
3924
+ }
3925
+ AddChildNodeComponent.ctorParameters = () => [
3926
+ { type: CaseTreeService }
3927
+ ];
3928
+ AddChildNodeComponent.decorators = [
3929
+ { type: Component, args: [{
3930
+ selector: 'nc-add-child-node',
3931
+ 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",
3932
+ styles: [".spinner-margin{margin:8px}"]
3933
+ },] }
3934
+ ];
3935
+ AddChildNodeComponent.ctorParameters = () => [
3936
+ { type: CaseTreeService }
3937
+ ];
3938
+
3939
+ class RemoveNodeComponent extends AbstractRemoveNodeComponent {
3940
+ constructor(_treeService) {
3941
+ super(_treeService);
3942
+ this._treeService = _treeService;
3943
+ }
3944
+ }
3945
+ RemoveNodeComponent.ctorParameters = () => [
3946
+ { type: CaseTreeService }
3947
+ ];
3948
+ RemoveNodeComponent.decorators = [
3949
+ { type: Component, args: [{
3950
+ selector: 'nc-remove-node',
3951
+ 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",
3952
+ styles: [".spinner-margin{margin:8px}"]
3953
+ },] }
3954
+ ];
3955
+ RemoveNodeComponent.ctorParameters = () => [
3956
+ { type: CaseTreeService }
3957
+ ];
3958
+
3959
+ class TreeCaseViewComponentModule {
3960
+ }
3961
+ TreeCaseViewComponentModule.decorators = [
3962
+ { type: NgModule, args: [{
3963
+ declarations: [
3964
+ TreeComponent,
3965
+ TreeTaskContentComponent,
3966
+ AddChildNodeComponent,
3967
+ RemoveNodeComponent
3968
+ ],
3969
+ imports: [
3970
+ CommonModule,
3971
+ FlexLayoutModule,
3972
+ MaterialModule,
3973
+ DataFieldsComponentModule,
3974
+ TranslateLibModule,
3975
+ PanelComponentModule,
3976
+ TaskContentComponentModule
3977
+ ],
3978
+ exports: [
3979
+ TreeComponent,
3980
+ TreeTaskContentComponent,
3981
+ ],
3982
+ entryComponents: []
3983
+ },] }
3984
+ ];
3985
+
3986
+ /* COMPONENTS */
3987
+
3988
+ /* MODULES */
3989
+
3990
+ class RedirectComponent {
3991
+ constructor(redirectService, translate) {
3992
+ this.redirectService = redirectService;
3993
+ this.translate = translate;
3994
+ }
3995
+ ngOnInit() {
3996
+ this.redirectService.redirectFromUrl();
3997
+ }
3998
+ }
3999
+ RedirectComponent.ctorParameters = () => [
4000
+ { type: RedirectService },
4001
+ { type: TranslateService }
4002
+ ];
4003
+ RedirectComponent.decorators = [
4004
+ { type: Component, args: [{
4005
+ selector: 'nc-redirect',
4006
+ template: "<p>{{this.translate.instant('tasks.view.redirecting')}}</p>\n",
4007
+ styles: [""]
4008
+ },] }
4009
+ ];
4010
+ RedirectComponent.ctorParameters = () => [
4011
+ { type: RedirectService },
4012
+ { type: TranslateService }
4013
+ ];
4014
+
4015
+ class RedirectComponentModule {
4016
+ }
4017
+ RedirectComponentModule.decorators = [
4018
+ { type: NgModule, args: [{
4019
+ imports: [],
4020
+ exports: [RedirectComponent],
4021
+ declarations: [RedirectComponent]
4022
+ },] }
4023
+ ];
4024
+
4025
+ /*
4026
+ * Public API Surface of netgrif-components
4027
+ */
4028
+
4029
+ /**
4030
+ * Generated bundle index. Do not edit.
4031
+ */
4032
+
4033
+ export { AdminComponentModule, AdvancedSearchComponent, AuthenticationComponentModule, AuthenticationOverlayComponent, BarchartCardComponent, BooleanFieldComponent, ButtonFieldComponent, CaseListComponent, CasePanelComponent, CaseSearchComponent, CaseViewComponentModule, CountCardComponent, DashboardComponentModule, DashboardContentComponent, DataFieldTemplateComponent, DataFieldsComponentModule, DateFieldComponent, DateTimeFieldComponent, EditModeComponent, EmailSubmissionFormComponent, EmailSubmissionFormComponentModule, EnumerationFieldComponent, FieldComponentResolverComponent, FileFieldComponent, FileListFieldComponent, FilterFieldComponent, FilterSelectorComponent, ForgottenPasswordFormComponent, ForgottenPasswordFormComponentModule, FulltextSearchComponent, HeaderComponent, HeaderComponentModule, I18nFieldComponent, IframeCardComponent, ImportNetComponent, InternalLinkComponent, LanguageSelectorComponent, LegalNoticeComponent, LegalNoticeModule, LineChartCardComponent, LinearGaugeCardComponent, LoadFilterComponent, LoadingModeComponent, LoginFormComponent, LoginFormComponentModule, LogoutShortcutComponent, MultichoiceFieldComponent, NavigationComponentModule, NavigationDrawerComponent, NavigationRailComponent, NavigationTreeComponent, NewCaseComponent, NumberFieldComponent, OptionSelectorComponent, PanelComponent, PanelComponentModule, PieChartCardComponent, PortalCardComponent, ProfileComponent, ProfileComponentModule, PublicWorkflowPanelComponent, QuickPanelComponent, QuickPanelComponentModule, RedirectComponent, RedirectComponentModule, RegistrationFormComponent, RegistrationFormComponentModule, RoleAssignmentComponent, SaveFilterComponent, SearchClauseComponent, SearchComponent, SearchComponentModule, SearchConfigurationInputComponent, SearchModeComponent, SearchOperandInputComponent, SearchPredicateComponent, SideMenuComponentModule, SideMenuContainerComponent, SideMenuContentComponentModule, SideMenuFilterSelectorComponentModule, SideMenuImportNetComponentModule, SideMenuLoadFilterComponentModule, SideMenuNewCaseComponentModule, SideMenuOptionSelectorComponentModule, SideMenuSaveFilterComponentModule, SideMenuUserAssignComponentModule, SortModeComponent, TabCreationDetectorComponent, TabViewComponent, TabsComponentModule, TaskContentComponent, TaskContentComponentModule, TaskListComponent, TaskPanelComponent, TaskSearchComponent, TextFieldComponent, ToolbarComponent, ToolbarComponentModule, TreeCaseViewComponentModule, TreeComponent, TreeTaskContentComponent, UserAssignComponent, UserCardComponent, UserComponentModule, UserFieldComponent, WorkflowPanelComponent, WorkflowViewComponent, WorkflowViewComponentModule, searchCategoryConverter, ɵ0, ɵ1, ɵ2$2 as ɵ2, ɵ3$1 as ɵ3, ɵ4, baseFilterFactory$1 as ɵa, localAllowedNetsFactory as ɵb, I18nDividerFieldComponent as ɵba, I18nTextFieldComponent as ɵbb, UserAssignItemComponent as ɵbc, UserAssignListComponent as ɵbd, AdvancedSearchComponentModule as ɵbe, GroupNavigationComponentResolverComponent as ɵbf, DefaultSimpleTaskViewComponent as ɵbg, baseFilterFactory as ɵbh, DefaultTabbedTaskViewComponent as ɵbi, DefaultTabbedCaseViewComponent as ɵbj, filterCaseTabbedDataFilterFactory as ɵbk, filterCaseTabbedDataAllowedNetsServiceFactory as ɵbl, filterCaseTabbedDataSearchCategoriesFactory as ɵbm, DefaultTabViewComponent as ɵbo, ImmediateFilterTextComponent as ɵbp, filterTextBaseFilterFactory as ɵbq, filterTextAllowedNetsFactory as ɵbr, filterTextCategoriesFactory as ɵbs, ImmediateFilterTextContentComponent as ɵbt, DefaultGroupNavigationComponentResolverService as ɵbu, FilterSelectorListItemComponent as ɵbv, AddChildNodeComponent as ɵbw, RemoveNodeComponent as ɵbx, baseFilterFactory$2 as ɵc, localAllowedNetsFactory$1 as ɵd, UserInviteComponent as ɵe, EnumerationAutocompleteSelectFieldComponent as ɵf, EnumerationSelectFieldComponent as ɵg, EnumerationListFieldComponent as ɵh, MultichoiceSelectFieldComponent as ɵi, MultichoiceListFieldComponent as ɵj, TextareaFieldComponent as ɵk, RichTextareaFieldComponent as ɵl, SimpleTextFieldComponent as ɵm, RequiredLabelComponent as ɵn, HtmlTextareaFieldComponent as ɵo, PasswordTextFieldComponent as ɵp, NumberCurrencyFieldComponent as ɵq, NumberDefaultFieldComponent as ɵr, PreviewDialogComponent as ɵs, EnumerationStepperFieldComponent as ɵt, EnumerationIconFieldComponent as ɵu, EnumerationAutocompleteDynamicFieldComponent as ɵv, filterFieldBaseFilterFactory as ɵw, filterFieldAllowedNetsFactory as ɵx, filterFieldCategoriesFactory as ɵy, FilterFieldContentComponent as ɵz };
4034
+ //# sourceMappingURL=netgrif-components.js.map