@alfresco/adf-core 8.1.0-14485353256 → 8.1.0-14489297497

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 (598) hide show
  1. package/api/lib/alfresco-api/alfresco-api.utils.d.ts +1 -1
  2. package/breadcrumbs/styles/_breadcrumb.theme.scss +4 -4
  3. package/custom-theme/material-theme.scss +4 -7
  4. package/custom-theme/theme/custom-theme-palettes.scss +8 -12
  5. package/custom-theme/theme/typography.scss +26 -26
  6. package/feature-flags/lib/providers/debug-feature-flags.provider.d.ts +4 -35
  7. package/fesm2022/adf-core.mjs +938 -956
  8. package/fesm2022/adf-core.mjs.map +1 -1
  9. package/fesm2022/alfresco-adf-core-api.mjs +3 -3
  10. package/fesm2022/alfresco-adf-core-auth.mjs +3 -3
  11. package/fesm2022/alfresco-adf-core-breadcrumbs.mjs +10 -10
  12. package/fesm2022/alfresco-adf-core-breadcrumbs.mjs.map +1 -1
  13. package/fesm2022/alfresco-adf-core-feature-flags.mjs +51 -56
  14. package/fesm2022/alfresco-adf-core-feature-flags.mjs.map +1 -1
  15. package/fesm2022/alfresco-adf-core-shell.mjs +8 -8
  16. package/fesm2022/alfresco-adf-core-shell.mjs.map +1 -1
  17. package/lib/card-view/components/base-card-view.d.ts +1 -1
  18. package/lib/datatable/data/data-table.schema.d.ts +1 -1
  19. package/lib/prebuilt-themes/adf-blue-orange.css +1 -1
  20. package/lib/prebuilt-themes/adf-blue-purple.css +1 -1
  21. package/lib/prebuilt-themes/adf-cyan-orange.css +1 -1
  22. package/lib/prebuilt-themes/adf-cyan-purple.css +1 -1
  23. package/lib/prebuilt-themes/adf-green-orange.css +1 -1
  24. package/lib/prebuilt-themes/adf-green-purple.css +1 -1
  25. package/lib/prebuilt-themes/adf-indigo-pink.css +1 -1
  26. package/lib/prebuilt-themes/adf-pink-bluegrey.css +1 -1
  27. package/lib/prebuilt-themes/adf-purple-green.css +1 -1
  28. package/lib/styles/_components-variables.scss +42 -42
  29. package/lib/styles/_index.scss +57 -57
  30. package/lib/styles/_typography.scss +13 -13
  31. package/lib/styles/prebuilt/adf-blue-orange.scss +7 -6
  32. package/lib/styles/prebuilt/adf-blue-purple.scss +7 -6
  33. package/lib/styles/prebuilt/adf-cyan-orange.scss +7 -6
  34. package/lib/styles/prebuilt/adf-cyan-purple.scss +7 -6
  35. package/lib/styles/prebuilt/adf-green-orange.scss +7 -6
  36. package/lib/styles/prebuilt/adf-green-purple.scss +7 -6
  37. package/lib/styles/prebuilt/adf-indigo-pink.scss +7 -6
  38. package/lib/styles/prebuilt/adf-pink-bluegrey.scss +7 -6
  39. package/lib/styles/prebuilt/adf-purple-green.scss +7 -6
  40. package/package.json +3 -15
  41. package/schematics/migrations/schematics/migrations/7_0_0/index.d.ts +1 -1
  42. package/schematics/migrations/schematics/migrations/7_0_0/index.js +2 -2
  43. package/schematics/migrations/schematics/migrations/7_0_0/index.js.map +1 -1
  44. package/esm2022/adf-core.mjs +0 -5
  45. package/esm2022/api/alfresco-adf-core-api.mjs +0 -5
  46. package/esm2022/api/index.mjs +0 -20
  47. package/esm2022/api/lib/adf-http-client.service.mjs +0 -311
  48. package/esm2022/api/lib/alfresco-api/alfresco-api.param-encoder.mjs +0 -33
  49. package/esm2022/api/lib/alfresco-api/alfresco-api.response-error.mjs +0 -25
  50. package/esm2022/api/lib/alfresco-api/alfresco-api.utils.mjs +0 -80
  51. package/esm2022/api/lib/interfaces.mjs +0 -18
  52. package/esm2022/api/lib/types.mjs +0 -18
  53. package/esm2022/auth/alfresco-adf-core-auth.mjs +0 -5
  54. package/esm2022/auth/authentication-interceptor/authentication.interceptor.mjs +0 -56
  55. package/esm2022/auth/authentication.mjs +0 -19
  56. package/esm2022/auth/index.mjs +0 -19
  57. package/esm2022/breadcrumbs/alfresco-adf-core-breadcrumbs.mjs +0 -5
  58. package/esm2022/breadcrumbs/components/breadcrumb/breadcrumb.component.mjs +0 -83
  59. package/esm2022/breadcrumbs/components/breadcrumb-item/breadcrumb-item.component.mjs +0 -42
  60. package/esm2022/breadcrumbs/directives/breadcrumb-focus.directive.mjs +0 -44
  61. package/esm2022/breadcrumbs/index.mjs +0 -19
  62. package/esm2022/feature-flags/alfresco-adf-core-feature-flags.mjs +0 -5
  63. package/esm2022/feature-flags/index.mjs +0 -29
  64. package/esm2022/feature-flags/lib/components/feature-flags-wrapper.mjs +0 -36
  65. package/esm2022/feature-flags/lib/components/feature-override-indicator.component.mjs +0 -56
  66. package/esm2022/feature-flags/lib/components/flags/flags.component.mjs +0 -130
  67. package/esm2022/feature-flags/lib/directives/features.directive.mjs +0 -63
  68. package/esm2022/feature-flags/lib/directives/not-features.directive.mjs +0 -63
  69. package/esm2022/feature-flags/lib/guards/is-feature-off.guard.mjs +0 -38
  70. package/esm2022/feature-flags/lib/guards/is-feature-on.guard.mjs +0 -38
  71. package/esm2022/feature-flags/lib/guards/is-flags-override-on.guard.mjs +0 -40
  72. package/esm2022/feature-flags/lib/interfaces/features.interface.mjs +0 -24
  73. package/esm2022/feature-flags/lib/mocks/features-service-mock.factory.mjs +0 -62
  74. package/esm2022/feature-flags/lib/providers/debug-feature-flags.provider.mjs +0 -51
  75. package/esm2022/feature-flags/lib/providers/dummy-feature-flags.provider.mjs +0 -36
  76. package/esm2022/feature-flags/lib/services/debug-features.service.mjs +0 -84
  77. package/esm2022/feature-flags/lib/services/dummy-features.service.mjs +0 -40
  78. package/esm2022/feature-flags/lib/services/flagset.parser.mjs +0 -38
  79. package/esm2022/feature-flags/lib/services/qa-features.helper.mjs +0 -62
  80. package/esm2022/feature-flags/lib/services/storage-features.service.mjs +0 -121
  81. package/esm2022/lib/about/about-extension-list/about-extension-list.component.mjs +0 -52
  82. package/esm2022/lib/about/about-license-list/about-license-list.component.mjs +0 -52
  83. package/esm2022/lib/about/about-module-list/module-list.component.mjs +0 -52
  84. package/esm2022/lib/about/about-package/package-list.component.mjs +0 -66
  85. package/esm2022/lib/about/about-panel.directive.mjs +0 -37
  86. package/esm2022/lib/about/about-repository-info/about-repository-info.component.mjs +0 -60
  87. package/esm2022/lib/about/about-repository-info/repository-info.interface.mjs +0 -18
  88. package/esm2022/lib/about/about-server-settings/about-server-settings.component.mjs +0 -43
  89. package/esm2022/lib/about/about-status-list/about-status-list.component.mjs +0 -52
  90. package/esm2022/lib/about/about.component.mjs +0 -35
  91. package/esm2022/lib/about/about.module.mjs +0 -75
  92. package/esm2022/lib/about/index.mjs +0 -18
  93. package/esm2022/lib/about/interfaces.mjs +0 -18
  94. package/esm2022/lib/about/public-api.mjs +0 -28
  95. package/esm2022/lib/app-config/app-config-storage-prefix.factory.mjs +0 -51
  96. package/esm2022/lib/app-config/app-config.loader.mjs +0 -37
  97. package/esm2022/lib/app-config/app-config.module.mjs +0 -33
  98. package/esm2022/lib/app-config/app-config.pipe.mjs +0 -38
  99. package/esm2022/lib/app-config/app-config.service.mjs +0 -243
  100. package/esm2022/lib/app-config/debug-app-config.service.mjs +0 -44
  101. package/esm2022/lib/app-config/index.mjs +0 -18
  102. package/esm2022/lib/app-config/public-api.mjs +0 -22
  103. package/esm2022/lib/auth/authentication-interceptor/auth-bearer.interceptor.mjs +0 -67
  104. package/esm2022/lib/auth/basic-auth/basic-alfresco-auth.service.mjs +0 -356
  105. package/esm2022/lib/auth/basic-auth/content-auth.mjs +0 -189
  106. package/esm2022/lib/auth/basic-auth/process-auth.mjs +0 -193
  107. package/esm2022/lib/auth/guard/auth-guard-bpm.service.mjs +0 -31
  108. package/esm2022/lib/auth/guard/auth-guard-ecm.service.mjs +0 -31
  109. package/esm2022/lib/auth/guard/auth-guard-sso-role.service.mjs +0 -57
  110. package/esm2022/lib/auth/guard/auth-guard.mjs +0 -53
  111. package/esm2022/lib/auth/guard/auth-guard.service.mjs +0 -113
  112. package/esm2022/lib/auth/index.mjs +0 -18
  113. package/esm2022/lib/auth/interfaces/authentication-service.interface.mjs +0 -18
  114. package/esm2022/lib/auth/interfaces/authentication.interface.mjs +0 -18
  115. package/esm2022/lib/auth/interfaces/identity-group.interface.mjs +0 -18
  116. package/esm2022/lib/auth/interfaces/identity-user.service.interface.mjs +0 -18
  117. package/esm2022/lib/auth/interfaces/openid-configuration.interface.mjs +0 -18
  118. package/esm2022/lib/auth/models/application-access.model.mjs +0 -18
  119. package/esm2022/lib/auth/models/identity-group.model.mjs +0 -18
  120. package/esm2022/lib/auth/models/identity-role.model.mjs +0 -30
  121. package/esm2022/lib/auth/models/identity-user.model.mjs +0 -18
  122. package/esm2022/lib/auth/models/oauth-config.model.mjs +0 -18
  123. package/esm2022/lib/auth/models/redirection.model.mjs +0 -28
  124. package/esm2022/lib/auth/models/user-access.model.mjs +0 -18
  125. package/esm2022/lib/auth/oidc/auth-config.mjs +0 -19
  126. package/esm2022/lib/auth/oidc/auth-config.service.mjs +0 -110
  127. package/esm2022/lib/auth/oidc/auth-routing.module.mjs +0 -34
  128. package/esm2022/lib/auth/oidc/auth.module.mjs +0 -112
  129. package/esm2022/lib/auth/oidc/auth.service.mjs +0 -22
  130. package/esm2022/lib/auth/oidc/oidc-auth.guard.mjs +0 -37
  131. package/esm2022/lib/auth/oidc/oidc-authentication.service.mjs +0 -202
  132. package/esm2022/lib/auth/oidc/public-api.mjs +0 -24
  133. package/esm2022/lib/auth/oidc/redirect-auth.service.mjs +0 -267
  134. package/esm2022/lib/auth/oidc/retry-login.service.mjs +0 -66
  135. package/esm2022/lib/auth/oidc/token.interceptor.mjs +0 -62
  136. package/esm2022/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.mjs +0 -31
  137. package/esm2022/lib/auth/public-api.mjs +0 -44
  138. package/esm2022/lib/auth/services/authentication.service.mjs +0 -190
  139. package/esm2022/lib/auth/services/base-authentication.service.mjs +0 -99
  140. package/esm2022/lib/auth/services/identity-group.service.mjs +0 -269
  141. package/esm2022/lib/auth/services/identity-role.service.mjs +0 -99
  142. package/esm2022/lib/auth/services/identity-user.service.mjs +0 -443
  143. package/esm2022/lib/auth/services/jwt-helper.service.mjs +0 -205
  144. package/esm2022/lib/auth/services/oauth2.service.mjs +0 -69
  145. package/esm2022/lib/auth/services/time-sync.service.mjs +0 -83
  146. package/esm2022/lib/auth/services/user-access.service.mjs +0 -110
  147. package/esm2022/lib/avatar/avatar.component.mjs +0 -51
  148. package/esm2022/lib/blank-page/blank-page.component.mjs +0 -31
  149. package/esm2022/lib/blank-page/blank-page.module.mjs +0 -33
  150. package/esm2022/lib/blank-page/index.mjs +0 -18
  151. package/esm2022/lib/blank-page/public-api.mjs +0 -19
  152. package/esm2022/lib/button/button.component.mjs +0 -61
  153. package/esm2022/lib/card-view/card-view.module.mjs +0 -80
  154. package/esm2022/lib/card-view/components/base-card-view.mjs +0 -51
  155. package/esm2022/lib/card-view/components/card-view/card-view.component.mjs +0 -66
  156. package/esm2022/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.mjs +0 -56
  157. package/esm2022/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.mjs +0 -40
  158. package/esm2022/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.mjs +0 -177
  159. package/esm2022/lib/card-view/components/card-view-item-dispatcher/card-view-item-dispatcher.component.mjs +0 -108
  160. package/esm2022/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.mjs +0 -65
  161. package/esm2022/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.mjs +0 -47
  162. package/esm2022/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.mjs +0 -138
  163. package/esm2022/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.mjs +0 -114
  164. package/esm2022/lib/card-view/components/card-view-textitem/card-view-textitem.component.mjs +0 -240
  165. package/esm2022/lib/card-view/components/card-view.components.mjs +0 -28
  166. package/esm2022/lib/card-view/index.mjs +0 -18
  167. package/esm2022/lib/card-view/interfaces/base-card-view-update.interface.mjs +0 -18
  168. package/esm2022/lib/card-view/interfaces/card-view-arrayitem-properties.interface.mjs +0 -18
  169. package/esm2022/lib/card-view/interfaces/card-view-boolitem-properties.interface.mjs +0 -18
  170. package/esm2022/lib/card-view/interfaces/card-view-dateitem-properties.interface.mjs +0 -18
  171. package/esm2022/lib/card-view/interfaces/card-view-item-properties.interface.mjs +0 -18
  172. package/esm2022/lib/card-view/interfaces/card-view-item-validator.interface.mjs +0 -18
  173. package/esm2022/lib/card-view/interfaces/card-view-item.interface.mjs +0 -18
  174. package/esm2022/lib/card-view/interfaces/card-view-keyvaluepairsitem-properties.interface.mjs +0 -18
  175. package/esm2022/lib/card-view/interfaces/card-view-selectitem-properties.interface.mjs +0 -18
  176. package/esm2022/lib/card-view/interfaces/card-view-textitem-pipe-property.interface.mjs +0 -18
  177. package/esm2022/lib/card-view/interfaces/card-view-textitem-properties.interface.mjs +0 -18
  178. package/esm2022/lib/card-view/interfaces/card-view.interfaces.mjs +0 -29
  179. package/esm2022/lib/card-view/interfaces/click-notification.interface.mjs +0 -18
  180. package/esm2022/lib/card-view/interfaces/update-notification.interface.mjs +0 -18
  181. package/esm2022/lib/card-view/models/card-view-arrayitem.model.mjs +0 -28
  182. package/esm2022/lib/card-view/models/card-view-baseitem.model.mjs +0 -64
  183. package/esm2022/lib/card-view/models/card-view-boolitem.model.mjs +0 -36
  184. package/esm2022/lib/card-view/models/card-view-dateitem.model.mjs +0 -58
  185. package/esm2022/lib/card-view/models/card-view-datetimeitem.model.mjs +0 -28
  186. package/esm2022/lib/card-view/models/card-view-floatitem.model.mjs +0 -33
  187. package/esm2022/lib/card-view/models/card-view-intitem.model.mjs +0 -36
  188. package/esm2022/lib/card-view/models/card-view-keyvaluepairs.model.mjs +0 -27
  189. package/esm2022/lib/card-view/models/card-view-longitem.model.mjs +0 -36
  190. package/esm2022/lib/card-view/models/card-view-mapitem.model.mjs +0 -32
  191. package/esm2022/lib/card-view/models/card-view-selectitem.model.mjs +0 -41
  192. package/esm2022/lib/card-view/models/card-view-textitem.model.mjs +0 -40
  193. package/esm2022/lib/card-view/models/card-view.models.mjs +0 -29
  194. package/esm2022/lib/card-view/public-api.mjs +0 -25
  195. package/esm2022/lib/card-view/services/card-item-types.service.mjs +0 -54
  196. package/esm2022/lib/card-view/services/card-view-update.service.mjs +0 -59
  197. package/esm2022/lib/card-view/services/card-view.services.mjs +0 -19
  198. package/esm2022/lib/card-view/validators/card-view-item-float.validator.mjs +0 -31
  199. package/esm2022/lib/card-view/validators/card-view-item-int.validator.mjs +0 -35
  200. package/esm2022/lib/card-view/validators/card-view-item-length.validator.mjs +0 -34
  201. package/esm2022/lib/card-view/validators/card-view-item-long.validator.mjs +0 -35
  202. package/esm2022/lib/card-view/validators/card-view-item-match.validator.mjs +0 -35
  203. package/esm2022/lib/card-view/validators/card-view-item-minmax.validator.mjs +0 -35
  204. package/esm2022/lib/card-view/validators/card-view-item-only-positive-int.validator.mjs +0 -32
  205. package/esm2022/lib/card-view/validators/card-view-item-only-positive-long.validator.mjs +0 -31
  206. package/esm2022/lib/card-view/validators/card-view.validators.mjs +0 -26
  207. package/esm2022/lib/card-view/validators/validators.map.mjs +0 -26
  208. package/esm2022/lib/clipboard/clipboard.directive.mjs +0 -99
  209. package/esm2022/lib/clipboard/clipboard.module.mjs +0 -34
  210. package/esm2022/lib/clipboard/clipboard.service.mjs +0 -103
  211. package/esm2022/lib/clipboard/index.mjs +0 -18
  212. package/esm2022/lib/clipboard/public-api.mjs +0 -21
  213. package/esm2022/lib/comments/comment-list/comment-list.component.mjs +0 -53
  214. package/esm2022/lib/comments/comment-list/comment-list.module.mjs +0 -33
  215. package/esm2022/lib/comments/comment-list/index.mjs +0 -18
  216. package/esm2022/lib/comments/comment-list/public-api.mjs +0 -19
  217. package/esm2022/lib/comments/comments.component.mjs +0 -128
  218. package/esm2022/lib/comments/comments.module.mjs +0 -33
  219. package/esm2022/lib/comments/index.mjs +0 -18
  220. package/esm2022/lib/comments/interfaces/comments-service.interface.mjs +0 -18
  221. package/esm2022/lib/comments/interfaces/comments.token.mjs +0 -19
  222. package/esm2022/lib/comments/public-api.mjs +0 -22
  223. package/esm2022/lib/common/index.mjs +0 -35
  224. package/esm2022/lib/common/interface/search-component.interface.mjs +0 -18
  225. package/esm2022/lib/common/mock/app-config.service.mock.mjs +0 -47
  226. package/esm2022/lib/common/models/default-languages.model.mjs +0 -36
  227. package/esm2022/lib/common/models/log-levels.model.mjs +0 -33
  228. package/esm2022/lib/common/models/user-info-mode.enum.mjs +0 -25
  229. package/esm2022/lib/common/services/cookie.service.mjs +0 -82
  230. package/esm2022/lib/common/services/download.service.mjs +0 -102
  231. package/esm2022/lib/common/services/dynamic-component-mapper.service.mjs +0 -89
  232. package/esm2022/lib/common/services/highlight-transform.service.mjs +0 -61
  233. package/esm2022/lib/common/services/language-item.interface.mjs +0 -18
  234. package/esm2022/lib/common/services/log.service.mjs +0 -171
  235. package/esm2022/lib/common/services/page-title.service.mjs +0 -63
  236. package/esm2022/lib/common/services/sort-by-category.service.mjs +0 -81
  237. package/esm2022/lib/common/services/storage.service.mjs +0 -143
  238. package/esm2022/lib/common/services/thumbnail.service.mjs +0 -194
  239. package/esm2022/lib/common/services/url.service.mjs +0 -45
  240. package/esm2022/lib/common/services/user-preferences.service.mjs +0 -238
  241. package/esm2022/lib/common/utils/date-fns-adapter.mjs +0 -115
  242. package/esm2022/lib/common/utils/date-fns-utils.mjs +0 -222
  243. package/esm2022/lib/common/utils/datetime-fns-adapter.mjs +0 -134
  244. package/esm2022/lib/common/utils/file-utils.mjs +0 -65
  245. package/esm2022/lib/common/utils/index.mjs +0 -18
  246. package/esm2022/lib/common/utils/moment-date-adapter.mjs +0 -202
  247. package/esm2022/lib/common/utils/moment-date-formats.model.mjs +0 -32
  248. package/esm2022/lib/common/utils/object-utils.mjs +0 -107
  249. package/esm2022/lib/common/utils/public-api.mjs +0 -25
  250. package/esm2022/lib/common/utils/string-utils.mjs +0 -45
  251. package/esm2022/lib/context-menu/animations.mjs +0 -33
  252. package/esm2022/lib/context-menu/context-menu-list.component.mjs +0 -92
  253. package/esm2022/lib/context-menu/context-menu-overlay.mjs +0 -25
  254. package/esm2022/lib/context-menu/context-menu-overlay.service.mjs +0 -109
  255. package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -63
  256. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -35
  257. package/esm2022/lib/context-menu/context-menu.tokens.mjs +0 -19
  258. package/esm2022/lib/context-menu/index.mjs +0 -18
  259. package/esm2022/lib/context-menu/interfaces.mjs +0 -18
  260. package/esm2022/lib/context-menu/public-api.mjs +0 -21
  261. package/esm2022/lib/core.module.mjs +0 -314
  262. package/esm2022/lib/datatable/components/amount-cell/amount-cell.component.mjs +0 -45
  263. package/esm2022/lib/datatable/components/boolean-cell/boolean-cell.component.mjs +0 -65
  264. package/esm2022/lib/datatable/components/columns-selector/columns-search-filter.pipe.mjs +0 -55
  265. package/esm2022/lib/datatable/components/columns-selector/columns-selector.component.mjs +0 -114
  266. package/esm2022/lib/datatable/components/data-cell.event.mjs +0 -31
  267. package/esm2022/lib/datatable/components/data-row-action.event.mjs +0 -34
  268. package/esm2022/lib/datatable/components/datatable/datatable.component.mjs +0 -915
  269. package/esm2022/lib/datatable/components/datatable-cell/datatable-cell.component.mjs +0 -126
  270. package/esm2022/lib/datatable/components/datatable-row/datatable-row.component.mjs +0 -98
  271. package/esm2022/lib/datatable/components/date-cell/date-cell.component.mjs +0 -78
  272. package/esm2022/lib/datatable/components/empty-list/empty-list.component.mjs +0 -60
  273. package/esm2022/lib/datatable/components/filesize-cell/filesize-cell.component.mjs +0 -49
  274. package/esm2022/lib/datatable/components/icon-cell/icon-cell.component.mjs +0 -67
  275. package/esm2022/lib/datatable/components/json-cell/json-cell.component.mjs +0 -86
  276. package/esm2022/lib/datatable/components/location-cell/location-cell.component.mjs +0 -69
  277. package/esm2022/lib/datatable/components/mocks/datatable.mock.mjs +0 -153
  278. package/esm2022/lib/datatable/components/number-cell/number-cell.component.mjs +0 -42
  279. package/esm2022/lib/datatable/data/data-column.model.mjs +0 -18
  280. package/esm2022/lib/datatable/data/data-row-event.model.mjs +0 -26
  281. package/esm2022/lib/datatable/data/data-row-update.model.mjs +0 -18
  282. package/esm2022/lib/datatable/data/data-row.model.mjs +0 -18
  283. package/esm2022/lib/datatable/data/data-sorting.model.mjs +0 -24
  284. package/esm2022/lib/datatable/data/data-table.schema.mjs +0 -132
  285. package/esm2022/lib/datatable/data/datatable-adapter.mjs +0 -18
  286. package/esm2022/lib/datatable/data/object-datacolumn.model.mjs +0 -46
  287. package/esm2022/lib/datatable/data/object-datarow.model.mjs +0 -38
  288. package/esm2022/lib/datatable/data/object-datatable-adapter.mjs +0 -134
  289. package/esm2022/lib/datatable/data-column/data-column-header.component.mjs +0 -45
  290. package/esm2022/lib/datatable/data-column/data-column-list.component.mjs +0 -36
  291. package/esm2022/lib/datatable/data-column/data-column.component.mjs +0 -114
  292. package/esm2022/lib/datatable/data-column/index.mjs +0 -18
  293. package/esm2022/lib/datatable/data-column/public-api.mjs +0 -20
  294. package/esm2022/lib/datatable/datatable.module.mjs +0 -161
  295. package/esm2022/lib/datatable/directives/custom-empty-content-template.directive.mjs +0 -35
  296. package/esm2022/lib/datatable/directives/custom-loading-template.directive.mjs +0 -30
  297. package/esm2022/lib/datatable/directives/custom-no-permission-template.directive.mjs +0 -35
  298. package/esm2022/lib/datatable/directives/drop-zone.directive.mjs +0 -89
  299. package/esm2022/lib/datatable/directives/header-filter-template.directive.mjs +0 -43
  300. package/esm2022/lib/datatable/directives/loading-template.directive.mjs +0 -46
  301. package/esm2022/lib/datatable/directives/main-data-table-action-template.directive.mjs +0 -43
  302. package/esm2022/lib/datatable/directives/no-content-template.directive.mjs +0 -46
  303. package/esm2022/lib/datatable/directives/no-permission-template.directive.mjs +0 -46
  304. package/esm2022/lib/datatable/directives/resizable/resizable.directive.mjs +0 -173
  305. package/esm2022/lib/datatable/directives/resizable/resize-handle.directive.mjs +0 -72
  306. package/esm2022/lib/datatable/directives/resizable/types.mjs +0 -18
  307. package/esm2022/lib/datatable/index.mjs +0 -18
  308. package/esm2022/lib/datatable/public-api.mjs +0 -55
  309. package/esm2022/lib/datatable/services/datatable.service.mjs +0 -33
  310. package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.mjs +0 -50
  311. package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.module.mjs +0 -38
  312. package/esm2022/lib/dialogs/dialog/dialog-data.interface.mjs +0 -18
  313. package/esm2022/lib/dialogs/dialog/dialog.component.mjs +0 -71
  314. package/esm2022/lib/dialogs/dialog/dialog.model.mjs +0 -22
  315. package/esm2022/lib/dialogs/dialog/index.mjs +0 -20
  316. package/esm2022/lib/dialogs/edit-json/edit-json.dialog.mjs +0 -51
  317. package/esm2022/lib/dialogs/edit-json/edit-json.dialog.module.mjs +0 -38
  318. package/esm2022/lib/dialogs/index.mjs +0 -18
  319. package/esm2022/lib/dialogs/public-api.mjs +0 -25
  320. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +0 -74
  321. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.model.mjs +0 -18
  322. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +0 -33
  323. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes.guard.mjs +0 -64
  324. package/esm2022/lib/directives/directive.module.mjs +0 -56
  325. package/esm2022/lib/directives/highlight.directive.mjs +0 -67
  326. package/esm2022/lib/directives/index.mjs +0 -18
  327. package/esm2022/lib/directives/infinite-select-scroll.directive.mjs +0 -67
  328. package/esm2022/lib/directives/logout.directive.mjs +0 -72
  329. package/esm2022/lib/directives/public-api.mjs +0 -24
  330. package/esm2022/lib/directives/tooltip-card/tooltip-card.component.mjs +0 -60
  331. package/esm2022/lib/directives/tooltip-card/tooltip-card.directive.mjs +0 -104
  332. package/esm2022/lib/directives/upload.directive.mjs +0 -241
  333. package/esm2022/lib/dynamic-chip-list/chip.mjs +0 -18
  334. package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.component.mjs +0 -205
  335. package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.module.mjs +0 -33
  336. package/esm2022/lib/dynamic-chip-list/index.mjs +0 -18
  337. package/esm2022/lib/dynamic-chip-list/public-api.mjs +0 -20
  338. package/esm2022/lib/events/base-ui.event.mjs +0 -21
  339. package/esm2022/lib/events/base.event.mjs +0 -29
  340. package/esm2022/lib/events/index.mjs +0 -18
  341. package/esm2022/lib/events/public-api.mjs +0 -19
  342. package/esm2022/lib/form/components/form-base.component.mjs +0 -229
  343. package/esm2022/lib/form/components/form-custom-button.directive.mjs +0 -30
  344. package/esm2022/lib/form/components/form-field/form-field.component.mjs +0 -142
  345. package/esm2022/lib/form/components/form-renderer.component.mjs +0 -171
  346. package/esm2022/lib/form/components/form-section/form-section.component.mjs +0 -46
  347. package/esm2022/lib/form/components/inplace-form-input/inplace-form-input.component.mjs +0 -37
  348. package/esm2022/lib/form/components/middlewares/decimal-middleware.service.mjs +0 -48
  349. package/esm2022/lib/form/components/middlewares/middleware.mjs +0 -19
  350. package/esm2022/lib/form/components/widgets/amount/amount.widget.mjs +0 -78
  351. package/esm2022/lib/form/components/widgets/base-viewer/base-viewer.widget.mjs +0 -60
  352. package/esm2022/lib/form/components/widgets/checkbox/checkbox.widget.mjs +0 -53
  353. package/esm2022/lib/form/components/widgets/core/container-column.model.mjs +0 -28
  354. package/esm2022/lib/form/components/widgets/core/container.model.mjs +0 -50
  355. package/esm2022/lib/form/components/widgets/core/content-link.model.mjs +0 -52
  356. package/esm2022/lib/form/components/widgets/core/displayable-cm-properties.model.mjs +0 -18
  357. package/esm2022/lib/form/components/widgets/core/error-message.model.mjs +0 -38
  358. package/esm2022/lib/form/components/widgets/core/external-content-link.mjs +0 -18
  359. package/esm2022/lib/form/components/widgets/core/external-content.mjs +0 -18
  360. package/esm2022/lib/form/components/widgets/core/form-field-file-source.mjs +0 -18
  361. package/esm2022/lib/form/components/widgets/core/form-field-metadata.mjs +0 -18
  362. package/esm2022/lib/form/components/widgets/core/form-field-option.mjs +0 -18
  363. package/esm2022/lib/form/components/widgets/core/form-field-rule.mjs +0 -18
  364. package/esm2022/lib/form/components/widgets/core/form-field-selected-folder.mjs +0 -18
  365. package/esm2022/lib/form/components/widgets/core/form-field-templates.mjs +0 -18
  366. package/esm2022/lib/form/components/widgets/core/form-field-types.mjs +0 -74
  367. package/esm2022/lib/form/components/widgets/core/form-field-utils.mjs +0 -23
  368. package/esm2022/lib/form/components/widgets/core/form-field-validator.mjs +0 -268
  369. package/esm2022/lib/form/components/widgets/core/form-field-variable-options.mjs +0 -18
  370. package/esm2022/lib/form/components/widgets/core/form-field.model.mjs +0 -482
  371. package/esm2022/lib/form/components/widgets/core/form-outcome-event.model.mjs +0 -32
  372. package/esm2022/lib/form/components/widgets/core/form-outcome.model.mjs +0 -38
  373. package/esm2022/lib/form/components/widgets/core/form-values.mjs +0 -18
  374. package/esm2022/lib/form/components/widgets/core/form-variable.model.mjs +0 -18
  375. package/esm2022/lib/form/components/widgets/core/form-widget.model.mjs +0 -33
  376. package/esm2022/lib/form/components/widgets/core/form.model.mjs +0 -384
  377. package/esm2022/lib/form/components/widgets/core/group.model.mjs +0 -18
  378. package/esm2022/lib/form/components/widgets/core/index.mjs +0 -49
  379. package/esm2022/lib/form/components/widgets/core/predefined-theme.mjs +0 -115
  380. package/esm2022/lib/form/components/widgets/core/process-form-model.interface.mjs +0 -18
  381. package/esm2022/lib/form/components/widgets/core/process-variable.model.mjs +0 -18
  382. package/esm2022/lib/form/components/widgets/core/tab.model.mjs +0 -34
  383. package/esm2022/lib/form/components/widgets/core/theme.model.mjs +0 -18
  384. package/esm2022/lib/form/components/widgets/core/upload-widget-content-link.model.mjs +0 -27
  385. package/esm2022/lib/form/components/widgets/core/widget-schema.model.mjs +0 -18
  386. package/esm2022/lib/form/components/widgets/date/date.widget.mjs +0 -163
  387. package/esm2022/lib/form/components/widgets/date-time/date-time.widget.mjs +0 -154
  388. package/esm2022/lib/form/components/widgets/decimal/decimal.component.mjs +0 -54
  389. package/esm2022/lib/form/components/widgets/display-text/display-text.schema.mjs +0 -86
  390. package/esm2022/lib/form/components/widgets/display-text/display-text.widget.mjs +0 -47
  391. package/esm2022/lib/form/components/widgets/display-text/index.mjs +0 -19
  392. package/esm2022/lib/form/components/widgets/error/error.component.mjs +0 -93
  393. package/esm2022/lib/form/components/widgets/header/header.schema.mjs +0 -86
  394. package/esm2022/lib/form/components/widgets/header/header.widget.mjs +0 -43
  395. package/esm2022/lib/form/components/widgets/header/index.mjs +0 -19
  396. package/esm2022/lib/form/components/widgets/hyperlink/hyperlink.widget.mjs +0 -71
  397. package/esm2022/lib/form/components/widgets/index.mjs +0 -71
  398. package/esm2022/lib/form/components/widgets/json/json.widget.mjs +0 -67
  399. package/esm2022/lib/form/components/widgets/multiline-text/multiline-text.widget.mjs +0 -56
  400. package/esm2022/lib/form/components/widgets/number/number.widget.mjs +0 -66
  401. package/esm2022/lib/form/components/widgets/reactive-widget.interface.mjs +0 -18
  402. package/esm2022/lib/form/components/widgets/text/text-mask.component.mjs +0 -215
  403. package/esm2022/lib/form/components/widgets/text/text.widget.mjs +0 -66
  404. package/esm2022/lib/form/components/widgets/unknown/unknown.widget.mjs +0 -63
  405. package/esm2022/lib/form/components/widgets/widget.component.mjs +0 -110
  406. package/esm2022/lib/form/events/form-error.event.mjs +0 -24
  407. package/esm2022/lib/form/events/form-field.event.mjs +0 -24
  408. package/esm2022/lib/form/events/form-rules.event.mjs +0 -25
  409. package/esm2022/lib/form/events/form-spinner.event.mjs +0 -23
  410. package/esm2022/lib/form/events/form.event.mjs +0 -29
  411. package/esm2022/lib/form/events/index.mjs +0 -24
  412. package/esm2022/lib/form/events/validate-form-field.event.mjs +0 -24
  413. package/esm2022/lib/form/events/validate-form.event.mjs +0 -25
  414. package/esm2022/lib/form/form-base.module.mjs +0 -90
  415. package/esm2022/lib/form/index.mjs +0 -18
  416. package/esm2022/lib/form/models/form-rules.model.mjs +0 -77
  417. package/esm2022/lib/form/models/task-process-variable.model.mjs +0 -19
  418. package/esm2022/lib/form/models/widget-visibility.model.mjs +0 -104
  419. package/esm2022/lib/form/pipes/field-style.pipe.mjs +0 -45
  420. package/esm2022/lib/form/pipes/index.mjs +0 -18
  421. package/esm2022/lib/form/public-api.mjs +0 -34
  422. package/esm2022/lib/form/services/form-rendering.service.mjs +0 -53
  423. package/esm2022/lib/form/services/form-validation-service.interface.mjs +0 -18
  424. package/esm2022/lib/form/services/form.service.mjs +0 -86
  425. package/esm2022/lib/form/services/widget-visibility.service.mjs +0 -294
  426. package/esm2022/lib/header/header.component.mjs +0 -73
  427. package/esm2022/lib/header/index.mjs +0 -18
  428. package/esm2022/lib/header/navbar/navbar-item.component.mjs +0 -37
  429. package/esm2022/lib/header/navbar/navbar.component.mjs +0 -36
  430. package/esm2022/lib/header/public-api.mjs +0 -20
  431. package/esm2022/lib/icon/icon.component.mjs +0 -51
  432. package/esm2022/lib/icon/icon.module.mjs +0 -36
  433. package/esm2022/lib/icon/index.mjs +0 -18
  434. package/esm2022/lib/icon/public-api.mjs +0 -19
  435. package/esm2022/lib/identity-user-info/identity-user-info.component.mjs +0 -87
  436. package/esm2022/lib/identity-user-info/identity-user-info.module.mjs +0 -33
  437. package/esm2022/lib/identity-user-info/index.mjs +0 -18
  438. package/esm2022/lib/identity-user-info/public-api.mjs +0 -19
  439. package/esm2022/lib/info-drawer/index.mjs +0 -18
  440. package/esm2022/lib/info-drawer/info-drawer-layout.component.mjs +0 -71
  441. package/esm2022/lib/info-drawer/info-drawer.component.mjs +0 -114
  442. package/esm2022/lib/info-drawer/info-drawer.module.mjs +0 -53
  443. package/esm2022/lib/info-drawer/public-api.mjs +0 -20
  444. package/esm2022/lib/interface/index.mjs +0 -18
  445. package/esm2022/lib/interface/injection.tokens.mjs +0 -19
  446. package/esm2022/lib/interface/public-api.mjs +0 -18
  447. package/esm2022/lib/language-menu/index.mjs +0 -18
  448. package/esm2022/lib/language-menu/language-menu.component.mjs +0 -61
  449. package/esm2022/lib/language-menu/language-menu.module.mjs +0 -35
  450. package/esm2022/lib/language-menu/language-picker.component.mjs +0 -78
  451. package/esm2022/lib/language-menu/public-api.mjs +0 -21
  452. package/esm2022/lib/language-menu/service/language.service.interface.mjs +0 -18
  453. package/esm2022/lib/language-menu/service/language.service.mjs +0 -34
  454. package/esm2022/lib/layout/components/header/header.component.mjs +0 -100
  455. package/esm2022/lib/layout/components/layout-container/layout-container.component.mjs +0 -180
  456. package/esm2022/lib/layout/components/sidebar-action/sidebar-action-menu.component.mjs +0 -82
  457. package/esm2022/lib/layout/components/sidenav-layout/sidenav-layout.component.mjs +0 -145
  458. package/esm2022/lib/layout/directives/sidenav-layout-content.directive.mjs +0 -33
  459. package/esm2022/lib/layout/directives/sidenav-layout-header.directive.mjs +0 -33
  460. package/esm2022/lib/layout/directives/sidenav-layout-navigation.directive.mjs +0 -33
  461. package/esm2022/lib/layout/index.mjs +0 -18
  462. package/esm2022/lib/layout/layout.module.mjs +0 -72
  463. package/esm2022/lib/layout/public-api.mjs +0 -25
  464. package/esm2022/lib/login/components/login/login.component.mjs +0 -368
  465. package/esm2022/lib/login/components/login-dialog/login-dialog-component-data.interface.mjs +0 -18
  466. package/esm2022/lib/login/components/login-dialog/login-dialog.component.mjs +0 -58
  467. package/esm2022/lib/login/components/login-dialog-panel/login-dialog-panel.component.mjs +0 -48
  468. package/esm2022/lib/login/directives/login-footer.directive.mjs +0 -41
  469. package/esm2022/lib/login/directives/login-header.directive.mjs +0 -41
  470. package/esm2022/lib/login/index.mjs +0 -18
  471. package/esm2022/lib/login/login.module.mjs +0 -54
  472. package/esm2022/lib/login/models/login-error.event.mjs +0 -22
  473. package/esm2022/lib/login/models/login-submit.event.mjs +0 -32
  474. package/esm2022/lib/login/models/login-success.event.mjs +0 -24
  475. package/esm2022/lib/login/public-api.mjs +0 -27
  476. package/esm2022/lib/material.module.mjs +0 -254
  477. package/esm2022/lib/mock/cookie.service.mock.mjs +0 -43
  478. package/esm2022/lib/mock/data-column.mock.mjs +0 -73
  479. package/esm2022/lib/mock/event.mock.mjs +0 -39
  480. package/esm2022/lib/mock/form/form-definition-readonly.mock.mjs +0 -225
  481. package/esm2022/lib/mock/form/form-definition-visibility.mock.mjs +0 -347
  482. package/esm2022/lib/mock/form/form-definition.mock.mjs +0 -403
  483. package/esm2022/lib/mock/form/form.component.mock.mjs +0 -275
  484. package/esm2022/lib/mock/form/form.service.mock.mjs +0 -248
  485. package/esm2022/lib/mock/form/widget-visibility.service.mock.mjs +0 -1835
  486. package/esm2022/lib/mock/index.mjs +0 -18
  487. package/esm2022/lib/mock/public-api.mjs +0 -27
  488. package/esm2022/lib/mock/translation.service.mock.mjs +0 -44
  489. package/esm2022/lib/models/comment.model.mjs +0 -51
  490. package/esm2022/lib/models/component.model.mjs +0 -24
  491. package/esm2022/lib/models/decimal-number.model.mjs +0 -26
  492. package/esm2022/lib/models/general-user.model.mjs +0 -24
  493. package/esm2022/lib/models/index.mjs +0 -18
  494. package/esm2022/lib/models/pagination.model.mjs +0 -29
  495. package/esm2022/lib/models/path.model.mjs +0 -24
  496. package/esm2022/lib/models/product-version.model.mjs +0 -28
  497. package/esm2022/lib/models/public-api.mjs +0 -24
  498. package/esm2022/lib/models/request-pagination.model.mjs +0 -25
  499. package/esm2022/lib/notifications/components/add-notification.stories.component.mjs +0 -44
  500. package/esm2022/lib/notifications/components/notification-history.component.mjs +0 -139
  501. package/esm2022/lib/notifications/helpers/notification.factory.mjs +0 -43
  502. package/esm2022/lib/notifications/index.mjs +0 -18
  503. package/esm2022/lib/notifications/models/notification.model.mjs +0 -25
  504. package/esm2022/lib/notifications/notification-history.module.mjs +0 -35
  505. package/esm2022/lib/notifications/public-api.mjs +0 -23
  506. package/esm2022/lib/notifications/services/notification.service.mjs +0 -166
  507. package/esm2022/lib/pagination/index.mjs +0 -18
  508. package/esm2022/lib/pagination/infinite-pagination.component.mjs +0 -112
  509. package/esm2022/lib/pagination/paginated-component.interface.mjs +0 -18
  510. package/esm2022/lib/pagination/pagination-component.interface.mjs +0 -18
  511. package/esm2022/lib/pagination/pagination.component.mjs +0 -263
  512. package/esm2022/lib/pagination/pagination.module.mjs +0 -35
  513. package/esm2022/lib/pagination/public-api.mjs +0 -22
  514. package/esm2022/lib/pipes/date-time.pipe.mjs +0 -46
  515. package/esm2022/lib/pipes/decimal-number.pipe.mjs +0 -78
  516. package/esm2022/lib/pipes/file-size.pipe.mjs +0 -54
  517. package/esm2022/lib/pipes/file-type.pipe.mjs +0 -40
  518. package/esm2022/lib/pipes/format-space.pipe.mjs +0 -39
  519. package/esm2022/lib/pipes/full-name.pipe.mjs +0 -43
  520. package/esm2022/lib/pipes/index.mjs +0 -18
  521. package/esm2022/lib/pipes/localized-date.pipe.mjs +0 -70
  522. package/esm2022/lib/pipes/multi-value.pipe.mjs +0 -37
  523. package/esm2022/lib/pipes/pipe.module.mjs +0 -83
  524. package/esm2022/lib/pipes/public-api.mjs +0 -30
  525. package/esm2022/lib/pipes/text-highlight.pipe.mjs +0 -39
  526. package/esm2022/lib/pipes/time-ago.pipe.mjs +0 -65
  527. package/esm2022/lib/pipes/truncate.pipe.mjs +0 -33
  528. package/esm2022/lib/pipes/user-initial.pipe.mjs +0 -52
  529. package/esm2022/lib/pipes/user-like.interface.mjs +0 -18
  530. package/esm2022/lib/progress/progress.component.mjs +0 -90
  531. package/esm2022/lib/search-text/animations.mjs +0 -32
  532. package/esm2022/lib/search-text/index.mjs +0 -18
  533. package/esm2022/lib/search-text/models/search-text-input.model.mjs +0 -23
  534. package/esm2022/lib/search-text/public-api.mjs +0 -22
  535. package/esm2022/lib/search-text/search-text-input.component.mjs +0 -294
  536. package/esm2022/lib/search-text/search-text-input.module.mjs +0 -35
  537. package/esm2022/lib/search-text/search-trigger.directive.mjs +0 -181
  538. package/esm2022/lib/snackbar-content/index.mjs +0 -18
  539. package/esm2022/lib/snackbar-content/public-api.mjs +0 -20
  540. package/esm2022/lib/snackbar-content/snack-bar-data.mjs +0 -18
  541. package/esm2022/lib/snackbar-content/snackbar-content.component.mjs +0 -48
  542. package/esm2022/lib/snackbar-content/snackbar-content.module.mjs +0 -38
  543. package/esm2022/lib/sorting-picker/index.mjs +0 -18
  544. package/esm2022/lib/sorting-picker/public-api.mjs +0 -18
  545. package/esm2022/lib/sorting-picker/sorting-picker.component.mjs +0 -68
  546. package/esm2022/lib/templates/empty-content/empty-content.component.mjs +0 -44
  547. package/esm2022/lib/templates/error-content/error-content.component.mjs +0 -62
  548. package/esm2022/lib/templates/index.mjs +0 -18
  549. package/esm2022/lib/templates/public-api.mjs +0 -20
  550. package/esm2022/lib/templates/template.module.mjs +0 -38
  551. package/esm2022/lib/testing/core.story.module.mjs +0 -39
  552. package/esm2022/lib/testing/core.testing.module.mjs +0 -35
  553. package/esm2022/lib/testing/index.mjs +0 -22
  554. package/esm2022/lib/testing/noop-auth.module.mjs +0 -80
  555. package/esm2022/lib/testing/noop-translate.module.mjs +0 -61
  556. package/esm2022/lib/testing/unit-testing-utils.mjs +0 -364
  557. package/esm2022/lib/toolbar/index.mjs +0 -18
  558. package/esm2022/lib/toolbar/public-api.mjs +0 -21
  559. package/esm2022/lib/toolbar/toolbar-divider.component.mjs +0 -27
  560. package/esm2022/lib/toolbar/toolbar-title.component.mjs +0 -32
  561. package/esm2022/lib/toolbar/toolbar.component.mjs +0 -40
  562. package/esm2022/lib/toolbar/toolbar.module.mjs +0 -36
  563. package/esm2022/lib/translation/index.mjs +0 -18
  564. package/esm2022/lib/translation/public-api.mjs +0 -19
  565. package/esm2022/lib/translation/translate-loader.service.mjs +0 -148
  566. package/esm2022/lib/translation/translation.service.mjs +0 -148
  567. package/esm2022/lib/viewer/components/download-prompt-dialog/download-prompt-dialog.component.mjs +0 -37
  568. package/esm2022/lib/viewer/components/img-viewer/img-viewer.component.mjs +0 -221
  569. package/esm2022/lib/viewer/components/media-player/media-player.component.mjs +0 -64
  570. package/esm2022/lib/viewer/components/pdf-viewer/pdf-viewer.component.mjs +0 -513
  571. package/esm2022/lib/viewer/components/pdf-viewer-password-dialog/pdf-viewer-password-dialog.mjs +0 -61
  572. package/esm2022/lib/viewer/components/pdf-viewer-thumb/pdf-viewer-thumb.component.mjs +0 -49
  573. package/esm2022/lib/viewer/components/pdf-viewer-thumbnails/pdf-viewer-thumbnails.component.mjs +0 -198
  574. package/esm2022/lib/viewer/components/txt-viewer/txt-viewer.component.mjs +0 -77
  575. package/esm2022/lib/viewer/components/unknown-format/unknown-format.component.mjs +0 -33
  576. package/esm2022/lib/viewer/components/viewer-more-actions.component.mjs +0 -34
  577. package/esm2022/lib/viewer/components/viewer-open-with.component.mjs +0 -34
  578. package/esm2022/lib/viewer/components/viewer-render/viewer-render.component.mjs +0 -211
  579. package/esm2022/lib/viewer/components/viewer-sidebar.component.mjs +0 -46
  580. package/esm2022/lib/viewer/components/viewer-toolbar-actions.component.mjs +0 -34
  581. package/esm2022/lib/viewer/components/viewer-toolbar-custom-actions.component.mjs +0 -34
  582. package/esm2022/lib/viewer/components/viewer-toolbar.component.mjs +0 -34
  583. package/esm2022/lib/viewer/components/viewer.component.mjs +0 -462
  584. package/esm2022/lib/viewer/directives/viewer-extension.directive.mjs +0 -67
  585. package/esm2022/lib/viewer/index.mjs +0 -18
  586. package/esm2022/lib/viewer/models/download-prompt.actions.mjs +0 -23
  587. package/esm2022/lib/viewer/models/viewer.model.mjs +0 -22
  588. package/esm2022/lib/viewer/public-api.mjs +0 -40
  589. package/esm2022/lib/viewer/services/rendering-queue.services.mjs +0 -179
  590. package/esm2022/lib/viewer/services/view-util.service.mjs +0 -149
  591. package/esm2022/lib/viewer/viewer.module.mjs +0 -112
  592. package/esm2022/public-api.mjs +0 -60
  593. package/esm2022/shell/alfresco-adf-core-shell.mjs +0 -5
  594. package/esm2022/shell/index.mjs +0 -20
  595. package/esm2022/shell/lib/components/shell/shell.component.mjs +0 -122
  596. package/esm2022/shell/lib/services/shell-app.service.mjs +0 -22
  597. package/esm2022/shell/lib/shell.module.mjs +0 -79
  598. package/esm2022/shell/lib/shell.routes.mjs +0 -25
@@ -1,482 +0,0 @@
1
- /*!
2
- * @license
3
- * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
- /* eslint-disable @angular-eslint/component-selector */
18
- import { WidgetVisibilityModel } from '../../../models/widget-visibility.model';
19
- import { ContainerColumnModel } from './container-column.model';
20
- import { ErrorMessageModel } from './error-message.model';
21
- import { FormFieldTypes } from './form-field-types';
22
- import { FormWidgetModel } from './form-widget.model';
23
- import { isNumberValue } from './form-field-utils';
24
- import { DateFnsUtils } from '../../../../common';
25
- import { isValid as isValidDate } from 'date-fns';
26
- // Maps to FormFieldRepresentation
27
- export class FormFieldModel extends FormWidgetModel {
28
- get value() {
29
- return this._value;
30
- }
31
- set value(v) {
32
- if (v !== this._value) {
33
- this._value = v;
34
- this.updateForm();
35
- }
36
- }
37
- get readOnly() {
38
- if (this.form?.readOnly) {
39
- return true;
40
- }
41
- return this._readOnly;
42
- }
43
- set readOnly(readOnly) {
44
- this._readOnly = readOnly;
45
- this.updateForm();
46
- }
47
- get required() {
48
- return this._required;
49
- }
50
- set required(value) {
51
- this._required = value;
52
- this.updateForm();
53
- }
54
- get isValid() {
55
- return this._isValid;
56
- }
57
- get hasMultipleValues() {
58
- return this.selectionType === 'multiple' || this.params.multiple;
59
- }
60
- markAsInvalid() {
61
- this._isValid = false;
62
- }
63
- markAsValid() {
64
- this._isValid = true;
65
- }
66
- validate() {
67
- this.validationSummary = new ErrorMessageModel();
68
- if (this.isFieldValidatable()) {
69
- const validators = this.form.fieldValidators || [];
70
- for (const validator of validators) {
71
- if (!validator.validate(this)) {
72
- this._isValid = false;
73
- return this._isValid;
74
- }
75
- }
76
- }
77
- this._isValid = true;
78
- return this._isValid;
79
- }
80
- isFieldValidatable() {
81
- return !this.readOnly || FormFieldTypes.isValidatableType(this.type);
82
- }
83
- constructor(form, json) {
84
- super(form, json);
85
- this._readOnly = false;
86
- this._isValid = true;
87
- this._required = false;
88
- this.defaultDateFormat = 'D-M-YYYY';
89
- this.defaultDateTimeFormat = 'D-M-YYYY hh:mm A';
90
- this.defaultEmptyOptionId = 'empty';
91
- this.defaultEmptyOptionName = 'Choose one...';
92
- this.rowspan = 1;
93
- this.colspan = 1;
94
- this.placeholder = null;
95
- this.tooltip = null;
96
- this.minLength = 0;
97
- this.maxLength = 0;
98
- this.maxDateRangeValue = 0;
99
- this.minDateRangeValue = 0;
100
- this.options = [];
101
- this.params = {};
102
- this.isVisible = true;
103
- this.visibilityCondition = null;
104
- this.enableFractions = false;
105
- this.currency = null;
106
- this.dateDisplayFormat = this.defaultDateFormat;
107
- this.leftLabels = false;
108
- // container model members
109
- this.numberOfColumns = 1;
110
- this.fields = [];
111
- this.columns = [];
112
- if (json) {
113
- this.fieldType = json.fieldType;
114
- this.id = json.id;
115
- this.name = json.name;
116
- this.type = json.type;
117
- this.roles = json.roles;
118
- this._required = json.required;
119
- this._readOnly = json.readOnly || json.type === 'readonly';
120
- this.overrideId = json.overrideId;
121
- this.tab = json.tab;
122
- this.restUrl = json.restUrl;
123
- this.restResponsePath = json.restResponsePath;
124
- this.restIdProperty = json.restIdProperty;
125
- this.restLabelProperty = json.restLabelProperty;
126
- this.colspan = json.colspan;
127
- this.rowspan = json.rowspan;
128
- this.minLength = json.minLength || 0;
129
- this.maxLength = json.maxLength || 0;
130
- this.minValue = json.minValue;
131
- this.maxValue = json.maxValue;
132
- this.minDateRangeValue = json.minDateRangeValue;
133
- this.maxDateRangeValue = json.maxDateRangeValue;
134
- this.dynamicDateRangeSelection = json.dynamicDateRangeSelection;
135
- this.regexPattern = json.regexPattern;
136
- this.options = this.parseOptions(json.options, json.optionType);
137
- this.emptyOption = this.getEmptyOption(this.options);
138
- this.hasEmptyValue = json?.hasEmptyValue ?? !!this.emptyOption;
139
- this.className = json.className;
140
- this.optionType = json.optionType;
141
- this.params = json.params || {};
142
- this.hyperlinkUrl = json.hyperlinkUrl;
143
- this.displayText = json.displayText;
144
- this.visibilityCondition = json.visibilityCondition ? new WidgetVisibilityModel(json.visibilityCondition) : undefined;
145
- this.enableFractions = json.enableFractions;
146
- this.currency = json.currency;
147
- this.dateDisplayFormat = json.dateDisplayFormat || this.getDefaultDateFormat(json);
148
- this.validationSummary = new ErrorMessageModel();
149
- this.tooltip = json.tooltip || '';
150
- this.selectionType = json.selectionType;
151
- this.alignmentType = json.alignmentType;
152
- this.rule = json.rule;
153
- this.selectLoggedUser = json.selectLoggedUser;
154
- this.groupsRestriction = json.groupsRestriction?.groups;
155
- this.variableConfig = json.variableConfig;
156
- this.schemaDefinition = json.schemaDefinition;
157
- this.precision = json.precision;
158
- this.externalProperty = json.externalProperty;
159
- this._value = this.parseValue(json);
160
- this.style = json.style;
161
- if (json.placeholder && json.placeholder !== '' && json.placeholder !== 'null') {
162
- this.placeholder = json.placeholder;
163
- }
164
- if (FormFieldTypes.isReadOnlyType(this.type)) {
165
- if (this.params?.field) {
166
- this.setValueForReadonlyType(form);
167
- }
168
- }
169
- if (FormFieldTypes.isContainerType(this.type) || FormFieldTypes.isSectionType(this.type)) {
170
- this.containerFactory(json, form);
171
- }
172
- }
173
- if (form?.json) {
174
- this.leftLabels = form.json.leftLabels || false;
175
- }
176
- this.updateForm();
177
- }
178
- getEmptyOption(options) {
179
- return options.find((option) => option?.id === this.defaultEmptyOptionId);
180
- }
181
- setValueForReadonlyType(form) {
182
- const value = this.getProcessVariableValue(this.params.field, form);
183
- if (value) {
184
- this.value = value;
185
- }
186
- }
187
- getDefaultDateFormat(jsonField) {
188
- let originalType = jsonField.type;
189
- if (FormFieldTypes.isReadOnlyType(jsonField.type) && jsonField.params?.field) {
190
- originalType = jsonField.params.field.type;
191
- }
192
- return originalType === FormFieldTypes.DATETIME ? this.defaultDateTimeFormat : this.defaultDateFormat;
193
- }
194
- isTypeaheadFieldType(type) {
195
- return type === 'typeahead';
196
- }
197
- getFieldNameWithLabel(name) {
198
- return name + '_LABEL';
199
- }
200
- getProcessVariableValue(field, form) {
201
- let fieldName = field.name;
202
- if (this.isTypeaheadFieldType(field.type)) {
203
- fieldName = this.getFieldNameWithLabel(field.id);
204
- }
205
- return form.getProcessVariableValue(fieldName);
206
- }
207
- containerFactory(json, form) {
208
- const { numberOfColumns = 1, fields = {} } = json;
209
- this.numberOfColumns = numberOfColumns;
210
- this.fields = fields;
211
- this.rowspan = 1;
212
- this.colspan = 1;
213
- Object.keys(fields).forEach((currentField) => {
214
- if (!Object.prototype.hasOwnProperty.call(fields, currentField)) {
215
- return;
216
- }
217
- const col = new ContainerColumnModel();
218
- col.fields = (fields[currentField] || []).map((field) => new FormFieldModel(form, field));
219
- col.rowspan = fields[currentField].length;
220
- if (!FormFieldTypes.isSectionType(this.type)) {
221
- this.updateContainerColspan(col.fields);
222
- }
223
- this.rowspan = Math.max(this.rowspan, col.rowspan);
224
- this.columns.push(col);
225
- });
226
- }
227
- updateContainerColspan(fields) {
228
- fields.forEach((colField) => {
229
- this.colspan = Math.max(this.colspan, colField.colspan);
230
- });
231
- }
232
- parseValue(json) {
233
- const value = Object.prototype.hasOwnProperty.call(json, 'value') && json.value !== undefined ? json.value : null;
234
- /*
235
- This is needed due to Activiti issue related to reading dropdown values as value string
236
- but saving back as object: { id: <id>, name: <name> }
237
- */
238
- if (json.type === FormFieldTypes.DROPDOWN) {
239
- if (this.hasEmptyValue) {
240
- if (!this.emptyOption) {
241
- this.emptyOption = {
242
- id: this.defaultEmptyOptionId,
243
- name: this.defaultEmptyOptionName
244
- };
245
- this.options.unshift(this.emptyOption);
246
- }
247
- const isEmptyValue = !value || [this.emptyOption.id, this.emptyOption.name].includes(value);
248
- if (isEmptyValue) {
249
- return this.emptyOption.id;
250
- }
251
- }
252
- if (this.isValidOption(value)) {
253
- this.addOption({ id: value.id, name: value.name });
254
- return value.id;
255
- }
256
- if (this.hasMultipleValues) {
257
- const validSelectedOptions = (Array.isArray(json.value) ? json.value : []).filter((option) => this.isValidOption(option));
258
- this.addOptions(validSelectedOptions);
259
- return validSelectedOptions;
260
- }
261
- return value;
262
- }
263
- /*
264
- This is needed due to Activiti issue related to reading radio button values as value string
265
- but saving back as object: { id: <id>, name: <name> }
266
- */
267
- if (json.type === FormFieldTypes.RADIO_BUTTONS) {
268
- if (json.value?.options) {
269
- this.options = this.parseValidOptions(json.value.options);
270
- }
271
- // Activiti has a bug with default radio button value where initial selection passed as `name` value
272
- // so try resolving current one with a fallback to first entry via name or id
273
- // TODO: needs to be reported and fixed at Activiti side
274
- const matchingOption = this.options.find((opt) => opt.id === value || opt.name === value || (value && (opt.id === value.id || opt.name === value.name)));
275
- if (matchingOption) {
276
- return matchingOption.id;
277
- }
278
- if (this.isValidOption(value)) {
279
- this.addOption({ id: value.id, name: value.name });
280
- return value.id;
281
- }
282
- return value;
283
- }
284
- if (this.isDateField(json) || this.isDateTimeField(json)) {
285
- if (value) {
286
- let dateValue;
287
- if (isNumberValue(value)) {
288
- dateValue = new Date(value);
289
- }
290
- else {
291
- dateValue = this.isDateTimeField(json)
292
- ? DateFnsUtils.parseDate(value, 'YYYY-MM-DD hh:mm A')
293
- : DateFnsUtils.parseDate(value.split('T')[0], 'YYYY-M-D');
294
- }
295
- if (isValidDate(dateValue)) {
296
- return dateValue;
297
- }
298
- }
299
- return value;
300
- }
301
- if (this.isCheckboxField(json)) {
302
- return json.value === 'true' || json.value === true;
303
- }
304
- return value;
305
- }
306
- updateForm() {
307
- if (!this.form) {
308
- return;
309
- }
310
- switch (this.type) {
311
- case FormFieldTypes.DROPDOWN: {
312
- if (!this.value) {
313
- this.form.values[this.id] = null;
314
- break;
315
- }
316
- /*
317
- This is needed due to Activiti reading dropdown values as string
318
- but saving back as object: { id: <id>, name: <name> }
319
- */
320
- if (Array.isArray(this.value)) {
321
- this.form.values[this.id] = this.value;
322
- break;
323
- }
324
- if (typeof this.value === 'string') {
325
- if (this.value === 'empty' || this.value === '') {
326
- this.form.values[this.id] = null;
327
- break;
328
- }
329
- const matchingOption = this.options.find((opt) => opt.id === this.value);
330
- this.form.values[this.id] = matchingOption || null;
331
- }
332
- break;
333
- }
334
- case FormFieldTypes.RADIO_BUTTONS: {
335
- const radioButton = this.options.find((opt) => opt.id === this.value);
336
- if (this.optionType === 'rest') {
337
- this.form.values[this.id] = radioButton
338
- ? { ...radioButton, options: this.options }
339
- : { id: null, name: null, options: this.options };
340
- }
341
- else {
342
- this.form.values[this.id] = radioButton ? { ...radioButton } : null;
343
- }
344
- break;
345
- }
346
- case FormFieldTypes.UPLOAD: {
347
- this.form.hasUpload = true;
348
- if (this.value && this.value.length > 0) {
349
- this.form.values[this.id] = Array.isArray(this.value) ? this.value.map((elem) => elem.id).join(',') : [this.value];
350
- }
351
- else {
352
- this.form.values[this.id] = null;
353
- }
354
- break;
355
- }
356
- case FormFieldTypes.TYPEAHEAD: {
357
- const typeAheadEntry = this.options.filter((opt) => opt.id === this.value || opt.name === this.value);
358
- if (typeAheadEntry.length > 0) {
359
- this.form.values[this.id] = typeAheadEntry[0];
360
- }
361
- else if (this.options.length > 0) {
362
- this.form.values[this.id] = null;
363
- }
364
- break;
365
- }
366
- case FormFieldTypes.DATE: {
367
- if (typeof this.value === 'string' && this.value === 'today') {
368
- this.value = new Date();
369
- }
370
- let dateValue;
371
- try {
372
- dateValue = DateFnsUtils.parseDate(this.value, this.dateDisplayFormat);
373
- }
374
- catch (e) {
375
- dateValue = new Date('error');
376
- }
377
- if (isValidDate(dateValue)) {
378
- const datePart = DateFnsUtils.formatDate(dateValue, 'yyyy-MM-dd');
379
- this.form.values[this.id] = `${datePart}T00:00:00.000Z`;
380
- }
381
- else {
382
- this.form.values[this.id] = null;
383
- this._value = this.value;
384
- }
385
- break;
386
- }
387
- case FormFieldTypes.DATETIME: {
388
- if (typeof this.value === 'string' && this.value === 'now') {
389
- this.value = new Date();
390
- }
391
- const dateTimeValue = this.value !== null ? DateFnsUtils.getDate(this.value) : null;
392
- if (isValidDate(dateTimeValue)) {
393
- this.form.values[this.id] = dateTimeValue.toISOString();
394
- }
395
- else {
396
- this.form.values[this.id] = null;
397
- this._value = this.value;
398
- }
399
- break;
400
- }
401
- case FormFieldTypes.NUMBER: {
402
- this.form.values[this.id] = this.enableFractions ? parseFloat(this.value) : parseInt(this.value, 10);
403
- break;
404
- }
405
- case FormFieldTypes.AMOUNT: {
406
- this.form.values[this.id] = this.enableFractions ? parseFloat(this.value) : parseInt(this.value, 10);
407
- break;
408
- }
409
- case FormFieldTypes.DECIMAL: {
410
- this.form.values[this.id] = parseFloat(this.value);
411
- break;
412
- }
413
- case FormFieldTypes.BOOLEAN: {
414
- this.form.values[this.id] = this.value !== null && this.value !== undefined ? this.value : false;
415
- break;
416
- }
417
- case FormFieldTypes.PEOPLE: {
418
- this.form.values[this.id] = this.value ? this.value : null;
419
- break;
420
- }
421
- case FormFieldTypes.FUNCTIONAL_GROUP: {
422
- this.form.values[this.id] = this.value ? this.value : null;
423
- break;
424
- }
425
- default:
426
- if (this.shouldUpdateFormValues(this.type)) {
427
- this.form.values[this.id] = this.value;
428
- }
429
- }
430
- this.form.onFormFieldChanged(this);
431
- }
432
- /**
433
- * Check if the field type is invalid, requires a type to be a `container`
434
- *
435
- * @param type field type
436
- * @returns `true` if type is a `container`, otherwise `false`
437
- */
438
- isInvalidFieldType(type) {
439
- return type === 'container';
440
- }
441
- getOptionName() {
442
- const option = this.options.find((opt) => opt.id === this.value);
443
- return option ? option.name : null;
444
- }
445
- hasOptions() {
446
- return this.options?.length > 0;
447
- }
448
- isEmptyValueOption(option) {
449
- return this.hasEmptyValue && option?.id === this.defaultEmptyOptionId;
450
- }
451
- shouldUpdateFormValues(type) {
452
- return !FormFieldTypes.isReadOnlyType(type) && !this.isInvalidFieldType(type) && !FormFieldTypes.isSectionType(type);
453
- }
454
- addOptions(options) {
455
- options.forEach((option) => this.addOption(option));
456
- }
457
- addOption(option) {
458
- const alreadyExists = this.options.find((opt) => opt?.id === option?.id);
459
- if (!alreadyExists) {
460
- this.options.push(option);
461
- }
462
- }
463
- parseValidOptions(options) {
464
- return Array.isArray(options) ? options.filter((option) => this.isValidOption(option)) : [];
465
- }
466
- parseOptions(options, optionType) {
467
- return optionType === 'rest' ? [] : this.parseValidOptions(options);
468
- }
469
- isValidOption(option) {
470
- return typeof option === 'object' && !Array.isArray(option) && option?.id && option?.name;
471
- }
472
- isDateField(json) {
473
- return json.params?.field?.type === FormFieldTypes.DATE || json.type === FormFieldTypes.DATE;
474
- }
475
- isDateTimeField(json) {
476
- return json.params?.field?.type === FormFieldTypes.DATETIME || json.type === FormFieldTypes.DATETIME;
477
- }
478
- isCheckboxField(json) {
479
- return json.params?.field?.type === FormFieldTypes.BOOLEAN || json.type === FormFieldTypes.BOOLEAN;
480
- }
481
- }
482
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvY29yZS9mb3JtLWZpZWxkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFNbEQsa0NBQWtDO0FBQ2xDLE1BQU0sT0FBTyxjQUFlLFNBQVEsZUFBZTtJQW9FL0MsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxDQUFNO1FBQ1osSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FB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QU0sS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLElBQUksQ0FBQztJQUM5RixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQVM7UUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssY0FBYyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDakcsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFTO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLGNBQWMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsUUFBUSxDQUFDO0lBQ3pHLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBUztRQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxjQUFjLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUN2RyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cbmltcG9ydCB7IFdpZGdldFZpc2liaWxpdHlNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy93aWRnZXQtdmlzaWJpbGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBDb250YWluZXJDb2x1bW5Nb2RlbCB9IGZyb20gJy4vY29udGFpbmVyLWNvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VNb2RlbCB9IGZyb20gJy4vZXJyb3ItbWVzc2FnZS5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtRmllbGRNZXRhZGF0YSB9IGZyb20gJy4vZm9ybS1maWVsZC1tZXRhZGF0YSc7XG5pbXBvcnQgeyBGb3JtRmllbGRPcHRpb24gfSBmcm9tICcuL2Zvcm0tZmllbGQtb3B0aW9uJztcbmltcG9ydCB7IEZvcm1GaWVsZFR5cGVzIH0gZnJvbSAnLi9mb3JtLWZpZWxkLXR5cGVzJztcbmltcG9ydCB7IEZvcm1XaWRnZXRNb2RlbCB9IGZyb20gJy4vZm9ybS13aWRnZXQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUZpZWxkUnVsZSB9IGZyb20gJy4vZm9ybS1maWVsZC1ydWxlJztcbmltcG9ydCB7IFByb2Nlc3NGb3JtTW9kZWwgfSBmcm9tICcuL3Byb2Nlc3MtZm9ybS1tb2RlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNOdW1iZXJWYWx1ZSB9IGZyb20gJy4vZm9ybS1maWVsZC11dGlscyc7XG5pbXBvcnQgeyBWYXJpYWJsZUNvbmZpZyB9IGZyb20gJy4vZm9ybS1maWVsZC12YXJpYWJsZS1vcHRpb25zJztcbmltcG9ydCB7IERhdGFDb2x1bW4gfSBmcm9tICcuLi8uLi8uLi8uLi9kYXRhdGFibGUvZGF0YS9kYXRhLWNvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBEYXRlRm5zVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgaXNWYWxpZCBhcyBpc1ZhbGlkRGF0ZSB9IGZyb20gJ2RhdGUtZm5zJztcblxuZXhwb3J0IHR5cGUgRmllbGRPcHRpb25UeXBlID0gJ3Jlc3QnIHwgJ21hbnVhbCcgfCAndmFyaWFibGUnO1xuZXhwb3J0IHR5cGUgRmllbGRTZWxlY3Rpb25UeXBlID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnO1xuZXhwb3J0IHR5cGUgRmllbGRBbGlnbm1lbnRUeXBlID0gJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJztcblxuLy8gTWFwcyB0byBGb3JtRmllbGRSZXByZXNlbnRhdGlvblxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZE1vZGVsIGV4dGVuZHMgRm9ybVdpZGdldE1vZGVsIHtcbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgX3JlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNWYWxpZDogYm9vbGVhbiA9IHRydWU7XG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHJlYWRvbmx5IGRlZmF1bHREYXRlRm9ybWF0OiBzdHJpbmcgPSAnRC1NLVlZWVknO1xuICAgIHJlYWRvbmx5IGRlZmF1bHREYXRlVGltZUZvcm1hdDogc3RyaW5nID0gJ0QtTS1ZWVlZIGhoOm1tIEEnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEVtcHR5T3B0aW9uSWQgPSAnZW1wdHknO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEVtcHR5T3B0aW9uTmFtZSA9ICdDaG9vc2Ugb25lLi4uJztcblxuICAgIC8vIG1vZGVsIG1lbWJlcnNcbiAgICBmaWVsZFR5cGU6IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgb3ZlcnJpZGVJZDogYm9vbGVhbjtcbiAgICB0YWI6IHN0cmluZztcbiAgICByb3dzcGFuOiBudW1iZXIgPSAxO1xuICAgIGNvbHNwYW46IG51bWJlciA9IDE7XG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XG4gICAgdG9vbHRpcDogc3RyaW5nID0gbnVsbDtcbiAgICBtaW5MZW5ndGg6IG51bWJlciA9IDA7XG4gICAgbWF4TGVuZ3RoOiBudW1iZXIgPSAwO1xuICAgIG1pblZhbHVlOiBzdHJpbmc7XG4gICAgbWF4VmFsdWU6IHN0cmluZztcbiAgICBtYXhEYXRlUmFuZ2VWYWx1ZTogbnVtYmVyID0gMDtcbiAgICBtaW5EYXRlUmFuZ2VWYWx1ZTogbnVtYmVyID0gMDtcbiAgICBwcmVjaXNpb246IG51bWJlcjtcbiAgICBkeW5hbWljRGF0ZVJhbmdlU2VsZWN0aW9uOiBib29sZWFuO1xuICAgIHJlZ2V4UGF0dGVybjogc3RyaW5nO1xuICAgIG9wdGlvbnM6IEZvcm1GaWVsZE9wdGlvbltdID0gW107XG4gICAgcmVzdFVybDogc3RyaW5nO1xuICAgIHJvbGVzOiBzdHJpbmdbXTtcbiAgICByZXN0UmVzcG9uc2VQYXRoOiBzdHJpbmc7XG4gICAgcmVzdElkUHJvcGVydHk6IHN0cmluZztcbiAgICByZXN0TGFiZWxQcm9wZXJ0eTogc3RyaW5nO1xuICAgIGhhc0VtcHR5VmFsdWU6IGJvb2xlYW47XG4gICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgb3B0aW9uVHlwZTogRmllbGRPcHRpb25UeXBlO1xuICAgIHBhcmFtczogRm9ybUZpZWxkTWV0YWRhdGEgPSB7fTtcbiAgICBoeXBlcmxpbmtVcmw6IHN0cmluZztcbiAgICBkaXNwbGF5VGV4dDogc3RyaW5nO1xuICAgIGlzVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XG4gICAgdmlzaWJpbGl0eUNvbmRpdGlvbjogV2lkZ2V0VmlzaWJpbGl0eU1vZGVsID0gbnVsbDtcbiAgICBlbmFibGVGcmFjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBjdXJyZW5jeTogc3RyaW5nID0gbnVsbDtcbiAgICBkYXRlRGlzcGxheUZvcm1hdDogc3RyaW5nID0gdGhpcy5kZWZhdWx0RGF0ZUZvcm1hdDtcbiAgICBzZWxlY3Rpb25UeXBlOiBGaWVsZFNlbGVjdGlvblR5cGU7XG4gICAgYWxpZ25tZW50VHlwZTogRmllbGRBbGlnbm1lbnRUeXBlO1xuICAgIHJ1bGU/OiBGb3JtRmllbGRSdWxlO1xuICAgIHNlbGVjdExvZ2dlZFVzZXI6IGJvb2xlYW47XG4gICAgZ3JvdXBzUmVzdHJpY3Rpb246IHN0cmluZ1tdO1xuICAgIGxlZnRMYWJlbHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB2YXJpYWJsZUNvbmZpZzogVmFyaWFibGVDb25maWc7XG4gICAgc2NoZW1hRGVmaW5pdGlvbjogRGF0YUNvbHVtbltdO1xuICAgIGV4dGVybmFsUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgc3R5bGU/OiBzdHJpbmc7XG5cbiAgICAvLyBjb250YWluZXIgbW9kZWwgbWVtYmVyc1xuICAgIG51bWJlck9mQ29sdW1uczogbnVtYmVyID0gMTtcbiAgICBmaWVsZHM6IEZvcm1GaWVsZE1vZGVsW10gPSBbXTtcbiAgICBjb2x1bW5zOiBDb250YWluZXJDb2x1bW5Nb2RlbFtdID0gW107XG5cbiAgICAvLyB1dGlsIG1lbWJlcnNcbiAgICBlbXB0eU9wdGlvbjogRm9ybUZpZWxkT3B0aW9uO1xuICAgIHZhbGlkYXRpb25TdW1tYXJ5OiBFcnJvck1lc3NhZ2VNb2RlbDtcblxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgICAgICBpZiAodiAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRm9ybSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5mb3JtPy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRPbmx5O1xuICAgIH1cblxuICAgIHNldCByZWFkT25seShyZWFkT25seTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9yZWFkT25seSA9IHJlYWRPbmx5O1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgICB9XG5cbiAgICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZhbGlkO1xuICAgIH1cblxuICAgIGdldCBoYXNNdWx0aXBsZVZhbHVlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ211bHRpcGxlJyB8fCB0aGlzLnBhcmFtcy5tdWx0aXBsZTtcbiAgICB9XG5cbiAgICBtYXJrQXNJbnZhbGlkKCkge1xuICAgICAgICB0aGlzLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgbWFya0FzVmFsaWQoKSB7XG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25TdW1tYXJ5ID0gbmV3IEVycm9yTWVzc2FnZU1vZGVsKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNGaWVsZFZhbGlkYXRhYmxlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmZvcm0uZmllbGRWYWxpZGF0b3JzIHx8IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWxpZGF0b3Igb2YgdmFsaWRhdG9ycykge1xuICAgICAgICAgICAgICAgIGlmICghdmFsaWRhdG9yLnZhbGlkYXRlKHRoaXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWYWxpZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmllbGRWYWxpZGF0YWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5IHx8IEZvcm1GaWVsZFR5cGVzLmlzVmFsaWRhdGFibGVUeXBlKHRoaXMudHlwZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoZm9ybTogYW55LCBqc29uPzogYW55KSB7XG4gICAgICAgIHN1cGVyKGZvcm0sIGpzb24pO1xuICAgICAgICBpZiAoanNvbikge1xuICAgICAgICAgICAgdGhpcy5maWVsZFR5cGUgPSBqc29uLmZpZWxkVHlwZTtcbiAgICAgICAgICAgIHRoaXMuaWQgPSBqc29uLmlkO1xuICAgICAgICAgICAgdGhpcy5uYW1lID0ganNvbi5uYW1lO1xuICAgICAgICAgICAgdGhpcy50eXBlID0ganNvbi50eXBlO1xuICAgICAgICAgICAgdGhpcy5yb2xlcyA9IGpzb24ucm9sZXM7XG4gICAgICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IGpzb24ucmVxdWlyZWQ7XG4gICAgICAgICAgICB0aGlzLl9yZWFkT25seSA9IGpzb24ucmVhZE9ubHkgfHwganNvbi50eXBlID09PSAncmVhZG9ubHknO1xuICAgICAgICAgICAgdGhpcy5vdmVycmlkZUlkID0ganNvbi5vdmVycmlkZUlkO1xuICAgICAgICAgICAgdGhpcy50YWIgPSBqc29uLnRhYjtcbiAgICAgICAgICAgIHRoaXMucmVzdFVybCA9IGpzb24ucmVzdFVybDtcbiAgICAgICAgICAgIHRoaXMucmVzdFJlc3BvbnNlUGF0aCA9IGpzb24ucmVzdFJlc3BvbnNlUGF0aDtcbiAgICAgICAgICAgIHRoaXMucmVzdElkUHJvcGVydHkgPSBqc29uLnJlc3RJZFByb3BlcnR5O1xuICAgICAgICAgICAgdGhpcy5yZXN0TGFiZWxQcm9wZXJ0eSA9IGpzb24ucmVzdExhYmVsUHJvcGVydHk7XG4gICAgICAgICAgICB0aGlzLmNvbHNwYW4gPSBqc29uLmNvbHNwYW47XG4gICAgICAgICAgICB0aGlzLnJvd3NwYW4gPSBqc29uLnJvd3NwYW47XG4gICAgICAgICAgICB0aGlzLm1pbkxlbmd0aCA9IGpzb24ubWluTGVuZ3RoIHx8IDA7XG4gICAgICAgICAgICB0aGlzLm1heExlbmd0aCA9IGpzb24ubWF4TGVuZ3RoIHx8IDA7XG4gICAgICAgICAgICB0aGlzLm1pblZhbHVlID0ganNvbi5taW5WYWx1ZTtcbiAgICAgICAgICAgIHRoaXMubWF4VmFsdWUgPSBqc29uLm1heFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5taW5EYXRlUmFuZ2VWYWx1ZSA9IGpzb24ubWluRGF0ZVJhbmdlVmFsdWU7XG4gICAgICAgICAgICB0aGlzLm1heERhdGVSYW5nZVZhbHVlID0ganNvbi5tYXhEYXRlUmFuZ2VWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0RhdGVSYW5nZVNlbGVjdGlvbiA9IGpzb24uZHluYW1pY0RhdGVSYW5nZVNlbGVjdGlvbjtcbiAgICAgICAgICAgIHRoaXMucmVnZXhQYXR0ZXJuID0ganNvbi5yZWdleFBhdHRlcm47XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLnBhcnNlT3B0aW9ucyhqc29uLm9wdGlvbnMsIGpzb24ub3B0aW9uVHlwZSk7XG4gICAgICAgICAgICB0aGlzLmVtcHR5T3B0aW9uID0gdGhpcy5nZXRFbXB0eU9wdGlvbih0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5oYXNFbXB0eVZhbHVlID0ganNvbj8uaGFzRW1wdHlWYWx1ZSA/PyAhIXRoaXMuZW1wdHlPcHRpb247XG4gICAgICAgICAgICB0aGlzLmNsYXNzTmFtZSA9IGpzb24uY2xhc3NOYW1lO1xuICAgICAgICAgICAgdGhpcy5vcHRpb25UeXBlID0ganNvbi5vcHRpb25UeXBlO1xuICAgICAgICAgICAgdGhpcy5wYXJhbXMgPSBqc29uLnBhcmFtcyB8fCB7fTtcbiAgICAgICAgICAgIHRoaXMuaHlwZXJsaW5rVXJsID0ganNvbi5oeXBlcmxpbmtVcmw7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlUZXh0ID0ganNvbi5kaXNwbGF5VGV4dDtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eUNvbmRpdGlvbiA9IGpzb24udmlzaWJpbGl0eUNvbmRpdGlvbiA/IG5ldyBXaWRnZXRWaXNpYmlsaXR5TW9kZWwoanNvbi52aXNpYmlsaXR5Q29uZGl0aW9uKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlRnJhY3Rpb25zID0ganNvbi5lbmFibGVGcmFjdGlvbnM7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5ID0ganNvbi5jdXJyZW5jeTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZURpc3BsYXlGb3JtYXQgPSBqc29uLmRhdGVEaXNwbGF5Rm9ybWF0IHx8IHRoaXMuZ2V0RGVmYXVsdERhdGVGb3JtYXQoanNvbik7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TdW1tYXJ5ID0gbmV3IEVycm9yTWVzc2FnZU1vZGVsKCk7XG4gICAgICAgICAgICB0aGlzLnRvb2x0aXAgPSBqc29uLnRvb2x0aXAgfHwgJyc7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblR5cGUgPSBqc29uLnNlbGVjdGlvblR5cGU7XG4gICAgICAgICAgICB0aGlzLmFsaWdubWVudFR5cGUgPSBqc29uLmFsaWdubWVudFR5cGU7XG4gICAgICAgICAgICB0aGlzLnJ1bGUgPSBqc29uLnJ1bGU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdExvZ2dlZFVzZXIgPSBqc29uLnNlbGVjdExvZ2dlZFVzZXI7XG4gICAgICAgICAgICB0aGlzLmdyb3Vwc1Jlc3RyaWN0aW9uID0ganNvbi5ncm91cHNSZXN0cmljdGlvbj8uZ3JvdXBzO1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZUNvbmZpZyA9IGpzb24udmFyaWFibGVDb25maWc7XG4gICAgICAgICAgICB0aGlzLnNjaGVtYURlZmluaXRpb24gPSBqc29uLnNjaGVtYURlZmluaXRpb247XG4gICAgICAgICAgICB0aGlzLnByZWNpc2lvbiA9IGpzb24ucHJlY2lzaW9uO1xuICAgICAgICAgICAgdGhpcy5leHRlcm5hbFByb3BlcnR5ID0ganNvbi5leHRlcm5hbFByb3BlcnR5O1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLnBhcnNlVmFsdWUoanNvbik7XG4gICAgICAgICAgICB0aGlzLnN0eWxlID0ganNvbi5zdHlsZTtcblxuICAgICAgICAgICAgaWYgKGpzb24ucGxhY2Vob2xkZXIgJiYganNvbi5wbGFjZWhvbGRlciAhPT0gJycgJiYganNvbi5wbGFjZWhvbGRlciAhPT0gJ251bGwnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGpzb24ucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChGb3JtRmllbGRUeXBlcy5pc1JlYWRPbmx5VHlwZSh0aGlzLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyYW1zPy5maWVsZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlRm9yUmVhZG9ubHlUeXBlKGZvcm0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKEZvcm1GaWVsZFR5cGVzLmlzQ29udGFpbmVyVHlwZSh0aGlzLnR5cGUpIHx8IEZvcm1GaWVsZFR5cGVzLmlzU2VjdGlvblR5cGUodGhpcy50eXBlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyRmFjdG9yeShqc29uLCBmb3JtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmb3JtPy5qc29uKSB7XG4gICAgICAgICAgICB0aGlzLmxlZnRMYWJlbHMgPSBmb3JtLmpzb24ubGVmdExhYmVscyB8fCBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlRm9ybSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RW1wdHlPcHRpb24ob3B0aW9uczogRm9ybUZpZWxkT3B0aW9uW10pOiBGb3JtRmllbGRPcHRpb24ge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbj8uaWQgPT09IHRoaXMuZGVmYXVsdEVtcHR5T3B0aW9uSWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVGb3JSZWFkb25seVR5cGUoZm9ybTogYW55KSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRQcm9jZXNzVmFyaWFibGVWYWx1ZSh0aGlzLnBhcmFtcy5maWVsZCwgZm9ybSk7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0RGF0ZUZvcm1hdChqc29uRmllbGQ6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBvcmlnaW5hbFR5cGUgPSBqc29uRmllbGQudHlwZTtcbiAgICAgICAgaWYgKEZvcm1GaWVsZFR5cGVzLmlzUmVhZE9ubHlUeXBlKGpzb25GaWVsZC50eXBlKSAmJiBqc29uRmllbGQucGFyYW1zPy5maWVsZCkge1xuICAgICAgICAgICAgb3JpZ2luYWxUeXBlID0ganNvbkZpZWxkLnBhcmFtcy5maWVsZC50eXBlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcmlnaW5hbFR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLkRBVEVUSU1FID8gdGhpcy5kZWZhdWx0RGF0ZVRpbWVGb3JtYXQgOiB0aGlzLmRlZmF1bHREYXRlRm9ybWF0O1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNUeXBlYWhlYWRGaWVsZFR5cGUodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlID09PSAndHlwZWFoZWFkJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpZWxkTmFtZVdpdGhMYWJlbChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbmFtZSArICdfTEFCRUwnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJvY2Vzc1ZhcmlhYmxlVmFsdWUoZmllbGQ6IGFueSwgZm9ybTogUHJvY2Vzc0Zvcm1Nb2RlbCk6IGFueSB7XG4gICAgICAgIGxldCBmaWVsZE5hbWUgPSBmaWVsZC5uYW1lO1xuICAgICAgICBpZiAodGhpcy5pc1R5cGVhaGVhZEZpZWxkVHlwZShmaWVsZC50eXBlKSkge1xuICAgICAgICAgICAgZmllbGROYW1lID0gdGhpcy5nZXRGaWVsZE5hbWVXaXRoTGFiZWwoZmllbGQuaWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JtLmdldFByb2Nlc3NWYXJpYWJsZVZhbHVlKGZpZWxkTmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb250YWluZXJGYWN0b3J5KGpzb246IGFueSwgZm9ybTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgbnVtYmVyT2ZDb2x1bW5zID0gMSwgZmllbGRzID0ge30gfSA9IGpzb247XG4gICAgICAgIHRoaXMubnVtYmVyT2ZDb2x1bW5zID0gbnVtYmVyT2ZDb2x1bW5zO1xuICAgICAgICB0aGlzLmZpZWxkcyA9IGZpZWxkcztcbiAgICAgICAgdGhpcy5yb3dzcGFuID0gMTtcbiAgICAgICAgdGhpcy5jb2xzcGFuID0gMTtcblxuICAgICAgICBPYmplY3Qua2V5cyhmaWVsZHMpLmZvckVhY2goKGN1cnJlbnRGaWVsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZmllbGRzLCBjdXJyZW50RmllbGQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb2wgPSBuZXcgQ29udGFpbmVyQ29sdW1uTW9kZWwoKTtcbiAgICAgICAgICAgIGNvbC5maWVsZHMgPSAoZmllbGRzW2N1cnJlbnRGaWVsZF0gfHwgW10pLm1hcCgoZmllbGQ6IGFueSkgPT4gbmV3IEZvcm1GaWVsZE1vZGVsKGZvcm0sIGZpZWxkKSk7XG4gICAgICAgICAgICBjb2wucm93c3BhbiA9IGZpZWxkc1tjdXJyZW50RmllbGRdLmxlbmd0aDtcblxuICAgICAgICAgICAgaWYgKCFGb3JtRmllbGRUeXBlcy5pc1NlY3Rpb25UeXBlKHRoaXMudHlwZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRhaW5lckNvbHNwYW4oY29sLmZpZWxkcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucm93c3BhbiA9IE1hdGgubWF4KHRoaXMucm93c3BhbiwgY29sLnJvd3NwYW4pO1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zLnB1c2goY29sKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDb250YWluZXJDb2xzcGFuKGZpZWxkczogRm9ybUZpZWxkTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBmaWVsZHMuZm9yRWFjaCgoY29sRmllbGQ6IEZvcm1GaWVsZE1vZGVsKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbHNwYW4gPSBNYXRoLm1heCh0aGlzLmNvbHNwYW4sIGNvbEZpZWxkLmNvbHNwYW4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwYXJzZVZhbHVlKGpzb246IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGpzb24sICd2YWx1ZScpICYmIGpzb24udmFsdWUgIT09IHVuZGVmaW5lZCA/IGpzb24udmFsdWUgOiBudWxsO1xuXG4gICAgICAgIC8qXG4gICAgICAgICBUaGlzIGlzIG5lZWRlZCBkdWUgdG8gQWN0aXZpdGkgaXNzdWUgcmVsYXRlZCB0byByZWFkaW5nIGRyb3Bkb3duIHZhbHVlcyBhcyB2YWx1ZSBzdHJpbmdcbiAgICAgICAgIGJ1dCBzYXZpbmcgYmFjayBhcyBvYmplY3Q6IHsgaWQ6IDxpZD4sIG5hbWU6IDxuYW1lPiB9XG4gICAgICAgICAqL1xuICAgICAgICBpZiAoanNvbi50eXBlID09PSBGb3JtRmllbGRUeXBlcy5EUk9QRE9XTikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzRW1wdHlWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbXB0eU9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtcHR5T3B0aW9uID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMuZGVmYXVsdEVtcHR5T3B0aW9uSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmRlZmF1bHRFbXB0eU9wdGlvbk5hbWVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnVuc2hpZnQodGhpcy5lbXB0eU9wdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgaXNFbXB0eVZhbHVlID0gIXZhbHVlIHx8IFt0aGlzLmVtcHR5T3B0aW9uLmlkLCB0aGlzLmVtcHR5T3B0aW9uLm5hbWVdLmluY2x1ZGVzKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVtcHR5T3B0aW9uLmlkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZE9wdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZE9wdGlvbih7IGlkOiB2YWx1ZS5pZCwgbmFtZTogdmFsdWUubmFtZSB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc011bHRpcGxlVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsaWRTZWxlY3RlZE9wdGlvbnMgPSAoQXJyYXkuaXNBcnJheShqc29uLnZhbHVlKSA/IGpzb24udmFsdWUgOiBbXSkuZmlsdGVyKChvcHRpb24pID0+IHRoaXMuaXNWYWxpZE9wdGlvbihvcHRpb24pKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuYWRkT3B0aW9ucyh2YWxpZFNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkU2VsZWN0ZWRPcHRpb25zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAgVGhpcyBpcyBuZWVkZWQgZHVlIHRvIEFjdGl2aXRpIGlzc3VlIHJlbGF0ZWQgdG8gcmVhZGluZyByYWRpbyBidXR0b24gdmFsdWVzIGFzIHZhbHVlIHN0cmluZ1xuICAgICAgICAgYnV0IHNhdmluZyBiYWNrIGFzIG9iamVjdDogeyBpZDogPGlkPiwgbmFtZTogPG5hbWU+IH1cbiAgICAgICAgICovXG4gICAgICAgIGlmIChqc29uLnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLlJBRElPX0JVVFRPTlMpIHtcbiAgICAgICAgICAgIGlmIChqc29uLnZhbHVlPy5vcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5wYXJzZVZhbGlkT3B0aW9ucyhqc29uLnZhbHVlLm9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBY3Rpdml0aSBoYXMgYSBidWcgd2l0aCBkZWZhdWx0IHJhZGlvIGJ1dHRvbiB2YWx1ZSB3aGVyZSBpbml0aWFsIHNlbGVjdGlvbiBwYXNzZWQgYXMgYG5hbWVgIHZhbHVlXG4gICAgICAgICAgICAvLyBzbyB0cnkgcmVzb2x2aW5nIGN1cnJlbnQgb25lIHdpdGggYSBmYWxsYmFjayB0byBmaXJzdCBlbnRyeSB2aWEgbmFtZSBvciBpZFxuICAgICAgICAgICAgLy8gVE9ETzogbmVlZHMgdG8gYmUgcmVwb3J0ZWQgYW5kIGZpeGVkIGF0IEFjdGl2aXRpIHNpZGVcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgKG9wdCkgPT4gb3B0LmlkID09PSB2YWx1ZSB8fCBvcHQubmFtZSA9PT0gdmFsdWUgfHwgKHZhbHVlICYmIChvcHQuaWQgPT09IHZhbHVlLmlkIHx8IG9wdC5uYW1lID09PSB2YWx1ZS5uYW1lKSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChtYXRjaGluZ09wdGlvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGluZ09wdGlvbi5pZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZE9wdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZE9wdGlvbih7IGlkOiB2YWx1ZS5pZCwgbmFtZTogdmFsdWUubmFtZSB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRGF0ZUZpZWxkKGpzb24pIHx8IHRoaXMuaXNEYXRlVGltZUZpZWxkKGpzb24pKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBsZXQgZGF0ZVZhbHVlOiBEYXRlO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzTnVtYmVyVmFsdWUodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVWYWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkYXRlVmFsdWUgPSB0aGlzLmlzRGF0ZVRpbWVGaWVsZChqc29uKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBEYXRlRm5zVXRpbHMucGFyc2VEYXRlKHZhbHVlLCAnWVlZWS1NTS1ERCBoaDptbSBBJylcbiAgICAgICAgICAgICAgICAgICAgICAgIDogRGF0ZUZuc1V0aWxzLnBhcnNlRGF0ZSh2YWx1ZS5zcGxpdCgnVCcpWzBdLCAnWVlZWS1NLUQnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZERhdGUoZGF0ZVZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZVZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNDaGVja2JveEZpZWxkKGpzb24pKSB7XG4gICAgICAgICAgICByZXR1cm4ganNvbi52YWx1ZSA9PT0gJ3RydWUnIHx8IGpzb24udmFsdWUgPT09IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgdXBkYXRlRm9ybSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLkRST1BET1dOOiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICBUaGlzIGlzIG5lZWRlZCBkdWUgdG8gQWN0aXZpdGkgcmVhZGluZyBkcm9wZG93biB2YWx1ZXMgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgIGJ1dCBzYXZpbmcgYmFjayBhcyBvYmplY3Q6IHsgaWQ6IDxpZD4sIG5hbWU6IDxuYW1lPiB9XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlc1t0aGlzLmlkXSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09ICdlbXB0eScgfHwgdGhpcy52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ09wdGlvbjogRm9ybUZpZWxkT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoKG9wdCkgPT4gb3B0LmlkID09PSB0aGlzLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gbWF0Y2hpbmdPcHRpb24gfHwgbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLlJBRElPX0JVVFRPTlM6IHtcbiAgICAgICAgICAgICAgICBjb25zdCByYWRpb0J1dHRvbjogRm9ybUZpZWxkT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoKG9wdCkgPT4gb3B0LmlkID09PSB0aGlzLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvblR5cGUgPT09ICdyZXN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgID8geyAuLi5yYWRpb0J1dHRvbiwgb3B0aW9uczogdGhpcy5vcHRpb25zIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDogeyBpZDogbnVsbCwgbmFtZTogbnVsbCwgb3B0aW9uczogdGhpcy5vcHRpb25zIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlc1t0aGlzLmlkXSA9IHJhZGlvQnV0dG9uID8geyAuLi5yYWRpb0J1dHRvbiB9IDogbnVsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgRm9ybUZpZWxkVHlwZXMuVVBMT0FEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmhhc1VwbG9hZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZS5tYXAoKGVsZW0pID0+IGVsZW0uaWQpLmpvaW4oJywnKSA6IFt0aGlzLnZhbHVlXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLlRZUEVBSEVBRDoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVBaGVhZEVudHJ5OiBGb3JtRmllbGRPcHRpb25bXSA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKG9wdCkgPT4gb3B0LmlkID09PSB0aGlzLnZhbHVlIHx8IG9wdC5uYW1lID09PSB0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZUFoZWFkRW50cnkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gdHlwZUFoZWFkRW50cnlbMF07XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLkRBVEU6IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMudmFsdWUgPT09ICd0b2RheScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGRhdGVWYWx1ZTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlVmFsdWUgPSBEYXRlRm5zVXRpbHMucGFyc2VEYXRlKHRoaXMudmFsdWUsIHRoaXMuZGF0ZURpc3BsYXlGb3JtYXQpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVZhbHVlID0gbmV3IERhdGUoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWREYXRlKGRhdGVWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZVBhcnQgPSBEYXRlRm5zVXRpbHMuZm9ybWF0RGF0ZShkYXRlVmFsdWUsICd5eXl5LU1NLWRkJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSBgJHtkYXRlUGFydH1UMDA6MDA6MDAuMDAwWmA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlc1t0aGlzLmlkXSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLkRBVEVUSU1FOiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLnZhbHVlID09PSAnbm93Jykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlVGltZVZhbHVlID0gdGhpcy52YWx1ZSAhPT0gbnVsbCA/IERhdGVGbnNVdGlscy5nZXREYXRlKHRoaXMudmFsdWUpIDogbnVsbDtcblxuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRGF0ZShkYXRlVGltZVZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gZGF0ZVRpbWVWYWx1ZS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBGb3JtRmllbGRUeXBlcy5OVU1CRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gdGhpcy5lbmFibGVGcmFjdGlvbnMgPyBwYXJzZUZsb2F0KHRoaXMudmFsdWUpIDogcGFyc2VJbnQodGhpcy52YWx1ZSwgMTApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBGb3JtRmllbGRUeXBlcy5BTU9VTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gdGhpcy5lbmFibGVGcmFjdGlvbnMgPyBwYXJzZUZsb2F0KHRoaXMudmFsdWUpIDogcGFyc2VJbnQodGhpcy52YWx1ZSwgMTApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBGb3JtRmllbGRUeXBlcy5ERUNJTUFMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlc1t0aGlzLmlkXSA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLkJPT0xFQU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gdGhpcy52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQgPyB0aGlzLnZhbHVlIDogZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLlBFT1BMRToge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLkZVTkNUSU9OQUxfR1JPVVA6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaG91bGRVcGRhdGVGb3JtVmFsdWVzKHRoaXMudHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlc1t0aGlzLmlkXSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb3JtLm9uRm9ybUZpZWxkQ2hhbmdlZCh0aGlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgZmllbGQgdHlwZSBpcyBpbnZhbGlkLCByZXF1aXJlcyBhIHR5cGUgdG8gYmUgYSBgY29udGFpbmVyYFxuICAgICAqXG4gICAgICogQHBhcmFtIHR5cGUgZmllbGQgdHlwZVxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0eXBlIGlzIGEgYGNvbnRhaW5lcmAsIG90aGVyd2lzZSBgZmFsc2VgXG4gICAgICovXG4gICAgaXNJbnZhbGlkRmllbGRUeXBlKHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZSA9PT0gJ2NvbnRhaW5lcic7XG4gICAgfVxuXG4gICAgZ2V0T3B0aW9uTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBvcHRpb246IEZvcm1GaWVsZE9wdGlvbiA9IHRoaXMub3B0aW9ucy5maW5kKChvcHQpID0+IG9wdC5pZCA9PT0gdGhpcy52YWx1ZSk7XG4gICAgICAgIHJldHVybiBvcHRpb24gPyBvcHRpb24ubmFtZSA6IG51bGw7XG4gICAgfVxuXG4gICAgaGFzT3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucz8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBpc0VtcHR5VmFsdWVPcHRpb24ob3B0aW9uOiBGb3JtRmllbGRPcHRpb24pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzRW1wdHlWYWx1ZSAmJiBvcHRpb24/LmlkID09PSB0aGlzLmRlZmF1bHRFbXB0eU9wdGlvbklkO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvdWxkVXBkYXRlRm9ybVZhbHVlcyh0eXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhRm9ybUZpZWxkVHlwZXMuaXNSZWFkT25seVR5cGUodHlwZSkgJiYgIXRoaXMuaXNJbnZhbGlkRmllbGRUeXBlKHR5cGUpICYmICFGb3JtRmllbGRUeXBlcy5pc1NlY3Rpb25UeXBlKHR5cGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkT3B0aW9ucyhvcHRpb25zOiBGb3JtRmllbGRPcHRpb25bXSkge1xuICAgICAgICBvcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4gdGhpcy5hZGRPcHRpb24ob3B0aW9uKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRPcHRpb24ob3B0aW9uOiBGb3JtRmllbGRPcHRpb24pIHtcbiAgICAgICAgY29uc3QgYWxyZWFkeUV4aXN0cyA9IHRoaXMub3B0aW9ucy5maW5kKChvcHQpID0+IG9wdD8uaWQgPT09IG9wdGlvbj8uaWQpO1xuICAgICAgICBpZiAoIWFscmVhZHlFeGlzdHMpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5wdXNoKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlVmFsaWRPcHRpb25zKG9wdGlvbnM6IGFueSk6IEZvcm1GaWVsZE9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3B0aW9ucykgPyBvcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiB0aGlzLmlzVmFsaWRPcHRpb24ob3B0aW9uKSkgOiBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlT3B0aW9ucyhvcHRpb25zOiBhbnksIG9wdGlvblR5cGU6IEZpZWxkT3B0aW9uVHlwZSk6IEZvcm1GaWVsZE9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvblR5cGUgPT09ICdyZXN0JyA/IFtdIDogdGhpcy5wYXJzZVZhbGlkT3B0aW9ucyhvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRPcHRpb24ob3B0aW9uOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KG9wdGlvbikgJiYgb3B0aW9uPy5pZCAmJiBvcHRpb24/Lm5hbWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0RhdGVGaWVsZChqc29uOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGpzb24ucGFyYW1zPy5maWVsZD8udHlwZSA9PT0gRm9ybUZpZWxkVHlwZXMuREFURSB8fCBqc29uLnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLkRBVEU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0RhdGVUaW1lRmllbGQoanNvbjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBqc29uLnBhcmFtcz8uZmllbGQ/LnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLkRBVEVUSU1FIHx8IGpzb24udHlwZSA9PT0gRm9ybUZpZWxkVHlwZXMuREFURVRJTUU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0NoZWNrYm94RmllbGQoanNvbjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBqc29uLnBhcmFtcz8uZmllbGQ/LnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLkJPT0xFQU4gfHwganNvbi50eXBlID09PSBGb3JtRmllbGRUeXBlcy5CT09MRUFOO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,32 +0,0 @@
1
- /*!
2
- * @license
3
- * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
- export class FormOutcomeEvent {
18
- get outcome() {
19
- return this._outcome;
20
- }
21
- get defaultPrevented() {
22
- return this._defaultPrevented;
23
- }
24
- constructor(outcome) {
25
- this._defaultPrevented = false;
26
- this._outcome = outcome;
27
- }
28
- preventDefault() {
29
- this._defaultPrevented = true;
30
- }
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1vdXRjb21lLWV2ZW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9jb3JlL2Zvcm0tb3V0Y29tZS1ldmVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFNSCxNQUFNLE9BQU8sZ0JBQWdCO0lBSXpCLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVksT0FBeUI7UUFWN0Isc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBV3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgRm9ybU91dGNvbWVNb2RlbCB9IGZyb20gJy4vZm9ybS1vdXRjb21lLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEZvcm1PdXRjb21lRXZlbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX291dGNvbWU6IEZvcm1PdXRjb21lTW9kZWw7XG4gICAgcHJpdmF0ZSBfZGVmYXVsdFByZXZlbnRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZ2V0IG91dGNvbWUoKTogRm9ybU91dGNvbWVNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdXRjb21lO1xuICAgIH1cblxuICAgIGdldCBkZWZhdWx0UHJldmVudGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmYXVsdFByZXZlbnRlZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihvdXRjb21lOiBGb3JtT3V0Y29tZU1vZGVsKSB7XG4gICAgICAgIHRoaXMuX291dGNvbWUgPSBvdXRjb21lO1xuICAgIH1cblxuICAgIHByZXZlbnREZWZhdWx0KCkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0UHJldmVudGVkID0gdHJ1ZTtcbiAgICB9XG59XG4iXX0=