@netgrif/components 6.0.4 → 6.1.0

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 (739) hide show
  1. package/README.md +1 -9
  2. package/esm2020/lib/admin/admin.module.mjs +31 -0
  3. package/esm2020/lib/admin/ldap-group-role-assignment/ldap-group-role-assignment.component.mjs +39 -0
  4. package/esm2020/lib/admin/public-api.mjs +7 -0
  5. package/esm2020/lib/admin/role-assignment/role-assignment.component.mjs +40 -0
  6. package/esm2020/lib/admin/user-invite/user-invite.component.mjs +34 -0
  7. package/esm2020/lib/authentication/auth.module.mjs +22 -0
  8. package/esm2020/lib/authentication/authentication-overlay/authentication-overlay.component.mjs +22 -0
  9. package/esm2020/lib/authentication/public-api.mjs +5 -0
  10. package/esm2020/lib/dashboard/cards/barchart-card/barchart-card.component.mjs +40 -0
  11. package/esm2020/lib/dashboard/cards/count-card/count-card.component.mjs +20 -0
  12. package/esm2020/lib/dashboard/cards/iframe-card/iframe-card.component.mjs +19 -0
  13. package/esm2020/lib/dashboard/cards/lineargauge-card/linear-gauge-card.component.mjs +37 -0
  14. package/esm2020/lib/dashboard/cards/linechart-card/line-chart-card.component.mjs +49 -0
  15. package/esm2020/lib/dashboard/cards/piechart-card/pie-chart-card.component.mjs +42 -0
  16. package/esm2020/lib/dashboard/cards/portal-card/portal-card.component.mjs +36 -0
  17. package/esm2020/lib/dashboard/dashboard-content/dashboard-content.component.mjs +26 -0
  18. package/esm2020/lib/dashboard/dashboard.module.mjs +77 -0
  19. package/esm2020/lib/dashboard/public-api.mjs +12 -0
  20. package/esm2020/lib/data-fields/boolean-field/boolean-field.component.mjs +34 -0
  21. package/esm2020/lib/data-fields/button-field/button-field.component.mjs +32 -0
  22. package/esm2020/lib/data-fields/data-field-template/data-field-template.component.mjs +23 -0
  23. package/esm2020/lib/data-fields/data-fields.module.mjs +226 -0
  24. package/esm2020/lib/data-fields/date-field/date-field.component.mjs +32 -0
  25. package/esm2020/lib/data-fields/date-time-field/date-time-field.component.mjs +33 -0
  26. package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.mjs +25 -0
  27. package/esm2020/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.mjs +23 -0
  28. package/esm2020/lib/data-fields/enumeration-field/enumeration-field.component.mjs +28 -0
  29. package/esm2020/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.mjs +22 -0
  30. package/esm2020/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.mjs +22 -0
  31. package/esm2020/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.mjs +21 -0
  32. package/esm2020/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.mjs +23 -0
  33. package/esm2020/lib/data-fields/file-field/file-field.component.mjs +51 -0
  34. package/esm2020/lib/data-fields/file-field/preview-dialog/preview-dialog.component.mjs +33 -0
  35. package/esm2020/lib/data-fields/file-field-list/file-list-field.component.mjs +33 -0
  36. package/esm2020/lib/data-fields/filter-field/filter-field-content/filter-field-content.component.mjs +45 -0
  37. package/esm2020/lib/data-fields/filter-field/filter-field.component.mjs +27 -0
  38. package/esm2020/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.mjs +18 -0
  39. package/esm2020/lib/data-fields/i18n-field/i18n-field.component.mjs +24 -0
  40. package/esm2020/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.mjs +61 -0
  41. package/esm2020/lib/data-fields/multichoice-field/multichoice-field.component.mjs +24 -0
  42. package/esm2020/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.mjs +21 -0
  43. package/esm2020/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.mjs +18 -0
  44. package/esm2020/lib/data-fields/number-field/number-currency-field/number-currency-field.component.mjs +29 -0
  45. package/esm2020/lib/data-fields/number-field/number-default-field/number-default-field.component.mjs +20 -0
  46. package/esm2020/lib/data-fields/number-field/number-field.component.mjs +33 -0
  47. package/esm2020/lib/data-fields/public-api.mjs +18 -0
  48. package/esm2020/lib/data-fields/required-label/required-label.component.mjs +18 -0
  49. package/esm2020/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.mjs +23 -0
  50. package/esm2020/lib/data-fields/text-field/password-text-field/password-text-field.component.mjs +24 -0
  51. package/esm2020/lib/data-fields/text-field/rich-textarea-field/easymde-wrapper/easymde-wrapper.component.mjs +82 -0
  52. package/esm2020/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.mjs +22 -0
  53. package/esm2020/lib/data-fields/text-field/simple-text-field/simple-text-field.component.mjs +21 -0
  54. package/esm2020/lib/data-fields/text-field/text-field.component.mjs +27 -0
  55. package/esm2020/lib/data-fields/text-field/textarea-field/textarea-field.component.mjs +24 -0
  56. package/esm2020/lib/data-fields/user-field/user-field.component.mjs +32 -0
  57. package/esm2020/lib/forms/email-submission/email-submission-form.component.mjs +25 -0
  58. package/esm2020/lib/forms/email-submission/email-submission-form.module.mjs +41 -0
  59. package/esm2020/lib/forms/forgotten-password/forgotten-password-form-component.module.mjs +37 -0
  60. package/esm2020/lib/forms/forgotten-password/forgotten-password-form.component.mjs +25 -0
  61. package/esm2020/lib/forms/login/login-form.component.mjs +26 -0
  62. package/esm2020/lib/forms/login/login-form.module.mjs +37 -0
  63. package/esm2020/lib/forms/public-api.mjs +11 -0
  64. package/esm2020/lib/forms/registration/registration-form.component.mjs +26 -0
  65. package/esm2020/lib/forms/registration/registration-form.module.mjs +41 -0
  66. package/esm2020/lib/header/header-modes/edit-mode/edit-mode.component.mjs +27 -0
  67. package/esm2020/lib/header/header-modes/loading-mode/loading-mode.component.mjs +18 -0
  68. package/esm2020/lib/header/header-modes/search-mode/search-mode.component.mjs +41 -0
  69. package/esm2020/lib/header/header-modes/sort-mode/sort-mode.component.mjs +20 -0
  70. package/esm2020/lib/header/header.component.mjs +49 -0
  71. package/esm2020/lib/header/header.module.mjs +64 -0
  72. package/esm2020/lib/header/public-api.mjs +12 -0
  73. package/esm2020/lib/legal/legal-notice/legal-notice.component.mjs +17 -0
  74. package/esm2020/lib/legal/legal-notice/legal-notice.module.mjs +26 -0
  75. package/esm2020/lib/legal/public-api.mjs +5 -0
  76. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.mjs +80 -0
  77. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.mjs +42 -0
  78. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.mjs +85 -0
  79. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.mjs +77 -0
  80. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.mjs +30 -0
  81. package/esm2020/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-case-view-data-with-navigation-item-task-data.mjs +2 -0
  82. package/esm2020/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.mjs +31 -0
  83. package/esm2020/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.component.mjs +23 -0
  84. package/esm2020/lib/navigation/navigation-drawer/navigation-drawer.component.mjs +31 -0
  85. package/esm2020/lib/navigation/navigation-rail/navigation-rail.component.mjs +42 -0
  86. package/esm2020/lib/navigation/navigation-tree/navigation-tree.component.mjs +24 -0
  87. package/esm2020/lib/navigation/navigation.module.mjs +124 -0
  88. package/esm2020/lib/navigation/public-api.mjs +14 -0
  89. package/esm2020/lib/navigation/quick-panel/components/internal-link/internal-link.component.mjs +18 -0
  90. package/esm2020/lib/navigation/quick-panel/components/language-selector/language-selector.component.mjs +39 -0
  91. package/esm2020/lib/navigation/quick-panel/components/logout-shortcut/logout-shortcut.component.mjs +23 -0
  92. package/esm2020/lib/navigation/quick-panel/components/quick-panel.component.mjs +26 -0
  93. package/esm2020/lib/navigation/quick-panel/public-api.mjs +9 -0
  94. package/esm2020/lib/navigation/quick-panel/quick-panel.module.mjs +52 -0
  95. package/esm2020/lib/panel/case-panel/case-panel.component.mjs +36 -0
  96. package/esm2020/lib/panel/immediate/immediate-filter-text/immediate-filter-text.component.mjs +21 -0
  97. package/esm2020/lib/panel/immediate/immediate-filter-text-content/immediate-filter-text-content.component.mjs +49 -0
  98. package/esm2020/lib/panel/panel-item/panel-item.component.mjs +22 -0
  99. package/esm2020/lib/panel/panel.component.mjs +19 -0
  100. package/esm2020/lib/panel/panel.module.mjs +96 -0
  101. package/esm2020/lib/panel/public-api.mjs +14 -0
  102. package/esm2020/lib/panel/public-workflow-panel/public-workflow-panel.component.mjs +22 -0
  103. package/esm2020/lib/panel/task-panel/task-panel.component.mjs +104 -0
  104. package/esm2020/lib/panel/task-panel-list/task-list.component.mjs +33 -0
  105. package/esm2020/lib/panel/task-panel-list-pagination/task-list-pagination.component.mjs +33 -0
  106. package/esm2020/lib/panel/workflow-panel/workflow-panel.component.mjs +26 -0
  107. package/esm2020/lib/routing/public-api.mjs +3 -0
  108. package/esm2020/lib/routing/redirect/redirect.component.mjs +20 -0
  109. package/esm2020/lib/routing/redirect.module.mjs +17 -0
  110. package/esm2020/lib/search/advanced-search/advanced-search-component/advanced-search.component.mjs +21 -0
  111. package/esm2020/lib/search/advanced-search/advanced-search.module.mjs +57 -0
  112. package/esm2020/lib/search/advanced-search/public-api.mjs +8 -0
  113. package/esm2020/lib/search/advanced-search/search-clause-component/search-clause.component.mjs +20 -0
  114. package/esm2020/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.mjs +31 -0
  115. package/esm2020/lib/search/advanced-search/search-operand-input-component/search-operand-input.component.mjs +36 -0
  116. package/esm2020/lib/search/advanced-search/search-predicate-component/search-predicate.component.mjs +29 -0
  117. package/esm2020/lib/search/fulltext-search-component/fulltext-search.component.mjs +20 -0
  118. package/esm2020/lib/search/public-api.mjs +10 -0
  119. package/esm2020/lib/search/search-component/case-search/case-search.component.mjs +25 -0
  120. package/esm2020/lib/search/search-component/search.component.mjs +107 -0
  121. package/esm2020/lib/search/search-component/task-search/task-search.component.mjs +25 -0
  122. package/esm2020/lib/search/search.module.mjs +60 -0
  123. package/esm2020/lib/side-menu/content-components/filter-selector/filter-selector-list-item/filter-selector-list-item.component.mjs +17 -0
  124. package/esm2020/lib/side-menu/content-components/filter-selector/filter-selector.component.mjs +51 -0
  125. package/esm2020/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.mjs +36 -0
  126. package/esm2020/lib/side-menu/content-components/import-net/import-net.component.mjs +51 -0
  127. package/esm2020/lib/side-menu/content-components/import-net/side-menu-import-net-component.module.mjs +45 -0
  128. package/esm2020/lib/side-menu/content-components/load-filter/load-filter.component.mjs +64 -0
  129. package/esm2020/lib/side-menu/content-components/load-filter/side-menu-load-filter-component.module.mjs +42 -0
  130. package/esm2020/lib/side-menu/content-components/new-case/new-case.component.mjs +43 -0
  131. package/esm2020/lib/side-menu/content-components/new-case/side-menu-new-case-component.module.mjs +57 -0
  132. package/esm2020/lib/side-menu/content-components/option-selector/option-selector.component.mjs +30 -0
  133. package/esm2020/lib/side-menu/content-components/option-selector/side-menu-option-selector-component.module.mjs +38 -0
  134. package/esm2020/lib/side-menu/content-components/public-api.mjs +19 -0
  135. package/esm2020/lib/side-menu/content-components/save-filter/save-filter.component.mjs +58 -0
  136. package/esm2020/lib/side-menu/content-components/save-filter/side-menu-save-filter-component.module.mjs +38 -0
  137. package/esm2020/lib/side-menu/content-components/side-menu-content-component.module.mjs +87 -0
  138. package/esm2020/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.mjs +56 -0
  139. package/esm2020/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/user-assign-item.component.mjs +22 -0
  140. package/esm2020/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-list.component.mjs +27 -0
  141. package/esm2020/lib/side-menu/content-components/user-assign/user-assign.component.mjs +36 -0
  142. package/esm2020/lib/side-menu/public-api.mjs +7 -0
  143. package/esm2020/lib/side-menu/side-menu-container/side-menu-container.component.mjs +20 -0
  144. package/esm2020/lib/side-menu/side-menu.module.mjs +42 -0
  145. package/esm2020/lib/tabs/public-api.mjs +4 -0
  146. package/esm2020/lib/tabs/tab-creation-detector/tab-creation-detector.component.mjs +21 -0
  147. package/esm2020/lib/tabs/tab-view/tab-view.component.mjs +32 -0
  148. package/esm2020/lib/tabs/tabs.module.mjs +44 -0
  149. package/esm2020/lib/task-content/field-component-resolver/field-component-resolver.component.mjs +32 -0
  150. package/esm2020/lib/task-content/public-api.mjs +6 -0
  151. package/esm2020/lib/task-content/task-content/task-content.component.mjs +36 -0
  152. package/esm2020/lib/task-content/task-content.module.mjs +47 -0
  153. package/esm2020/lib/toolbar/public-api.mjs +3 -0
  154. package/esm2020/lib/toolbar/toolbar.component.mjs +26 -0
  155. package/esm2020/lib/toolbar/toolbar.module.mjs +35 -0
  156. package/esm2020/lib/user/profile/profile.component.mjs +25 -0
  157. package/esm2020/lib/user/profile/profile.module.mjs +31 -0
  158. package/esm2020/lib/user/public-api.mjs +7 -0
  159. package/esm2020/lib/user/user-card/user-card.component.mjs +23 -0
  160. package/esm2020/lib/user/user.module.mjs +35 -0
  161. package/esm2020/lib/view/case-view/case-view.module.mjs +38 -0
  162. package/esm2020/lib/view/case-view/components/case-list/case-list.component.mjs +34 -0
  163. package/esm2020/lib/view/case-view/components/case-list-paginator/case-list-paginator.component.mjs +36 -0
  164. package/esm2020/lib/view/public-api.mjs +11 -0
  165. package/esm2020/lib/view/tree-case-view/tree-case-view.module.mjs +60 -0
  166. package/esm2020/lib/view/tree-case-view/tree-component/add-child-node/add-child-node.component.mjs +22 -0
  167. package/esm2020/lib/view/tree-case-view/tree-component/remove-node/remove-node.component.mjs +21 -0
  168. package/esm2020/lib/view/tree-case-view/tree-component/tree.component.mjs +27 -0
  169. package/esm2020/lib/view/tree-case-view/tree-task-content/tree-task-content.component.mjs +57 -0
  170. package/esm2020/lib/view/workflow-view/workflow-view.component.mjs +34 -0
  171. package/esm2020/lib/view/workflow-view.module.mjs +53 -0
  172. package/esm2020/netgrif-components.mjs +5 -0
  173. package/esm2020/public-api.mjs +22 -0
  174. package/fesm2015/netgrif-components.mjs +4255 -0
  175. package/fesm2015/netgrif-components.mjs.map +1 -0
  176. package/fesm2020/netgrif-components.mjs +4181 -0
  177. package/fesm2020/netgrif-components.mjs.map +1 -0
  178. package/lib/admin/admin.module.d.ts +9 -0
  179. package/lib/admin/ldap-group-role-assignment/ldap-group-role-assignment.component.d.ts +8 -0
  180. package/lib/admin/public-api.d.ts +2 -0
  181. package/lib/admin/role-assignment/role-assignment.component.d.ts +5 -2
  182. package/lib/admin/user-invite/user-invite.component.d.ts +3 -0
  183. package/lib/authentication/auth.module.d.ts +6 -0
  184. package/lib/authentication/authentication-overlay/authentication-overlay.component.d.ts +5 -2
  185. package/lib/dashboard/cards/barchart-card/barchart-card.component.d.ts +5 -2
  186. package/lib/dashboard/cards/count-card/count-card.component.d.ts +5 -2
  187. package/lib/dashboard/cards/iframe-card/iframe-card.component.d.ts +5 -2
  188. package/lib/dashboard/cards/lineargauge-card/linear-gauge-card.component.d.ts +5 -2
  189. package/lib/dashboard/cards/linechart-card/line-chart-card.component.d.ts +5 -2
  190. package/lib/dashboard/cards/piechart-card/pie-chart-card.component.d.ts +5 -2
  191. package/lib/dashboard/cards/portal-card/portal-card.component.d.ts +6 -3
  192. package/lib/dashboard/dashboard-content/dashboard-content.component.d.ts +5 -2
  193. package/lib/dashboard/dashboard.module.d.ts +16 -0
  194. package/lib/data-fields/boolean-field/boolean-field.component.d.ts +3 -0
  195. package/lib/data-fields/button-field/button-field.component.d.ts +3 -0
  196. package/lib/data-fields/data-field-template/data-field-template.component.d.ts +3 -0
  197. package/lib/data-fields/data-fields.module.d.ts +54 -0
  198. package/lib/data-fields/date-field/date-field.component.d.ts +3 -0
  199. package/lib/data-fields/date-time-field/date-time-field.component.d.ts +3 -0
  200. package/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.d.ts +3 -0
  201. package/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.d.ts +3 -0
  202. package/lib/data-fields/enumeration-field/enumeration-field.component.d.ts +3 -0
  203. package/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.d.ts +3 -0
  204. package/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.d.ts +3 -0
  205. package/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.d.ts +3 -0
  206. package/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.d.ts +3 -0
  207. package/lib/data-fields/file-field/file-field.component.d.ts +3 -0
  208. package/lib/data-fields/file-field/preview-dialog/preview-dialog.component.d.ts +4 -3
  209. package/lib/data-fields/file-field-list/file-list-field.component.d.ts +3 -0
  210. package/lib/data-fields/filter-field/filter-field-content/filter-field-content.component.d.ts +3 -0
  211. package/lib/data-fields/filter-field/filter-field.component.d.ts +3 -0
  212. package/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.d.ts +3 -0
  213. package/lib/data-fields/i18n-field/i18n-field.component.d.ts +3 -0
  214. package/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.d.ts +6 -2
  215. package/lib/data-fields/multichoice-field/multichoice-field.component.d.ts +3 -0
  216. package/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.d.ts +3 -0
  217. package/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.d.ts +3 -0
  218. package/lib/data-fields/number-field/number-currency-field/number-currency-field.component.d.ts +6 -3
  219. package/lib/data-fields/number-field/number-default-field/number-default-field.component.d.ts +3 -0
  220. package/lib/data-fields/number-field/number-field.component.d.ts +3 -0
  221. package/lib/data-fields/required-label/required-label.component.d.ts +4 -3
  222. package/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.d.ts +3 -0
  223. package/lib/data-fields/text-field/password-text-field/password-text-field.component.d.ts +4 -3
  224. package/lib/data-fields/text-field/rich-textarea-field/easymde-wrapper/easymde-wrapper.component.d.ts +23 -0
  225. package/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.d.ts +3 -0
  226. package/lib/data-fields/text-field/simple-text-field/simple-text-field.component.d.ts +3 -0
  227. package/lib/data-fields/text-field/text-field.component.d.ts +3 -0
  228. package/lib/data-fields/text-field/textarea-field/textarea-field.component.d.ts +3 -0
  229. package/lib/data-fields/user-field/user-field.component.d.ts +3 -0
  230. package/lib/forms/email-submission/email-submission-form.component.d.ts +3 -0
  231. package/lib/forms/email-submission/email-submission-form.module.d.ts +10 -0
  232. package/lib/forms/forgotten-password/forgotten-password-form-component.module.d.ts +9 -0
  233. package/lib/forms/forgotten-password/forgotten-password-form.component.d.ts +3 -0
  234. package/lib/forms/login/login-form.component.d.ts +3 -0
  235. package/lib/forms/login/login-form.module.d.ts +9 -0
  236. package/lib/forms/registration/registration-form.component.d.ts +3 -0
  237. package/lib/forms/registration/registration-form.module.d.ts +10 -0
  238. package/lib/header/header-modes/edit-mode/edit-mode.component.d.ts +3 -0
  239. package/lib/header/header-modes/loading-mode/loading-mode.component.d.ts +3 -0
  240. package/lib/header/header-modes/search-mode/search-mode.component.d.ts +3 -0
  241. package/lib/header/header-modes/sort-mode/sort-mode.component.d.ts +3 -0
  242. package/lib/header/header.component.d.ts +3 -0
  243. package/lib/header/header.module.d.ts +13 -0
  244. package/lib/legal/legal-notice/legal-notice.component.d.ts +3 -0
  245. package/lib/legal/legal-notice/legal-notice.module.d.ts +7 -0
  246. package/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.d.ts +5 -2
  247. package/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.d.ts +3 -0
  248. package/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.d.ts +5 -2
  249. package/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.d.ts +5 -2
  250. package/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.d.ts +3 -0
  251. package/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.component.d.ts +3 -0
  252. package/lib/navigation/navigation-drawer/navigation-drawer.component.d.ts +3 -0
  253. package/lib/navigation/navigation-rail/navigation-rail.component.d.ts +3 -0
  254. package/lib/navigation/navigation-tree/navigation-tree.component.d.ts +3 -0
  255. package/lib/navigation/navigation.module.d.ts +25 -0
  256. package/lib/navigation/public-api.d.ts +5 -0
  257. package/lib/navigation/quick-panel/components/internal-link/internal-link.component.d.ts +3 -0
  258. package/lib/navigation/quick-panel/components/language-selector/language-selector.component.d.ts +3 -0
  259. package/lib/navigation/quick-panel/components/logout-shortcut/logout-shortcut.component.d.ts +3 -0
  260. package/lib/navigation/quick-panel/components/quick-panel.component.d.ts +3 -0
  261. package/lib/navigation/quick-panel/quick-panel.module.d.ts +11 -0
  262. package/lib/panel/case-panel/case-panel.component.d.ts +3 -0
  263. package/lib/panel/immediate/immediate-filter-text/immediate-filter-text.component.d.ts +3 -0
  264. package/lib/panel/immediate/immediate-filter-text-content/immediate-filter-text-content.component.d.ts +3 -0
  265. package/lib/panel/panel-item/panel-item.component.d.ts +7 -0
  266. package/lib/panel/panel.component.d.ts +3 -0
  267. package/lib/panel/panel.module.d.ts +20 -0
  268. package/lib/panel/public-api.d.ts +4 -0
  269. package/lib/panel/public-workflow-panel/public-workflow-panel.component.d.ts +3 -0
  270. package/lib/panel/task-panel/task-panel.component.d.ts +3 -0
  271. package/lib/panel/task-panel-list/task-list.component.d.ts +3 -0
  272. package/lib/panel/task-panel-list-pagination/task-list-pagination.component.d.ts +11 -0
  273. package/lib/panel/workflow-panel/workflow-panel.component.d.ts +3 -0
  274. package/lib/routing/redirect/redirect.component.d.ts +3 -0
  275. package/lib/routing/redirect.module.d.ts +5 -0
  276. package/lib/search/advanced-search/advanced-search-component/advanced-search.component.d.ts +3 -0
  277. package/lib/search/advanced-search/advanced-search.module.d.ts +12 -0
  278. package/lib/search/advanced-search/search-clause-component/search-clause.component.d.ts +3 -0
  279. package/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.d.ts +3 -0
  280. package/lib/search/advanced-search/search-operand-input-component/search-operand-input.component.d.ts +3 -0
  281. package/lib/search/advanced-search/search-predicate-component/search-predicate.component.d.ts +3 -0
  282. package/lib/search/fulltext-search-component/fulltext-search.component.d.ts +3 -0
  283. package/lib/search/search-component/case-search/case-search.component.d.ts +3 -0
  284. package/lib/search/search-component/search.component.d.ts +3 -0
  285. package/lib/search/search-component/task-search/task-search.component.d.ts +3 -0
  286. package/lib/search/search.module.d.ts +12 -0
  287. package/lib/side-menu/content-components/filter-selector/filter-selector-list-item/filter-selector-list-item.component.d.ts +3 -0
  288. package/lib/side-menu/content-components/filter-selector/filter-selector.component.d.ts +3 -0
  289. package/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.d.ts +8 -0
  290. package/lib/side-menu/content-components/import-net/import-net.component.d.ts +3 -0
  291. package/lib/side-menu/content-components/import-net/side-menu-import-net-component.module.d.ts +9 -0
  292. package/lib/side-menu/content-components/load-filter/load-filter.component.d.ts +3 -0
  293. package/lib/side-menu/content-components/load-filter/side-menu-load-filter-component.module.d.ts +9 -0
  294. package/lib/side-menu/content-components/new-case/new-case.component.d.ts +3 -0
  295. package/lib/side-menu/content-components/new-case/side-menu-new-case-component.module.d.ts +10 -0
  296. package/lib/side-menu/content-components/option-selector/option-selector.component.d.ts +3 -0
  297. package/lib/side-menu/content-components/option-selector/side-menu-option-selector-component.module.d.ts +7 -0
  298. package/lib/side-menu/content-components/save-filter/save-filter.component.d.ts +3 -0
  299. package/lib/side-menu/content-components/save-filter/side-menu-save-filter-component.module.d.ts +8 -0
  300. package/lib/side-menu/content-components/side-menu-content-component.module.d.ts +12 -0
  301. package/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.d.ts +11 -0
  302. package/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/user-assign-item.component.d.ts +3 -0
  303. package/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-list.component.d.ts +3 -0
  304. package/lib/side-menu/content-components/user-assign/user-assign.component.d.ts +3 -0
  305. package/lib/side-menu/side-menu-container/side-menu-container.component.d.ts +3 -0
  306. package/lib/side-menu/side-menu.module.d.ts +10 -0
  307. package/lib/tabs/tab-creation-detector/tab-creation-detector.component.d.ts +3 -0
  308. package/lib/tabs/tab-view/tab-view.component.d.ts +3 -0
  309. package/lib/tabs/tabs.module.d.ts +10 -0
  310. package/lib/task-content/field-component-resolver/field-component-resolver.component.d.ts +3 -0
  311. package/lib/task-content/task-content/task-content.component.d.ts +3 -0
  312. package/lib/task-content/task-content.module.d.ts +10 -0
  313. package/lib/toolbar/toolbar.component.d.ts +3 -0
  314. package/lib/toolbar/toolbar.module.d.ts +8 -0
  315. package/lib/user/profile/profile.component.d.ts +3 -0
  316. package/lib/user/profile/profile.module.d.ts +7 -0
  317. package/lib/user/user-card/user-card.component.d.ts +3 -0
  318. package/lib/user/user.module.d.ts +8 -0
  319. package/lib/view/case-view/case-view.module.d.ts +10 -0
  320. package/lib/view/case-view/components/case-list/case-list.component.d.ts +3 -0
  321. package/lib/view/case-view/components/case-list-paginator/case-list-paginator.component.d.ts +13 -0
  322. package/lib/view/public-api.d.ts +1 -0
  323. package/lib/view/tree-case-view/tree-case-view.module.d.ts +14 -0
  324. package/lib/view/tree-case-view/tree-component/add-child-node/add-child-node.component.d.ts +3 -0
  325. package/lib/view/tree-case-view/tree-component/remove-node/remove-node.component.d.ts +3 -0
  326. package/lib/view/tree-case-view/tree-component/tree.component.d.ts +3 -0
  327. package/lib/view/tree-case-view/tree-task-content/tree-task-content.component.d.ts +3 -0
  328. package/lib/view/workflow-view/workflow-view.component.d.ts +3 -0
  329. package/lib/view/workflow-view.module.d.ts +12 -0
  330. package/netgrif-components.d.ts +1 -39
  331. package/package.json +51 -42
  332. package/schematics/_commons/view-class-info.js +4 -4
  333. package/schematics/_commons/view-class-info.js.map +1 -1
  334. package/schematics/_utility/modified-library-functions.js +6 -6
  335. package/schematics/_utility/modified-library-functions.js.map +1 -1
  336. package/schematics/_utility/utility-functions.js +6 -6
  337. package/schematics/_utility/utility-functions.js.map +1 -1
  338. package/schematics/add/add/index.js +2 -2
  339. package/schematics/add/add/index.js.map +1 -1
  340. package/schematics/add/create-nc-files/index.js +5 -5
  341. package/schematics/add/create-nc-files/index.js.map +1 -1
  342. package/schematics/add/custom-themes/files/custom-themes/custom-themes.scss.template +2 -2
  343. package/schematics/add/custom-themes/files/dark-theme/custom-dark-theme.scss.template +1 -1
  344. package/schematics/add/custom-themes/files/light-theme/custom-light-theme.scss.template +1 -1
  345. package/schematics/add/custom-themes/index.js +5 -5
  346. package/schematics/add/custom-themes/index.js.map +1 -1
  347. package/schematics/migrations/4.1/migration-4.1.js +6 -6
  348. package/schematics/migrations/4.1/migration-4.1.js.map +1 -1
  349. package/schematics/migrations/5.4/migration-5.4.js +20 -20
  350. package/schematics/migrations/5.4/migration-5.4.js.map +1 -1
  351. package/schematics/view/_utility/add-view-to-nae-json.js +1 -1
  352. package/schematics/view/_utility/add-view-to-nae-json.js.map +1 -1
  353. package/schematics/view/_utility/view-service-functions.js +7 -10
  354. package/schematics/view/_utility/view-service-functions.js.map +1 -1
  355. package/schematics/view/_utility/view-utility-functions.js +6 -6
  356. package/schematics/view/_utility/view-utility-functions.js.map +1 -1
  357. package/schematics/view/create-view/schematic-create-view.js +4 -4
  358. package/schematics/view/create-view/schematic-create-view.js.map +1 -1
  359. package/schematics/view/create-view-prompt/schematic-create-sidenav-prompt.js +1 -1
  360. package/schematics/view/create-view-prompt/schematic-create-sidenav-prompt.js.map +1 -1
  361. package/schematics/view/create-view-prompt/schematic-create-view-prompt.js +15 -15
  362. package/schematics/view/create-view-prompt/schematic-create-view-prompt.js.map +1 -1
  363. package/schematics/view/create-view-prompt/views/case-view/create-case-view.js +9 -13
  364. package/schematics/view/create-view-prompt/views/case-view/create-case-view.js.map +1 -1
  365. package/schematics/view/create-view-prompt/views/dashboard-view/create-dashboard-view.js +7 -7
  366. package/schematics/view/create-view-prompt/views/dashboard-view/create-dashboard-view.js.map +1 -1
  367. package/schematics/view/create-view-prompt/views/empty-view/create-empty-view.js +6 -6
  368. package/schematics/view/create-view-prompt/views/empty-view/create-empty-view.js.map +1 -1
  369. package/schematics/view/create-view-prompt/views/group-view/create-group-view.js +7 -7
  370. package/schematics/view/create-view-prompt/views/group-view/create-group-view.js.map +1 -1
  371. package/schematics/view/create-view-prompt/views/login/create-login-view.js +7 -7
  372. package/schematics/view/create-view-prompt/views/login/create-login-view.js.map +1 -1
  373. package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/create-sidenav-or-toolbar-view.js +8 -8
  374. package/schematics/view/create-view-prompt/views/sidenav-toolbar-view/create-sidenav-or-toolbar-view.js.map +1 -1
  375. package/schematics/view/create-view-prompt/views/tab-view/create-tab-view.js +9 -16
  376. package/schematics/view/create-view-prompt/views/tab-view/create-tab-view.js.map +1 -1
  377. package/schematics/view/create-view-prompt/views/task-view/create-task-view.js +9 -9
  378. package/schematics/view/create-view-prompt/views/task-view/create-task-view.js.map +1 -1
  379. package/schematics/view/create-view-prompt/views/tree-case-view/create-tree-case-view.js +7 -7
  380. package/schematics/view/create-view-prompt/views/tree-case-view/create-tree-case-view.js.map +1 -1
  381. package/src/lib/admin/ldap-group-role-assignment/ldap-group-role-assignment.component.theme.scss +10 -0
  382. package/src/lib/admin/role-assignment/role-assignment.component.theme.scss +2 -2
  383. package/src/lib/data-fields/data-field.theme.scss +31 -11
  384. package/src/lib/dialog/dialog.theme.scss +0 -2
  385. package/src/lib/header/header.theme.scss +2 -2
  386. package/src/lib/navigation/navigation.theme.scss +2 -2
  387. package/src/lib/panel/panel.theme.scss +7 -7
  388. package/src/lib/search/advanced-search/search-clause-component/search-clause.component.theme.scss +2 -2
  389. package/src/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.theme.scss +2 -2
  390. package/src/lib/search/advanced-search/search-predicate-component/search-predicate.component.theme.scss +2 -2
  391. package/src/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/theme/user-assign-item.component.theme.scss +5 -5
  392. package/src/lib/side-menu/side-menu.theme.scss +3 -3
  393. package/src/lib/snack-bar/snack-bar.theme.scss +0 -2
  394. package/src/lib/tabs/tabs.theme.scss +0 -2
  395. package/src/lib/user/user.theme.scss +2 -2
  396. package/src/lib/view/view.theme.scss +3 -3
  397. package/bundles/netgrif-components.umd.js +0 -4769
  398. package/bundles/netgrif-components.umd.js.map +0 -1
  399. package/bundles/netgrif-components.umd.min.js +0 -16
  400. package/bundles/netgrif-components.umd.min.js.map +0 -1
  401. package/esm2015/lib/admin/admin.module.js +0 -19
  402. package/esm2015/lib/admin/public-api.js +0 -5
  403. package/esm2015/lib/admin/role-assignment/role-assignment.component.js +0 -28
  404. package/esm2015/lib/admin/user-invite/user-invite.component.js +0 -35
  405. package/esm2015/lib/authentication/auth.module.js +0 -15
  406. package/esm2015/lib/authentication/authentication-overlay/authentication-overlay.component.js +0 -35
  407. package/esm2015/lib/authentication/public-api.js +0 -5
  408. package/esm2015/lib/dashboard/cards/barchart-card/barchart-card.component.js +0 -49
  409. package/esm2015/lib/dashboard/cards/count-card/count-card.component.js +0 -22
  410. package/esm2015/lib/dashboard/cards/iframe-card/iframe-card.component.js +0 -23
  411. package/esm2015/lib/dashboard/cards/lineargauge-card/linear-gauge-card.component.js +0 -47
  412. package/esm2015/lib/dashboard/cards/linechart-card/line-chart-card.component.js +0 -59
  413. package/esm2015/lib/dashboard/cards/piechart-card/pie-chart-card.component.js +0 -52
  414. package/esm2015/lib/dashboard/cards/portal-card/portal-card.component.js +0 -47
  415. package/esm2015/lib/dashboard/dashboard-content/dashboard-content.component.js +0 -22
  416. package/esm2015/lib/dashboard/dashboard.module.js +0 -44
  417. package/esm2015/lib/dashboard/public-api.js +0 -12
  418. package/esm2015/lib/data-fields/boolean-field/boolean-field.component.js +0 -28
  419. package/esm2015/lib/data-fields/button-field/button-field.component.js +0 -27
  420. package/esm2015/lib/data-fields/data-field-template/data-field-template.component.js +0 -25
  421. package/esm2015/lib/data-fields/data-fields.module.js +0 -134
  422. package/esm2015/lib/data-fields/date-field/date-field.component.js +0 -30
  423. package/esm2015/lib/data-fields/date-time-field/date-time-field.component.js +0 -30
  424. package/esm2015/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.js +0 -23
  425. package/esm2015/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.js +0 -23
  426. package/esm2015/lib/data-fields/enumeration-field/enumeration-field.component.js +0 -21
  427. package/esm2015/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.js +0 -16
  428. package/esm2015/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.js +0 -16
  429. package/esm2015/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.js +0 -16
  430. package/esm2015/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.js +0 -22
  431. package/esm2015/lib/data-fields/file-field/file-field.component.js +0 -52
  432. package/esm2015/lib/data-fields/file-field/preview-dialog/preview-dialog.component.js +0 -33
  433. package/esm2015/lib/data-fields/file-field-list/file-list-field.component.js +0 -32
  434. package/esm2015/lib/data-fields/filter-field/filter-field-content/filter-field-content.component.js +0 -42
  435. package/esm2015/lib/data-fields/filter-field/filter-field.component.js +0 -27
  436. package/esm2015/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.js +0 -16
  437. package/esm2015/lib/data-fields/i18n-field/i18n-field.component.js +0 -21
  438. package/esm2015/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.js +0 -22
  439. package/esm2015/lib/data-fields/multichoice-field/multichoice-field.component.js +0 -21
  440. package/esm2015/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.js +0 -16
  441. package/esm2015/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.js +0 -12
  442. package/esm2015/lib/data-fields/number-field/number-currency-field/number-currency-field.component.js +0 -34
  443. package/esm2015/lib/data-fields/number-field/number-default-field/number-default-field.component.js +0 -22
  444. package/esm2015/lib/data-fields/number-field/number-field.component.js +0 -32
  445. package/esm2015/lib/data-fields/public-api.js +0 -18
  446. package/esm2015/lib/data-fields/required-label/required-label.component.js +0 -20
  447. package/esm2015/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.js +0 -27
  448. package/esm2015/lib/data-fields/text-field/password-text-field/password-text-field.component.js +0 -26
  449. package/esm2015/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.js +0 -23
  450. package/esm2015/lib/data-fields/text-field/simple-text-field/simple-text-field.component.js +0 -23
  451. package/esm2015/lib/data-fields/text-field/text-field.component.js +0 -21
  452. package/esm2015/lib/data-fields/text-field/textarea-field/textarea-field.component.js +0 -26
  453. package/esm2015/lib/data-fields/user-field/user-field.component.js +0 -32
  454. package/esm2015/lib/forms/email-submission/email-submission-form.component.js +0 -22
  455. package/esm2015/lib/forms/email-submission/email-submission-form.module.js +0 -24
  456. package/esm2015/lib/forms/forgotten-password/forgotten-password-form-component.module.js +0 -22
  457. package/esm2015/lib/forms/forgotten-password/forgotten-password-form.component.js +0 -29
  458. package/esm2015/lib/forms/login/login-form.component.js +0 -25
  459. package/esm2015/lib/forms/login/login-form.module.js +0 -22
  460. package/esm2015/lib/forms/public-api.js +0 -11
  461. package/esm2015/lib/forms/registration/registration-form.component.js +0 -29
  462. package/esm2015/lib/forms/registration/registration-form.module.js +0 -24
  463. package/esm2015/lib/header/header-modes/edit-mode/edit-mode.component.js +0 -26
  464. package/esm2015/lib/header/header-modes/loading-mode/loading-mode.component.js +0 -16
  465. package/esm2015/lib/header/header-modes/search-mode/search-mode.component.js +0 -34
  466. package/esm2015/lib/header/header-modes/sort-mode/sort-mode.component.js +0 -16
  467. package/esm2015/lib/header/header.component.js +0 -36
  468. package/esm2015/lib/header/header.module.js +0 -39
  469. package/esm2015/lib/header/public-api.js +0 -12
  470. package/esm2015/lib/legal/legal-notice/legal-notice.component.js +0 -21
  471. package/esm2015/lib/legal/legal-notice/legal-notice.module.js +0 -17
  472. package/esm2015/lib/legal/public-api.js +0 -5
  473. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.js +0 -54
  474. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.js +0 -43
  475. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.js +0 -67
  476. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.js +0 -58
  477. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.js +0 -30
  478. package/esm2015/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-case-view-data-with-navigation-item-task-data.js +0 -2
  479. package/esm2015/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.js +0 -35
  480. package/esm2015/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.component.js +0 -30
  481. package/esm2015/lib/navigation/navigation-drawer/navigation-drawer.component.js +0 -30
  482. package/esm2015/lib/navigation/navigation-rail/navigation-rail.component.js +0 -40
  483. package/esm2015/lib/navigation/navigation-tree/navigation-tree.component.js +0 -42
  484. package/esm2015/lib/navigation/navigation.module.js +0 -81
  485. package/esm2015/lib/navigation/public-api.js +0 -9
  486. package/esm2015/lib/navigation/quick-panel/components/internal-link/internal-link.component.js +0 -16
  487. package/esm2015/lib/navigation/quick-panel/components/language-selector/language-selector.component.js +0 -39
  488. package/esm2015/lib/navigation/quick-panel/components/logout-shortcut/logout-shortcut.component.js +0 -32
  489. package/esm2015/lib/navigation/quick-panel/components/quick-panel.component.js +0 -25
  490. package/esm2015/lib/navigation/quick-panel/public-api.js +0 -9
  491. package/esm2015/lib/navigation/quick-panel/quick-panel.module.js +0 -33
  492. package/esm2015/lib/panel/case-panel/case-panel.component.js +0 -50
  493. package/esm2015/lib/panel/immediate/immediate-filter-text/immediate-filter-text.component.js +0 -25
  494. package/esm2015/lib/panel/immediate/immediate-filter-text-content/immediate-filter-text-content.component.js +0 -46
  495. package/esm2015/lib/panel/panel.component.js +0 -22
  496. package/esm2015/lib/panel/panel.module.js +0 -55
  497. package/esm2015/lib/panel/public-api.js +0 -10
  498. package/esm2015/lib/panel/public-workflow-panel/public-workflow-panel.component.js +0 -26
  499. package/esm2015/lib/panel/task-panel/task-panel.component.js +0 -113
  500. package/esm2015/lib/panel/task-panel-list/task-list.component.js +0 -31
  501. package/esm2015/lib/panel/workflow-panel/workflow-panel.component.js +0 -26
  502. package/esm2015/lib/routing/public-api.js +0 -3
  503. package/esm2015/lib/routing/redirect/redirect.component.js +0 -28
  504. package/esm2015/lib/routing/redirect.module.js +0 -12
  505. package/esm2015/lib/search/advanced-search/advanced-search-component/advanced-search.component.js +0 -24
  506. package/esm2015/lib/search/advanced-search/advanced-search.module.js +0 -36
  507. package/esm2015/lib/search/advanced-search/public-api.js +0 -8
  508. package/esm2015/lib/search/advanced-search/search-clause-component/search-clause.component.js +0 -16
  509. package/esm2015/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.js +0 -20
  510. package/esm2015/lib/search/advanced-search/search-operand-input-component/search-operand-input.component.js +0 -26
  511. package/esm2015/lib/search/advanced-search/search-predicate-component/search-predicate.component.js +0 -27
  512. package/esm2015/lib/search/fulltext-search-component/fulltext-search.component.js +0 -21
  513. package/esm2015/lib/search/public-api.js +0 -10
  514. package/esm2015/lib/search/search-component/case-search/case-search.component.js +0 -24
  515. package/esm2015/lib/search/search-component/search.component.js +0 -98
  516. package/esm2015/lib/search/search-component/task-search/task-search.component.js +0 -24
  517. package/esm2015/lib/search/search.module.js +0 -36
  518. package/esm2015/lib/side-menu/content-components/filter-selector/filter-selector-list-item/filter-selector-list-item.component.js +0 -16
  519. package/esm2015/lib/side-menu/content-components/filter-selector/filter-selector.component.js +0 -45
  520. package/esm2015/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.js +0 -27
  521. package/esm2015/lib/side-menu/content-components/import-net/import-net.component.js +0 -44
  522. package/esm2015/lib/side-menu/content-components/import-net/side-menu-import-net-component.module.js +0 -27
  523. package/esm2015/lib/side-menu/content-components/load-filter/load-filter.component.js +0 -54
  524. package/esm2015/lib/side-menu/content-components/load-filter/side-menu-load-filter-component.module.js +0 -28
  525. package/esm2015/lib/side-menu/content-components/new-case/new-case.component.js +0 -48
  526. package/esm2015/lib/side-menu/content-components/new-case/side-menu-new-case-component.module.js +0 -35
  527. package/esm2015/lib/side-menu/content-components/option-selector/option-selector.component.js +0 -22
  528. package/esm2015/lib/side-menu/content-components/option-selector/side-menu-option-selector-component.module.js +0 -30
  529. package/esm2015/lib/side-menu/content-components/public-api.js +0 -19
  530. package/esm2015/lib/side-menu/content-components/save-filter/save-filter.component.js +0 -53
  531. package/esm2015/lib/side-menu/content-components/save-filter/side-menu-save-filter-component.module.js +0 -26
  532. package/esm2015/lib/side-menu/content-components/side-menu-content-component.module.js +0 -50
  533. package/esm2015/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.js +0 -36
  534. package/esm2015/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/user-assign-item.component.js +0 -19
  535. package/esm2015/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-list.component.js +0 -25
  536. package/esm2015/lib/side-menu/content-components/user-assign/user-assign.component.js +0 -29
  537. package/esm2015/lib/side-menu/public-api.js +0 -7
  538. package/esm2015/lib/side-menu/side-menu-container/side-menu-container.component.js +0 -22
  539. package/esm2015/lib/side-menu/side-menu.module.js +0 -27
  540. package/esm2015/lib/tabs/public-api.js +0 -4
  541. package/esm2015/lib/tabs/tab-creation-detector/tab-creation-detector.component.js +0 -22
  542. package/esm2015/lib/tabs/tab-view/tab-view.component.js +0 -32
  543. package/esm2015/lib/tabs/tabs.module.js +0 -28
  544. package/esm2015/lib/task-content/field-component-resolver/field-component-resolver.component.js +0 -21
  545. package/esm2015/lib/task-content/public-api.js +0 -6
  546. package/esm2015/lib/task-content/task-content/task-content.component.js +0 -36
  547. package/esm2015/lib/task-content/task-content.module.js +0 -32
  548. package/esm2015/lib/toolbar/public-api.js +0 -3
  549. package/esm2015/lib/toolbar/toolbar.component.js +0 -26
  550. package/esm2015/lib/toolbar/toolbar.module.js +0 -22
  551. package/esm2015/lib/user/profile/profile.component.js +0 -22
  552. package/esm2015/lib/user/profile/profile.module.js +0 -20
  553. package/esm2015/lib/user/public-api.js +0 -7
  554. package/esm2015/lib/user/user-card/user-card.component.js +0 -22
  555. package/esm2015/lib/user/user.module.js +0 -22
  556. package/esm2015/lib/view/case-view/case-view.module.js +0 -22
  557. package/esm2015/lib/view/case-view/components/case-list/case-list.component.js +0 -31
  558. package/esm2015/lib/view/public-api.js +0 -10
  559. package/esm2015/lib/view/tree-case-view/tree-case-view.module.js +0 -38
  560. package/esm2015/lib/view/tree-case-view/tree-component/add-child-node/add-child-node.component.js +0 -22
  561. package/esm2015/lib/view/tree-case-view/tree-component/remove-node/remove-node.component.js +0 -22
  562. package/esm2015/lib/view/tree-case-view/tree-component/tree.component.js +0 -23
  563. package/esm2015/lib/view/tree-case-view/tree-task-content/tree-task-content.component.js +0 -55
  564. package/esm2015/lib/view/workflow-view/workflow-view.component.js +0 -36
  565. package/esm2015/lib/view/workflow-view.module.js +0 -36
  566. package/esm2015/netgrif-components.js +0 -43
  567. package/esm2015/public-api.js +0 -22
  568. package/esm5/lib/admin/admin.module.js +0 -23
  569. package/esm5/lib/admin/public-api.js +0 -5
  570. package/esm5/lib/admin/role-assignment/role-assignment.component.js +0 -33
  571. package/esm5/lib/admin/user-invite/user-invite.component.js +0 -40
  572. package/esm5/lib/authentication/auth.module.js +0 -19
  573. package/esm5/lib/authentication/authentication-overlay/authentication-overlay.component.js +0 -40
  574. package/esm5/lib/authentication/public-api.js +0 -5
  575. package/esm5/lib/dashboard/cards/barchart-card/barchart-card.component.js +0 -55
  576. package/esm5/lib/dashboard/cards/count-card/count-card.component.js +0 -27
  577. package/esm5/lib/dashboard/cards/iframe-card/iframe-card.component.js +0 -28
  578. package/esm5/lib/dashboard/cards/lineargauge-card/linear-gauge-card.component.js +0 -52
  579. package/esm5/lib/dashboard/cards/linechart-card/line-chart-card.component.js +0 -65
  580. package/esm5/lib/dashboard/cards/piechart-card/pie-chart-card.component.js +0 -58
  581. package/esm5/lib/dashboard/cards/portal-card/portal-card.component.js +0 -52
  582. package/esm5/lib/dashboard/dashboard-content/dashboard-content.component.js +0 -27
  583. package/esm5/lib/dashboard/dashboard.module.js +0 -48
  584. package/esm5/lib/dashboard/public-api.js +0 -12
  585. package/esm5/lib/data-fields/boolean-field/boolean-field.component.js +0 -33
  586. package/esm5/lib/data-fields/button-field/button-field.component.js +0 -32
  587. package/esm5/lib/data-fields/data-field-template/data-field-template.component.js +0 -30
  588. package/esm5/lib/data-fields/data-fields.module.js +0 -138
  589. package/esm5/lib/data-fields/date-field/date-field.component.js +0 -34
  590. package/esm5/lib/data-fields/date-time-field/date-time-field.component.js +0 -34
  591. package/esm5/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/enumeration-autocomplete-dynamic-field.component.js +0 -28
  592. package/esm5/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/enumeration-autocomplete-select-field.component.js +0 -28
  593. package/esm5/lib/data-fields/enumeration-field/enumeration-field.component.js +0 -25
  594. package/esm5/lib/data-fields/enumeration-field/enumeration-icon-field/enumeration-icon-field.component.js +0 -20
  595. package/esm5/lib/data-fields/enumeration-field/enumeration-list-field/enumeration-list-field.component.js +0 -20
  596. package/esm5/lib/data-fields/enumeration-field/enumeration-select-field/enumeration-select-field.component.js +0 -20
  597. package/esm5/lib/data-fields/enumeration-field/enumeration-stepper-field/enumeration-stepper-field.component.js +0 -27
  598. package/esm5/lib/data-fields/file-field/file-field.component.js +0 -57
  599. package/esm5/lib/data-fields/file-field/preview-dialog/preview-dialog.component.js +0 -36
  600. package/esm5/lib/data-fields/file-field-list/file-list-field.component.js +0 -36
  601. package/esm5/lib/data-fields/filter-field/filter-field-content/filter-field-content.component.js +0 -46
  602. package/esm5/lib/data-fields/filter-field/filter-field.component.js +0 -31
  603. package/esm5/lib/data-fields/i18n-field/i18n-divider-field/i18n-divider-field.component.js +0 -20
  604. package/esm5/lib/data-fields/i18n-field/i18n-field.component.js +0 -25
  605. package/esm5/lib/data-fields/i18n-field/i18n-text-field/i18n-text-field.component.js +0 -26
  606. package/esm5/lib/data-fields/multichoice-field/multichoice-field.component.js +0 -25
  607. package/esm5/lib/data-fields/multichoice-field/multichoice-list-field/multichoice-list-field.component.js +0 -20
  608. package/esm5/lib/data-fields/multichoice-field/multichoice-select-field/multichoice-select-field.component.js +0 -19
  609. package/esm5/lib/data-fields/number-field/number-currency-field/number-currency-field.component.js +0 -38
  610. package/esm5/lib/data-fields/number-field/number-default-field/number-default-field.component.js +0 -26
  611. package/esm5/lib/data-fields/number-field/number-field.component.js +0 -36
  612. package/esm5/lib/data-fields/public-api.js +0 -18
  613. package/esm5/lib/data-fields/required-label/required-label.component.js +0 -22
  614. package/esm5/lib/data-fields/text-field/html-textarea-field/html-textarea-field.component.js +0 -32
  615. package/esm5/lib/data-fields/text-field/password-text-field/password-text-field.component.js +0 -31
  616. package/esm5/lib/data-fields/text-field/rich-textarea-field/rich-textarea-field.component.js +0 -28
  617. package/esm5/lib/data-fields/text-field/simple-text-field/simple-text-field.component.js +0 -28
  618. package/esm5/lib/data-fields/text-field/text-field.component.js +0 -25
  619. package/esm5/lib/data-fields/text-field/textarea-field/textarea-field.component.js +0 -31
  620. package/esm5/lib/data-fields/user-field/user-field.component.js +0 -36
  621. package/esm5/lib/forms/email-submission/email-submission-form.component.js +0 -26
  622. package/esm5/lib/forms/email-submission/email-submission-form.module.js +0 -28
  623. package/esm5/lib/forms/forgotten-password/forgotten-password-form-component.module.js +0 -26
  624. package/esm5/lib/forms/forgotten-password/forgotten-password-form.component.js +0 -33
  625. package/esm5/lib/forms/login/login-form.component.js +0 -30
  626. package/esm5/lib/forms/login/login-form.module.js +0 -26
  627. package/esm5/lib/forms/public-api.js +0 -11
  628. package/esm5/lib/forms/registration/registration-form.component.js +0 -33
  629. package/esm5/lib/forms/registration/registration-form.module.js +0 -28
  630. package/esm5/lib/header/header-modes/edit-mode/edit-mode.component.js +0 -31
  631. package/esm5/lib/header/header-modes/loading-mode/loading-mode.component.js +0 -20
  632. package/esm5/lib/header/header-modes/search-mode/search-mode.component.js +0 -39
  633. package/esm5/lib/header/header-modes/sort-mode/sort-mode.component.js +0 -20
  634. package/esm5/lib/header/header.component.js +0 -41
  635. package/esm5/lib/header/header.module.js +0 -43
  636. package/esm5/lib/header/public-api.js +0 -12
  637. package/esm5/lib/legal/legal-notice/legal-notice.component.js +0 -25
  638. package/esm5/lib/legal/legal-notice/legal-notice.module.js +0 -21
  639. package/esm5/lib/legal/public-api.js +0 -5
  640. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-simple-task-view/default-simple-task-view.component.js +0 -58
  641. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-tab-view/default-tab-view.component.js +0 -45
  642. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-case-view/default-tabbed-case-view.component.js +0 -71
  643. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/default-tabbed-task-view/default-tabbed-task-view.component.js +0 -62
  644. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/model/factory-methods.js +0 -30
  645. package/esm5/lib/navigation/group-navigation-component-resolver/default-components/model/injected-tabbed-case-view-data-with-navigation-item-task-data.js +0 -2
  646. package/esm5/lib/navigation/group-navigation-component-resolver/default-group-navigation-component-resolver.service.js +0 -39
  647. package/esm5/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.component.js +0 -34
  648. package/esm5/lib/navigation/navigation-drawer/navigation-drawer.component.js +0 -35
  649. package/esm5/lib/navigation/navigation-rail/navigation-rail.component.js +0 -44
  650. package/esm5/lib/navigation/navigation-tree/navigation-tree.component.js +0 -46
  651. package/esm5/lib/navigation/navigation.module.js +0 -85
  652. package/esm5/lib/navigation/public-api.js +0 -9
  653. package/esm5/lib/navigation/quick-panel/components/internal-link/internal-link.component.js +0 -20
  654. package/esm5/lib/navigation/quick-panel/components/language-selector/language-selector.component.js +0 -44
  655. package/esm5/lib/navigation/quick-panel/components/logout-shortcut/logout-shortcut.component.js +0 -37
  656. package/esm5/lib/navigation/quick-panel/components/quick-panel.component.js +0 -30
  657. package/esm5/lib/navigation/quick-panel/public-api.js +0 -9
  658. package/esm5/lib/navigation/quick-panel/quick-panel.module.js +0 -37
  659. package/esm5/lib/panel/case-panel/case-panel.component.js +0 -55
  660. package/esm5/lib/panel/immediate/immediate-filter-text/immediate-filter-text.component.js +0 -29
  661. package/esm5/lib/panel/immediate/immediate-filter-text-content/immediate-filter-text-content.component.js +0 -50
  662. package/esm5/lib/panel/panel.component.js +0 -26
  663. package/esm5/lib/panel/panel.module.js +0 -59
  664. package/esm5/lib/panel/public-api.js +0 -10
  665. package/esm5/lib/panel/public-workflow-panel/public-workflow-panel.component.js +0 -30
  666. package/esm5/lib/panel/task-panel/task-panel.component.js +0 -118
  667. package/esm5/lib/panel/task-panel-list/task-list.component.js +0 -36
  668. package/esm5/lib/panel/workflow-panel/workflow-panel.component.js +0 -30
  669. package/esm5/lib/routing/public-api.js +0 -3
  670. package/esm5/lib/routing/redirect/redirect.component.js +0 -30
  671. package/esm5/lib/routing/redirect.module.js +0 -16
  672. package/esm5/lib/search/advanced-search/advanced-search-component/advanced-search.component.js +0 -28
  673. package/esm5/lib/search/advanced-search/advanced-search.module.js +0 -40
  674. package/esm5/lib/search/advanced-search/public-api.js +0 -8
  675. package/esm5/lib/search/advanced-search/search-clause-component/search-clause.component.js +0 -20
  676. package/esm5/lib/search/advanced-search/search-configuration-input-component/search-configuration-input.component.js +0 -25
  677. package/esm5/lib/search/advanced-search/search-operand-input-component/search-operand-input.component.js +0 -31
  678. package/esm5/lib/search/advanced-search/search-predicate-component/search-predicate.component.js +0 -31
  679. package/esm5/lib/search/fulltext-search-component/fulltext-search.component.js +0 -25
  680. package/esm5/lib/search/public-api.js +0 -10
  681. package/esm5/lib/search/search-component/case-search/case-search.component.js +0 -28
  682. package/esm5/lib/search/search-component/search.component.js +0 -105
  683. package/esm5/lib/search/search-component/task-search/task-search.component.js +0 -28
  684. package/esm5/lib/search/search.module.js +0 -40
  685. package/esm5/lib/side-menu/content-components/filter-selector/filter-selector-list-item/filter-selector-list-item.component.js +0 -23
  686. package/esm5/lib/side-menu/content-components/filter-selector/filter-selector.component.js +0 -50
  687. package/esm5/lib/side-menu/content-components/filter-selector/side-menu-filter-selector-component.module.js +0 -31
  688. package/esm5/lib/side-menu/content-components/import-net/import-net.component.js +0 -49
  689. package/esm5/lib/side-menu/content-components/import-net/side-menu-import-net-component.module.js +0 -31
  690. package/esm5/lib/side-menu/content-components/load-filter/load-filter.component.js +0 -58
  691. package/esm5/lib/side-menu/content-components/load-filter/side-menu-load-filter-component.module.js +0 -32
  692. package/esm5/lib/side-menu/content-components/new-case/new-case.component.js +0 -53
  693. package/esm5/lib/side-menu/content-components/new-case/side-menu-new-case-component.module.js +0 -39
  694. package/esm5/lib/side-menu/content-components/option-selector/option-selector.component.js +0 -27
  695. package/esm5/lib/side-menu/content-components/option-selector/side-menu-option-selector-component.module.js +0 -34
  696. package/esm5/lib/side-menu/content-components/public-api.js +0 -19
  697. package/esm5/lib/side-menu/content-components/save-filter/save-filter.component.js +0 -57
  698. package/esm5/lib/side-menu/content-components/save-filter/side-menu-save-filter-component.module.js +0 -30
  699. package/esm5/lib/side-menu/content-components/side-menu-content-component.module.js +0 -54
  700. package/esm5/lib/side-menu/content-components/user-assign/side-menu-user-assign-component.module.js +0 -40
  701. package/esm5/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/user-assign-item.component.js +0 -23
  702. package/esm5/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-list.component.js +0 -30
  703. package/esm5/lib/side-menu/content-components/user-assign/user-assign.component.js +0 -34
  704. package/esm5/lib/side-menu/public-api.js +0 -7
  705. package/esm5/lib/side-menu/side-menu-container/side-menu-container.component.js +0 -27
  706. package/esm5/lib/side-menu/side-menu.module.js +0 -31
  707. package/esm5/lib/tabs/public-api.js +0 -4
  708. package/esm5/lib/tabs/tab-creation-detector/tab-creation-detector.component.js +0 -26
  709. package/esm5/lib/tabs/tab-view/tab-view.component.js +0 -37
  710. package/esm5/lib/tabs/tabs.module.js +0 -32
  711. package/esm5/lib/task-content/field-component-resolver/field-component-resolver.component.js +0 -25
  712. package/esm5/lib/task-content/public-api.js +0 -6
  713. package/esm5/lib/task-content/task-content/task-content.component.js +0 -41
  714. package/esm5/lib/task-content/task-content.module.js +0 -36
  715. package/esm5/lib/toolbar/public-api.js +0 -3
  716. package/esm5/lib/toolbar/toolbar.component.js +0 -31
  717. package/esm5/lib/toolbar/toolbar.module.js +0 -26
  718. package/esm5/lib/user/profile/profile.component.js +0 -27
  719. package/esm5/lib/user/profile/profile.module.js +0 -24
  720. package/esm5/lib/user/public-api.js +0 -7
  721. package/esm5/lib/user/user-card/user-card.component.js +0 -27
  722. package/esm5/lib/user/user.module.js +0 -26
  723. package/esm5/lib/view/case-view/case-view.module.js +0 -26
  724. package/esm5/lib/view/case-view/components/case-list/case-list.component.js +0 -36
  725. package/esm5/lib/view/public-api.js +0 -10
  726. package/esm5/lib/view/tree-case-view/tree-case-view.module.js +0 -42
  727. package/esm5/lib/view/tree-case-view/tree-component/add-child-node/add-child-node.component.js +0 -27
  728. package/esm5/lib/view/tree-case-view/tree-component/remove-node/remove-node.component.js +0 -27
  729. package/esm5/lib/view/tree-case-view/tree-component/tree.component.js +0 -28
  730. package/esm5/lib/view/tree-case-view/tree-task-content/tree-task-content.component.js +0 -60
  731. package/esm5/lib/view/workflow-view/workflow-view.component.js +0 -41
  732. package/esm5/lib/view/workflow-view.module.js +0 -40
  733. package/esm5/netgrif-components.js +0 -43
  734. package/esm5/public-api.js +0 -22
  735. package/fesm2015/netgrif-components.js +0 -4034
  736. package/fesm2015/netgrif-components.js.map +0 -1
  737. package/fesm5/netgrif-components.js +0 -4419
  738. package/fesm5/netgrif-components.js.map +0 -1
  739. package/netgrif-components.metadata.json +0 -1
@@ -1,4034 +0,0 @@
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",
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 [value]=\"null\">---</mat-option>\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 [value]=\"null\">---</mat-option>\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 <button mat-button (click)=\"resetEnum()\">{{'dataField.enum.reset' | translate}}</button>\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 [value]=\"null\">---</mat-option>\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\n 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\">\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>{{ 'dialog.submit' | translate}}</span>\n </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\"\n 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\n 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\"\n 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 <mat-spinner *ngIf=\"loadingSubmit | async\"\n mode=\"indeterminate\"\n diameter=\"36\"\n color=\"accent\"\n fxFlex></mat-spinner>\n <span *ngIf=\"(loadingSubmit | async) === false\"\n fxFlex>{{ 'forms.register.register' | translate }}</span>\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\"\n 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 <mat-spinner *ngIf=\"loadingSubmit | async\"\n mode=\"indeterminate\"\n diameter=\"36\"\n color=\"accent\"\n fxFlex></mat-spinner>\n <span *ngIf=\"(loadingSubmit | async) === false\"\n fxFlex>{{ 'forms.forgottenPass.recover' | translate }}</span>\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 class=\"sidenav-wrapper\">\n <button\n class=\"sidenav-close-button\"\n type=\"button\"\n aria-label=\"Toggle sidenav\"\n mat-icon-button\n *ngIf=\"!fixed\"\n (click)=\"close()\">\n <mat-icon aria-label=\"Side nav toggle icon\">close</mat-icon>\n </button>\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 <nc-quick-panel *ngIf=\"showQuickPanel\" [items]=\"quickPanelItems\"\n [contentWidth]=\"contentWidth\"></nc-quick-panel>\n <mat-divider *ngIf=\"showQuickPanel\" class=\"drawer-divider\"></mat-divider>\n <nc-navigation-tree *ngIf=\"navigation\" [contentWidth]=\"contentWidth\"></nc-navigation-tree>\n </div>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content>\n <div class=\"content-wrapper\" fxLayout=\"row\" fxLayoutAlign=\"space-between none\">\n <button\n type=\"button\"\n aria-label=\"Toggle sidenav\"\n mat-icon-button\n (click)=\"open()\"\n *ngIf=\"!sidenav.opened\">\n <mat-icon aria-label=\"Side nav toggle icon\">menu</mat-icon>\n </button>\n <div fxFlex=\"100\">\n <ng-content></ng-content>\n </div>\n </div>\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%}.sidenav-wrapper{overflow-x:hidden!important}.sidenav-close-button{position:absolute;right:0;z-index:100}.content-wrapper{height:100%}"]
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}.mat-expansion-panel{-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important}"]
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 (click)=\"toNextStep(processFormControl.value)\">{{'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