@eo-sdk/client 11.5.0-rc.3 → 11.6.0-rc.2

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 (308) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  3. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +1 -1
  4. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  5. package/app/eo-client/eo-client.module.d.ts +4 -5
  6. package/app/eo-client/eo-client.module.d.ts.map +1 -1
  7. package/app/eo-client/index.d.ts +3 -0
  8. package/app/eo-client/index.d.ts.map +1 -1
  9. package/app/eo-client/process-state/filter-label.d.ts +10 -0
  10. package/app/eo-client/process-state/filter-label.d.ts.map +1 -0
  11. package/app/eo-framework/actions/actions/custom-actions/custom-actions.component.d.ts.map +1 -1
  12. package/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.d.ts.map +1 -1
  13. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +1 -1
  14. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  15. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  16. package/app/eo-framework/form-elements/organization/organization.component.d.ts +1 -0
  17. package/app/eo-framework/form-elements/organization/organization.component.d.ts.map +1 -1
  18. package/app/eo-framework/grid/grid.component.d.ts +9 -1
  19. package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
  20. package/app/eo-framework/media/media.component.d.ts +3 -2
  21. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  22. package/app/eo-framework/object-details/object-details.component.d.ts +13 -4
  23. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  24. package/app/eo-framework/object-details/object-history/object-history.component.d.ts +3 -2
  25. package/app/eo-framework/object-details/object-history/object-history.component.d.ts.map +1 -1
  26. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +1 -0
  27. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
  28. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  29. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +50 -0
  30. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
  31. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.interface.d.ts +10 -0
  32. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.interface.d.ts.map +1 -0
  33. package/app/eo-framework/ui/ui.module.d.ts +10 -11
  34. package/app/eo-framework/ui/ui.module.d.ts.map +1 -1
  35. package/app/eo-framework-core/agent/agent.service.d.ts.map +1 -1
  36. package/app/eo-framework-core/eo-framework-core.module.d.ts +1 -2
  37. package/app/eo-framework-core/eo-framework-core.module.d.ts.map +1 -1
  38. package/app/eo-framework-core/error-handler/error-handler.service.d.ts.map +1 -1
  39. package/app/eo-framework-core/search/app-search.service.d.ts +12 -1
  40. package/app/eo-framework-core/search/app-search.service.d.ts.map +1 -1
  41. package/assets/_default/i18n/de.json +5 -3
  42. package/assets/_default/i18n/en.json +10 -8
  43. package/esm2022/app/eo-client/about-state/about-state.component.mjs +6 -6
  44. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +4 -4
  45. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +14 -12
  46. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +3 -3
  47. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +3 -3
  48. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +3 -3
  49. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +3 -3
  50. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +3 -3
  51. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +3 -3
  52. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +6 -6
  53. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +3 -3
  54. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +3 -3
  55. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +3 -3
  56. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +3 -3
  57. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +3 -3
  58. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +3 -3
  59. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +3 -3
  60. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +3 -3
  61. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +3 -3
  62. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +3 -3
  63. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +3 -3
  64. package/esm2022/app/eo-client/eo-client-routing.module.mjs +4 -4
  65. package/esm2022/app/eo-client/eo-client.module.mjs +26 -28
  66. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +3 -3
  67. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +3 -3
  68. package/esm2022/app/eo-client/inbox-state/inbox-state-routing.module.mjs +4 -4
  69. package/esm2022/app/eo-client/inbox-state/inbox-state.module.mjs +4 -4
  70. package/esm2022/app/eo-client/index.mjs +4 -1
  71. package/esm2022/app/eo-client/login/login.component.mjs +3 -3
  72. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +3 -3
  73. package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  74. package/esm2022/app/eo-client/object-state/object-state-routing.module.mjs +4 -4
  75. package/esm2022/app/eo-client/object-state/object-state-service/object-state.service.mjs +3 -3
  76. package/esm2022/app/eo-client/object-state/object-state.module.mjs +4 -4
  77. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +3 -3
  78. package/esm2022/app/eo-client/prepare-state/prepare-state-routing.module.mjs +4 -4
  79. package/esm2022/app/eo-client/prepare-state/prepare-state.module.mjs +4 -4
  80. package/esm2022/app/eo-client/process-state/filter-label.mjs +11 -0
  81. package/esm2022/app/eo-client/process-state/process-state.component.mjs +3 -3
  82. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +3 -3
  83. package/esm2022/app/eo-client/result-state/result-state.component.mjs +3 -3
  84. package/esm2022/app/eo-client/settings/settings.component.mjs +3 -3
  85. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +3 -3
  86. package/esm2022/app/eo-client/version-state/version-state.component.mjs +3 -3
  87. package/esm2022/app/eo-framework/accordion/accordion.module.mjs +4 -4
  88. package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +3 -3
  89. package/esm2022/app/eo-framework/actions/action-menu/action-component-anchor/action-component-anchor.directive.mjs +3 -3
  90. package/esm2022/app/eo-framework/actions/action-menu/action-menu.component.mjs +3 -3
  91. package/esm2022/app/eo-framework/actions/action-service/action.service.mjs +3 -3
  92. package/esm2022/app/eo-framework/actions/action.module.mjs +4 -4
  93. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
  94. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.mjs +3 -3
  95. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +3 -3
  96. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.mjs +3 -3
  97. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +3 -3
  98. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.mjs +3 -3
  99. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-action.mjs +3 -3
  100. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +3 -3
  101. package/esm2022/app/eo-framework/actions/actions/copy-action/copy-action.mjs +3 -3
  102. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +5 -4
  103. package/esm2022/app/eo-framework/actions/actions/cut-action/cut-action.mjs +3 -3
  104. package/esm2022/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +3 -3
  105. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-action.mjs +3 -3
  106. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-prepared-action.mjs +3 -3
  107. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.mjs +3 -3
  108. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content-action.mjs +3 -3
  109. package/esm2022/app/eo-framework/actions/actions/download-action/download-action.mjs +3 -3
  110. package/esm2022/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +3 -3
  111. package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +3 -3
  112. package/esm2022/app/eo-framework/actions/actions/email/email-action.mjs +3 -3
  113. package/esm2022/app/eo-framework/actions/actions/favorite-action/favorite-action.mjs +3 -3
  114. package/esm2022/app/eo-framework/actions/actions/finalize/definalize-action.mjs +3 -3
  115. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-action.mjs +4 -4
  116. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.mjs +3 -3
  117. package/esm2022/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +3 -3
  118. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +3 -3
  119. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.mjs +3 -3
  120. package/esm2022/app/eo-framework/actions/actions/open-versions-action/open-versions-action.mjs +3 -3
  121. package/esm2022/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.mjs +3 -3
  122. package/esm2022/app/eo-framework/actions/actions/restore-version-action/restore-version-action.mjs +3 -3
  123. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +3 -3
  124. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object-action.mjs +3 -3
  125. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +3 -3
  126. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +3 -3
  127. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  128. package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +3 -3
  129. package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-action.mjs +3 -3
  130. package/esm2022/app/eo-framework/actions/actions/update-resubmission-action/update-resubmission-action.mjs +3 -3
  131. package/esm2022/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.mjs +5 -5
  132. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +3 -3
  133. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow-action.component.mjs +3 -3
  134. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +3 -3
  135. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +3 -3
  136. package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +3 -3
  137. package/esm2022/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +3 -3
  138. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +20 -6
  139. package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
  140. package/esm2022/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +3 -3
  141. package/esm2022/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +3 -3
  142. package/esm2022/app/eo-framework/app-shell/app-shell-routing.module.mjs +4 -4
  143. package/esm2022/app/eo-framework/app-shell/app-shell.module.mjs +4 -4
  144. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +3 -3
  145. package/esm2022/app/eo-framework/cta/component/cta.component.mjs +3 -3
  146. package/esm2022/app/eo-framework/cta/cta.module.mjs +4 -4
  147. package/esm2022/app/eo-framework/eo-framework.module.mjs +4 -4
  148. package/esm2022/app/eo-framework/error/error.module.mjs +4 -4
  149. package/esm2022/app/eo-framework/error/error404/error404.component.mjs +3 -3
  150. package/esm2022/app/eo-framework/error/not-found/not-found.component.mjs +3 -3
  151. package/esm2022/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +3 -3
  152. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
  153. package/esm2022/app/eo-framework/form-elements/date/date.component.mjs +3 -3
  154. package/esm2022/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +3 -3
  155. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +5 -4
  156. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +6 -6
  157. package/esm2022/app/eo-framework/form-elements/form-elements.module.mjs +4 -4
  158. package/esm2022/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
  159. package/esm2022/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.mjs +3 -3
  160. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +3 -3
  161. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +3 -3
  162. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +3 -3
  163. package/esm2022/app/eo-framework/form-elements/id-reference/service/reference-finder.service.mjs +3 -3
  164. package/esm2022/app/eo-framework/form-elements/number/number.component.mjs +3 -3
  165. package/esm2022/app/eo-framework/form-elements/number-range/number-range.component.mjs +3 -3
  166. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +28 -19
  167. package/esm2022/app/eo-framework/form-elements/password/password.component.mjs +3 -3
  168. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
  169. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +3 -3
  170. package/esm2022/app/eo-framework/frame/frame.component.mjs +3 -3
  171. package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +3 -3
  172. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +3 -3
  173. package/esm2022/app/eo-framework/grid/extensions/empty/empty.component.mjs +3 -3
  174. package/esm2022/app/eo-framework/grid/extensions/filter/abstract-filter.component.mjs +3 -3
  175. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
  176. package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +3 -3
  177. package/esm2022/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +5 -5
  178. package/esm2022/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +3 -3
  179. package/esm2022/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.mjs +3 -3
  180. package/esm2022/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +3 -3
  181. package/esm2022/app/eo-framework/grid/extensions/services/list-settings.service.mjs +3 -3
  182. package/esm2022/app/eo-framework/grid/extensions/total-count/total-count.component.mjs +3 -3
  183. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
  184. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
  185. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
  186. package/esm2022/app/eo-framework/grid/filters/list-filter.component.mjs +3 -3
  187. package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +3 -3
  188. package/esm2022/app/eo-framework/grid/grid.component.mjs +55 -25
  189. package/esm2022/app/eo-framework/grid/grid.module.mjs +4 -4
  190. package/esm2022/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.mjs +3 -3
  191. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +3 -3
  192. package/esm2022/app/eo-framework/list-container/list-container.component.mjs +3 -3
  193. package/esm2022/app/eo-framework/list-container/list-container.module.mjs +4 -4
  194. package/esm2022/app/eo-framework/media/content-preview.service.mjs +3 -3
  195. package/esm2022/app/eo-framework/media/media.component.mjs +11 -7
  196. package/esm2022/app/eo-framework/media/media.module.mjs +4 -4
  197. package/esm2022/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +3 -3
  198. package/esm2022/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +3 -3
  199. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +31 -16
  200. package/esm2022/app/eo-framework/object-details/object-details.module.mjs +4 -4
  201. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.mjs +3 -3
  202. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.component.mjs +3 -3
  203. package/esm2022/app/eo-framework/object-details/object-history/object-history.component.mjs +12 -7
  204. package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +3 -3
  205. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +3 -3
  206. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  207. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +22 -20
  208. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +3 -3
  209. package/esm2022/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +3 -3
  210. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +4 -4
  211. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  212. package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +3 -3
  213. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +3 -3
  214. package/esm2022/app/eo-framework/object-form/object-form.module.mjs +4 -4
  215. package/esm2022/app/eo-framework/object-state-details/object-state-details.component.mjs +3 -3
  216. package/esm2022/app/eo-framework/plugins/plugin.component.mjs +9 -9
  217. package/esm2022/app/eo-framework/plugins/plugin.directive.mjs +3 -3
  218. package/esm2022/app/eo-framework/plugins/plugin.service.mjs +3 -3
  219. package/esm2022/app/eo-framework/plugins/plugins.module.mjs +4 -4
  220. package/esm2022/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.mjs +3 -3
  221. package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +3 -3
  222. package/esm2022/app/eo-framework/process/details/process-details.component.mjs +3 -3
  223. package/esm2022/app/eo-framework/process/history/process-history.component.mjs +3 -3
  224. package/esm2022/app/eo-framework/process/process-file/process-file.component.mjs +3 -3
  225. package/esm2022/app/eo-framework/process-form/process-form.component.mjs +3 -3
  226. package/esm2022/app/eo-framework/process-form/process-form.module.mjs +4 -4
  227. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  228. package/esm2022/app/eo-framework/quick-search/quick-search.module.mjs +4 -4
  229. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +3 -3
  230. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +10 -5
  231. package/esm2022/app/eo-framework/result-list/result-list.module.mjs +4 -4
  232. package/esm2022/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.mjs +3 -3
  233. package/esm2022/app/eo-framework/settings/permissions/permissions.component.mjs +3 -3
  234. package/esm2022/app/eo-framework/settings/settings.module.mjs +4 -4
  235. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.mjs +3 -3
  236. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.mjs +3 -3
  237. package/esm2022/app/eo-framework/shortcuts/shortcuts.directive.mjs +3 -3
  238. package/esm2022/app/eo-framework/shortcuts/shortcuts.module.mjs +4 -4
  239. package/esm2022/app/eo-framework/shortcuts/shortcuts.service.mjs +3 -3
  240. package/esm2022/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +3 -3
  241. package/esm2022/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +3 -3
  242. package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +3 -3
  243. package/esm2022/app/eo-framework/stored-query/stored-query.module.mjs +4 -4
  244. package/esm2022/app/eo-framework/tree/tree-node/tree-node.component.mjs +3 -3
  245. package/esm2022/app/eo-framework/tree/tree.component.mjs +3 -3
  246. package/esm2022/app/eo-framework/tree/tree.module.mjs +4 -4
  247. package/esm2022/app/eo-framework/ui/clipboard/clipboard.component.mjs +3 -3
  248. package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +3 -3
  249. package/esm2022/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +3 -3
  250. package/esm2022/app/eo-framework/ui/error-message/error-message.component.mjs +3 -3
  251. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +4 -4
  252. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +141 -8
  253. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.interface.mjs +2 -0
  254. package/esm2022/app/eo-framework/ui/loading-spinner/loading-spinner.component.mjs +3 -3
  255. package/esm2022/app/eo-framework/ui/outside-click/outside-click.directive.mjs +3 -3
  256. package/esm2022/app/eo-framework/ui/overlay/overlay.component.mjs +3 -3
  257. package/esm2022/app/eo-framework/ui/query-scope-select/query-scope-select.component.mjs +3 -3
  258. package/esm2022/app/eo-framework/ui/router-link/router-link.directive.mjs +3 -3
  259. package/esm2022/app/eo-framework/ui/rtl-aware/rtl-aware.directive.mjs +3 -3
  260. package/esm2022/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  261. package/esm2022/app/eo-framework/ui/ui.module.mjs +17 -28
  262. package/esm2022/app/eo-framework/ui/user-avatar/user-avatar.component.mjs +3 -3
  263. package/esm2022/app/eo-framework/upload-overlay/upload-overlay-guard.service.mjs +3 -3
  264. package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +3 -3
  265. package/esm2022/app/eo-framework/util/directive/prevent-double-click.directive.mjs +3 -3
  266. package/esm2022/app/eo-framework/util/directive/trap-focus.directive.mjs +3 -3
  267. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +3 -3
  268. package/esm2022/app/eo-framework/util/sortable/order-by.pipe.mjs +3 -3
  269. package/esm2022/app/eo-framework/util/util.module.mjs +4 -4
  270. package/esm2022/app/eo-framework-core/agent/agent.service.mjs +4 -4
  271. package/esm2022/app/eo-framework-core/api/grid.service.mjs +6 -6
  272. package/esm2022/app/eo-framework-core/api/plugins.service.mjs +3 -3
  273. package/esm2022/app/eo-framework-core/empty-state/empty-state.service.mjs +3 -3
  274. package/esm2022/app/eo-framework-core/eo-framework-core.module.mjs +13 -19
  275. package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +4 -4
  276. package/esm2022/app/eo-framework-core/layout/layout.service.mjs +3 -3
  277. package/esm2022/app/eo-framework-core/location/location.service.mjs +3 -3
  278. package/esm2022/app/eo-framework-core/pending-changes/pending-changes-guard.service.mjs +3 -3
  279. package/esm2022/app/eo-framework-core/pending-changes/pending-changes.service.mjs +3 -3
  280. package/esm2022/app/eo-framework-core/pipes/filesize.pipe.mjs +3 -3
  281. package/esm2022/app/eo-framework-core/pipes/keys.pipe.mjs +3 -3
  282. package/esm2022/app/eo-framework-core/pipes/locale-date.pipe.mjs +3 -3
  283. package/esm2022/app/eo-framework-core/pipes/locale-number.pipe.mjs +12 -12
  284. package/esm2022/app/eo-framework-core/pipes/pipes.module.mjs +4 -4
  285. package/esm2022/app/eo-framework-core/pipes/safe-html.pipe.mjs +3 -3
  286. package/esm2022/app/eo-framework-core/references/reference.service.mjs +3 -3
  287. package/esm2022/app/eo-framework-core/route-guards/auth/auth-guard.service.mjs +3 -3
  288. package/esm2022/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.mjs +3 -3
  289. package/esm2022/app/eo-framework-core/search/app-search.service.mjs +32 -7
  290. package/esm2022/app/eo-framework-core/selection/selection.service.mjs +3 -3
  291. package/esm2022/app/eo-framework-core/title/page-title.service.mjs +3 -3
  292. package/fesm2022/eo-sdk-client.mjs +1183 -1621
  293. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  294. package/misc/scripts/copy-client-assets.js +1 -1
  295. package/package.json +17 -17
  296. package/proxy.config.js +13 -0
  297. package/scss/_migrationTemp.scss +1 -0
  298. package/styles.css +1 -0
  299. package/app/eo-framework/grid/row-grouping/batchRemover.d.ts +0 -13
  300. package/app/eo-framework/grid/row-grouping/batchRemover.d.ts.map +0 -1
  301. package/app/eo-framework/grid/row-grouping/group-stage.d.ts +0 -45
  302. package/app/eo-framework/grid/row-grouping/group-stage.d.ts.map +0 -1
  303. package/app/eo-framework/grid/row-grouping/row-grouping.module.d.ts +0 -8
  304. package/app/eo-framework/grid/row-grouping/row-grouping.module.d.ts.map +0 -1
  305. package/esm2022/app/eo-framework/grid/row-grouping/batchRemover.mjs +0 -50
  306. package/esm2022/app/eo-framework/grid/row-grouping/group-stage.mjs +0 -623
  307. package/esm2022/app/eo-framework/grid/row-grouping/row-grouping.module.mjs +0 -8
  308. package/proxy.config.json +0 -97
@@ -208,14 +208,14 @@ let RowEditComponent = class RowEditComponent {
208
208
  ngOnDestroy() {
209
209
  this.unsubscribeAll();
210
210
  }
211
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RowEditComponent, deps: [{ token: i1.PendingChangesService }, { token: i2.ObjectFormScriptService }, { token: i3.ObjectFormHelperService }, { token: i4.UntypedFormBuilder }, { token: i5.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component }); }
212
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: RowEditComponent, selector: "eo-row-edit", inputs: { limitReached: "limitReached", row: "row" }, outputs: { onCancel: "onCancel", onSave: "onSave", onSaveCopy: "onSaveCopy", onDelete: "onDelete" }, providers: [ObjectFormScriptService], viewQueries: [{ propertyName: "confirmDeleteButton", first: true, predicate: ["confirmDelete"], descendants: true }], ngImport: i0, template: "<div class=\"row-edit\">\n <div class=\"edit-header\" *ngIf=\"!queryEnabled\">\n <div class=\"new-indicator\" *ngIf=\"isNewRow\" translate>eo.form.table.options.indicator.new</div>\n <div></div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"cancel()\" class=\"button cancel-icon\"\n [iconTitle]=\"('eo.cta.button.cancel' | translate)\"></eo-icon>\n </div>\n\n <div class=\"form\" [formGroup]=\"editForm\" *ngIf=\"editForm\">\n <eo-form-element *ngFor=\"let c of editFormControls\" [element]=\"c\" [situation]=\"_row?.situation\" [skipToggle]=\"false\">\n </eo-form-element>\n </div>\n\n <div class=\"actions\">\n <eo-checkbox *ngIf=\"isNewRow\" title=\"{{'eo.form.table.options.checkbox.new.title' | translate}}\"\n [formControl]=\"createNewCheckbox\"></eo-checkbox>\n <span *ngIf=\"isNewRow\" class=\"add-label\" translate>eo.form.table.options.checkbox.new</span>\n <button type=\"button\" *ngIf=\"deleteEnabled && !isNewRow && !_row?.form.disabled && !queryEnabled\"\n (click)=\"showDeleteDialog = true;\" title=\"{{'eo.cta.button.delete' | translate}}\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\n </button>\n <button type=\"button\" (click)=\"saveCopy()\" class=\"seco\" *ngIf=\"copyEnabled && !isNewRow && !_row?.form.disabled\"\n [disabled]=\"limitReached || saving || formState?.invalid\" translate>eo.form.table.options.btn.copy</button>\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"saveEnabled && !_row?.form.disabled\"\n [disabled]=\"(limitReached && isNewRow) || saving || formState?.invalid || (!formState?.dirty && !isNewRow)\">{{\n 'eo.form.table.options.btn.save' + (isNewRow ? '.new' : '') | translate}}</button>\n <!-- query button for SEARCH situation -->\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"queryEnabled\"\n [disabled]=\"formState?.invalid || !formState?.indexdataChanged\" translate>eo.form.table.options.btn.save</button>\n </div>\n\n</div>\n\n<eo-dialog [title]=\"('eo.form.table.options.confirm.delete' | translate)\" [(visible)]=\"showDeleteDialog\"\n [minWidth]=\"400\">\n <div class=\"action-buttons flex-row\" style=\"padding: 8px;\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" #confirmDelete (click)=\"delete()\" class=\"button primary\"\n translate>eo.form.table.options.btn.ok</button>\n </div>\n</eo-dialog>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i10.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i11.FormElementComponent, selector: "eo-form-element", inputs: ["situation", "skipToggle", "element"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
211
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RowEditComponent, deps: [{ token: i1.PendingChangesService }, { token: i2.ObjectFormScriptService }, { token: i3.ObjectFormHelperService }, { token: i4.UntypedFormBuilder }, { token: i5.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component }); }
212
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: RowEditComponent, selector: "eo-row-edit", inputs: { limitReached: "limitReached", row: "row" }, outputs: { onCancel: "onCancel", onSave: "onSave", onSaveCopy: "onSaveCopy", onDelete: "onDelete" }, providers: [ObjectFormScriptService], viewQueries: [{ propertyName: "confirmDeleteButton", first: true, predicate: ["confirmDelete"], descendants: true }], ngImport: i0, template: "<div class=\"row-edit\">\n <div class=\"edit-header\" *ngIf=\"!queryEnabled\">\n <div class=\"new-indicator\" *ngIf=\"isNewRow\" translate>eo.form.table.options.indicator.new</div>\n <div></div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"cancel()\" class=\"button cancel-icon\"\n [iconTitle]=\"('eo.cta.button.cancel' | translate)\"></eo-icon>\n </div>\n\n <div class=\"form\" [formGroup]=\"editForm\" *ngIf=\"editForm\">\n <eo-form-element *ngFor=\"let c of editFormControls\" [element]=\"c\" [situation]=\"_row?.situation\" [skipToggle]=\"false\">\n </eo-form-element>\n </div>\n\n <div class=\"actions\">\n <eo-checkbox *ngIf=\"isNewRow\" title=\"{{'eo.form.table.options.checkbox.new.title' | translate}}\"\n [formControl]=\"createNewCheckbox\"></eo-checkbox>\n <span *ngIf=\"isNewRow\" class=\"add-label\" translate>eo.form.table.options.checkbox.new</span>\n <button type=\"button\" *ngIf=\"deleteEnabled && !isNewRow && !_row?.form.disabled && !queryEnabled\"\n (click)=\"showDeleteDialog = true;\" title=\"{{'eo.cta.button.delete' | translate}}\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\n </button>\n <button type=\"button\" (click)=\"saveCopy()\" class=\"seco\" *ngIf=\"copyEnabled && !isNewRow && !_row?.form.disabled\"\n [disabled]=\"limitReached || saving || formState?.invalid\" translate>eo.form.table.options.btn.copy</button>\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"saveEnabled && !_row?.form.disabled\"\n [disabled]=\"(limitReached && isNewRow) || saving || formState?.invalid || (!formState?.dirty && !isNewRow)\">{{\n 'eo.form.table.options.btn.save' + (isNewRow ? '.new' : '') | translate}}</button>\n <!-- query button for SEARCH situation -->\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"queryEnabled\"\n [disabled]=\"formState?.invalid || !formState?.indexdataChanged\" translate>eo.form.table.options.btn.save</button>\n </div>\n\n</div>\n\n<eo-dialog [title]=\"('eo.form.table.options.confirm.delete' | translate)\" [(visible)]=\"showDeleteDialog\"\n [minWidth]=\"400\">\n <div class=\"action-buttons flex-row\" style=\"padding: 8px;\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" #confirmDelete (click)=\"delete()\" class=\"button primary\"\n translate>eo.form.table.options.btn.ok</button>\n </div>\n</eo-dialog>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i10.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i11.FormElementComponent, selector: "eo-form-element", inputs: ["situation", "skipToggle", "element"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
213
213
  };
214
214
  RowEditComponent = __decorate([
215
215
  UntilDestroy()
216
216
  ], RowEditComponent);
217
217
  export { RowEditComponent };
218
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RowEditComponent, decorators: [{
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RowEditComponent, decorators: [{
219
219
  type: Component,
220
220
  args: [{ selector: 'eo-row-edit', encapsulation: ViewEncapsulation.None, providers: [ObjectFormScriptService], template: "<div class=\"row-edit\">\n <div class=\"edit-header\" *ngIf=\"!queryEnabled\">\n <div class=\"new-indicator\" *ngIf=\"isNewRow\" translate>eo.form.table.options.indicator.new</div>\n <div></div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"cancel()\" class=\"button cancel-icon\"\n [iconTitle]=\"('eo.cta.button.cancel' | translate)\"></eo-icon>\n </div>\n\n <div class=\"form\" [formGroup]=\"editForm\" *ngIf=\"editForm\">\n <eo-form-element *ngFor=\"let c of editFormControls\" [element]=\"c\" [situation]=\"_row?.situation\" [skipToggle]=\"false\">\n </eo-form-element>\n </div>\n\n <div class=\"actions\">\n <eo-checkbox *ngIf=\"isNewRow\" title=\"{{'eo.form.table.options.checkbox.new.title' | translate}}\"\n [formControl]=\"createNewCheckbox\"></eo-checkbox>\n <span *ngIf=\"isNewRow\" class=\"add-label\" translate>eo.form.table.options.checkbox.new</span>\n <button type=\"button\" *ngIf=\"deleteEnabled && !isNewRow && !_row?.form.disabled && !queryEnabled\"\n (click)=\"showDeleteDialog = true;\" title=\"{{'eo.cta.button.delete' | translate}}\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\n </button>\n <button type=\"button\" (click)=\"saveCopy()\" class=\"seco\" *ngIf=\"copyEnabled && !isNewRow && !_row?.form.disabled\"\n [disabled]=\"limitReached || saving || formState?.invalid\" translate>eo.form.table.options.btn.copy</button>\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"saveEnabled && !_row?.form.disabled\"\n [disabled]=\"(limitReached && isNewRow) || saving || formState?.invalid || (!formState?.dirty && !isNewRow)\">{{\n 'eo.form.table.options.btn.save' + (isNewRow ? '.new' : '') | translate}}</button>\n <!-- query button for SEARCH situation -->\n <button type=\"button\" (click)=\"save()\" class=\"primary\" *ngIf=\"queryEnabled\"\n [disabled]=\"formState?.invalid || !formState?.indexdataChanged\" translate>eo.form.table.options.btn.save</button>\n </div>\n\n</div>\n\n<eo-dialog [title]=\"('eo.form.table.options.confirm.delete' | translate)\" [(visible)]=\"showDeleteDialog\"\n [minWidth]=\"400\">\n <div class=\"action-buttons flex-row\" style=\"padding: 8px;\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" #confirmDelete (click)=\"delete()\" class=\"button primary\"\n translate>eo.form.table.options.btn.ok</button>\n </div>\n</eo-dialog>" }]
221
221
  }], ctorParameters: () => [{ type: i1.PendingChangesService }, { type: i2.ObjectFormScriptService }, { type: i3.ObjectFormHelperService }, { type: i4.UntypedFormBuilder }, { type: i5.LocalStorageService }], propDecorators: { confirmDeleteButton: [{
@@ -62,10 +62,10 @@ export class ObjectFormGroupComponent {
62
62
  let parentFormElement = group.parent['_eoFormGroup'];
63
63
  return parentFormElement && parentFormElement.type === 'o2mGroupStack';
64
64
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ObjectFormGroupComponent, selector: "eo-form-group", inputs: { situation: "situation", skipToggle: "skipToggle", groupd: ["group", "groupd"], noGroupLabels: "noGroupLabels" }, ngImport: i0, template: "<div *ngIf=\"group\" [ngSwitch]=\"groupType\"\n class=\"form-element {{group._eoFormGroup ? group._eoFormGroup.type : 'o2mControlWrap'}} align-{{(group._eoFormGroup && group._eoFormGroup.layout) ? group._eoFormGroup.layout.align : ''}}\"\n [formGroup]=\"group\">\n\n <!-- group stacks (tabs) -->\n <yvc-tabs *ngSwitchCase=\"'stack'\" [layoutSettingsID]=\"layoutSettingsID\">\n <ng-template *ngFor=\"let key of group.controls | keys; index as i;\" [yvcTab]=\"{id: 't' + i, \n headerStyleClass: 'dirty-' + group.controls[key].dirty + ' invalid-' + group.controls[key].invalid,\n label: getObjectFormGroup(group.controls[key]).label}\">\n <div class=\"stack\" [ngClass]=\"{stackBase: group._eoFormGroup.label === 'data'}\">\n\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else stkgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n </eo-form-element>\n <ng-template #stkgroup>\n <eo-form-group [group]=\"group.controls[key]\" [noGroupLabels]=\"true\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </div>\n </ng-template>\n </yvc-tabs>\n\n <!-- group with legend -->\n <div *ngSwitchCase=\"'fieldset'\" class=\"om-group fieldset\">\n <div class=\"legend\"><span>{{group._eoFormGroup.label}}</span></div>\n\n <div>\n <ng-container *ngFor=\"let key of group.controls | keys\">\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else fsgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n </eo-form-element>\n <ng-template #fsgroup>\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </ng-container>\n </div>\n </div>\n\n <!-- group -->\n <ng-container class=\"om-group\" *ngSwitchCase=\"'group'\">\n <ng-container *ngFor=\"let key of group.controls | keys\">\n\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else omgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n\n </eo-form-element>\n <ng-template #omgroup>\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\" [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </ng-container>\n </ng-container>\n\n</div>\n\n\n<ng-template #tplFormElementTable let-element=\"element\" let-formElementRef=\"formElementRef\">\n <div class=\"table\">\n <eo-table [params]=\"{\nsituation: element._eoFormControlWrapper.situation,\nelement: formElementRef._eoFormElement,\nsize: formElementRef._eoFormElement.size,\nobject: formElementRef._eoFormElement.object\n}\" [formControl]=\"element.get(element._eoFormControlWrapper.controlName)\"></eo-table>\n </div>\n</ng-template>", styles: [":host{flex:1 1 auto}.dark .form-element .ui-tabview.ui-tabview-top>.ui-tabview-nav{border-color:rgba(var(--color-white-rgb),.2)}.dark .form-element.o2mGroupStack .ui-tabview.ui-tabview-top>.ui-tabview-nav li.ui-state-active{border-color:rgba(var(--color-white-rgb),1)}.dark .form-element .ui-widget-header .ui-state-active a,.dark .form-element .ui-widget-content .ui-state-active a,.dark .form-element .ui-state-active a{color:var(--color-white)}.dark .form-element .ui-widget-header .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-widget-content .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-state-default:not(.ui-state-active) a{color:rgba(var(--color-white-rgb),.3)}.form-element{box-sizing:border-box}.form-element.o2mGroupStack{background:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1)}.form-element.o2mGroupStack p-tabview{width:100%}.form-element.o2mGroupStack a[role=tab].invalid-true .label{background-color:var(--color-error);color:var(--color-white)}.form-element.o2mGroupStack a[role=tab].invalid-true .label:after{content:\"!\";margin-inline-start:calc(var(--app-pane-padding) / 2)}.form-element.o2mGroupStack a[role=tab].dirty-true:not(.invalid-true) .label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)}.form-element.o2mGroupStack.data{border:0}.form-element.align-column{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-content:stretch;align-items:stretch}.form-element.align-column>*{flex:1 1 auto}.form-element.align-row{display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>*{flex:1 1 auto}.form-element.align-row>.fieldset>:not(.legend){display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>.fieldset>:not(.legend) eo-form-group{flex:1 1 auto;min-width:200px}.form-element .stackBase{padding:var(--app-pane-padding)}.form-element .stackBase>eo-form-group>.form-element>.fieldset{margin:0;padding:0;border:0;background-color:transparent}.form-element .stackBase>eo-form-group>.form-element>.fieldset>.legend{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i3.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "component", type: ObjectFormGroupComponent, selector: "eo-form-group", inputs: ["situation", "skipToggle", "group", "noGroupLabels"] }, { kind: "component", type: i4.FormElementComponent, selector: "eo-form-element", inputs: ["situation", "skipToggle", "element"] }, { kind: "component", type: i5.FormElementTableComponent, selector: "eo-table", inputs: ["limit", "hasPreviewFile", "minWidth", "height", "params"] }, { kind: "directive", type: i6.FormElementTemplate, selector: "[eoFormElementTemplate]", inputs: ["propertyType"] }, { kind: "pipe", type: i7.KeysPipe, name: "keys" }], encapsulation: i0.ViewEncapsulation.None }); }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ObjectFormGroupComponent, selector: "eo-form-group", inputs: { situation: "situation", skipToggle: "skipToggle", groupd: ["group", "groupd"], noGroupLabels: "noGroupLabels" }, ngImport: i0, template: "<div *ngIf=\"group\" [ngSwitch]=\"groupType\"\n class=\"form-element {{group._eoFormGroup ? group._eoFormGroup.type : 'o2mControlWrap'}} align-{{(group._eoFormGroup && group._eoFormGroup.layout) ? group._eoFormGroup.layout.align : ''}}\"\n [formGroup]=\"group\">\n\n <!-- group stacks (tabs) -->\n <yvc-tabs *ngSwitchCase=\"'stack'\" [layoutSettingsID]=\"layoutSettingsID\">\n <ng-template *ngFor=\"let key of group.controls | keys; index as i;\" [yvcTab]=\"{id: 't' + i, \n headerStyleClass: 'dirty-' + group.controls[key].dirty + ' invalid-' + group.controls[key].invalid,\n label: getObjectFormGroup(group.controls[key]).label}\">\n <div class=\"stack\" [ngClass]=\"{stackBase: group._eoFormGroup.label === 'data'}\">\n\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else stkgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n </eo-form-element>\n <ng-template #stkgroup>\n <eo-form-group [group]=\"group.controls[key]\" [noGroupLabels]=\"true\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </div>\n </ng-template>\n </yvc-tabs>\n\n <!-- group with legend -->\n <div *ngSwitchCase=\"'fieldset'\" class=\"om-group fieldset\">\n <div class=\"legend\"><span>{{group._eoFormGroup.label}}</span></div>\n\n <div>\n <ng-container *ngFor=\"let key of group.controls | keys\">\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else fsgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n </eo-form-element>\n <ng-template #fsgroup>\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </ng-container>\n </div>\n </div>\n\n <!-- group -->\n <ng-container class=\"om-group\" *ngSwitchCase=\"'group'\">\n <ng-container *ngFor=\"let key of group.controls | keys\">\n\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else omgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n\n </eo-form-element>\n <ng-template #omgroup>\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\" [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </ng-container>\n </ng-container>\n\n</div>\n\n\n<ng-template #tplFormElementTable let-element=\"element\" let-formElementRef=\"formElementRef\">\n <div class=\"table\">\n <eo-table [params]=\"{\nsituation: element._eoFormControlWrapper.situation,\nelement: formElementRef._eoFormElement,\nsize: formElementRef._eoFormElement.size,\nobject: formElementRef._eoFormElement.object\n}\" [formControl]=\"element.get(element._eoFormControlWrapper.controlName)\"></eo-table>\n </div>\n</ng-template>", styles: [":host{flex:1 1 auto}.dark .form-element .ui-tabview.ui-tabview-top>.ui-tabview-nav{border-color:rgba(var(--color-white-rgb),.2)}.dark .form-element.o2mGroupStack .ui-tabview.ui-tabview-top>.ui-tabview-nav li.ui-state-active{border-color:rgba(var(--color-white-rgb),1)}.dark .form-element .ui-widget-header .ui-state-active a,.dark .form-element .ui-widget-content .ui-state-active a,.dark .form-element .ui-state-active a{color:var(--color-white)}.dark .form-element .ui-widget-header .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-widget-content .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-state-default:not(.ui-state-active) a{color:rgba(var(--color-white-rgb),.3)}.form-element{box-sizing:border-box}.form-element.o2mGroupStack{background:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1)}.form-element.o2mGroupStack p-tabview{width:100%}.form-element.o2mGroupStack a[role=tab].invalid-true .label{background-color:var(--color-error);color:var(--color-white)}.form-element.o2mGroupStack a[role=tab].invalid-true .label:after{content:\"!\";margin-inline-start:calc(var(--app-pane-padding) / 2)}.form-element.o2mGroupStack a[role=tab].dirty-true:not(.invalid-true) .label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)}.form-element.o2mGroupStack.data{border:0}.form-element.align-column{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-content:stretch;align-items:stretch}.form-element.align-column>*{flex:1 1 auto}.form-element.align-row{display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>*{flex:1 1 auto}.form-element.align-row>.fieldset>:not(.legend){display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>.fieldset>:not(.legend) eo-form-group{flex:1 1 auto;min-width:200px}.form-element .stackBase{padding:var(--app-pane-padding)}.form-element .stackBase>eo-form-group>.form-element>.fieldset{margin:0;padding:0;border:0;background-color:transparent}.form-element .stackBase>eo-form-group>.form-element>.fieldset>.legend{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i3.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "component", type: ObjectFormGroupComponent, selector: "eo-form-group", inputs: ["situation", "skipToggle", "group", "noGroupLabels"] }, { kind: "component", type: i4.FormElementComponent, selector: "eo-form-element", inputs: ["situation", "skipToggle", "element"] }, { kind: "component", type: i5.FormElementTableComponent, selector: "eo-table", inputs: ["limit", "hasPreviewFile", "minWidth", "height", "params"] }, { kind: "directive", type: i6.FormElementTemplate, selector: "[eoFormElementTemplate]", inputs: ["propertyType"] }, { kind: "pipe", type: i7.KeysPipe, name: "keys" }], encapsulation: i0.ViewEncapsulation.None }); }
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormGroupComponent, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormGroupComponent, decorators: [{
69
69
  type: Component,
70
70
  args: [{ selector: 'eo-form-group', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"group\" [ngSwitch]=\"groupType\"\n class=\"form-element {{group._eoFormGroup ? group._eoFormGroup.type : 'o2mControlWrap'}} align-{{(group._eoFormGroup && group._eoFormGroup.layout) ? group._eoFormGroup.layout.align : ''}}\"\n [formGroup]=\"group\">\n\n <!-- group stacks (tabs) -->\n <yvc-tabs *ngSwitchCase=\"'stack'\" [layoutSettingsID]=\"layoutSettingsID\">\n <ng-template *ngFor=\"let key of group.controls | keys; index as i;\" [yvcTab]=\"{id: 't' + i, \n headerStyleClass: 'dirty-' + group.controls[key].dirty + ' invalid-' + group.controls[key].invalid,\n label: getObjectFormGroup(group.controls[key]).label}\">\n <div class=\"stack\" [ngClass]=\"{stackBase: group._eoFormGroup.label === 'data'}\">\n\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else stkgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n </eo-form-element>\n <ng-template #stkgroup>\n <eo-form-group [group]=\"group.controls[key]\" [noGroupLabels]=\"true\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </div>\n </ng-template>\n </yvc-tabs>\n\n <!-- group with legend -->\n <div *ngSwitchCase=\"'fieldset'\" class=\"om-group fieldset\">\n <div class=\"legend\"><span>{{group._eoFormGroup.label}}</span></div>\n\n <div>\n <ng-container *ngFor=\"let key of group.controls | keys\">\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else fsgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n </eo-form-element>\n <ng-template #fsgroup>\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </ng-container>\n </div>\n </div>\n\n <!-- group -->\n <ng-container class=\"om-group\" *ngSwitchCase=\"'group'\">\n <ng-container *ngFor=\"let key of group.controls | keys\">\n\n <eo-form-element [element]=\"group.controls[key]\"\n *ngIf=\"getObjectFormControlWrapper(group.controls[key]); else omgroup\" [situation]=\"situation\"\n [skipToggle]=\"skipToggle\">\n\n <ng-template eoFormElementTemplate propertyType=\"TABLE\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <ng-container *ngTemplateOutlet=\"tplFormElementTable; context: {element, formElementRef}\"></ng-container>\n </ng-template>\n\n </eo-form-element>\n <ng-template #omgroup>\n <eo-form-group [group]=\"group.controls[key]\" [situation]=\"situation\" [skipToggle]=\"skipToggle\"></eo-form-group>\n </ng-template>\n </ng-container>\n </ng-container>\n\n</div>\n\n\n<ng-template #tplFormElementTable let-element=\"element\" let-formElementRef=\"formElementRef\">\n <div class=\"table\">\n <eo-table [params]=\"{\nsituation: element._eoFormControlWrapper.situation,\nelement: formElementRef._eoFormElement,\nsize: formElementRef._eoFormElement.size,\nobject: formElementRef._eoFormElement.object\n}\" [formControl]=\"element.get(element._eoFormControlWrapper.controlName)\"></eo-table>\n </div>\n</ng-template>", styles: [":host{flex:1 1 auto}.dark .form-element .ui-tabview.ui-tabview-top>.ui-tabview-nav{border-color:rgba(var(--color-white-rgb),.2)}.dark .form-element.o2mGroupStack .ui-tabview.ui-tabview-top>.ui-tabview-nav li.ui-state-active{border-color:rgba(var(--color-white-rgb),1)}.dark .form-element .ui-widget-header .ui-state-active a,.dark .form-element .ui-widget-content .ui-state-active a,.dark .form-element .ui-state-active a{color:var(--color-white)}.dark .form-element .ui-widget-header .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-widget-content .ui-state-default:not(.ui-state-active) a,.dark .form-element .ui-state-default:not(.ui-state-active) a{color:rgba(var(--color-white-rgb),.3)}.form-element{box-sizing:border-box}.form-element.o2mGroupStack{background:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1)}.form-element.o2mGroupStack p-tabview{width:100%}.form-element.o2mGroupStack a[role=tab].invalid-true .label{background-color:var(--color-error);color:var(--color-white)}.form-element.o2mGroupStack a[role=tab].invalid-true .label:after{content:\"!\";margin-inline-start:calc(var(--app-pane-padding) / 2)}.form-element.o2mGroupStack a[role=tab].dirty-true:not(.invalid-true) .label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)}.form-element.o2mGroupStack.data{border:0}.form-element.align-column{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-content:stretch;align-items:stretch}.form-element.align-column>*{flex:1 1 auto}.form-element.align-row{display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>*{flex:1 1 auto}.form-element.align-row>.fieldset>:not(.legend){display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>.fieldset>:not(.legend) eo-form-group{flex:1 1 auto;min-width:200px}.form-element .stackBase{padding:var(--app-pane-padding)}.form-element .stackBase>eo-form-group>.form-element>.fieldset{margin:0;padding:0;border:0;background-color:transparent}.form-element .stackBase>eo-form-group>.form-element>.fieldset>.legend{display:none}\n"] }]
71
71
  }], propDecorators: { situation: [{
@@ -104,10 +104,10 @@ export class ObjectFormScriptService {
104
104
  return globalScript(scope, UtilitiesService.lodash, moment);
105
105
  }));
106
106
  }
107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormScriptService, deps: [{ token: i1.Logger }, { token: i1.BackendService }], target: i0.ɵɵFactoryTarget.Injectable }); }
108
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormScriptService }); }
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormScriptService, deps: [{ token: i1.Logger }, { token: i1.BackendService }], target: i0.ɵɵFactoryTarget.Injectable }); }
108
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormScriptService }); }
109
109
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormScriptService, decorators: [{
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormScriptService, decorators: [{
111
111
  type: Injectable
112
112
  }], ctorParameters: () => [{ type: i1.Logger }, { type: i1.BackendService }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFFBQVEsSUFBSSxrQkFBa0IsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUVoRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFakQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDOzs7QUFHMUUsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUFvQixNQUFjLEVBQ2QsT0FBdUI7UUFEdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBQzNDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGFBQWEsQ0FBQyxLQUErQixFQUFFLE1BQVcsRUFBRSxVQUFtQjtRQUVwRixJQUFJLENBQUM7WUFDSCxrQ0FBa0M7WUFDbEMsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsR0FBRyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakYsc0JBQXNCO1lBQ3RCLElBQUksZ0JBQWdCLEdBQUcsa0JBQWtCLENBQ3ZDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUN2QyxDQUFDO1lBQ0YsMkVBQTJFO1lBQzNFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFD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aW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBIZWFkZXJzfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRpbmdTY29wZX0gZnJvbSAnLi9vYmplY3QtZm9ybS1zY3JpcHRpbmctc2NvcGUnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtMb2dnZXIsIEJhY2tlbmRTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVdGlsaXRpZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1TY3JpcHRTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxuICAgICAgICAgICAgICBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlKSB7XG4gIH1cblxuICAvKipcbiAgICogUnVuIGEgZm9ybSBzY3JpcHQuXG4gICAqIEBwYXJhbSBzY29wZSAtIHRoZSBjdXJyZW50IHNjcmlwdGluZyBzY29wZVxuICAgKiBAcGFyYW0gc2NyaXB0IC0gdGhlIHNjcmlwdCB0byBiZSBleGVjdXRlZFxuICAgKiBAcGFyYW0gW3NjcmlwdE5hbWVdIC0gdGhlIHNjcmlwdHMgbmFtZVxuICAgKi9cbiAgcHVibGljIHJ1bkZvcm1TY3JpcHQoc2NvcGU6IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZSwgc2NyaXB0OiBhbnksIHNjcmlwdE5hbWU/OiBzdHJpbmcpIHtcblxuICAgIHRyeSB7XG4gICAgICAvLyBEZWZpbmUgZm9ybSBzY3JpcHQgdGhlIGZ1bmN0aW9uXG4gICAgICBsZXQgZm9ybVNjcmlwdEZ1bmN0aW9uID0gdGhpcy5kZWZpbmVGdW5jdGlvbignRm9ybXNjcmlwdC8nICsgc2NyaXB0TmFtZSwgc2NyaXB0KTtcbiAgICAgIC8vIHJ1biB0aGUgZm9ybSBzY3JpcHRcbiAgICAgIGxldCBmb3JtU2NyaXB0UmV0dXJuID0gZm9ybVNjcmlwdEZ1bmN0aW9uKFxuICAgICAgICBzY29wZSwgVXRpbGl0aWVzU2VydmljZS5sb2Rhc2gsIG1vbWVudFxuICAgICAgKTtcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtIHNjcmlwdCByZXR1cm5zIHNvbWV0aGluZyBhbmQgbWF5IGV4cG9ydCBnbG9iYWwgc2NyaXB0c1xuICAgICAgaWYgKGZvcm1TY3JpcHRSZXR1cm4pIHtcbiAgICAgICAgdGhpcy5pbXBvcnRHbG9iYWxTY3JpcHRzQW5kQ2FsbEluaXQoc2NvcGUsIGZvcm1TY3JpcHRSZXR1cm4pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpIHtcbiAgICAgICAgYWxlcnQoJ1N5bnRheCBlcnJvciBpbiBGb3JtLVNjcmlwdC4gU2VlIGNvbnNvbGUgbG9nIGZvciBkZXRhaWxzLicpO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0dvdCBzY3JpcHQgZXJyb3InLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGZvcm0gc2NyaXB0IGZ1bmN0aW9uLCBhcHBlbmRpbmcgc291cmNlIHVybCBhcyBjb21tZW50LlxuICAgKiBFbmFibGVzIGRlYnVnZ2luZyB1c2luZyBicm93c2VyIGRlYnVnZ2luZyB0b29scyAoQ2hyb21lK0ZpcmVmb3gpXG4gICAqIEBzZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVG9vbHMvRGVidWdnZXIvSG93X3RvL0RlYnVnX2V2YWxfc291cmNlc1xuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBzY3JpcHRcbiAgICogQHBhcmFtIHNjcmlwdCAtIHNjcmlwdCB0byBiZSB3cmFwcGVkIGluIGEgZnVuY3Rpb25cbiAgICogQHJldHVybnMgdGhlIGZ1bmN0aW9uXG4gICAqL1xuICBwcml2YXRlIGRlZmluZUZ1bmN0aW9uKG5hbWU6IHN0cmluZywgc2NyaXB0OiBhbnkpOiBGdW5jdGlvbiB7XG4gICAgLy8gQXBwZW5kaW5nIHNvdXJjZSB1cmwgYXMgY29tbWVudC4gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVG9vbHMvRGVidWdnZXIvSG93X3RvL0RlYnVnX2V2YWxfc291cmNlc1xuICAgIC8vIEVuYWJsZXMgZGVidWdnaW5nIHVzaW5nIGJyb3dzZXIgZGVidWdnaW5nIHRvb2xzIChDaHJvbWUrRmlyZWZveClcbiAgICAvLyBUaGUgbGluZSBmZWVkIGlzIG5lZWRlZCwgaWYgdGhlIHNjcmlwdCBoYXMgYSBjb21tZW50IGluIHRoZSBsYXN0IGxpbmVcbiAgICByZXR1cm4gbmV3IEZ1bmN0aW9uKCdzY29wZScsICdfJywgJ21vbWVudCcsIHNjcmlwdCArICdcXG47Ly8jIHNvdXJjZVVSTD0nICsgbmFtZSArICcuanMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgc2NyaXB0IGNvbnRhaW5zIGdsb2JhbCBzY3JpcHQsIHRoaXMgZnVuY3Rpb24gd2lsbCBpbXBvcnQgYW5kIHJ1biB0aGVtXG4gICAqIGJlZm9yZSBydW5uaW5nIHRoZSBhY3R1YWwgc2NyaXB0LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSB0aGUgY3VycmVudCBzY3JpcHRpbmcgc2NvcGVcbiAgICogQHBhcmFtIGZvcm1TY3JpcHRSZXR1cm4gLSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBhY3R1YWwgZm9ybSBzY3JpcHRcbiAgICovXG4gIHByaXZhdGUgaW1wb3J0R2xvYmFsU2NyaXB0c0FuZENhbGxJbml0KHNjb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUsIGZvcm1TY3JpcHRSZXR1cm46IGFueSkge1xuXG4gICAgaWYgKCFmb3JtU2NyaXB0UmV0dXJuLmluaXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZm9ybVNjcmlwdFJldHVybi51c2VzKSB7XG4gICAgICAvLyBjb2xsZWN0IHRoZSBnbG9iYWwgc2NyaXB0IGV4cG9ydHMgcHJvbWlzZXNcbiAgICAgIGxldCBleHBvcnRzID0gW107XG4gICAgICBsZXQgZ2xvYmFscyA9IFtdO1xuXG4gICAgICAvLyBjb2xsZWN0IE9ic2VydmFibGVzIGZvciBmZXRjaGluZyBnbG9iYWwgc2NyaXB0c1xuICAgICAgZm9yIChsZXQgdXNlIG9mIGZvcm1TY3JpcHRSZXR1cm4udXNlcykge1xuICAgICAgICBnbG9iYWxzLnB1c2godGhpcy5yZXNvbHZlR2xvYmFsU2NyaXB0KHVzZSwgc2NvcGUpKTtcbiAgICAgIH1cblxuICAgICAgb2JzZXJ2YWJsZUZvcmtKb2luKGdsb2JhbHMpLnN1YnNjcmliZSgoZ2xvYmFsUmV0dXJucykgPT4ge1xuXG4gICAgICAgIGZvciAobGV0IHNjcmlwdFJldHVybiBvZiBnbG9iYWxSZXR1cm5zKSB7XG4gICAgICAgICAgZXhwb3J0cy5wdXNoKHNjcmlwdFJldHVyblsnZXhwb3J0cyddKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJbnZva2UgaW5pdCBmdW5jdGlvbiBvbiBmb3JtIHNjcmlwdCByZXR1cm4gd2l0aCB0aGVcbiAgICAgICAgLy8gY29sbGVjdGVkIGV4cG9ydHMgdXNpbmcgamF2YXNjcmlwdCBhcHBseSBtYWdpY1xuICAgICAgICBmb3JtU2NyaXB0UmV0dXJuLmluaXQuYXBwbHkodGhpcywgZXhwb3J0cyk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaW52b2tlIGluaXQgZGlyZWN0IChubyB1c2Ugb2YgZ2xvYmFsIHNjcmlwdHMpXG4gICAgICBmb3JtU2NyaXB0UmV0dXJuLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggZ2xvYmFsIHNjcmlwdHMuXG4gICAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGdsb2JhbCBzY3JpcHRcbiAgICogQHBhcmFtIHNjb3BlIC0gdGhlIGN1cnJlbnQgc2NyaXB0aW5nIHNjb3BlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVHbG9iYWxTY3JpcHQobmFtZTogc3RyaW5nLCBzY29wZTogT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgJ0FjY2VwdCc6ICd0ZXh0L3BsYWluJ1xuICAgICAgfSksXG4gICAgICByZXNwb25zZVR5cGU6ICd0ZXh0J1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0KGAvc2NyaXB0LyR7bmFtZX0vc2NyaXB0YCwgbnVsbCwgcmVxdWVzdE9wdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgIC8vIGRlZmluZSB0aGUgZ2xvYmFsIGZ1bmN0aW9uIC4uLlxuICAgICAgICBsZXQgZ2xvYmFsU2NyaXB0ID0gdGhpcy5kZWZpbmVGdW5jdGlvbignR2xvYmFsLycgKyBuYW1lLCByZXMpO1xuICAgICAgICAvLyAuLi4gYW5kIHJ1biBpdFxuICAgICAgICByZXR1cm4gZ2xvYmFsU2NyaXB0KHNjb3BlLCBVdGlsaXRpZXNTZXJ2aWNlLmxvZGFzaCwgbW9tZW50KTtcbiAgICAgIH0pKTtcbiAgfVxufVxuIl19
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFFBQVEsSUFBSSxrQkFBa0IsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUVoRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDOzs7QUFHMUUsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUFvQixNQUFjLEVBQ2QsT0FBdUI7UUFEdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBQzNDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGFBQWEsQ0FBQyxLQUErQixFQUFFLE1BQVcsRUFBRSxVQUFtQjtRQUVwRixJQUFJLENBQUM7WUFDSCxrQ0FBa0M7WUFDbEMsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsR0FBRyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakYsc0JBQXNCO1lBQ3RCLElBQUksZ0JBQWdCLEdBQUcsa0JBQWtCLENBQ3ZDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUN2QyxDQUFDO1lBQ0YsMkVBQTJFO1lBQzNFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFD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aW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlfSBmcm9tICcuL29iamVjdC1mb3JtLXNjcmlwdGluZy1zY29wZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0xvZ2dlciwgQmFja2VuZFNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1V0aWxpdGllc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3V0aWwvc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gYSBmb3JtIHNjcmlwdC5cbiAgICogQHBhcmFtIHNjb3BlIC0gdGhlIGN1cnJlbnQgc2NyaXB0aW5nIHNjb3BlXG4gICAqIEBwYXJhbSBzY3JpcHQgLSB0aGUgc2NyaXB0IHRvIGJlIGV4ZWN1dGVkXG4gICAqIEBwYXJhbSBbc2NyaXB0TmFtZV0gLSB0aGUgc2NyaXB0cyBuYW1lXG4gICAqL1xuICBwdWJsaWMgcnVuRm9ybVNjcmlwdChzY29wZTogT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlLCBzY3JpcHQ6IGFueSwgc2NyaXB0TmFtZT86IHN0cmluZykge1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIERlZmluZSBmb3JtIHNjcmlwdCB0aGUgZnVuY3Rpb25cbiAgICAgIGxldCBmb3JtU2NyaXB0RnVuY3Rpb24gPSB0aGlzLmRlZmluZUZ1bmN0aW9uKCdGb3Jtc2NyaXB0LycgKyBzY3JpcHROYW1lLCBzY3JpcHQpO1xuICAgICAgLy8gcnVuIHRoZSBmb3JtIHNjcmlwdFxuICAgICAgbGV0IGZvcm1TY3JpcHRSZXR1cm4gPSBmb3JtU2NyaXB0RnVuY3Rpb24oXG4gICAgICAgIHNjb3BlLCBVdGlsaXRpZXNTZXJ2aWNlLmxvZGFzaCwgbW9tZW50XG4gICAgICApO1xuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZvcm0gc2NyaXB0IHJldHVybnMgc29tZXRoaW5nIGFuZCBtYXkgZXhwb3J0IGdsb2JhbCBzY3JpcHRzXG4gICAgICBpZiAoZm9ybVNjcmlwdFJldHVybikge1xuICAgICAgICB0aGlzLmltcG9ydEdsb2JhbFNjcmlwdHNBbmRDYWxsSW5pdChzY29wZSwgZm9ybVNjcmlwdFJldHVybik7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikge1xuICAgICAgICBhbGVydCgnU3ludGF4IGVycm9yIGluIEZvcm0tU2NyaXB0LiBTZWUgY29uc29sZSBsb2cgZm9yIGRldGFpbHMuJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcignR290IHNjcmlwdCBlcnJvcicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgZm9ybSBzY3JpcHQgZnVuY3Rpb24sIGFwcGVuZGluZyBzb3VyY2UgdXJsIGFzIGNvbW1lbnQuXG4gICAqIEVuYWJsZXMgZGVidWdnaW5nIHVzaW5nIGJyb3dzZXIgZGVidWdnaW5nIHRvb2xzIChDaHJvbWUrRmlyZWZveClcbiAgICogQHNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Ub29scy9EZWJ1Z2dlci9Ib3dfdG8vRGVidWdfZXZhbF9zb3VyY2VzXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIHNjcmlwdFxuICAgKiBAcGFyYW0gc2NyaXB0IC0gc2NyaXB0IHRvIGJlIHdyYXBwZWQgaW4gYSBmdW5jdGlvblxuICAgKiBAcmV0dXJucyB0aGUgZnVuY3Rpb25cbiAgICovXG4gIHByaXZhdGUgZGVmaW5lRnVuY3Rpb24obmFtZTogc3RyaW5nLCBzY3JpcHQ6IGFueSk6IEZ1bmN0aW9uIHtcbiAgICAvLyBBcHBlbmRpbmcgc291cmNlIHVybCBhcyBjb21tZW50LiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Ub29scy9EZWJ1Z2dlci9Ib3dfdG8vRGVidWdfZXZhbF9zb3VyY2VzXG4gICAgLy8gRW5hYmxlcyBkZWJ1Z2dpbmcgdXNpbmcgYnJvd3NlciBkZWJ1Z2dpbmcgdG9vbHMgKENocm9tZStGaXJlZm94KVxuICAgIC8vIFRoZSBsaW5lIGZlZWQgaXMgbmVlZGVkLCBpZiB0aGUgc2NyaXB0IGhhcyBhIGNvbW1lbnQgaW4gdGhlIGxhc3QgbGluZVxuICAgIHJldHVybiBuZXcgRnVuY3Rpb24oJ3Njb3BlJywgJ18nLCAnbW9tZW50Jywgc2NyaXB0ICsgJ1xcbjsvLyMgc291cmNlVVJMPScgKyBuYW1lICsgJy5qcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSBzY3JpcHQgY29udGFpbnMgZ2xvYmFsIHNjcmlwdCwgdGhpcyBmdW5jdGlvbiB3aWxsIGltcG9ydCBhbmQgcnVuIHRoZW1cbiAgICogYmVmb3JlIHJ1bm5pbmcgdGhlIGFjdHVhbCBzY3JpcHQuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIHRoZSBjdXJyZW50IHNjcmlwdGluZyBzY29wZVxuICAgKiBAcGFyYW0gZm9ybVNjcmlwdFJldHVybiAtIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGFjdHVhbCBmb3JtIHNjcmlwdFxuICAgKi9cbiAgcHJpdmF0ZSBpbXBvcnRHbG9iYWxTY3JpcHRzQW5kQ2FsbEluaXQoc2NvcGU6IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZSwgZm9ybVNjcmlwdFJldHVybjogYW55KSB7XG5cbiAgICBpZiAoIWZvcm1TY3JpcHRSZXR1cm4uaW5pdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChmb3JtU2NyaXB0UmV0dXJuLnVzZXMpIHtcbiAgICAgIC8vIGNvbGxlY3QgdGhlIGdsb2JhbCBzY3JpcHQgZXhwb3J0cyBwcm9taXNlc1xuICAgICAgbGV0IGV4cG9ydHMgPSBbXTtcbiAgICAgIGxldCBnbG9iYWxzID0gW107XG5cbiAgICAgIC8vIGNvbGxlY3QgT2JzZXJ2YWJsZXMgZm9yIGZldGNoaW5nIGdsb2JhbCBzY3JpcHRzXG4gICAgICBmb3IgKGxldCB1c2Ugb2YgZm9ybVNjcmlwdFJldHVybi51c2VzKSB7XG4gICAgICAgIGdsb2JhbHMucHVzaCh0aGlzLnJlc29sdmVHbG9iYWxTY3JpcHQodXNlLCBzY29wZSkpO1xuICAgICAgfVxuXG4gICAgICBvYnNlcnZhYmxlRm9ya0pvaW4oZ2xvYmFscykuc3Vic2NyaWJlKChnbG9iYWxSZXR1cm5zKSA9PiB7XG5cbiAgICAgICAgZm9yIChsZXQgc2NyaXB0UmV0dXJuIG9mIGdsb2JhbFJldHVybnMpIHtcbiAgICAgICAgICBleHBvcnRzLnB1c2goc2NyaXB0UmV0dXJuWydleHBvcnRzJ10pO1xuICAgICAgICB9XG4gICAgICAgIC8vIEludm9rZSBpbml0IGZ1bmN0aW9uIG9uIGZvcm0gc2NyaXB0IHJldHVybiB3aXRoIHRoZVxuICAgICAgICAvLyBjb2xsZWN0ZWQgZXhwb3J0cyB1c2luZyBqYXZhc2NyaXB0IGFwcGx5IG1hZ2ljXG4gICAgICAgIGZvcm1TY3JpcHRSZXR1cm4uaW5pdC5hcHBseSh0aGlzLCBleHBvcnRzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbnZva2UgaW5pdCBkaXJlY3QgKG5vIHVzZSBvZiBnbG9iYWwgc2NyaXB0cylcbiAgICAgIGZvcm1TY3JpcHRSZXR1cm4uaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBnbG9iYWwgc2NyaXB0cy5cbiAgICogQHBhcmFtIG5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgZ2xvYmFsIHNjcmlwdFxuICAgKiBAcGFyYW0gc2NvcGUgLSB0aGUgY3VycmVudCBzY3JpcHRpbmcgc2NvcGVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZUdsb2JhbFNjcmlwdChuYW1lOiBzdHJpbmcsIHNjb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAnQWNjZXB0JzogJ3RleHQvcGxhaW4nXG4gICAgICB9KSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXQoYC9zY3JpcHQvJHtuYW1lfS9zY3JpcHRgLCBudWxsLCByZXF1ZXN0T3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgLy8gZGVmaW5lIHRoZSBnbG9iYWwgZnVuY3Rpb24gLi4uXG4gICAgICAgIGxldCBnbG9iYWxTY3JpcHQgPSB0aGlzLmRlZmluZUZ1bmN0aW9uKCdHbG9iYWwvJyArIG5hbWUsIHJlcyk7XG4gICAgICAgIC8vIC4uLiBhbmQgcnVuIGl0XG4gICAgICAgIHJldHVybiBnbG9iYWxTY3JpcHQoc2NvcGUsIFV0aWxpdGllc1NlcnZpY2UubG9kYXNoLCBtb21lbnQpO1xuICAgICAgfSkpO1xuICB9XG59XG4iXX0=
@@ -129,10 +129,10 @@ export class ObjectFormComponent {
129
129
  this.subscriptions = [];
130
130
  }
131
131
  }
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormComponent, deps: [{ token: i1.Logger }, { token: i0.ElementRef }, { token: i2.ObjectFormScriptService }, { token: i3.ObjectFormHelperService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
133
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ObjectFormComponent, selector: "eo-object-form", inputs: { isInnerTableForm: "isInnerTableForm", options: ["formOptions", "options"] }, outputs: { statusChanged: "statusChanged", onFormReady: "onFormReady" }, providers: [ObjectFormScriptService], ngImport: i0, template: "<div class=\"eo-object-form\" *ngIf=\"form && formOptions\" [formGroup]=\"form\" eoRtlAware>\n <div class=\"form-element-wrap core\">\n <eo-form-group [group]=\"form.get('core')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\n </div>\n <div class=\"form-element-wrap data\">\n <eo-form-group [group]=\"form.get('data')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\n </div>\n</div>\n\n\n\n\n", styles: [":host{display:block}:host .eo-object-form .core{padding:var(--app-pane-padding) var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding)}:host .eo-object-form .ui-tabview{padding:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack{background:transparent;border:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:var(--panel-background-lightgrey);border-top:1px solid rgba(var(--color-black-rgb),.1);padding:var(--app-pane-padding)}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:var(--panel-background-lightgrey)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:rgba(var(--color-white-rgb),.1);border-top:1px solid rgba(var(--color-white-rgb),.1)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:rgba(var(--color-white-rgb),.1)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i7.ObjectFormGroupComponent, selector: "eo-form-group", inputs: ["situation", "skipToggle", "group", "noGroupLabels"] }] }); }
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormComponent, deps: [{ token: i1.Logger }, { token: i0.ElementRef }, { token: i2.ObjectFormScriptService }, { token: i3.ObjectFormHelperService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ObjectFormComponent, selector: "eo-object-form", inputs: { isInnerTableForm: "isInnerTableForm", options: ["formOptions", "options"] }, outputs: { statusChanged: "statusChanged", onFormReady: "onFormReady" }, providers: [ObjectFormScriptService], ngImport: i0, template: "<div class=\"eo-object-form\" *ngIf=\"form && formOptions\" [formGroup]=\"form\" eoRtlAware>\n <div class=\"form-element-wrap core\">\n <eo-form-group [group]=\"form.get('core')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\n </div>\n <div class=\"form-element-wrap data\">\n <eo-form-group [group]=\"form.get('data')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\n </div>\n</div>\n\n\n\n\n", styles: [":host{display:block}:host .eo-object-form .core{padding:var(--app-pane-padding) var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding)}:host .eo-object-form .ui-tabview{padding:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack{background:transparent;border:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:var(--panel-background-lightgrey);border-top:1px solid rgba(var(--color-black-rgb),.1);padding:var(--app-pane-padding)}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:var(--panel-background-lightgrey)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:rgba(var(--color-white-rgb),.1);border-top:1px solid rgba(var(--color-white-rgb),.1)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:rgba(var(--color-white-rgb),.1)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i7.ObjectFormGroupComponent, selector: "eo-form-group", inputs: ["situation", "skipToggle", "group", "noGroupLabels"] }] }); }
134
134
  }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormComponent, decorators: [{
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormComponent, decorators: [{
136
136
  type: Component,
137
137
  args: [{ selector: 'eo-object-form', providers: [ObjectFormScriptService], template: "<div class=\"eo-object-form\" *ngIf=\"form && formOptions\" [formGroup]=\"form\" eoRtlAware>\n <div class=\"form-element-wrap core\">\n <eo-form-group [group]=\"form.get('core')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\n </div>\n <div class=\"form-element-wrap data\">\n <eo-form-group [group]=\"form.get('data')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\n </div>\n</div>\n\n\n\n\n", styles: [":host{display:block}:host .eo-object-form .core{padding:var(--app-pane-padding) var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding)}:host .eo-object-form .ui-tabview{padding:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack{background:transparent;border:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:var(--panel-background-lightgrey);border-top:1px solid rgba(var(--color-black-rgb),.1);padding:var(--app-pane-padding)}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:var(--panel-background-lightgrey)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:rgba(var(--color-white-rgb),.1);border-top:1px solid rgba(var(--color-white-rgb),.1)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:rgba(var(--color-white-rgb),.1)}\n"] }]
138
138
  }], ctorParameters: () => [{ type: i1.Logger }, { type: i0.ElementRef }, { type: i2.ObjectFormScriptService }, { type: i3.ObjectFormHelperService }, { type: i0.ChangeDetectorRef }], propDecorators: { isInnerTableForm: [{
@@ -196,10 +196,10 @@ export class ObjectFormEditComponent {
196
196
  isEditable(dmsObject) {
197
197
  return dmsObject.hasOwnProperty('rights') && dmsObject.rights.edit && !dmsObject.isFinalized;
198
198
  }
199
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormEditComponent, deps: [{ token: i1.SystemService }, { token: i1.DmsService }, { token: i0.ElementRef }, { token: i1.NotificationsService }, { token: i2.PendingChangesService }, { token: i3.Router }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
200
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ObjectFormEditComponent, selector: "eo-object-form-edit", inputs: { formDisabled: "formDisabled", dmsObject: "dmsObject" }, outputs: { indexDataSaved: "indexDataSaved" }, viewQueries: [{ propertyName: "objectForm", first: true, predicate: ObjectFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"object-form-edit\" [ngClass]=\"{invalid: formState?.invalid === true}\" [eoShortcuts]=\"shortcuts\">\n <eo-object-form [formOptions]=\"formOptions\" *ngIf=\"formOptions\"\n (statusChanged)=\"onFormStatusChanged($event)\"></eo-object-form>\n\n <div class=\"form-controls\" *ngIf=\"controls.visible\">\n\n <div class=\"err-msg\" *ngIf=\"formState?.invalid\" translate>eo.object.indexdata.form.invalid</div>\n\n <div class=\"buttons\">\n\n <button class=\"secondary\" (click)=\"reset()\" [disabled]=\"controls.saving\" translate>eo.object.indexdata.reset</button>\n <button class=\"primary\" [ngClass]=\"{spinner: controls.saving}\"\n [disabled]=\"formState?.invalid || controls.saving\"\n (click)=\"save()\" translate>eo.object.indexdata.save</button>\n </div>\n </div>\n</div>\n\n<eo-dialog [title]=\"('eo.object.indexdata.save.conflict.dialog.title' | translate : {modifier: conflictError?.dmsobject.modified.by.firstname + ' ' + conflictError?.dmsobject.modified.by.lastname})\"\n (hide)=\"controls.saving = false;\" [(visible)]=\"showConflictDialog\" [minWidth]=\"400\" [styleClass]=\"'conflict__dialog'\">\n\n <div class=\"action-buttons conflict--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"cancelSaving()\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" class=\"button cancel\" (click)=\"showConflictChanges()\"\n translate>eo.object.indexdata.save.changes</button>\n <button type=\"button\" (click)=\"save(true); closeConflictDialog();\" class=\"button primary\"\n translate>eo.object.indexdata.save</button>\n </div>\n</eo-dialog>\n", styles: [".object-form-edit{background:var(--color-white);min-width:300px;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"form\" \"buttons\"}.object-form-edit eo-object-form{grid-area:form}.object-form-edit .form-controls{grid-area:buttons;box-sizing:border-box}.object-form-edit .form-controls .err-msg{order:0;flex:1 1 auto;display:none;background-color:var(--color-error);color:#fff;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.object-form-edit .form-controls .buttons{order:1;flex:1 1 auto;display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * .875)}.object-form-edit .form-controls .buttons button{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) * .125)}.object-form-edit .form-controls .buttons .loader{flex:1 1 auto}.object-form-edit .form-controls .buttons .loader eo-icon{display:none}.object-form-edit .form-controls .buttons .loader.saving eo-icon{display:block}.object-form-edit.invalid .form-controls .err-msg{display:block}::ng-deep .conflict__dialog{padding:8px;min-height:unset!important}::ng-deep .conflict__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i7.ShortcutsDirective, selector: "[eoShortcuts]", inputs: ["eoShortcuts"] }, { kind: "component", type: i8.ObjectFormComponent, selector: "eo-object-form", inputs: ["isInnerTableForm", "formOptions"], outputs: ["statusChanged", "onFormReady"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormEditComponent, deps: [{ token: i1.SystemService }, { token: i1.DmsService }, { token: i0.ElementRef }, { token: i1.NotificationsService }, { token: i2.PendingChangesService }, { token: i3.Router }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
200
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ObjectFormEditComponent, selector: "eo-object-form-edit", inputs: { formDisabled: "formDisabled", dmsObject: "dmsObject" }, outputs: { indexDataSaved: "indexDataSaved" }, viewQueries: [{ propertyName: "objectForm", first: true, predicate: ObjectFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"object-form-edit\" [ngClass]=\"{invalid: formState?.invalid === true}\" [eoShortcuts]=\"shortcuts\">\n <eo-object-form [formOptions]=\"formOptions\" *ngIf=\"formOptions\"\n (statusChanged)=\"onFormStatusChanged($event)\"></eo-object-form>\n\n <div class=\"form-controls\" *ngIf=\"controls.visible\">\n\n <div class=\"err-msg\" *ngIf=\"formState?.invalid\" translate>eo.object.indexdata.form.invalid</div>\n\n <div class=\"buttons\">\n\n <button class=\"secondary\" (click)=\"reset()\" [disabled]=\"controls.saving\" translate>eo.object.indexdata.reset</button>\n <button class=\"primary\" [ngClass]=\"{spinner: controls.saving}\"\n [disabled]=\"formState?.invalid || controls.saving\"\n (click)=\"save()\" translate>eo.object.indexdata.save</button>\n </div>\n </div>\n</div>\n\n<eo-dialog [title]=\"('eo.object.indexdata.save.conflict.dialog.title' | translate : {modifier: conflictError?.dmsobject.modified.by.firstname + ' ' + conflictError?.dmsobject.modified.by.lastname})\"\n (hide)=\"controls.saving = false;\" [(visible)]=\"showConflictDialog\" [minWidth]=\"400\" [styleClass]=\"'conflict__dialog'\">\n\n <div class=\"action-buttons conflict--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"cancelSaving()\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" class=\"button cancel\" (click)=\"showConflictChanges()\"\n translate>eo.object.indexdata.save.changes</button>\n <button type=\"button\" (click)=\"save(true); closeConflictDialog();\" class=\"button primary\"\n translate>eo.object.indexdata.save</button>\n </div>\n</eo-dialog>\n", styles: [".object-form-edit{background:var(--color-white);min-width:300px;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"form\" \"buttons\"}.object-form-edit eo-object-form{grid-area:form}.object-form-edit .form-controls{grid-area:buttons;box-sizing:border-box}.object-form-edit .form-controls .err-msg{order:0;flex:1 1 auto;display:none;background-color:var(--color-error);color:#fff;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.object-form-edit .form-controls .buttons{order:1;flex:1 1 auto;display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * .875)}.object-form-edit .form-controls .buttons button{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) * .125)}.object-form-edit .form-controls .buttons .loader{flex:1 1 auto}.object-form-edit .form-controls .buttons .loader eo-icon{display:none}.object-form-edit .form-controls .buttons .loader.saving eo-icon{display:block}.object-form-edit.invalid .form-controls .err-msg{display:block}::ng-deep .conflict__dialog{padding:8px;min-height:unset!important}::ng-deep .conflict__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i7.ShortcutsDirective, selector: "[eoShortcuts]", inputs: ["eoShortcuts"] }, { kind: "component", type: i8.ObjectFormComponent, selector: "eo-object-form", inputs: ["isInnerTableForm", "formOptions"], outputs: ["statusChanged", "onFormReady"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
201
201
  }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormEditComponent, decorators: [{
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormEditComponent, decorators: [{
203
203
  type: Component,
204
204
  args: [{ selector: 'eo-object-form-edit', template: "<div class=\"object-form-edit\" [ngClass]=\"{invalid: formState?.invalid === true}\" [eoShortcuts]=\"shortcuts\">\n <eo-object-form [formOptions]=\"formOptions\" *ngIf=\"formOptions\"\n (statusChanged)=\"onFormStatusChanged($event)\"></eo-object-form>\n\n <div class=\"form-controls\" *ngIf=\"controls.visible\">\n\n <div class=\"err-msg\" *ngIf=\"formState?.invalid\" translate>eo.object.indexdata.form.invalid</div>\n\n <div class=\"buttons\">\n\n <button class=\"secondary\" (click)=\"reset()\" [disabled]=\"controls.saving\" translate>eo.object.indexdata.reset</button>\n <button class=\"primary\" [ngClass]=\"{spinner: controls.saving}\"\n [disabled]=\"formState?.invalid || controls.saving\"\n (click)=\"save()\" translate>eo.object.indexdata.save</button>\n </div>\n </div>\n</div>\n\n<eo-dialog [title]=\"('eo.object.indexdata.save.conflict.dialog.title' | translate : {modifier: conflictError?.dmsobject.modified.by.firstname + ' ' + conflictError?.dmsobject.modified.by.lastname})\"\n (hide)=\"controls.saving = false;\" [(visible)]=\"showConflictDialog\" [minWidth]=\"400\" [styleClass]=\"'conflict__dialog'\">\n\n <div class=\"action-buttons conflict--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"cancelSaving()\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" class=\"button cancel\" (click)=\"showConflictChanges()\"\n translate>eo.object.indexdata.save.changes</button>\n <button type=\"button\" (click)=\"save(true); closeConflictDialog();\" class=\"button primary\"\n translate>eo.object.indexdata.save</button>\n </div>\n</eo-dialog>\n", styles: [".object-form-edit{background:var(--color-white);min-width:300px;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"form\" \"buttons\"}.object-form-edit eo-object-form{grid-area:form}.object-form-edit .form-controls{grid-area:buttons;box-sizing:border-box}.object-form-edit .form-controls .err-msg{order:0;flex:1 1 auto;display:none;background-color:var(--color-error);color:#fff;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.object-form-edit .form-controls .buttons{order:1;flex:1 1 auto;display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * .875)}.object-form-edit .form-controls .buttons button{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) * .125)}.object-form-edit .form-controls .buttons .loader{flex:1 1 auto}.object-form-edit .form-controls .buttons .loader eo-icon{display:none}.object-form-edit .form-controls .buttons .loader.saving eo-icon{display:block}.object-form-edit.invalid .form-controls .err-msg{display:block}::ng-deep .conflict__dialog{padding:8px;min-height:unset!important}::ng-deep .conflict__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"] }]
205
205
  }], ctorParameters: () => [{ type: i1.SystemService }, { type: i1.DmsService }, { type: i0.ElementRef }, { type: i1.NotificationsService }, { type: i2.PendingChangesService }, { type: i3.Router }, { type: i1.TranslateService }], propDecorators: { objectForm: [{
@@ -713,10 +713,10 @@ export class ObjectFormHelperService {
713
713
  console.debug(`Found ${res.length} tmp entries to be removed`);
714
714
  return res;
715
715
  }
716
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormHelperService, deps: [{ token: i1.Logger }, { token: i2.ReferenceService }, { token: i1.SearchService }, { token: i3.PluginsService }, { token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
717
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormHelperService }); }
716
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormHelperService, deps: [{ token: i1.Logger }, { token: i2.ReferenceService }, { token: i1.SearchService }, { token: i3.PluginsService }, { token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
717
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormHelperService }); }
718
718
  }
719
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormHelperService, decorators: [{
719
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormHelperService, decorators: [{
720
720
  type: Injectable
721
721
  }], ctorParameters: () => [{ type: i1.Logger }, { type: i2.ReferenceService }, { type: i1.SearchService }, { type: i3.PluginsService }, { type: i1.SystemService }] });
722
722
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0taGVscGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQWMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFTLFVBQVUsRUFBZ0IsYUFBYSxFQUFpQixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbkcsT0FBTyxFQUFDLFFBQVEsRUFBYyxFQUFFLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUtqRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXRFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhEQUE4RCxDQUFDOzs7OztBQXlCdEcsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQyxZQUFvQixNQUFjLEVBQ3hCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixhQUE2QixFQUM3QixhQUE0QjtRQUpsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsa0JBQWEsR0FBYixh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QUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUFFLEdBQUcsR0FBRyxPQUFPLENBQUM7UUFDNUMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xCLENBQUM7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLE1BQU0sNEJBQTRCLENBQUMsQ0FBQztRQUMvRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OEdBdHdCVSx1QkFBdUI7a0hBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtMb2dnZXIsIFJhbmdlVmFsdWUsIFNlYXJjaEZpbHRlciwgU2VhcmNoU2VydmljZSwgU3lzdGVtU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2ZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtQbHVnaW5zU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL3BsdWdpbnMuc2VydmljZSc7XG5pbXBvcnQge1JlZmVyZW5jZVNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3JlZmVyZW5jZXMvcmVmZXJlbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RGb3JtT3B0aW9uc30gZnJvbSAnLi9vYmplY3QtZm9ybS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge0Zvcm1WYWxpZGF0aW9ufSBmcm9tICcuL29iamVjdC1mb3JtL2Zvcm0tdmFsaWRhdGlvbi9mb3JtLXZhbGlkYXRpb24nO1xuaW1wb3J0IHtPYmplY3RGb3JtQ29udHJvbH0gZnJvbSAnLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1jb250cm9sJztcbmltcG9ydCB7T2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyfSBmcm9tICcuL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWNvbnRyb2wtd3JhcHBlcic7XG5pbXBvcnQge09iamVjdEZvcm1Hcm91cH0gZnJvbSAnLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1ncm91cC5tb2RlbCc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRTZXJ2aWNlfSBmcm9tICcuL29iamVjdC1mb3JtL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHQuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRpbmdTY29wZX0gZnJvbSAnLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlJztcbmltcG9ydCB7T2JqZWN0Rm9ybU1vZGVsfSBmcm9tICcuL29iamVjdC1mb3JtL29iamVjdC1mb3JtLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtR2VuU2NvcGUge1xuICBnQ291bnQ6IG51bWJlcjtcbiAgZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xuICBpc0lubmVyVGFibGVGb3JtOiBib29sZWFuO1xuICBpbml0aWFsVmFsaWRhdG9yczoge1tuYW1lOiBzdHJpbmddOiBWYWxpZGF0b3JGbiB8IG51bGx9O1xuICBmb3JtR2VuUmVzdWx0OiBGb3JtR2VuUmVzdWx0O1xufVxuZXhwb3J0IGludGVyZmFjZSBGb3JtR2VuUmVzdWx0IHtcbiAgLy8gRm9ybSBjb250cm9scyBnZW5lcmF0ZWQgZnJvbSB0aGUgbW9kZWwgYXMgJ1F1aWNrIGFjY2VzcyBvYmplY3QnXG4gIC8vIEZvcm0gZWxlbWVudHMgbmFtZSBpcyBrZXkgYW5kIHRoZSB2YWx1ZSBpcyB0aGUgZm9ybSBjb250cm9sIGl0c2VsZlxuICBmb3JtQ29udHJvbHM6IHtbbmFtZTogc3RyaW5nXTogT2JqZWN0Rm9ybUNvbnRyb2x9O1xuICBmb3JtTW9kZWw6IGFueSxcbiAgLy8gU3Vic2NyaXB0aW9ucyB0byB2YWx1ZSBjaGFuZ2VzIG9mIHRoZSBnZW5lcmF0ZWQgZm9ybSBjb250cm9sc1xuICAvLyBZb3Ugc2hvdWxkIGFsd2F5cyB1bnN1YnNjcmliZSBmcm9tIGFsbCBvZiB0aGVtIHdoZW4gY29uc3VtaW5nXG4gIC8vIGNvbXBvbmVudCBpcyBkZXN0cm95ZWRcbiAgY29udHJvbFZhbHVlU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIHNjcmlwdGluZ1Njb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGU7XG4gIHNjcmlwdE1vZGVsOiB7W25hbWU6IHN0cmluZ106IGFueX07XG4gIGZvcm06IE9iamVjdEZvcm1Hcm91cDtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlIHtcblxuICBwcml2YXRlIGRhdGVQaXBlID0gbmV3IERhdGVQaXBlKCdlbicpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWZlcmVuY2VTZXJ2aWNlOiBSZWZlcmVuY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHBsdWdpblNlcnZpY2U6IFBsdWdpbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSkge1xuICAgIHRoaXMuX2NsZWFyVGVtcG9yYXJ5U3RvcmFnZUVudHJpZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSByZWFjdGl2ZSBmb3JtIGJhc2VkIG9uIGEgZm9ybSBtb2RlbCB0aGF0IG1heSBhbHNvIGluY2x1ZGUgZm9ybSBzY3JpcHRzLlxuICAgKiBAcGFyYW0gZm9ybU9wdGlvbnMgYE9iamVjdEZvcm1PcHRpb25zYCBkZWZpbmluZyB0aGUgZm9ybVxuICAgKiBAcGFyYW0gZm9ybVNjcmlwdFNlcnZpY2UgSW5zdGFuY2Ugb2YgYSBgT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2VgLiBUaGlzIHNlcnZpY2UgaXMgc3VwcG9zZWQgdG8gYmVcbiAgICogc2NvcGVkIHRvIHRoZSBjb21wb25lbnQgcmVuZGVyaW5nIHRoZSBmb3JtIChwcm92aWRlcnMgYXJyYXkgaW4gY29tcG9uZW50IGRlY29yYXRvcikuXG4gICAqIEBwYXJhbSBpc0lubmVyVGFibGVGb3JtIHdoZXRoZXIgb3Igbm90IHRoZSBmb3JtIGlzIHBhcnQgb2YgYW5vdGhlciBmb3JtIChhcyBpcyB3aXRoIHRhYmxlIGVkaXQgZm9ybXMpXG4gICAqIEByZXR1cm5zIEFuIGBGb3JtR2VuUmVzdWx0YCBvYmplY3RcbiAgICovXG4gIGJ1aWxkUmVhY3RpdmVGb3JtKFxuICAgIGZvcm1PcHRpb25zOiBPYmplY3RGb3JtT3B0aW9ucyxcbiAgICBmb3JtU2NyaXB0U2VydmljZTogT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2UsXG4gICAgaXNJbm5lclRhYmxlRm9ybT86IGJvb2xlYW4pOiBGb3JtR2VuUmVzdWx0IHtcblxuICAgIGNvbnN0IF9zY29wZTogRm9ybUdlblNjb3BlID0ge1xuICAgICAgZ0NvdW50OiAwLFxuICAgICAgZm9ybU9wdGlvbnMsXG4gICAgICBpc0lubmVyVGFibGVGb3JtLFxuICAgICAgaW5pdGlhbFZhbGlkYXRvcnM6IHt9LFxuICAgICAgZm9ybUdlblJlc3VsdDoge1xuICAgICAgICBmb3JtQ29udHJvbHM6IHt9LFxuICAgICAgICBmb3JtTW9kZWw6IHt9LFxuICAgICAgICBjb250cm9sVmFsdWVTdWJzY3JpcHRpb25zOiBbXSxcbiAgICAgICAgc2NyaXB0aW5nU2NvcGU6IHVuZGVmaW5lZCxcbiAgICAgICAgc2NyaXB0TW9kZWw6IHt9LFxuICAgICAgICBmb3JtOiBudWxsXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybU1vZGVsID0gdGhpcy5fZGF0YVRvRm9ybShfc2NvcGUsIGZvcm1PcHRpb25zLmZvcm1Nb2RlbCwgZm9ybU9wdGlvbnMuZGF0YSk7XG4gICAgX3Njb3BlLmZvcm1HZW5SZXN1bHQuZm9ybU1vZGVsID0gZm9ybU1vZGVsO1xuICAgIGlmICghZm9ybU1vZGVsKSByZXR1cm47XG5cbiAgICAvLyBpZiBhIHNjcmlwdCBpcyBhdmFpbGFibGUsIHdlJ2xsIGluaXQgdGhlIGZvcm0gc2NyaXB0aW5nIGZvciB0aGVcbiAgICAvLyBjdXJyZW50IGZvcm1cbiAgICBsZXQgc2NyaXB0aW5nU2NvcGU6IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZTtcbiAgICBpZiAoX3Njb3BlLmlzSW5uZXJUYWJsZUZvcm0gfHwgKGZvcm1Nb2RlbC5zY3JpcHQgJiYgZm9ybU1vZGVsLnNjcmlwdC5sZW5ndGggPiAwKSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2FkZGluZyBmb3JtIHNjcmlwdGluZyBzY29wZScpO1xuICAgICAgc2NyaXB0aW5nU2NvcGUgPSBuZXcgT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlKFxuICAgICAgICBmb3JtTW9kZWwuc2l0dWF0aW9uLFxuICAgICAgICB0aGlzLl9nZXRTY3JpcHRpbmdNb2RlbENoYW5nZWQoX3Njb3BlKSxcbiAgICAgICAgdGhpcy5wbHVnaW5TZXJ2aWNlLmdldEFwaSgpLFxuICAgICAgICBfc2NvcGUuaXNJbm5lclRhYmxlRm9ybVxuICAgICAgKTtcbiAgICAgIHNjcmlwdGluZ1Njb3BlLm9iamVjdElkID0gZm9ybU9wdGlvbnMub2JqZWN0SWQ7XG4gICAgfVxuICAgIF9zY29wZS5mb3JtR2VuUmVzdWx0LnNjcmlwdGluZ1Njb3BlID0gc2NyaXB0aW5nU2NvcGU7XG5cblxuICAgIGxldCBmb3JtID0gbmV3IE9iamVjdEZvcm1Hcm91cCh7fSk7XG4gICAgaWYgKGZvcm1Nb2RlbC5lbGVtZW50c1swXSAmJiBmb3JtTW9kZWwuZWxlbWVudHNbMF0uZWxlbWVudHMpIHtcbiAgICAgIHRoaXMuX2FkZEZvcm1Db250cm9sKF9zY29wZSwgZm9ybSwgZm9ybU1vZGVsLmVsZW1lbnRzWzBdLCAnY29yZScpO1xuICAgIH1cbiAgICBpZiAoZm9ybU1vZGVsLmVsZW1lbnRzWzFdICYmIGZvcm1Nb2RlbC5lbGVtZW50c1sxXS5lbGVtZW50cykge1xuICAgICAgdGhpcy5fYWRkRm9ybUNvbnRyb2woX3Njb3BlLCBmb3JtLCBmb3JtTW9kZWwuZWxlbWVudHNbMV0sICdkYXRhJyk7XG4gICAgfVxuICAgIF9zY29wZS5mb3JtR2VuUmVzdWx0LmZvcm0gPSBmb3JtO1xuICAgIHRoaXMuX2luaXRWYWxpZGF0b3JzKF9zY29wZS5mb3JtR2VuUmVzdWx0LmZvcm0sIF9zY29wZSk7XG4gICAgdGhpcy5faW5pdFNjcmlwdGluZ1Njb3BlKF9zY29wZSwgZm9ybVNjcmlwdFNlcnZpY2UpO1xuICAgIHJldHVybiBfc2NvcGUuZm9ybUdlblJlc3VsdDtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQ29udmVydHMgYSBmb3JtIGVsZW1lbnQgb2JqZWN0IHRvIGFuIE9iamVjdEZvcm1Db250cm9sV3JhcHBlciB3aGljaCB0aGVuIGNhbiBiZSB1c2VkIHRvXG4gICAqIHJlbmRlciBhIGZyb20gY29udHJvbC4gUmVzdWx0IGNhbiBiZSB1c2VkIGFzIGlucHV0IGZvciBGb3JtRWxlbWVudENvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnQgLSB0aGUgZWxlbWVudCBvYmplY3Qgb3IgYSBqc29uIHN0cmluZ1xuICAgKiBAcGFyYW0gc2l0dWF0aW9uIC0gb3B0aW9uYWwgcHJvcGVydHkgdG8gc2V0IHVwIGEgZm9ybSBzaXR1YXRpb24gZm9yIHRoZSBjb250cm9sIChkZWZhdWx0IGlzIEVESVQpXG4gICAqIEByZXR1cm4gdGhlIGNvbnZlcnRlZCBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIgb3IgbnVsbCBpbiBjYXNlIG9mIGFuIGVycm9yXG4gICAqL1xuICBlbGVtZW50VG9Gb3JtQ29udHJvbChlbGVtZW50OiBhbnksIHNpdHVhdGlvbj86IHN0cmluZyk6IE9iamVjdEZvcm1Db250cm9sV3JhcHBlciB7XG5cbiAgICBsZXQgZm9ybUVsZW1lbnQ7XG4gICAgaWYgKHR5cGVvZiBlbGVtZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9ybUVsZW1lbnQgPSBKU09OLnBhcnNlKGVsZW1lbnQpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignVW5hYmxlIHRvIHBhcnNlIGZvcm0gZWxlbWVudCBmcm9tIGpzb24gJywgZm9ybUVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgfVxuXG4gICAgaWYgKCFmb3JtRWxlbWVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXJcbiAgICBsZXQgd3JhcHBlciA9IG5ldyBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIoe30pO1xuICAgIGxldCBmb3JtU2l0dWF0aW9uID0gc2l0dWF0aW9uID8gc2l0dWF0aW9uIDogJ0VESVQnO1xuXG4gICAgd3JhcHBlci5fZW9Gb3JtQ29udHJvbFdyYXBwZXIgPSB7XG4gICAgICBjb250cm9sTmFtZTogZm9ybUVsZW1lbnQubmFtZSxcbiAgICAgIHNpdHVhdGlvbjogZm9ybVNpdHVhdGlvblxuICAgIH07XG5cbiAgICAvLyBmb3IgY29kZXN5c3RlbSBlbGVtZW50cyBhZGQgZW50cmllcyBpZiBub3QgeWV0IHByb3ZpZGVkXG4gICAgaWYgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdDT0RFU1lTVEVNJyAmJiAoIWZvcm1FbGVtZW50LmNvZGVzeXN0ZW0gfHwgIWZvcm1FbGVtZW50LmNvZGVzeXN0ZW0uZW50cmllcykpIHtcbiAgICAgIGZvcm1FbGVtZW50LmNvZGVzeXN0ZW0gPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0Q29kZXN5c3RlbShmb3JtRWxlbWVudC5jb2Rlc3lzdGVtLmlkKTtcbiAgICB9XG4gICAgLy8gY3JlYXRlIHRoZSBhY3R1YWwgZm9ybSBjb250cm9sXG4gICAgbGV0IGNvbnRyb2xEaXNhYmxlZCA9ICEhZm9ybUVsZW1lbnQucmVhZG9ubHk7XG4gICAgbGV0IGZvcm1Db250cm9sID0gbmV3IE9iamVjdEZvcm1Db250cm9sKHtcbiAgICAgIHZhbHVlOiBmb3JtRWxlbWVudC52YWx1ZSxcbiAgICAgIGRpc2FibGVkOiBjb250cm9sRGlzYWJsZWRcbiAgICB9LCBGb3JtVmFsaWRhdGlvbi5nZXRWYWxpZGF0b3JzKGZvcm1FbGVtZW50LCBmb3JtU2l0dWF0aW9uKSk7XG5cbiAgICAvLyBGb3JtIGVsZW1lbnRzIGluIFNFQVJDSCBzaXR1YXRpb24gbWF5IGFycml2ZSB3aXRoIGEgdmFsdWUgc2V0IHRvIE5VTEwgKGV4cGxpY2l0IHNlYXJjaCBmb3JcbiAgICAvLyBmaWVsZHMgdGhhdCBhcmUgTk9UIHNldCkuIEluIHRoYXQgY2FzZSB3ZSBuZWVkIHRvIHByZXBhcmUgdGhlIGZvcm0gY29udHJvbFxuICAgIGlmIChmb3JtU2l0dWF0aW9uID09PSAnU0VBUkNIJyAmJiBmb3JtRWxlbWVudC52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgZm9ybUVsZW1lbnQuaXNOb3RTZXRWYWx1ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQgPSBmb3JtRWxlbWVudDtcbiAgICB3cmFwcGVyLmFkZENvbnRyb2woZm9ybUVsZW1lbnQubmFtZSwgZm9ybUNvbnRyb2wpO1xuXG4gICAgcmV0dXJuIHdyYXBwZXI7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCBkYXRhIGZyb20gYW4gb2JqZWN0IGZvcm0gYmFzZWQgb24gc2l0dWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gZm9ybSAtIGZvcm0gdG8gZXh0cmFjdCBkYXRhIGZyb21cbiAgICogQHBhcmFtIHNpdHVhdGlvbiAtIGZvcm0gc2l0dWF0aW9uXG4gICAqIEBwYXJhbSBbaW5pdGlhbERhdGFdIC0gb3B0aW9uYWwgZm9ybSBkYXRhIHRvIG1hdGNoIHRoZSBjdXJyZW50IHZhbHVlcyBhZ2FpbnN0XG4gICAqIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGVkaXRpZyBpbmRleGRhdGEgKEVESVQgc2l0dWF0aW9uKSwgYmVjYXVzZSB3ZSBoYXZlIHRvIGNvbXBhcmUgbmV3IHZhbHVlc1xuICAgKiBhZ2FpbnN0IHRoZSBpbml0aWFsIHZhbHVlcy4gSWYgYSBwcm9wZXJ0eSB0aGF0IGlzIGNvbnRhaW5lZCBpbiB0aGUgZm9ybXMgaW5pdGlhbCBkYXRhIGlzIHJlbW92ZWRcbiAgICogKGUuZy4gc2V0IHRvIG51bGwpIHRoZW4gd2UgaGF2ZSB0byBzZXQgdGhpcyBudWxsIHZhbHVlLCBiZWNhdXNlIG90aGVyd2lzZSB0aGUgc2VydmVyIHdvdWxkXG4gICAqIGlnbm9yZSB0aGUgY2hhbmdlcy5cbiAgICogQHBhcmFtIGlzVGFibGVSb3dFZGl0Rm9ybSBGbGFnIGluZGljYXRpbmcgdGhhdCB0aGUgcHJvdmlkZWQgZm9ybSBpcyBhbiBpbmxpbmUgZm9ybSB1c2VkIGJ5XG4gICAqIGEgZm9ybXMgdGFibGUgZWxlbWVudCBmb3IgZWRpdGluZyByb3dzLiBUaG9zZSBuZWVkIGEgc3BlY2lhbCBoYW5kbGluZy5cbiAgICogQHJldHVybiBleHRyYWN0ZWQgZGF0YSBhcyBvYmplY3RcbiAgICovXG4gIGV4dHJhY3RGb3JtRGF0YShmb3JtOiBPYmplY3RGb3JtR3JvdXAsIHNpdHVhdGlvbjogc3RyaW5nLCBpbml0aWFsRGF0YT86IGFueSwgaXNUYWJsZVJvd0VkaXRGb3JtPzogYm9vbGVhbikge1xuICAgIGxldCBleHRyYWN0ZWREYXRhID0ge307XG4gICAgdGhpcy5nZXRFbGVtZW50VmFsdWVzKGV4dHJhY3RlZERhdGEsIGZvcm0sIHNpdHVhdGlvbiB8fCAnRURJVCcsIGluaXRpYWxEYXRhLCBpc1RhYmxlUm93RWRpdEZvcm0pO1xuICAgIHJldHVybiBleHRyYWN0ZWREYXRhO1xuICB9XG5cbiAgLy8gUmVjdXJzaXZlIG1ldGhvZCB0byBnZXQgdGhlIHZhbHVlcyBmcm9tIGVhY2ggZm9ybSBjb250cm9sLlxuICBwcml2YXRlIGdldEVsZW1lbnRWYWx1ZXMoZGF0YTogYW55LCBmb3JtQ29udHJvbDogT2JqZWN0Rm9ybU1vZGVsLCBzaXR1YXRpb246IHN0cmluZywgaW5pdGlhbERhdGE/OiBhbnksIGlzVGFibGVSb3dFZGl0Rm9ybT86IGJvb2xlYW4pIHtcblxuICAgIGlmICghZm9ybUNvbnRyb2wgfHwgIWZvcm1Db250cm9sLmNvbnRyb2xzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGZvcm1Db250cm9sIGluc3RhbmNlb2YgT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyKSB7XG5cbiAgICAgIGNvbnN0IGZjOiBhbnkgPSBmb3JtQ29udHJvbC5jb250cm9sc1tmb3JtQ29udHJvbC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVdO1xuXG4gICAgICBpZiAoZmMuX2VvRm9ybUVsZW1lbnQuaXNOb3RTZXRWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBmb3JtIGVsZW1lbnRzIG1heSBleHBsaWNpdGx5IHNldCB0byBoYXZlIE5VTEwgdmFsdWUgKGUuZy4gZnJvbSBTZWFyY2ggZm9ybSBpZiB2YWx1ZXMgYXJlIHJlcXVlc3RlZCB0aGF0IGhhdmUgbm8gdmFsdWVzKVxuICAgICAgICBpZiAoaXNUYWJsZVJvd0VkaXRGb3JtKSB7XG4gICAgICAgICAgdGhpcy5zZXREYXRhVmFsdWUoZmMuX2VvRm9ybUVsZW1lbnQubmFtZSwgbnVsbCwgZGF0YSwgZmMuX2VvRm9ybUVsZW1lbnQsIGlzVGFibGVSb3dFZGl0Rm9ybSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXREYXRhVmFsdWUoZmMuX2VvRm9ybUVsZW1lbnQucW5hbWUsIG51bGwsIGRhdGEsIGZjLl9lb0Zvcm1FbGVtZW50LCBpc1RhYmxlUm93RWRpdEZvcm0pO1xuICAgICAgICB9XG5cbiAgICAgIH0gZWxzZSBpZiAoZmMudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsZXQgdmFsID0gZmMudmFsdWU7XG5cbiAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgbWV0YSBkYXRhIGFyZSBhbHNvIHVwIHRvIGRhdGVcbiAgICAgICAgaWYgKGZjLl9lb0Zvcm1FbGVtZW50LnR5cGUgPT09ICdDT0RFU1lTVEVNJykge1xuICAgICAgICAgIGNvbnN0IGNzID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldENvZGVzeXN0ZW0oZmMuX2VvRm9ybUVsZW1lbnQuY29kZXN5c3RlbS5pZCk7XG4gICAgICAgICAgZmMuX2VvRm9ybUVsZW1lbnQuZGF0YU1ldGEgPSBjcy5lbnRyaWVzLmZpbmQoZSA9PiBlLmRhdGEgPT09IHZhbCk7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHNpdHVhdGlvbikge1xuICAgICAgICAgIGNhc2UgJ1NFQVJDSCc6IHtcbiAgICAgICAgICAgIGlmICh2YWwgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gcm93IGVkaXRpbmcgZm9ybXMgdXNlIHRoZSBuYW1lIGluc3RlYWQgb2YgdGhlIHFuYW1lIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZVxuICAgICAgICAgICAgICAvLyB0YWJsZXMgZ3JpZCBpc24ndCBhYmxlIHRvIG1hcCB0aGUgZmllbGRzXG4gICAgICAgICAgICAgIGlmICghaXNUYWJsZVJvd0VkaXRGb3JtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREYXRhVmFsdWUoZmMuX2VvRm9ybUVsZW1lbnQucW5hbWUsIHZhbCwgZGF0YSwgZmMuX2VvRm9ybUVsZW1lbnQsIGlzVGFibGVSb3dFZGl0Rm9ybSlcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERhdGFWYWx1ZShmYy5fZW9Gb3JtRWxlbWVudC5uYW1lLCB2YWwsIGRhdGEsIGZjLl9lb0Zvcm1FbGVtZW50LCBpc1RhYmxlUm93RWRpdEZvcm0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlICdDUkVBVEUnOiB7XG4gICAgICAgICAgICAvLyBhbHNvIGFkZCBOVUxMIHZhbHVlcyAob3ZlcnJpZGUgZXhpc3RpbmcgZGVmYXVsdHZhbHVlcylcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0YVZhbHVlKGZjLl9lb0Zvcm1FbGVtZW50Lm5hbWUsIHZhbCwgZGF0YSwgZmMuX2VvRm9ybUVsZW1lbnQsIGlzVGFibGVSb3dFZGl0Rm9ybSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlICdFRElUJzoge1xuICAgICAgICAgICAgLy8gaW4gZWRpdCBzaXR1YXRpb24gd2UgaGF2ZSB0byBjb21wYXJlIG5ldyB2YWx1ZXMgYWdhaW5zdCB0aGUgaW5pdGlhbCB2YWx1ZXNcbiAgICAgICAgICAgIC8vIElmIGEgcHJvcGVydHkgdGhhdCBpcyBjb250YWluZWQgaW4gdGhlIGZvcm1zIGluaXRpYWwgZGF0YSBpcyByZW1vdmVkIChlLmcuIHNldCB0byBudWxsKVxuICAgICAgICAgICAgLy8gdGhlbiB3ZSBoYXZlIHRvIHNldCB0aGlzIG51bGwgdmFsdWUsIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBzZXJ2ZXIgd2lsbCBpZ25vcmUgdGhlIGNoYW5nZXNcbiAgICAgICAgICAgIGlmICh2YWwgIT09IG51bGwgfHwgKGluaXRpYWxEYXRhICYmIGluaXRpYWxEYXRhW2ZjLl9lb0Zvcm1FbGVtZW50Lm5hbWVdICE9PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgIC8vIGRhdGFbZmMuX2VvRm9ybUVsZW1lbnQubmFtZV0gPSB2YWw7XG4gICAgICAgICAgICAgIHRoaXMuc2V0RGF0YVZhbHVlKGZjLl9lb0Zvcm1FbGVtZW50Lm5hbWUsIHZhbCwgZGF0YSwgZmMuX2VvRm9ybUVsZW1lbnQsIGlzVGFibGVSb3dFZGl0Rm9ybSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3Qua2V5cyhmb3JtQ29udHJvbC5jb250cm9scylcbiAgICAgICAgLmZvckVhY2goY29udHJvbEtleSA9PiB7XG4gICAgICAgICAgbGV0IGZvcm1Db250cm9sS2V5ZWQgPSA8T2JqZWN0Rm9ybUdyb3VwPmZvcm1Db250cm9sLmNvbnRyb2xzW2NvbnRyb2xLZXldO1xuICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudFZhbHVlcyhkYXRhLCBmb3JtQ29udHJvbEtleWVkLCBzaXR1YXRpb24sIGluaXRpYWxEYXRhLCBpc1RhYmxlUm93RWRpdEZvcm0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldERhdGFWYWx1ZShrZXksIHZhbHVlLCBkYXRhLCBmb3JtRWxlbWVudCwgaXNUYWJsZVJvd0VkaXRGb3JtKSB7XG4gICAgZGF0YVtrZXldID0gdGhpcy5mb3JtYXRWYWx1ZSh2YWx1ZSwgZm9ybUVsZW1lbnQpO1xuXG4gICAgaWYgKGlzVGFibGVSb3dFZGl0Rm9ybSAmJiBmb3JtRWxlbWVudC5kYXRhTWV0YSkge1xuICAgICAgLy8gaW5uZXIgdGFibGVzIG5lZWQgdG8gc2V0IHVwIHRoZSBtZXRhIGRhdGEgYXMgd2VsbFxuICAgICAgZGF0YVtrZXkgKyAnX21ldGEnXSA9IGZvcm1FbGVtZW50LmRhdGFNZXRhO1xuICAgIH1cbiAgfVxuXG4gIGZvcm1hdFZhbHVlKHZhbHVlLCBmb3JtRWxlbWVudCkge1xuICAgIGlmIChmb3JtRWxlbWVudC50eXBlID09PSAnREFURVRJTUUnICYmICFmb3JtRWxlbWVudC53aXRodGltZSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUuZ2V0VGltZSgpKSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAneXl5eS1NTS1kZCcpO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFJhbmdlVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSYW5nZVZhbHVlKFxuICAgICAgICAgIHZhbHVlLm9wZXJhdG9yLFxuICAgICAgICAgIHZhbHVlLmZpcnN0VmFsdWUgJiYgdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUuZmlyc3RWYWx1ZSwgJ3l5eXktTU0tZGQnKSxcbiAgICAgICAgICB2YWx1ZS5zZWNvbmRWYWx1ZSAmJiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZS5zZWNvbmRWYWx1ZSwgJ3l5eXktTU0tZGQnKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmb3JtRWxlbWVudC50eXBlID09PSAnVEFCTEUnKSB7XG4gICAgICAoZm9ybUVsZW1lbnQuZWxlbWVudHMgfHwgW10pLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAodmFsdWUgfHwgW10pLmZvckVhY2godiA9PiB2W2VsLm5hbWVdID0gdGhpcy5mb3JtYXRWYWx1ZSh2W2VsLm5hbWVdLCBlbCkpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG5cbiAgLy8gRnVuY3Rpb25zIGludm9sdmVkIGluIGJ1aWxkaW5nIGFuIG9iamVjdCBmb3JtXG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZSBtZXRob2QgYWRkaW5nIGEgbmV3IFVudHlwZWRGb3JtQ29udHJvbCAoZ3JvdXAgb3IgY29udHJvbCkgdG8gYSBwYXJlbnQgZm9ybSBncm91cFxuICAgKlxuICAgKiBAcGFyYW0gcGFyZW50R3JvdXAgLSB0aGUgcGFyZW50IGdyb3VwIHRvIGFkZCB0aGUgY29udHJvbCB0b1xuICAgKiBAcGFyYW0gZm9ybUVsZW1lbnQgLSB0aGUgZW5haW8gZm9ybSBtb2RlbCBlbGVtZW50IHRvIGNyZWF0ZSB0aGUgY2hpbGQgY29udHJvbCBmcm9tXG4gICAqIEBwYXJhbSBbdXNlTmFtZV0gLSB1c2UgdGhpcyBuYW1lIGluc3RlYWQgb2YgdGhlIG9uZSBmcm9tIHRoZSBtb2RlbFxuICAgKi9cbiAgcHJpdmF0ZSBfYWRkRm9ybUNvbnRyb2woc2NvcGU6IEZvcm1HZW5TY29wZSwgcGFyZW50R3JvdXA6IE9iamVjdEZvcm1Hcm91cCwgZm9ybUVsZW1lbnQ6IGFueSwgdXNlTmFtZT86IHN0cmluZykge1xuXG4gICAgbGV0IGN0cmw7XG4gICAgbGV0IG5hbWU7XG5cbiAgICAvLyBhZGQgYSBmb3JtIGdyb3VwXG4gICAgaWYgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdvMm1Hcm91cCcgfHwgZm9ybUVsZW1lbnQudHlwZSA9PT0gJ28ybUdyb3VwU3RhY2snKSB7XG5cbiAgICAgIC8vIGRvIG5vdCBhZGQgZ3JvdXBzIHRoYXQgYXJlIGVtcHR5XG4gICAgICBpZiAoIWZvcm1FbGVtZW50LmVsZW1lbnRzIHx8IGZvcm1FbGVtZW50LmVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRm91bmQgZW1wdHkgZm9ybSBncm91cCcsIGZvcm1FbGVtZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjdHJsID0gbmV3IE9iamVjdEZvcm1Hcm91cCh7fSk7XG4gICAgICBjdHJsLl9lb0Zvcm1Hcm91cCA9IHtcbiAgICAgICAgbGFiZWw6IGZvcm1FbGVtZW50LmxhYmVsLFxuICAgICAgICBsYXlvdXQ6IGZvcm1FbGVtZW50LmxheW91dCxcbiAgICAgICAgdHlwZTogZm9ybUVsZW1lbnQudHlwZVxuICAgICAgfTtcblxuICAgICAgaWYgKHVzZU5hbWUgPT09ICdjb3JlJyB8fCB1c2VOYW1lID09PSAnZGF0YScpIHtcbiAgICAgICAgY3RybC5fZW9Gb3JtR3JvdXAubGFiZWwgPSB1c2VOYW1lO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBlIG9mIGZvcm1FbGVtZW50LmVsZW1lbnRzKSB7XG4gICAgICAgIHRoaXMuX2FkZEZvcm1Db250cm9sKHNjb3BlLCBjdHJsLCBlKTtcbiAgICAgIH1cbiAgICAgIG5hbWUgPSB1c2VOYW1lIHx8ICdmZycgKyBzY29wZS5nQ291bnQrKztcbiAgICAgIGN0cmwuX2VvRm9ybUdyb3VwLmlkID0gYCR7c2NvcGUuZm9ybU9wdGlvbnMubGF5b3V0U2V0dGluZ3NJRCB8fCBzY29wZS5mb3JtT3B0aW9ucy5mb3JtTW9kZWwubmFtZX0uJHtuYW1lfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGFkZCBmb3JtIGNvbnRyb2xcbiAgICAgIC8vIFRvIGJlIGFibGUgdG8gaW50ZWdyYXRlIHJlY3Vyc2l2ZSBmb3JtIGNvbnRyb2xzIGludG8gdGhlIG1haW4gZm9ybSxcbiAgICAgIC8vIHdlIGhhdmUgdG8gd3JhcCB0aGVtIGluIGEgZm9ybSBncm91cFxuICAgICAgY3RybCA9IG5ldyBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIoe30pO1xuICAgICAgY3RybC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIgPSB7XG4gICAgICAgIC8vIHRoZSBuYW1lIG9mIHRoZSB3cmFwcGVkIFVudHlwZWRGb3JtQ29udHJvbFxuICAgICAgICBjb250cm9sTmFtZTogZm9ybUVsZW1lbnQubmFtZSxcbiAgICAgICAgc2l0dWF0aW9uOiBzY29wZS5mb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uXG4gICAgICB9O1xuICAgICAgaWYgKHNjb3BlLmZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb24gPT09ICdTRUFSQ0gnICYmIGZvcm1FbGVtZW50LnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIGZvcm1FbGVtZW50LmlzTm90U2V0VmFsdWUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgLy8gZG8gbm90IHNldCBhIHJlZmVyZW5jZSBhcyB0aGUgZm9ybSBjb250cm9scyB2YWx1ZVxuICAgICAgLy8gb3RoZXJ3aXNlIHdlIGNvdWxkIG5vdCByZXNldCB0aGUgZm9ybVxuICAgICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtRWxlbWVudC52YWx1ZSkpIHtcbiAgICAgICAgLy8gY29weSBieSB2YWx1ZSBmb3IgYXJyYXlzIG9mIG9iamVjdHMgKGUuZy4gdGFibGUgZGF0YSlcbiAgICAgICAgdmFsdWUgPSBbXTtcbiAgICAgICAgZm9ybUVsZW1lbnQudmFsdWUuZm9yRWFjaCgobykgPT4ge1xuICAgICAgICAgIHZhbHVlLnB1c2goVXRpbHMuZm9ybURhdGFQYXJzZShVdGlscy5mb3JtRGF0YVN0cmluZ2lmeShvKSkpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gZm9ybUVsZW1lbnQudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIGZvciBjb2Rlc3lzdGVtIGVsZW1lbnRzIGFkZCBlbnRyaWVzIGlmIG5vdCB5ZXQgcHJvdmlkZWRcbiAgICAgIGlmIChmb3JtRWxlbWVudC50eXBlID09PSAnQ09ERVNZU1RFTScgJiYgIWZvcm1FbGVtZW50LmNvZGVzeXN0ZW0uZW50cmllcykge1xuICAgICAgICBmb3JtRWxlbWVudC5jb2Rlc3lzdGVtID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldENvZGVzeXN0ZW0oZm9ybUVsZW1lbnQuY29kZXN5c3RlbS5pZCk7XG4gICAgICB9XG5cbiAgICAgIC8vIGNyZWF0ZSB0aGUgYWN0dWFsIGZvcm0gY29udHJvbFxuICAgICAgbGV0IGNvbnRyb2xEaXNhYmxlZCA9IHNjb3BlLmZvcm1PcHRpb25zLmRpc2FibGVkIHx8ICEhZm9ybUVsZW1lbnQucmVhZG9ubHk7XG4gICAgICBsZXQgZm9ybUNvbnRyb2wgPSBuZXcgT2JqZWN0Rm9ybUNvbnRyb2woe1xuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIGRpc2FibGVkOiBjb250cm9sRGlzYWJsZWRcbiAgICAgIH0pO1xuXG4gICAgICBmb3JtRWxlbWVudC5yZWFkb25seSA9IGNvbnRyb2xEaXNhYmxlZDtcblxuICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQgPSBmb3JtRWxlbWVudDtcbiAgICAgIHNjb3BlLmZvcm1HZW5SZXN1bHQuZm9ybUNvbnRyb2xzW2Zvcm1FbGVtZW50Lm5hbWVdID0gZm9ybUNvbnRyb2w7XG5cbiAgICAgIGlmIChmb3JtRWxlbWVudC50eXBlID09PSAnQ09ERVNZU1RFTScgfHwgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdTVFJJTkcnICYmIGZvcm1FbGVtZW50LmNsYXNzaWZpY2F0aW9uID09PSAnc2VsZWN0b3InKSkge1xuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5hcHBseUZpbHRlciA9IChmdW5jOiBGdW5jdGlvbikgPT4ge1xuICAgICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LmZpbHRlckZ1bmN0aW9uID0gZnVuYztcbiAgICAgICAgfTtcbiAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQuYXBwbHlEaXNhYmxpbmdGaWx0ZXIgPSAoZnVuYzogRnVuY3Rpb24pID0+IHtcbiAgICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5kaXNhYmxpbmdGaWx0ZXJGdW5jdGlvbiA9IGZ1bmM7XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChmb3JtRWxlbWVudC50eXBlID09PSAnU1RSSU5HJyAmJiBmb3JtRWxlbWVudC5jbGFzc2lmaWNhdGlvbiA9PT0gJ3NlbGVjdG9yJykge1xuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5zZXRMaXN0ID0gKGxpc3RPYmplY3Q6IGFueSkgPT4ge1xuICAgICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50Lmxpc3QgPSBsaXN0T2JqZWN0O1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZm9ybUVsZW1lbnQudHlwZSA9PT0gJ09SR0FOSVpBVElPTicpIHtcbiAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQuc2V0RmlsdGVyID0gKGZpbHRlck9iamVjdDogYW55KSA9PiB7XG4gICAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQuZmlsdGVyID0gZmlsdGVyT2JqZWN0O1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZm9ybUVsZW1lbnQudHlwZSA9PT0gJ1RBQkxFJykge1xuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5vYmplY3QgPSBzY29wZS5mb3JtT3B0aW9ucy5vYmplY3Q7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb3JtRWxlbWVudC50eXBlID09PSAnUkVGRVJFTkNFJykge1xuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5zZXRRdWVyeUZpbHRlcnMgPSAocXVlcnlGaWx0ZXJzT2JqZWN0OiB7W2ZpZWxkUW5hbWU6IHN0cmluZ106IHtvOiBzdHJpbmcsIHYxOiBhbnksIHYyOiBhbnl9fSwgb2JqZWN0VHlwZXM/OiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LnF1ZXJ5RmlsdGVycyA9IHF1ZXJ5RmlsdGVyc09iamVjdDtcbiAgICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5vYmplY3RUeXBlc0ZpbHRlciA9IG9iamVjdFR5cGVzO1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAoc2NvcGUuZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcbiAgICAgICAgLy8gaW4gc2VhcmNoIHNpdHVhdGlvbiBldmVuIHJlYWRvbmx5IGZpZWxkcyBzaG91bGQgYmUgZWRpdGFibGUgLi4uXG4gICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5ID0gZmFsc2U7XG4gICAgICAgIC8vIC4uLiBhbmQgcmVxdWlyZWQgbWFrZXMgbm8gc2Vuc2UgaGVyZVxuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyByZW1vdmUgZW1wdHkgZGVzY3JpcHRpb25zXG4gICAgICBsZXQgZGVzYyA9IGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LmRlc2NyaXB0aW9uO1xuICAgICAgaWYgKGRlc2MgJiYgZGVzYy50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LmRlc2NyaXB0aW9uID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8gYWRkIHRoZSBmb3JtIGVsZW1lbnQgdG8gdGhlIHNjcmlwdCBtb2RlbCB0aGF0IHdpbGwgYmUgaW5qZWN0ZWQgaW50b1xuICAgICAgLy8gdGhlIGZvcm1zIHNjcmlwdGluZyBzY29wZSBsYXRlciBvblxuICAgICAgc2NvcGUuZm9ybUdlblJlc3VsdC5zY3JpcHRNb2RlbFtmb3JtRWxlbWVudC5uYW1lXSA9IGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50O1xuXG4gICAgICAvLyBhcHBseSBjaGFuZ2UgbGlzdGVuZXIgdG8gdGhlIGZvcm0gY29udHJvbCwgdGhhdCB3aWxsIHRyaWdnZXJcbiAgICAgIC8vIHRoZSBmb3JtIGVsZW1lbnRzIG9uQ2hhbmdlIGxpc3RlbmVyXG4gICAgICBsZXQgY29udHJvbFdhdGNoID0gY3RybC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoZm9ybUVsZW1lbnQudHlwZSA9PT0gJ1RBQkxFJyA/IDAgOiA1MDApKTtcbiAgICAgIGNvbnRyb2xXYXRjaC5zdWJzY3JpYmUoKHYpID0+IHtcbiAgICAgICAgaWYgKGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LnR5cGUgPT09ICdSRUZFUkVOQ0UnKSB7XG4gICAgICAgICAgdGhpcy5fZ2V0RGF0YU1ldGEoZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQsIHZbZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQubmFtZV0pLnN1YnNjcmliZShtID0+IHtcbiAgICAgICAgICAgIGlmIChtKSB7XG4gICAgICAgICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LmRhdGFNZXRhID0gZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQubXVsdGlzZWxlY3QgPyBtIDogbVswXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5kYXRhTWV0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2NvcGUuZm9ybUdlblJlc3VsdC5zY3JpcHRpbmdTY29wZSkge1xuICAgICAgICAgIHNjb3BlLmZvcm1HZW5SZXN1bHQuc2NyaXB0aW5nU2NvcGUubW9kZWxDaGFuZ2VkKHYpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHNjb3BlLmZvcm1HZW5SZXN1bHQuY29udHJvbFZhbHVlU3Vic2NyaXB0aW9ucy5wdXNoKGNvbnRyb2xXYXRjaCk7XG5cbiAgICAgIGN0cmwuYWRkQ29udHJvbChmb3JtRWxlbWVudC5uYW1lLCBmb3JtQ29udHJvbCk7XG4gICAgICBuYW1lID0gJ2ZnXycgKyBmb3JtRWxlbWVudC5uYW1lO1xuICAgIH1cbiAgICBwYXJlbnRHcm91cC5hZGRDb250cm9sKG5hbWUsIGN0cmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIGRhdGEgaW50byBhIGZvcm0gbW9kZWwuXG4gICAqXG4gICAqIEBwYXJhbSBtb2RlbCAtIGZvcm0gbW9kZWxcbiAgICogQHBhcmFtIGRhdGEgLSBkYXRhIG9iamVjdCBvciBhcnJheSBvZiBTZWFyY2hGaWx0ZXIgb2JqZWN0cyBpbiBjYXNlIG9mIGEgc2VhcmNoIGZvcm1cbiAgICovXG4gIHByaXZhdGUgX2RhdGFUb0Zvcm0oc2NvcGU6IEZvcm1HZW5TY29wZSwgbW9kZWw6IGFueSwgZGF0YTogYW55KSB7XG4gICAgaWYgKG1vZGVsICYmIGRhdGEpIHtcbiAgICAgIHRoaXMuX3NldEVsZW1lbnRWYWx1ZXMoc2NvcGUsIG1vZGVsLmVsZW1lbnRzLCBkYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgLy8gcmVjdXJzaXZlIG1ldGhvZCBmb3IgYWRkaW5nIHZhbHVlcyB0byBtb2RlbCBlbGVtZW50c1xuICBwcml2YXRlIF9zZXRFbGVtZW50VmFsdWVzKHNjb3BlOiBGb3JtR2VuU2NvcGUsIGVsZW1lbnRzLCBkYXRhKSB7XG5cbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgaWYgKHRoaXMuX2hhc1ZhbHVlKGRhdGEsIGVsZW1lbnQpKSB7XG5cbiAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMuX2dldFZhbHVlKHNjb3BlLCBkYXRhLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUpIHtcbiAgICAgICAgICAvLyBhZGQgbWV0YSBkYXRhIGZvciBzb21lIG9mIHRoZSB0eXBlc1xuICAgICAgICAgIHRoaXMuX2ZldGNoTWV0YURhdGEoc2NvcGUsIGRhdGEsIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGUgZWxlbWVudC52YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChlbGVtZW50LnR5cGUgIT09ICdUQUJMRScgJiYgZWxlbWVudC5lbGVtZW50cyAmJiBlbGVtZW50LmVsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5fc2V0RWxlbWVudFZhbHVlcyhzY29wZSwgZWxlbWVudC5lbGVtZW50cywgZGF0YSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBpbiBzb21lIGNhc2VzIHJlcXVpcmVkIG1ldGEgZGF0YSBtYXkgbm90IGJlIGF2YWlsYWJsZSBvbiB0aGUgZWxlbWVudCBpdHNlbGZcbiAgLy8gc28gdGhleSBoYXZlIHRvIGJlIGZldGNoZWQgYW5kIGFkZGVkIHRvIHRoZSBlbGVtZW50IGZvciB0aGUgZm9ybSB0byBiZSBhYmxlXG4gIC8vIHRvIHJlbmRlciB0aGUgZWxlbWVudCBjb3JyZWN0bHlcbiAgcHJpdmF0ZSBfZmV0Y2hNZXRhRGF0YShzY29wZTogRm9ybUdlblNjb3BlLCBkYXRhLCBlbGVtZW50KSB7XG5cbiAgICBpZiAoc2NvcGUuZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcbiAgICAgIC8vIHRvZG86IGhvdyB0byBmZXRjaCBtZXRhIGRhdGEgaW4gc2VhcmNoIHNpdHVhdGlvblxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZWxlbWVudC50eXBlID09PSAnT1JHQU5JWkFUSU9OJyAmJiBkYXRhW2VsZW1lbnQubmFtZSArICdfbWV0YSddKSB7XG4gICAgICAgIGVsZW1lbnQuZGF0YU1ldGEgPSBkYXRhW2VsZW1lbnQubmFtZSArICdfbWV0YSddO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnR5cGUgPT09ICdDT0RFU1lTVEVNJyAmJiBkYXRhW2VsZW1lbnQubmFtZSArICdfbWV0YSddKSB7XG4gICAgICAgIGVsZW1lbnQuZGF0YU1ldGEgPSBkYXRhW2VsZW1lbnQubmFtZSArICdfbWV0YSddO1xuICAgICAgICBlbGVtZW50LmRlZmF1bHRyZXByZXNlbnRhdGlvbiA9IGRhdGFbZWxlbWVudC5uYW1lICsgJ19tZXRhJ10uZGVmYXVsdHJlcHJlc2VudGF0aW9uO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnR5cGUgPT09ICdSRUZFUkVOQ0UnICYmIGRhdGFbZWxlbWVudC5uYW1lICsgJ19tZXRhJ10pIHtcbiAgICAgICAgZWxlbWVudC5kYXRhTWV0YSA9IGRhdGFbZWxlbWVudC5uYW1lICsgJ19tZXRhJ107XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGF0YU1ldGEoZm9ybUVsZW1lbnQ6IGFueSwgbmV3VmFsdWU6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgIHN3aXRjaCAoZm9ybUVsZW1lbnQudHlwZSkge1xuICAgICAgICBjYXNlICdPUkdBTklaQVRJT04nOiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBuZXdWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uT2JqZWN0KG5ld1ZhbHVlKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3lzdGVtU2VydmljZS5nZXRPcmdhbml6YXRpb25PYmplY3QobmV3VmFsdWVbMF0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3lzdGVtU2VydmljZS5nZXRPcmdhbml6YXRpb25PYmplY3RzKG5ld1ZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnUkVGRVJFTkNFJzoge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZVNlcnZpY2UuZmV0Y2hJRFJlZmVyZW5jZU1ldGFEYXRhKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpID8gbmV3VmFsdWUgOiBbbmV3VmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdDT0RFU1lTVEVNJzoge1xuICAgICAgICAgIHJldHVybiBvZih0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0Q29kZXN5c3RlbShmb3JtRWxlbWVudC5jb2Rlc3lzdGVtLmlkKS5lbnRyaWVzLmZpbmQoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZW50cnkuZGVmYXVsdHJlcHJlc2VudGF0aW9uID09PSBuZXdWYWx1ZTtcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9mKG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFzVmFsdWUoZGF0YSwgZWxlbWVudCkge1xuXG4gICAgLy8gZGlmZmVyIGJldHdlZW4gYXJyYXkgb2YgU2VhcmNoRmlsdGVycyBhbmQgYSBmb3JtIGRhdGEgb2JqZWN0XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdUQUJMRScpIHtcbiAgICAgICAgcmV0dXJuICEhKGRhdGEuZmluZCgoZmlsdGVyKSA9PiBmaWx0ZXIucHJvcGVydHkuc3RhcnRzV2l0aChlbGVtZW50LnFuYW1lKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICEhKGRhdGEuZmluZCgoZmlsdGVyKSA9PiBmaWx0ZXIucHJvcGVydHkgPT09IGVsZW1lbnQucW5hbWUpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRhdGEuaGFzT3duUHJvcGVydHkoZWxlbWVudC5uYW1lKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRWYWx1ZShzY29wZTogRm9ybUdlblNjb3BlLCBkYXRhLCBlbGVtZW50KSB7XG5cbiAgICBsZXQgdmFsdWU7XG4gICAgaWYgKHNjb3BlLmZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICBpZiAoc2NvcGUuaXNJbm5lclRhYmxlRm9ybSkge1xuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSAnREFURVRJTUUnIHx8IGVsZW1lbnQudHlwZSA9PT0gJ05VTUJFUicpIHtcbiAgICAgICAgICB2YWx1ZSA9IFNlYXJjaFNlcnZpY2UudG9SYW5nZVZhbHVlKGRhdGFbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2VsZW1lbnQubmFtZV07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC50eXBlID09PSAnVEFCTEUnKSB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5zZWFyY2hTZXJ2aWNlLnRhYmxlRmlsdGVyc1RvRWxlbWVudFZhbHVlKHRoaXMuX2dldFRhYmxlRmlsdGVycyhkYXRhLCBlbGVtZW50LnFuYW1lKSwgZWxlbWVudC5lbGVtZW50cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSBkYXRhLmZpbmQoZiA9PiBmLnByb3BlcnR5ID09PSBlbGVtZW50LnFuYW1lKTtcbiAgICAgICAgdmFsdWUgPSB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyVG9FbGVtZW50VmFsdWUoZmlsdGVyLCBlbGVtZW50LnR5cGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG5cbiAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdEQVRFVElNRScgJiYgZGF0YVtlbGVtZW50Lm5hbWVdKSB7XG4gICAgICAgIHZhbHVlID0gbmV3IERhdGUoYCR7ZGF0YVtlbGVtZW50Lm5hbWVdfSR7KHR5cGVvZiBkYXRhW2VsZW1lbnQubmFtZV0gPT09ICdzdHJpbmcnID8gZGF0YVtlbGVtZW50Lm5hbWVdLmluZGV4T2YoJ1QnKSA6IGRhdGFbZWxlbWVudC5uYW1lXS50b0lTT1N0cmluZygpLmluZGV4T2YoJ1QnKSkgIT09IC0xID8gJycgOiAnVDAwOjAwOjAwJ31gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gZGF0YVtlbGVtZW50Lm5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUYWJsZUZpbHRlcnMoZmlsdGVyczogU2VhcmNoRmlsdGVyW10sIHByb3BlcnR5TmFtZTogc3RyaW5nKTogU2VhcmNoRmlsdGVyW10ge1xuICAgIHJldHVybiBmaWx0ZXJzLmZpbHRlcihmID0+IGYucHJvcGVydHkuc3RhcnRzV2l0aChwcm9wZXJ0eU5hbWUgKyAnLicpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRWYWxpZGF0b3JzKGZvcm1Db250cm9sOiBPYmplY3RGb3JtR3JvdXAsIHNjb3BlOiBGb3JtR2VuU2NvcGUpIHtcbiAgICBpZiAoZm9ybUNvbnRyb2wpIHtcbiAgICAgIGZvciAobGV0IGtleSBpbiBmb3JtQ29udHJvbC5jb250cm9scykge1xuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUNvbnRyb2wuY29udHJvbHNba2V5XSBhcyBhbnk7XG4gICAgICAgIGlmIChjb250cm9sLmNvbnRyb2xzKSB7XG4gICAgICAgICAgdGhpcy5faW5pdFZhbGlkYXRvcnMoY29udHJvbCwgc2NvcGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNjb3BlLmluaXRpYWxWYWxpZGF0b3JzW2NvbnRyb2wuX2VvRm9ybUVsZW1lbnQubmFtZV0gPSBjb250cm9sLnZhbGlkYXRvcjtcbiAgICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKFxuICAgICAgICAgICAgdGhpcy5fZ2V0VmFsaWRhdG9ycyhzY29wZSwgY29udHJvbC5fZW9Gb3JtRWxlbWVudCkuY29uY2F0KFxuICAgICAgICAgICAgICBbc2NvcGUuaW5pdGlhbFZhbGlkYXRvcnNbY29udHJvbC5fZW9Gb3JtRWxlbWVudC5uYW1lXV0pXG4gICAgICAgICAgKSk7XG4gICAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgKiBCdWlsZCB2YWxpZGF0b3JzIGZvciB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50IHRvIGJlIGF0dGFjaGVkIHRvXG4gICogYSByZWFjdGl2ZSBmb3JtQ29udHJvbC5cbiAgKlxuICAqIEBwYXJhbSBmb3JtRWxlbWVudCAtIGZvcm0gZWxlbWVudCBvYmplY3RcbiAgKi9cbiAgcHJpdmF0ZSBfZ2V0VmFsaWRhdG9ycyhzY29wZTogRm9ybUdlblNjb3BlLCBmb3JtRWxlbWVudDogYW55KTogVmFsaWRhdG9yRm5bXSB7XG4gICAgbGV0IGVsbVZhbGlkYXRvcnMgPSBGb3JtVmFsaWRhdGlvbi5nZXRWYWxpZGF0b3JzKGZvcm1FbGVtZW50LCBzY29wZS5mb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uKTtcbiAgICAvLyBhZGQgY3VzdG9tIHZhbGlkYXRvciBmb3Igc2NyaXB0IGVuYWJsZWQgZm9ybXNcbiAgICBpZiAoc2NvcGUuZm9ybUdlblJlc3VsdC5zY3JpcHRpbmdTY29wZSkge1xuICAgICAgZWxtVmFsaWRhdG9ycy5wdXNoKEZvcm1WYWxpZGF0aW9uLmN1c3RvbVNjcmlwdGluZ1ZhbGlkYXRpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBlbG1WYWxpZGF0b3JzO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdFNjcmlwdGluZ1Njb3BlKHNjb3BlOiBGb3JtR2VuU2NvcGUsIGZvcm1TY3JpcHRTZXJ2aWNlOiBPYmplY3RGb3JtU2NyaXB0U2VydmljZSkge1xuICAgIGxldCB7ZGF0YSwgYWN0aW9ucywgb2JqZWN0cywgY29udGV4dH0gPSA8T2JqZWN0Rm9ybU9wdGlvbnM+KHNjb3BlLmZvcm1PcHRpb25zIHx8IHt9KTtcblxuICAgIGlmIChzY29wZS5mb3JtR2VuUmVzdWx0LnNjcmlwdGluZ1Njb3BlKSB7XG4gICAgICBzY29wZS5mb3JtR2VuUmVzdWx0LnNjcmlwdGluZ1Njb3BlLnNldE1vZGVsKHNjb3BlLmZvcm1HZW5SZXN1bHQuc2NyaXB0TW9kZWwpO1xuICAgICAgLyoqIHByb3ZpZGUgYWNjZXNzIHRvIGFjdGlvbnMgKHVzZWQgaW5zaWRlIG9mIEJQTS1Gb3JtcykgKi9cbiAgICAgIHNjb3BlLmZvcm1HZW5SZXN1bHQuc2NyaXB0aW5nU2NvcGUuYWN0aW9ucyA9IGFjdGlvbnM7XG4gICAgICAvKiogcHJvdmlkZSBhY2Nlc3MgdG8gYWRkaXRpb25hbCBvYmplY3RzICh1c2VkIGZvciBleGFtcGxlIGluIEJQTS1TdGFydC1Gb3JtcyB0b1xuICAgICAgICogYWRkIGRhdGEgb2YgRE1TLU9iamVjdHMgdG8gc3RhcnQgdGhlIHByb2Nlc3MgZm9yKVxuICAgICAgICovXG4gICAgICBzY29wZS5mb3JtR2VuUmVzdWx0LnNjcmlwdGluZ1Njb3BlLm9iamVjdHMgPSBvYmplY3RzO1xuICAgICAgc2NvcGUuZm9ybUdlblJlc3VsdC5zY3JpcHRpbmdTY29wZS5jb250ZXh0ID0gY29udGV4dDtcbiAgICAgIC8qKiBwcm92aWRlIHJlYWRvbmx5IGFjY2VzcyB0byBpbml0aWFsIGZvcm0gZGF0YSAod2hpY2ggbWF5IGFsc28gY29udGFpbiB2YWx1ZXMgdGhhdFxuICAgICAgICogYXJlIG5vdCByZW5kZXJlZCBhcyBmb3JtIGVsZW1lbnRzIChpbnZpc2libGUgdmFsdWVzKSlcbiAgICAgICAqL1xuICAgICAgc2NvcGUuZm9ybUdlblJlc3VsdC5zY3JpcHRpbmdTY29wZS5kYXRhID0gZGF0YTtcblxuICAgICAgLyoqIGJ5IGRlZmF1bHQsIHNjcmlwdGluZyBzY29wZXMgYXJlIGFwcGxpZWQgdG8gZm9ybXMuIEJ1dCB0YWJsZSBlbGVtZW50cyBjcmVhdGUgdGhlaXIgb3duIHNjb3BlXG4gICAgICAgKiBmb3IgZWRpdGluZyByb3dzLiBCZWluZyBvbmUgb2YgdGhvc2UgaW5uZXIgZm9ybXMgc2hvdWxkIG5vdCBydW4gdGhlIGZvcm0gc2NyaXB0IGFnYWluLCBidXRcbiAgICAgICAqIGluc3RlYWQganVzdCBwcm92aWRlIHRoZSBvYnNlcnZpbmcgYWJpbGl0aWVzIG9mIHRoZSBzY3JpcHRpbmcgc2NvcGUuXG4gICAgICAgKi9cbiAgICAgIGlmICghc2NvcGUuZm9ybU9wdGlvbnMuZGlzYWJsZWQgJiYgIXNjb3BlLmlzSW5uZXJUYWJsZUZvcm0gJiYgc2NvcGUuZm9ybUdlblJlc3VsdC5mb3JtTW9kZWwpIHtcbiAgICAgICAgY29uc3Qgc2NyaXB0TmFtZSA9IHNjb3BlLmZvcm1HZW5SZXN1bHQuZm9ybU1vZGVsLm5hbWUgKyAnXycgKyBzY29wZS5mb3JtR2VuUmVzdWx0LmZvcm1Nb2RlbC5zaXR1YXRpb247XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdleGVjdXRpbmcgZm9ybSBzY3JpcHQgJyArIHNjcmlwdE5hbWUpO1xuICAgICAgICBmb3JtU2NyaXB0U2VydmljZS5ydW5Gb3JtU2NyaXB0KFxuICAgICAgICAgIHNjb3BlLmZvcm1HZW5SZXN1bHQuc2NyaXB0aW5nU2NvcGUsXG4gICAgICAgICAgc2NvcGUuZm9ybUdlblJlc3VsdC5mb3JtTW9kZWwuc2NyaXB0LFxuICAgICAgICAgIHNjcmlwdE5hbWVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBlYWNoIHRpbWUgdGhlIHNjcmlwdCBjaGFuZ2VzIGl0cyBpbnRlcm5hbCBtb2RlbC5cbiAgICAgKiBJdCBpcyB1c2VkIHRvIHRyYW5zZmVyIHRoZSBzY3JpcHQgY2hhbmdlcyB0byB0aGUgYWN0dWFsIGZvcm0gbW9kZWwuXG4gICAgICpcbiAgICAgKiBUbyBlbnN1cmUgdGhlIHJpZ2h0IGNvbnRleHQsIHdlIGRlZmluZSBhbiBpbnN0YW5jZSBtZXRob2QgYXMgY2FsbGJhY2sgZm9yIHRoZSBzY3JpcHRpbmcgc2NvcGVcbiAgICAgKiBAc2VlOiBodHRwczovL2Jsb2cuam9obm55cmVpbGx5LmNvbS8yMDE0LzA0L3R5cGVzY3JpcHQtaW5zdGFuY2UtbWV0aG9kcy5odG1sXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm9ybUNvbnRyb2xOYW1lXG4gICAgICogQHBhcmFtIGNoYW5nZVxuICAgICAqL1xuXG4gIHByaXZhdGUgX2dldFNjcmlwdGluZ01vZGVsQ2hhbmdlZChzY29wZTogRm9ybUdlblNjb3BlKTogRnVuY3Rpb24ge1xuICAgIHJldHVybiAoZm9ybUNvbnRyb2xOYW1lLCBjaGFuZ2UpID0+IHtcblxuICAgICAgLy8gZmluZCB0aGUgdGFyZ2V0IGNvbnRyb2xcbiAgICAgIGxldCBmYzogT2JqZWN0Rm9ybUNvbnRyb2wgPSBzY29wZS5mb3JtR2VuUmVzdWx0LmZvcm1Db250cm9sc1tmb3JtQ29udHJvbE5hbWVdIGFzIE9iamVjdEZvcm1Db250cm9sO1xuICAgICAgaWYgKGZjKSB7XG5cbiAgICAgICAgLy8gY2hhbmdlIG9ubHkgYWxsb3dlZCBwcm9wZXJ0aWVzXG4gICAgICAgIHN3aXRjaCAoY2hhbmdlLm5hbWUpIHtcbiAgICAgICAgICBjYXNlICd2YWx1ZSc6IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoYW5nZS5uZXdWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc0FycmF5VmFsdWVDaGFuZ2UoZmMsIGNoYW5nZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBmYy5fZW9Gb3JtRWxlbWVudC52YWx1ZSA9IGNoYW5nZS5uZXdWYWx1ZTtcbiAgICAgICAgICAgICAgaWYgKGZjLnZhbHVlICE9PSBjaGFuZ2UubmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBmYy5wYXRjaFZhbHVlKGNoYW5nZS5uZXdWYWx1ZSk7XG4gICAgICAgICAgICAgICAgZmMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICAgICAgICAgIGZjLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlLmZvcm1HZW5SZXN1bHQuZm9ybS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgJ3JlcXVpcmVkJzoge1xuICAgICAgICAgICAgaWYgKGZjLl9lb0Zvcm1FbGVtZW50LnJlcXVpcmVkICE9PSBjaGFuZ2UubmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgZmMuX2VvRm9ybUVsZW1lbnQucmVxdWlyZWQgPSBjaGFuZ2UubmV3VmFsdWU7XG4gICAgICAgICAgICAgIC8vIGFwcGx5IG5ldyB2YWxpZGF0b3JzXG4gICAgICAgICAgICAgIC8vIEBzZWU6IGh0dHBzOi8vc2NvdGNoLmlvL3R1dG9yaWFscy9ob3ctdG8taW1wbGVtZW50LWNvbmRpdGlvbmFsLXZhbGlkYXRpb24taW4tYW5ndWxhci0yLW1vZGVsLWRyaXZlbi1mb3Jtc1xuICAgICAgICAgICAgICBmYy5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMuY29tcG9zZSh0aGlzLl9nZXRWYWxpZGF0b3JzKHNjb3BlLCBmYy5fZW9Gb3JtRWxlbWVudCkuY29uY2F0KFtzY29wZS5pbml0aWFsVmFsaWRhdG9yc1tmYy5fZW9Gb3JtRWxlbWVudC5uYW1lXV0pKSk7XG4gICAgICAgICAgICAgIC8vIG5lZWQgdG8gbWFyayBmb3JtIGNvbnRyb2wgYXMgdG91Y2hlZCBiZWNhdXNlIG90aGVyd2lzZSBmb3JtIHZhbGlkYXRpb24gd2lsbCBub3Qgc2hvd1xuICAgICAgICAgICAgICAvLyBlcnJvciBtZXNzYWdlc1xuICAgICAgICAgICAgICBmYy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICAgIGZjLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlICdyZWFkb25seSc6IHtcbiAgICAgICAgICAgIGZjLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5ID0gY2hhbmdlLm5ld1ZhbHVlO1xuICAgICAgICAgICAgaWYgKGNoYW5nZS5uZXdWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICBmYy5kaXNhYmxlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBmYy5lbmFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlICdlcnJvcic6IHtcbiAgICAgICAgICAgIGlmIChKU09OLnN0cmluZ2lmeShmYy5fZW9Gb3JtRWxlbWVudC5lcnJvcikgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZS5uZXdWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgZmMuX2VvRm9ybUVsZW1lbnQuZXJyb3IgPSBjaGFuZ2UubmV3VmFsdWU7XG4gICAgICAgICAgICAgIGZjLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgICAgZmMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIG5ldyBvbnJvd2VkaXQgZnVuY3Rpb24gd2FzIGFwcGxpZWQgYnkgdGhlIHNjcmlwdFxuICAgICAgICAgIGNhc2UgJ29ucm93ZWRpdCc6IHtcbiAgICAgICAgICAgIGZjLl9lb0Zvcm1FbGVtZW50Lm9ucm93ZWRpdCA9IGNoYW5nZS5uZXdWYWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBuZXcgb25jaGFuZ2UgZnVuY3Rpb24gd2FzIGFwcGxpZWQgYnkgdGhlIHNjcmlwdFxuICAgICAgICAgIGNhc2UgJ29uY2hhbmdlJzoge1xuICAgICAgICAgICAgZmMuX2VvRm9ybUVsZW1lbnQub25jaGFuZ2UgPSBjaGFuZ2UubmV3VmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gbmV3IGNvbnRleHRJZCB3YXMgYXBwbGllZCBieSB0aGUgc2NyaXB0XG4gICAgICAgICAgY2FzZSAnY29udGV4dElkJzoge1xuICAgICAgICAgICAgZmMuX2VvRm9ybUVsZW1lbnQuY29udGV4dElkID0gY2hhbmdlLm5ld1ZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIG5ldyBkZXNjcmlwdGlvbiB3YXMgYXBwbGllZCBieSB0aGUgc2NyaXB0XG4gICAgICAgICAgY2FzZSAnZGVzY3JpcHRpb24nOiB7XG4gICAgICAgICAgICBmYy5fZW9Gb3JtRWxlbWVudC5kZXNjcmlwdGlvbiA9IGNoYW5nZS5uZXdWYWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Byb2Nlc3NBcnJheVZhbHVlQ2hhbmdlKGZjLCBjaGFuZ2UpIHtcbiAgICBjb25zdCBuZXdWYWwgPSBjaGFuZ2UubmV3VmFsdWU7XG4gICAgY29uc3QgdGFyZ2V0VHlwZSA9IGZjLl9lb0Zvcm1FbGVtZW50LnR5cGU7XG4gICAgLy8gZm9yIHNvbWUgdHlwZXMgd2UgaGF2ZSB0byBlbnN1cmUgdGhhdCBtZXRhIGRhdGEgYXJlIHByb3ZpZGVkIGFzIHdlbGxcbiAgICBzd2l0Y2ggKHRhcmdldFR5cGUpIHtcbiAgICAgIGNhc2UgJ09SR0FOSVpBVElPTic6IHtcbiAgICAgICAgdGhpcy5fZ2V0RGF0YU1ldGEoZmMuX2VvRm9ybUVsZW1lbnQsIG5ld1ZhbCkuc3Vic2NyaWJlKG0gPT4ge1xuICAgICAgICAgIGZjLl9lb0Zvcm1FbGVtZW50LmRhdGFNZXRhID0gbTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQ09ERVNZU1RFTSc6IHtcbiAgICAgICAgaWYgKCFmYy5fZW9Gb3JtRWxlbWVudC5jb2Rlc3lzdGVtLmVudHJpZXMpIHtcbiAgICAgICAgICBmYy5fZW9Gb3JtRWxlbWVudC5jb2Rlc3lzdGVtID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldENvZGVzeXN0ZW0oZmMuX2VvRm9ybUVsZW1lbnQuY29kZXN5c3RlbS5pZCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdUQUJMRSc6IHtcbiAgICAgICAgY29uc3QgZGF0YVRvQmVQcm9jZXNzZWQgPSB7fTtcbiAgICAgICAgZmMuX2VvRm9ybUVsZW1lbnQuZWxlbWVudHMuZm9yRWFjaChlID0+IHtcbiAgICAgICAgICBpZiAoZS50eXBlID09PSAnT1JHQU5JWkFUSU9OJyB8fCBlLnR5cGUgPT09ICdDT0RFU1lTVEVNJykge1xuICAgICAgICAgICAgZGF0YVRvQmVQcm9jZXNzZWRbZS5uYW1lXSA9IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGRhdGFUb0JlUHJvY2Vzc2VkKS5sZW5ndGgpIHtcbiAgICAgICAgICBsZXQgb2JzID0gW107XG4gICAgICAgICAgbmV3VmFsLmZvckVhY2gocm93RGF0YSA9PiB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhyb3dEYXRhKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgIGlmIChkYXRhVG9CZVByb2Nlc3NlZFtrZXldKSB7XG4gICAgICAgICAgICAgICAgb2JzLnB1c2godGhpcy5fZ2V0RGF0YU1ldGEoZGF0YVRvQmVQcm9jZXNzZWRba2V5XSwgcm93RGF0YVtrZXldKS5waXBlKFxuICAgICAgICAgICAgICAgICAgdGFwKG0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobSkge1xuICAgICAgICAgICAgICAgICAgICAgIHJvd0RhdGFba2V5ICsgJ19tZXRhJ10gPSBtO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSByb3dEYXRhW2tleSArICdfbWV0YSddO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBmb3JrSm9pbihvYnMpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl91cGRhdGVBcnJheVZhbHVlKGZjLCBuZXdWYWwpKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlQXJyYXlWYWx1ZShmYywgbmV3VmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUFycmF5VmFsdWUoZmMsIG5ld1ZhbHVlKSB7XG4gICAgZmMuX2VvRm9ybUVsZW1lbnQudmFsdWUgPSBbXS5jb25jYXQobmV3VmFsdWUpO1xuICAgIGZjLnBhdGNoVmFsdWUoW10uY29uY2F0KG5ld1ZhbHVlKSk7XG4gICAgZmMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIGZjLm1hcmtBc0RpcnR5KCk7XG4gIH1cblxuICBwcml2YXRlIFRFTVBfU1RPUkFHRV9FTlRSSUVTX0tFWSA9ICdlby5jbXAub2JqZWN0Zm9ybS50bXBzdG9yYWdlLmVudHJpZXMnO1xuXG4gIC8qKlxuICAgKiBBZGQgYSByZWZlcmVuY2UgdG8gYSB0ZW1wb3JhcnkgbG9jYWxzdG9yYWdlIGVudHJ5IHRoYXQgc2hvdWxkIGJlIGNsZWFyZWQgd2hlbiBhXG4gICAqIG5ldyBicm93c2VyIHNlc3Npb24gc3RhcnRzLiBJbiBjb250ZXh0IG9mIGZvcm1zIHRoaXMgd2lsbCBiZSB1c2VkIHRvIGNsZWFudXAgdGhlXG4gICAqIGxheW91dCBzdGF0ZSBvZiBmb3JtcyAoc2VsZWN0ZWQgdGFicyBldGMuKSB0aGF0IGFyZSBzdG9yZWQgbG9jYWxseSBidXQgc2hvdWxkIG9ubHlcbiAgICogYmUgcGVzaXN0ZWQgZm9yIG9uZSBicm93c2VyIHNlc3Npb24uXG4gICAqIEBwYXJhbSBzdG9yYWdlS2V5IEtleSBvZiB0aGUgbG9jYWxzdG9yYWdlIGl0ZW1cbiAgICovXG4gIGFkZFRlbXBvcmFyeVN0b3JhZ2VFbnRyeShzdG9yYWdlS2V5OiBzdHJpbmcpIHtcbiAgICAvLyBlbnRyaWVzIHdpbGwgdGhlbXNlbHZlcyBiZSBzdG9yZWQgaW4gbG9jYWxzdG9yYWdlIHNvIHdlIGNhbiBjaGVjayBmb3IgZW50cmllc1xuICAgIC8vIHRvIGJlIHJlbW92ZWQgb25jZSB0aGUgYXBwbGljYXRpb24gc3RhcnRzXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuX2dldFRlbXBvcmFyeVN0b3JhZ2VFbnRyaWVzKCk7XG4gICAgaWYoIWN1cnJlbnQuaW5jbHVkZXMoc3RvcmFnZUtleSkpXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5URU1QX1NUT1JBR0VfRU5UUklFU19LRVksIEpTT04uc3RyaW5naWZ5KFsuLi5jdXJyZW50LCBzdG9yYWdlS2V5XSkpXG4gIH1cblxuICBwcml2YXRlIF9jbGVhclRlbXBvcmFyeVN0b3JhZ2VFbnRyaWVzKCkge1xuICAgIHRoaXMuX2dldFRlbXBvcmFyeVN0b3JhZ2VFbnRyaWVzKCkuZm9yRWFjaChlID0+IGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGUpKTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLlRFTVBfU1RPUkFHRV9FTlRSSUVTX0tFWSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUZW1wb3JhcnlTdG9yYWdlRW50cmllcygpOiBzdHJpbmdbXSB7XG4gICAgbGV0IHJlcyA9IFtdO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBlbnRyaWVzOiBzdHJpbmdbXSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5URU1QX1NUT1JBR0VfRU5UUklFU19LRVkpKTtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGVudHJpZXMpKSByZXMgPSBlbnRyaWVzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoZSlcbiAgICB9XG4gICAgY29uc29sZS5kZWJ1ZyhgRm91bmQgJHtyZXMubGVuZ3RofSB0bXAgZW50cmllcyB0byBiZSByZW1vdmVkYCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxufVxuIl19
@@ -27,8 +27,8 @@ import * as i0 from "@angular/core";
27
27
  * Module rendering a dms objects form.
28
28
  */
29
29
  export class ObjectFormModule {
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
31
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormModule, declarations: [ObjectFormComponent,
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
31
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormModule, declarations: [ObjectFormComponent,
32
32
  ObjectFormGroupComponent,
33
33
  ObjectFormEditComponent,
34
34
  FormElementComponent,
@@ -48,7 +48,7 @@ export class ObjectFormModule {
48
48
  YvcDatepickerModule,
49
49
  YvcTabsModule,
50
50
  YvcSplitViewModule], exports: [ObjectFormComponent, ObjectFormGroupComponent, ObjectFormEditComponent, FormElementComponent, FormElementTableComponent] }); }
51
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormModule, providers: [ObjectFormHelperService], imports: [CommonModule,
51
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormModule, providers: [ObjectFormHelperService], imports: [CommonModule,
52
52
  FormsModule,
53
53
  ReactiveFormsModule,
54
54
  UiModule,
@@ -63,7 +63,7 @@ export class ObjectFormModule {
63
63
  YvcTabsModule,
64
64
  YvcSplitViewModule] }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectFormModule, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormModule, decorators: [{
67
67
  type: NgModule,
68
68
  args: [{
69
69
  imports: [
@@ -96,14 +96,14 @@ let ObjectStateDetailsComponent = class ObjectStateDetailsComponent {
96
96
  }
97
97
  ngAfterViewInit() {
98
98
  }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectStateDetailsComponent, deps: [{ token: i1.SelectionService }, { token: i2.ActionService }, { token: i3.AppCacheService }, { token: i3.DmsService }, { token: i3.EventService }, { token: i4.PendingChangesService }], target: i0.ɵɵFactoryTarget.Component }); }
100
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: { plugins: "plugins", context: "context", selectedItem: "selectedItem", seenItems: "seenItems", frontPageData: "frontPageData", visible: "visible" }, outputs: { onTabChange: "onTabChange" }, host: { properties: { "class.visible": "this.visible", "attr.data-type": "this.dataType", "attr.data-id": "this.dataId", "style.height": "this.visibility" } }, viewQueries: [{ propertyName: "eoTabs", first: true, predicate: Tabs, descendants: true }], ngImport: i0, template: "<header class=\"eo-head\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info eo-header__content\">\n <!-- <h2 translate>eo.state.object.frontpage.title</h2> -->\n <h2 class=\"eo-header-title\">{{ title }}</h2>\n <h3 class=\"eo-header-subtitle flex-row\">{{context.title}}</h3>\n <div class=\"sizing\" *ngIf=\"frontPageData\">\n <div translate [translateParams]=\"{doccount: frontPageData?.documentCount.value}\">eo.state.object.frontpage.doccount</div>\n <div translate [translateParams]=\"{filesize: frontPageData?.totalFilesize | fileSize}\">eo.state.object.frontpage.filesize</div>\n </div>\n </div>\n <div class=\"eo-header-actions\"></div>\n </div>\n</header>\n\n<yvc-tabs (tabChange)=\"onTabChange.emit($event)\" layoutSettingsID=\"eo.object.state.details.tabs\">\n <ng-template [yvcTab]=\"{id: 'last-changes', label: 'eo.state.object.frontpage.lastchanges' | translate}\">\n <div class=\"panel last-changes\">\n <div class=\"doc\" *ngFor=\"let doc of frontPageData?.lastModifications\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'last-seen', label: 'eo.state.object.frontpage.lastseen' | translate}\">\n <div class=\"panel last-seen\">\n <div class=\"doc\" *ngFor=\"let doc of seenItems\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified.on | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n\n</yvc-tabs>\n", styles: [":host ::ng-deep{position:relative;background:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;box-sizing:border-box;color:var(--text-color-caption);overflow:hidden}:host ::ng-deep .eo-head{background-color:var(--color-primary-3);color:var(--color-white)}:host ::ng-deep .eo-head h2{display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:calc(var(--app-pane-padding) / 4) 0;font-size:var(--font-title);font-weight:400;line-height:1.1em;margin:0}:host ::ng-deep .eo-body{position:absolute;inset:0;overflow:hidden;top:var(--app-pane-header-height)}:host ::ng-deep .sizing{display:flex;justify-content:space-between;margin-bottom:var(--app-pane-padding)}:host ::ng-deep .doc{margin-bottom:var(--app-pane-padding);padding:0 var(--app-pane-padding);color:var(--text-color-body);cursor:pointer;display:flex;flex-flow:row nowrap;flex-shrink:0}:host ::ng-deep .doc:first-child{margin-top:var(--app-pane-padding)}:host ::ng-deep .doc .marker{width:4px;background:rgba(var(--color-black-rgb),.1);flex:0 0 auto;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host ::ng-deep .doc .content{flex:1 1 auto;margin:0 var(--app-pane-padding)}:host ::ng-deep .doc .date{color:var(--text-color-caption);font-size:var(--font-hint)}:host ::ng-deep .doc .desc{color:var(--text-color-caption)}:host ::ng-deep .doc.selected .marker,:host ::ng-deep .doc:hover .marker{background:var(--color-accent)}:host ::ng-deep>yvc-tabs>header{position:fixed;min-height:auto!important;top:calc(var(--app-bar-height) + 56px);border:none}[dir=ltr] :host ::ng-deep>yvc-tabs>header{right:calc(var(--app-pane-padding) * 1.75)}[dir=rtl] :host ::ng-deep>yvc-tabs>header{left:calc(var(--app-pane-padding) * 1.75)}:host ::ng-deep>yvc-tabs>header .scroll-x{border-bottom:none!important}:host ::ng-deep>yvc-tabs>header .scroll-x nav a{border:1px solid var(--color-primary-3)!important;border-radius:4px;margin:0 4px}:host.visible ::ng-deep>yvc-tabs>header nav a.active{border-color:var(--color-accent)!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.PluginComponent, selector: "eo-plugin", inputs: ["type", "id", "parent"] }, { kind: "component", type: i8.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i8.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.FileSizePipe, name: "fileSize" }, { kind: "pipe", type: i10.LocaleDatePipe, name: "localeDate" }] }); }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectStateDetailsComponent, deps: [{ token: i1.SelectionService }, { token: i2.ActionService }, { token: i3.AppCacheService }, { token: i3.DmsService }, { token: i3.EventService }, { token: i4.PendingChangesService }], target: i0.ɵɵFactoryTarget.Component }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: { plugins: "plugins", context: "context", selectedItem: "selectedItem", seenItems: "seenItems", frontPageData: "frontPageData", visible: "visible" }, outputs: { onTabChange: "onTabChange" }, host: { properties: { "class.visible": "this.visible", "attr.data-type": "this.dataType", "attr.data-id": "this.dataId", "style.height": "this.visibility" } }, viewQueries: [{ propertyName: "eoTabs", first: true, predicate: Tabs, descendants: true }], ngImport: i0, template: "<header class=\"eo-head\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info eo-header__content\">\n <!-- <h2 translate>eo.state.object.frontpage.title</h2> -->\n <h2 class=\"eo-header-title\">{{ title }}</h2>\n <h3 class=\"eo-header-subtitle flex-row\">{{context.title}}</h3>\n <div class=\"sizing\" *ngIf=\"frontPageData\">\n <div translate [translateParams]=\"{doccount: frontPageData?.documentCount.value}\">eo.state.object.frontpage.doccount</div>\n <div translate [translateParams]=\"{filesize: frontPageData?.totalFilesize | fileSize}\">eo.state.object.frontpage.filesize</div>\n </div>\n </div>\n <div class=\"eo-header-actions\"></div>\n </div>\n</header>\n\n<yvc-tabs (tabChange)=\"onTabChange.emit($event)\" layoutSettingsID=\"eo.object.state.details.tabs\">\n <ng-template [yvcTab]=\"{id: 'last-changes', label: 'eo.state.object.frontpage.lastchanges' | translate}\">\n <div class=\"panel last-changes\">\n <div class=\"doc\" *ngFor=\"let doc of frontPageData?.lastModifications\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'last-seen', label: 'eo.state.object.frontpage.lastseen' | translate}\">\n <div class=\"panel last-seen\">\n <div class=\"doc\" *ngFor=\"let doc of seenItems\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified.on | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n\n</yvc-tabs>\n", styles: [":host ::ng-deep{position:relative;background:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;box-sizing:border-box;color:var(--text-color-caption);overflow:hidden}:host ::ng-deep .eo-head{background-color:var(--color-primary-3);color:var(--color-white)}:host ::ng-deep .eo-head h2{display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:calc(var(--app-pane-padding) / 4) 0;font-size:var(--font-title);font-weight:400;line-height:1.1em;margin:0}:host ::ng-deep .eo-body{position:absolute;inset:0;overflow:hidden;top:var(--app-pane-header-height)}:host ::ng-deep .sizing{display:flex;justify-content:space-between;margin-bottom:var(--app-pane-padding)}:host ::ng-deep .doc{margin-bottom:var(--app-pane-padding);padding:0 var(--app-pane-padding);color:var(--text-color-body);cursor:pointer;display:flex;flex-flow:row nowrap;flex-shrink:0}:host ::ng-deep .doc:first-child{margin-top:var(--app-pane-padding)}:host ::ng-deep .doc .marker{width:4px;background:rgba(var(--color-black-rgb),.1);flex:0 0 auto;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host ::ng-deep .doc .content{flex:1 1 auto;margin:0 var(--app-pane-padding)}:host ::ng-deep .doc .date{color:var(--text-color-caption);font-size:var(--font-hint)}:host ::ng-deep .doc .desc{color:var(--text-color-caption)}:host ::ng-deep .doc.selected .marker,:host ::ng-deep .doc:hover .marker{background:var(--color-accent)}:host ::ng-deep>yvc-tabs>header{position:fixed;min-height:auto!important;top:calc(var(--app-bar-height) + 56px);border:none}[dir=ltr] :host ::ng-deep>yvc-tabs>header{right:calc(var(--app-pane-padding) * 1.75)}[dir=rtl] :host ::ng-deep>yvc-tabs>header{left:calc(var(--app-pane-padding) * 1.75)}:host ::ng-deep>yvc-tabs>header .scroll-x{border-bottom:none!important}:host ::ng-deep>yvc-tabs>header .scroll-x nav a{border:1px solid var(--color-primary-3)!important;border-radius:4px;margin:0 4px}:host.visible ::ng-deep>yvc-tabs>header nav a.active{border-color:var(--color-accent)!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.PluginComponent, selector: "eo-plugin", inputs: ["type", "id", "parent"] }, { kind: "component", type: i8.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i8.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.FileSizePipe, name: "fileSize" }, { kind: "pipe", type: i10.LocaleDatePipe, name: "localeDate" }] }); }
101
101
  };
102
102
  ObjectStateDetailsComponent = ObjectStateDetailsComponent_1 = __decorate([
103
103
  UntilDestroy()
104
104
  ], ObjectStateDetailsComponent);
105
105
  export { ObjectStateDetailsComponent };
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ObjectStateDetailsComponent, decorators: [{
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectStateDetailsComponent, decorators: [{
107
107
  type: Component,
108
108
  args: [{ selector: 'eo-object-state-details', template: "<header class=\"eo-head\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info eo-header__content\">\n <!-- <h2 translate>eo.state.object.frontpage.title</h2> -->\n <h2 class=\"eo-header-title\">{{ title }}</h2>\n <h3 class=\"eo-header-subtitle flex-row\">{{context.title}}</h3>\n <div class=\"sizing\" *ngIf=\"frontPageData\">\n <div translate [translateParams]=\"{doccount: frontPageData?.documentCount.value}\">eo.state.object.frontpage.doccount</div>\n <div translate [translateParams]=\"{filesize: frontPageData?.totalFilesize | fileSize}\">eo.state.object.frontpage.filesize</div>\n </div>\n </div>\n <div class=\"eo-header-actions\"></div>\n </div>\n</header>\n\n<yvc-tabs (tabChange)=\"onTabChange.emit($event)\" layoutSettingsID=\"eo.object.state.details.tabs\">\n <ng-template [yvcTab]=\"{id: 'last-changes', label: 'eo.state.object.frontpage.lastchanges' | translate}\">\n <div class=\"panel last-changes\">\n <div class=\"doc\" *ngFor=\"let doc of frontPageData?.lastModifications\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'last-seen', label: 'eo.state.object.frontpage.lastseen' | translate}\">\n <div class=\"panel last-seen\">\n <div class=\"doc\" *ngFor=\"let doc of seenItems\"\n [ngClass]=\"{selected: selectedItem && doc.id === selectedItem.id}\" (click)=\"selectFrontPageDoc(doc, $event)\"\n (contextmenu)=\"onContextMenuClicked($event, doc)\">\n <div class=\"marker\"></div>\n <div class=\"content\">\n <div class=\"date\">{{doc.modified.on | localeDate}}</div>\n <strong>{{doc.title}}</strong>\n <div class=\"desc\">{{doc.description}}</div>\n </div>\n </div>\n </div>\n </ng-template>\n\n <!-- plugin tabs -->\n <ng-template *ngFor=\"let p of plugins\" [yvcTab]=\"{id: p.id, label: p.id | translate}\">\n <eo-plugin [id]=\"p.id\" [parent]=\"this\"></eo-plugin>\n </ng-template>\n\n</yvc-tabs>\n", styles: [":host ::ng-deep{position:relative;background:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;box-sizing:border-box;color:var(--text-color-caption);overflow:hidden}:host ::ng-deep .eo-head{background-color:var(--color-primary-3);color:var(--color-white)}:host ::ng-deep .eo-head h2{display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:calc(var(--app-pane-padding) / 4) 0;font-size:var(--font-title);font-weight:400;line-height:1.1em;margin:0}:host ::ng-deep .eo-body{position:absolute;inset:0;overflow:hidden;top:var(--app-pane-header-height)}:host ::ng-deep .sizing{display:flex;justify-content:space-between;margin-bottom:var(--app-pane-padding)}:host ::ng-deep .doc{margin-bottom:var(--app-pane-padding);padding:0 var(--app-pane-padding);color:var(--text-color-body);cursor:pointer;display:flex;flex-flow:row nowrap;flex-shrink:0}:host ::ng-deep .doc:first-child{margin-top:var(--app-pane-padding)}:host ::ng-deep .doc .marker{width:4px;background:rgba(var(--color-black-rgb),.1);flex:0 0 auto;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host ::ng-deep .doc .content{flex:1 1 auto;margin:0 var(--app-pane-padding)}:host ::ng-deep .doc .date{color:var(--text-color-caption);font-size:var(--font-hint)}:host ::ng-deep .doc .desc{color:var(--text-color-caption)}:host ::ng-deep .doc.selected .marker,:host ::ng-deep .doc:hover .marker{background:var(--color-accent)}:host ::ng-deep>yvc-tabs>header{position:fixed;min-height:auto!important;top:calc(var(--app-bar-height) + 56px);border:none}[dir=ltr] :host ::ng-deep>yvc-tabs>header{right:calc(var(--app-pane-padding) * 1.75)}[dir=rtl] :host ::ng-deep>yvc-tabs>header{left:calc(var(--app-pane-padding) * 1.75)}:host ::ng-deep>yvc-tabs>header .scroll-x{border-bottom:none!important}:host ::ng-deep>yvc-tabs>header .scroll-x nav a{border:1px solid var(--color-primary-3)!important;border-radius:4px;margin:0 4px}:host.visible ::ng-deep>yvc-tabs>header nav a.active{border-color:var(--color-accent)!important}\n"] }]
109
109
  }], ctorParameters: () => [{ type: i1.SelectionService }, { type: i2.ActionService }, { type: i3.AppCacheService }, { type: i3.DmsService }, { type: i3.EventService }, { type: i4.PendingChangesService }], propDecorators: { eoTabs: [{