@netgrif/components-core 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2010) hide show
  1. package/LICENSE +132 -0
  2. package/README.md +105 -0
  3. package/bundles/netgrif-components-core.umd.js +32298 -0
  4. package/bundles/netgrif-components-core.umd.js.map +1 -0
  5. package/bundles/netgrif-components-core.umd.min.js +17 -0
  6. package/bundles/netgrif-components-core.umd.min.js.map +1 -0
  7. package/commons/angular-cli-devkit-core-strings.d.ts +93 -0
  8. package/commons/import-to-add.d.ts +5 -0
  9. package/commons/schema.d.ts +277 -0
  10. package/commons/view-class-info.d.ts +22 -0
  11. package/esm2015/assets/i18n/de.json +419 -0
  12. package/esm2015/assets/i18n/en.json +419 -0
  13. package/esm2015/assets/i18n/sk.json +419 -0
  14. package/esm2015/commons/angular-cli-devkit-core-strings.js +157 -0
  15. package/esm2015/commons/import-to-add.js +7 -0
  16. package/esm2015/commons/schema.js +7 -0
  17. package/esm2015/commons/view-class-info.js +52 -0
  18. package/esm2015/lib/admin/public-api.js +9 -0
  19. package/esm2015/lib/admin/role-assignment/abstract-role-assignment.js +77 -0
  20. package/esm2015/lib/admin/role-assignment/services/ProcessList.js +155 -0
  21. package/esm2015/lib/admin/role-assignment/services/role-assignment.service.js +40 -0
  22. package/esm2015/lib/admin/user-invite/abstract-user-invite.component.js +77 -0
  23. package/esm2015/lib/admin/user-invite/services/organization-list.service.js +63 -0
  24. package/esm2015/lib/admin/user-invite/services/user-invite.service.js +31 -0
  25. package/esm2015/lib/allowed-nets/public-api.js +4 -0
  26. package/esm2015/lib/allowed-nets/services/allowed-nets.service.js +74 -0
  27. package/esm2015/lib/allowed-nets/services/base-allowed-nets.service.js +54 -0
  28. package/esm2015/lib/allowed-nets/services/factory/allowed-nets-service-factory.js +129 -0
  29. package/esm2015/lib/authentication/anonymous/anonymous.service.js +63 -0
  30. package/esm2015/lib/authentication/authentication.factory.js +16 -0
  31. package/esm2015/lib/authentication/authentication.module.js +32 -0
  32. package/esm2015/lib/authentication/components/abstract-authentication-overlay.js +50 -0
  33. package/esm2015/lib/authentication/models/credentials.js +2 -0
  34. package/esm2015/lib/authentication/models/public-api.js +5 -0
  35. package/esm2015/lib/authentication/models/transformer.js +2 -0
  36. package/esm2015/lib/authentication/models/user.transformer.js +19 -0
  37. package/esm2015/lib/authentication/public-api.js +14 -0
  38. package/esm2015/lib/authentication/services/anonymous-authentication-interceptor.js +44 -0
  39. package/esm2015/lib/authentication/services/authentication/authentication.service.js +71 -0
  40. package/esm2015/lib/authentication/services/authentication-interceptor.js +52 -0
  41. package/esm2015/lib/authentication/services/authentication-method.service.js +5 -0
  42. package/esm2015/lib/authentication/services/guard/authentication-guard.service.js +39 -0
  43. package/esm2015/lib/authentication/services/methods/basic-authentication/basic-authentication.service.js +48 -0
  44. package/esm2015/lib/authentication/services/methods/null-authentication/null-authentication.service.js +19 -0
  45. package/esm2015/lib/authentication/services/public-api.js +7 -0
  46. package/esm2015/lib/authentication/session/null-storage.js +15 -0
  47. package/esm2015/lib/authentication/session/public-api.js +3 -0
  48. package/esm2015/lib/authentication/session/services/session.service.js +156 -0
  49. package/esm2015/lib/authentication/sign-up/models/user-invitation-request.js +2 -0
  50. package/esm2015/lib/authentication/sign-up/models/user-registration-request.js +2 -0
  51. package/esm2015/lib/authentication/sign-up/public-api.js +8 -0
  52. package/esm2015/lib/authentication/sign-up/services/sign-up.service.js +105 -0
  53. package/esm2015/lib/authentication/sign-up/sign-up.module.js +13 -0
  54. package/esm2015/lib/authorization/authority/authority-guard.service.js +50 -0
  55. package/esm2015/lib/authorization/group/group-guard.service.js +67 -0
  56. package/esm2015/lib/authorization/permission/permission.service.js +116 -0
  57. package/esm2015/lib/authorization/public-api.js +10 -0
  58. package/esm2015/lib/authorization/role/role-guard.service.js +105 -0
  59. package/esm2015/lib/changed-fields/public-api.js +2 -0
  60. package/esm2015/lib/changed-fields/services/changed-fields.service.js +32 -0
  61. package/esm2015/lib/configuration/configuration.service.js +190 -0
  62. package/esm2015/lib/configuration/public-api.js +3 -0
  63. package/esm2015/lib/covalent/covalent.module.js +22 -0
  64. package/esm2015/lib/currency/currency.module.js +23 -0
  65. package/esm2015/lib/dashboard/cards/count-card/abstract-count-card.js +39 -0
  66. package/esm2015/lib/dashboard/cards/custom-card/abstract-custom-card.js +47 -0
  67. package/esm2015/lib/dashboard/cards/iframe-card/abstract-iframe-card.js +14 -0
  68. package/esm2015/lib/dashboard/cards/model/card-grid-element.js +2 -0
  69. package/esm2015/lib/dashboard/cards/model/count-card.js +2 -0
  70. package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/aggregation-query.js +2 -0
  71. package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/aggregation-result.js +2 -0
  72. package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/custom-card.js +2 -0
  73. package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/dashboard-event-content.js +2 -0
  74. package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/dashboard-multi-data.js +7 -0
  75. package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/dashboard-single-data.js +7 -0
  76. package/esm2015/lib/dashboard/cards/model/dashboard-card-types.js +13 -0
  77. package/esm2015/lib/dashboard/cards/model/dashboard-card.js +2 -0
  78. package/esm2015/lib/dashboard/cards/model/graph-card.js +2 -0
  79. package/esm2015/lib/dashboard/cards/model/iframe-card.js +2 -0
  80. package/esm2015/lib/dashboard/dashboard-content/abstract-dashboard-content.js +19 -0
  81. package/esm2015/lib/dashboard/dashboard-content/dashboard-params.js +2 -0
  82. package/esm2015/lib/dashboard/public-api.js +20 -0
  83. package/esm2015/lib/data-fields/boolean-field/abstract-boolean-field.component.js +40 -0
  84. package/esm2015/lib/data-fields/boolean-field/models/boolean-field.js +24 -0
  85. package/esm2015/lib/data-fields/button-field/abstract-button-field.component.js +62 -0
  86. package/esm2015/lib/data-fields/button-field/models/button-field.js +27 -0
  87. package/esm2015/lib/data-fields/data-field-template/abstract-data-field-template.component.js +101 -0
  88. package/esm2015/lib/data-fields/data-field-template/models/wrapped-boolean.js +6 -0
  89. package/esm2015/lib/data-fields/data-fields.module.js +35 -0
  90. package/esm2015/lib/data-fields/date-field/abstract-date-field.component.js +21 -0
  91. package/esm2015/lib/data-fields/date-field/models/custom-date-adapter.js +11 -0
  92. package/esm2015/lib/data-fields/date-field/models/date-field.js +10 -0
  93. package/esm2015/lib/data-fields/date-time-field/abstract-date-time-field.component.js +21 -0
  94. package/esm2015/lib/data-fields/date-time-field/models/date-time-field.js +10 -0
  95. package/esm2015/lib/data-fields/enumeration-field/abstract-enumeration-field.component.js +17 -0
  96. package/esm2015/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.js +43 -0
  97. package/esm2015/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.js +53 -0
  98. package/esm2015/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.js +37 -0
  99. package/esm2015/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.js +11 -0
  100. package/esm2015/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.js +11 -0
  101. package/esm2015/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.js +40 -0
  102. package/esm2015/lib/data-fields/enumeration-field/models/dynamic-enumeration-field.js +44 -0
  103. package/esm2015/lib/data-fields/enumeration-field/models/enumeration-field.js +59 -0
  104. package/esm2015/lib/data-fields/file-field/abstract-file-field.component.js +390 -0
  105. package/esm2015/lib/data-fields/file-field/abstract-preview-dialog/preview-dialog-data.js +2 -0
  106. package/esm2015/lib/data-fields/file-field/models/file-field-value.js +2 -0
  107. package/esm2015/lib/data-fields/file-field/models/file-field.js +106 -0
  108. package/esm2015/lib/data-fields/file-list-field/abstract-file-list-field.component.js +261 -0
  109. package/esm2015/lib/data-fields/file-list-field/models/file-list-field-value.js +2 -0
  110. package/esm2015/lib/data-fields/file-list-field/models/file-list-field.js +83 -0
  111. package/esm2015/lib/data-fields/filter-field/abstract-filter-field-content.component.js +29 -0
  112. package/esm2015/lib/data-fields/filter-field/abstract-filter-field.component.js +28 -0
  113. package/esm2015/lib/data-fields/filter-field/models/filter-field-injection-token.js +7 -0
  114. package/esm2015/lib/data-fields/filter-field/models/filter-field.js +15 -0
  115. package/esm2015/lib/data-fields/i18n-field/abstract-i18n-field.component.js +19 -0
  116. package/esm2015/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.js +26 -0
  117. package/esm2015/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.js +40 -0
  118. package/esm2015/lib/data-fields/i18n-field/models/i18n-field-value.js +2 -0
  119. package/esm2015/lib/data-fields/i18n-field/models/i18n-field.js +10 -0
  120. package/esm2015/lib/data-fields/models/abstract-data-field-component.js +39 -0
  121. package/esm2015/lib/data-fields/models/abstract-data-field.js +391 -0
  122. package/esm2015/lib/data-fields/models/behavior.js +2 -0
  123. package/esm2015/lib/data-fields/models/boolean-label-enabled-token.js +3 -0
  124. package/esm2015/lib/data-fields/models/changed-fields.js +2 -0
  125. package/esm2015/lib/data-fields/models/component.js +2 -0
  126. package/esm2015/lib/data-fields/models/format-filter.js +2 -0
  127. package/esm2015/lib/data-fields/models/icon.js +6 -0
  128. package/esm2015/lib/data-fields/models/invalid-data-policy-token.js +11 -0
  129. package/esm2015/lib/data-fields/models/layout.js +2 -0
  130. package/esm2015/lib/data-fields/models/material-appearance.js +14 -0
  131. package/esm2015/lib/data-fields/models/properties.js +2 -0
  132. package/esm2015/lib/data-fields/models/template-appearance.js +15 -0
  133. package/esm2015/lib/data-fields/models/validation.js +2 -0
  134. package/esm2015/lib/data-fields/multichoice-field/abstract-multichoice-field.component.js +17 -0
  135. package/esm2015/lib/data-fields/multichoice-field/models/multichoice-field.js +41 -0
  136. package/esm2015/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.js +9 -0
  137. package/esm2015/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.js +9 -0
  138. package/esm2015/lib/data-fields/number-field/abstract-number-errors.component.js +45 -0
  139. package/esm2015/lib/data-fields/number-field/abstract-number-field.component.js +18 -0
  140. package/esm2015/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.js +48 -0
  141. package/esm2015/lib/data-fields/number-field/models/number-field.js +131 -0
  142. package/esm2015/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.js +7 -0
  143. package/esm2015/lib/data-fields/public-api.js +73 -0
  144. package/esm2015/lib/data-fields/task-ref-field/model/task-ref-field.js +7 -0
  145. package/esm2015/lib/data-fields/text-field/abstract-text-errors.component.js +35 -0
  146. package/esm2015/lib/data-fields/text-field/abstract-text-field.component.js +15 -0
  147. package/esm2015/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.js +39 -0
  148. package/esm2015/lib/data-fields/text-field/models/text-area-field.js +13 -0
  149. package/esm2015/lib/data-fields/text-field/models/text-field.js +85 -0
  150. package/esm2015/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.js +17 -0
  151. package/esm2015/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.js +30 -0
  152. package/esm2015/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.js +17 -0
  153. package/esm2015/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.js +40 -0
  154. package/esm2015/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.js +45 -0
  155. package/esm2015/lib/data-fields/time-instance-abstract-field/models/abstract-time-instance-field.js +105 -0
  156. package/esm2015/lib/data-fields/user-field/abstract-user-field.component.js +59 -0
  157. package/esm2015/lib/data-fields/user-field/models/user-field.js +14 -0
  158. package/esm2015/lib/data-fields/user-field/models/user-value.js +36 -0
  159. package/esm2015/lib/dialog/components/alert-dialog/alert-dialog.component.js +38 -0
  160. package/esm2015/lib/dialog/components/alert-dialog/alert-dialog.module.js +28 -0
  161. package/esm2015/lib/dialog/components/confirm-dialog/confirm-dialog.component.js +52 -0
  162. package/esm2015/lib/dialog/components/confirm-dialog/confirm-dialog.module.js +28 -0
  163. package/esm2015/lib/dialog/components/prompt-dialog/prompt-dialog.component.js +42 -0
  164. package/esm2015/lib/dialog/components/prompt-dialog/prompt-dialog.module.js +30 -0
  165. package/esm2015/lib/dialog/dialog.module.js +29 -0
  166. package/esm2015/lib/dialog/models/DialogData.js +2 -0
  167. package/esm2015/lib/dialog/models/DialogResult.js +2 -0
  168. package/esm2015/lib/dialog/models/abstract-dialog.js +21 -0
  169. package/esm2015/lib/dialog/public-api.js +9 -0
  170. package/esm2015/lib/dialog/services/dialog.service.js +82 -0
  171. package/esm2015/lib/event/model/event-constants.js +8 -0
  172. package/esm2015/lib/event/model/event-outcomes/case-outcomes/case-event-outcome.js +2 -0
  173. package/esm2015/lib/event/model/event-outcomes/case-outcomes/create-case-event-outcome.js +2 -0
  174. package/esm2015/lib/event/model/event-outcomes/case-outcomes/delete-case-event-outcome.js +2 -0
  175. package/esm2015/lib/event/model/event-outcomes/data-outcomes/get-data-event-outcome.js +2 -0
  176. package/esm2015/lib/event/model/event-outcomes/data-outcomes/get-data-groups-event-outcome.js +2 -0
  177. package/esm2015/lib/event/model/event-outcomes/data-outcomes/get-data-localised-event-outcome.js +2 -0
  178. package/esm2015/lib/event/model/event-outcomes/data-outcomes/set-data-event-outcome.js +2 -0
  179. package/esm2015/lib/event/model/event-outcomes/petrinet-outcomes/petri-net-event-outcome.js +2 -0
  180. package/esm2015/lib/event/model/event-outcomes/task-outcomes/assign-task-event-outcome.js +2 -0
  181. package/esm2015/lib/event/model/event-outcomes/task-outcomes/cancel-task-event-outcome.js +2 -0
  182. package/esm2015/lib/event/model/event-outcomes/task-outcomes/delegate-task-event-outcome.js +2 -0
  183. package/esm2015/lib/event/model/event-outcomes/task-outcomes/finish-task-event-outcome.js +2 -0
  184. package/esm2015/lib/event/model/event-outcomes/task-outcomes/task-event-outcome.js +2 -0
  185. package/esm2015/lib/event/public-api.js +19 -0
  186. package/esm2015/lib/event/services/event.service.js +57 -0
  187. package/esm2015/lib/event/services/interfaces/changed-fields-map.js +2 -0
  188. package/esm2015/lib/event-queue/model/queued-event.js +31 -0
  189. package/esm2015/lib/event-queue/public-api.js +5 -0
  190. package/esm2015/lib/event-queue/services/event-queue.service.js +63 -0
  191. package/esm2015/lib/filter/filter.repository.js +141 -0
  192. package/esm2015/lib/filter/models/case-search-request-body.js +2 -0
  193. package/esm2015/lib/filter/models/filter-type.js +11 -0
  194. package/esm2015/lib/filter/models/filter.js +56 -0
  195. package/esm2015/lib/filter/models/filters-filter-injection-token.js +9 -0
  196. package/esm2015/lib/filter/models/merge-operator.js +11 -0
  197. package/esm2015/lib/filter/models/merged-filter-params.js +2 -0
  198. package/esm2015/lib/filter/models/merged-filter.js +111 -0
  199. package/esm2015/lib/filter/models/simple-filter.js +91 -0
  200. package/esm2015/lib/filter/models/task-search-request-body.js +2 -0
  201. package/esm2015/lib/filter/models/user-filter-constants.js +39 -0
  202. package/esm2015/lib/filter/public-api.js +18 -0
  203. package/esm2015/lib/filter/user-filters.service.js +337 -0
  204. package/esm2015/lib/forms/email-submission/abstract-email-submission-form.component.js +31 -0
  205. package/esm2015/lib/forms/forgotten-password/abstract-forgotten-password.component.js +32 -0
  206. package/esm2015/lib/forms/has-form.js +2 -0
  207. package/esm2015/lib/forms/login/abstract-login-form.component.js +58 -0
  208. package/esm2015/lib/forms/models/abstract-registration.component.js +94 -0
  209. package/esm2015/lib/forms/models/password.validator.js +21 -0
  210. package/esm2015/lib/forms/public-api.js +7 -0
  211. package/esm2015/lib/forms/registration/abstract-registration-form.component.js +37 -0
  212. package/esm2015/lib/groups/public-api.js +3 -0
  213. package/esm2015/lib/groups/services/active-group.service.js +88 -0
  214. package/esm2015/lib/groups/services/next-group.service.js +104 -0
  215. package/esm2015/lib/header/abstract-header-service.js +394 -0
  216. package/esm2015/lib/header/abstract-header.component.js +159 -0
  217. package/esm2015/lib/header/case-header/case-header.service.js +81 -0
  218. package/esm2015/lib/header/case-header/case-menta-enum.js +9 -0
  219. package/esm2015/lib/header/header-modes/abstract-header-mode.component.js +12 -0
  220. package/esm2015/lib/header/header-modes/edit-mode/abstract-edit-mode.component.js +73 -0
  221. package/esm2015/lib/header/header-modes/loading-mode/abstract-loading-mode.component.js +13 -0
  222. package/esm2015/lib/header/header-modes/search-mode/abstract-search-mode.component.js +86 -0
  223. package/esm2015/lib/header/header-modes/sort-mode/abstract-sort-mode.component.js +15 -0
  224. package/esm2015/lib/header/header-state.js +43 -0
  225. package/esm2015/lib/header/models/default-headers-token.js +3 -0
  226. package/esm2015/lib/header/models/fields-group.js +2 -0
  227. package/esm2015/lib/header/models/header-column.js +22 -0
  228. package/esm2015/lib/header/models/header-mode.js +7 -0
  229. package/esm2015/lib/header/models/header-type.js +7 -0
  230. package/esm2015/lib/header/models/public-api.js +12 -0
  231. package/esm2015/lib/header/models/user-changes/column-header-change.js +2 -0
  232. package/esm2015/lib/header/models/user-changes/edit-change-description.js +2 -0
  233. package/esm2015/lib/header/models/user-changes/header-change-description.js +2 -0
  234. package/esm2015/lib/header/models/user-changes/header-change-type.js +20 -0
  235. package/esm2015/lib/header/models/user-changes/header-change.js +2 -0
  236. package/esm2015/lib/header/models/user-changes/mode-change-description.js +2 -0
  237. package/esm2015/lib/header/models/user-changes/search-change-description.js +2 -0
  238. package/esm2015/lib/header/models/user-changes/sort-change-description.js +2 -0
  239. package/esm2015/lib/header/public-api.js +21 -0
  240. package/esm2015/lib/header/services/overflow.service.js +94 -0
  241. package/esm2015/lib/header/task-header/task-header.service.js +66 -0
  242. package/esm2015/lib/header/task-header/task-meta-enum.js +11 -0
  243. package/esm2015/lib/header/workflow-header/workflow-header.service.js +48 -0
  244. package/esm2015/lib/header/workflow-header/workflow-meta-enum.js +10 -0
  245. package/esm2015/lib/legal/legal-notice/abstract-legal-notice.component.js +16 -0
  246. package/esm2015/lib/legal/public-api.js +2 -0
  247. package/esm2015/lib/logger/models/log-entry.js +61 -0
  248. package/esm2015/lib/logger/public-api.js +10 -0
  249. package/esm2015/lib/logger/publishers/console-log-publisher.js +32 -0
  250. package/esm2015/lib/logger/publishers/local-storage-log-publisher.js +40 -0
  251. package/esm2015/lib/logger/publishers/log-publisher.js +12 -0
  252. package/esm2015/lib/logger/services/log-level.js +10 -0
  253. package/esm2015/lib/logger/services/log-publisher.service.js +59 -0
  254. package/esm2015/lib/logger/services/logger.service.js +77 -0
  255. package/esm2015/lib/material/material.module.js +108 -0
  256. package/esm2015/lib/moment/public-api.js +2 -0
  257. package/esm2015/lib/moment/time-formats.js +26 -0
  258. package/esm2015/lib/navigation/group-navigation-component-resolver/abstract-group-navigation-component-resolver.component.js +36 -0
  259. package/esm2015/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.js +34 -0
  260. package/esm2015/lib/navigation/group-navigation-component-resolver/group-navigation-view-id-segment-factory.js +5 -0
  261. package/esm2015/lib/navigation/model/filter-case-injection-token.js +6 -0
  262. package/esm2015/lib/navigation/model/group-navigation-component-resolver-component-injection-token.js +6 -0
  263. package/esm2015/lib/navigation/model/group-navigation-constants.js +59 -0
  264. package/esm2015/lib/navigation/model/group-navigation-item-label.js +2 -0
  265. package/esm2015/lib/navigation/navigation-drawer/abstract-navigation-drawer.component.js +131 -0
  266. package/esm2015/lib/navigation/navigation-drawer/abstract-navigation-resizable-drawer.component.js +14 -0
  267. package/esm2015/lib/navigation/navigation-rail/abstract-navigation-rail.component.js +32 -0
  268. package/esm2015/lib/navigation/navigation-tree/abstract-navigation-tree.component.js +371 -0
  269. package/esm2015/lib/navigation/public-api.js +19 -0
  270. package/esm2015/lib/navigation/quick-panel/components/abstract-quick-panel.component.js +25 -0
  271. package/esm2015/lib/navigation/quick-panel/components/internal-link/abstract-internal-link.component.js +12 -0
  272. package/esm2015/lib/navigation/quick-panel/components/language-selector/abstract-language-selector.component.js +52 -0
  273. package/esm2015/lib/navigation/quick-panel/components/logout-shortcut/abstract-logout-shortcut.component.js +21 -0
  274. package/esm2015/lib/navigation/quick-panel/components/paper-view.service.js +38 -0
  275. package/esm2015/lib/navigation/quick-panel/public-api.js +8 -0
  276. package/esm2015/lib/navigation/utility/filter-extraction.service.js +87 -0
  277. package/esm2015/lib/navigation/utility/navigation-item-task-utility-methods.js +78 -0
  278. package/esm2015/lib/panel/abstract/featured-value.js +2 -0
  279. package/esm2015/lib/panel/abstract/panel-with-header-binding.js +47 -0
  280. package/esm2015/lib/panel/abstract/panel-with-immediate-data.js +62 -0
  281. package/esm2015/lib/panel/abstract/tabbed-virtual-scroll.component.js +28 -0
  282. package/esm2015/lib/panel/abstract-panel.component.js +44 -0
  283. package/esm2015/lib/panel/case-panel/abstract-case-panel.component.js +88 -0
  284. package/esm2015/lib/panel/immediate/abstract-immediate-filter-text-content.component.js +38 -0
  285. package/esm2015/lib/panel/immediate/abstract-immediate-filter-text.component.js +21 -0
  286. package/esm2015/lib/panel/immediate/model/filter-text-injection-token.js +6 -0
  287. package/esm2015/lib/panel/public-api.js +15 -0
  288. package/esm2015/lib/panel/task-panel/abstract-task-panel.component.js +281 -0
  289. package/esm2015/lib/panel/task-panel/models/disable-functions.js +3 -0
  290. package/esm2015/lib/panel/task-panel-list/abstract-task-list.component.js +89 -0
  291. package/esm2015/lib/panel/task-panel-list/task-panel-data/task-panel-data.js +2 -0
  292. package/esm2015/lib/panel/workflow-panel/abstract-workflow-panel.component.js +103 -0
  293. package/esm2015/lib/process/net.js +101 -0
  294. package/esm2015/lib/process/netRole.js +2 -0
  295. package/esm2015/lib/process/permissions.js +12 -0
  296. package/esm2015/lib/process/petri-net-reference-with-permissions.js +2 -0
  297. package/esm2015/lib/process/process.service.js +301 -0
  298. package/esm2015/lib/process/public-api.js +8 -0
  299. package/esm2015/lib/process/public-process.service.js +29 -0
  300. package/esm2015/lib/process/rolesAndPermissions.js +2 -0
  301. package/esm2015/lib/process/transaction.js +2 -0
  302. package/esm2015/lib/process/transition.js +2 -0
  303. package/esm2015/lib/public/factories/get-net-and-create-case.js +22 -0
  304. package/esm2015/lib/public/factories/public-factory-resolver.js +13 -0
  305. package/esm2015/lib/public/factories/public-search-factory.js +17 -0
  306. package/esm2015/lib/public/public-api.js +5 -0
  307. package/esm2015/lib/public/services/public-url-resolver.service.js +20 -0
  308. package/esm2015/lib/resources/abstract-endpoint/abstract-resource.service.js +79 -0
  309. package/esm2015/lib/resources/abstract-endpoint/count-service.js +2 -0
  310. package/esm2015/lib/resources/engine-endpoint/case-resource.service.js +133 -0
  311. package/esm2015/lib/resources/engine-endpoint/dashboard-resource.service.js +33 -0
  312. package/esm2015/lib/resources/engine-endpoint/petri-net-resource.service.js +161 -0
  313. package/esm2015/lib/resources/engine-endpoint/public/public-case-resource.service.js +46 -0
  314. package/esm2015/lib/resources/engine-endpoint/public/public-petri-net-resource.service.js +108 -0
  315. package/esm2015/lib/resources/engine-endpoint/public/public-task-resource.service.js +224 -0
  316. package/esm2015/lib/resources/engine-endpoint/task-resource.service.js +306 -0
  317. package/esm2015/lib/resources/engine-endpoint/user-resource.service.js +191 -0
  318. package/esm2015/lib/resources/interface/assigned-user-policy.js +2 -0
  319. package/esm2015/lib/resources/interface/author.js +2 -0
  320. package/esm2015/lib/resources/interface/authority.js +2 -0
  321. package/esm2015/lib/resources/interface/case-get-request-body.js +2 -0
  322. package/esm2015/lib/resources/interface/case.js +2 -0
  323. package/esm2015/lib/resources/interface/changed-field-container.js +2 -0
  324. package/esm2015/lib/resources/interface/count.js +2 -0
  325. package/esm2015/lib/resources/interface/create-case-request-body.js +2 -0
  326. package/esm2015/lib/resources/interface/data-group-layout.js +59 -0
  327. package/esm2015/lib/resources/interface/data-groups.js +19 -0
  328. package/esm2015/lib/resources/interface/event-outcome.js +2 -0
  329. package/esm2015/lib/resources/interface/field-alignment.js +10 -0
  330. package/esm2015/lib/resources/interface/fields.js +2 -0
  331. package/esm2015/lib/resources/interface/file-resource.js +2 -0
  332. package/esm2015/lib/resources/interface/group.js +2 -0
  333. package/esm2015/lib/resources/interface/immediate-data.js +2 -0
  334. package/esm2015/lib/resources/interface/link.js +2 -0
  335. package/esm2015/lib/resources/interface/message-resource.js +2 -0
  336. package/esm2015/lib/resources/interface/page.js +2 -0
  337. package/esm2015/lib/resources/interface/pagination.js +2 -0
  338. package/esm2015/lib/resources/interface/petri-net-object-id.js +2 -0
  339. package/esm2015/lib/resources/interface/petri-net-reference.js +2 -0
  340. package/esm2015/lib/resources/interface/petri-net-request-body.js +2 -0
  341. package/esm2015/lib/resources/interface/petri-net.js +2 -0
  342. package/esm2015/lib/resources/interface/preferences.js +2 -0
  343. package/esm2015/lib/resources/interface/process-role.js +2 -0
  344. package/esm2015/lib/resources/interface/response-data.js +2 -0
  345. package/esm2015/lib/resources/interface/task-layout.js +2 -0
  346. package/esm2015/lib/resources/interface/task-reference.js +2 -0
  347. package/esm2015/lib/resources/interface/task-set-data-request-body.js +2 -0
  348. package/esm2015/lib/resources/interface/task.js +2 -0
  349. package/esm2015/lib/resources/interface/user-process-role.js +2 -0
  350. package/esm2015/lib/resources/interface/user-resource-small.js +2 -0
  351. package/esm2015/lib/resources/interface/user-resource.js +2 -0
  352. package/esm2015/lib/resources/public-api.js +46 -0
  353. package/esm2015/lib/resources/resource-provider.service.js +168 -0
  354. package/esm2015/lib/resources/types/nae-date-type.js +5 -0
  355. package/esm2015/lib/routing/dynamic-navigation-route-provider/dynamic-navigation-route-provider.service.js +36 -0
  356. package/esm2015/lib/routing/public-api.js +7 -0
  357. package/esm2015/lib/routing/redirect-service/redirect.service.js +103 -0
  358. package/esm2015/lib/routing/routing-builder/routing-builder.service.js +190 -0
  359. package/esm2015/lib/routing/view-service/model/view-entry.js +2 -0
  360. package/esm2015/lib/routing/view-service/view.service.js +35 -0
  361. package/esm2015/lib/search/advanced-search-component/abstract-advanced-search.component.js +49 -0
  362. package/esm2015/lib/search/advanced-search-component-initialization-service/advanced-search-component-initialization.service.js +34 -0
  363. package/esm2015/lib/search/category-factory/category-factory.js +94 -0
  364. package/esm2015/lib/search/category-factory/category-resolver.service.js +149 -0
  365. package/esm2015/lib/search/category-factory/category-serialisation-pair.js +2 -0
  366. package/esm2015/lib/search/category-factory/default-categories-factories.js +67 -0
  367. package/esm2015/lib/search/category-factory/default-search-categories.module.js +50 -0
  368. package/esm2015/lib/search/category-factory/optional-dependencies.js +2 -0
  369. package/esm2015/lib/search/category-factory/search-categories-injection-token.js +24 -0
  370. package/esm2015/lib/search/fulltext-search-component/abstract-fulltext-search.component.js +17 -0
  371. package/esm2015/lib/search/header-search-service/header-search.service.js +226 -0
  372. package/esm2015/lib/search/models/base-filter-injection-token.js +6 -0
  373. package/esm2015/lib/search/models/base-filter.js +2 -0
  374. package/esm2015/lib/search/models/boolean-operator.js +10 -0
  375. package/esm2015/lib/search/models/category/autocomplete-category.js +129 -0
  376. package/esm2015/lib/search/models/category/autocomplete-options.js +2 -0
  377. package/esm2015/lib/search/models/category/case/case-author.js +21 -0
  378. package/esm2015/lib/search/models/category/case/case-creation-date-time.js +43 -0
  379. package/esm2015/lib/search/models/category/case/case-creation-date.js +43 -0
  380. package/esm2015/lib/search/models/category/case/case-dataset.js +397 -0
  381. package/esm2015/lib/search/models/category/case/case-net-attribute-autocomplete-category.js +23 -0
  382. package/esm2015/lib/search/models/category/case/case-process.js +73 -0
  383. package/esm2015/lib/search/models/category/case/case-role.js +24 -0
  384. package/esm2015/lib/search/models/category/case/case-search.enum.js +15 -0
  385. package/esm2015/lib/search/models/category/case/case-simple-dataset.js +135 -0
  386. package/esm2015/lib/search/models/category/case/case-string-id.js +27 -0
  387. package/esm2015/lib/search/models/category/case/case-task.js +24 -0
  388. package/esm2015/lib/search/models/category/case/case-title.js +29 -0
  389. package/esm2015/lib/search/models/category/case/case-visual-id.js +23 -0
  390. package/esm2015/lib/search/models/category/categories.js +24 -0
  391. package/esm2015/lib/search/models/category/category.js +524 -0
  392. package/esm2015/lib/search/models/category/name-id-pair.js +2 -0
  393. package/esm2015/lib/search/models/category/net-attribute-autocomplete-category.js +59 -0
  394. package/esm2015/lib/search/models/category/net-attribute-pair.js +2 -0
  395. package/esm2015/lib/search/models/category/no-configuration-autocomplete-category.js +36 -0
  396. package/esm2015/lib/search/models/category/no-configuration-category.js +39 -0
  397. package/esm2015/lib/search/models/category/no-configuration-user-autocomplete-category.js +28 -0
  398. package/esm2015/lib/search/models/category/search-autocomplete-option.js +2 -0
  399. package/esm2015/lib/search/models/category/search-input-type.js +14 -0
  400. package/esm2015/lib/search/models/category/task/task-assignee.js +21 -0
  401. package/esm2015/lib/search/models/category/task/task-net-attribute-autocomplete-category.js +23 -0
  402. package/esm2015/lib/search/models/category/task/task-process.js +50 -0
  403. package/esm2015/lib/search/models/category/task/task-role.js +23 -0
  404. package/esm2015/lib/search/models/category/task/task-task.js +23 -0
  405. package/esm2015/lib/search/models/category/user-autocomplete.js +59 -0
  406. package/esm2015/lib/search/models/component-configuration/search-component-configuration-injection-token.js +8 -0
  407. package/esm2015/lib/search/models/component-configuration/search-component-configuration.js +2 -0
  408. package/esm2015/lib/search/models/component-configuration/search-mode.js +9 -0
  409. package/esm2015/lib/search/models/configuration-input.js +52 -0
  410. package/esm2015/lib/search/models/datafield-map-key.js +69 -0
  411. package/esm2015/lib/search/models/escape-result.js +2 -0
  412. package/esm2015/lib/search/models/operator/equals-date-time.js +26 -0
  413. package/esm2015/lib/search/models/operator/equals-date.js +26 -0
  414. package/esm2015/lib/search/models/operator/equals.js +21 -0
  415. package/esm2015/lib/search/models/operator/in-range-date-time.js +43 -0
  416. package/esm2015/lib/search/models/operator/in-range-date.js +42 -0
  417. package/esm2015/lib/search/models/operator/in-range.js +22 -0
  418. package/esm2015/lib/search/models/operator/is-null.js +69 -0
  419. package/esm2015/lib/search/models/operator/less-than-date-time.js +27 -0
  420. package/esm2015/lib/search/models/operator/less-than-date.js +27 -0
  421. package/esm2015/lib/search/models/operator/less-than-equal-date-time.js +27 -0
  422. package/esm2015/lib/search/models/operator/less-than-equal-date.js +26 -0
  423. package/esm2015/lib/search/models/operator/less-than-equal.js +17 -0
  424. package/esm2015/lib/search/models/operator/less-than.js +17 -0
  425. package/esm2015/lib/search/models/operator/like.js +29 -0
  426. package/esm2015/lib/search/models/operator/more-than-date-time.js +29 -0
  427. package/esm2015/lib/search/models/operator/more-than-date.js +29 -0
  428. package/esm2015/lib/search/models/operator/more-than-equal-date-time.js +27 -0
  429. package/esm2015/lib/search/models/operator/more-than-equal-date.js +27 -0
  430. package/esm2015/lib/search/models/operator/more-than-equal.js +17 -0
  431. package/esm2015/lib/search/models/operator/more-than.js +17 -0
  432. package/esm2015/lib/search/models/operator/not-equals-date-time.js +24 -0
  433. package/esm2015/lib/search/models/operator/not-equals-date.js +27 -0
  434. package/esm2015/lib/search/models/operator/not-equals.js +30 -0
  435. package/esm2015/lib/search/models/operator/operator.js +124 -0
  436. package/esm2015/lib/search/models/operator/operators.js +31 -0
  437. package/esm2015/lib/search/models/operator/substring.js +27 -0
  438. package/esm2015/lib/search/models/operator-template-part-type.js +15 -0
  439. package/esm2015/lib/search/models/operator-template-part.js +31 -0
  440. package/esm2015/lib/search/models/persistance/filter-metadata-allowed-nets.js +2 -0
  441. package/esm2015/lib/search/models/persistance/filter-metadata.js +2 -0
  442. package/esm2015/lib/search/models/persistance/filter-text-segment.js +2 -0
  443. package/esm2015/lib/search/models/persistance/generator-metadata.js +2 -0
  444. package/esm2015/lib/search/models/persistance/saved-filter-metadata.js +2 -0
  445. package/esm2015/lib/search/models/predicate/clause-predicate.js +78 -0
  446. package/esm2015/lib/search/models/predicate/editable-clause-predicate-with-generators.js +47 -0
  447. package/esm2015/lib/search/models/predicate/editable-clause-predicate.js +116 -0
  448. package/esm2015/lib/search/models/predicate/editable-elementary-predicate.js +20 -0
  449. package/esm2015/lib/search/models/predicate/editable-predicate-with-generator.js +37 -0
  450. package/esm2015/lib/search/models/predicate/editable-predicate.js +22 -0
  451. package/esm2015/lib/search/models/predicate/elementary-predicate.js +14 -0
  452. package/esm2015/lib/search/models/predicate/predicate-with-generator.js +95 -0
  453. package/esm2015/lib/search/models/predicate/predicate.js +90 -0
  454. package/esm2015/lib/search/models/predicate-removal-event.js +2 -0
  455. package/esm2015/lib/search/models/query/query.js +72 -0
  456. package/esm2015/lib/search/models/search-index.js +76 -0
  457. package/esm2015/lib/search/models/wrap-result.js +2 -0
  458. package/esm2015/lib/search/operator-service/operator-resolver.service.js +109 -0
  459. package/esm2015/lib/search/operator-service/operator.service.js +39 -0
  460. package/esm2015/lib/search/public-api.js +107 -0
  461. package/esm2015/lib/search/search-clause-component/abstract-search-clause.component.js +52 -0
  462. package/esm2015/lib/search/search-component/abstract-search.component.js +171 -0
  463. package/esm2015/lib/search/search-configuration-input-component/abstract-search-configuration-input.component.js +75 -0
  464. package/esm2015/lib/search/search-keyword-resolver-service/search-index-resolver.service.js +36 -0
  465. package/esm2015/lib/search/search-operand-input-component/abstract-search-operand-input.component.js +97 -0
  466. package/esm2015/lib/search/search-predicate-component/abstract-search-predicate.component.js +144 -0
  467. package/esm2015/lib/search/search-service/search.service.js +306 -0
  468. package/esm2015/lib/side-menu/content-components/filter-selector/abstract-filter-selector.component.js +163 -0
  469. package/esm2015/lib/side-menu/content-components/filter-selector/filter-selector-list-item/abstract-filter-selector-list-item.component.js +22 -0
  470. package/esm2015/lib/side-menu/content-components/filter-selector/model/filter-selector-injection-data.js +2 -0
  471. package/esm2015/lib/side-menu/content-components/filter-selector/model/filtered-array.js +32 -0
  472. package/esm2015/lib/side-menu/content-components/import-net/abstract-import-net.component.js +123 -0
  473. package/esm2015/lib/side-menu/content-components/injection-tokens.js +8 -0
  474. package/esm2015/lib/side-menu/content-components/load-filter/abstract-load-filter.component.js +42 -0
  475. package/esm2015/lib/side-menu/content-components/load-filter/model/load-filter-injection-data.js +2 -0
  476. package/esm2015/lib/side-menu/content-components/new-case/abstract-new-case.component.js +230 -0
  477. package/esm2015/lib/side-menu/content-components/new-case/model/new-case-injection-data.js +2 -0
  478. package/esm2015/lib/side-menu/content-components/option-selector/abstract-option-selector.component.js +28 -0
  479. package/esm2015/lib/side-menu/content-components/option-selector/model/option-selector-injection-data.js +2 -0
  480. package/esm2015/lib/side-menu/content-components/public-api.js +20 -0
  481. package/esm2015/lib/side-menu/content-components/save-filter/abstract-save-filter.component.js +38 -0
  482. package/esm2015/lib/side-menu/content-components/save-filter/model/save-filter-injection-data.js +2 -0
  483. package/esm2015/lib/side-menu/content-components/user-assign/abstract-user-assign.component.js +60 -0
  484. package/esm2015/lib/side-menu/content-components/user-assign/model/user-list-injected-data.js +2 -0
  485. package/esm2015/lib/side-menu/content-components/user-assign/user-assign-list/abstract-user-assign-list.component.js +102 -0
  486. package/esm2015/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/abstract-user-assign-item.component.js +13 -0
  487. package/esm2015/lib/side-menu/models/portal-wrapper.js +13 -0
  488. package/esm2015/lib/side-menu/models/side-menu-control.js +36 -0
  489. package/esm2015/lib/side-menu/models/side-menu-event.js +2 -0
  490. package/esm2015/lib/side-menu/models/side-menu-injection-data.js +2 -0
  491. package/esm2015/lib/side-menu/models/side-menu-ref.js +16 -0
  492. package/esm2015/lib/side-menu/models/side-menu-size.js +7 -0
  493. package/esm2015/lib/side-menu/net-version-visible-injection-token.js +4 -0
  494. package/esm2015/lib/side-menu/public-api.js +15 -0
  495. package/esm2015/lib/side-menu/services/side-menu.service.js +86 -0
  496. package/esm2015/lib/side-menu/side-menu-container/abstract-side-menu-container.component.js +34 -0
  497. package/esm2015/lib/side-menu/side-menu-injection-token.js +3 -0
  498. package/esm2015/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.js +26 -0
  499. package/esm2015/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.js +26 -0
  500. package/esm2015/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.js +26 -0
  501. package/esm2015/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.js +26 -0
  502. package/esm2015/lib/snack-bar/models/abstract-snack-bar.js +18 -0
  503. package/esm2015/lib/snack-bar/models/injection-token-snackbar.js +4 -0
  504. package/esm2015/lib/snack-bar/models/snack-bar-enums.js +12 -0
  505. package/esm2015/lib/snack-bar/models/snack-bar-injection-data.js +2 -0
  506. package/esm2015/lib/snack-bar/public-api.js +15 -0
  507. package/esm2015/lib/snack-bar/services/snack-bar.service.js +92 -0
  508. package/esm2015/lib/snack-bar/snack-bar.module.js +33 -0
  509. package/esm2015/lib/tabs/classes/opened-tab.js +48 -0
  510. package/esm2015/lib/tabs/classes/tab-view.js +262 -0
  511. package/esm2015/lib/tabs/interfaces.js +2 -0
  512. package/esm2015/lib/tabs/public-api.js +6 -0
  513. package/esm2015/lib/tabs/tab-creation-detector/abstract-tab-creation-detector.component.js +17 -0
  514. package/esm2015/lib/tabs/tab-data-injection-token/tab-data-injection-token.js +8 -0
  515. package/esm2015/lib/tabs/tab-view/abstract-tab-view.component.js +67 -0
  516. package/esm2015/lib/task/interfaces/task-operations.js +2 -0
  517. package/esm2015/lib/task/models/null-task-operations.js +26 -0
  518. package/esm2015/lib/task/models/subject-task-operations.js +58 -0
  519. package/esm2015/lib/task/models/task-operations-injection-token.js +3 -0
  520. package/esm2015/lib/task/models/task-set-data-request-context.js +2 -0
  521. package/esm2015/lib/task/public-api.js +19 -0
  522. package/esm2015/lib/task/services/assign-policy.service.js +175 -0
  523. package/esm2015/lib/task/services/assign-task.service.js +191 -0
  524. package/esm2015/lib/task/services/cancel-task.service.js +189 -0
  525. package/esm2015/lib/task/services/data-focus-policy.service.js +36 -0
  526. package/esm2015/lib/task/services/delegate-task.service.js +185 -0
  527. package/esm2015/lib/task/services/finish-policy.service.js +79 -0
  528. package/esm2015/lib/task/services/finish-task.service.js +207 -0
  529. package/esm2015/lib/task/services/selected-case.service.js +38 -0
  530. package/esm2015/lib/task/services/task-data.service.js +538 -0
  531. package/esm2015/lib/task/services/task-handling-service.js +57 -0
  532. package/esm2015/lib/task/services/task-request-state.service.js +113 -0
  533. package/esm2015/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.js +39 -0
  534. package/esm2015/lib/task-content/model/async-rendering-configuration-injection-token.js +8 -0
  535. package/esm2015/lib/task-content/model/async-rendering-configuration.js +2 -0
  536. package/esm2015/lib/task-content/model/datafield-grid-layout-element.js +2 -0
  537. package/esm2015/lib/task-content/model/field-type-resource.js +23 -0
  538. package/esm2015/lib/task-content/model/policy.js +31 -0
  539. package/esm2015/lib/task-content/model/resource-interface.js +2 -0
  540. package/esm2015/lib/task-content/model/split-data-group.js +2 -0
  541. package/esm2015/lib/task-content/model/subgrid.js +235 -0
  542. package/esm2015/lib/task-content/model/task-content-element-type.js +19 -0
  543. package/esm2015/lib/task-content/model/task-event-notification.js +15 -0
  544. package/esm2015/lib/task-content/model/task-event.js +10 -0
  545. package/esm2015/lib/task-content/public-api.js +21 -0
  546. package/esm2015/lib/task-content/services/field-converter.service.js +348 -0
  547. package/esm2015/lib/task-content/services/single-task-content.service.js +72 -0
  548. package/esm2015/lib/task-content/services/task-content.service.js +266 -0
  549. package/esm2015/lib/task-content/services/task-event.service.js +45 -0
  550. package/esm2015/lib/task-content/services/unlimited-task-content.service.js +64 -0
  551. package/esm2015/lib/task-content/task-content/abstract-task-content.component.js +656 -0
  552. package/esm2015/lib/toolbar/abstract-toolbar.component.js +22 -0
  553. package/esm2015/lib/toolbar/public-api.js +2 -0
  554. package/esm2015/lib/translate/language.service.js +85 -0
  555. package/esm2015/lib/translate/public-api.js +3 -0
  556. package/esm2015/lib/translate/translate-interceptor.js +23 -0
  557. package/esm2015/lib/translate/translate-lib.module.js +38 -0
  558. package/esm2015/lib/user/components/user-card/abstract-user-card.component.js +44 -0
  559. package/esm2015/lib/user/models/iuser.js +2 -0
  560. package/esm2015/lib/user/models/public-api.js +6 -0
  561. package/esm2015/lib/user/models/user.js +37 -0
  562. package/esm2015/lib/user/models/view-id-injection-tokens.js +4 -0
  563. package/esm2015/lib/user/profile/abstract-profile.component.js +29 -0
  564. package/esm2015/lib/user/public-api.js +12 -0
  565. package/esm2015/lib/user/services/user-comparator.service.js +26 -0
  566. package/esm2015/lib/user/services/user-list.service.js +186 -0
  567. package/esm2015/lib/user/services/user-preference.service.js +152 -0
  568. package/esm2015/lib/user/services/user.service.js +203 -0
  569. package/esm2015/lib/user/services/view-id.service.js +30 -0
  570. package/esm2015/lib/utility/array-to-observable.js +10 -0
  571. package/esm2015/lib/utility/call-chain/after-action.js +12 -0
  572. package/esm2015/lib/utility/call-chain/call-chain.service.js +34 -0
  573. package/esm2015/lib/utility/clear-time-information.js +11 -0
  574. package/esm2015/lib/utility/destroy-subscription.js +10 -0
  575. package/esm2015/lib/utility/get-field.js +48 -0
  576. package/esm2015/lib/utility/get-immediate-data.js +9 -0
  577. package/esm2015/lib/utility/grid-layout/grid-layout-helper.js +76 -0
  578. package/esm2015/lib/utility/grid-layout/model/grid-element-with-item.js +2 -0
  579. package/esm2015/lib/utility/grid-layout/model/grid-element.js +2 -0
  580. package/esm2015/lib/utility/grid-layout/model/grid-filler.js +50 -0
  581. package/esm2015/lib/utility/incrementing-counter.js +21 -0
  582. package/esm2015/lib/utility/loading-emitter.js +19 -0
  583. package/esm2015/lib/utility/loading-with-filter-emitter.js +30 -0
  584. package/esm2015/lib/utility/navigation-item-task-filter-factory.js +11 -0
  585. package/esm2015/lib/utility/navigation-item-task-search-categories-factory.js +35 -0
  586. package/esm2015/lib/utility/of-void.js +12 -0
  587. package/esm2015/lib/utility/pagination/load-all-pages.js +46 -0
  588. package/esm2015/lib/utility/pagination/page-has-content.js +8 -0
  589. package/esm2015/lib/utility/process-message-response.js +17 -0
  590. package/esm2015/lib/utility/public-api.js +47 -0
  591. package/esm2015/lib/utility/refresh-tree.js +9 -0
  592. package/esm2015/lib/utility/result-with-after-actions.js +27 -0
  593. package/esm2015/lib/utility/service/case-list-font-color.service.js +45 -0
  594. package/esm2015/lib/utility/service/spinner-overlay.service.js +48 -0
  595. package/esm2015/lib/utility/stop-propagation.js +5 -0
  596. package/esm2015/lib/utility/tests/mocks/mock-authentication-method-service.js +12 -0
  597. package/esm2015/lib/utility/tests/mocks/mock-authentication.service.js +18 -0
  598. package/esm2015/lib/utility/tests/mocks/mock-endpoint.js +44 -0
  599. package/esm2015/lib/utility/tests/mocks/mock-sign-up.service.js +29 -0
  600. package/esm2015/lib/utility/tests/mocks/mock-user-autocomplete-value.js +14 -0
  601. package/esm2015/lib/utility/tests/mocks/mock-user-preference.service.js +42 -0
  602. package/esm2015/lib/utility/tests/mocks/mock-user-resource.service.js +48 -0
  603. package/esm2015/lib/utility/tests/search-category-mock-dependencies.js +19 -0
  604. package/esm2015/lib/utility/tests/test-config.js +424 -0
  605. package/esm2015/lib/utility/tests/test-factory-methods.js +21 -0
  606. package/esm2015/lib/utility/tests/test-mock-dependencies.module.js +31 -0
  607. package/esm2015/lib/utility/tests/test-view-service.js +24 -0
  608. package/esm2015/lib/utility/tests/utility/configure-category.js +14 -0
  609. package/esm2015/lib/utility/tests/utility/create-mock-case-outcome.js +16 -0
  610. package/esm2015/lib/utility/tests/utility/create-mock-case.js +36 -0
  611. package/esm2015/lib/utility/tests/utility/create-mock-datagroup.js +35 -0
  612. package/esm2015/lib/utility/tests/utility/create-mock-field.js +41 -0
  613. package/esm2015/lib/utility/tests/utility/create-mock-get-data-outcome.js +15 -0
  614. package/esm2015/lib/utility/tests/utility/create-mock-immediate-data.js +15 -0
  615. package/esm2015/lib/utility/tests/utility/create-mock-net.js +27 -0
  616. package/esm2015/lib/utility/tests/utility/create-mock-page.js +23 -0
  617. package/esm2015/lib/utility/tests/utility/create-mock-petri-net-outcome.js +14 -0
  618. package/esm2015/lib/utility/tests/utility/create-mock-set-data-outcome.js +19 -0
  619. package/esm2015/lib/utility/tests/utility/create-mock-task-outcome.js +18 -0
  620. package/esm2015/lib/utility/tests/utility/create-mock-task.js +34 -0
  621. package/esm2015/lib/view/abstract/page-load-request-context.js +25 -0
  622. package/esm2015/lib/view/abstract/sortable-view.js +62 -0
  623. package/esm2015/lib/view/abstract/view-with-headers.js +20 -0
  624. package/esm2015/lib/view/case-view/abstract-case-view.js +40 -0
  625. package/esm2015/lib/view/case-view/components/case-list/abstract-case-list.component.js +82 -0
  626. package/esm2015/lib/view/case-view/models/case-page-load-request-result.js +2 -0
  627. package/esm2015/lib/view/case-view/models/case-view-params.js +2 -0
  628. package/esm2015/lib/view/case-view/models/new-case-configuration-injection-token.js +7 -0
  629. package/esm2015/lib/view/case-view/models/new-case-configuration.js +2 -0
  630. package/esm2015/lib/view/case-view/service/case-view-service.js +273 -0
  631. package/esm2015/lib/view/case-view/tabbed-case-view.js +66 -0
  632. package/esm2015/lib/view/public-api.js +42 -0
  633. package/esm2015/lib/view/task-view/abstract-task-view.js +13 -0
  634. package/esm2015/lib/view/task-view/models/injected-tabbed-task-view-data.js +2 -0
  635. package/esm2015/lib/view/task-view/models/injection-token-task-endpoint.js +6 -0
  636. package/esm2015/lib/view/task-view/models/task-endpoint.js +9 -0
  637. package/esm2015/lib/view/task-view/models/task-page-load-request-result.js +2 -0
  638. package/esm2015/lib/view/task-view/models/task-view-configuration-injection-token.js +20 -0
  639. package/esm2015/lib/view/task-view/models/task-view-configuration.js +2 -0
  640. package/esm2015/lib/view/task-view/models/task-view-params.js +2 -0
  641. package/esm2015/lib/view/task-view/service/task-view.service.js +292 -0
  642. package/esm2015/lib/view/task-view/tabbed-task-view.js +22 -0
  643. package/esm2015/lib/view/tree-case-view/model/tree-petriflow-identifiers.js +43 -0
  644. package/esm2015/lib/view/tree-case-view/tree-case-view.service.js +17 -0
  645. package/esm2015/lib/view/tree-case-view/tree-component/abstract-tree.component.js +141 -0
  646. package/esm2015/lib/view/tree-case-view/tree-component/add-child-node/abstract-add-child-node.component.js +14 -0
  647. package/esm2015/lib/view/tree-case-view/tree-component/case-tree.service.js +843 -0
  648. package/esm2015/lib/view/tree-case-view/tree-component/model/case-tree-node.js +104 -0
  649. package/esm2015/lib/view/tree-case-view/tree-component/model/case-tree-path.js +2 -0
  650. package/esm2015/lib/view/tree-case-view/tree-component/model/expansion-tree.js +2 -0
  651. package/esm2015/lib/view/tree-case-view/tree-component/remove-node/abstract-remove-node.component.js +14 -0
  652. package/esm2015/lib/view/tree-case-view/tree-task-content/abstract-tree-task-content.component.js +55 -0
  653. package/esm2015/lib/view/tree-case-view/tree-task-content/tree-task-content.service.js +288 -0
  654. package/esm2015/lib/view/workflow-view/abstract-workflow-view.component.js +68 -0
  655. package/esm2015/lib/view/workflow-view/models/injection-token-workflow-service.js +10 -0
  656. package/esm2015/lib/view/workflow-view/workflow-view.service.js +211 -0
  657. package/esm2015/netgrif-components-core.js +20 -0
  658. package/esm2015/public-api.js +45 -0
  659. package/esm5/assets/i18n/de.json +419 -0
  660. package/esm5/assets/i18n/en.json +419 -0
  661. package/esm5/assets/i18n/sk.json +419 -0
  662. package/esm5/commons/angular-cli-devkit-core-strings.js +157 -0
  663. package/esm5/commons/import-to-add.js +9 -0
  664. package/esm5/commons/schema.js +7 -0
  665. package/esm5/commons/view-class-info.js +57 -0
  666. package/esm5/lib/admin/public-api.js +9 -0
  667. package/esm5/lib/admin/role-assignment/abstract-role-assignment.js +84 -0
  668. package/esm5/lib/admin/role-assignment/services/ProcessList.js +179 -0
  669. package/esm5/lib/admin/role-assignment/services/role-assignment.service.js +50 -0
  670. package/esm5/lib/admin/user-invite/abstract-user-invite.component.js +84 -0
  671. package/esm5/lib/admin/user-invite/services/organization-list.service.js +82 -0
  672. package/esm5/lib/admin/user-invite/services/user-invite.service.js +37 -0
  673. package/esm5/lib/allowed-nets/public-api.js +4 -0
  674. package/esm5/lib/allowed-nets/services/allowed-nets.service.js +94 -0
  675. package/esm5/lib/allowed-nets/services/base-allowed-nets.service.js +65 -0
  676. package/esm5/lib/allowed-nets/services/factory/allowed-nets-service-factory.js +132 -0
  677. package/esm5/lib/authentication/anonymous/anonymous.service.js +73 -0
  678. package/esm5/lib/authentication/authentication.factory.js +16 -0
  679. package/esm5/lib/authentication/authentication.module.js +36 -0
  680. package/esm5/lib/authentication/components/abstract-authentication-overlay.js +53 -0
  681. package/esm5/lib/authentication/models/credentials.js +2 -0
  682. package/esm5/lib/authentication/models/public-api.js +5 -0
  683. package/esm5/lib/authentication/models/transformer.js +2 -0
  684. package/esm5/lib/authentication/models/user.transformer.js +23 -0
  685. package/esm5/lib/authentication/public-api.js +14 -0
  686. package/esm5/lib/authentication/services/anonymous-authentication-interceptor.js +47 -0
  687. package/esm5/lib/authentication/services/authentication/authentication.service.js +84 -0
  688. package/esm5/lib/authentication/services/authentication-interceptor.js +55 -0
  689. package/esm5/lib/authentication/services/authentication-method.service.js +7 -0
  690. package/esm5/lib/authentication/services/guard/authentication-guard.service.js +41 -0
  691. package/esm5/lib/authentication/services/methods/basic-authentication/basic-authentication.service.js +54 -0
  692. package/esm5/lib/authentication/services/methods/null-authentication/null-authentication.service.js +23 -0
  693. package/esm5/lib/authentication/services/public-api.js +7 -0
  694. package/esm5/lib/authentication/session/null-storage.js +19 -0
  695. package/esm5/lib/authentication/session/public-api.js +3 -0
  696. package/esm5/lib/authentication/session/services/session.service.js +193 -0
  697. package/esm5/lib/authentication/sign-up/models/user-invitation-request.js +2 -0
  698. package/esm5/lib/authentication/sign-up/models/user-registration-request.js +2 -0
  699. package/esm5/lib/authentication/sign-up/public-api.js +8 -0
  700. package/esm5/lib/authentication/sign-up/services/sign-up.service.js +107 -0
  701. package/esm5/lib/authentication/sign-up/sign-up.module.js +17 -0
  702. package/esm5/lib/authorization/authority/authority-guard.service.js +52 -0
  703. package/esm5/lib/authorization/group/group-guard.service.js +69 -0
  704. package/esm5/lib/authorization/permission/permission.service.js +126 -0
  705. package/esm5/lib/authorization/public-api.js +10 -0
  706. package/esm5/lib/authorization/role/role-guard.service.js +108 -0
  707. package/esm5/lib/changed-fields/public-api.js +2 -0
  708. package/esm5/lib/changed-fields/services/changed-fields.service.js +38 -0
  709. package/esm5/lib/configuration/configuration.service.js +208 -0
  710. package/esm5/lib/configuration/public-api.js +3 -0
  711. package/esm5/lib/covalent/covalent.module.js +26 -0
  712. package/esm5/lib/currency/currency.module.js +25 -0
  713. package/esm5/lib/dashboard/cards/count-card/abstract-count-card.js +42 -0
  714. package/esm5/lib/dashboard/cards/custom-card/abstract-custom-card.js +50 -0
  715. package/esm5/lib/dashboard/cards/iframe-card/abstract-iframe-card.js +16 -0
  716. package/esm5/lib/dashboard/cards/model/card-grid-element.js +2 -0
  717. package/esm5/lib/dashboard/cards/model/count-card.js +2 -0
  718. package/esm5/lib/dashboard/cards/model/custom-dashboard-model/aggregation-query.js +2 -0
  719. package/esm5/lib/dashboard/cards/model/custom-dashboard-model/aggregation-result.js +2 -0
  720. package/esm5/lib/dashboard/cards/model/custom-dashboard-model/custom-card.js +2 -0
  721. package/esm5/lib/dashboard/cards/model/custom-dashboard-model/dashboard-event-content.js +2 -0
  722. package/esm5/lib/dashboard/cards/model/custom-dashboard-model/dashboard-multi-data.js +9 -0
  723. package/esm5/lib/dashboard/cards/model/custom-dashboard-model/dashboard-single-data.js +9 -0
  724. package/esm5/lib/dashboard/cards/model/dashboard-card-types.js +13 -0
  725. package/esm5/lib/dashboard/cards/model/dashboard-card.js +2 -0
  726. package/esm5/lib/dashboard/cards/model/graph-card.js +2 -0
  727. package/esm5/lib/dashboard/cards/model/iframe-card.js +2 -0
  728. package/esm5/lib/dashboard/dashboard-content/abstract-dashboard-content.js +21 -0
  729. package/esm5/lib/dashboard/dashboard-content/dashboard-params.js +2 -0
  730. package/esm5/lib/dashboard/public-api.js +20 -0
  731. package/esm5/lib/data-fields/boolean-field/abstract-boolean-field.component.js +45 -0
  732. package/esm5/lib/data-fields/boolean-field/models/boolean-field.js +29 -0
  733. package/esm5/lib/data-fields/button-field/abstract-button-field.component.js +68 -0
  734. package/esm5/lib/data-fields/button-field/models/button-field.js +37 -0
  735. package/esm5/lib/data-fields/data-field-template/abstract-data-field-template.component.js +111 -0
  736. package/esm5/lib/data-fields/data-field-template/models/wrapped-boolean.js +10 -0
  737. package/esm5/lib/data-fields/data-fields.module.js +39 -0
  738. package/esm5/lib/data-fields/date-field/abstract-date-field.component.js +26 -0
  739. package/esm5/lib/data-fields/date-field/models/custom-date-adapter.js +18 -0
  740. package/esm5/lib/data-fields/date-field/models/date-field.js +14 -0
  741. package/esm5/lib/data-fields/date-time-field/abstract-date-time-field.component.js +26 -0
  742. package/esm5/lib/data-fields/date-time-field/models/date-time-field.js +14 -0
  743. package/esm5/lib/data-fields/enumeration-field/abstract-enumeration-field.component.js +22 -0
  744. package/esm5/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.js +47 -0
  745. package/esm5/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.js +57 -0
  746. package/esm5/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.js +39 -0
  747. package/esm5/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.js +15 -0
  748. package/esm5/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.js +15 -0
  749. package/esm5/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.js +43 -0
  750. package/esm5/lib/data-fields/enumeration-field/models/dynamic-enumeration-field.js +63 -0
  751. package/esm5/lib/data-fields/enumeration-field/models/enumeration-field.js +79 -0
  752. package/esm5/lib/data-fields/file-field/abstract-file-field.component.js +405 -0
  753. package/esm5/lib/data-fields/file-field/abstract-preview-dialog/preview-dialog-data.js +2 -0
  754. package/esm5/lib/data-fields/file-field/models/file-field-value.js +2 -0
  755. package/esm5/lib/data-fields/file-field/models/file-field.js +128 -0
  756. package/esm5/lib/data-fields/file-list-field/abstract-file-list-field.component.js +278 -0
  757. package/esm5/lib/data-fields/file-list-field/models/file-list-field-value.js +2 -0
  758. package/esm5/lib/data-fields/file-list-field/models/file-list-field.js +105 -0
  759. package/esm5/lib/data-fields/filter-field/abstract-filter-field-content.component.js +36 -0
  760. package/esm5/lib/data-fields/filter-field/abstract-filter-field.component.js +33 -0
  761. package/esm5/lib/data-fields/filter-field/models/filter-field-injection-token.js +7 -0
  762. package/esm5/lib/data-fields/filter-field/models/filter-field.js +28 -0
  763. package/esm5/lib/data-fields/i18n-field/abstract-i18n-field.component.js +23 -0
  764. package/esm5/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.js +30 -0
  765. package/esm5/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.js +42 -0
  766. package/esm5/lib/data-fields/i18n-field/models/i18n-field-value.js +2 -0
  767. package/esm5/lib/data-fields/i18n-field/models/i18n-field.js +16 -0
  768. package/esm5/lib/data-fields/models/abstract-data-field-component.js +45 -0
  769. package/esm5/lib/data-fields/models/abstract-data-field.js +501 -0
  770. package/esm5/lib/data-fields/models/behavior.js +2 -0
  771. package/esm5/lib/data-fields/models/boolean-label-enabled-token.js +3 -0
  772. package/esm5/lib/data-fields/models/changed-fields.js +2 -0
  773. package/esm5/lib/data-fields/models/component.js +2 -0
  774. package/esm5/lib/data-fields/models/format-filter.js +2 -0
  775. package/esm5/lib/data-fields/models/icon.js +6 -0
  776. package/esm5/lib/data-fields/models/invalid-data-policy-token.js +11 -0
  777. package/esm5/lib/data-fields/models/layout.js +2 -0
  778. package/esm5/lib/data-fields/models/material-appearance.js +14 -0
  779. package/esm5/lib/data-fields/models/properties.js +2 -0
  780. package/esm5/lib/data-fields/models/template-appearance.js +15 -0
  781. package/esm5/lib/data-fields/models/validation.js +2 -0
  782. package/esm5/lib/data-fields/multichoice-field/abstract-multichoice-field.component.js +22 -0
  783. package/esm5/lib/data-fields/multichoice-field/models/multichoice-field.js +60 -0
  784. package/esm5/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.js +13 -0
  785. package/esm5/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.js +13 -0
  786. package/esm5/lib/data-fields/number-field/abstract-number-errors.component.js +49 -0
  787. package/esm5/lib/data-fields/number-field/abstract-number-field.component.js +23 -0
  788. package/esm5/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.js +54 -0
  789. package/esm5/lib/data-fields/number-field/models/number-field.js +137 -0
  790. package/esm5/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.js +11 -0
  791. package/esm5/lib/data-fields/public-api.js +73 -0
  792. package/esm5/lib/data-fields/task-ref-field/model/task-ref-field.js +11 -0
  793. package/esm5/lib/data-fields/text-field/abstract-text-errors.component.js +37 -0
  794. package/esm5/lib/data-fields/text-field/abstract-text-field.component.js +19 -0
  795. package/esm5/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.js +45 -0
  796. package/esm5/lib/data-fields/text-field/models/text-area-field.js +19 -0
  797. package/esm5/lib/data-fields/text-field/models/text-field.js +96 -0
  798. package/esm5/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.js +22 -0
  799. package/esm5/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.js +35 -0
  800. package/esm5/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.js +22 -0
  801. package/esm5/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.js +46 -0
  802. package/esm5/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.js +52 -0
  803. package/esm5/lib/data-fields/time-instance-abstract-field/models/abstract-time-instance-field.js +110 -0
  804. package/esm5/lib/data-fields/user-field/abstract-user-field.component.js +65 -0
  805. package/esm5/lib/data-fields/user-field/models/user-field.js +23 -0
  806. package/esm5/lib/data-fields/user-field/models/user-value.js +58 -0
  807. package/esm5/lib/dialog/components/alert-dialog/alert-dialog.component.js +43 -0
  808. package/esm5/lib/dialog/components/alert-dialog/alert-dialog.module.js +32 -0
  809. package/esm5/lib/dialog/components/confirm-dialog/confirm-dialog.component.js +57 -0
  810. package/esm5/lib/dialog/components/confirm-dialog/confirm-dialog.module.js +32 -0
  811. package/esm5/lib/dialog/components/prompt-dialog/prompt-dialog.component.js +47 -0
  812. package/esm5/lib/dialog/components/prompt-dialog/prompt-dialog.module.js +34 -0
  813. package/esm5/lib/dialog/dialog.module.js +33 -0
  814. package/esm5/lib/dialog/models/DialogData.js +2 -0
  815. package/esm5/lib/dialog/models/DialogResult.js +2 -0
  816. package/esm5/lib/dialog/models/abstract-dialog.js +23 -0
  817. package/esm5/lib/dialog/public-api.js +9 -0
  818. package/esm5/lib/dialog/services/dialog.service.js +84 -0
  819. package/esm5/lib/event/model/event-constants.js +8 -0
  820. package/esm5/lib/event/model/event-outcomes/case-outcomes/case-event-outcome.js +2 -0
  821. package/esm5/lib/event/model/event-outcomes/case-outcomes/create-case-event-outcome.js +2 -0
  822. package/esm5/lib/event/model/event-outcomes/case-outcomes/delete-case-event-outcome.js +2 -0
  823. package/esm5/lib/event/model/event-outcomes/data-outcomes/get-data-event-outcome.js +2 -0
  824. package/esm5/lib/event/model/event-outcomes/data-outcomes/get-data-groups-event-outcome.js +2 -0
  825. package/esm5/lib/event/model/event-outcomes/data-outcomes/get-data-localised-event-outcome.js +2 -0
  826. package/esm5/lib/event/model/event-outcomes/data-outcomes/set-data-event-outcome.js +2 -0
  827. package/esm5/lib/event/model/event-outcomes/petrinet-outcomes/petri-net-event-outcome.js +2 -0
  828. package/esm5/lib/event/model/event-outcomes/task-outcomes/assign-task-event-outcome.js +2 -0
  829. package/esm5/lib/event/model/event-outcomes/task-outcomes/cancel-task-event-outcome.js +2 -0
  830. package/esm5/lib/event/model/event-outcomes/task-outcomes/delegate-task-event-outcome.js +2 -0
  831. package/esm5/lib/event/model/event-outcomes/task-outcomes/finish-task-event-outcome.js +2 -0
  832. package/esm5/lib/event/model/event-outcomes/task-outcomes/task-event-outcome.js +2 -0
  833. package/esm5/lib/event/public-api.js +19 -0
  834. package/esm5/lib/event/services/event.service.js +60 -0
  835. package/esm5/lib/event/services/interfaces/changed-fields-map.js +2 -0
  836. package/esm5/lib/event-queue/model/queued-event.js +34 -0
  837. package/esm5/lib/event-queue/public-api.js +5 -0
  838. package/esm5/lib/event-queue/services/event-queue.service.js +66 -0
  839. package/esm5/lib/filter/filter.repository.js +145 -0
  840. package/esm5/lib/filter/models/case-search-request-body.js +2 -0
  841. package/esm5/lib/filter/models/filter-type.js +11 -0
  842. package/esm5/lib/filter/models/filter.js +71 -0
  843. package/esm5/lib/filter/models/filters-filter-injection-token.js +9 -0
  844. package/esm5/lib/filter/models/merge-operator.js +11 -0
  845. package/esm5/lib/filter/models/merged-filter-params.js +2 -0
  846. package/esm5/lib/filter/models/merged-filter.js +120 -0
  847. package/esm5/lib/filter/models/simple-filter.js +96 -0
  848. package/esm5/lib/filter/models/task-search-request-body.js +2 -0
  849. package/esm5/lib/filter/models/user-filter-constants.js +39 -0
  850. package/esm5/lib/filter/public-api.js +18 -0
  851. package/esm5/lib/filter/user-filters.service.js +357 -0
  852. package/esm5/lib/forms/email-submission/abstract-email-submission-form.component.js +33 -0
  853. package/esm5/lib/forms/forgotten-password/abstract-forgotten-password.component.js +37 -0
  854. package/esm5/lib/forms/has-form.js +2 -0
  855. package/esm5/lib/forms/login/abstract-login-form.component.js +61 -0
  856. package/esm5/lib/forms/models/abstract-registration.component.js +106 -0
  857. package/esm5/lib/forms/models/password.validator.js +21 -0
  858. package/esm5/lib/forms/public-api.js +7 -0
  859. package/esm5/lib/forms/registration/abstract-registration-form.component.js +42 -0
  860. package/esm5/lib/groups/public-api.js +3 -0
  861. package/esm5/lib/groups/services/active-group.service.js +107 -0
  862. package/esm5/lib/groups/services/next-group.service.js +135 -0
  863. package/esm5/lib/header/abstract-header-service.js +485 -0
  864. package/esm5/lib/header/abstract-header.component.js +171 -0
  865. package/esm5/lib/header/case-header/case-header.service.js +86 -0
  866. package/esm5/lib/header/case-header/case-menta-enum.js +9 -0
  867. package/esm5/lib/header/header-modes/abstract-header-mode.component.js +14 -0
  868. package/esm5/lib/header/header-modes/edit-mode/abstract-edit-mode.component.js +81 -0
  869. package/esm5/lib/header/header-modes/loading-mode/abstract-loading-mode.component.js +17 -0
  870. package/esm5/lib/header/header-modes/search-mode/abstract-search-mode.component.js +94 -0
  871. package/esm5/lib/header/header-modes/sort-mode/abstract-sort-mode.component.js +19 -0
  872. package/esm5/lib/header/header-state.js +53 -0
  873. package/esm5/lib/header/models/default-headers-token.js +3 -0
  874. package/esm5/lib/header/models/fields-group.js +2 -0
  875. package/esm5/lib/header/models/header-column.js +29 -0
  876. package/esm5/lib/header/models/header-mode.js +7 -0
  877. package/esm5/lib/header/models/header-type.js +7 -0
  878. package/esm5/lib/header/models/public-api.js +12 -0
  879. package/esm5/lib/header/models/user-changes/column-header-change.js +2 -0
  880. package/esm5/lib/header/models/user-changes/edit-change-description.js +2 -0
  881. package/esm5/lib/header/models/user-changes/header-change-description.js +2 -0
  882. package/esm5/lib/header/models/user-changes/header-change-type.js +20 -0
  883. package/esm5/lib/header/models/user-changes/header-change.js +2 -0
  884. package/esm5/lib/header/models/user-changes/mode-change-description.js +2 -0
  885. package/esm5/lib/header/models/user-changes/search-change-description.js +2 -0
  886. package/esm5/lib/header/models/user-changes/sort-change-description.js +2 -0
  887. package/esm5/lib/header/public-api.js +21 -0
  888. package/esm5/lib/header/services/overflow.service.js +112 -0
  889. package/esm5/lib/header/task-header/task-header.service.js +71 -0
  890. package/esm5/lib/header/task-header/task-meta-enum.js +11 -0
  891. package/esm5/lib/header/workflow-header/workflow-header.service.js +53 -0
  892. package/esm5/lib/header/workflow-header/workflow-meta-enum.js +10 -0
  893. package/esm5/lib/legal/legal-notice/abstract-legal-notice.component.js +26 -0
  894. package/esm5/lib/legal/public-api.js +2 -0
  895. package/esm5/lib/logger/models/log-entry.js +68 -0
  896. package/esm5/lib/logger/public-api.js +10 -0
  897. package/esm5/lib/logger/publishers/console-log-publisher.js +36 -0
  898. package/esm5/lib/logger/publishers/local-storage-log-publisher.js +45 -0
  899. package/esm5/lib/logger/publishers/log-publisher.js +15 -0
  900. package/esm5/lib/logger/services/log-level.js +10 -0
  901. package/esm5/lib/logger/services/log-publisher.service.js +66 -0
  902. package/esm5/lib/logger/services/logger.service.js +107 -0
  903. package/esm5/lib/material/material.module.js +112 -0
  904. package/esm5/lib/moment/public-api.js +2 -0
  905. package/esm5/lib/moment/time-formats.js +26 -0
  906. package/esm5/lib/navigation/group-navigation-component-resolver/abstract-group-navigation-component-resolver.component.js +40 -0
  907. package/esm5/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.js +37 -0
  908. package/esm5/lib/navigation/group-navigation-component-resolver/group-navigation-view-id-segment-factory.js +5 -0
  909. package/esm5/lib/navigation/model/filter-case-injection-token.js +6 -0
  910. package/esm5/lib/navigation/model/group-navigation-component-resolver-component-injection-token.js +6 -0
  911. package/esm5/lib/navigation/model/group-navigation-constants.js +59 -0
  912. package/esm5/lib/navigation/model/group-navigation-item-label.js +2 -0
  913. package/esm5/lib/navigation/navigation-drawer/abstract-navigation-drawer.component.js +142 -0
  914. package/esm5/lib/navigation/navigation-drawer/abstract-navigation-resizable-drawer.component.js +17 -0
  915. package/esm5/lib/navigation/navigation-rail/abstract-navigation-rail.component.js +38 -0
  916. package/esm5/lib/navigation/navigation-tree/abstract-navigation-tree.component.js +415 -0
  917. package/esm5/lib/navigation/public-api.js +19 -0
  918. package/esm5/lib/navigation/quick-panel/components/abstract-quick-panel.component.js +30 -0
  919. package/esm5/lib/navigation/quick-panel/components/internal-link/abstract-internal-link.component.js +14 -0
  920. package/esm5/lib/navigation/quick-panel/components/language-selector/abstract-language-selector.component.js +59 -0
  921. package/esm5/lib/navigation/quick-panel/components/logout-shortcut/abstract-logout-shortcut.component.js +24 -0
  922. package/esm5/lib/navigation/quick-panel/components/paper-view.service.js +44 -0
  923. package/esm5/lib/navigation/quick-panel/public-api.js +8 -0
  924. package/esm5/lib/navigation/utility/filter-extraction.service.js +89 -0
  925. package/esm5/lib/navigation/utility/navigation-item-task-utility-methods.js +78 -0
  926. package/esm5/lib/panel/abstract/featured-value.js +2 -0
  927. package/esm5/lib/panel/abstract/panel-with-header-binding.js +50 -0
  928. package/esm5/lib/panel/abstract/panel-with-immediate-data.js +67 -0
  929. package/esm5/lib/panel/abstract/tabbed-virtual-scroll.component.js +35 -0
  930. package/esm5/lib/panel/abstract-panel.component.js +46 -0
  931. package/esm5/lib/panel/case-panel/abstract-case-panel.component.js +94 -0
  932. package/esm5/lib/panel/immediate/abstract-immediate-filter-text-content.component.js +45 -0
  933. package/esm5/lib/panel/immediate/abstract-immediate-filter-text.component.js +23 -0
  934. package/esm5/lib/panel/immediate/model/filter-text-injection-token.js +6 -0
  935. package/esm5/lib/panel/public-api.js +15 -0
  936. package/esm5/lib/panel/task-panel/abstract-task-panel.component.js +302 -0
  937. package/esm5/lib/panel/task-panel/models/disable-functions.js +3 -0
  938. package/esm5/lib/panel/task-panel-list/abstract-task-list.component.js +99 -0
  939. package/esm5/lib/panel/task-panel-list/task-panel-data/task-panel-data.js +2 -0
  940. package/esm5/lib/panel/workflow-panel/abstract-workflow-panel.component.js +109 -0
  941. package/esm5/lib/process/net.js +155 -0
  942. package/esm5/lib/process/netRole.js +2 -0
  943. package/esm5/lib/process/permissions.js +12 -0
  944. package/esm5/lib/process/petri-net-reference-with-permissions.js +2 -0
  945. package/esm5/lib/process/process.service.js +325 -0
  946. package/esm5/lib/process/public-api.js +8 -0
  947. package/esm5/lib/process/public-process.service.js +34 -0
  948. package/esm5/lib/process/rolesAndPermissions.js +2 -0
  949. package/esm5/lib/process/transaction.js +2 -0
  950. package/esm5/lib/process/transition.js +2 -0
  951. package/esm5/lib/public/factories/get-net-and-create-case.js +22 -0
  952. package/esm5/lib/public/factories/public-factory-resolver.js +13 -0
  953. package/esm5/lib/public/factories/public-search-factory.js +17 -0
  954. package/esm5/lib/public/public-api.js +5 -0
  955. package/esm5/lib/public/services/public-url-resolver.service.js +26 -0
  956. package/esm5/lib/resources/abstract-endpoint/abstract-resource.service.js +85 -0
  957. package/esm5/lib/resources/abstract-endpoint/count-service.js +2 -0
  958. package/esm5/lib/resources/engine-endpoint/case-resource.service.js +149 -0
  959. package/esm5/lib/resources/engine-endpoint/dashboard-resource.service.js +37 -0
  960. package/esm5/lib/resources/engine-endpoint/petri-net-resource.service.js +174 -0
  961. package/esm5/lib/resources/engine-endpoint/public/public-case-resource.service.js +52 -0
  962. package/esm5/lib/resources/engine-endpoint/public/public-petri-net-resource.service.js +120 -0
  963. package/esm5/lib/resources/engine-endpoint/public/public-task-resource.service.js +238 -0
  964. package/esm5/lib/resources/engine-endpoint/task-resource.service.js +327 -0
  965. package/esm5/lib/resources/engine-endpoint/user-resource.service.js +210 -0
  966. package/esm5/lib/resources/interface/assigned-user-policy.js +2 -0
  967. package/esm5/lib/resources/interface/author.js +2 -0
  968. package/esm5/lib/resources/interface/authority.js +2 -0
  969. package/esm5/lib/resources/interface/case-get-request-body.js +2 -0
  970. package/esm5/lib/resources/interface/case.js +2 -0
  971. package/esm5/lib/resources/interface/changed-field-container.js +2 -0
  972. package/esm5/lib/resources/interface/count.js +2 -0
  973. package/esm5/lib/resources/interface/create-case-request-body.js +2 -0
  974. package/esm5/lib/resources/interface/data-group-layout.js +59 -0
  975. package/esm5/lib/resources/interface/data-groups.js +19 -0
  976. package/esm5/lib/resources/interface/event-outcome.js +2 -0
  977. package/esm5/lib/resources/interface/field-alignment.js +10 -0
  978. package/esm5/lib/resources/interface/fields.js +2 -0
  979. package/esm5/lib/resources/interface/file-resource.js +2 -0
  980. package/esm5/lib/resources/interface/group.js +2 -0
  981. package/esm5/lib/resources/interface/immediate-data.js +2 -0
  982. package/esm5/lib/resources/interface/link.js +2 -0
  983. package/esm5/lib/resources/interface/message-resource.js +2 -0
  984. package/esm5/lib/resources/interface/page.js +2 -0
  985. package/esm5/lib/resources/interface/pagination.js +2 -0
  986. package/esm5/lib/resources/interface/petri-net-object-id.js +2 -0
  987. package/esm5/lib/resources/interface/petri-net-reference.js +2 -0
  988. package/esm5/lib/resources/interface/petri-net-request-body.js +2 -0
  989. package/esm5/lib/resources/interface/petri-net.js +2 -0
  990. package/esm5/lib/resources/interface/preferences.js +2 -0
  991. package/esm5/lib/resources/interface/process-role.js +2 -0
  992. package/esm5/lib/resources/interface/response-data.js +2 -0
  993. package/esm5/lib/resources/interface/task-layout.js +2 -0
  994. package/esm5/lib/resources/interface/task-reference.js +2 -0
  995. package/esm5/lib/resources/interface/task-set-data-request-body.js +2 -0
  996. package/esm5/lib/resources/interface/task.js +2 -0
  997. package/esm5/lib/resources/interface/user-process-role.js +2 -0
  998. package/esm5/lib/resources/interface/user-resource-small.js +2 -0
  999. package/esm5/lib/resources/interface/user-resource.js +2 -0
  1000. package/esm5/lib/resources/public-api.js +46 -0
  1001. package/esm5/lib/resources/resource-provider.service.js +174 -0
  1002. package/esm5/lib/resources/types/nae-date-type.js +5 -0
  1003. package/esm5/lib/routing/dynamic-navigation-route-provider/dynamic-navigation-route-provider.service.js +42 -0
  1004. package/esm5/lib/routing/public-api.js +7 -0
  1005. package/esm5/lib/routing/redirect-service/redirect.service.js +130 -0
  1006. package/esm5/lib/routing/routing-builder/routing-builder.service.js +207 -0
  1007. package/esm5/lib/routing/view-service/model/view-entry.js +2 -0
  1008. package/esm5/lib/routing/view-service/view.service.js +38 -0
  1009. package/esm5/lib/search/advanced-search-component/abstract-advanced-search.component.js +64 -0
  1010. package/esm5/lib/search/advanced-search-component-initialization-service/advanced-search-component-initialization.service.js +40 -0
  1011. package/esm5/lib/search/category-factory/category-factory.js +96 -0
  1012. package/esm5/lib/search/category-factory/category-resolver.service.js +152 -0
  1013. package/esm5/lib/search/category-factory/category-serialisation-pair.js +2 -0
  1014. package/esm5/lib/search/category-factory/default-categories-factories.js +67 -0
  1015. package/esm5/lib/search/category-factory/default-search-categories.module.js +54 -0
  1016. package/esm5/lib/search/category-factory/optional-dependencies.js +2 -0
  1017. package/esm5/lib/search/category-factory/search-categories-injection-token.js +24 -0
  1018. package/esm5/lib/search/fulltext-search-component/abstract-fulltext-search.component.js +20 -0
  1019. package/esm5/lib/search/header-search-service/header-search.service.js +250 -0
  1020. package/esm5/lib/search/models/base-filter-injection-token.js +6 -0
  1021. package/esm5/lib/search/models/base-filter.js +2 -0
  1022. package/esm5/lib/search/models/boolean-operator.js +10 -0
  1023. package/esm5/lib/search/models/category/autocomplete-category.js +155 -0
  1024. package/esm5/lib/search/models/category/autocomplete-options.js +2 -0
  1025. package/esm5/lib/search/models/category/case/case-author.js +29 -0
  1026. package/esm5/lib/search/models/category/case/case-creation-date-time.js +51 -0
  1027. package/esm5/lib/search/models/category/case/case-creation-date.js +51 -0
  1028. package/esm5/lib/search/models/category/case/case-dataset.js +444 -0
  1029. package/esm5/lib/search/models/category/case/case-net-attribute-autocomplete-category.js +28 -0
  1030. package/esm5/lib/search/models/category/case/case-process.js +84 -0
  1031. package/esm5/lib/search/models/category/case/case-role.js +32 -0
  1032. package/esm5/lib/search/models/category/case/case-search.enum.js +15 -0
  1033. package/esm5/lib/search/models/category/case/case-simple-dataset.js +153 -0
  1034. package/esm5/lib/search/models/category/case/case-string-id.js +35 -0
  1035. package/esm5/lib/search/models/category/case/case-task.js +32 -0
  1036. package/esm5/lib/search/models/category/case/case-title.js +37 -0
  1037. package/esm5/lib/search/models/category/case/case-visual-id.js +31 -0
  1038. package/esm5/lib/search/models/category/categories.js +24 -0
  1039. package/esm5/lib/search/models/category/category.js +585 -0
  1040. package/esm5/lib/search/models/category/name-id-pair.js +2 -0
  1041. package/esm5/lib/search/models/category/net-attribute-autocomplete-category.js +66 -0
  1042. package/esm5/lib/search/models/category/net-attribute-pair.js +2 -0
  1043. package/esm5/lib/search/models/category/no-configuration-autocomplete-category.js +48 -0
  1044. package/esm5/lib/search/models/category/no-configuration-category.js +51 -0
  1045. package/esm5/lib/search/models/category/no-configuration-user-autocomplete-category.js +33 -0
  1046. package/esm5/lib/search/models/category/search-autocomplete-option.js +2 -0
  1047. package/esm5/lib/search/models/category/search-input-type.js +14 -0
  1048. package/esm5/lib/search/models/category/task/task-assignee.js +29 -0
  1049. package/esm5/lib/search/models/category/task/task-net-attribute-autocomplete-category.js +28 -0
  1050. package/esm5/lib/search/models/category/task/task-process.js +61 -0
  1051. package/esm5/lib/search/models/category/task/task-role.js +31 -0
  1052. package/esm5/lib/search/models/category/task/task-task.js +31 -0
  1053. package/esm5/lib/search/models/category/user-autocomplete.js +64 -0
  1054. package/esm5/lib/search/models/component-configuration/search-component-configuration-injection-token.js +8 -0
  1055. package/esm5/lib/search/models/component-configuration/search-component-configuration.js +2 -0
  1056. package/esm5/lib/search/models/component-configuration/search-mode.js +9 -0
  1057. package/esm5/lib/search/models/configuration-input.js +71 -0
  1058. package/esm5/lib/search/models/datafield-map-key.js +91 -0
  1059. package/esm5/lib/search/models/escape-result.js +2 -0
  1060. package/esm5/lib/search/models/operator/equals-date-time.js +31 -0
  1061. package/esm5/lib/search/models/operator/equals-date.js +31 -0
  1062. package/esm5/lib/search/models/operator/equals.js +25 -0
  1063. package/esm5/lib/search/models/operator/in-range-date-time.js +47 -0
  1064. package/esm5/lib/search/models/operator/in-range-date.js +46 -0
  1065. package/esm5/lib/search/models/operator/in-range.js +26 -0
  1066. package/esm5/lib/search/models/operator/is-null.js +75 -0
  1067. package/esm5/lib/search/models/operator/less-than-date-time.js +32 -0
  1068. package/esm5/lib/search/models/operator/less-than-date.js +32 -0
  1069. package/esm5/lib/search/models/operator/less-than-equal-date-time.js +32 -0
  1070. package/esm5/lib/search/models/operator/less-than-equal-date.js +31 -0
  1071. package/esm5/lib/search/models/operator/less-than-equal.js +21 -0
  1072. package/esm5/lib/search/models/operator/less-than.js +21 -0
  1073. package/esm5/lib/search/models/operator/like.js +33 -0
  1074. package/esm5/lib/search/models/operator/more-than-date-time.js +34 -0
  1075. package/esm5/lib/search/models/operator/more-than-date.js +34 -0
  1076. package/esm5/lib/search/models/operator/more-than-equal-date-time.js +32 -0
  1077. package/esm5/lib/search/models/operator/more-than-equal-date.js +32 -0
  1078. package/esm5/lib/search/models/operator/more-than-equal.js +21 -0
  1079. package/esm5/lib/search/models/operator/more-than.js +21 -0
  1080. package/esm5/lib/search/models/operator/not-equals-date-time.js +29 -0
  1081. package/esm5/lib/search/models/operator/not-equals-date.js +32 -0
  1082. package/esm5/lib/search/models/operator/not-equals.js +35 -0
  1083. package/esm5/lib/search/models/operator/operator.js +134 -0
  1084. package/esm5/lib/search/models/operator/operators.js +31 -0
  1085. package/esm5/lib/search/models/operator/substring.js +31 -0
  1086. package/esm5/lib/search/models/operator-template-part-type.js +15 -0
  1087. package/esm5/lib/search/models/operator-template-part.js +42 -0
  1088. package/esm5/lib/search/models/persistance/filter-metadata-allowed-nets.js +2 -0
  1089. package/esm5/lib/search/models/persistance/filter-metadata.js +2 -0
  1090. package/esm5/lib/search/models/persistance/filter-text-segment.js +2 -0
  1091. package/esm5/lib/search/models/persistance/generator-metadata.js +2 -0
  1092. package/esm5/lib/search/models/persistance/saved-filter-metadata.js +2 -0
  1093. package/esm5/lib/search/models/predicate/clause-predicate.js +95 -0
  1094. package/esm5/lib/search/models/predicate/editable-clause-predicate-with-generators.js +79 -0
  1095. package/esm5/lib/search/models/predicate/editable-clause-predicate.js +146 -0
  1096. package/esm5/lib/search/models/predicate/editable-elementary-predicate.js +30 -0
  1097. package/esm5/lib/search/models/predicate/editable-predicate-with-generator.js +47 -0
  1098. package/esm5/lib/search/models/predicate/editable-predicate.js +32 -0
  1099. package/esm5/lib/search/models/predicate/elementary-predicate.js +24 -0
  1100. package/esm5/lib/search/models/predicate/predicate-with-generator.js +114 -0
  1101. package/esm5/lib/search/models/predicate/predicate.js +110 -0
  1102. package/esm5/lib/search/models/predicate-removal-event.js +2 -0
  1103. package/esm5/lib/search/models/query/query.js +83 -0
  1104. package/esm5/lib/search/models/search-index.js +76 -0
  1105. package/esm5/lib/search/models/wrap-result.js +2 -0
  1106. package/esm5/lib/search/operator-service/operator-resolver.service.js +113 -0
  1107. package/esm5/lib/search/operator-service/operator.service.js +41 -0
  1108. package/esm5/lib/search/public-api.js +107 -0
  1109. package/esm5/lib/search/search-clause-component/abstract-search-clause.component.js +67 -0
  1110. package/esm5/lib/search/search-component/abstract-search.component.js +201 -0
  1111. package/esm5/lib/search/search-configuration-input-component/abstract-search-configuration-input.component.js +82 -0
  1112. package/esm5/lib/search/search-keyword-resolver-service/search-index-resolver.service.js +40 -0
  1113. package/esm5/lib/search/search-operand-input-component/abstract-search-operand-input.component.js +113 -0
  1114. package/esm5/lib/search/search-predicate-component/abstract-search-predicate.component.js +162 -0
  1115. package/esm5/lib/search/search-service/search.service.js +405 -0
  1116. package/esm5/lib/side-menu/content-components/filter-selector/abstract-filter-selector.component.js +166 -0
  1117. package/esm5/lib/side-menu/content-components/filter-selector/filter-selector-list-item/abstract-filter-selector-list-item.component.js +26 -0
  1118. package/esm5/lib/side-menu/content-components/filter-selector/model/filter-selector-injection-data.js +2 -0
  1119. package/esm5/lib/side-menu/content-components/filter-selector/model/filtered-array.js +37 -0
  1120. package/esm5/lib/side-menu/content-components/import-net/abstract-import-net.component.js +152 -0
  1121. package/esm5/lib/side-menu/content-components/injection-tokens.js +8 -0
  1122. package/esm5/lib/side-menu/content-components/load-filter/abstract-load-filter.component.js +47 -0
  1123. package/esm5/lib/side-menu/content-components/load-filter/model/load-filter-injection-data.js +2 -0
  1124. package/esm5/lib/side-menu/content-components/new-case/abstract-new-case.component.js +264 -0
  1125. package/esm5/lib/side-menu/content-components/new-case/model/new-case-injection-data.js +2 -0
  1126. package/esm5/lib/side-menu/content-components/option-selector/abstract-option-selector.component.js +31 -0
  1127. package/esm5/lib/side-menu/content-components/option-selector/model/option-selector-injection-data.js +2 -0
  1128. package/esm5/lib/side-menu/content-components/public-api.js +20 -0
  1129. package/esm5/lib/side-menu/content-components/save-filter/abstract-save-filter.component.js +43 -0
  1130. package/esm5/lib/side-menu/content-components/save-filter/model/save-filter-injection-data.js +2 -0
  1131. package/esm5/lib/side-menu/content-components/user-assign/abstract-user-assign.component.js +74 -0
  1132. package/esm5/lib/side-menu/content-components/user-assign/model/user-list-injected-data.js +2 -0
  1133. package/esm5/lib/side-menu/content-components/user-assign/user-assign-list/abstract-user-assign-list.component.js +113 -0
  1134. package/esm5/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/abstract-user-assign-item.component.js +15 -0
  1135. package/esm5/lib/side-menu/models/portal-wrapper.js +23 -0
  1136. package/esm5/lib/side-menu/models/side-menu-control.js +47 -0
  1137. package/esm5/lib/side-menu/models/side-menu-event.js +2 -0
  1138. package/esm5/lib/side-menu/models/side-menu-injection-data.js +2 -0
  1139. package/esm5/lib/side-menu/models/side-menu-ref.js +26 -0
  1140. package/esm5/lib/side-menu/models/side-menu-size.js +7 -0
  1141. package/esm5/lib/side-menu/net-version-visible-injection-token.js +4 -0
  1142. package/esm5/lib/side-menu/public-api.js +15 -0
  1143. package/esm5/lib/side-menu/services/side-menu.service.js +90 -0
  1144. package/esm5/lib/side-menu/side-menu-container/abstract-side-menu-container.component.js +36 -0
  1145. package/esm5/lib/side-menu/side-menu-injection-token.js +3 -0
  1146. package/esm5/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.js +31 -0
  1147. package/esm5/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.js +31 -0
  1148. package/esm5/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.js +31 -0
  1149. package/esm5/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.js +31 -0
  1150. package/esm5/lib/snack-bar/models/abstract-snack-bar.js +20 -0
  1151. package/esm5/lib/snack-bar/models/injection-token-snackbar.js +4 -0
  1152. package/esm5/lib/snack-bar/models/snack-bar-enums.js +12 -0
  1153. package/esm5/lib/snack-bar/models/snack-bar-injection-data.js +2 -0
  1154. package/esm5/lib/snack-bar/public-api.js +15 -0
  1155. package/esm5/lib/snack-bar/services/snack-bar.service.js +105 -0
  1156. package/esm5/lib/snack-bar/snack-bar.module.js +37 -0
  1157. package/esm5/lib/tabs/classes/opened-tab.js +50 -0
  1158. package/esm5/lib/tabs/classes/tab-view.js +283 -0
  1159. package/esm5/lib/tabs/interfaces.js +2 -0
  1160. package/esm5/lib/tabs/public-api.js +6 -0
  1161. package/esm5/lib/tabs/tab-creation-detector/abstract-tab-creation-detector.component.js +21 -0
  1162. package/esm5/lib/tabs/tab-data-injection-token/tab-data-injection-token.js +8 -0
  1163. package/esm5/lib/tabs/tab-view/abstract-tab-view.component.js +71 -0
  1164. package/esm5/lib/task/interfaces/task-operations.js +2 -0
  1165. package/esm5/lib/task/models/null-task-operations.js +30 -0
  1166. package/esm5/lib/task/models/subject-task-operations.js +76 -0
  1167. package/esm5/lib/task/models/task-operations-injection-token.js +3 -0
  1168. package/esm5/lib/task/models/task-set-data-request-context.js +2 -0
  1169. package/esm5/lib/task/public-api.js +19 -0
  1170. package/esm5/lib/task/services/assign-policy.service.js +189 -0
  1171. package/esm5/lib/task/services/assign-task.service.js +200 -0
  1172. package/esm5/lib/task/services/cancel-task.service.js +198 -0
  1173. package/esm5/lib/task/services/data-focus-policy.service.js +40 -0
  1174. package/esm5/lib/task/services/delegate-task.service.js +196 -0
  1175. package/esm5/lib/task/services/finish-policy.service.js +85 -0
  1176. package/esm5/lib/task/services/finish-task.service.js +215 -0
  1177. package/esm5/lib/task/services/selected-case.service.js +48 -0
  1178. package/esm5/lib/task/services/task-data.service.js +597 -0
  1179. package/esm5/lib/task/services/task-handling-service.js +68 -0
  1180. package/esm5/lib/task/services/task-request-state.service.js +118 -0
  1181. package/esm5/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.js +41 -0
  1182. package/esm5/lib/task-content/model/async-rendering-configuration-injection-token.js +8 -0
  1183. package/esm5/lib/task-content/model/async-rendering-configuration.js +2 -0
  1184. package/esm5/lib/task-content/model/datafield-grid-layout-element.js +2 -0
  1185. package/esm5/lib/task-content/model/field-type-resource.js +23 -0
  1186. package/esm5/lib/task-content/model/policy.js +31 -0
  1187. package/esm5/lib/task-content/model/resource-interface.js +2 -0
  1188. package/esm5/lib/task-content/model/split-data-group.js +2 -0
  1189. package/esm5/lib/task-content/model/subgrid.js +247 -0
  1190. package/esm5/lib/task-content/model/task-content-element-type.js +19 -0
  1191. package/esm5/lib/task-content/model/task-event-notification.js +15 -0
  1192. package/esm5/lib/task-content/model/task-event.js +10 -0
  1193. package/esm5/lib/task-content/public-api.js +21 -0
  1194. package/esm5/lib/task-content/services/field-converter.service.js +350 -0
  1195. package/esm5/lib/task-content/services/single-task-content.service.js +85 -0
  1196. package/esm5/lib/task-content/services/task-content.service.js +314 -0
  1197. package/esm5/lib/task-content/services/task-event.service.js +54 -0
  1198. package/esm5/lib/task-content/services/unlimited-task-content.service.js +77 -0
  1199. package/esm5/lib/task-content/task-content/abstract-task-content.component.js +687 -0
  1200. package/esm5/lib/toolbar/abstract-toolbar.component.js +24 -0
  1201. package/esm5/lib/toolbar/public-api.js +2 -0
  1202. package/esm5/lib/translate/language.service.js +89 -0
  1203. package/esm5/lib/translate/public-api.js +3 -0
  1204. package/esm5/lib/translate/translate-interceptor.js +25 -0
  1205. package/esm5/lib/translate/translate-lib.module.js +42 -0
  1206. package/esm5/lib/user/components/user-card/abstract-user-card.component.js +58 -0
  1207. package/esm5/lib/user/models/iuser.js +2 -0
  1208. package/esm5/lib/user/models/public-api.js +6 -0
  1209. package/esm5/lib/user/models/user.js +51 -0
  1210. package/esm5/lib/user/models/view-id-injection-tokens.js +4 -0
  1211. package/esm5/lib/user/profile/abstract-profile.component.js +40 -0
  1212. package/esm5/lib/user/public-api.js +12 -0
  1213. package/esm5/lib/user/services/user-comparator.service.js +28 -0
  1214. package/esm5/lib/user/services/user-list.service.js +220 -0
  1215. package/esm5/lib/user/services/user-preference.service.js +164 -0
  1216. package/esm5/lib/user/services/user.service.js +224 -0
  1217. package/esm5/lib/user/services/view-id.service.js +36 -0
  1218. package/esm5/lib/utility/array-to-observable.js +10 -0
  1219. package/esm5/lib/utility/call-chain/after-action.js +19 -0
  1220. package/esm5/lib/utility/call-chain/call-chain.service.js +36 -0
  1221. package/esm5/lib/utility/clear-time-information.js +11 -0
  1222. package/esm5/lib/utility/destroy-subscription.js +10 -0
  1223. package/esm5/lib/utility/get-field.js +48 -0
  1224. package/esm5/lib/utility/get-immediate-data.js +9 -0
  1225. package/esm5/lib/utility/grid-layout/grid-layout-helper.js +105 -0
  1226. package/esm5/lib/utility/grid-layout/model/grid-element-with-item.js +2 -0
  1227. package/esm5/lib/utility/grid-layout/model/grid-element.js +2 -0
  1228. package/esm5/lib/utility/grid-layout/model/grid-filler.js +52 -0
  1229. package/esm5/lib/utility/incrementing-counter.js +23 -0
  1230. package/esm5/lib/utility/loading-emitter.js +28 -0
  1231. package/esm5/lib/utility/loading-with-filter-emitter.js +41 -0
  1232. package/esm5/lib/utility/navigation-item-task-filter-factory.js +11 -0
  1233. package/esm5/lib/utility/navigation-item-task-search-categories-factory.js +35 -0
  1234. package/esm5/lib/utility/of-void.js +12 -0
  1235. package/esm5/lib/utility/pagination/load-all-pages.js +47 -0
  1236. package/esm5/lib/utility/pagination/page-has-content.js +8 -0
  1237. package/esm5/lib/utility/process-message-response.js +17 -0
  1238. package/esm5/lib/utility/public-api.js +47 -0
  1239. package/esm5/lib/utility/refresh-tree.js +9 -0
  1240. package/esm5/lib/utility/result-with-after-actions.js +34 -0
  1241. package/esm5/lib/utility/service/case-list-font-color.service.js +47 -0
  1242. package/esm5/lib/utility/service/spinner-overlay.service.js +51 -0
  1243. package/esm5/lib/utility/stop-propagation.js +5 -0
  1244. package/esm5/lib/utility/tests/mocks/mock-authentication-method-service.js +19 -0
  1245. package/esm5/lib/utility/tests/mocks/mock-authentication.service.js +33 -0
  1246. package/esm5/lib/utility/tests/mocks/mock-endpoint.js +46 -0
  1247. package/esm5/lib/utility/tests/mocks/mock-sign-up.service.js +31 -0
  1248. package/esm5/lib/utility/tests/mocks/mock-user-autocomplete-value.js +15 -0
  1249. package/esm5/lib/utility/tests/mocks/mock-user-preference.service.js +53 -0
  1250. package/esm5/lib/utility/tests/mocks/mock-user-resource.service.js +52 -0
  1251. package/esm5/lib/utility/tests/search-category-mock-dependencies.js +21 -0
  1252. package/esm5/lib/utility/tests/test-config.js +428 -0
  1253. package/esm5/lib/utility/tests/test-factory-methods.js +21 -0
  1254. package/esm5/lib/utility/tests/test-mock-dependencies.module.js +35 -0
  1255. package/esm5/lib/utility/tests/test-view-service.js +28 -0
  1256. package/esm5/lib/utility/tests/utility/configure-category.js +14 -0
  1257. package/esm5/lib/utility/tests/utility/create-mock-case-outcome.js +19 -0
  1258. package/esm5/lib/utility/tests/utility/create-mock-case.js +40 -0
  1259. package/esm5/lib/utility/tests/utility/create-mock-datagroup.js +39 -0
  1260. package/esm5/lib/utility/tests/utility/create-mock-field.js +47 -0
  1261. package/esm5/lib/utility/tests/utility/create-mock-get-data-outcome.js +20 -0
  1262. package/esm5/lib/utility/tests/utility/create-mock-immediate-data.js +17 -0
  1263. package/esm5/lib/utility/tests/utility/create-mock-net.js +34 -0
  1264. package/esm5/lib/utility/tests/utility/create-mock-page.js +24 -0
  1265. package/esm5/lib/utility/tests/utility/create-mock-petri-net-outcome.js +16 -0
  1266. package/esm5/lib/utility/tests/utility/create-mock-set-data-outcome.js +24 -0
  1267. package/esm5/lib/utility/tests/utility/create-mock-task-outcome.js +22 -0
  1268. package/esm5/lib/utility/tests/utility/create-mock-task.js +38 -0
  1269. package/esm5/lib/view/abstract/page-load-request-context.js +34 -0
  1270. package/esm5/lib/view/abstract/sortable-view.js +65 -0
  1271. package/esm5/lib/view/abstract/view-with-headers.js +27 -0
  1272. package/esm5/lib/view/case-view/abstract-case-view.js +47 -0
  1273. package/esm5/lib/view/case-view/components/case-list/abstract-case-list.component.js +92 -0
  1274. package/esm5/lib/view/case-view/models/case-page-load-request-result.js +2 -0
  1275. package/esm5/lib/view/case-view/models/case-view-params.js +2 -0
  1276. package/esm5/lib/view/case-view/models/new-case-configuration-injection-token.js +7 -0
  1277. package/esm5/lib/view/case-view/models/new-case-configuration.js +2 -0
  1278. package/esm5/lib/view/case-view/service/case-view-service.js +300 -0
  1279. package/esm5/lib/view/case-view/tabbed-case-view.js +75 -0
  1280. package/esm5/lib/view/public-api.js +42 -0
  1281. package/esm5/lib/view/task-view/abstract-task-view.js +18 -0
  1282. package/esm5/lib/view/task-view/models/injected-tabbed-task-view-data.js +2 -0
  1283. package/esm5/lib/view/task-view/models/injection-token-task-endpoint.js +6 -0
  1284. package/esm5/lib/view/task-view/models/task-endpoint.js +9 -0
  1285. package/esm5/lib/view/task-view/models/task-page-load-request-result.js +2 -0
  1286. package/esm5/lib/view/task-view/models/task-view-configuration-injection-token.js +20 -0
  1287. package/esm5/lib/view/task-view/models/task-view-configuration.js +2 -0
  1288. package/esm5/lib/view/task-view/models/task-view-params.js +2 -0
  1289. package/esm5/lib/view/task-view/service/task-view.service.js +333 -0
  1290. package/esm5/lib/view/task-view/tabbed-task-view.js +27 -0
  1291. package/esm5/lib/view/tree-case-view/model/tree-petriflow-identifiers.js +43 -0
  1292. package/esm5/lib/view/tree-case-view/tree-case-view.service.js +19 -0
  1293. package/esm5/lib/view/tree-case-view/tree-component/abstract-tree.component.js +165 -0
  1294. package/esm5/lib/view/tree-case-view/tree-component/add-child-node/abstract-add-child-node.component.js +16 -0
  1295. package/esm5/lib/view/tree-case-view/tree-component/case-tree.service.js +899 -0
  1296. package/esm5/lib/view/tree-case-view/tree-component/model/case-tree-node.js +106 -0
  1297. package/esm5/lib/view/tree-case-view/tree-component/model/case-tree-path.js +2 -0
  1298. package/esm5/lib/view/tree-case-view/tree-component/model/expansion-tree.js +2 -0
  1299. package/esm5/lib/view/tree-case-view/tree-component/remove-node/abstract-remove-node.component.js +16 -0
  1300. package/esm5/lib/view/tree-case-view/tree-task-content/abstract-tree-task-content.component.js +66 -0
  1301. package/esm5/lib/view/tree-case-view/tree-task-content/tree-task-content.service.js +308 -0
  1302. package/esm5/lib/view/workflow-view/abstract-workflow-view.component.js +74 -0
  1303. package/esm5/lib/view/workflow-view/models/injection-token-workflow-service.js +10 -0
  1304. package/esm5/lib/view/workflow-view/workflow-view.service.js +232 -0
  1305. package/esm5/netgrif-components-core.js +20 -0
  1306. package/esm5/public-api.js +45 -0
  1307. package/fesm2015/netgrif-components-core.js +28627 -0
  1308. package/fesm2015/netgrif-components-core.js.map +1 -0
  1309. package/fesm5/netgrif-components-core.js +31716 -0
  1310. package/fesm5/netgrif-components-core.js.map +1 -0
  1311. package/lib/admin/public-api.d.ts +6 -0
  1312. package/lib/admin/role-assignment/abstract-role-assignment.d.ts +31 -0
  1313. package/lib/admin/role-assignment/services/ProcessList.d.ts +43 -0
  1314. package/lib/admin/role-assignment/services/role-assignment.service.d.ts +16 -0
  1315. package/lib/admin/user-invite/abstract-user-invite.component.d.ts +30 -0
  1316. package/lib/admin/user-invite/services/organization-list.service.d.ts +16 -0
  1317. package/lib/admin/user-invite/services/user-invite.service.d.ts +9 -0
  1318. package/lib/allowed-nets/public-api.d.ts +3 -0
  1319. package/lib/allowed-nets/services/allowed-nets.service.d.ts +45 -0
  1320. package/lib/allowed-nets/services/base-allowed-nets.service.d.ts +27 -0
  1321. package/lib/allowed-nets/services/factory/allowed-nets-service-factory.d.ts +59 -0
  1322. package/lib/authentication/anonymous/anonymous.service.d.ts +18 -0
  1323. package/lib/authentication/authentication.factory.d.ts +5 -0
  1324. package/lib/authentication/authentication.module.d.ts +2 -0
  1325. package/lib/authentication/components/abstract-authentication-overlay.d.ts +21 -0
  1326. package/lib/authentication/models/credentials.d.ts +4 -0
  1327. package/lib/authentication/models/public-api.d.ts +3 -0
  1328. package/lib/authentication/models/transformer.d.ts +3 -0
  1329. package/lib/authentication/models/user.transformer.d.ts +8 -0
  1330. package/lib/authentication/public-api.d.ts +8 -0
  1331. package/lib/authentication/services/anonymous-authentication-interceptor.d.ts +8 -0
  1332. package/lib/authentication/services/authentication/authentication.service.d.ts +23 -0
  1333. package/lib/authentication/services/authentication-interceptor.d.ts +12 -0
  1334. package/lib/authentication/services/authentication-method.service.d.ts +8 -0
  1335. package/lib/authentication/services/guard/authentication-guard.service.d.ts +11 -0
  1336. package/lib/authentication/services/methods/basic-authentication/basic-authentication.service.d.ts +13 -0
  1337. package/lib/authentication/services/methods/null-authentication/null-authentication.service.d.ts +9 -0
  1338. package/lib/authentication/services/public-api.d.ts +5 -0
  1339. package/lib/authentication/session/null-storage.d.ts +9 -0
  1340. package/lib/authentication/session/public-api.d.ts +1 -0
  1341. package/lib/authentication/session/services/session.service.d.ts +35 -0
  1342. package/lib/authentication/sign-up/models/user-invitation-request.d.ts +5 -0
  1343. package/lib/authentication/sign-up/models/user-registration-request.d.ts +6 -0
  1344. package/lib/authentication/sign-up/public-api.d.ts +4 -0
  1345. package/lib/authentication/sign-up/services/sign-up.service.d.ts +29 -0
  1346. package/lib/authentication/sign-up/sign-up.module.d.ts +2 -0
  1347. package/lib/authorization/authority/authority-guard.service.d.ts +16 -0
  1348. package/lib/authorization/group/group-guard.service.d.ts +19 -0
  1349. package/lib/authorization/permission/permission.service.d.ts +22 -0
  1350. package/lib/authorization/public-api.d.ts +4 -0
  1351. package/lib/authorization/role/role-guard.service.d.ts +29 -0
  1352. package/lib/changed-fields/public-api.d.ts +1 -0
  1353. package/lib/changed-fields/services/changed-fields.service.d.ts +12 -0
  1354. package/lib/configuration/configuration.service.d.ts +69 -0
  1355. package/lib/configuration/public-api.d.ts +1 -0
  1356. package/lib/covalent/covalent.module.d.ts +2 -0
  1357. package/lib/currency/currency.module.d.ts +3 -0
  1358. package/lib/dashboard/cards/count-card/abstract-count-card.d.ts +19 -0
  1359. package/lib/dashboard/cards/custom-card/abstract-custom-card.d.ts +39 -0
  1360. package/lib/dashboard/cards/iframe-card/abstract-iframe-card.d.ts +10 -0
  1361. package/lib/dashboard/cards/model/card-grid-element.d.ts +4 -0
  1362. package/lib/dashboard/cards/model/count-card.d.ts +11 -0
  1363. package/lib/dashboard/cards/model/custom-dashboard-model/aggregation-query.d.ts +9 -0
  1364. package/lib/dashboard/cards/model/custom-dashboard-model/aggregation-result.d.ts +18 -0
  1365. package/lib/dashboard/cards/model/custom-dashboard-model/custom-card.d.ts +14 -0
  1366. package/lib/dashboard/cards/model/custom-dashboard-model/dashboard-event-content.d.ts +5 -0
  1367. package/lib/dashboard/cards/model/custom-dashboard-model/dashboard-multi-data.d.ts +6 -0
  1368. package/lib/dashboard/cards/model/custom-dashboard-model/dashboard-single-data.d.ts +5 -0
  1369. package/lib/dashboard/cards/model/dashboard-card-types.d.ts +11 -0
  1370. package/lib/dashboard/cards/model/dashboard-card.d.ts +7 -0
  1371. package/lib/dashboard/cards/model/graph-card.d.ts +5 -0
  1372. package/lib/dashboard/cards/model/iframe-card.d.ts +6 -0
  1373. package/lib/dashboard/dashboard-content/abstract-dashboard-content.d.ts +15 -0
  1374. package/lib/dashboard/dashboard-content/dashboard-params.d.ts +8 -0
  1375. package/lib/dashboard/public-api.d.ts +16 -0
  1376. package/lib/data-fields/boolean-field/abstract-boolean-field.component.d.ts +11 -0
  1377. package/lib/data-fields/boolean-field/models/boolean-field.d.ts +15 -0
  1378. package/lib/data-fields/button-field/abstract-button-field.component.d.ts +25 -0
  1379. package/lib/data-fields/button-field/models/button-field.d.ts +22 -0
  1380. package/lib/data-fields/data-field-template/abstract-data-field-template.component.d.ts +65 -0
  1381. package/lib/data-fields/data-field-template/models/wrapped-boolean.d.ts +6 -0
  1382. package/lib/data-fields/data-fields.module.d.ts +2 -0
  1383. package/lib/data-fields/date-field/abstract-date-field.component.d.ts +9 -0
  1384. package/lib/data-fields/date-field/models/custom-date-adapter.d.ts +4 -0
  1385. package/lib/data-fields/date-field/models/date-field.d.ts +10 -0
  1386. package/lib/data-fields/date-time-field/abstract-date-time-field.component.d.ts +9 -0
  1387. package/lib/data-fields/date-time-field/models/date-time-field.d.ts +10 -0
  1388. package/lib/data-fields/enumeration-field/abstract-enumeration-field.component.d.ts +6 -0
  1389. package/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.d.ts +21 -0
  1390. package/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.d.ts +26 -0
  1391. package/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.d.ts +17 -0
  1392. package/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.d.ts +10 -0
  1393. package/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.d.ts +10 -0
  1394. package/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.d.ts +18 -0
  1395. package/lib/data-fields/enumeration-field/models/dynamic-enumeration-field.d.ts +25 -0
  1396. package/lib/data-fields/enumeration-field/models/enumeration-field.d.ts +35 -0
  1397. package/lib/data-fields/file-field/abstract-file-field.component.d.ts +147 -0
  1398. package/lib/data-fields/file-field/abstract-preview-dialog/preview-dialog-data.d.ts +9 -0
  1399. package/lib/data-fields/file-field/models/file-field-value.d.ts +4 -0
  1400. package/lib/data-fields/file-field/models/file-field.d.ts +73 -0
  1401. package/lib/data-fields/file-list-field/abstract-file-list-field.component.d.ts +73 -0
  1402. package/lib/data-fields/file-list-field/models/file-list-field-value.d.ts +4 -0
  1403. package/lib/data-fields/file-list-field/models/file-list-field.d.ts +41 -0
  1404. package/lib/data-fields/filter-field/abstract-filter-field-content.component.d.ts +12 -0
  1405. package/lib/data-fields/filter-field/abstract-filter-field.component.d.ts +14 -0
  1406. package/lib/data-fields/filter-field/models/filter-field-injection-token.d.ts +7 -0
  1407. package/lib/data-fields/filter-field/models/filter-field.d.ts +13 -0
  1408. package/lib/data-fields/i18n-field/abstract-i18n-field.component.d.ts +7 -0
  1409. package/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.d.ts +13 -0
  1410. package/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.d.ts +18 -0
  1411. package/lib/data-fields/i18n-field/models/i18n-field-value.d.ts +5 -0
  1412. package/lib/data-fields/i18n-field/models/i18n-field.d.ts +9 -0
  1413. package/lib/data-fields/models/abstract-data-field-component.d.ts +32 -0
  1414. package/lib/data-fields/models/abstract-data-field.d.ts +220 -0
  1415. package/lib/data-fields/models/behavior.d.ts +40 -0
  1416. package/lib/data-fields/models/boolean-label-enabled-token.d.ts +2 -0
  1417. package/lib/data-fields/models/changed-fields.d.ts +44 -0
  1418. package/lib/data-fields/models/component.d.ts +7 -0
  1419. package/lib/data-fields/models/format-filter.d.ts +5 -0
  1420. package/lib/data-fields/models/icon.d.ts +9 -0
  1421. package/lib/data-fields/models/invalid-data-policy-token.d.ts +10 -0
  1422. package/lib/data-fields/models/layout.d.ts +22 -0
  1423. package/lib/data-fields/models/material-appearance.d.ts +12 -0
  1424. package/lib/data-fields/models/properties.d.ts +3 -0
  1425. package/lib/data-fields/models/template-appearance.d.ts +13 -0
  1426. package/lib/data-fields/models/validation.d.ts +15 -0
  1427. package/lib/data-fields/multichoice-field/abstract-multichoice-field.component.d.ts +6 -0
  1428. package/lib/data-fields/multichoice-field/models/multichoice-field.d.ts +26 -0
  1429. package/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.d.ts +10 -0
  1430. package/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.d.ts +8 -0
  1431. package/lib/data-fields/number-field/abstract-number-errors.component.d.ts +13 -0
  1432. package/lib/data-fields/number-field/abstract-number-field.component.d.ts +8 -0
  1433. package/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.d.ts +15 -0
  1434. package/lib/data-fields/number-field/models/number-field.d.ts +36 -0
  1435. package/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.d.ts +5 -0
  1436. package/lib/data-fields/public-api.d.ts +67 -0
  1437. package/lib/data-fields/task-ref-field/model/task-ref-field.d.ts +8 -0
  1438. package/lib/data-fields/text-field/abstract-text-errors.component.d.ts +10 -0
  1439. package/lib/data-fields/text-field/abstract-text-field.component.d.ts +6 -0
  1440. package/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.d.ts +39 -0
  1441. package/lib/data-fields/text-field/models/text-area-field.d.ts +12 -0
  1442. package/lib/data-fields/text-field/models/text-field.d.ts +36 -0
  1443. package/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.d.ts +13 -0
  1444. package/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.d.ts +16 -0
  1445. package/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.d.ts +13 -0
  1446. package/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.d.ts +22 -0
  1447. package/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.d.ts +9 -0
  1448. package/lib/data-fields/time-instance-abstract-field/models/abstract-time-instance-field.d.ts +41 -0
  1449. package/lib/data-fields/user-field/abstract-user-field.component.d.ts +36 -0
  1450. package/lib/data-fields/user-field/models/user-field.d.ts +13 -0
  1451. package/lib/data-fields/user-field/models/user-value.d.ts +24 -0
  1452. package/lib/dialog/components/alert-dialog/alert-dialog.component.d.ts +19 -0
  1453. package/lib/dialog/components/alert-dialog/alert-dialog.module.d.ts +2 -0
  1454. package/lib/dialog/components/confirm-dialog/confirm-dialog.component.d.ts +24 -0
  1455. package/lib/dialog/components/confirm-dialog/confirm-dialog.module.d.ts +2 -0
  1456. package/lib/dialog/components/prompt-dialog/prompt-dialog.component.d.ts +23 -0
  1457. package/lib/dialog/components/prompt-dialog/prompt-dialog.module.d.ts +2 -0
  1458. package/lib/dialog/dialog.module.d.ts +2 -0
  1459. package/lib/dialog/models/DialogData.d.ts +8 -0
  1460. package/lib/dialog/models/DialogResult.d.ts +5 -0
  1461. package/lib/dialog/models/abstract-dialog.d.ts +18 -0
  1462. package/lib/dialog/public-api.d.ts +5 -0
  1463. package/lib/dialog/services/dialog.service.d.ts +43 -0
  1464. package/lib/event/model/event-constants.d.ts +6 -0
  1465. package/lib/event/model/event-outcomes/case-outcomes/case-event-outcome.d.ts +5 -0
  1466. package/lib/event/model/event-outcomes/case-outcomes/create-case-event-outcome.d.ts +3 -0
  1467. package/lib/event/model/event-outcomes/case-outcomes/delete-case-event-outcome.d.ts +3 -0
  1468. package/lib/event/model/event-outcomes/data-outcomes/get-data-event-outcome.d.ts +5 -0
  1469. package/lib/event/model/event-outcomes/data-outcomes/get-data-groups-event-outcome.d.ts +5 -0
  1470. package/lib/event/model/event-outcomes/data-outcomes/get-data-localised-event-outcome.d.ts +5 -0
  1471. package/lib/event/model/event-outcomes/data-outcomes/set-data-event-outcome.d.ts +5 -0
  1472. package/lib/event/model/event-outcomes/petrinet-outcomes/petri-net-event-outcome.d.ts +5 -0
  1473. package/lib/event/model/event-outcomes/task-outcomes/assign-task-event-outcome.d.ts +3 -0
  1474. package/lib/event/model/event-outcomes/task-outcomes/cancel-task-event-outcome.d.ts +3 -0
  1475. package/lib/event/model/event-outcomes/task-outcomes/delegate-task-event-outcome.d.ts +3 -0
  1476. package/lib/event/model/event-outcomes/task-outcomes/finish-task-event-outcome.d.ts +3 -0
  1477. package/lib/event/model/event-outcomes/task-outcomes/task-event-outcome.d.ts +5 -0
  1478. package/lib/event/public-api.d.ts +15 -0
  1479. package/lib/event/services/event.service.d.ts +7 -0
  1480. package/lib/event/services/interfaces/changed-fields-map.d.ts +6 -0
  1481. package/lib/event-queue/model/queued-event.d.ts +21 -0
  1482. package/lib/event-queue/public-api.d.ts +2 -0
  1483. package/lib/event-queue/services/event-queue.service.d.ts +21 -0
  1484. package/lib/filter/filter.repository.d.ts +59 -0
  1485. package/lib/filter/models/case-search-request-body.d.ts +88 -0
  1486. package/lib/filter/models/filter-type.d.ts +9 -0
  1487. package/lib/filter/models/filter.d.ts +68 -0
  1488. package/lib/filter/models/filters-filter-injection-token.d.ts +9 -0
  1489. package/lib/filter/models/merge-operator.d.ts +9 -0
  1490. package/lib/filter/models/merged-filter-params.d.ts +13 -0
  1491. package/lib/filter/models/merged-filter.d.ts +75 -0
  1492. package/lib/filter/models/simple-filter.d.ts +74 -0
  1493. package/lib/filter/models/task-search-request-body.d.ts +83 -0
  1494. package/lib/filter/models/user-filter-constants.d.ts +37 -0
  1495. package/lib/filter/public-api.d.ts +12 -0
  1496. package/lib/filter/user-filters.service.d.ts +116 -0
  1497. package/lib/forms/email-submission/abstract-email-submission-form.component.d.ts +13 -0
  1498. package/lib/forms/forgotten-password/abstract-forgotten-password.component.d.ts +16 -0
  1499. package/lib/forms/has-form.d.ts +10 -0
  1500. package/lib/forms/login/abstract-login-form.component.d.ts +24 -0
  1501. package/lib/forms/models/abstract-registration.component.d.ts +42 -0
  1502. package/lib/forms/models/password.validator.d.ts +7 -0
  1503. package/lib/forms/public-api.d.ts +6 -0
  1504. package/lib/forms/registration/abstract-registration-form.component.d.ts +19 -0
  1505. package/lib/groups/public-api.d.ts +2 -0
  1506. package/lib/groups/services/active-group.service.d.ts +49 -0
  1507. package/lib/groups/services/next-group.service.d.ts +52 -0
  1508. package/lib/header/abstract-header-service.d.ts +133 -0
  1509. package/lib/header/abstract-header.component.d.ts +52 -0
  1510. package/lib/header/case-header/case-header.service.d.ts +21 -0
  1511. package/lib/header/case-header/case-menta-enum.d.ts +7 -0
  1512. package/lib/header/header-modes/abstract-header-mode.component.d.ts +5 -0
  1513. package/lib/header/header-modes/edit-mode/abstract-edit-mode.component.d.ts +28 -0
  1514. package/lib/header/header-modes/loading-mode/abstract-loading-mode.component.d.ts +8 -0
  1515. package/lib/header/header-modes/search-mode/abstract-search-mode.component.d.ts +48 -0
  1516. package/lib/header/header-modes/sort-mode/abstract-sort-mode.component.d.ts +8 -0
  1517. package/lib/header/header-state.d.ts +28 -0
  1518. package/lib/header/models/default-headers-token.d.ts +2 -0
  1519. package/lib/header/models/fields-group.d.ts +9 -0
  1520. package/lib/header/models/header-column.d.ts +17 -0
  1521. package/lib/header/models/header-mode.d.ts +5 -0
  1522. package/lib/header/models/header-type.d.ts +5 -0
  1523. package/lib/header/models/public-api.d.ts +11 -0
  1524. package/lib/header/models/user-changes/column-header-change.d.ts +6 -0
  1525. package/lib/header/models/user-changes/edit-change-description.d.ts +7 -0
  1526. package/lib/header/models/user-changes/header-change-description.d.ts +5 -0
  1527. package/lib/header/models/user-changes/header-change-type.d.ts +18 -0
  1528. package/lib/header/models/user-changes/header-change.d.ts +17 -0
  1529. package/lib/header/models/user-changes/mode-change-description.d.ts +5 -0
  1530. package/lib/header/models/user-changes/search-change-description.d.ts +13 -0
  1531. package/lib/header/models/user-changes/sort-change-description.d.ts +13 -0
  1532. package/lib/header/public-api.d.ts +14 -0
  1533. package/lib/header/services/overflow.service.d.ts +28 -0
  1534. package/lib/header/task-header/task-header.service.d.ts +18 -0
  1535. package/lib/header/task-header/task-meta-enum.d.ts +9 -0
  1536. package/lib/header/workflow-header/workflow-header.service.d.ts +14 -0
  1537. package/lib/header/workflow-header/workflow-meta-enum.d.ts +8 -0
  1538. package/lib/legal/legal-notice/abstract-legal-notice.component.d.ts +13 -0
  1539. package/lib/legal/public-api.d.ts +1 -0
  1540. package/lib/logger/models/log-entry.d.ts +38 -0
  1541. package/lib/logger/public-api.d.ts +7 -0
  1542. package/lib/logger/publishers/console-log-publisher.d.ts +8 -0
  1543. package/lib/logger/publishers/local-storage-log-publisher.d.ts +9 -0
  1544. package/lib/logger/publishers/log-publisher.d.ts +8 -0
  1545. package/lib/logger/services/log-level.d.ts +8 -0
  1546. package/lib/logger/services/log-publisher.service.d.ts +22 -0
  1547. package/lib/logger/services/logger.service.d.ts +25 -0
  1548. package/lib/material/material.module.d.ts +2 -0
  1549. package/lib/moment/public-api.d.ts +1 -0
  1550. package/lib/moment/time-formats.d.ts +24 -0
  1551. package/lib/navigation/group-navigation-component-resolver/abstract-group-navigation-component-resolver.component.d.ts +21 -0
  1552. package/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.d.ts +14 -0
  1553. package/lib/navigation/group-navigation-component-resolver/group-navigation-view-id-segment-factory.d.ts +2 -0
  1554. package/lib/navigation/model/filter-case-injection-token.d.ts +6 -0
  1555. package/lib/navigation/model/group-navigation-component-resolver-component-injection-token.d.ts +6 -0
  1556. package/lib/navigation/model/group-navigation-constants.d.ts +57 -0
  1557. package/lib/navigation/model/group-navigation-item-label.d.ts +4 -0
  1558. package/lib/navigation/navigation-drawer/abstract-navigation-drawer.component.d.ts +49 -0
  1559. package/lib/navigation/navigation-drawer/abstract-navigation-resizable-drawer.component.d.ts +8 -0
  1560. package/lib/navigation/navigation-rail/abstract-navigation-rail.component.d.ts +14 -0
  1561. package/lib/navigation/navigation-tree/abstract-navigation-tree.component.d.ts +131 -0
  1562. package/lib/navigation/public-api.d.ts +13 -0
  1563. package/lib/navigation/quick-panel/components/abstract-quick-panel.component.d.ts +15 -0
  1564. package/lib/navigation/quick-panel/components/internal-link/abstract-internal-link.component.d.ts +7 -0
  1565. package/lib/navigation/quick-panel/components/language-selector/abstract-language-selector.component.d.ts +24 -0
  1566. package/lib/navigation/quick-panel/components/logout-shortcut/abstract-logout-shortcut.component.d.ts +14 -0
  1567. package/lib/navigation/quick-panel/components/paper-view.service.d.ts +6 -0
  1568. package/lib/navigation/quick-panel/public-api.d.ts +5 -0
  1569. package/lib/navigation/utility/filter-extraction.service.d.ts +18 -0
  1570. package/lib/navigation/utility/navigation-item-task-utility-methods.d.ts +33 -0
  1571. package/lib/panel/abstract/featured-value.d.ts +13 -0
  1572. package/lib/panel/abstract/panel-with-header-binding.d.ts +23 -0
  1573. package/lib/panel/abstract/panel-with-immediate-data.d.ts +18 -0
  1574. package/lib/panel/abstract/tabbed-virtual-scroll.component.d.ts +10 -0
  1575. package/lib/panel/abstract-panel.component.d.ts +23 -0
  1576. package/lib/panel/case-panel/abstract-case-panel.component.d.ts +41 -0
  1577. package/lib/panel/immediate/abstract-immediate-filter-text-content.component.d.ts +16 -0
  1578. package/lib/panel/immediate/abstract-immediate-filter-text.component.d.ts +14 -0
  1579. package/lib/panel/immediate/model/filter-text-injection-token.d.ts +10 -0
  1580. package/lib/panel/public-api.d.ts +12 -0
  1581. package/lib/panel/task-panel/abstract-task-panel.component.d.ts +109 -0
  1582. package/lib/panel/task-panel/models/disable-functions.d.ts +10 -0
  1583. package/lib/panel/task-panel-list/abstract-task-list.component.d.ts +46 -0
  1584. package/lib/panel/task-panel-list/task-panel-data/task-panel-data.d.ts +8 -0
  1585. package/lib/panel/workflow-panel/abstract-workflow-panel.component.d.ts +57 -0
  1586. package/lib/process/net.d.ts +95 -0
  1587. package/lib/process/netRole.d.ts +4 -0
  1588. package/lib/process/permissions.d.ts +30 -0
  1589. package/lib/process/petri-net-reference-with-permissions.d.ts +7 -0
  1590. package/lib/process/process.service.d.ts +94 -0
  1591. package/lib/process/public-api.d.ts +7 -0
  1592. package/lib/process/public-process.service.d.ts +8 -0
  1593. package/lib/process/rolesAndPermissions.d.ts +6 -0
  1594. package/lib/process/transaction.d.ts +5 -0
  1595. package/lib/process/transition.d.ts +7 -0
  1596. package/lib/public/factories/get-net-and-create-case.d.ts +6 -0
  1597. package/lib/public/factories/public-factory-resolver.d.ts +6 -0
  1598. package/lib/public/factories/public-search-factory.d.ts +9 -0
  1599. package/lib/public/public-api.d.ts +4 -0
  1600. package/lib/public/services/public-url-resolver.service.d.ts +6 -0
  1601. package/lib/resources/abstract-endpoint/abstract-resource.service.d.ts +38 -0
  1602. package/lib/resources/abstract-endpoint/count-service.d.ts +6 -0
  1603. package/lib/resources/engine-endpoint/case-resource.service.d.ts +86 -0
  1604. package/lib/resources/engine-endpoint/dashboard-resource.service.d.ts +10 -0
  1605. package/lib/resources/engine-endpoint/petri-net-resource.service.d.ts +105 -0
  1606. package/lib/resources/engine-endpoint/public/public-case-resource.service.d.ts +20 -0
  1607. package/lib/resources/engine-endpoint/public/public-petri-net-resource.service.d.ts +72 -0
  1608. package/lib/resources/engine-endpoint/public/public-task-resource.service.d.ts +95 -0
  1609. package/lib/resources/engine-endpoint/task-resource.service.d.ts +134 -0
  1610. package/lib/resources/engine-endpoint/user-resource.service.d.ts +133 -0
  1611. package/lib/resources/interface/assigned-user-policy.d.ts +4 -0
  1612. package/lib/resources/interface/author.d.ts +15 -0
  1613. package/lib/resources/interface/authority.d.ts +13 -0
  1614. package/lib/resources/interface/case-get-request-body.d.ts +79 -0
  1615. package/lib/resources/interface/case.d.ts +124 -0
  1616. package/lib/resources/interface/changed-field-container.d.ts +4 -0
  1617. package/lib/resources/interface/count.d.ts +15 -0
  1618. package/lib/resources/interface/create-case-request-body.d.ts +11 -0
  1619. package/lib/resources/interface/data-group-layout.d.ts +62 -0
  1620. package/lib/resources/interface/data-groups.d.ts +60 -0
  1621. package/lib/resources/interface/event-outcome.d.ts +10 -0
  1622. package/lib/resources/interface/field-alignment.d.ts +8 -0
  1623. package/lib/resources/interface/fields.d.ts +218 -0
  1624. package/lib/resources/interface/file-resource.d.ts +22 -0
  1625. package/lib/resources/interface/group.d.ts +18 -0
  1626. package/lib/resources/interface/immediate-data.d.ts +44 -0
  1627. package/lib/resources/interface/link.d.ts +18 -0
  1628. package/lib/resources/interface/message-resource.d.ts +24 -0
  1629. package/lib/resources/interface/page.d.ts +14 -0
  1630. package/lib/resources/interface/pagination.d.ts +21 -0
  1631. package/lib/resources/interface/petri-net-object-id.d.ts +12 -0
  1632. package/lib/resources/interface/petri-net-reference.d.ts +46 -0
  1633. package/lib/resources/interface/petri-net-request-body.d.ts +14 -0
  1634. package/lib/resources/interface/petri-net.d.ts +10 -0
  1635. package/lib/resources/interface/preferences.d.ts +16 -0
  1636. package/lib/resources/interface/process-role.d.ts +9 -0
  1637. package/lib/resources/interface/response-data.d.ts +19 -0
  1638. package/lib/resources/interface/task-layout.d.ts +11 -0
  1639. package/lib/resources/interface/task-reference.d.ts +17 -0
  1640. package/lib/resources/interface/task-set-data-request-body.d.ts +35 -0
  1641. package/lib/resources/interface/task.d.ts +72 -0
  1642. package/lib/resources/interface/user-process-role.d.ts +13 -0
  1643. package/lib/resources/interface/user-resource-small.d.ts +11 -0
  1644. package/lib/resources/interface/user-resource.d.ts +16 -0
  1645. package/lib/resources/public-api.d.ts +42 -0
  1646. package/lib/resources/resource-provider.service.d.ts +53 -0
  1647. package/lib/resources/types/nae-date-type.d.ts +7 -0
  1648. package/lib/routing/dynamic-navigation-route-provider/dynamic-navigation-route-provider.service.d.ts +12 -0
  1649. package/lib/routing/public-api.d.ts +5 -0
  1650. package/lib/routing/redirect-service/redirect.service.d.ts +22 -0
  1651. package/lib/routing/routing-builder/routing-builder.service.d.ts +23 -0
  1652. package/lib/routing/view-service/model/view-entry.d.ts +14 -0
  1653. package/lib/routing/view-service/view.service.d.ts +29 -0
  1654. package/lib/search/advanced-search-component/abstract-advanced-search.component.d.ts +25 -0
  1655. package/lib/search/advanced-search-component-initialization-service/advanced-search-component-initialization.service.d.ts +22 -0
  1656. package/lib/search/category-factory/category-factory.d.ts +55 -0
  1657. package/lib/search/category-factory/category-resolver.service.d.ts +48 -0
  1658. package/lib/search/category-factory/category-serialisation-pair.d.ts +10 -0
  1659. package/lib/search/category-factory/default-categories-factories.d.ts +32 -0
  1660. package/lib/search/category-factory/default-search-categories.module.d.ts +2 -0
  1661. package/lib/search/category-factory/optional-dependencies.d.ts +22 -0
  1662. package/lib/search/category-factory/search-categories-injection-token.d.ts +24 -0
  1663. package/lib/search/fulltext-search-component/abstract-fulltext-search.component.d.ts +7 -0
  1664. package/lib/search/header-search-service/header-search.service.d.ts +112 -0
  1665. package/lib/search/models/base-filter-injection-token.d.ts +6 -0
  1666. package/lib/search/models/base-filter.d.ts +18 -0
  1667. package/lib/search/models/boolean-operator.d.ts +7 -0
  1668. package/lib/search/models/category/autocomplete-category.d.ts +94 -0
  1669. package/lib/search/models/category/autocomplete-options.d.ts +17 -0
  1670. package/lib/search/models/category/case/case-author.d.ts +12 -0
  1671. package/lib/search/models/category/case/case-creation-date-time.d.ts +16 -0
  1672. package/lib/search/models/category/case/case-creation-date.d.ts +16 -0
  1673. package/lib/search/models/category/case/case-dataset.d.ts +94 -0
  1674. package/lib/search/models/category/case/case-net-attribute-autocomplete-category.d.ts +18 -0
  1675. package/lib/search/models/category/case/case-process.d.ts +27 -0
  1676. package/lib/search/models/category/case/case-role.d.ts +15 -0
  1677. package/lib/search/models/category/case/case-search.enum.d.ts +13 -0
  1678. package/lib/search/models/category/case/case-simple-dataset.d.ts +58 -0
  1679. package/lib/search/models/category/case/case-string-id.d.ts +11 -0
  1680. package/lib/search/models/category/case/case-task.d.ts +15 -0
  1681. package/lib/search/models/category/case/case-title.d.ts +11 -0
  1682. package/lib/search/models/category/case/case-visual-id.d.ts +11 -0
  1683. package/lib/search/models/category/categories.d.ts +20 -0
  1684. package/lib/search/models/category/category.d.ts +363 -0
  1685. package/lib/search/models/category/name-id-pair.d.ts +13 -0
  1686. package/lib/search/models/category/net-attribute-autocomplete-category.d.ts +55 -0
  1687. package/lib/search/models/category/net-attribute-pair.d.ts +17 -0
  1688. package/lib/search/models/category/no-configuration-autocomplete-category.d.ts +28 -0
  1689. package/lib/search/models/category/no-configuration-category.d.ts +30 -0
  1690. package/lib/search/models/category/no-configuration-user-autocomplete-category.d.ts +20 -0
  1691. package/lib/search/models/category/search-autocomplete-option.d.ts +21 -0
  1692. package/lib/search/models/category/search-input-type.d.ts +12 -0
  1693. package/lib/search/models/category/task/task-assignee.d.ts +12 -0
  1694. package/lib/search/models/category/task/task-net-attribute-autocomplete-category.d.ts +18 -0
  1695. package/lib/search/models/category/task/task-process.d.ts +19 -0
  1696. package/lib/search/models/category/task/task-role.d.ts +15 -0
  1697. package/lib/search/models/category/task/task-task.d.ts +15 -0
  1698. package/lib/search/models/category/user-autocomplete.d.ts +28 -0
  1699. package/lib/search/models/component-configuration/search-component-configuration-injection-token.d.ts +8 -0
  1700. package/lib/search/models/component-configuration/search-component-configuration.d.ts +21 -0
  1701. package/lib/search/models/component-configuration/search-mode.d.ts +7 -0
  1702. package/lib/search/models/configuration-input.d.ts +38 -0
  1703. package/lib/search/models/datafield-map-key.d.ts +28 -0
  1704. package/lib/search/models/escape-result.d.ts +13 -0
  1705. package/lib/search/models/operator/equals-date-time.d.ts +19 -0
  1706. package/lib/search/models/operator/equals-date.d.ts +19 -0
  1707. package/lib/search/models/operator/equals.d.ts +13 -0
  1708. package/lib/search/models/operator/in-range-date-time.d.ts +24 -0
  1709. package/lib/search/models/operator/in-range-date.d.ts +24 -0
  1710. package/lib/search/models/operator/in-range.d.ts +12 -0
  1711. package/lib/search/models/operator/is-null.d.ts +51 -0
  1712. package/lib/search/models/operator/less-than-date-time.d.ts +16 -0
  1713. package/lib/search/models/operator/less-than-date.d.ts +16 -0
  1714. package/lib/search/models/operator/less-than-equal-date-time.d.ts +16 -0
  1715. package/lib/search/models/operator/less-than-equal-date.d.ts +16 -0
  1716. package/lib/search/models/operator/less-than-equal.d.ts +10 -0
  1717. package/lib/search/models/operator/less-than.d.ts +10 -0
  1718. package/lib/search/models/operator/like.d.ts +18 -0
  1719. package/lib/search/models/operator/more-than-date-time.d.ts +16 -0
  1720. package/lib/search/models/operator/more-than-date.d.ts +16 -0
  1721. package/lib/search/models/operator/more-than-equal-date-time.d.ts +16 -0
  1722. package/lib/search/models/operator/more-than-equal-date.d.ts +16 -0
  1723. package/lib/search/models/operator/more-than-equal.d.ts +10 -0
  1724. package/lib/search/models/operator/more-than.d.ts +10 -0
  1725. package/lib/search/models/operator/not-equals-date-time.d.ts +13 -0
  1726. package/lib/search/models/operator/not-equals-date.d.ts +16 -0
  1727. package/lib/search/models/operator/not-equals.d.ts +18 -0
  1728. package/lib/search/models/operator/operator.d.ts +98 -0
  1729. package/lib/search/models/operator/operators.d.ts +29 -0
  1730. package/lib/search/models/operator/substring.d.ts +13 -0
  1731. package/lib/search/models/operator-template-part-type.d.ts +13 -0
  1732. package/lib/search/models/operator-template-part.d.ts +26 -0
  1733. package/lib/search/models/persistance/filter-metadata-allowed-nets.d.ts +14 -0
  1734. package/lib/search/models/persistance/filter-metadata.d.ts +29 -0
  1735. package/lib/search/models/persistance/filter-text-segment.d.ts +19 -0
  1736. package/lib/search/models/persistance/generator-metadata.d.ts +44 -0
  1737. package/lib/search/models/persistance/saved-filter-metadata.d.ts +26 -0
  1738. package/lib/search/models/predicate/clause-predicate.d.ts +56 -0
  1739. package/lib/search/models/predicate/editable-clause-predicate-with-generators.d.ts +24 -0
  1740. package/lib/search/models/predicate/editable-clause-predicate.d.ts +67 -0
  1741. package/lib/search/models/predicate/editable-elementary-predicate.d.ts +13 -0
  1742. package/lib/search/models/predicate/editable-predicate-with-generator.d.ts +28 -0
  1743. package/lib/search/models/predicate/editable-predicate.d.ts +14 -0
  1744. package/lib/search/models/predicate/elementary-predicate.d.ts +10 -0
  1745. package/lib/search/models/predicate/predicate-with-generator.d.ts +45 -0
  1746. package/lib/search/models/predicate/predicate.d.ts +52 -0
  1747. package/lib/search/models/predicate-removal-event.d.ts +13 -0
  1748. package/lib/search/models/query/query.d.ts +44 -0
  1749. package/lib/search/models/search-index.d.ts +74 -0
  1750. package/lib/search/models/wrap-result.d.ts +13 -0
  1751. package/lib/search/operator-service/operator-resolver.service.d.ts +23 -0
  1752. package/lib/search/operator-service/operator.service.d.ts +16 -0
  1753. package/lib/search/public-api.d.ts +98 -0
  1754. package/lib/search/search-clause-component/abstract-search-clause.component.d.ts +28 -0
  1755. package/lib/search/search-component/abstract-search.component.d.ts +86 -0
  1756. package/lib/search/search-configuration-input-component/abstract-search-configuration-input.component.d.ts +42 -0
  1757. package/lib/search/search-keyword-resolver-service/search-index-resolver.service.d.ts +25 -0
  1758. package/lib/search/search-operand-input-component/abstract-search-operand-input.component.d.ts +38 -0
  1759. package/lib/search/search-predicate-component/abstract-search-predicate.component.d.ts +64 -0
  1760. package/lib/search/search-service/search.service.d.ts +182 -0
  1761. package/lib/side-menu/content-components/filter-selector/abstract-filter-selector.component.d.ts +105 -0
  1762. package/lib/side-menu/content-components/filter-selector/filter-selector-list-item/abstract-filter-selector-list-item.component.d.ts +20 -0
  1763. package/lib/side-menu/content-components/filter-selector/model/filter-selector-injection-data.d.ts +20 -0
  1764. package/lib/side-menu/content-components/filter-selector/model/filtered-array.d.ts +25 -0
  1765. package/lib/side-menu/content-components/import-net/abstract-import-net.component.d.ts +50 -0
  1766. package/lib/side-menu/content-components/injection-tokens.d.ts +8 -0
  1767. package/lib/side-menu/content-components/load-filter/abstract-load-filter.component.d.ts +13 -0
  1768. package/lib/side-menu/content-components/load-filter/model/load-filter-injection-data.d.ts +8 -0
  1769. package/lib/side-menu/content-components/new-case/abstract-new-case.component.d.ts +62 -0
  1770. package/lib/side-menu/content-components/new-case/model/new-case-injection-data.d.ts +13 -0
  1771. package/lib/side-menu/content-components/option-selector/abstract-option-selector.component.d.ts +14 -0
  1772. package/lib/side-menu/content-components/option-selector/model/option-selector-injection-data.d.ts +24 -0
  1773. package/lib/side-menu/content-components/public-api.d.ts +17 -0
  1774. package/lib/side-menu/content-components/save-filter/abstract-save-filter.component.d.ts +15 -0
  1775. package/lib/side-menu/content-components/save-filter/model/save-filter-injection-data.d.ts +4 -0
  1776. package/lib/side-menu/content-components/user-assign/abstract-user-assign.component.d.ts +46 -0
  1777. package/lib/side-menu/content-components/user-assign/model/user-list-injected-data.d.ts +11 -0
  1778. package/lib/side-menu/content-components/user-assign/user-assign-list/abstract-user-assign-list.component.d.ts +83 -0
  1779. package/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/abstract-user-assign-item.component.d.ts +16 -0
  1780. package/lib/side-menu/models/portal-wrapper.d.ts +9 -0
  1781. package/lib/side-menu/models/side-menu-control.d.ts +15 -0
  1782. package/lib/side-menu/models/side-menu-event.d.ts +6 -0
  1783. package/lib/side-menu/models/side-menu-injection-data.d.ts +3 -0
  1784. package/lib/side-menu/models/side-menu-ref.d.ts +8 -0
  1785. package/lib/side-menu/models/side-menu-size.d.ts +5 -0
  1786. package/lib/side-menu/net-version-visible-injection-token.d.ts +3 -0
  1787. package/lib/side-menu/public-api.d.ts +10 -0
  1788. package/lib/side-menu/services/side-menu.service.d.ts +35 -0
  1789. package/lib/side-menu/side-menu-container/abstract-side-menu-container.component.d.ts +16 -0
  1790. package/lib/side-menu/side-menu-injection-token.d.ts +3 -0
  1791. package/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.d.ts +8 -0
  1792. package/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.d.ts +8 -0
  1793. package/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.d.ts +8 -0
  1794. package/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.d.ts +8 -0
  1795. package/lib/snack-bar/models/abstract-snack-bar.d.ts +10 -0
  1796. package/lib/snack-bar/models/injection-token-snackbar.d.ts +4 -0
  1797. package/lib/snack-bar/models/snack-bar-enums.d.ts +9 -0
  1798. package/lib/snack-bar/models/snack-bar-injection-data.d.ts +5 -0
  1799. package/lib/snack-bar/public-api.d.ts +10 -0
  1800. package/lib/snack-bar/services/snack-bar.service.d.ts +18 -0
  1801. package/lib/snack-bar/snack-bar.module.d.ts +2 -0
  1802. package/lib/tabs/classes/opened-tab.d.ts +67 -0
  1803. package/lib/tabs/classes/tab-view.d.ts +123 -0
  1804. package/lib/tabs/interfaces.d.ts +135 -0
  1805. package/lib/tabs/public-api.d.ts +5 -0
  1806. package/lib/tabs/tab-creation-detector/abstract-tab-creation-detector.component.d.ts +18 -0
  1807. package/lib/tabs/tab-data-injection-token/tab-data-injection-token.d.ts +8 -0
  1808. package/lib/tabs/tab-view/abstract-tab-view.component.d.ts +38 -0
  1809. package/lib/task/interfaces/task-operations.d.ts +35 -0
  1810. package/lib/task/models/null-task-operations.d.ts +22 -0
  1811. package/lib/task/models/subject-task-operations.d.ts +37 -0
  1812. package/lib/task/models/task-operations-injection-token.d.ts +3 -0
  1813. package/lib/task/models/task-set-data-request-context.d.ts +11 -0
  1814. package/lib/task/public-api.d.ts +15 -0
  1815. package/lib/task/services/assign-policy.service.d.ts +81 -0
  1816. package/lib/task/services/assign-task.service.d.ts +78 -0
  1817. package/lib/task/services/cancel-task.service.d.ts +79 -0
  1818. package/lib/task/services/data-focus-policy.service.d.ts +16 -0
  1819. package/lib/task/services/delegate-task.service.d.ts +70 -0
  1820. package/lib/task/services/finish-policy.service.d.ts +38 -0
  1821. package/lib/task/services/finish-task.service.d.ts +76 -0
  1822. package/lib/task/services/selected-case.service.d.ts +35 -0
  1823. package/lib/task/services/task-data.service.d.ts +177 -0
  1824. package/lib/task/services/task-handling-service.d.ts +41 -0
  1825. package/lib/task/services/task-request-state.service.d.ts +64 -0
  1826. package/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.d.ts +22 -0
  1827. package/lib/task-content/model/async-rendering-configuration-injection-token.d.ts +8 -0
  1828. package/lib/task-content/model/async-rendering-configuration.d.ts +22 -0
  1829. package/lib/task-content/model/datafield-grid-layout-element.d.ts +9 -0
  1830. package/lib/task-content/model/field-type-resource.d.ts +21 -0
  1831. package/lib/task-content/model/policy.d.ts +27 -0
  1832. package/lib/task-content/model/resource-interface.d.ts +37 -0
  1833. package/lib/task-content/model/split-data-group.d.ts +7 -0
  1834. package/lib/task-content/model/subgrid.d.ts +145 -0
  1835. package/lib/task-content/model/task-content-element-type.d.ts +19 -0
  1836. package/lib/task-content/model/task-event-notification.d.ts +32 -0
  1837. package/lib/task-content/model/task-event.d.ts +8 -0
  1838. package/lib/task-content/public-api.d.ts +17 -0
  1839. package/lib/task-content/services/field-converter.service.d.ts +58 -0
  1840. package/lib/task-content/services/single-task-content.service.d.ts +42 -0
  1841. package/lib/task-content/services/task-content.service.d.ts +125 -0
  1842. package/lib/task-content/services/task-event.service.d.ts +28 -0
  1843. package/lib/task-content/services/unlimited-task-content.service.d.ts +42 -0
  1844. package/lib/task-content/task-content/abstract-task-content.component.d.ts +263 -0
  1845. package/lib/toolbar/abstract-toolbar.component.d.ts +15 -0
  1846. package/lib/toolbar/public-api.d.ts +1 -0
  1847. package/lib/translate/language.service.d.ts +20 -0
  1848. package/lib/translate/public-api.d.ts +2 -0
  1849. package/lib/translate/translate-interceptor.d.ts +8 -0
  1850. package/lib/translate/translate-lib.module.d.ts +5 -0
  1851. package/lib/user/components/user-card/abstract-user-card.component.d.ts +22 -0
  1852. package/lib/user/models/iuser.d.ts +19 -0
  1853. package/lib/user/models/public-api.d.ts +3 -0
  1854. package/lib/user/models/user.d.ts +29 -0
  1855. package/lib/user/models/view-id-injection-tokens.d.ts +3 -0
  1856. package/lib/user/profile/abstract-profile.component.d.ts +14 -0
  1857. package/lib/user/public-api.d.ts +8 -0
  1858. package/lib/user/services/user-comparator.service.d.ts +7 -0
  1859. package/lib/user/services/user-list.service.d.ts +111 -0
  1860. package/lib/user/services/user-preference.service.d.ts +37 -0
  1861. package/lib/user/services/user.service.d.ts +65 -0
  1862. package/lib/user/services/view-id.service.d.ts +7 -0
  1863. package/lib/utility/array-to-observable.d.ts +6 -0
  1864. package/lib/utility/call-chain/after-action.d.ts +8 -0
  1865. package/lib/utility/call-chain/call-chain.service.d.ts +16 -0
  1866. package/lib/utility/clear-time-information.d.ts +6 -0
  1867. package/lib/utility/destroy-subscription.d.ts +6 -0
  1868. package/lib/utility/get-field.d.ts +34 -0
  1869. package/lib/utility/get-immediate-data.d.ts +8 -0
  1870. package/lib/utility/grid-layout/grid-layout-helper.d.ts +10 -0
  1871. package/lib/utility/grid-layout/model/grid-element-with-item.d.ts +4 -0
  1872. package/lib/utility/grid-layout/model/grid-element.d.ts +12 -0
  1873. package/lib/utility/grid-layout/model/grid-filler.d.ts +10 -0
  1874. package/lib/utility/incrementing-counter.d.ts +14 -0
  1875. package/lib/utility/loading-emitter.d.ts +8 -0
  1876. package/lib/utility/loading-with-filter-emitter.d.ts +12 -0
  1877. package/lib/utility/navigation-item-task-filter-factory.d.ts +9 -0
  1878. package/lib/utility/navigation-item-task-search-categories-factory.d.ts +15 -0
  1879. package/lib/utility/of-void.d.ts +6 -0
  1880. package/lib/utility/pagination/load-all-pages.d.ts +13 -0
  1881. package/lib/utility/pagination/page-has-content.d.ts +6 -0
  1882. package/lib/utility/process-message-response.d.ts +10 -0
  1883. package/lib/utility/public-api.d.ts +45 -0
  1884. package/lib/utility/refresh-tree.d.ts +5 -0
  1885. package/lib/utility/result-with-after-actions.d.ts +21 -0
  1886. package/lib/utility/service/case-list-font-color.service.d.ts +15 -0
  1887. package/lib/utility/service/spinner-overlay.service.d.ts +13 -0
  1888. package/lib/utility/stop-propagation.d.ts +1 -0
  1889. package/lib/utility/tests/mocks/mock-authentication-method-service.d.ts +8 -0
  1890. package/lib/utility/tests/mocks/mock-authentication.service.d.ts +10 -0
  1891. package/lib/utility/tests/mocks/mock-endpoint.d.ts +25 -0
  1892. package/lib/utility/tests/mocks/mock-sign-up.service.d.ts +20 -0
  1893. package/lib/utility/tests/mocks/mock-user-autocomplete-value.d.ts +7 -0
  1894. package/lib/utility/tests/mocks/mock-user-preference.service.d.ts +15 -0
  1895. package/lib/utility/tests/mocks/mock-user-resource.service.d.ts +17 -0
  1896. package/lib/utility/tests/search-category-mock-dependencies.d.ts +6 -0
  1897. package/lib/utility/tests/test-config.d.ts +4 -0
  1898. package/lib/utility/tests/test-factory-methods.d.ts +7 -0
  1899. package/lib/utility/tests/test-mock-dependencies.module.d.ts +12 -0
  1900. package/lib/utility/tests/test-view-service.d.ts +7 -0
  1901. package/lib/utility/tests/utility/configure-category.d.ts +13 -0
  1902. package/lib/utility/tests/utility/create-mock-case-outcome.d.ts +10 -0
  1903. package/lib/utility/tests/utility/create-mock-case.d.ts +8 -0
  1904. package/lib/utility/tests/utility/create-mock-datagroup.d.ts +18 -0
  1905. package/lib/utility/tests/utility/create-mock-field.d.ts +19 -0
  1906. package/lib/utility/tests/utility/create-mock-get-data-outcome.d.ts +7 -0
  1907. package/lib/utility/tests/utility/create-mock-immediate-data.d.ts +8 -0
  1908. package/lib/utility/tests/utility/create-mock-net.d.ts +17 -0
  1909. package/lib/utility/tests/utility/create-mock-page.d.ts +7 -0
  1910. package/lib/utility/tests/utility/create-mock-petri-net-outcome.d.ts +9 -0
  1911. package/lib/utility/tests/utility/create-mock-set-data-outcome.d.ts +12 -0
  1912. package/lib/utility/tests/utility/create-mock-task-outcome.d.ts +11 -0
  1913. package/lib/utility/tests/utility/create-mock-task.d.ts +8 -0
  1914. package/lib/view/abstract/page-load-request-context.d.ts +40 -0
  1915. package/lib/view/abstract/sortable-view.d.ts +19 -0
  1916. package/lib/view/abstract/view-with-headers.d.ts +13 -0
  1917. package/lib/view/case-view/abstract-case-view.d.ts +25 -0
  1918. package/lib/view/case-view/components/case-list/abstract-case-list.component.d.ts +35 -0
  1919. package/lib/view/case-view/models/case-page-load-request-result.d.ts +14 -0
  1920. package/lib/view/case-view/models/case-view-params.d.ts +3 -0
  1921. package/lib/view/case-view/models/new-case-configuration-injection-token.d.ts +7 -0
  1922. package/lib/view/case-view/models/new-case-configuration.d.ts +9 -0
  1923. package/lib/view/case-view/service/case-view-service.d.ts +73 -0
  1924. package/lib/view/case-view/tabbed-case-view.d.ts +26 -0
  1925. package/lib/view/public-api.d.ts +35 -0
  1926. package/lib/view/task-view/abstract-task-view.d.ts +12 -0
  1927. package/lib/view/task-view/models/injected-tabbed-task-view-data.d.ts +12 -0
  1928. package/lib/view/task-view/models/injection-token-task-endpoint.d.ts +6 -0
  1929. package/lib/view/task-view/models/task-endpoint.d.ts +7 -0
  1930. package/lib/view/task-view/models/task-page-load-request-result.d.ts +14 -0
  1931. package/lib/view/task-view/models/task-view-configuration-injection-token.d.ts +13 -0
  1932. package/lib/view/task-view/models/task-view-configuration.d.ts +19 -0
  1933. package/lib/view/task-view/models/task-view-params.d.ts +3 -0
  1934. package/lib/view/task-view/service/task-view.service.d.ts +68 -0
  1935. package/lib/view/task-view/tabbed-task-view.d.ts +11 -0
  1936. package/lib/view/tree-case-view/model/tree-petriflow-identifiers.d.ts +41 -0
  1937. package/lib/view/tree-case-view/tree-case-view.service.d.ts +9 -0
  1938. package/lib/view/tree-case-view/tree-component/abstract-tree.component.d.ts +99 -0
  1939. package/lib/view/tree-case-view/tree-component/add-child-node/abstract-add-child-node.component.d.ts +8 -0
  1940. package/lib/view/tree-case-view/tree-component/case-tree.service.d.ts +300 -0
  1941. package/lib/view/tree-case-view/tree-component/model/case-tree-node.d.ts +57 -0
  1942. package/lib/view/tree-case-view/tree-component/model/case-tree-path.d.ts +8 -0
  1943. package/lib/view/tree-case-view/tree-component/model/expansion-tree.d.ts +6 -0
  1944. package/lib/view/tree-case-view/tree-component/remove-node/abstract-remove-node.component.d.ts +8 -0
  1945. package/lib/view/tree-case-view/tree-task-content/abstract-tree-task-content.component.d.ts +32 -0
  1946. package/lib/view/tree-case-view/tree-task-content/tree-task-content.service.d.ts +112 -0
  1947. package/lib/view/workflow-view/abstract-workflow-view.component.d.ts +30 -0
  1948. package/lib/view/workflow-view/models/injection-token-workflow-service.d.ts +10 -0
  1949. package/lib/view/workflow-view/workflow-view.service.d.ts +52 -0
  1950. package/netgrif-components-core.d.ts +25 -0
  1951. package/netgrif-components-core.metadata.json +1 -0
  1952. package/package.json +79 -0
  1953. package/public-api.d.ts +39 -0
  1954. package/schematics/_commons/angular-cli-devkit-core-strings.d.ts +93 -0
  1955. package/schematics/_commons/angular-cli-devkit-core-strings.js +167 -0
  1956. package/schematics/_commons/angular-cli-devkit-core-strings.js.map +1 -0
  1957. package/schematics/_commons/import-to-add.d.ts +5 -0
  1958. package/schematics/_commons/import-to-add.js +11 -0
  1959. package/schematics/_commons/import-to-add.js.map +1 -0
  1960. package/schematics/_commons/view-class-info.d.ts +22 -0
  1961. package/schematics/_commons/view-class-info.js +58 -0
  1962. package/schematics/_commons/view-class-info.js.map +1 -0
  1963. package/schematics/_utility/models/file-data.d.ts +6 -0
  1964. package/schematics/_utility/models/file-data.js +3 -0
  1965. package/schematics/_utility/models/file-data.js.map +1 -0
  1966. package/schematics/_utility/models/file-system-node.d.ts +6 -0
  1967. package/schematics/_utility/models/file-system-node.js +12 -0
  1968. package/schematics/_utility/models/file-system-node.js.map +1 -0
  1969. package/schematics/_utility/models/project-info.d.ts +13 -0
  1970. package/schematics/_utility/models/project-info.js +20 -0
  1971. package/schematics/_utility/models/project-info.js.map +1 -0
  1972. package/schematics/_utility/modified-library-functions.d.ts +24 -0
  1973. package/schematics/_utility/modified-library-functions.js +150 -0
  1974. package/schematics/_utility/modified-library-functions.js.map +1 -0
  1975. package/schematics/_utility/utility-functions.d.ts +60 -0
  1976. package/schematics/_utility/utility-functions.js +221 -0
  1977. package/schematics/_utility/utility-functions.js.map +1 -0
  1978. package/schematics/add/add/index.d.ts +2 -0
  1979. package/schematics/add/add/index.js +27 -0
  1980. package/schematics/add/add/index.js.map +1 -0
  1981. package/schematics/add/create-nae-files/files/app-routing.module.ts.template +13 -0
  1982. package/schematics/add/create-nae-files/index.d.ts +2 -0
  1983. package/schematics/add/create-nae-files/index.js +154 -0
  1984. package/schematics/add/create-nae-files/index.js.map +1 -0
  1985. package/schematics/add/create-nae-files/schema.json +7 -0
  1986. package/schematics/collection.json +30 -0
  1987. package/schematics/configuration-service/files/__project@dasherize__-configuration.service.ts.template +13 -0
  1988. package/schematics/configuration-service/schema.json +7 -0
  1989. package/schematics/configuration-service/schematic-create-configuration-service.d.ts +2 -0
  1990. package/schematics/configuration-service/schematic-create-configuration-service.js +41 -0
  1991. package/schematics/configuration-service/schematic-create-configuration-service.js.map +1 -0
  1992. package/schematics/migrations/4.1/migration-4.1.d.ts +5 -0
  1993. package/schematics/migrations/4.1/migration-4.1.js +37 -0
  1994. package/schematics/migrations/4.1/migration-4.1.js.map +1 -0
  1995. package/schematics/migrations.json +10 -0
  1996. package/schematics/view/_utility/view-service-functions.d.ts +9 -0
  1997. package/schematics/view/_utility/view-service-functions.js +59 -0
  1998. package/schematics/view/_utility/view-service-functions.js.map +1 -0
  1999. package/schematics/view/_utility/view-utility-functions.d.ts +7 -0
  2000. package/schematics/view/_utility/view-utility-functions.js +53 -0
  2001. package/schematics/view/_utility/view-utility-functions.js.map +1 -0
  2002. package/schematics/view-service/files/__project@dasherize__-view.service.ts.template +14 -0
  2003. package/schematics/view-service/schema.json +7 -0
  2004. package/schematics/view-service/schematic-create-view-service.d.ts +2 -0
  2005. package/schematics/view-service/schematic-create-view-service.js +25 -0
  2006. package/schematics/view-service/schematic-create-view-service.js.map +1 -0
  2007. package/src/assets/i18n/de.json +419 -0
  2008. package/src/assets/i18n/en.json +419 -0
  2009. package/src/assets/i18n/sk.json +419 -0
  2010. package/src/schema/nae-schema.json +770 -0
@@ -0,0 +1,656 @@
1
+ import { EventEmitter, Inject, Input, Optional, Output } from '@angular/core';
2
+ import { FieldConverterService } from '../services/field-converter.service';
3
+ import { TaskContentService } from '../services/task-content.service';
4
+ import { PaperViewService } from '../../navigation/quick-panel/components/paper-view.service';
5
+ import { LoggerService } from '../../logger/services/logger.service';
6
+ import { TaskEventService } from '../services/task-event.service';
7
+ import { DataGroupAlignment } from '../../resources/interface/data-groups';
8
+ import { TaskElementType } from '../model/task-content-element-type';
9
+ import { DataGroupCompact, DataGroupHideEmptyRows, DataGroupLayoutType } from '../../resources/interface/data-group-layout';
10
+ import { FieldAlignment } from '../../resources/interface/field-alignment';
11
+ import { FieldTypeResource } from '../model/field-type-resource';
12
+ import { LoadingEmitter } from '../../utility/loading-emitter';
13
+ import { BehaviorSubject } from 'rxjs';
14
+ import { map } from 'rxjs/operators';
15
+ import { NAE_ASYNC_RENDERING_CONFIGURATION } from '../model/async-rendering-configuration-injection-token';
16
+ import { TaskRefField } from '../../data-fields/task-ref-field/model/task-ref-field';
17
+ import { Subgrid } from '../model/subgrid';
18
+ import { IncrementingCounter } from '../../utility/incrementing-counter';
19
+ export class AbstractTaskContentComponent {
20
+ constructor(_fieldConverter, taskContentService, _paperView, _logger, _taskEventService = null, asyncRenderingConfiguration = null) {
21
+ this._fieldConverter = _fieldConverter;
22
+ this.taskContentService = taskContentService;
23
+ this._paperView = _paperView;
24
+ this._logger = _logger;
25
+ this._taskEventService = _taskEventService;
26
+ this.DEFAULT_LAYOUT_TYPE = DataGroupLayoutType.LEGACY;
27
+ this.DEFAULT_FIELD_ALIGNMENT = FieldAlignment.CENTER;
28
+ this.DEFAULT_ASYNC_RENDERING_CONFIGURATION = {
29
+ batchSize: 4,
30
+ batchDelay: 200,
31
+ numberOfPlaceholders: 4,
32
+ enableAsyncRenderingForNewFields: true,
33
+ enableAsyncRenderingOnTaskExpand: true
34
+ };
35
+ this.DEFAULT_COMPACT_DIRECTION = DataGroupCompact.NONE;
36
+ this.DEFAULT_HIDE_EMPTY_ROWS = DataGroupHideEmptyRows.ALL;
37
+ /**
38
+ * Exists to allow references to the enum in the HTML
39
+ */
40
+ this.fieldTypeResource = FieldTypeResource;
41
+ /**
42
+ * Whether an icon should be displayed when the no data message is shown.
43
+ *
44
+ * An icon is displayed by default
45
+ */
46
+ this.displayNoDataIcon = true;
47
+ /**
48
+ * Defines the row height of one row in task content
49
+ */
50
+ this.rowHeight = 105;
51
+ this.trackBySubgridFn = (index, subgrid) => subgrid.subgridId;
52
+ this.trackByFn = (index, element) => this.trackByDatafields(index, element);
53
+ this._asyncRenderingConfig = Object.assign({}, this.DEFAULT_ASYNC_RENDERING_CONFIGURATION);
54
+ if (asyncRenderingConfiguration !== null) {
55
+ Object.assign(this._asyncRenderingConfig, asyncRenderingConfiguration);
56
+ }
57
+ this.loading$ = new LoadingEmitter(true);
58
+ this._dataSource$ = new BehaviorSubject([]);
59
+ this.hasDataToDisplay$ = this._dataSource$.pipe(map(data => {
60
+ return data.length !== 0;
61
+ }));
62
+ this._subTaskContent = this.taskContentService.$shouldCreate.subscribe(data => {
63
+ if (data.length !== 0) {
64
+ this.computeDefaultLayoutConfiguration();
65
+ this.computeLayoutData(data);
66
+ }
67
+ else {
68
+ this.renderContent();
69
+ }
70
+ this.loading$.off();
71
+ });
72
+ if (this._taskEventService !== null) {
73
+ this.taskEvent = new EventEmitter();
74
+ this._subTaskEvent = _taskEventService.taskEventNotifications$.subscribe(event => {
75
+ this.taskEvent.emit(event);
76
+ });
77
+ }
78
+ }
79
+ ngOnDestroy() {
80
+ this.loading$.complete();
81
+ this._dataSource$.complete();
82
+ this._subTaskContent.unsubscribe();
83
+ if (this.taskEvent) {
84
+ this.taskEvent.complete();
85
+ }
86
+ if (this._subTaskEvent) {
87
+ this._subTaskEvent.unsubscribe();
88
+ }
89
+ if (this._asyncRenderTimeout !== undefined) {
90
+ window.clearTimeout(this._asyncRenderTimeout);
91
+ }
92
+ }
93
+ get taskId() {
94
+ return this.taskContentService.task.stringId;
95
+ }
96
+ get dataSource() {
97
+ return this._dataSource$.getValue();
98
+ }
99
+ /**
100
+ * @returns the number of columns as specified by the tasks layout property, or 4 if no value is specified.
101
+ */
102
+ getNumberOfFormColumns() {
103
+ if (!this.taskContentService.task
104
+ || !this.taskContentService.task.layout
105
+ || this.taskContentService.task.layout.cols === undefined) {
106
+ return 4;
107
+ }
108
+ else {
109
+ return this.taskContentService.task.layout.cols;
110
+ }
111
+ }
112
+ isPaperView() {
113
+ return this._paperView.paperView;
114
+ }
115
+ /**
116
+ * @param item an object containing grid element information
117
+ * @returns the Angular flex layouts alignment property for individual data fields based on
118
+ * the layout configuration specified by the process
119
+ */
120
+ getItemAlignment(item) {
121
+ var _a, _b, _c;
122
+ if (item.alignment) {
123
+ return item.alignment;
124
+ }
125
+ const fieldAlignment = (_c = (_b = (_a = item.item) === null || _a === void 0 ? void 0 : _a.localLayout) === null || _b === void 0 ? void 0 : _b.alignment) !== null && _c !== void 0 ? _c : this._defaultAlignment;
126
+ let alignment;
127
+ switch (fieldAlignment) {
128
+ case FieldAlignment.TOP:
129
+ alignment = 'start';
130
+ break;
131
+ case FieldAlignment.CENTER:
132
+ alignment = 'center';
133
+ break;
134
+ case FieldAlignment.BOTTOM:
135
+ alignment = 'end';
136
+ break;
137
+ }
138
+ item.alignment = 'space-between ' + alignment;
139
+ return item.alignment;
140
+ }
141
+ /**
142
+ * Computes component height if the rows attribute of task layout is set.
143
+ */
144
+ resolveContentHeightCss() {
145
+ if (this.scrollingNeeded()) {
146
+ return this.taskContentService.task.layout.rows * this.rowHeight + 'px';
147
+ }
148
+ else {
149
+ return '100%';
150
+ }
151
+ }
152
+ /**
153
+ * Decides whether there is a fixed number of rows and it need-s scrolling
154
+ */
155
+ scrollingNeeded() {
156
+ return this.taskContentService.task
157
+ && !!this.taskContentService.task.layout
158
+ && !!this.taskContentService.task.layout.rows
159
+ && this.taskContentService.task.layout.rows > 0;
160
+ }
161
+ /**
162
+ * @returns the default alignment for the displayed task that can be overridden by fields individual property.
163
+ * If te task specifies no default value the [global default]{@link AbstractTaskContentComponent#DEFAULT_FIELD_ALIGNMENT}
164
+ * value is returned.
165
+ */
166
+ computeDefaultLayoutConfiguration() {
167
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
168
+ this._defaultAlignment = (_c = (_b = (_a = this.taskContentService.task) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.fieldAlignment) !== null && _c !== void 0 ? _c : this.DEFAULT_FIELD_ALIGNMENT;
169
+ this._defaultCompactDirection = (_f = (_e = (_d = this.taskContentService.task) === null || _d === void 0 ? void 0 : _d.layout) === null || _e === void 0 ? void 0 : _e.compactDirection) !== null && _f !== void 0 ? _f : this.DEFAULT_COMPACT_DIRECTION;
170
+ this._defaultHideEmptyRows = (_j = (_h = (_g = this.taskContentService.task) === null || _g === void 0 ? void 0 : _g.layout) === null || _h === void 0 ? void 0 : _h.hideEmptyRows) !== null && _j !== void 0 ? _j : this.DEFAULT_HIDE_EMPTY_ROWS;
171
+ this._defaultNumberOfCols = this.getNumberOfFormColumns();
172
+ }
173
+ /**
174
+ * Computes the layout data for the tasks grid layout and sets the result to the public properties
175
+ * of this class that are then bound to HTML.
176
+ * @param dataGroups the data groups that should be laid out
177
+ */
178
+ computeLayoutData(dataGroups) {
179
+ if (!this.taskContentService.task) {
180
+ this.renderContent();
181
+ return;
182
+ }
183
+ this._subgridIdCounter = new IncrementingCounter();
184
+ this._existingSubgridIds = new Set();
185
+ const result = new Map();
186
+ dataGroups = this.preprocessDataGroups(dataGroups);
187
+ const defaultLayout = this.taskContentService.task.layout && this.taskContentService.task.layout.type
188
+ ? this.taskContentService.task.layout.type
189
+ : this.DEFAULT_LAYOUT_TYPE;
190
+ dataGroups.forEach(group => {
191
+ var _a;
192
+ if (!group.layout) {
193
+ group.layout = { rows: undefined, cols: undefined, type: defaultLayout };
194
+ }
195
+ if (!group.layout.type) {
196
+ group.layout.type = defaultLayout;
197
+ }
198
+ const subgrid = new Subgrid(this.createSubgridId(group), (_a = group.layout.cols) !== null && _a !== void 0 ? _a : this._defaultNumberOfCols, this._asyncRenderingConfig);
199
+ if (group.title !== undefined) {
200
+ const title = subgrid.addTitle(group);
201
+ subgrid.addRow(this.newGridRow(subgrid.cols, title.gridAreaId));
202
+ }
203
+ switch (group.layout.type) {
204
+ case DataGroupLayoutType.GRID:
205
+ this.computeGridLayout(group, subgrid);
206
+ break;
207
+ case DataGroupLayoutType.FLOW:
208
+ this.computeFlowLayout(group, subgrid);
209
+ break;
210
+ case DataGroupLayoutType.LEGACY:
211
+ this.computeLegacyLayout(group, subgrid);
212
+ break;
213
+ default:
214
+ throw new Error(`Unknown task layout type '${this.taskContentService.task.layout.type}'`);
215
+ }
216
+ subgrid.finalize();
217
+ result.set(subgrid.subgridId, subgrid);
218
+ });
219
+ this.renderFields(result);
220
+ }
221
+ renderFields(subgrids) {
222
+ const subgridsArray = Array.from(subgrids.values());
223
+ if (!this._asyncRenderingConfig.enableAsyncRenderingForNewFields
224
+ && !(this._asyncRenderingConfig.enableAsyncRenderingOnTaskExpand && this.taskContentService.isExpanding)) {
225
+ subgridsArray.forEach(subgrid => {
226
+ subgrid.displayAllFields();
227
+ });
228
+ this.renderContent(subgridsArray);
229
+ return;
230
+ }
231
+ if (!(this.taskContentService.isExpanding && this._asyncRenderingConfig.enableAsyncRenderingOnTaskExpand)) {
232
+ this._dataSource$.value.forEach(oldSubgrid => {
233
+ if (subgrids.has(oldSubgrid.subgridId)) {
234
+ subgrids.get(oldSubgrid.subgridId).determineKeptFields(oldSubgrid);
235
+ }
236
+ });
237
+ }
238
+ this.renderContent(subgridsArray);
239
+ this.spreadFieldRenderingOverTime(subgridsArray);
240
+ }
241
+ spreadFieldRenderingOverTime(subgrids, iteration = 0) {
242
+ this._asyncRenderTimeout = undefined;
243
+ if (iteration < subgrids.length) {
244
+ this._asyncRenderTimeout = window.setTimeout(() => {
245
+ subgrids[iteration].renderContentOverTime(() => {
246
+ this.spreadFieldRenderingOverTime(subgrids, iteration + 1);
247
+ }, iteration === 0);
248
+ });
249
+ }
250
+ }
251
+ /**
252
+ * Clones the content of the data groups to prevent unintentional memory accesses to source data.
253
+ * Rearranges the data groups to accommodate taskrefs. Filters out hidden and forbidden fields.
254
+ * @param dataGroups
255
+ * @returns the preprocesses data groups
256
+ */
257
+ preprocessDataGroups(dataGroups) {
258
+ dataGroups = this.cloneAndFilterHidden(dataGroups);
259
+ const result = [];
260
+ for (let i = 0; i < dataGroups.length; i++) {
261
+ const group = dataGroups[i];
262
+ if (!group.fields.some(f => this.isTaskRef(f))) {
263
+ result.push(group);
264
+ continue;
265
+ }
266
+ const split = this.splitDataGroupOnTaskRef(group);
267
+ if (split.startGroup !== undefined) {
268
+ result.push(split.startGroup);
269
+ }
270
+ if (split.taskRef.value.length === 0 || split.endGroup === undefined) {
271
+ if (split.endGroup !== undefined) {
272
+ dataGroups.splice(i + 1, 0, split.endGroup);
273
+ }
274
+ continue;
275
+ }
276
+ const directChild = dataGroups[i + 1]; // the data group that immediately follows IS ALWAYS a direct child
277
+ let firstNonDescendantIndex = i + 2;
278
+ for (; firstNonDescendantIndex < dataGroups.length; firstNonDescendantIndex++) {
279
+ const nextGroup = dataGroups[firstNonDescendantIndex];
280
+ if (nextGroup.nestingLevel === undefined || nextGroup.nestingLevel < directChild.nestingLevel) {
281
+ // end of the block of nested data groups
282
+ break;
283
+ }
284
+ if (nextGroup.nestingLevel === directChild.nestingLevel
285
+ && (nextGroup.parentTaskRefId !== split.taskRef.stringId
286
+ || !split.taskRef.value.some(reffedTaskId => reffedTaskId === nextGroup.parentTaskId))) {
287
+ break;
288
+ }
289
+ }
290
+ dataGroups.splice(firstNonDescendantIndex, 0, split.endGroup);
291
+ }
292
+ return result;
293
+ }
294
+ /**
295
+ * Creates a duplicate of the provided data group array and filters away any fields and data groups that are marked as hidden.
296
+ * Because of the duplication the filtering doesn't affect the original instances and they remain unchanged.
297
+ * @param dataGroups the data groups that should be filtered
298
+ * @returns the filtered duplicated data groups
299
+ */
300
+ cloneAndFilterHidden(dataGroups) {
301
+ const result = dataGroups.map(group => {
302
+ const g = Object.assign({}, group);
303
+ g.fields = g.fields.filter(field => !field.behavior.hidden && !field.behavior.forbidden).map(field => {
304
+ field.resetLocalLayout();
305
+ return field;
306
+ });
307
+ return g;
308
+ });
309
+ return result.filter(group => group.fields.length > 0);
310
+ }
311
+ isTaskRef(field) {
312
+ return field instanceof TaskRefField;
313
+ }
314
+ /**
315
+ * Sorts the input data group based on the Y coordinate of the fields and splits it into parts on the first task ref.
316
+ * If some fields appear before the first task ref they are extracted into a new [startGroup]{@link SplitDataGroup#startGroup}.
317
+ * If some fields appear after the first task ref they are extracted into a new [endGroup]{@link SplitDataGroup#endGroup}.
318
+ * @param dataGroup
319
+ * @protected
320
+ */
321
+ splitDataGroupOnTaskRef(dataGroup) {
322
+ dataGroup.fields.sort((a, b) => a.localLayout.y - b.localLayout.y);
323
+ const taskRefPosition = dataGroup.fields.findIndex(f => this.isTaskRef(f));
324
+ const result = {
325
+ taskRef: dataGroup.fields[taskRefPosition]
326
+ };
327
+ if (taskRefPosition !== 0) {
328
+ result.startGroup = {
329
+ title: dataGroup.title,
330
+ alignment: dataGroup.alignment,
331
+ layout: dataGroup.layout,
332
+ stretch: dataGroup.stretch,
333
+ fields: dataGroup.fields.slice(0, taskRefPosition),
334
+ };
335
+ }
336
+ if (taskRefPosition !== dataGroup.fields.length - 1) {
337
+ result.endGroup = {
338
+ title: undefined,
339
+ alignment: dataGroup.alignment,
340
+ layout: dataGroup.layout,
341
+ stretch: dataGroup.stretch,
342
+ fields: dataGroup.fields.slice(taskRefPosition + 1),
343
+ };
344
+ result.endGroup.fields.forEach(f => {
345
+ f.localLayout.y = f.localLayout.y - result.taskRef.localLayout.y - 1;
346
+ });
347
+ }
348
+ return result;
349
+ }
350
+ /**
351
+ * Computes the layout data for a single data group with grid layout. The resulting layout is saved into the input objects.
352
+ * @param dataGroup the data group that should be laid out into a grid
353
+ * @param subgrid the object that holds the context of the computed layouting unit
354
+ */
355
+ computeGridLayout(dataGroup, subgrid) {
356
+ const localGrid = [];
357
+ dataGroup.fields.forEach(dataField => {
358
+ if (!dataField.localLayout
359
+ || dataField.localLayout.x === undefined
360
+ || dataField.localLayout.y === undefined
361
+ || !dataField.localLayout.rows
362
+ || !dataField.localLayout.cols) {
363
+ throw new Error(`You cannot use 'grid' layout without specifying the layout of the data fields (field ID: ${dataField.stringId})`);
364
+ }
365
+ while (localGrid.length < dataField.localLayout.y + dataField.localLayout.rows) {
366
+ localGrid.push(this.newGridRow(subgrid.cols));
367
+ }
368
+ const fieldElement = subgrid.addField(dataField, this._fieldConverter.resolveType(dataField));
369
+ this.occupySpace(localGrid, dataField.localLayout.y, dataField.localLayout.x, dataField.localLayout.cols, fieldElement.gridAreaId, dataField.localLayout.rows);
370
+ });
371
+ this.collapseGridEmptySpace(localGrid, dataGroup.layout, subgrid);
372
+ localGrid.forEach(localGridRow => subgrid.addRow(localGridRow));
373
+ }
374
+ /**
375
+ * Applies the empty row removal and field compacting rules based on the provided layout configuration.
376
+ *
377
+ * The input grid is modified in place.
378
+ * @param grid the state of the grid that should be modified
379
+ * @param layout configuration of the applied compacting rules
380
+ * @param subgrid the object that holds the context of the computed layouting unit
381
+ */
382
+ collapseGridEmptySpace(grid, layout, subgrid) {
383
+ var _a, _b;
384
+ const hideRows = (_a = layout.hideEmptyRows) !== null && _a !== void 0 ? _a : this._defaultHideEmptyRows;
385
+ if (hideRows === DataGroupHideEmptyRows.ALL) {
386
+ this.removeEmptyRows(grid);
387
+ }
388
+ switch ((_b = layout.compactDirection) !== null && _b !== void 0 ? _b : this._defaultCompactDirection) {
389
+ case DataGroupCompact.UP:
390
+ this.compactFieldsUp(grid, hideRows, subgrid);
391
+ break;
392
+ }
393
+ }
394
+ /**
395
+ * Moves any element as far UP as it can go. Elements that were originally declared in the same row might end up in different rows.
396
+ * Resulting trailing empty rows are removed.
397
+ *
398
+ * The input grid is modified in place.
399
+ * @param grid the state of the grid that should be modified
400
+ * @param hideRows configuration for empty row removal during the compacting process
401
+ * @param subgrid the object that holds the context of the computed layouting unit
402
+ */
403
+ compactFieldsUp(grid, hideRows, subgrid) {
404
+ for (let rowIndex = 0; rowIndex < grid.length; rowIndex++) {
405
+ const row = grid[rowIndex];
406
+ for (let columnIndex = 0; columnIndex < row.length; columnIndex++) {
407
+ if (row[columnIndex] !== '') {
408
+ continue;
409
+ }
410
+ let foundElement = false;
411
+ let foundElementRowIndex = rowIndex + 1;
412
+ for (; foundElementRowIndex < grid.length; foundElementRowIndex++) {
413
+ if (grid[foundElementRowIndex][columnIndex] !== '') {
414
+ foundElement = true;
415
+ break;
416
+ }
417
+ }
418
+ if (!foundElement) {
419
+ continue;
420
+ }
421
+ if (columnIndex > 0 && grid[foundElementRowIndex][columnIndex - 1] === grid[foundElementRowIndex][columnIndex]) {
422
+ continue;
423
+ }
424
+ const elementDimensions = this.getElementDimensions(grid, columnIndex, foundElementRowIndex, subgrid);
425
+ if (this.isAreaEmpty(grid, columnIndex, rowIndex, elementDimensions.width, foundElementRowIndex - rowIndex)) {
426
+ const element = grid[foundElementRowIndex][columnIndex];
427
+ this.occupySpace(grid, foundElementRowIndex, columnIndex, elementDimensions.width, '', elementDimensions.height, false);
428
+ this.occupySpace(grid, rowIndex, columnIndex, elementDimensions.width, element, elementDimensions.height, false);
429
+ if (hideRows !== DataGroupHideEmptyRows.NONE) {
430
+ // we only check the rows potentially cleared by moving the grid element up
431
+ this.removeEmptyRows(grid, foundElementRowIndex, foundElementRowIndex + elementDimensions.height);
432
+ }
433
+ }
434
+ }
435
+ }
436
+ }
437
+ /**
438
+ * Removes rows from the grid that only contain empty elements (are empty). The grid is modified in place.
439
+ * @param grid the grid that should have it's empty rows removed
440
+ * @param firstRow the 0 based index of the first row that should be checked. Use 0 to start from the beginning of the grid.
441
+ *
442
+ * If no value is provided, the grid will be checked from the first row.
443
+ *
444
+ * @param lastRow the 0 based index of the row where the checking should end. The row with this index is not checked.
445
+ *
446
+ * If no value is provided the entire grid from the `firstRow` will be checked.
447
+ *
448
+ * If a value that is smaller or equal to the `firstRow` is provided no checks will be preformed.
449
+ */
450
+ removeEmptyRows(grid, firstRow = 0, lastRow = Number.POSITIVE_INFINITY) {
451
+ let i = firstRow;
452
+ while (i < grid.length && i < lastRow) {
453
+ if (grid[i].every(element => element === '')) {
454
+ grid.splice(i, 1);
455
+ }
456
+ else {
457
+ i++;
458
+ }
459
+ }
460
+ }
461
+ /**
462
+ * Determines the dimensions of the element in the grid with its top-left corner at the specified position
463
+ * @param grid the grid of elements
464
+ * @param x the X coordinate of the desired elements top-left corner
465
+ * @param y the Y coordinate of the desired elements top-left corner
466
+ * @param subgrid the object that holds the context of the computed layouting unit
467
+ * @returns the width and height of the specified element
468
+ */
469
+ getElementDimensions(grid, x, y, subgrid) {
470
+ const element = grid[y][x];
471
+ let width = 1;
472
+ while (x + width < subgrid.cols && grid[y][x + width] === element) {
473
+ width++;
474
+ }
475
+ let height = 1;
476
+ while (y + height < grid.length && grid[y + height][x] === element) {
477
+ height++;
478
+ }
479
+ return { width, height };
480
+ }
481
+ /**
482
+ * Determines whether the specified area in the grid contains no elements, or not
483
+ * @param grid the grid of elements
484
+ * @param x the X coordinate of the tested areas top-left corner
485
+ * @param y the Y coordinate of the tested areas top-left corner
486
+ * @param width the width of the tested area
487
+ * @param height the height of the tested area
488
+ */
489
+ isAreaEmpty(grid, x, y, width, height) {
490
+ for (let i = y; i < y + height; i++) {
491
+ for (let j = x; j < x + width; j++) {
492
+ if (grid[i][j] !== '') {
493
+ return false;
494
+ }
495
+ }
496
+ }
497
+ return true;
498
+ }
499
+ /**
500
+ * Computes the layout data for a single data group with flow layout. The resulting layout is saved into the input objects.
501
+ * @param dataGroup the data group that should be laid out into a grid using the flow algorithm
502
+ * @param subgrid the object that holds the context of the computed layouting unit
503
+ */
504
+ computeFlowLayout(dataGroup, subgrid) {
505
+ this.flowFields(dataGroup, subgrid, 1);
506
+ }
507
+ /**
508
+ * Computes the layout data for a single data group with legacy layout. The resulting layout is saved into the input objects.
509
+ *
510
+ * The legacy layout forces the number of columns to be 4 and logs a warning if this was not the case.
511
+ * @param dataGroup the data group that should be laid out into a grid using the legacy algorithm used in NAE versions < 4.0.0
512
+ * @param subgrid the object that holds the context of the computed layouting unit
513
+ */
514
+ computeLegacyLayout(dataGroup, subgrid) {
515
+ if (subgrid.cols !== 4) {
516
+ subgrid.cols = 4;
517
+ this._logger.warn(`Task with id '${this.taskContentService.task.stringId}' has a data group with legacy layout with a `
518
+ + `non-default number of columns. If you want to use a layout with different number of columns than 2 use a different `
519
+ + `layout type instead.`);
520
+ }
521
+ this.flowFields(dataGroup, subgrid, 2);
522
+ }
523
+ /**
524
+ * Lays out the fields from left to right, from top to bottom. If the width is greater than 1 and the block of flowed fields doesn't fit
525
+ * neatly into the columns (if the width of a single field is not a divisor of column count), then the entire block of fields is
526
+ * left aligned. The last row of fields is aligned to the left, center or right based on the data groups property.
527
+ * If the last row cannot be aligned to the exact center it is offset one grid tile to the left.
528
+ * @param dataGroup the data group that should be laid out into a grid
529
+ * @param subgrid the object that holds the context of the computed layouting unit
530
+ * @param fieldWidth the number of grid tiles, that should be occupied by each field
531
+ */
532
+ flowFields(dataGroup, subgrid, fieldWidth) {
533
+ const fieldsPerRow = Math.floor(subgrid.cols / fieldWidth);
534
+ const maxXPosition = fieldWidth * (fieldsPerRow - 1);
535
+ let xPosition = 0;
536
+ const localGrid = [];
537
+ dataGroup.fields.forEach((dataField, dataFieldCount) => {
538
+ const fieldElement = subgrid.addField(dataField, this._fieldConverter.resolveType(dataField));
539
+ if (dataGroup.stretch) {
540
+ subgrid.addRow(this.newGridRow(subgrid.cols, fieldElement.gridAreaId));
541
+ return; // continue
542
+ }
543
+ // else
544
+ if (xPosition === 0) {
545
+ localGrid.push(this.newGridRow(subgrid.cols));
546
+ }
547
+ if (xPosition === 0 && this.isLastRow(dataFieldCount, dataGroup, fieldsPerRow)) {
548
+ const fieldsInLastRow = dataGroup.fields.length % fieldsPerRow;
549
+ const rowWidth = maxXPosition + fieldWidth;
550
+ if (dataGroup.alignment === DataGroupAlignment.END) {
551
+ xPosition = rowWidth - fieldWidth * fieldsInLastRow;
552
+ }
553
+ else if (dataGroup.alignment === DataGroupAlignment.CENTER) {
554
+ xPosition = Math.floor((rowWidth - fieldsInLastRow * fieldWidth) / 2);
555
+ }
556
+ }
557
+ this.occupySpace(localGrid, localGrid.length - 1, xPosition, fieldWidth, fieldElement.gridAreaId);
558
+ xPosition += fieldWidth;
559
+ if (xPosition > maxXPosition) {
560
+ xPosition = 0;
561
+ }
562
+ });
563
+ localGrid.forEach(row => subgrid.addRow(row));
564
+ }
565
+ /**
566
+ * @param width width of the row
567
+ * @param content the value that should be used to fill all elements in the row
568
+ */
569
+ newGridRow(width, content = '') {
570
+ return Array(width).fill(content);
571
+ }
572
+ /**
573
+ * Fills the specified rectangular area with the specified value in the provided grid.
574
+ *
575
+ * If the specified area contains values other than the empty string an error will be thrown.
576
+ * @param grid the grid that should be modified
577
+ * @param y the 0 based row index of the top-left corner of the filled area
578
+ * @param x the 0 based column index of the top-left corner of the filled area
579
+ * @param width the width of the filled area
580
+ * @param value the value that is set into every cell of the grid inside the specified area
581
+ * @param height the height of the filled area
582
+ * @param checkOccupants whether the filled area should be checked for other elements.
583
+ * If a check is performed an error will be thrown if elements are found.
584
+ */
585
+ occupySpace(grid, y, x, width, value, height = 1, checkOccupants = true) {
586
+ for (let j = y; j < y + height; j++) {
587
+ for (let i = x; i < x + width; i++) {
588
+ if (checkOccupants && grid[j][i] !== '') {
589
+ throw new Error(`Cannot place element ${value} into the grid layout, because it's space (x: ${i}, y: ${j})` +
590
+ ` is already occupied by another element (${grid[j][i]})`);
591
+ }
592
+ grid[j][i] = value;
593
+ }
594
+ }
595
+ }
596
+ /**
597
+ * @param index the index of the checked element within its data group
598
+ * @param dataGroup the checked data group
599
+ * @param fieldsPerRow the number of fields that is required to fill an entire row
600
+ * @returns whether the field at the given index is within the last row of elements of the provided data group.
601
+ * Note that if the last row contains enough elements to be completely filled this method returns `false`.
602
+ */
603
+ isLastRow(index, dataGroup, fieldsPerRow) {
604
+ return index + fieldsPerRow >= dataGroup.fields.length;
605
+ }
606
+ /**
607
+ * Destroys the previous content and pushes the new content into the stream
608
+ * @param content the new content
609
+ */
610
+ renderContent(content = []) {
611
+ this._dataSource$.value.forEach(subgrid => subgrid.destroy());
612
+ this._dataSource$.next(content);
613
+ }
614
+ createSubgridId(dataGroup) {
615
+ let idBase;
616
+ if (dataGroup.parentTaskId !== undefined) {
617
+ idBase = [dataGroup.parentTaskId, dataGroup.parentTaskRefId, dataGroup.nestingLevel].join('#');
618
+ }
619
+ else {
620
+ idBase = 'root';
621
+ }
622
+ let id = idBase;
623
+ while (this._existingSubgridIds.has(id)) {
624
+ id = idBase + this._subgridIdCounter.next();
625
+ }
626
+ this._existingSubgridIds.add(id);
627
+ return id;
628
+ }
629
+ trackByDatafields(index, element) {
630
+ switch (element.type) {
631
+ case TaskElementType.BLANK:
632
+ return element.gridAreaId + '-' + this.taskContentService.$shouldCreateCounter.getValue();
633
+ case TaskElementType.LOADER:
634
+ return element.gridAreaId + '-L-' + this.taskContentService.$shouldCreateCounter.getValue();
635
+ case TaskElementType.DATA_GROUP_TITLE:
636
+ return element.title + '-' + this.taskContentService.$shouldCreateCounter.getValue();
637
+ default:
638
+ return element.item.stringId + '-' + this.taskContentService.$shouldCreateCounter.getValue();
639
+ }
640
+ }
641
+ }
642
+ AbstractTaskContentComponent.ctorParameters = () => [
643
+ { type: FieldConverterService },
644
+ { type: TaskContentService },
645
+ { type: PaperViewService },
646
+ { type: LoggerService },
647
+ { type: TaskEventService, decorators: [{ type: Optional }] },
648
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NAE_ASYNC_RENDERING_CONFIGURATION,] }] }
649
+ ];
650
+ AbstractTaskContentComponent.propDecorators = {
651
+ noDataText: [{ type: Input }],
652
+ noDataIcon: [{ type: Input }],
653
+ displayNoDataIcon: [{ type: Input }],
654
+ taskEvent: [{ type: Output }]
655
+ };
656
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFzay1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZXRncmlmL2NvbXBvbmVudHMtY29yZS8iLCJzb3VyY2VzIjpbImxpYi90YXNrLWNvbnRlbnQvdGFzay1jb250ZW50L2Fic3RyYWN0LXRhc2stY29udGVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLFFBQVEsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDNUYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBWSxrQkFBa0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUVuRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQW1CLG1CQUFtQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDM0ksT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsZUFBZSxFQUEyQixNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGlD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QUM7SUFDZCxDQUFDO0lBTVMsaUJBQWlCLENBQUMsS0FBYSxFQUFFLE9BQW1DO1FBQzFFLFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRTtZQUNsQixLQUFLLGVBQWUsQ0FBQyxLQUFLO2dCQUN0QixPQUFPLE9BQU8sQ0FBQyxVQUFVLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5RixLQUFLLGVBQWUsQ0FBQyxNQUFNO2dCQUN2QixPQUFPLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoRyxLQUFLLGVBQWUsQ0FBQyxnQkFBZ0I7Z0JBQ2pDLE9BQU8sT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pGO2dCQUNJLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNwRztJQUNMLENBQUM7OztZQTF2QkcscUJBQXFCO1lBQ3JCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsYUFBYTtZQUViLGdCQUFnQix1QkE0RkcsUUFBUTs0Q0FDUixRQUFRLFlBQUksTUFBTSxTQUFDLGlDQUFpQzs7O3lCQTVDMUUsS0FBSzt5QkFNTCxLQUFLO2dDQU1MLEtBQUs7d0JBSUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEYXRhZmllbGRHcmlkTGF5b3V0RWxlbWVudH0gZnJvbSAnLi4vbW9kZWwvZGF0YWZpZWxkLWdyaWQtbGF5b3V0LWVsZW1lbnQnO1xuaW1wb3J0IHtGaWVsZENvbnZlcnRlclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2ZpZWxkLWNvbnZlcnRlci5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0NvbnRlbnRTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy90YXNrLWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQge1BhcGVyVmlld1NlcnZpY2V9IGZyb20gJy4uLy4uL25hdmlnYXRpb24vcXVpY2stcGFuZWwvY29tcG9uZW50cy9wYXBlci12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtUYXNrRXZlbnROb3RpZmljYXRpb259IGZyb20gJy4uL21vZGVsL3Rhc2stZXZlbnQtbm90aWZpY2F0aW9uJztcbmltcG9ydCB7VGFza0V2ZW50U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvdGFzay1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7RGF0YUdyb3VwLCBEYXRhR3JvdXBBbGlnbm1lbnR9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvZGF0YS1ncm91cHMnO1xuaW1wb3J0IHtUYXNrRWxlbWVudFR5cGV9IGZyb20gJy4uL21vZGVsL3Rhc2stY29udGVudC1lbGVtZW50LXR5cGUnO1xuaW1wb3J0IHtEYXRhRmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL21vZGVscy9hYnN0cmFjdC1kYXRhLWZpZWxkJztcbmltcG9ydCB7RGF0YUdyb3VwQ29tcGFjdCwgRGF0YUdyb3VwSGlkZUVtcHR5Um93cywgRGF0YUdyb3VwTGF5b3V0LCBEYXRhR3JvdXBMYXlvdXRUeXBlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2RhdGEtZ3JvdXAtbGF5b3V0JztcbmltcG9ydCB7RmllbGRBbGlnbm1lbnR9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvZmllbGQtYWxpZ25tZW50JztcbmltcG9ydCB7RmllbGRUeXBlUmVzb3VyY2V9IGZyb20gJy4uL21vZGVsL2ZpZWxkLXR5cGUtcmVzb3VyY2UnO1xuaW1wb3J0IHtMb2FkaW5nRW1pdHRlcn0gZnJvbSAnLi4vLi4vdXRpbGl0eS9sb2FkaW5nLWVtaXR0ZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtOQUVfQVNZTkNfUkVOREVSSU5HX0NPTkZJR1VSQVRJT059IGZyb20gJy4uL21vZGVsL2FzeW5jLXJlbmRlcmluZy1jb25maWd1cmF0aW9uLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQge0FzeW5jUmVuZGVyaW5nQ29uZmlndXJhdGlvbn0gZnJvbSAnLi4vbW9kZWwvYXN5bmMtcmVuZGVyaW5nLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHtUYXNrUmVmRmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL3Rhc2stcmVmLWZpZWxkL21vZGVsL3Rhc2stcmVmLWZpZWxkJztcbmltcG9ydCB7U3BsaXREYXRhR3JvdXB9IGZyb20gJy4uL21vZGVsL3NwbGl0LWRhdGEtZ3JvdXAnO1xuaW1wb3J0IHtTdWJncmlkfSBmcm9tICcuLi9tb2RlbC9zdWJncmlkJztcbmltcG9ydCB7SW5jcmVtZW50aW5nQ291bnRlcn0gZnJvbSAnLi4vLi4vdXRpbGl0eS9pbmNyZW1lbnRpbmctY291bnRlcic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFRhc2tDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICByZWFkb25seSBERUZBVUxUX0xBWU9VVF9UWVBFID0gRGF0YUdyb3VwTGF5b3V0VHlwZS5MRUdBQ1k7XG4gICAgcmVhZG9ubHkgREVGQVVMVF9GSUVMRF9BTElHTk1FTlQgPSBGaWVsZEFsaWdubWVudC5DRU5URVI7XG4gICAgcmVhZG9ubHkgREVGQVVMVF9BU1lOQ19SRU5ERVJJTkdfQ09ORklHVVJBVElPTjogQXN5bmNSZW5kZXJpbmdDb25maWd1cmF0aW9uID0ge1xuICAgICAgICBiYXRjaFNpemU6IDQsXG4gICAgICAgIGJhdGNoRGVsYXk6IDIwMCxcbiAgICAgICAgbnVtYmVyT2ZQbGFjZWhvbGRlcnM6IDQsXG4gICAgICAgIGVuYWJsZUFzeW5jUmVuZGVyaW5nRm9yTmV3RmllbGRzOiB0cnVlLFxuICAgICAgICBlbmFibGVBc3luY1JlbmRlcmluZ09uVGFza0V4cGFuZDogdHJ1ZVxuICAgIH07XG4gICAgcmVhZG9ubHkgREVGQVVMVF9DT01QQUNUX0RJUkVDVElPTiA9IERhdGFHcm91cENvbXBhY3QuTk9ORTtcbiAgICByZWFkb25seSBERUZBVUxUX0hJREVfRU1QVFlfUk9XUyA9IERhdGFHcm91cEhpZGVFbXB0eVJvd3MuQUxMO1xuXG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgZGF0YSBpcyBiZWluZyBsb2FkZWQgZnJvbSBiYWNrZW5kLCBvciBpZiBpdCBpcyBiZWluZyBwcm9jZXNzZWQuXG4gICAgICovXG4gICAgbG9hZGluZyQ6IExvYWRpbmdFbWl0dGVyO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIGB0cnVlYCBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgZGF0YSBmaWVsZCwgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkLiBFbWl0cyBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBoYXNEYXRhVG9EaXNwbGF5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqIEV4aXN0cyB0byBhbGxvdyByZWZlcmVuY2VzIHRvIHRoZSBlbnVtIGluIHRoZSBIVE1MXG4gICAgICovXG4gICAgcHVibGljIGZpZWxkVHlwZVJlc291cmNlID0gRmllbGRUeXBlUmVzb3VyY2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdHJhbnNsYXRlIHRleHQgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIHdoZW4gdGhlIHRhc2sgY29udGFpbnMgbm8gZGF0YS5cbiAgICAgKlxuICAgICAqIElmIGEgZmFsc3kgdmFsdWUgaXMgcHJvdmlkZWQgdGhlIGRlZmF1bHQgdGV4dCBpcyBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBub0RhdGFUZXh0OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGljb24gdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIHdoZW4gdGhlIHRhc2sgY29udGFpbnMgbm8gZGF0YS5cbiAgICAgKlxuICAgICAqIElmIGEgZmFsc3kgdmFsdWUgaXMgcHJvdmlkZWQgdGhlIGRlZmF1bHQgaWNvbiBpcyBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBub0RhdGFJY29uOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogV2hldGhlciBhbiBpY29uIHNob3VsZCBiZSBkaXNwbGF5ZWQgd2hlbiB0aGUgbm8gZGF0YSBtZXNzYWdlIGlzIHNob3duLlxuICAgICAqXG4gICAgICogQW4gaWNvbiBpcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGRpc3BsYXlOb0RhdGFJY29uID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBFbWl0cyBub3RpZmljYXRpb25zIGFib3V0IHRhc2sgZXZlbnRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIHRhc2tFdmVudDogRXZlbnRFbWl0dGVyPFRhc2tFdmVudE5vdGlmaWNhdGlvbj47XG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2RhdGFTb3VyY2UkOiBCZWhhdmlvclN1YmplY3Q8QXJyYXk8U3ViZ3JpZD4+O1xuICAgIHByb3RlY3RlZCBfc3ViVGFza0NvbnRlbnQ6IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX3N1YlRhc2tFdmVudDogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfYXN5bmNSZW5kZXJpbmdDb25maWc6IEFzeW5jUmVuZGVyaW5nQ29uZmlndXJhdGlvbjtcbiAgICBwcm90ZWN0ZWQgX2FzeW5jUmVuZGVyVGltZW91dDogbnVtYmVyO1xuXG4gICAgcHJvdGVjdGVkIF9kZWZhdWx0QWxpZ25tZW50OiBGaWVsZEFsaWdubWVudDtcbiAgICBwcm90ZWN0ZWQgX2RlZmF1bHRDb21wYWN0RGlyZWN0aW9uOiBEYXRhR3JvdXBDb21wYWN0O1xuICAgIHByb3RlY3RlZCBfZGVmYXVsdEhpZGVFbXB0eVJvd3M6IERhdGFHcm91cEhpZGVFbXB0eVJvd3M7XG4gICAgcHJvdGVjdGVkIF9kZWZhdWx0TnVtYmVyT2ZDb2xzOiBudW1iZXI7XG5cbiAgICBwcm90ZWN0ZWQgX3N1YmdyaWRJZENvdW50ZXI6IEluY3JlbWVudGluZ0NvdW50ZXI7XG4gICAgcHJvdGVjdGVkIF9leGlzdGluZ1N1YmdyaWRJZHM6IFNldDxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgcm93IGhlaWdodCBvZiBvbmUgcm93IGluIHRhc2sgY29udGVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCByb3dIZWlnaHQgPSAxMDU7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJvdGVjdGVkIF9maWVsZENvbnZlcnRlcjogRmllbGRDb252ZXJ0ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdGFza0NvbnRlbnRTZXJ2aWNlOiBUYXNrQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfcGFwZXJWaWV3OiBQYXBlclZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF90YXNrRXZlbnRTZXJ2aWNlOiBUYXNrRXZlbnRTZXJ2aWNlID0gbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfQVNZTkNfUkVOREVSSU5HX0NPTkZJR1VSQVRJT04pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3luY1JlbmRlcmluZ0NvbmZpZ3VyYXRpb246IEFzeW5jUmVuZGVyaW5nQ29uZmlndXJhdGlvbiA9IG51bGwpIHtcbiAgICAgICAgdGhpcy5fYXN5bmNSZW5kZXJpbmdDb25maWcgPSB7Li4udGhpcy5ERUZBVUxUX0FTWU5DX1JFTkRFUklOR19DT05GSUdVUkFUSU9OfTtcbiAgICAgICAgaWYgKGFzeW5jUmVuZGVyaW5nQ29uZmlndXJhdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9hc3luY1JlbmRlcmluZ0NvbmZpZywgYXN5bmNSZW5kZXJpbmdDb25maWd1cmF0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9hZGluZyQgPSBuZXcgTG9hZGluZ0VtaXR0ZXIodHJ1ZSk7XG4gICAgICAgIHRoaXMuX2RhdGFTb3VyY2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxTdWJncmlkPj4oW10pO1xuICAgICAgICB0aGlzLmhhc0RhdGFUb0Rpc3BsYXkkID0gdGhpcy5fZGF0YVNvdXJjZSQucGlwZShtYXAoZGF0YSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5sZW5ndGggIT09IDA7XG4gICAgICAgIH0pKTtcblxuICAgICAgICB0aGlzLl9zdWJUYXNrQ29udGVudCA9IHRoaXMudGFza0NvbnRlbnRTZXJ2aWNlLiRzaG91bGRDcmVhdGUuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlRGVmYXVsdExheW91dENvbmZpZ3VyYXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVMYXlvdXREYXRhKGRhdGEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbnRlbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubG9hZGluZyQub2ZmKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5fdGFza0V2ZW50U2VydmljZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy50YXNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhc2tFdmVudE5vdGlmaWNhdGlvbj4oKTtcbiAgICAgICAgICAgIHRoaXMuX3N1YlRhc2tFdmVudCA9IF90YXNrRXZlbnRTZXJ2aWNlLnRhc2tFdmVudE5vdGlmaWNhdGlvbnMkLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmckLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2RhdGFTb3VyY2UkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3N1YlRhc2tDb250ZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGlmICh0aGlzLnRhc2tFdmVudCkge1xuICAgICAgICAgICAgdGhpcy50YXNrRXZlbnQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fc3ViVGFza0V2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJUYXNrRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fYXN5bmNSZW5kZXJUaW1lb3V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fYXN5bmNSZW5kZXJUaW1lb3V0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFza0lkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tDb250ZW50U2VydmljZS50YXNrLnN0cmluZ0lkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBBcnJheTxTdWJncmlkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhcyBzcGVjaWZpZWQgYnkgdGhlIHRhc2tzIGxheW91dCBwcm9wZXJ0eSwgb3IgNCBpZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQuXG4gICAgICovXG4gICAgcHVibGljIGdldE51bWJlck9mRm9ybUNvbHVtbnMoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhc2tDb250ZW50U2VydmljZS50YXNrXG4gICAgICAgICAgICB8fCAhdGhpcy50YXNrQ29udGVudFNlcnZpY2UudGFzay5sYXlvdXRcbiAgICAgICAgICAgIHx8IHRoaXMudGFza0NvbnRlbnRTZXJ2aWNlLnRhc2subGF5b3V0LmNvbHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIDQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50YXNrQ29udGVudFNlcnZpY2UudGFzay5sYXlvdXQuY29scztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc1BhcGVyVmlldygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcGVyVmlldy5wYXBlclZpZXc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGl0ZW0gYW4gb2JqZWN0IGNvbnRhaW5pbmcgZ3JpZCBlbGVtZW50IGluZm9ybWF0aW9uXG4gICAgICogQHJldHVybnMgdGhlIEFuZ3VsYXIgZmxleCBsYXlvdXRzIGFsaWdubWVudCBwcm9wZXJ0eSBmb3IgaW5kaXZpZHVhbCBkYXRhIGZpZWxkcyBiYXNlZCBvblxuICAgICAqIHRoZSBsYXlvdXQgY29uZmlndXJhdGlvbiBzcGVjaWZpZWQgYnkgdGhlIHByb2Nlc3NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SXRlbUFsaWdubWVudChpdGVtOiBEYXRhZmllbGRHcmlkTGF5b3V0RWxlbWVudCk6IHN0cmluZyB7XG4gICAgICAgIGlmIChpdGVtLmFsaWdubWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uYWxpZ25tZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmllbGRBbGlnbm1lbnQgPSBpdGVtLml0ZW0/LmxvY2FsTGF5b3V0Py5hbGlnbm1lbnQgPz8gdGhpcy5fZGVmYXVsdEFsaWdubWVudDtcblxuICAgICAgICBsZXQgYWxpZ25tZW50O1xuICAgICAgICBzd2l0Y2ggKGZpZWxkQWxpZ25tZW50KSB7XG4gICAgICAgICAgICBjYXNlIEZpZWxkQWxpZ25tZW50LlRPUDpcbiAgICAgICAgICAgICAgICBhbGlnbm1lbnQgPSAnc3RhcnQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZEFsaWdubWVudC5DRU5URVI6XG4gICAgICAgICAgICAgICAgYWxpZ25tZW50ID0gJ2NlbnRlcic7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkQWxpZ25tZW50LkJPVFRPTTpcbiAgICAgICAgICAgICAgICBhbGlnbm1lbnQgPSAnZW5kJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGl0ZW0uYWxpZ25tZW50ID0gJ3NwYWNlLWJldHdlZW4gJyArIGFsaWdubWVudDtcbiAgICAgICAgcmV0dXJuIGl0ZW0uYWxpZ25tZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGNvbXBvbmVudCBoZWlnaHQgaWYgdGhlIHJvd3MgYXR0cmlidXRlIG9mIHRhc2sgbGF5b3V0IGlzIHNldC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzb2x2ZUNvbnRlbnRIZWlnaHRDc3MoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuc2Nyb2xsaW5nTmVlZGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRhc2tDb250ZW50U2VydmljZS50YXNrLmxheW91dC5yb3dzICogdGhpcy5yb3dIZWlnaHQgKyAncHgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcxMDAlJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlY2lkZXMgd2hldGhlciB0aGVyZSBpcyBhIGZpeGVkIG51bWJlciBvZiByb3dzIGFuZCBpdCBuZWVkLXMgc2Nyb2xsaW5nXG4gICAgICovXG4gICAgcHVibGljIHNjcm9sbGluZ05lZWRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza0NvbnRlbnRTZXJ2aWNlLnRhc2tcbiAgICAgICAgICAgICYmICEhdGhpcy50YXNrQ29udGVudFNlcnZpY2UudGFzay5sYXlvdXRcbiAgICAgICAgICAgICYmICEhdGhpcy50YXNrQ29udGVudFNlcnZpY2UudGFzay5sYXlvdXQucm93c1xuICAgICAgICAgICAgJiYgdGhpcy50YXNrQ29udGVudFNlcnZpY2UudGFzay5sYXlvdXQucm93cyA+IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgdGhlIGRlZmF1bHQgYWxpZ25tZW50IGZvciB0aGUgZGlzcGxheWVkIHRhc2sgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBmaWVsZHMgaW5kaXZpZHVhbCBwcm9wZXJ0eS5cbiAgICAgKiBJZiB0ZSB0YXNrIHNwZWNpZmllcyBubyBkZWZhdWx0IHZhbHVlIHRoZSBbZ2xvYmFsIGRlZmF1bHRde0BsaW5rIEFic3RyYWN0VGFza0NvbnRlbnRDb21wb25lbnQjREVGQVVMVF9GSUVMRF9BTElHTk1FTlR9XG4gICAgICogdmFsdWUgaXMgcmV0dXJuZWQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVEZWZhdWx0TGF5b3V0Q29uZmlndXJhdGlvbigpIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdEFsaWdubWVudCA9IHRoaXMudGFza0NvbnRlbnRTZXJ2aWNlLnRhc2s/LmxheW91dD8uZmllbGRBbGlnbm1lbnQgPz8gdGhpcy5ERUZBVUxUX0ZJRUxEX0FMSUdOTUVOVDtcbiAgICAgICAgdGhpcy5fZGVmYXVsdENvbXBhY3REaXJlY3Rpb24gPSB0aGlzLnRhc2tDb250ZW50U2VydmljZS50YXNrPy5sYXlvdXQ/LmNvbXBhY3REaXJlY3Rpb24gPz8gdGhpcy5ERUZBVUxUX0NPTVBBQ1RfRElSRUNUSU9OO1xuICAgICAgICB0aGlzLl9kZWZhdWx0SGlkZUVtcHR5Um93cyA9IHRoaXMudGFza0NvbnRlbnRTZXJ2aWNlLnRhc2s/LmxheW91dD8uaGlkZUVtcHR5Um93cyA/PyB0aGlzLkRFRkFVTFRfSElERV9FTVBUWV9ST1dTO1xuICAgICAgICB0aGlzLl9kZWZhdWx0TnVtYmVyT2ZDb2xzID0gdGhpcy5nZXROdW1iZXJPZkZvcm1Db2x1bW5zKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgdGhlIGxheW91dCBkYXRhIGZvciB0aGUgdGFza3MgZ3JpZCBsYXlvdXQgYW5kIHNldHMgdGhlIHJlc3VsdCB0byB0aGUgcHVibGljIHByb3BlcnRpZXNcbiAgICAgKiBvZiB0aGlzIGNsYXNzIHRoYXQgYXJlIHRoZW4gYm91bmQgdG8gSFRNTC5cbiAgICAgKiBAcGFyYW0gZGF0YUdyb3VwcyB0aGUgZGF0YSBncm91cHMgdGhhdCBzaG91bGQgYmUgbGFpZCBvdXRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29tcHV0ZUxheW91dERhdGEoZGF0YUdyb3VwczogQXJyYXk8RGF0YUdyb3VwPikge1xuICAgICAgICBpZiAoIXRoaXMudGFza0NvbnRlbnRTZXJ2aWNlLnRhc2spIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29udGVudCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3ViZ3JpZElkQ291bnRlciA9IG5ldyBJbmNyZW1lbnRpbmdDb3VudGVyKCk7XG4gICAgICAgIHRoaXMuX2V4aXN0aW5nU3ViZ3JpZElkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBNYXA8c3RyaW5nLCBTdWJncmlkPigpO1xuXG4gICAgICAgIGRhdGFHcm91cHMgPSB0aGlzLnByZXByb2Nlc3NEYXRhR3JvdXBzKGRhdGFHcm91cHMpO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYXlvdXQgPSB0aGlzLnRhc2tDb250ZW50U2VydmljZS50YXNrLmxheW91dCAmJiB0aGlzLnRhc2tDb250ZW50U2VydmljZS50YXNrLmxheW91dC50eXBlXG4gICAgICAgICAgICA/IHRoaXMudGFza0NvbnRlbnRTZXJ2aWNlLnRhc2subGF5b3V0LnR5cGVcbiAgICAgICAgICAgIDogdGhpcy5ERUZBVUxUX0xBWU9VVF9UWVBFO1xuXG4gICAgICAgIGRhdGFHcm91cHMuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgICAgICBpZiAoIWdyb3VwLmxheW91dCkge1xuICAgICAgICAgICAgICAgIGdyb3VwLmxheW91dCA9IHtyb3dzOiB1bmRlZmluZWQsIGNvbHM6IHVuZGVmaW5lZCwgdHlwZTogZGVmYXVsdExheW91dH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWdyb3VwLmxheW91dC50eXBlKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXAubGF5b3V0LnR5cGUgPSBkZWZhdWx0TGF5b3V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzdWJncmlkID0gbmV3IFN1YmdyaWQoXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVTdWJncmlkSWQoZ3JvdXApLFxuICAgICAgICAgICAgICAgIGdyb3VwLmxheW91dC5jb2xzID8/IHRoaXMuX2RlZmF1bHROdW1iZXJPZkNvbHMsXG4gICAgICAgICAgICAgICAgdGhpcy5fYXN5bmNSZW5kZXJpbmdDb25maWdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChncm91cC50aXRsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGl0bGUgPSBzdWJncmlkLmFkZFRpdGxlKGdyb3VwKTtcbiAgICAgICAgICAgICAgICBzdWJncmlkLmFkZFJvdyh0aGlzLm5ld0dyaWRSb3coc3ViZ3JpZC5jb2xzLCB0aXRsZS5ncmlkQXJlYUlkKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN3aXRjaCAoZ3JvdXAubGF5b3V0LnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIERhdGFHcm91cExheW91dFR5cGUuR1JJRDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlR3JpZExheW91dChncm91cCwgc3ViZ3JpZCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRGF0YUdyb3VwTGF5b3V0VHlwZS5GTE9XOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVGbG93TGF5b3V0KGdyb3VwLCBzdWJncmlkKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBEYXRhR3JvdXBMYXlvdXRUeXBlLkxFR0FDWTpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlTGVnYWN5TGF5b3V0KGdyb3VwLCBzdWJncmlkKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHRhc2sgbGF5b3V0IHR5cGUgJyR7dGhpcy50YXNrQ29udGVudFNlcnZpY2UudGFzay5sYXlvdXQudHlwZX0nYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN1YmdyaWQuZmluYWxpemUoKTtcbiAgICAgICAgICAgIHJlc3VsdC5zZXQoc3ViZ3JpZC5zdWJncmlkSWQsIHN1YmdyaWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlbmRlckZpZWxkcyhyZXN1bHQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW5kZXJGaWVsZHMoc3ViZ3JpZHM6IE1hcDxzdHJpbmcsIFN1YmdyaWQ+KSB7XG4gICAgICAgIGNvbnN0IHN1YmdyaWRzQXJyYXkgPSBBcnJheS5mcm9tKHN1YmdyaWRzLnZhbHVlcygpKTtcblxuICAgICAgICBpZiAoIXRoaXMuX2FzeW5jUmVuZGVyaW5nQ29uZmlnLmVuYWJsZUFzeW5jUmVuZGVyaW5nRm9yTmV3RmllbGRzXG4gICAgICAgICAgICAmJiAhKHRoaXMuX2FzeW5jUmVuZGVyaW5nQ29uZmlnLmVuYWJsZUFzeW5jUmVuZGVyaW5nT25UYXNrRXhwYW5kICYmIHRoaXMudGFza0NvbnRlbnRTZXJ2aWNlLmlzRXhwYW5kaW5nKSkge1xuICAgICAgICAgICAgc3ViZ3JpZHNBcnJheS5mb3JFYWNoKHN1YmdyaWQgPT4ge1xuICAgICAgICAgICAgICAgIHN1YmdyaWQuZGlzcGxheUFsbEZpZWxkcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbnRlbnQoc3ViZ3JpZHNBcnJheSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISh0aGlzLnRhc2tDb250ZW50U2VydmljZS5pc0V4cGFuZGluZyAmJiB0aGlzLl9hc3luY1JlbmRlcmluZ0NvbmZpZy5lbmFibGVBc3luY1JlbmRlcmluZ09uVGFza0V4cGFuZCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFTb3VyY2UkLnZhbHVlLmZvckVhY2gob2xkU3ViZ3JpZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN1YmdyaWRzLmhhcyhvbGRTdWJncmlkLnN1YmdyaWRJZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3ViZ3JpZHMuZ2V0KG9sZFN1YmdyaWQuc3ViZ3JpZElkKS5kZXRlcm1pbmVLZXB0RmllbGRzKG9sZFN1YmdyaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZW5kZXJDb250ZW50KHN1YmdyaWRzQXJyYXkpO1xuICAgICAgICB0aGlzLnNwcmVhZEZpZWxkUmVuZGVyaW5nT3ZlclRpbWUoc3ViZ3JpZHNBcnJheSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNwcmVhZEZpZWxkUmVuZGVyaW5nT3ZlclRpbWUoc3ViZ3JpZHM6IEFycmF5PFN1YmdyaWQ+LCBpdGVyYXRpb24gPSAwKSB7XG4gICAgICAgIHRoaXMuX2FzeW5jUmVuZGVyVGltZW91dCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGl0ZXJhdGlvbiA8IHN1YmdyaWRzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5fYXN5bmNSZW5kZXJUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN1YmdyaWRzW2l0ZXJhdGlvbl0ucmVuZGVyQ29udGVudE92ZXJUaW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcHJlYWRGaWVsZFJlbmRlcmluZ092ZXJUaW1lKHN1YmdyaWRzLCBpdGVyYXRpb24gKyAxKTtcbiAgICAgICAgICAgICAgICB9LCBpdGVyYXRpb24gPT09IDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9uZXMgdGhlIGNvbnRlbnQgb2YgdGhlIGRhdGEgZ3JvdXBzIHRvIHByZXZlbnQgdW5pbnRlbnRpb25hbCBtZW1vcnkgYWNjZXNzZXMgdG8gc291cmNlIGRhdGEuXG4gICAgICogUmVhcnJhbmdlcyB0aGUgZGF0YSBncm91cHMgdG8gYWNjb21tb2RhdGUgdGFza3JlZnMuIEZpbHRlcnMgb3V0IGhpZGRlbiBhbmQgZm9yYmlkZGVuIGZpZWxkcy5cbiAgICAgKiBAcGFyYW0gZGF0YUdyb3Vwc1xuICAgICAqIEByZXR1cm5zIHRoZSBwcmVwcm9jZXNzZXMgZGF0YSBncm91cHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcHJlcHJvY2Vzc0RhdGFHcm91cHMoZGF0YUdyb3VwczogQXJyYXk8RGF0YUdyb3VwPik6IEFycmF5PERhdGFHcm91cD4ge1xuICAgICAgICBkYXRhR3JvdXBzID0gdGhpcy5jbG9uZUFuZEZpbHRlckhpZGRlbihkYXRhR3JvdXBzKTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhR3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IGRhdGFHcm91cHNbaV07XG4gICAgICAgICAgICBpZiAoIWdyb3VwLmZpZWxkcy5zb21lKGYgPT4gdGhpcy5pc1Rhc2tSZWYoZikpKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goZ3JvdXApO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3BsaXQgPSB0aGlzLnNwbGl0RGF0YUdyb3VwT25UYXNrUmVmKGdyb3VwKTtcbiAgICAgICAgICAgIGlmIChzcGxpdC5zdGFydEdyb3VwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChzcGxpdC5zdGFydEdyb3VwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNwbGl0LnRhc2tSZWYudmFsdWUubGVuZ3RoID09PSAwIHx8IHNwbGl0LmVuZEdyb3VwID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BsaXQuZW5kR3JvdXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhR3JvdXBzLnNwbGljZShpICsgMSwgMCwgc3BsaXQuZW5kR3JvdXApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZGlyZWN0Q2hpbGQgPSBkYXRhR3JvdXBzW2kgKyAxXTsgLy8gdGhlIGRhdGEgZ3JvdXAgdGhhdCBpbW1lZGlhdGVseSBmb2xsb3dzIElTIEFMV0FZUyBhIGRpcmVjdCBjaGlsZFxuICAgICAgICAgICAgbGV0IGZpcnN0Tm9uRGVzY2VuZGFudEluZGV4ID0gaSArIDI7XG4gICAgICAgICAgICBmb3IgKDsgZmlyc3ROb25EZXNjZW5kYW50SW5kZXggPCBkYXRhR3JvdXBzLmxlbmd0aDsgZmlyc3ROb25EZXNjZW5kYW50SW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRHcm91cCA9IGRhdGFHcm91cHNbZmlyc3ROb25EZXNjZW5kYW50SW5kZXhdO1xuICAgICAgICAgICAgICAgIGlmIChuZXh0R3JvdXAubmVzdGluZ0xldmVsID09PSB1bmRlZmluZWQgfHwgbmV4dEdyb3VwLm5lc3RpbmdMZXZlbCA8IGRpcmVjdENoaWxkLm5lc3RpbmdMZXZlbCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBlbmQgb2YgdGhlIGJsb2NrIG9mIG5lc3RlZCBkYXRhIGdyb3Vwc1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5leHRHcm91cC5uZXN0aW5nTGV2ZWwgPT09IGRpcmVjdENoaWxkLm5lc3RpbmdMZXZlbFxuICAgICAgICAgICAgICAgICAgICAmJiAobmV4dEdyb3VwLnBhcmVudFRhc2tSZWZJZCAhPT0gc3BsaXQudGFza1JlZi5zdHJpbmdJZFxuICAgICAgICAgICAgICAgICAgICAgICAgfHwgIXNwbGl0LnRhc2tSZWYudmFsdWUuc29tZShyZWZmZWRUYXNrSWQgPT4gcmVmZmVkVGFza0lkID09PSBuZXh0R3JvdXAucGFyZW50VGFza0lkKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkYXRhR3JvdXBzLnNwbGljZShmaXJzdE5vbkRlc2NlbmRhbnRJbmRleCwgMCwgc3BsaXQuZW5kR3JvdXApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZHVwbGljYXRlIG9mIHRoZSBwcm92aWRlZCBkYXRhIGdyb3VwIGFycmF5IGFuZCBmaWx0ZXJzIGF3YXkgYW55IGZpZWxkcyBhbmQgZGF0YSBncm91cHMgdGhhdCBhcmUgbWFya2VkIGFzIGhpZGRlbi5cbiAgICAgKiBCZWNhdXNlIG9mIHRoZSBkdXBsaWNhdGlvbiB0aGUgZmlsdGVyaW5nIGRvZXNuJ3QgYWZmZWN0IHRoZSBvcmlnaW5hbCBpbnN0YW5jZXMgYW5kIHRoZXkgcmVtYWluIHVuY2hhbmdlZC5cbiAgICAgKiBAcGFyYW0gZGF0YUdyb3VwcyB0aGUgZGF0YSBncm91cHMgdGhhdCBzaG91bGQgYmUgZmlsdGVyZWRcbiAgICAgKiBAcmV0dXJucyB0aGUgZmlsdGVyZWQgZHVwbGljYXRlZCBkYXRhIGdyb3Vwc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBjbG9uZUFuZEZpbHRlckhpZGRlbihkYXRhR3JvdXBzOiBBcnJheTxEYXRhR3JvdXA+KTogQXJyYXk8RGF0YUdyb3VwPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGRhdGFHcm91cHMubWFwKGdyb3VwID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGcgPSB7Li4uZ3JvdXB9O1xuICAgICAgICAgICAgZy5maWVsZHMgPSBnLmZpZWxkcy5maWx0ZXIoZmllbGQgPT4gIWZpZWxkLmJlaGF2aW9yLmhpZGRlbiAmJiAhZmllbGQuYmVoYXZpb3IuZm9yYmlkZGVuKS5tYXAoZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIGZpZWxkLnJlc2V0TG9jYWxMYXlvdXQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBnO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0LmZpbHRlcihncm91cCA9PiBncm91cC5maWVsZHMubGVuZ3RoID4gMCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzVGFza1JlZihmaWVsZDogRGF0YUZpZWxkPHVua25vd24+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmaWVsZCBpbnN0YW5jZW9mIFRhc2tSZWZGaWVsZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTb3J0cyB0aGUgaW5wdXQgZGF0YSBncm91cCBiYXNlZCBvbiB0aGUgWSBjb29yZGluYXRlIG9mIHRoZSBmaWVsZHMgYW5kIHNwbGl0cyBpdCBpbnRvIHBhcnRzIG9uIHRoZSBmaXJzdCB0YXNrIHJlZi5cbiAgICAgKiBJZiBzb21lIGZpZWxkcyBhcHBlYXIgYmVmb3JlIHRoZSBmaXJzdCB0YXNrIHJlZiB0aGV5IGFyZSBleHRyYWN0ZWQgaW50byBhIG5ldyBbc3RhcnRHcm91cF17QGxpbmsgU3BsaXREYXRhR3JvdXAjc3RhcnRHcm91cH0uXG4gICAgICogSWYgc29tZSBmaWVsZHMgYXBwZWFyIGFmdGVyIHRoZSBmaXJzdCB0YXNrIHJlZiB0aGV5IGFyZSBleHRyYWN0ZWQgaW50byBhIG5ldyBbZW5kR3JvdXBde0BsaW5rIFNwbGl0RGF0YUdyb3VwI2VuZEdyb3VwfS5cbiAgICAgKiBAcGFyYW0gZGF0YUdyb3VwXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzcGxpdERhdGFHcm91cE9uVGFza1JlZihkYXRhR3JvdXA6IERhdGFHcm91cCk6IFNwbGl0RGF0YUdyb3VwIHtcbiAgICAgICAgZGF0YUdyb3VwLmZpZWxkcy5zb3J0KChhLCBiKSA9PiBhLmxvY2FsTGF5b3V0LnkgLSBiLmxvY2FsTGF5b3V0LnkpO1xuICAgICAgICBjb25zdCB0YXNrUmVmUG9zaXRpb24gPSBkYXRhR3JvdXAuZmllbGRzLmZpbmRJbmRleChmID0+IHRoaXMuaXNUYXNrUmVmKGYpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBTcGxpdERhdGFHcm91cCA9IHtcbiAgICAgICAgICAgIHRhc2tSZWY6IGRhdGFHcm91cC5maWVsZHNbdGFza1JlZlBvc2l0aW9uXVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0YXNrUmVmUG9zaXRpb24gIT09IDApIHtcbiAgICAgICAgICAgIHJlc3VsdC5zdGFydEdyb3VwID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhR3JvdXAudGl0bGUsXG4gICAgICAgICAgICAgICAgYWxpZ25tZW50OiBkYXRhR3JvdXAuYWxpZ25tZW50LFxuICAgICAgICAgICAgICAgIGxheW91dDogZGF0YUdyb3VwLmxheW91dCxcbiAgICAgICAgICAgICAgICBzdHJldGNoOiBkYXRhR3JvdXAuc3RyZXRjaCxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IGRhdGFHcm91cC5maWVsZHMuc2xpY2UoMCwgdGFza1JlZlBvc2l0aW9uKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFza1JlZlBvc2l0aW9uICE9PSBkYXRhR3JvdXAuZmllbGRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHJlc3VsdC5lbmRHcm91cCA9IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGFsaWdubWVudDogZGF0YUdyb3VwLmFsaWdubWVudCxcbiAgICAgICAgICAgICAgICBsYXlvdXQ6IGRhdGFHcm91cC5sYXlvdXQsXG4gICAgICAgICAgICAgICAgc3RyZXRjaDogZGF0YUdyb3VwLnN0cmV0Y2gsXG4gICAgICAgICAgICAgICAgZmllbGRzOiBkYXRhR3JvdXAuZmllbGRzLnNsaWNlKHRhc2tSZWZQb3NpdGlvbiArIDEpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlc3VsdC5lbmRHcm91cC5maWVsZHMuZm9yRWFjaChmID0+IHtcbiAgICAgICAgICAgICAgICBmLmxvY2FsTGF5b3V0LnkgPSBmLmxvY2FsTGF5b3V0LnkgLSByZXN1bHQudGFza1JlZi5sb2NhbExheW91dC55IC0gMTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgbGF5b3V0IGRhdGEgZm9yIGEgc2luZ2xlIGRhdGEgZ3JvdXAgd2l0aCBncmlkIGxheW91dC4gVGhlIHJlc3VsdGluZyBsYXlvdXQgaXMgc2F2ZWQgaW50byB0aGUgaW5wdXQgb2JqZWN0cy5cbiAgICAgKiBAcGFyYW0gZGF0YUdyb3VwIHRoZSBkYXRhIGdyb3VwIHRoYXQgc2hvdWxkIGJlIGxhaWQgb3V0IGludG8gYSBncmlkXG4gICAgICogQHBhcmFtIHN1YmdyaWQgdGhlIG9iamVjdCB0aGF0IGhvbGRzIHRoZSBjb250ZXh0IG9mIHRoZSBjb21wdXRlZCBsYXlvdXRpbmcgdW5pdFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb21wdXRlR3JpZExheW91dChkYXRhR3JvdXA6IERhdGFHcm91cCwgc3ViZ3JpZDogU3ViZ3JpZCkge1xuICAgICAgICBjb25zdCBsb2NhbEdyaWQ6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG5cbiAgICAgICAgZGF0YUdyb3VwLmZpZWxkcy5mb3JFYWNoKGRhdGFGaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoIWRhdGFGaWVsZC5sb2NhbExheW91dFxuICAgICAgICAgICAgICAgIHx8IGRhdGFGaWVsZC5sb2NhbExheW91dC54ID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB8fCBkYXRhRmllbGQubG9jYWxMYXlvdXQueSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfHwgIWRhdGFGaWVsZC5sb2NhbExheW91dC5yb3dzXG4gICAgICAgICAgICAgICAgfHwgIWRhdGFGaWVsZC5sb2NhbExheW91dC5jb2xzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgWW91IGNhbm5vdCB1c2UgJ2dyaWQnIGxheW91dCB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIGxheW91dCBvZiB0aGUgZGF0YSBmaWVsZHMgKGZpZWxkIElEOiAke2RhdGFGaWVsZC5zdHJpbmdJZH0pYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdoaWxlIChsb2NhbEdyaWQubGVuZ3RoIDwgZGF0YUZpZWxkLmxvY2FsTGF5b3V0LnkgKyBkYXRhRmllbGQubG9jYWxMYXlvdXQucm93cykge1xuICAgICAgICAgICAgICAgIGxvY2FsR3JpZC5wdXNoKHRoaXMubmV3R3JpZFJvdyhzdWJncmlkLmNvbHMpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZmllbGRFbGVtZW50ID0gc3ViZ3JpZC5hZGRGaWVsZChkYXRhRmllbGQsIHRoaXMuX2ZpZWxkQ29udmVydGVyLnJlc29sdmVUeXBlKGRhdGFGaWVsZCkpO1xuICAgICAgICAgICAgdGhpcy5vY2N1cHlTcGFjZShsb2NhbEdyaWQsIGRhdGFGaWVsZC5sb2NhbExheW91dC55LCBkYXRhRmllbGQubG9jYWxMYXlvdXQueCxcbiAgICAgICAgICAgICAgICBkYXRhRmllbGQubG9jYWxMYXlvdXQuY29scywgZmllbGRFbGVtZW50LmdyaWRBcmVhSWQsIGRhdGFGaWVsZC5sb2NhbExheW91dC5yb3dzKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb2xsYXBzZUdyaWRFbXB0eVNwYWNlKGxvY2FsR3JpZCwgZGF0YUdyb3VwLmxheW91dCwgc3ViZ3JpZCk7XG5cbiAgICAgICAgbG9jYWxHcmlkLmZvckVhY2gobG9jYWxHcmlkUm93ID0+IHN1YmdyaWQuYWRkUm93KGxvY2FsR3JpZFJvdykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIGVtcHR5IHJvdyByZW1vdmFsIGFuZCBmaWVsZCBjb21wYWN0aW5nIHJ1bGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBsYXlvdXQgY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIFRoZSBpbnB1dCBncmlkIGlzIG1vZGlmaWVkIGluIHBsYWNlLlxuICAgICAqIEBwYXJhbSBncmlkIHRoZSBzdGF0ZSBvZiB0aGUgZ3JpZCB0aGF0IHNob3VsZCBiZSBtb2RpZmllZFxuICAgICAqIEBwYXJhbSBsYXlvdXQgY29uZmlndXJhdGlvbiBvZiB0aGUgYXBwbGllZCBjb21wYWN0aW5nIHJ1bGVzXG4gICAgICogQHBhcmFtIHN1YmdyaWQgdGhlIG9iamVjdCB0aGF0IGhvbGRzIHRoZSBjb250ZXh0IG9mIHRoZSBjb21wdXRlZCBsYXlvdXRpbmcgdW5pdFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb2xsYXBzZUdyaWRFbXB0eVNwYWNlKGdyaWQ6IEFycmF5PEFycmF5PHN0cmluZz4+LCBsYXlvdXQ6IERhdGFHcm91cExheW91dCwgc3ViZ3JpZDogU3ViZ3JpZCkge1xuICAgICAgICBjb25zdCBoaWRlUm93cyA9IGxheW91dC5oaWRlRW1wdHlSb3dzID8/IHRoaXMuX2RlZmF1bHRIaWRlRW1wdHlSb3dzO1xuXG4gICAgICAgIGlmIChoaWRlUm93cyA9PT0gRGF0YUdyb3VwSGlkZUVtcHR5Um93cy5BTEwpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRW1wdHlSb3dzKGdyaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChsYXlvdXQuY29tcGFjdERpcmVjdGlvbiA/PyB0aGlzLl9kZWZhdWx0Q29tcGFjdERpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBEYXRhR3JvdXBDb21wYWN0LlVQOlxuICAgICAgICAgICAgICAgIHRoaXMuY29tcGFjdEZpZWxkc1VwKGdyaWQsIGhpZGVSb3dzLCBzdWJncmlkKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1vdmVzIGFueSBlbGVtZW50IGFzIGZhciBVUCBhcyBpdCBjYW4gZ28uIEVsZW1lbnRzIHRoYXQgd2VyZSBvcmlnaW5hbGx5IGRlY2xhcmVkIGluIHRoZSBzYW1lIHJvdyBtaWdodCBlbmQgdXAgaW4gZGlmZmVyZW50IHJvd3MuXG4gICAgICogUmVzdWx0aW5nIHRyYWlsaW5nIGVtcHR5IHJvd3MgYXJlIHJlbW92ZWQuXG4gICAgICpcbiAgICAgKiBUaGUgaW5wdXQgZ3JpZCBpcyBtb2RpZmllZCBpbiBwbGFjZS5cbiAgICAgKiBAcGFyYW0gZ3JpZCB0aGUgc3RhdGUgb2YgdGhlIGdyaWQgdGhhdCBzaG91bGQgYmUgbW9kaWZpZWRcbiAgICAgKiBAcGFyYW0gaGlkZVJvd3MgY29uZmlndXJhdGlvbiBmb3IgZW1wdHkgcm93IHJlbW92YWwgZHVyaW5nIHRoZSBjb21wYWN0aW5nIHByb2Nlc3NcbiAgICAgKiBAcGFyYW0gc3ViZ3JpZCB0aGUgb2JqZWN0IHRoYXQgaG9sZHMgdGhlIGNvbnRleHQgb2YgdGhlIGNvbXB1dGVkIGxheW91dGluZyB1bml0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbXBhY3RGaWVsZHNVcChncmlkOiBBcnJheTxBcnJheTxzdHJpbmc+PiwgaGlkZVJvd3M6IERhdGFHcm91cEhpZGVFbXB0eVJvd3MsIHN1YmdyaWQ6IFN1YmdyaWQpIHtcbiAgICAgICAgZm9yIChsZXQgcm93SW5kZXggPSAwOyByb3dJbmRleCA8IGdyaWQubGVuZ3RoOyByb3dJbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBncmlkW3Jvd0luZGV4XTtcblxuICAgICAgICAgICAgZm9yIChsZXQgY29sdW1uSW5kZXggPSAwOyBjb2x1bW5JbmRleCA8IHJvdy5sZW5ndGg7IGNvbHVtbkluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBpZiAocm93W2NvbHVtbkluZGV4XSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGZvdW5kRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGxldCBmb3VuZEVsZW1lbnRSb3dJbmRleCA9IHJvd0luZGV4ICsgMTtcbiAgICAgICAgICAgICAgICBmb3IgKDsgZm91bmRFbGVtZW50Um93SW5kZXggPCBncmlkLmxlbmd0aDsgZm91bmRFbGVtZW50Um93SW5kZXgrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JpZFtmb3VuZEVsZW1lbnRSb3dJbmRleF1bY29sdW1uSW5kZXhdICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRFbGVtZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZm91bmRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjb2x1bW5JbmRleCA+IDAgJiYgZ3JpZFtmb3VuZEVsZW1lbnRSb3dJbmRleF1bY29sdW1uSW5kZXggLSAxXSA9PT0gZ3JpZFtmb3VuZEVsZW1lbnRSb3dJbmRleF1bY29sdW1uSW5kZXhdKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnREaW1lbnNpb25zID0gdGhpcy5nZXRFbGVtZW50RGltZW5zaW9ucyhncmlkLCBjb2x1bW5JbmRleCwgZm91bmRFbGVtZW50Um93SW5kZXgsIHN1YmdyaWQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBcmVhRW1wdHkoZ3JpZCwgY29sdW1uSW5kZXgsIHJvd0luZGV4LCBlbGVtZW50RGltZW5zaW9ucy53aWR0aCwgZm91bmRFbGVtZW50Um93SW5kZXggLSByb3dJbmRleCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGdyaWRbZm91bmRFbGVtZW50Um93SW5kZXhdW2NvbHVtbkluZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vY2N1cHlTcGFjZShncmlkLCBmb3VuZEVsZW1lbnRSb3dJbmRleCwgY29sdW1uSW5kZXgsIGVsZW1lbnREaW1lbnNpb25zLndpZHRoLCAnJywgZWxlbWVudERpbWVuc2lvbnMuaGVpZ2h0LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2NjdXB5U3BhY2UoZ3JpZCwgcm93SW5kZXgsIGNvbHVtbkluZGV4LCBlbGVtZW50RGltZW5zaW9ucy53aWR0aCwgZWxlbWVudCwgZWxlbWVudERpbWVuc2lvbnMuaGVpZ2h0LCBmYWxzZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGhpZGVSb3dzICE9PSBEYXRhR3JvdXBIaWRlRW1wdHlSb3dzLk5PTkUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIG9ubHkgY2hlY2sgdGhlIHJvd3MgcG90ZW50aWFsbHkgY2xlYXJlZCBieSBtb3ZpbmcgdGhlIGdyaWQgZWxlbWVudCB1cFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVFbXB0eVJvd3MoZ3JpZCwgZm91bmRFbGVtZW50Um93SW5kZXgsIGZvdW5kRWxlbWVudFJvd0luZGV4ICsgZWxlbWVudERpbWVuc2lvbnMuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgcm93cyBmcm9tIHRoZSBncmlkIHRoYXQgb25seSBjb250YWluIGVtcHR5IGVsZW1lbnRzIChhcmUgZW1wdHkpLiBUaGUgZ3JpZCBpcyBtb2RpZmllZCBpbiBwbGFjZS5cbiAgICAgKiBAcGFyYW0gZ3JpZCB0aGUgZ3JpZCB0aGF0IHNob3VsZCBoYXZlIGl0J3MgZW1wdHkgcm93cyByZW1vdmVkXG4gICAgICogQHBhcmFtIGZpcnN0Um93IHRoZSAwIGJhc2VkIGluZGV4IG9mIHRoZSBmaXJzdCByb3cgdGhhdCBzaG91bGQgYmUgY2hlY2tlZC4gVXNlIDAgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBncmlkLlxuICAgICAqXG4gICAgICogSWYgbm8gdmFsdWUgaXMgcHJvdmlkZWQsIHRoZSBncmlkIHdpbGwgYmUgY2hlY2tlZCBmcm9tIHRoZSBmaXJzdCByb3cuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbGFzdFJvdyB0aGUgMCBiYXNlZCBpbmRleCBvZiB0aGUgcm93IHdoZXJlIHRoZSBjaGVja2luZyBzaG91bGQgZW5kLiBUaGUgcm93IHdpdGggdGhpcyBpbmRleCBpcyBub3QgY2hlY2tlZC5cbiAgICAgKlxuICAgICAqIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkIHRoZSBlbnRpcmUgZ3JpZCBmcm9tIHRoZSBgZmlyc3RSb3dgIHdpbGwgYmUgY2hlY2tlZC5cbiAgICAgKlxuICAgICAqIElmIGEgdmFsdWUgdGhhdCBpcyBzbWFsbGVyIG9yIGVxdWFsIHRvIHRoZSBgZmlyc3RSb3dgIGlzIHByb3ZpZGVkIG5vIGNoZWNrcyB3aWxsIGJlIHByZWZvcm1lZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVtb3ZlRW1wdHlSb3dzKGdyaWQ6IEFycmF5PEFycmF5PHN0cmluZz4+LCBmaXJzdFJvdyA9IDAsIGxhc3RSb3cgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpIHtcbiAgICAgICAgbGV0IGkgPSBmaXJzdFJvdztcbiAgICAgICAgd2hpbGUgKGkgPCBncmlkLmxlbmd0aCAmJiBpIDwgbGFzdFJvdykge1xuICAgICAgICAgICAgaWYgKGdyaWRbaV0uZXZlcnkoZWxlbWVudCA9PiBlbGVtZW50ID09PSAnJykpIHtcbiAgICAgICAgICAgICAgICBncmlkLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgZGltZW5zaW9ucyBvZiB0aGUgZWxlbWVudCBpbiB0aGUgZ3JpZCB3aXRoIGl0cyB0b3AtbGVmdCBjb3JuZXIgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvblxuICAgICAqIEBwYXJhbSBncmlkIHRoZSBncmlkIG9mIGVsZW1lbnRzXG4gICAgICogQHBhcmFtIHggdGhlIFggY29vcmRpbmF0ZSBvZiB0aGUgZGVzaXJlZCBlbGVtZW50cyB0b3AtbGVmdCBjb3JuZXJcbiAgICAgKiBAcGFyYW0geSB0aGUgWSBjb29yZGluYXRlIG9mIHRoZSBkZXNpcmVkIGVsZW1lbnRzIHRvcC1sZWZ0IGNvcm5lclxuICAgICAqIEBwYXJhbSBzdWJncmlkIHRoZSBvYmplY3QgdGhhdCBob2xkcyB0aGUgY29udGV4dCBvZiB0aGUgY29tcHV0ZWQgbGF5b3V0aW5nIHVuaXRcbiAgICAgKiBAcmV0dXJucyB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgc3BlY2lmaWVkIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0RWxlbWVudERpbWVuc2lvbnMoZ3JpZDogQXJyYXk8QXJyYXk8c3RyaW5nPj4sIHg6IG51bWJlciwgeTogbnVtYmVyLCBzdWJncmlkOiBTdWJncmlkKTogeyB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciB9IHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGdyaWRbeV1beF07XG4gICAgICAgIGxldCB3aWR0aCA9IDE7XG4gICAgICAgIHdoaWxlICh4ICsgd2lkdGggPCBzdWJncmlkLmNvbHMgJiYgZ3JpZFt5XVt4ICsgd2lkdGhdID09PSBlbGVtZW50KSB7XG4gICAgICAgICAgICB3aWR0aCsrO1xuICAgICAgICB9XG4gICAgICAgIGxldCBoZWlnaHQgPSAxO1xuICAgICAgICB3aGlsZSAoeSArIGhlaWdodCA8IGdyaWQubGVuZ3RoICYmIGdyaWRbeSArIGhlaWdodF1beF0gPT09IGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGhlaWdodCsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7d2lkdGgsIGhlaWdodH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgYXJlYSBpbiB0aGUgZ3JpZCBjb250YWlucyBubyBlbGVtZW50cywgb3Igbm90XG4gICAgICogQHBhcmFtIGdyaWQgdGhlIGdyaWQgb2YgZWxlbWVudHNcbiAgICAgKiBAcGFyYW0geCB0aGUgWCBjb29yZGluYXRlIG9mIHRoZSB0ZXN0ZWQgYXJlYXMgdG9wLWxlZnQgY29ybmVyXG4gICAgICogQHBhcmFtIHkgdGhlIFkgY29vcmRpbmF0ZSBvZiB0aGUgdGVzdGVkIGFyZWFzIHRvcC1sZWZ0IGNvcm5lclxuICAgICAqIEBwYXJhbSB3aWR0aCB0aGUgd2lkdGggb2YgdGhlIHRlc3RlZCBhcmVhXG4gICAgICogQHBhcmFtIGhlaWdodCB0aGUgaGVpZ2h0IG9mIHRoZSB0ZXN0ZWQgYXJlYVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpc0FyZWFFbXB0eShncmlkOiBBcnJheTxBcnJheTxzdHJpbmc+PiwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGZvciAobGV0IGkgPSB5OyBpIDwgeSArIGhlaWdodDsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0geDsgaiA8IHggKyB3aWR0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGdyaWRbaV1bal0gIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgdGhlIGxheW91dCBkYXRhIGZvciBhIHNpbmdsZSBkYXRhIGdyb3VwIHdpdGggZmxvdyBsYXlvdXQuIFRoZSByZXN1bHRpbmcgbGF5b3V0IGlzIHNhdmVkIGludG8gdGhlIGlucHV0IG9iamVjdHMuXG4gICAgICogQHBhcmFtIGRhdGFHcm91cCB0aGUgZGF0YSBncm91cCB0aGF0IHNob3VsZCBiZSBsYWlkIG91dCBpbnRvIGEgZ3JpZCB1c2luZyB0aGUgZmxvdyBhbGdvcml0aG1cbiAgICAgKiBAcGFyYW0gc3ViZ3JpZCB0aGUgb2JqZWN0IHRoYXQgaG9sZHMgdGhlIGNvbnRleHQgb2YgdGhlIGNvbXB1dGVkIGxheW91dGluZyB1bml0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVGbG93TGF5b3V0KGRhdGFHcm91cDogRGF0YUdyb3VwLCBzdWJncmlkOiBTdWJncmlkKSB7XG4gICAgICAgIHRoaXMuZmxvd0ZpZWxkcyhkYXRhR3JvdXAsIHN1YmdyaWQsIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIHRoZSBsYXlvdXQgZGF0YSBmb3IgYSBzaW5nbGUgZGF0YSBncm91cCB3aXRoIGxlZ2FjeSBsYXlvdXQuIFRoZSByZXN1bHRpbmcgbGF5b3V0IGlzIHNhdmVkIGludG8gdGhlIGlucHV0IG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBUaGUgbGVnYWN5IGxheW91dCBmb3JjZXMgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIGJlIDQgYW5kIGxvZ3MgYSB3YXJuaW5nIGlmIHRoaXMgd2FzIG5vdCB0aGUgY2FzZS5cbiAgICAgKiBAcGFyYW0gZGF0YUdyb3VwIHRoZSBkYXRhIGdyb3VwIHRoYXQgc2hvdWxkIGJlIGxhaWQgb3V0IGludG8gYSBncmlkIHVzaW5nIHRoZSBsZWdhY3kgYWxnb3JpdGhtIHVzZWQgaW4gTkFFIHZlcnNpb25zIDwgNC4wLjBcbiAgICAgKiBAcGFyYW0gc3ViZ3JpZCB0aGUgb2JqZWN0IHRoYXQgaG9sZHMgdGhlIGNvbnRleHQgb2YgdGhlIGNvbXB1dGVkIGxheW91dGluZyB1bml0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVMZWdhY3lMYXlvdXQoZGF0YUdyb3VwOiBEYXRhR3JvdXAsIHN1YmdyaWQ6IFN1YmdyaWQpIHtcbiAgICAgICAgaWYgKHN1YmdyaWQuY29scyAhPT0gNCkge1xuICAgICAgICAgICAgc3ViZ3JpZC5jb2xzID0gNDtcbiAgICAgICAgICAgIHRoaXMuX2xvZ2dlci53YXJuKGBUYXNrIHdpdGggaWQgJyR7dGhpcy50YXNrQ29udGVudFNlcnZpY2UudGFzay5zdHJpbmdJZH0nIGhhcyBhIGRhdGEgZ3JvdXAgd2l0aCBsZWdhY3kgbGF5b3V0IHdpdGggYSBgXG4gICAgICAgICAgICAgICAgKyBgbm9uLWRlZmF1bHQgbnVtYmVyIG9mIGNvbHVtbnMuIElmIHlvdSB3YW50IHRvIHVzZSBhIGxheW91dCB3aXRoIGRpZmZlcmVudCBudW1iZXIgb2YgY29sdW1ucyB0aGFuIDIgdXNlIGEgZGlmZmVyZW50IGBcbiAgICAgICAgICAgICAgICArIGBsYXlvdXQgdHlwZSBpbnN0ZWFkLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mbG93RmllbGRzKGRhdGFHcm91cCwgc3ViZ3JpZCwgMik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTGF5cyBvdXQgdGhlIGZpZWxkcyBmcm9tIGxlZnQgdG8gcmlnaHQsIGZyb20gdG9wIHRvIGJvdHRvbS4gSWYgdGhlIHdpZHRoIGlzIGdyZWF0ZXIgdGhhbiAxIGFuZCB0aGUgYmxvY2sgb2YgZmxvd2VkIGZpZWxkcyBkb2Vzbid0IGZpdFxuICAgICAqIG5lYXRseSBpbnRvIHRoZSBjb2x1bW5zIChpZiB0aGUgd2lkdGggb2YgYSBzaW5nbGUgZmllbGQgaXMgbm90IGEgZGl2aXNvciBvZiBjb2x1bW4gY291bnQpLCB0aGVuIHRoZSBlbnRpcmUgYmxvY2sgb2YgZmllbGRzIGlzXG4gICAgICogbGVmdCBhbGlnbmVkLiBUaGUgbGFzdCByb3cgb2YgZmllbGRzIGlzIGFsaWduZWQgdG8gdGhlIGxlZnQsIGNlbnRlciBvciByaWdodCBiYXNlZCBvbiB0aGUgZGF0YSBncm91cHMgcHJvcGVydHkuXG4gICAgICogSWYgdGhlIGxhc3Qgcm93IGNhbm5vdCBiZSBhbGlnbmVkIHRvIHRoZSBleGFjdCBjZW50ZXIgaXQgaXMgb2Zmc2V0IG9uZSBncmlkIHRpbGUgdG8gdGhlIGxlZnQuXG4gICAgICogQHBhcmFtIGRhdGFHcm91cCB0aGUgZGF0YSBncm91cCB0aGF0IHNob3VsZCBiZSBsYWlkIG91dCBpbnRvIGEgZ3JpZFxuICAgICAqIEBwYXJhbSBzdWJncmlkIHRoZSBvYmplY3QgdGhhdCBob2xkcyB0aGUgY29udGV4dCBvZiB0aGUgY29tcHV0ZWQgbGF5b3V0aW5nIHVuaXRcbiAgICAgKiBAcGFyYW0gZmllbGRXaWR0aCB0aGUgbnVtYmVyIG9mIGdyaWQgdGlsZXMsIHRoYXQgc2hvdWxkIGJlIG9jY3VwaWVkIGJ5IGVhY2ggZmllbGRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZmxvd0ZpZWxkcyhkYXRhR3JvdXA6IERhdGFHcm91cCwgc3ViZ3JpZDogU3ViZ3JpZCwgZmllbGRXaWR0aDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkc1BlclJvdyA9IE1hdGguZmxvb3Ioc3ViZ3JpZC5jb2xzIC8gZmllbGRXaWR0aCk7XG4gICAgICAgIGNvbnN0IG1heFhQb3NpdGlvbiA9IGZpZWxkV2lkdGggKiAoZmllbGRzUGVyUm93IC0gMSk7XG5cbiAgICAgICAgbGV0IHhQb3NpdGlvbiA9IDA7XG4gICAgICAgIGNvbnN0IGxvY2FsR3JpZDogQXJyYXk8QXJyYXk8c3RyaW5nPj4gPSBbXTtcbiAgICAgICAgZGF0YUdyb3VwLmZpZWxkcy5mb3JFYWNoKChkYXRhRmllbGQsIGRhdGFGaWVsZENvdW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZEVsZW1lbnQgPSBzdWJncmlkLmFkZEZpZWxkKGRhdGFGaWVsZCwgdGhpcy5fZmllbGRDb252ZXJ0ZXIucmVzb2x2ZVR5cGUoZGF0YUZpZWxkKSk7XG4gICAgICAgICAgICBpZiAoZGF0YUdyb3VwLnN0cmV0Y2gpIHtcbiAgICAgICAgICAgICAgICBzdWJncmlkLmFkZFJvdyh0aGlzLm5ld0dyaWRSb3coc3ViZ3JpZC5jb2xzLCBmaWVsZEVsZW1lbnQuZ3JpZEFyZWFJZCkpO1xuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gY29udGludWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGVsc2VcbiAgICAgICAgICAgIGlmICh4UG9zaXRpb24gPT09IDApIHtcbiAgICAgICAgICAgICAgICBsb2NhbEdyaWQucHVzaCh0aGlzLm5ld0dyaWRSb3coc3ViZ3JpZC5jb2xzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoeFBvc2l0aW9uID09PSAwICYmIHRoaXMuaXNMYXN0Um93KGRhdGFGaWVsZENvdW50LCBkYXRhR3JvdXAsIGZpZWxkc1BlclJvdykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZHNJbkxhc3RSb3cgPSBkYXRhR3JvdXAuZmllbGRzLmxlbmd0aCAlIGZpZWxkc1BlclJvdztcbiAgICAgICAgICAgICAgICBjb25zdCByb3dXaWR0aCA9IG1heFhQb3NpdGlvbiArIGZpZWxkV2lkdGg7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGFHcm91cC5hbGlnbm1lbnQgPT09IERhdGFHcm91cEFsaWdubWVudC5FTkQpIHtcbiAgICAgICAgICAgICAgICAgICAgeFBvc2l0aW9uID0gcm93V2lkdGggLSBmaWVsZFdpZHRoICogZmllbGRzSW5MYXN0Um93O1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YUdyb3VwLmFsaWdubWVudCA9PT0gRGF0YUdyb3VwQWxpZ25tZW50LkNFTlRFUikge1xuICAgICAgICAgICAgICAgICAgICB4UG9zaXRpb24gPSBNYXRoLmZsb29yKChyb3dXaWR0aCAtIGZpZWxkc0luTGFzdFJvdyAqIGZpZWxkV2lkdGgpIC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vY2N1cHlTcGFjZShsb2NhbEdyaWQsIGxvY2FsR3JpZC5sZW5ndGggLSAxLCB4UG9zaXRpb24sIGZpZWxkV2lkdGgsIGZpZWxkRWxlbWVudC5ncmlkQXJlYUlkKTtcblxuICAgICAgICAgICAgeFBvc2l0aW9uICs9IGZpZWxkV2lkdGg7XG4gICAgICAgICAgICBpZiAoeFBvc2l0aW9uID4gbWF4WFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgeFBvc2l0aW9uID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGxvY2FsR3JpZC5mb3JFYWNoKHJvdyA9PiBzdWJncmlkLmFkZFJvdyhyb3cpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gd2lkdGggd2lkdGggb2YgdGhlIHJvd1xuICAgICAqIEBwYXJhbSBjb250ZW50IHRoZSB2YWx1ZSB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGZpbGwgYWxsIGVsZW1lbnRzIGluIHRoZSByb3dcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbmV3R3JpZFJvdyh3aWR0aDogbnVtYmVyLCBjb250ZW50ID0gJycpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIEFycmF5KHdpZHRoKS5maWxsKGNvbnRlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbGxzIHRoZSBzcGVjaWZpZWQgcmVjdGFuZ3VsYXIgYXJlYSB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWUgaW4gdGhlIHByb3ZpZGVkIGdyaWQuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgc3BlY2lmaWVkIGFyZWEgY29udGFpbnMgdmFsdWVzIG90aGVyIHRoYW4gdGhlIGVtcHR5IHN0cmluZyBhbiBlcnJvciB3aWxsIGJlIHRocm93bi5cbiAgICAgKiBAcGFyYW0gZ3JpZCB0aGUgZ3JpZCB0aGF0IHNob3VsZCBiZSBtb2RpZmllZFxuICAgICAqIEBwYXJhbSB5IHRoZSAwIGJhc2VkIHJvdyBpbmRleCBvZiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSBmaWxsZWQgYXJlYVxuICAgICAqIEBwYXJhbSB4IHRoZSAwIGJhc2VkIGNvbHVtbiBpbmRleCBvZiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSBmaWxsZWQgYXJlYVxuICAgICAqIEBwYXJhbSB3aWR0aCB0aGUgd2lkdGggb2YgdGhlIGZpbGxlZCBhcmVhXG4gICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0aGF0IGlzIHNldCBpbnRvIGV2ZXJ5IGNlbGwgb2YgdGhlIGdyaWQgaW5zaWRlIHRoZSBzcGVjaWZpZWQgYXJlYVxuICAgICAqIEBwYXJhbSBoZWlnaHQgdGhlIGhlaWdodCBvZiB0aGUgZmlsbGVkIGFyZWFcbiAgICAgKiBAcGFyYW0gY2hlY2tPY2N1cGFudHMgd2hldGhlciB0aGUgZmlsbGVkIGFyZWEgc2hvdWxkIGJlIGNoZWNrZWQgZm9yIG90aGVyIGVsZW1lbnRzLlxuICAgICAqIElmIGEgY2hlY2sgaXMgcGVyZm9ybWVkIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duIGlmIGVsZW1lbnRzIGFyZSBmb3VuZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb2NjdXB5U3BhY2UoZ3JpZDogQXJyYXk8QXJyYXk8c3RyaW5nPj4sIHk6IG51bWJlciwgeDogbnVtYmVyLCB3aWR0aDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc3RyaW5nLCBoZWlnaHQgPSAxLCBjaGVja09jY3VwYW50cyA9IHRydWUpIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IHk7IGogPCB5ICsgaGVpZ2h0OyBqKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSB4OyBpIDwgeCArIHdpZHRoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tPY2N1cGFudHMgJiYgZ3JpZFtqXVtpXSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcGxhY2UgZWxlbWVudCAke3ZhbHVlfSBpbnRvIHRoZSBncmlkIGxheW91dCwgYmVjYXVzZSBpdCdzIHNwYWNlICh4OiAke2l9LCB5OiAke2p9KWAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYCBpcyBhbHJlYWR5IG9jY3VwaWVkIGJ5IGFub3RoZXIgZWxlbWVudCAoJHtncmlkW2pdW2ldfSlgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZ3JpZFtqXVtpXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBvZiB0aGUgY2hlY2tlZCBlbGVtZW50IHdpdGhpbiBpdHMgZGF0YSBncm91cFxuICAgICAqIEBwYXJhbSBkYXRhR3JvdXAgdGhlIGNoZWNrZWQgZGF0YSBncm91cFxuICAgICAqIEBwYXJhbSBmaWVsZHNQZXJSb3cgdGhlIG51bWJlciBvZiBmaWVsZHMgdGhhdCBpcyByZXF1aXJlZCB0byBmaWxsIGFuIGVudGlyZSByb3dcbiAgICAgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSBmaWVsZCBhdCB0aGUgZ2l2ZW4gaW5kZXggaXMgd2l0aGluIHRoZSBsYXN0IHJvdyBvZiBlbGVtZW50cyBvZiB0aGUgcHJvdmlkZWQgZGF0YSBncm91cC5cbiAgICAgKiBOb3RlIHRoYXQgaWYgdGhlIGxhc3Qgcm93IGNvbnRhaW5zIGVub3VnaCBlbGVtZW50cyB0byBiZSBjb21wbGV0ZWx5IGZpbGxlZCB0aGlzIG1ldGhvZCByZXR1cm5zIGBmYWxzZWAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGlzTGFzdFJvdyhpbmRleDogbnVtYmVyLCBkYXRhR3JvdXA6IERhdGFHcm91cCwgZmllbGRzUGVyUm93OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGluZGV4ICsgZmllbGRzUGVyUm93ID49IGRhdGFHcm91cC5maWVsZHMubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc3Ryb3lzIHRoZSBwcmV2aW91cyBjb250ZW50IGFuZCBwdXNoZXMgdGhlIG5ldyBjb250ZW50IGludG8gdGhlIHN0cmVhbVxuICAgICAqIEBwYXJhbSBjb250ZW50IHRoZSBuZXcgY29udGVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZW5kZXJDb250ZW50KGNvbnRlbnQ6IEFycmF5PFN1YmdyaWQ+ID0gW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZSQudmFsdWUuZm9yRWFjaChzdWJncmlkID0+IHN1YmdyaWQuZGVzdHJveSgpKTtcbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZSQubmV4dChjb250ZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlU3ViZ3JpZElkKGRhdGFHcm91cDogRGF0YUdyb3VwKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGlkQmFzZTogc3RyaW5nO1xuICAgICAgICBpZiAoZGF0YUdyb3VwLnBhcmVudFRhc2tJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZEJhc2UgPSBbZGF0YUdyb3VwLnBhcmVudFRhc2tJZCwgZGF0YUdyb3VwLnBhcmVudFRhc2tSZWZJZCwgZGF0YUdyb3VwLm5lc3RpbmdMZXZlbF0uam9pbignIycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWRCYXNlID0gJ3Jvb3QnO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpZCA9IGlkQmFzZTtcbiAgICAgICAgd2hpbGUgKHRoaXMuX2V4aXN0aW5nU3ViZ3JpZElkcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICBpZCA9IGlkQmFzZSArIHRoaXMuX3N1YmdyaWRJZENvdW50ZXIubmV4dCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2V4aXN0aW5nU3ViZ3JpZElkcy5hZGQoaWQpO1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYWNrQnlTdWJncmlkRm4gPSAoaW5kZXg6IG51bWJlciwgc3ViZ3JpZDogU3ViZ3JpZCkgPT4gc3ViZ3JpZC5zdWJncmlkSWQ7XG5cbiAgICBwdWJsaWMgdHJhY2tCeUZuID0gKGluZGV4OiBudW1iZXIsIGVsZW1lbnQ6IERhdGFmaWVsZEdyaWRMYXlvdXRFbGVtZW50KSA9PiB0aGlzLnRyYWNrQnlEYXRhZmllbGRzKGluZGV4LCBlbGVtZW50KTtcblxuICAgIHByb3RlY3RlZCB0cmFja0J5RGF0YWZpZWxkcyhpbmRleDogbnVtYmVyLCBlbGVtZW50OiBEYXRhZmllbGRHcmlkTGF5b3V0RWxlbWVudCkge1xuICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBUYXNrRWxlbWVudFR5cGUuQkxBTks6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuZ3JpZEFyZWFJZCArICctJyArIHRoaXMudGFza0NvbnRlbnRTZXJ2aWNlLiRzaG91bGRDcmVhdGVDb3VudGVyLmdldFZhbHVlKCk7XG4gICAgICAgICAgICBjYXNlIFRhc2tFbGVtZW50VHlwZS5MT0FERVI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuZ3JpZEFyZWFJZCArICctTC0nICsgdGhpcy50YXNrQ29udGVudFNlcnZpY2UuJHNob3VsZENyZWF0ZUNvdW50ZXIuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgIGNhc2UgVGFza0VsZW1lbnRUeXBlLkRBVEFfR1JPVVBfVElUTEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQudGl0bGUgKyAnLScgKyB0aGlzLnRhc2tDb250ZW50U2VydmljZS4kc2hvdWxkQ3JlYXRlQ291bnRlci5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudC5pdGVtLnN0cmluZ0lkICsgJy0nICsgdGhpcy50YXNrQ29udGVudFNlcnZpY2UuJHNob3VsZENyZWF0ZUNvdW50ZXIuZ2V0VmFsdWUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==