@alfresco/adf-core 8.1.0-16500060130 → 8.1.0-16877609768

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 (613) hide show
  1. package/bundles/assets/adf-core/i18n/de.json +1 -1
  2. package/bundles/assets/adf-core/i18n/es.json +1 -1
  3. package/bundles/assets/adf-core/i18n/fr.json +1 -1
  4. package/bundles/assets/adf-core/i18n/it.json +1 -1
  5. package/bundles/assets/adf-core/i18n/pl.json +1 -1
  6. package/bundles/assets/adf-core/i18n/pt.json +1 -1
  7. package/feature-flags/lib/providers/debug-feature-flags.provider.d.ts +4 -35
  8. package/fesm2022/adf-core.mjs +1065 -1255
  9. package/fesm2022/adf-core.mjs.map +1 -1
  10. package/fesm2022/alfresco-adf-core-api.mjs +4 -4
  11. package/fesm2022/alfresco-adf-core-api.mjs.map +1 -1
  12. package/fesm2022/alfresco-adf-core-auth.mjs +3 -3
  13. package/fesm2022/alfresco-adf-core-auth.mjs.map +1 -1
  14. package/fesm2022/alfresco-adf-core-breadcrumbs.mjs +11 -11
  15. package/fesm2022/alfresco-adf-core-breadcrumbs.mjs.map +1 -1
  16. package/fesm2022/alfresco-adf-core-feature-flags.mjs +52 -59
  17. package/fesm2022/alfresco-adf-core-feature-flags.mjs.map +1 -1
  18. package/fesm2022/alfresco-adf-core-shell.mjs +68 -14
  19. package/fesm2022/alfresco-adf-core-shell.mjs.map +1 -1
  20. package/lib/app-config/provide-app-config.d.ts +2 -2
  21. package/lib/auth/basic-auth/basic-alfresco-auth.service.d.ts +0 -13
  22. package/lib/auth/interfaces/authentication-service.interface.d.ts +4 -9
  23. package/lib/auth/oidc/auth.module.d.ts +4 -4
  24. package/lib/auth/oidc/oidc-authentication.service.d.ts +5 -15
  25. package/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.d.ts +1 -1
  26. package/lib/auth/services/authentication.service.d.ts +2 -12
  27. package/lib/auth/services/base-authentication.service.d.ts +1 -5
  28. package/lib/card-view/components/base-card-view.d.ts +1 -1
  29. package/lib/card-view/components/card-view/card-view.component.scss +12 -9
  30. package/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.scss +1 -2
  31. package/lib/card-view/components/card-view-textitem/card-view-textitem.component.scss +2 -5
  32. package/lib/datatable/data/data-table.schema.d.ts +1 -1
  33. package/lib/dialogs/confirm-dialog/confirm.dialog.d.ts +1 -1
  34. package/lib/dialogs/confirm-dialog/confirm.dialog.module.d.ts +2 -6
  35. package/lib/form/components/form-base.component.d.ts +7 -19
  36. package/lib/form/components/form-renderer.component.scss +5 -4
  37. package/lib/form/components/widgets/amount/amount.widget.scss +8 -0
  38. package/lib/form/components/widgets/core/form-outcome.model.d.ts +3 -3
  39. package/lib/form/components/widgets/core/form.model.d.ts +4 -4
  40. package/lib/form/components/widgets/text/text-mask.component.d.ts +0 -1
  41. package/lib/testing/unit-testing-utils.d.ts +0 -1
  42. package/lib/viewer/components/viewer.component.d.ts +2 -5
  43. package/lib/viewer/components/viewer.component.scss +0 -12
  44. package/package.json +3 -15
  45. package/public-api.d.ts +0 -1
  46. package/shell/README.md +13 -3
  47. package/shell/index.d.ts +1 -0
  48. package/shell/lib/providers.d.ts +36 -0
  49. package/shell/lib/shell.module.d.ts +1 -1
  50. package/esm2022/adf-core.mjs +0 -5
  51. package/esm2022/api/alfresco-adf-core-api.mjs +0 -5
  52. package/esm2022/api/index.mjs +0 -20
  53. package/esm2022/api/lib/adf-http-client.service.mjs +0 -311
  54. package/esm2022/api/lib/alfresco-api/alfresco-api.param-encoder.mjs +0 -33
  55. package/esm2022/api/lib/alfresco-api/alfresco-api.response-error.mjs +0 -25
  56. package/esm2022/api/lib/alfresco-api/alfresco-api.utils.mjs +0 -80
  57. package/esm2022/api/lib/interfaces.mjs +0 -18
  58. package/esm2022/api/lib/types.mjs +0 -18
  59. package/esm2022/auth/alfresco-adf-core-auth.mjs +0 -5
  60. package/esm2022/auth/authentication-interceptor/authentication.interceptor.mjs +0 -56
  61. package/esm2022/auth/authentication.mjs +0 -19
  62. package/esm2022/auth/index.mjs +0 -19
  63. package/esm2022/breadcrumbs/alfresco-adf-core-breadcrumbs.mjs +0 -5
  64. package/esm2022/breadcrumbs/components/breadcrumb/breadcrumb.component.mjs +0 -82
  65. package/esm2022/breadcrumbs/components/breadcrumb-item/breadcrumb-item.component.mjs +0 -42
  66. package/esm2022/breadcrumbs/directives/breadcrumb-focus.directive.mjs +0 -44
  67. package/esm2022/breadcrumbs/index.mjs +0 -19
  68. package/esm2022/feature-flags/alfresco-adf-core-feature-flags.mjs +0 -5
  69. package/esm2022/feature-flags/index.mjs +0 -29
  70. package/esm2022/feature-flags/lib/components/feature-flags-wrapper.mjs +0 -36
  71. package/esm2022/feature-flags/lib/components/feature-override-indicator.component.mjs +0 -56
  72. package/esm2022/feature-flags/lib/components/flags/flags.component.mjs +0 -129
  73. package/esm2022/feature-flags/lib/directives/features.directive.mjs +0 -63
  74. package/esm2022/feature-flags/lib/directives/not-features.directive.mjs +0 -63
  75. package/esm2022/feature-flags/lib/guards/is-feature-off.guard.mjs +0 -38
  76. package/esm2022/feature-flags/lib/guards/is-feature-on.guard.mjs +0 -38
  77. package/esm2022/feature-flags/lib/guards/is-flags-override-on.guard.mjs +0 -40
  78. package/esm2022/feature-flags/lib/interfaces/features.interface.mjs +0 -24
  79. package/esm2022/feature-flags/lib/mocks/features-service-mock.factory.mjs +0 -62
  80. package/esm2022/feature-flags/lib/providers/debug-feature-flags.provider.mjs +0 -51
  81. package/esm2022/feature-flags/lib/providers/dummy-feature-flags.provider.mjs +0 -36
  82. package/esm2022/feature-flags/lib/services/debug-features.service.mjs +0 -94
  83. package/esm2022/feature-flags/lib/services/dummy-features.service.mjs +0 -40
  84. package/esm2022/feature-flags/lib/services/flagset.parser.mjs +0 -38
  85. package/esm2022/feature-flags/lib/services/qa-features.helper.mjs +0 -62
  86. package/esm2022/feature-flags/lib/services/storage-features.service.mjs +0 -126
  87. package/esm2022/lib/about/about-extension-list/about-extension-list.component.mjs +0 -51
  88. package/esm2022/lib/about/about-license-list/about-license-list.component.mjs +0 -51
  89. package/esm2022/lib/about/about-module-list/module-list.component.mjs +0 -51
  90. package/esm2022/lib/about/about-package/package-list.component.mjs +0 -65
  91. package/esm2022/lib/about/about-panel.directive.mjs +0 -37
  92. package/esm2022/lib/about/about-repository-info/about-repository-info.component.mjs +0 -59
  93. package/esm2022/lib/about/about-repository-info/repository-info.interface.mjs +0 -18
  94. package/esm2022/lib/about/about-server-settings/about-server-settings.component.mjs +0 -42
  95. package/esm2022/lib/about/about-status-list/about-status-list.component.mjs +0 -51
  96. package/esm2022/lib/about/about.component.mjs +0 -35
  97. package/esm2022/lib/about/about.module.mjs +0 -75
  98. package/esm2022/lib/about/index.mjs +0 -18
  99. package/esm2022/lib/about/interfaces.mjs +0 -18
  100. package/esm2022/lib/about/public-api.mjs +0 -28
  101. package/esm2022/lib/app-config/app-config-storage-prefix.factory.mjs +0 -51
  102. package/esm2022/lib/app-config/app-config.loader.mjs +0 -41
  103. package/esm2022/lib/app-config/app-config.module.mjs +0 -33
  104. package/esm2022/lib/app-config/app-config.pipe.mjs +0 -38
  105. package/esm2022/lib/app-config/app-config.service.mjs +0 -243
  106. package/esm2022/lib/app-config/debug-app-config.service.mjs +0 -44
  107. package/esm2022/lib/app-config/index.mjs +0 -18
  108. package/esm2022/lib/app-config/provide-app-config.mjs +0 -44
  109. package/esm2022/lib/app-config/public-api.mjs +0 -23
  110. package/esm2022/lib/auth/authentication-interceptor/auth-bearer.interceptor.mjs +0 -67
  111. package/esm2022/lib/auth/basic-auth/basic-alfresco-auth.service.mjs +0 -369
  112. package/esm2022/lib/auth/basic-auth/content-auth.mjs +0 -189
  113. package/esm2022/lib/auth/basic-auth/process-auth.mjs +0 -193
  114. package/esm2022/lib/auth/guard/auth-guard-bpm.service.mjs +0 -31
  115. package/esm2022/lib/auth/guard/auth-guard-ecm.service.mjs +0 -31
  116. package/esm2022/lib/auth/guard/auth-guard-sso-role.service.mjs +0 -57
  117. package/esm2022/lib/auth/guard/auth-guard.mjs +0 -53
  118. package/esm2022/lib/auth/guard/auth-guard.service.mjs +0 -113
  119. package/esm2022/lib/auth/index.mjs +0 -18
  120. package/esm2022/lib/auth/interfaces/authentication-service.interface.mjs +0 -18
  121. package/esm2022/lib/auth/interfaces/authentication.interface.mjs +0 -18
  122. package/esm2022/lib/auth/interfaces/identity-group.interface.mjs +0 -18
  123. package/esm2022/lib/auth/interfaces/identity-user.service.interface.mjs +0 -18
  124. package/esm2022/lib/auth/interfaces/openid-configuration.interface.mjs +0 -18
  125. package/esm2022/lib/auth/models/application-access.model.mjs +0 -18
  126. package/esm2022/lib/auth/models/identity-group.model.mjs +0 -18
  127. package/esm2022/lib/auth/models/identity-role.model.mjs +0 -30
  128. package/esm2022/lib/auth/models/identity-user.model.mjs +0 -18
  129. package/esm2022/lib/auth/models/oauth-config.model.mjs +0 -18
  130. package/esm2022/lib/auth/models/redirection.model.mjs +0 -28
  131. package/esm2022/lib/auth/models/user-access.model.mjs +0 -18
  132. package/esm2022/lib/auth/oidc/auth-config.mjs +0 -19
  133. package/esm2022/lib/auth/oidc/auth-config.service.mjs +0 -110
  134. package/esm2022/lib/auth/oidc/auth-routing.module.mjs +0 -34
  135. package/esm2022/lib/auth/oidc/auth.module.mjs +0 -112
  136. package/esm2022/lib/auth/oidc/auth.service.mjs +0 -22
  137. package/esm2022/lib/auth/oidc/oidc-auth.guard.mjs +0 -37
  138. package/esm2022/lib/auth/oidc/oidc-authentication.service.mjs +0 -204
  139. package/esm2022/lib/auth/oidc/public-api.mjs +0 -24
  140. package/esm2022/lib/auth/oidc/redirect-auth.service.mjs +0 -267
  141. package/esm2022/lib/auth/oidc/retry-login.service.mjs +0 -66
  142. package/esm2022/lib/auth/oidc/token.interceptor.mjs +0 -62
  143. package/esm2022/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.mjs +0 -31
  144. package/esm2022/lib/auth/public-api.mjs +0 -44
  145. package/esm2022/lib/auth/services/authentication.service.mjs +0 -190
  146. package/esm2022/lib/auth/services/base-authentication.service.mjs +0 -95
  147. package/esm2022/lib/auth/services/identity-group.service.mjs +0 -269
  148. package/esm2022/lib/auth/services/identity-role.service.mjs +0 -99
  149. package/esm2022/lib/auth/services/identity-user.service.mjs +0 -443
  150. package/esm2022/lib/auth/services/jwt-helper.service.mjs +0 -205
  151. package/esm2022/lib/auth/services/oauth2.service.mjs +0 -69
  152. package/esm2022/lib/auth/services/time-sync.service.mjs +0 -83
  153. package/esm2022/lib/auth/services/user-access.service.mjs +0 -110
  154. package/esm2022/lib/avatar/avatar.component.mjs +0 -51
  155. package/esm2022/lib/blank-page/blank-page.component.mjs +0 -31
  156. package/esm2022/lib/blank-page/blank-page.module.mjs +0 -33
  157. package/esm2022/lib/blank-page/index.mjs +0 -18
  158. package/esm2022/lib/blank-page/public-api.mjs +0 -19
  159. package/esm2022/lib/button/button.component.mjs +0 -61
  160. package/esm2022/lib/card-view/card-view.module.mjs +0 -80
  161. package/esm2022/lib/card-view/components/base-card-view.mjs +0 -51
  162. package/esm2022/lib/card-view/components/card-view/card-view.component.mjs +0 -66
  163. package/esm2022/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.mjs +0 -55
  164. package/esm2022/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.mjs +0 -39
  165. package/esm2022/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.mjs +0 -182
  166. package/esm2022/lib/card-view/components/card-view-item-dispatcher/card-view-item-dispatcher.component.mjs +0 -108
  167. package/esm2022/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.mjs +0 -64
  168. package/esm2022/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.mjs +0 -46
  169. package/esm2022/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.mjs +0 -137
  170. package/esm2022/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.mjs +0 -113
  171. package/esm2022/lib/card-view/components/card-view-textitem/card-view-textitem.component.mjs +0 -239
  172. package/esm2022/lib/card-view/components/card-view.components.mjs +0 -28
  173. package/esm2022/lib/card-view/index.mjs +0 -18
  174. package/esm2022/lib/card-view/interfaces/base-card-view-update.interface.mjs +0 -18
  175. package/esm2022/lib/card-view/interfaces/card-view-arrayitem-properties.interface.mjs +0 -18
  176. package/esm2022/lib/card-view/interfaces/card-view-boolitem-properties.interface.mjs +0 -18
  177. package/esm2022/lib/card-view/interfaces/card-view-dateitem-properties.interface.mjs +0 -18
  178. package/esm2022/lib/card-view/interfaces/card-view-item-properties.interface.mjs +0 -18
  179. package/esm2022/lib/card-view/interfaces/card-view-item-validator.interface.mjs +0 -18
  180. package/esm2022/lib/card-view/interfaces/card-view-item.interface.mjs +0 -18
  181. package/esm2022/lib/card-view/interfaces/card-view-keyvaluepairsitem-properties.interface.mjs +0 -18
  182. package/esm2022/lib/card-view/interfaces/card-view-selectitem-properties.interface.mjs +0 -18
  183. package/esm2022/lib/card-view/interfaces/card-view-textitem-pipe-property.interface.mjs +0 -18
  184. package/esm2022/lib/card-view/interfaces/card-view-textitem-properties.interface.mjs +0 -18
  185. package/esm2022/lib/card-view/interfaces/card-view.interfaces.mjs +0 -29
  186. package/esm2022/lib/card-view/interfaces/click-notification.interface.mjs +0 -18
  187. package/esm2022/lib/card-view/interfaces/update-notification.interface.mjs +0 -18
  188. package/esm2022/lib/card-view/models/card-view-arrayitem.model.mjs +0 -28
  189. package/esm2022/lib/card-view/models/card-view-baseitem.model.mjs +0 -64
  190. package/esm2022/lib/card-view/models/card-view-boolitem.model.mjs +0 -36
  191. package/esm2022/lib/card-view/models/card-view-dateitem.model.mjs +0 -58
  192. package/esm2022/lib/card-view/models/card-view-datetimeitem.model.mjs +0 -28
  193. package/esm2022/lib/card-view/models/card-view-floatitem.model.mjs +0 -33
  194. package/esm2022/lib/card-view/models/card-view-intitem.model.mjs +0 -36
  195. package/esm2022/lib/card-view/models/card-view-keyvaluepairs.model.mjs +0 -27
  196. package/esm2022/lib/card-view/models/card-view-longitem.model.mjs +0 -36
  197. package/esm2022/lib/card-view/models/card-view-mapitem.model.mjs +0 -32
  198. package/esm2022/lib/card-view/models/card-view-selectitem.model.mjs +0 -41
  199. package/esm2022/lib/card-view/models/card-view-textitem.model.mjs +0 -40
  200. package/esm2022/lib/card-view/models/card-view.models.mjs +0 -29
  201. package/esm2022/lib/card-view/public-api.mjs +0 -25
  202. package/esm2022/lib/card-view/services/card-item-types.service.mjs +0 -54
  203. package/esm2022/lib/card-view/services/card-view-update.service.mjs +0 -59
  204. package/esm2022/lib/card-view/services/card-view.services.mjs +0 -19
  205. package/esm2022/lib/card-view/validators/card-view-item-float.validator.mjs +0 -31
  206. package/esm2022/lib/card-view/validators/card-view-item-int.validator.mjs +0 -35
  207. package/esm2022/lib/card-view/validators/card-view-item-length.validator.mjs +0 -34
  208. package/esm2022/lib/card-view/validators/card-view-item-long.validator.mjs +0 -35
  209. package/esm2022/lib/card-view/validators/card-view-item-match.validator.mjs +0 -35
  210. package/esm2022/lib/card-view/validators/card-view-item-minmax.validator.mjs +0 -35
  211. package/esm2022/lib/card-view/validators/card-view-item-only-positive-int.validator.mjs +0 -32
  212. package/esm2022/lib/card-view/validators/card-view-item-only-positive-long.validator.mjs +0 -31
  213. package/esm2022/lib/card-view/validators/card-view.validators.mjs +0 -26
  214. package/esm2022/lib/card-view/validators/validators.map.mjs +0 -26
  215. package/esm2022/lib/clipboard/clipboard.directive.mjs +0 -98
  216. package/esm2022/lib/clipboard/clipboard.module.mjs +0 -34
  217. package/esm2022/lib/clipboard/clipboard.service.mjs +0 -103
  218. package/esm2022/lib/clipboard/index.mjs +0 -18
  219. package/esm2022/lib/clipboard/public-api.mjs +0 -21
  220. package/esm2022/lib/comments/comment-list/comment-list.component.mjs +0 -52
  221. package/esm2022/lib/comments/comment-list/comment-list.module.mjs +0 -33
  222. package/esm2022/lib/comments/comment-list/index.mjs +0 -18
  223. package/esm2022/lib/comments/comment-list/public-api.mjs +0 -19
  224. package/esm2022/lib/comments/comments.component.mjs +0 -132
  225. package/esm2022/lib/comments/comments.module.mjs +0 -33
  226. package/esm2022/lib/comments/index.mjs +0 -18
  227. package/esm2022/lib/comments/interfaces/comments-service.interface.mjs +0 -18
  228. package/esm2022/lib/comments/interfaces/comments.token.mjs +0 -19
  229. package/esm2022/lib/comments/public-api.mjs +0 -22
  230. package/esm2022/lib/common/index.mjs +0 -35
  231. package/esm2022/lib/common/interface/search-component.interface.mjs +0 -18
  232. package/esm2022/lib/common/mock/app-config.service.mock.mjs +0 -47
  233. package/esm2022/lib/common/models/default-languages.model.mjs +0 -36
  234. package/esm2022/lib/common/models/log-levels.model.mjs +0 -33
  235. package/esm2022/lib/common/models/user-info-mode.enum.mjs +0 -25
  236. package/esm2022/lib/common/services/cookie.service.mjs +0 -82
  237. package/esm2022/lib/common/services/download.service.mjs +0 -102
  238. package/esm2022/lib/common/services/dynamic-component-mapper.service.mjs +0 -89
  239. package/esm2022/lib/common/services/highlight-transform.service.mjs +0 -61
  240. package/esm2022/lib/common/services/language-item.interface.mjs +0 -18
  241. package/esm2022/lib/common/services/log.service.mjs +0 -171
  242. package/esm2022/lib/common/services/page-title.service.mjs +0 -63
  243. package/esm2022/lib/common/services/sort-by-category.service.mjs +0 -81
  244. package/esm2022/lib/common/services/storage.service.mjs +0 -143
  245. package/esm2022/lib/common/services/thumbnail.service.mjs +0 -194
  246. package/esm2022/lib/common/services/url.service.mjs +0 -45
  247. package/esm2022/lib/common/services/user-preferences.service.mjs +0 -238
  248. package/esm2022/lib/common/utils/date-fns-adapter.mjs +0 -115
  249. package/esm2022/lib/common/utils/date-fns-utils.mjs +0 -222
  250. package/esm2022/lib/common/utils/datetime-fns-adapter.mjs +0 -134
  251. package/esm2022/lib/common/utils/file-utils.mjs +0 -65
  252. package/esm2022/lib/common/utils/index.mjs +0 -18
  253. package/esm2022/lib/common/utils/moment-date-adapter.mjs +0 -202
  254. package/esm2022/lib/common/utils/moment-date-formats.model.mjs +0 -32
  255. package/esm2022/lib/common/utils/object-utils.mjs +0 -107
  256. package/esm2022/lib/common/utils/public-api.mjs +0 -25
  257. package/esm2022/lib/common/utils/string-utils.mjs +0 -45
  258. package/esm2022/lib/context-menu/animations.mjs +0 -33
  259. package/esm2022/lib/context-menu/context-menu-list.component.mjs +0 -91
  260. package/esm2022/lib/context-menu/context-menu-overlay.mjs +0 -25
  261. package/esm2022/lib/context-menu/context-menu-overlay.service.mjs +0 -109
  262. package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -63
  263. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -35
  264. package/esm2022/lib/context-menu/context-menu.tokens.mjs +0 -19
  265. package/esm2022/lib/context-menu/index.mjs +0 -18
  266. package/esm2022/lib/context-menu/interfaces.mjs +0 -18
  267. package/esm2022/lib/context-menu/public-api.mjs +0 -21
  268. package/esm2022/lib/core.module.mjs +0 -296
  269. package/esm2022/lib/datatable/components/amount-cell/amount-cell.component.mjs +0 -45
  270. package/esm2022/lib/datatable/components/boolean-cell/boolean-cell.component.mjs +0 -65
  271. package/esm2022/lib/datatable/components/columns-selector/columns-search-filter.pipe.mjs +0 -55
  272. package/esm2022/lib/datatable/components/columns-selector/columns-selector.component.mjs +0 -113
  273. package/esm2022/lib/datatable/components/data-cell.event.mjs +0 -31
  274. package/esm2022/lib/datatable/components/data-row-action.event.mjs +0 -34
  275. package/esm2022/lib/datatable/components/datatable/datatable.component.mjs +0 -914
  276. package/esm2022/lib/datatable/components/datatable-cell/datatable-cell.component.mjs +0 -126
  277. package/esm2022/lib/datatable/components/datatable-row/datatable-row.component.mjs +0 -98
  278. package/esm2022/lib/datatable/components/date-cell/date-cell.component.mjs +0 -78
  279. package/esm2022/lib/datatable/components/empty-list/empty-list.component.mjs +0 -60
  280. package/esm2022/lib/datatable/components/filesize-cell/filesize-cell.component.mjs +0 -49
  281. package/esm2022/lib/datatable/components/icon-cell/icon-cell.component.mjs +0 -67
  282. package/esm2022/lib/datatable/components/json-cell/json-cell.component.mjs +0 -86
  283. package/esm2022/lib/datatable/components/location-cell/location-cell.component.mjs +0 -69
  284. package/esm2022/lib/datatable/components/mocks/datatable.mock.mjs +0 -153
  285. package/esm2022/lib/datatable/components/number-cell/number-cell.component.mjs +0 -42
  286. package/esm2022/lib/datatable/data/data-column.model.mjs +0 -18
  287. package/esm2022/lib/datatable/data/data-row-event.model.mjs +0 -26
  288. package/esm2022/lib/datatable/data/data-row-update.model.mjs +0 -18
  289. package/esm2022/lib/datatable/data/data-row.model.mjs +0 -18
  290. package/esm2022/lib/datatable/data/data-sorting.model.mjs +0 -24
  291. package/esm2022/lib/datatable/data/data-table.schema.mjs +0 -132
  292. package/esm2022/lib/datatable/data/datatable-adapter.mjs +0 -18
  293. package/esm2022/lib/datatable/data/object-datacolumn.model.mjs +0 -46
  294. package/esm2022/lib/datatable/data/object-datarow.model.mjs +0 -41
  295. package/esm2022/lib/datatable/data/object-datatable-adapter.mjs +0 -134
  296. package/esm2022/lib/datatable/data-column/data-column-header.component.mjs +0 -45
  297. package/esm2022/lib/datatable/data-column/data-column-list.component.mjs +0 -36
  298. package/esm2022/lib/datatable/data-column/data-column.component.mjs +0 -114
  299. package/esm2022/lib/datatable/data-column/index.mjs +0 -18
  300. package/esm2022/lib/datatable/data-column/public-api.mjs +0 -20
  301. package/esm2022/lib/datatable/datatable.module.mjs +0 -161
  302. package/esm2022/lib/datatable/directives/custom-empty-content-template.directive.mjs +0 -35
  303. package/esm2022/lib/datatable/directives/custom-loading-template.directive.mjs +0 -30
  304. package/esm2022/lib/datatable/directives/custom-no-permission-template.directive.mjs +0 -35
  305. package/esm2022/lib/datatable/directives/drop-zone.directive.mjs +0 -89
  306. package/esm2022/lib/datatable/directives/header-filter-template.directive.mjs +0 -43
  307. package/esm2022/lib/datatable/directives/loading-template.directive.mjs +0 -46
  308. package/esm2022/lib/datatable/directives/main-data-table-action-template.directive.mjs +0 -43
  309. package/esm2022/lib/datatable/directives/no-content-template.directive.mjs +0 -46
  310. package/esm2022/lib/datatable/directives/no-permission-template.directive.mjs +0 -46
  311. package/esm2022/lib/datatable/directives/resizable/resizable.directive.mjs +0 -173
  312. package/esm2022/lib/datatable/directives/resizable/resize-handle.directive.mjs +0 -72
  313. package/esm2022/lib/datatable/directives/resizable/types.mjs +0 -18
  314. package/esm2022/lib/datatable/index.mjs +0 -18
  315. package/esm2022/lib/datatable/public-api.mjs +0 -55
  316. package/esm2022/lib/datatable/services/datatable.service.mjs +0 -33
  317. package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.mjs +0 -50
  318. package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.module.mjs +0 -38
  319. package/esm2022/lib/dialogs/dialog/dialog-data.interface.mjs +0 -18
  320. package/esm2022/lib/dialogs/dialog/dialog.component.mjs +0 -70
  321. package/esm2022/lib/dialogs/dialog/dialog.model.mjs +0 -22
  322. package/esm2022/lib/dialogs/dialog/index.mjs +0 -20
  323. package/esm2022/lib/dialogs/edit-json/edit-json.dialog.mjs +0 -52
  324. package/esm2022/lib/dialogs/edit-json/edit-json.dialog.module.mjs +0 -34
  325. package/esm2022/lib/dialogs/index.mjs +0 -18
  326. package/esm2022/lib/dialogs/public-api.mjs +0 -25
  327. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +0 -73
  328. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.model.mjs +0 -18
  329. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +0 -33
  330. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes.guard.mjs +0 -64
  331. package/esm2022/lib/directives/directive.module.mjs +0 -56
  332. package/esm2022/lib/directives/highlight.directive.mjs +0 -67
  333. package/esm2022/lib/directives/index.mjs +0 -18
  334. package/esm2022/lib/directives/infinite-select-scroll.directive.mjs +0 -67
  335. package/esm2022/lib/directives/logout.directive.mjs +0 -72
  336. package/esm2022/lib/directives/public-api.mjs +0 -24
  337. package/esm2022/lib/directives/tooltip-card/tooltip-card.component.mjs +0 -60
  338. package/esm2022/lib/directives/tooltip-card/tooltip-card.directive.mjs +0 -104
  339. package/esm2022/lib/directives/upload.directive.mjs +0 -241
  340. package/esm2022/lib/dynamic-chip-list/chip.mjs +0 -18
  341. package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.component.mjs +0 -204
  342. package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.module.mjs +0 -33
  343. package/esm2022/lib/dynamic-chip-list/index.mjs +0 -18
  344. package/esm2022/lib/dynamic-chip-list/public-api.mjs +0 -20
  345. package/esm2022/lib/events/base-ui.event.mjs +0 -21
  346. package/esm2022/lib/events/base.event.mjs +0 -29
  347. package/esm2022/lib/events/index.mjs +0 -18
  348. package/esm2022/lib/events/public-api.mjs +0 -19
  349. package/esm2022/lib/form/components/form-base.component.mjs +0 -224
  350. package/esm2022/lib/form/components/form-custom-button.directive.mjs +0 -30
  351. package/esm2022/lib/form/components/form-field/form-field.component.mjs +0 -142
  352. package/esm2022/lib/form/components/form-renderer.component.mjs +0 -161
  353. package/esm2022/lib/form/components/form-section/form-section.component.mjs +0 -46
  354. package/esm2022/lib/form/components/helpers/buttons-visibility.mjs +0 -37
  355. package/esm2022/lib/form/components/inplace-form-input/inplace-form-input.component.mjs +0 -37
  356. package/esm2022/lib/form/components/middlewares/decimal-middleware.service.mjs +0 -48
  357. package/esm2022/lib/form/components/middlewares/middleware.mjs +0 -19
  358. package/esm2022/lib/form/components/widgets/amount/amount.widget.mjs +0 -77
  359. package/esm2022/lib/form/components/widgets/base-viewer/base-viewer.widget.mjs +0 -59
  360. package/esm2022/lib/form/components/widgets/checkbox/checkbox.widget.mjs +0 -52
  361. package/esm2022/lib/form/components/widgets/core/container-column.model.mjs +0 -28
  362. package/esm2022/lib/form/components/widgets/core/container.model.mjs +0 -50
  363. package/esm2022/lib/form/components/widgets/core/content-link.model.mjs +0 -52
  364. package/esm2022/lib/form/components/widgets/core/displayable-cm-properties.model.mjs +0 -18
  365. package/esm2022/lib/form/components/widgets/core/error-message.model.mjs +0 -38
  366. package/esm2022/lib/form/components/widgets/core/external-content-link.mjs +0 -18
  367. package/esm2022/lib/form/components/widgets/core/external-content.mjs +0 -18
  368. package/esm2022/lib/form/components/widgets/core/form-field-file-source.mjs +0 -18
  369. package/esm2022/lib/form/components/widgets/core/form-field-metadata.mjs +0 -18
  370. package/esm2022/lib/form/components/widgets/core/form-field-option.mjs +0 -18
  371. package/esm2022/lib/form/components/widgets/core/form-field-rule.mjs +0 -18
  372. package/esm2022/lib/form/components/widgets/core/form-field-selected-folder.mjs +0 -18
  373. package/esm2022/lib/form/components/widgets/core/form-field-templates.mjs +0 -18
  374. package/esm2022/lib/form/components/widgets/core/form-field-types.mjs +0 -74
  375. package/esm2022/lib/form/components/widgets/core/form-field-utils.mjs +0 -23
  376. package/esm2022/lib/form/components/widgets/core/form-field-validator.mjs +0 -268
  377. package/esm2022/lib/form/components/widgets/core/form-field-variable-options.mjs +0 -18
  378. package/esm2022/lib/form/components/widgets/core/form-field.model.mjs +0 -490
  379. package/esm2022/lib/form/components/widgets/core/form-outcome-event.model.mjs +0 -32
  380. package/esm2022/lib/form/components/widgets/core/form-outcome.model.mjs +0 -38
  381. package/esm2022/lib/form/components/widgets/core/form-values.mjs +0 -18
  382. package/esm2022/lib/form/components/widgets/core/form-variable.model.mjs +0 -18
  383. package/esm2022/lib/form/components/widgets/core/form-widget.model.mjs +0 -33
  384. package/esm2022/lib/form/components/widgets/core/form.model.mjs +0 -387
  385. package/esm2022/lib/form/components/widgets/core/group.model.mjs +0 -18
  386. package/esm2022/lib/form/components/widgets/core/index.mjs +0 -49
  387. package/esm2022/lib/form/components/widgets/core/predefined-theme.mjs +0 -115
  388. package/esm2022/lib/form/components/widgets/core/process-form-model.interface.mjs +0 -18
  389. package/esm2022/lib/form/components/widgets/core/process-variable.model.mjs +0 -18
  390. package/esm2022/lib/form/components/widgets/core/tab.model.mjs +0 -34
  391. package/esm2022/lib/form/components/widgets/core/theme.model.mjs +0 -18
  392. package/esm2022/lib/form/components/widgets/core/upload-widget-content-link.model.mjs +0 -27
  393. package/esm2022/lib/form/components/widgets/core/widget-schema.model.mjs +0 -18
  394. package/esm2022/lib/form/components/widgets/date/date.widget.mjs +0 -162
  395. package/esm2022/lib/form/components/widgets/date-time/date-time.widget.mjs +0 -153
  396. package/esm2022/lib/form/components/widgets/decimal/decimal.component.mjs +0 -53
  397. package/esm2022/lib/form/components/widgets/display-text/display-text.schema.mjs +0 -86
  398. package/esm2022/lib/form/components/widgets/display-text/display-text.widget.mjs +0 -46
  399. package/esm2022/lib/form/components/widgets/display-text/index.mjs +0 -19
  400. package/esm2022/lib/form/components/widgets/error/error.component.mjs +0 -92
  401. package/esm2022/lib/form/components/widgets/header/header.schema.mjs +0 -86
  402. package/esm2022/lib/form/components/widgets/header/header.widget.mjs +0 -42
  403. package/esm2022/lib/form/components/widgets/header/index.mjs +0 -19
  404. package/esm2022/lib/form/components/widgets/hyperlink/hyperlink.widget.mjs +0 -69
  405. package/esm2022/lib/form/components/widgets/index.mjs +0 -71
  406. package/esm2022/lib/form/components/widgets/json/json.widget.mjs +0 -66
  407. package/esm2022/lib/form/components/widgets/multiline-text/multiline-text.widget.mjs +0 -55
  408. package/esm2022/lib/form/components/widgets/number/number.widget.mjs +0 -71
  409. package/esm2022/lib/form/components/widgets/reactive-widget.interface.mjs +0 -18
  410. package/esm2022/lib/form/components/widgets/text/text-mask.component.mjs +0 -221
  411. package/esm2022/lib/form/components/widgets/text/text.widget.mjs +0 -65
  412. package/esm2022/lib/form/components/widgets/unknown/unknown.widget.mjs +0 -63
  413. package/esm2022/lib/form/components/widgets/widget.component.mjs +0 -110
  414. package/esm2022/lib/form/events/form-error.event.mjs +0 -24
  415. package/esm2022/lib/form/events/form-field.event.mjs +0 -24
  416. package/esm2022/lib/form/events/form-rules.event.mjs +0 -25
  417. package/esm2022/lib/form/events/form-spinner.event.mjs +0 -23
  418. package/esm2022/lib/form/events/form.event.mjs +0 -29
  419. package/esm2022/lib/form/events/index.mjs +0 -24
  420. package/esm2022/lib/form/events/validate-form-field.event.mjs +0 -24
  421. package/esm2022/lib/form/events/validate-form.event.mjs +0 -25
  422. package/esm2022/lib/form/form-base.module.mjs +0 -75
  423. package/esm2022/lib/form/index.mjs +0 -18
  424. package/esm2022/lib/form/models/form-rules.model.mjs +0 -77
  425. package/esm2022/lib/form/models/task-process-variable.model.mjs +0 -19
  426. package/esm2022/lib/form/models/widget-visibility.model.mjs +0 -104
  427. package/esm2022/lib/form/pipes/field-style.pipe.mjs +0 -45
  428. package/esm2022/lib/form/pipes/index.mjs +0 -18
  429. package/esm2022/lib/form/public-api.mjs +0 -35
  430. package/esm2022/lib/form/services/form-rendering.service.mjs +0 -53
  431. package/esm2022/lib/form/services/form-validation-service.interface.mjs +0 -18
  432. package/esm2022/lib/form/services/form.service.mjs +0 -86
  433. package/esm2022/lib/form/services/widget-visibility.service.mjs +0 -294
  434. package/esm2022/lib/header/header.component.mjs +0 -73
  435. package/esm2022/lib/header/index.mjs +0 -18
  436. package/esm2022/lib/header/navbar/navbar-item.component.mjs +0 -37
  437. package/esm2022/lib/header/navbar/navbar.component.mjs +0 -36
  438. package/esm2022/lib/header/public-api.mjs +0 -20
  439. package/esm2022/lib/icon/icon.component.mjs +0 -51
  440. package/esm2022/lib/icon/icon.module.mjs +0 -36
  441. package/esm2022/lib/icon/index.mjs +0 -18
  442. package/esm2022/lib/icon/public-api.mjs +0 -19
  443. package/esm2022/lib/identity-user-info/identity-user-info.component.mjs +0 -86
  444. package/esm2022/lib/identity-user-info/identity-user-info.module.mjs +0 -33
  445. package/esm2022/lib/identity-user-info/index.mjs +0 -18
  446. package/esm2022/lib/identity-user-info/public-api.mjs +0 -19
  447. package/esm2022/lib/info-drawer/index.mjs +0 -18
  448. package/esm2022/lib/info-drawer/info-drawer-layout.component.mjs +0 -71
  449. package/esm2022/lib/info-drawer/info-drawer.component.mjs +0 -113
  450. package/esm2022/lib/info-drawer/info-drawer.module.mjs +0 -53
  451. package/esm2022/lib/info-drawer/public-api.mjs +0 -20
  452. package/esm2022/lib/interface/index.mjs +0 -18
  453. package/esm2022/lib/interface/injection.tokens.mjs +0 -19
  454. package/esm2022/lib/interface/public-api.mjs +0 -18
  455. package/esm2022/lib/landing-page/index.mjs +0 -18
  456. package/esm2022/lib/landing-page/provider.mjs +0 -30
  457. package/esm2022/lib/landing-page/public-api.mjs +0 -18
  458. package/esm2022/lib/language-menu/index.mjs +0 -18
  459. package/esm2022/lib/language-menu/language-menu.component.mjs +0 -61
  460. package/esm2022/lib/language-menu/language-menu.module.mjs +0 -35
  461. package/esm2022/lib/language-menu/language-picker.component.mjs +0 -77
  462. package/esm2022/lib/language-menu/public-api.mjs +0 -21
  463. package/esm2022/lib/language-menu/service/language.service.interface.mjs +0 -18
  464. package/esm2022/lib/language-menu/service/language.service.mjs +0 -34
  465. package/esm2022/lib/layout/components/header/header.component.mjs +0 -99
  466. package/esm2022/lib/layout/components/layout-container/layout-container.component.mjs +0 -180
  467. package/esm2022/lib/layout/components/sidebar-action/sidebar-action-menu.component.mjs +0 -82
  468. package/esm2022/lib/layout/components/sidenav-layout/sidenav-layout.component.mjs +0 -145
  469. package/esm2022/lib/layout/directives/sidenav-layout-content.directive.mjs +0 -33
  470. package/esm2022/lib/layout/directives/sidenav-layout-header.directive.mjs +0 -33
  471. package/esm2022/lib/layout/directives/sidenav-layout-navigation.directive.mjs +0 -33
  472. package/esm2022/lib/layout/index.mjs +0 -18
  473. package/esm2022/lib/layout/layout.module.mjs +0 -72
  474. package/esm2022/lib/layout/public-api.mjs +0 -25
  475. package/esm2022/lib/login/components/login/login.component.mjs +0 -367
  476. package/esm2022/lib/login/components/login-dialog/login-dialog-component-data.interface.mjs +0 -18
  477. package/esm2022/lib/login/components/login-dialog/login-dialog.component.mjs +0 -57
  478. package/esm2022/lib/login/components/login-dialog-panel/login-dialog-panel.component.mjs +0 -48
  479. package/esm2022/lib/login/directives/login-footer.directive.mjs +0 -41
  480. package/esm2022/lib/login/directives/login-header.directive.mjs +0 -41
  481. package/esm2022/lib/login/index.mjs +0 -18
  482. package/esm2022/lib/login/login.module.mjs +0 -54
  483. package/esm2022/lib/login/models/login-error.event.mjs +0 -22
  484. package/esm2022/lib/login/models/login-submit.event.mjs +0 -32
  485. package/esm2022/lib/login/models/login-success.event.mjs +0 -24
  486. package/esm2022/lib/login/public-api.mjs +0 -27
  487. package/esm2022/lib/material.module.mjs +0 -254
  488. package/esm2022/lib/mock/cookie.service.mock.mjs +0 -43
  489. package/esm2022/lib/mock/data-column.mock.mjs +0 -73
  490. package/esm2022/lib/mock/event.mock.mjs +0 -39
  491. package/esm2022/lib/mock/form/form-definition-readonly.mock.mjs +0 -225
  492. package/esm2022/lib/mock/form/form-definition-visibility.mock.mjs +0 -347
  493. package/esm2022/lib/mock/form/form-definition.mock.mjs +0 -403
  494. package/esm2022/lib/mock/form/form.component.mock.mjs +0 -275
  495. package/esm2022/lib/mock/form/form.service.mock.mjs +0 -248
  496. package/esm2022/lib/mock/form/widget-visibility.service.mock.mjs +0 -1835
  497. package/esm2022/lib/mock/index.mjs +0 -18
  498. package/esm2022/lib/mock/public-api.mjs +0 -27
  499. package/esm2022/lib/mock/translation.service.mock.mjs +0 -44
  500. package/esm2022/lib/models/comment.model.mjs +0 -51
  501. package/esm2022/lib/models/component.model.mjs +0 -24
  502. package/esm2022/lib/models/decimal-number.model.mjs +0 -26
  503. package/esm2022/lib/models/general-user.model.mjs +0 -24
  504. package/esm2022/lib/models/index.mjs +0 -18
  505. package/esm2022/lib/models/pagination.model.mjs +0 -29
  506. package/esm2022/lib/models/path.model.mjs +0 -24
  507. package/esm2022/lib/models/product-version.model.mjs +0 -28
  508. package/esm2022/lib/models/public-api.mjs +0 -24
  509. package/esm2022/lib/models/request-pagination.model.mjs +0 -25
  510. package/esm2022/lib/notifications/components/add-notification.stories.component.mjs +0 -44
  511. package/esm2022/lib/notifications/components/notification-history.component.mjs +0 -138
  512. package/esm2022/lib/notifications/helpers/notification.factory.mjs +0 -43
  513. package/esm2022/lib/notifications/index.mjs +0 -18
  514. package/esm2022/lib/notifications/models/notification.model.mjs +0 -25
  515. package/esm2022/lib/notifications/notification-history.module.mjs +0 -35
  516. package/esm2022/lib/notifications/public-api.mjs +0 -23
  517. package/esm2022/lib/notifications/services/notification.service.mjs +0 -166
  518. package/esm2022/lib/pagination/index.mjs +0 -18
  519. package/esm2022/lib/pagination/infinite-pagination.component.mjs +0 -111
  520. package/esm2022/lib/pagination/paginated-component.interface.mjs +0 -18
  521. package/esm2022/lib/pagination/pagination-component.interface.mjs +0 -18
  522. package/esm2022/lib/pagination/pagination.component.mjs +0 -263
  523. package/esm2022/lib/pagination/pagination.module.mjs +0 -35
  524. package/esm2022/lib/pagination/public-api.mjs +0 -22
  525. package/esm2022/lib/pipes/date-time.pipe.mjs +0 -46
  526. package/esm2022/lib/pipes/decimal-number.pipe.mjs +0 -78
  527. package/esm2022/lib/pipes/file-size.pipe.mjs +0 -54
  528. package/esm2022/lib/pipes/file-type.pipe.mjs +0 -40
  529. package/esm2022/lib/pipes/format-space.pipe.mjs +0 -39
  530. package/esm2022/lib/pipes/full-name.pipe.mjs +0 -43
  531. package/esm2022/lib/pipes/index.mjs +0 -18
  532. package/esm2022/lib/pipes/localized-date.pipe.mjs +0 -70
  533. package/esm2022/lib/pipes/multi-value.pipe.mjs +0 -37
  534. package/esm2022/lib/pipes/pipe.module.mjs +0 -83
  535. package/esm2022/lib/pipes/public-api.mjs +0 -30
  536. package/esm2022/lib/pipes/text-highlight.pipe.mjs +0 -39
  537. package/esm2022/lib/pipes/time-ago.pipe.mjs +0 -65
  538. package/esm2022/lib/pipes/truncate.pipe.mjs +0 -33
  539. package/esm2022/lib/pipes/user-initial.pipe.mjs +0 -52
  540. package/esm2022/lib/pipes/user-like.interface.mjs +0 -18
  541. package/esm2022/lib/progress/progress.component.mjs +0 -90
  542. package/esm2022/lib/search-text/animations.mjs +0 -32
  543. package/esm2022/lib/search-text/index.mjs +0 -18
  544. package/esm2022/lib/search-text/models/search-text-input.model.mjs +0 -23
  545. package/esm2022/lib/search-text/public-api.mjs +0 -22
  546. package/esm2022/lib/search-text/search-text-input.component.mjs +0 -283
  547. package/esm2022/lib/search-text/search-text-input.module.mjs +0 -35
  548. package/esm2022/lib/search-text/search-trigger.directive.mjs +0 -181
  549. package/esm2022/lib/snackbar-content/index.mjs +0 -18
  550. package/esm2022/lib/snackbar-content/public-api.mjs +0 -20
  551. package/esm2022/lib/snackbar-content/snack-bar-data.mjs +0 -18
  552. package/esm2022/lib/snackbar-content/snackbar-content.component.mjs +0 -49
  553. package/esm2022/lib/snackbar-content/snackbar-content.module.mjs +0 -33
  554. package/esm2022/lib/sorting-picker/index.mjs +0 -18
  555. package/esm2022/lib/sorting-picker/public-api.mjs +0 -18
  556. package/esm2022/lib/sorting-picker/sorting-picker.component.mjs +0 -67
  557. package/esm2022/lib/templates/empty-content/empty-content.component.mjs +0 -43
  558. package/esm2022/lib/templates/error-content/error-content.component.mjs +0 -61
  559. package/esm2022/lib/templates/index.mjs +0 -18
  560. package/esm2022/lib/templates/public-api.mjs +0 -20
  561. package/esm2022/lib/templates/template.module.mjs +0 -38
  562. package/esm2022/lib/testing/core.story.module.mjs +0 -39
  563. package/esm2022/lib/testing/core.testing.module.mjs +0 -36
  564. package/esm2022/lib/testing/index.mjs +0 -22
  565. package/esm2022/lib/testing/noop-auth.module.mjs +0 -80
  566. package/esm2022/lib/testing/noop-translate.module.mjs +0 -75
  567. package/esm2022/lib/testing/unit-testing-utils.mjs +0 -367
  568. package/esm2022/lib/toolbar/index.mjs +0 -18
  569. package/esm2022/lib/toolbar/public-api.mjs +0 -21
  570. package/esm2022/lib/toolbar/toolbar-divider.component.mjs +0 -27
  571. package/esm2022/lib/toolbar/toolbar-title.component.mjs +0 -32
  572. package/esm2022/lib/toolbar/toolbar.component.mjs +0 -39
  573. package/esm2022/lib/toolbar/toolbar.module.mjs +0 -36
  574. package/esm2022/lib/translation/index.mjs +0 -18
  575. package/esm2022/lib/translation/provide-i18n.mjs +0 -48
  576. package/esm2022/lib/translation/public-api.mjs +0 -20
  577. package/esm2022/lib/translation/translate-loader.service.mjs +0 -153
  578. package/esm2022/lib/translation/translation.service.mjs +0 -148
  579. package/esm2022/lib/viewer/components/download-prompt-dialog/download-prompt-dialog.component.mjs +0 -36
  580. package/esm2022/lib/viewer/components/img-viewer/img-viewer.component.mjs +0 -220
  581. package/esm2022/lib/viewer/components/media-player/media-player.component.mjs +0 -64
  582. package/esm2022/lib/viewer/components/pdf-viewer/pdf-viewer.component.mjs +0 -550
  583. package/esm2022/lib/viewer/components/pdf-viewer-password-dialog/pdf-viewer-password-dialog.mjs +0 -60
  584. package/esm2022/lib/viewer/components/pdf-viewer-thumb/pdf-viewer-thumb.component.mjs +0 -48
  585. package/esm2022/lib/viewer/components/pdf-viewer-thumbnails/pdf-viewer-thumbnails.component.mjs +0 -198
  586. package/esm2022/lib/viewer/components/txt-viewer/txt-viewer.component.mjs +0 -85
  587. package/esm2022/lib/viewer/components/unknown-format/unknown-format.component.mjs +0 -32
  588. package/esm2022/lib/viewer/components/viewer-more-actions.component.mjs +0 -34
  589. package/esm2022/lib/viewer/components/viewer-open-with.component.mjs +0 -34
  590. package/esm2022/lib/viewer/components/viewer-render/viewer-render.component.mjs +0 -216
  591. package/esm2022/lib/viewer/components/viewer-sidebar.component.mjs +0 -46
  592. package/esm2022/lib/viewer/components/viewer-toolbar-actions.component.mjs +0 -34
  593. package/esm2022/lib/viewer/components/viewer-toolbar-custom-actions.component.mjs +0 -34
  594. package/esm2022/lib/viewer/components/viewer-toolbar.component.mjs +0 -34
  595. package/esm2022/lib/viewer/components/viewer.component.mjs +0 -492
  596. package/esm2022/lib/viewer/directives/viewer-extension.directive.mjs +0 -67
  597. package/esm2022/lib/viewer/index.mjs +0 -18
  598. package/esm2022/lib/viewer/models/download-prompt.actions.mjs +0 -23
  599. package/esm2022/lib/viewer/models/viewer.model.mjs +0 -22
  600. package/esm2022/lib/viewer/public-api.mjs +0 -40
  601. package/esm2022/lib/viewer/services/rendering-queue.services.mjs +0 -179
  602. package/esm2022/lib/viewer/services/view-util.service.mjs +0 -149
  603. package/esm2022/lib/viewer/viewer.module.mjs +0 -110
  604. package/esm2022/public-api.mjs +0 -61
  605. package/esm2022/shell/alfresco-adf-core-shell.mjs +0 -5
  606. package/esm2022/shell/index.mjs +0 -21
  607. package/esm2022/shell/lib/components/shell/shell.component.mjs +0 -122
  608. package/esm2022/shell/lib/services/shell-app.service.mjs +0 -22
  609. package/esm2022/shell/lib/shell.module.mjs +0 -75
  610. package/esm2022/shell/lib/shell.routes.mjs +0 -50
  611. package/lib/landing-page/index.d.ts +0 -17
  612. package/lib/landing-page/provider.d.ts +0 -24
  613. package/lib/landing-page/public-api.d.ts +0 -17
@@ -1,238 +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
- import { inject, Injectable, RendererFactory2 } from '@angular/core';
18
- import { TranslateService } from '@ngx-translate/core';
19
- import { BehaviorSubject } from 'rxjs';
20
- import { AppConfigService, AppConfigValues } from '../../app-config/app-config.service';
21
- import { StorageService } from './storage.service';
22
- import { distinctUntilChanged, map } from 'rxjs/operators';
23
- import { DOCUMENT } from '@angular/common';
24
- import { Directionality } from '@angular/cdk/bidi';
25
- import { DEFAULT_LANGUAGE_LIST } from '../models/default-languages.model';
26
- import * as i0 from "@angular/core";
27
- import * as i1 from "@ngx-translate/core";
28
- import * as i2 from "../../app-config/app-config.service";
29
- import * as i3 from "./storage.service";
30
- // eslint-disable-next-line no-shadow
31
- export var UserPreferenceValues;
32
- (function (UserPreferenceValues) {
33
- UserPreferenceValues["PaginationSize"] = "paginationSize";
34
- UserPreferenceValues["Locale"] = "locale";
35
- UserPreferenceValues["SupportedPageSizes"] = "supportedPageSizes";
36
- UserPreferenceValues["ExpandedSideNavStatus"] = "expandedSidenav";
37
- })(UserPreferenceValues || (UserPreferenceValues = {}));
38
- export class UserPreferencesService {
39
- constructor(translate, appConfig, storage) {
40
- this.translate = translate;
41
- this.appConfig = appConfig;
42
- this.storage = storage;
43
- this.document = inject(DOCUMENT);
44
- this.rendererFactory = inject(RendererFactory2);
45
- this.directionality = inject(Directionality);
46
- this.defaults = {
47
- paginationSize: 25,
48
- supportedPageSizes: [5, 10, 15, 20],
49
- locale: 'en',
50
- expandedSidenav: true
51
- };
52
- this.userPreferenceStatus = this.defaults;
53
- this.onChangeSubject = new BehaviorSubject(this.userPreferenceStatus);
54
- this.onChange = this.onChangeSubject.asObservable();
55
- this.appConfig.onLoad.subscribe(() => {
56
- this.initUserPreferenceStatus();
57
- });
58
- const renderer = this.rendererFactory.createRenderer(null, null);
59
- this.select('textOrientation').subscribe((direction) => {
60
- renderer.setAttribute(this.document.body, 'dir', direction);
61
- this.directionality.value = direction;
62
- });
63
- }
64
- initUserPreferenceStatus() {
65
- this.initUserLanguage();
66
- this.set(UserPreferenceValues.PaginationSize, this.paginationSize);
67
- this.set(UserPreferenceValues.SupportedPageSizes, JSON.stringify(this.supportedPageSizes));
68
- }
69
- initUserLanguage() {
70
- if (this.locale || this.appConfig.get(UserPreferenceValues.Locale)) {
71
- const locale = this.locale || this.getDefaultLocale();
72
- this.set(UserPreferenceValues.Locale, locale);
73
- this.set('textOrientation', this.getLanguageByKey(locale).direction || 'ltr');
74
- }
75
- else {
76
- const locale = this.locale || this.getDefaultLocale();
77
- this.setWithoutStore(UserPreferenceValues.Locale, locale);
78
- this.setWithoutStore('textOrientation', this.getLanguageByKey(locale).direction || 'ltr');
79
- }
80
- }
81
- /**
82
- * Sets up a callback to notify when a property has changed.
83
- *
84
- * @param property The property to watch
85
- * @returns Notification callback
86
- */
87
- select(property) {
88
- return this.onChange.pipe(map((userPreferenceStatus) => userPreferenceStatus[property]), distinctUntilChanged());
89
- }
90
- /**
91
- * Gets a preference property.
92
- *
93
- * @param property Name of the property
94
- * @param defaultValue Default to return if the property is not found
95
- * @returns Preference property
96
- */
97
- get(property, defaultValue) {
98
- const key = this.getPropertyKey(property);
99
- const value = this.storage.getItem(key);
100
- if (value === undefined || value === null) {
101
- return defaultValue;
102
- }
103
- return value;
104
- }
105
- /**
106
- * Sets a preference property.
107
- *
108
- * @param property Name of the property
109
- * @param value New value for the property
110
- */
111
- set(property, value) {
112
- if (!property) {
113
- return;
114
- }
115
- this.storage.setItem(this.getPropertyKey(property), value);
116
- this.userPreferenceStatus[property] = value;
117
- this.onChangeSubject.next(this.userPreferenceStatus);
118
- }
119
- /**
120
- * Sets a preference property.
121
- *
122
- * @param property Name of the property
123
- * @param value New value for the property
124
- */
125
- setWithoutStore(property, value) {
126
- if (!property) {
127
- return;
128
- }
129
- this.userPreferenceStatus[property] = value;
130
- this.onChangeSubject.next(this.userPreferenceStatus);
131
- }
132
- /**
133
- * Check if an item is present in the storage
134
- *
135
- * @param property Name of the property
136
- * @returns True if the item is present, false otherwise
137
- */
138
- hasItem(property) {
139
- if (!property) {
140
- return false;
141
- }
142
- return this.storage.hasItem(this.getPropertyKey(property));
143
- }
144
- /**
145
- * Gets the active storage prefix for preferences.
146
- *
147
- * @returns Storage prefix
148
- */
149
- getStoragePrefix() {
150
- return this.storage.getItem('USER_PROFILE') || 'GUEST';
151
- }
152
- /**
153
- * Sets the active storage prefix for preferences.
154
- *
155
- * @param value Name of the prefix
156
- */
157
- setStoragePrefix(value) {
158
- this.storage.setItem('USER_PROFILE', value || 'GUEST');
159
- this.initUserPreferenceStatus();
160
- }
161
- /**
162
- * Gets the full property key with prefix.
163
- *
164
- * @param property The property name
165
- * @returns Property key
166
- */
167
- getPropertyKey(property) {
168
- return `${this.getStoragePrefix()}__${property}`;
169
- }
170
- /**
171
- * Gets an array containing the available page sizes.
172
- *
173
- * @returns Array of page size values
174
- */
175
- get supportedPageSizes() {
176
- const supportedPageSizes = this.get(UserPreferenceValues.SupportedPageSizes);
177
- if (supportedPageSizes) {
178
- return JSON.parse(supportedPageSizes);
179
- }
180
- else {
181
- return this.appConfig.get('pagination.supportedPageSizes', this.defaults.supportedPageSizes);
182
- }
183
- }
184
- set supportedPageSizes(value) {
185
- this.set(UserPreferenceValues.SupportedPageSizes, JSON.stringify(value));
186
- }
187
- /** Pagination size. */
188
- set paginationSize(value) {
189
- this.set(UserPreferenceValues.PaginationSize, value);
190
- }
191
- get paginationSize() {
192
- const paginationSize = this.get(UserPreferenceValues.PaginationSize);
193
- if (paginationSize) {
194
- return Number(paginationSize);
195
- }
196
- else {
197
- return Number(this.appConfig.get('pagination.size', this.defaults.paginationSize));
198
- }
199
- }
200
- /**
201
- * Current locale setting.
202
- *
203
- * @returns locale name
204
- */
205
- get locale() {
206
- return this.get(UserPreferenceValues.Locale);
207
- }
208
- set locale(value) {
209
- this.set(UserPreferenceValues.Locale, value);
210
- }
211
- /**
212
- * Gets the default locale.
213
- *
214
- * @returns Default locale language code
215
- */
216
- getDefaultLocale() {
217
- return this.appConfig.get(UserPreferenceValues.Locale) || this.translate.getBrowserCultureLang() || 'en';
218
- }
219
- getLanguageByKey(key) {
220
- const defaultLanguage = { key: 'en' };
221
- let language;
222
- const customLanguages = this.appConfig.get(AppConfigValues.APP_CONFIG_LANGUAGES_KEY);
223
- if (Array.isArray(customLanguages)) {
224
- language = customLanguages.find((customLanguage) => key.includes(customLanguage.key));
225
- }
226
- language ??= DEFAULT_LANGUAGE_LIST.find((defaultLang) => defaultLang.key === key) ?? defaultLanguage;
227
- return language;
228
- }
229
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserPreferencesService, deps: [{ token: i1.TranslateService }, { token: i2.AppConfigService }, { token: i3.StorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
230
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserPreferencesService, providedIn: 'root' }); }
231
- }
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserPreferencesService, decorators: [{
233
- type: Injectable,
234
- args: [{
235
- providedIn: 'root'
236
- }]
237
- }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.AppConfigService }, { type: i3.StorageService }] });
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9jb21tb24vc2VydmljZXMvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQWEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFFMUUscUNBQXFDO0FBQ3JDLE1BQU0sQ0FBTixJQUFZLG9CQUtYO0FBTEQsV0FBWSxvQkFBb0I7SUFDNUIseURBQWlDLENBQUE7SUFDakMseUNBQWlCLENBQUE7SUFDakIsaUVBQXlDLENBQUE7SUFDekMsaUVBQXlDLENBQUE7QUFDN0MsQ0FBQyxFQUxXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFLL0I7QUFLRCxNQUFNLE9BQU8sc0JBQXNCO0lBZ0IvQixZQUFtQixTQUEyQixFQUFVLFNBQTJCLEVBQVUsT0FBdUI7UUFBakcsY0FBUyxHQUFULFNBQVMs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R0FBVztRQUNoQyxNQUFNLGVBQWUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWtCLENBQUM7UUFDdEQsSUFBSSxRQUFzQixDQUFDO1FBRTNCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFzQixlQUFlLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUMxRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxRQUFRLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxRixDQUFDO1FBQ0QsUUFBUSxLQUFLLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsSUFBSSxlQUFlLENBQUM7UUFDckcsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzsrR0ExTlEsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UsIEFwcENvbmZpZ1ZhbHVlcyB9IGZyb20gJy4uLy4uL2FwcC1jb25maWcvYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExhbmd1YWdlSXRlbSB9IGZyb20gJy4vbGFuZ3VhZ2UtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHksIERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IERFRkFVTFRfTEFOR1VBR0VfTElTVCB9IGZyb20gJy4uL21vZGVscy9kZWZhdWx0LWxhbmd1YWdlcy5tb2RlbCc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3dcbmV4cG9ydCBlbnVtIFVzZXJQcmVmZXJlbmNlVmFsdWVzIHtcbiAgICBQYWdpbmF0aW9uU2l6ZSA9ICdwYWdpbmF0aW9uU2l6ZScsXG4gICAgTG9jYWxlID0gJ2xvY2FsZScsXG4gICAgU3VwcG9ydGVkUGFnZVNpemVzID0gJ3N1cHBvcnRlZFBhZ2VTaXplcycsXG4gICAgRXhwYW5kZWRTaWRlTmF2U3RhdHVzID0gJ2V4cGFuZGVkU2lkZW5hdidcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBwcml2YXRlIHJlbmRlcmVyRmFjdG9yeSA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcbiAgICBwcml2YXRlIGRpcmVjdGlvbmFsaXR5ID0gaW5qZWN0KERpcmVjdGlvbmFsaXR5KTtcblxuICAgIGRlZmF1bHRzID0ge1xuICAgICAgICBwYWdpbmF0aW9uU2l6ZTogMjUsXG4gICAgICAgIHN1cHBvcnRlZFBhZ2VTaXplczogWzUsIDEwLCAxNSwgMjBdLFxuICAgICAgICBsb2NhbGU6ICdlbicsXG4gICAgICAgIGV4cGFuZGVkU2lkZW5hdjogdHJ1ZVxuICAgIH07XG5cbiAgICBwcml2YXRlIHVzZXJQcmVmZXJlbmNlU3RhdHVzOiBhbnkgPSB0aGlzLmRlZmF1bHRzO1xuICAgIHByaXZhdGUgb25DaGFuZ2VTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8YW55PjtcbiAgICBvbkNoYW5nZTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSBhcHBDb25maWc6IEFwcENvbmZpZ1NlcnZpY2UsIHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMudXNlclByZWZlcmVuY2VTdGF0dXMpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5hcHBDb25maWcub25Mb2FkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRVc2VyUHJlZmVyZW5jZVN0YXR1cygpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0KCd0ZXh0T3JpZW50YXRpb24nKS5zdWJzY3JpYmUoKGRpcmVjdGlvbjogRGlyZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5kb2N1bWVudC5ib2R5LCAnZGlyJywgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgICh0aGlzLmRpcmVjdGlvbmFsaXR5IGFzIGFueSkudmFsdWUgPSBkaXJlY3Rpb247XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFVzZXJQcmVmZXJlbmNlU3RhdHVzKCkge1xuICAgICAgICB0aGlzLmluaXRVc2VyTGFuZ3VhZ2UoKTtcbiAgICAgICAgdGhpcy5zZXQoVXNlclByZWZlcmVuY2VWYWx1ZXMuUGFnaW5hdGlvblNpemUsIHRoaXMucGFnaW5hdGlvblNpemUpO1xuICAgICAgICB0aGlzLnNldChVc2VyUHJlZmVyZW5jZVZhbHVlcy5TdXBwb3J0ZWRQYWdlU2l6ZXMsIEpTT04uc3RyaW5naWZ5KHRoaXMuc3VwcG9ydGVkUGFnZVNpemVzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0VXNlckxhbmd1YWdlKCkge1xuICAgICAgICBpZiAodGhpcy5sb2NhbGUgfHwgdGhpcy5hcHBDb25maWcuZ2V0PHN0cmluZz4oVXNlclByZWZlcmVuY2VWYWx1ZXMuTG9jYWxlKSkge1xuICAgICAgICAgICAgY29uc3QgbG9jYWxlID0gdGhpcy5sb2NhbGUgfHwgdGhpcy5nZXREZWZhdWx0TG9jYWxlKCk7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLkxvY2FsZSwgbG9jYWxlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0KCd0ZXh0T3JpZW50YXRpb24nLCB0aGlzLmdldExhbmd1YWdlQnlLZXkobG9jYWxlKS5kaXJlY3Rpb24gfHwgJ2x0cicpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbG9jYWxlID0gdGhpcy5sb2NhbGUgfHwgdGhpcy5nZXREZWZhdWx0TG9jYWxlKCk7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0V2l0aG91dFN0b3JlKFVzZXJQcmVmZXJlbmNlVmFsdWVzLkxvY2FsZSwgbG9jYWxlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0V2l0aG91dFN0b3JlKCd0ZXh0T3JpZW50YXRpb24nLCB0aGlzLmdldExhbmd1YWdlQnlLZXkobG9jYWxlKS5kaXJlY3Rpb24gfHwgJ2x0cicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB1cCBhIGNhbGxiYWNrIHRvIG5vdGlmeSB3aGVuIGEgcHJvcGVydHkgaGFzIGNoYW5nZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIHdhdGNoXG4gICAgICogQHJldHVybnMgTm90aWZpY2F0aW9uIGNhbGxiYWNrXG4gICAgICovXG4gICAgc2VsZWN0PFQgPSBhbnk+KHByb3BlcnR5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub25DaGFuZ2UucGlwZShcbiAgICAgICAgICAgIG1hcCgodXNlclByZWZlcmVuY2VTdGF0dXMpID0+IHVzZXJQcmVmZXJlbmNlU3RhdHVzW3Byb3BlcnR5XSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHByZWZlcmVuY2UgcHJvcGVydHkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgTmFtZSBvZiB0aGUgcHJvcGVydHlcbiAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIERlZmF1bHQgdG8gcmV0dXJuIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3QgZm91bmRcbiAgICAgKiBAcmV0dXJucyBQcmVmZXJlbmNlIHByb3BlcnR5XG4gICAgICovXG4gICAgZ2V0KHByb3BlcnR5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0UHJvcGVydHlLZXkocHJvcGVydHkpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgcHJlZmVyZW5jZSBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBOYW1lIG9mIHRoZSBwcm9wZXJ0eVxuICAgICAqIEBwYXJhbSB2YWx1ZSBOZXcgdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eVxuICAgICAqL1xuICAgIHNldChwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICghcHJvcGVydHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmdldFByb3BlcnR5S2V5KHByb3BlcnR5KSwgdmFsdWUpO1xuICAgICAgICB0aGlzLnVzZXJQcmVmZXJlbmNlU3RhdHVzW3Byb3BlcnR5XSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlU3ViamVjdC5uZXh0KHRoaXMudXNlclByZWZlcmVuY2VTdGF0dXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgYSBwcmVmZXJlbmNlIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnR5IE5hbWUgb2YgdGhlIHByb3BlcnR5XG4gICAgICogQHBhcmFtIHZhbHVlIE5ldyB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5XG4gICAgICovXG4gICAgc2V0V2l0aG91dFN0b3JlKHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKCFwcm9wZXJ0eSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXNlclByZWZlcmVuY2VTdGF0dXNbcHJvcGVydHldID0gdmFsdWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy51c2VyUHJlZmVyZW5jZVN0YXR1cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYW4gaXRlbSBpcyBwcmVzZW50IGluIHRoZSBzdG9yYWdlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgTmFtZSBvZiB0aGUgcHJvcGVydHlcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBpdGVtIGlzIHByZXNlbnQsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIGhhc0l0ZW0ocHJvcGVydHk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXByb3BlcnR5KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5oYXNJdGVtKHRoaXMuZ2V0UHJvcGVydHlLZXkocHJvcGVydHkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBhY3RpdmUgc3RvcmFnZSBwcmVmaXggZm9yIHByZWZlcmVuY2VzLlxuICAgICAqXG4gICAgICogQHJldHVybnMgU3RvcmFnZSBwcmVmaXhcbiAgICAgKi9cbiAgICBnZXRTdG9yYWdlUHJlZml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSgnVVNFUl9QUk9GSUxFJykgfHwgJ0dVRVNUJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBhY3RpdmUgc3RvcmFnZSBwcmVmaXggZm9yIHByZWZlcmVuY2VzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIE5hbWUgb2YgdGhlIHByZWZpeFxuICAgICAqL1xuICAgIHNldFN0b3JhZ2VQcmVmaXgodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oJ1VTRVJfUFJPRklMRScsIHZhbHVlIHx8ICdHVUVTVCcpO1xuICAgICAgICB0aGlzLmluaXRVc2VyUHJlZmVyZW5jZVN0YXR1cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGZ1bGwgcHJvcGVydHkga2V5IHdpdGggcHJlZml4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BlcnR5IFRoZSBwcm9wZXJ0eSBuYW1lXG4gICAgICogQHJldHVybnMgUHJvcGVydHkga2V5XG4gICAgICovXG4gICAgZ2V0UHJvcGVydHlLZXkocHJvcGVydHk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldFN0b3JhZ2VQcmVmaXgoKX1fXyR7cHJvcGVydHl9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGF2YWlsYWJsZSBwYWdlIHNpemVzLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgcGFnZSBzaXplIHZhbHVlc1xuICAgICAqL1xuICAgIGdldCBzdXBwb3J0ZWRQYWdlU2l6ZXMoKTogbnVtYmVyW10ge1xuICAgICAgICBjb25zdCBzdXBwb3J0ZWRQYWdlU2l6ZXMgPSB0aGlzLmdldChVc2VyUHJlZmVyZW5jZVZhbHVlcy5TdXBwb3J0ZWRQYWdlU2l6ZXMpO1xuXG4gICAgICAgIGlmIChzdXBwb3J0ZWRQYWdlU2l6ZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHN1cHBvcnRlZFBhZ2VTaXplcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBDb25maWcuZ2V0KCdwYWdpbmF0aW9uLnN1cHBvcnRlZFBhZ2VTaXplcycsIHRoaXMuZGVmYXVsdHMuc3VwcG9ydGVkUGFnZVNpemVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldCBzdXBwb3J0ZWRQYWdlU2l6ZXModmFsdWU6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMuc2V0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLlN1cHBvcnRlZFBhZ2VTaXplcywgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKiogUGFnaW5hdGlvbiBzaXplLiAqL1xuICAgIHNldCBwYWdpbmF0aW9uU2l6ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLlBhZ2luYXRpb25TaXplLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHBhZ2luYXRpb25TaXplKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBhZ2luYXRpb25TaXplID0gdGhpcy5nZXQoVXNlclByZWZlcmVuY2VWYWx1ZXMuUGFnaW5hdGlvblNpemUpO1xuXG4gICAgICAgIGlmIChwYWdpbmF0aW9uU2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihwYWdpbmF0aW9uU2l6ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHRoaXMuYXBwQ29uZmlnLmdldCgncGFnaW5hdGlvbi5zaXplJywgdGhpcy5kZWZhdWx0cy5wYWdpbmF0aW9uU2l6ZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3VycmVudCBsb2NhbGUgc2V0dGluZy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGxvY2FsZSBuYW1lXG4gICAgICovXG4gICAgZ2V0IGxvY2FsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoVXNlclByZWZlcmVuY2VWYWx1ZXMuTG9jYWxlKTtcbiAgICB9XG5cbiAgICBzZXQgbG9jYWxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoVXNlclByZWZlcmVuY2VWYWx1ZXMuTG9jYWxlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZGVmYXVsdCBsb2NhbGUuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBEZWZhdWx0IGxvY2FsZSBsYW5ndWFnZSBjb2RlXG4gICAgICovXG4gICAgZ2V0RGVmYXVsdExvY2FsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBDb25maWcuZ2V0PHN0cmluZz4oVXNlclByZWZlcmVuY2VWYWx1ZXMuTG9jYWxlKSB8fCB0aGlzLnRyYW5zbGF0ZS5nZXRCcm93c2VyQ3VsdHVyZUxhbmcoKSB8fCAnZW4nO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGFuZ3VhZ2VCeUtleShrZXk6IHN0cmluZyk6IExhbmd1YWdlSXRlbSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYW5ndWFnZSA9IHsga2V5OiAnZW4nIH0gYXMgTGFuZ3VhZ2VJdGVtO1xuICAgICAgICBsZXQgbGFuZ3VhZ2U6IExhbmd1YWdlSXRlbTtcblxuICAgICAgICBjb25zdCBjdXN0b21MYW5ndWFnZXMgPSB0aGlzLmFwcENvbmZpZy5nZXQ8QXJyYXk8TGFuZ3VhZ2VJdGVtPj4oQXBwQ29uZmlnVmFsdWVzLkFQUF9DT05GSUdfTEFOR1VBR0VTX0tFWSk7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1c3RvbUxhbmd1YWdlcykpIHtcbiAgICAgICAgICAgIGxhbmd1YWdlID0gY3VzdG9tTGFuZ3VhZ2VzLmZpbmQoKGN1c3RvbUxhbmd1YWdlKSA9PiBrZXkuaW5jbHVkZXMoY3VzdG9tTGFuZ3VhZ2Uua2V5KSk7XG4gICAgICAgIH1cbiAgICAgICAgbGFuZ3VhZ2UgPz89IERFRkFVTFRfTEFOR1VBR0VfTElTVC5maW5kKChkZWZhdWx0TGFuZykgPT4gZGVmYXVsdExhbmcua2V5ID09PSBrZXkpID8/IGRlZmF1bHRMYW5ndWFnZTtcbiAgICAgICAgcmV0dXJuIGxhbmd1YWdlO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,115 +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
- import { DateFnsAdapter } from '@angular/material-date-fns-adapter';
18
- import { DateFnsUtils } from './date-fns-utils';
19
- import { Inject, Injectable, Optional } from '@angular/core';
20
- import { MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
21
- import { UserPreferenceValues, UserPreferencesService } from '../services/user-preferences.service';
22
- import { isValid, parse } from 'date-fns';
23
- import * as i0 from "@angular/core";
24
- import * as i1 from "../services/user-preferences.service";
25
- /**
26
- * Date-fns adapter with moment-to-date-fns conversion.
27
- *
28
- * Automatically switches locales based on user preferences.
29
- * Supports custom display format.
30
- *
31
- * @example
32
- *
33
- * Add the following to the component `providers` section
34
- *
35
- * providers: [
36
- * { provide: MAT_DATE_FORMATS, useValue: ADF_FORM_DATE_FORMATS },
37
- * { provide: DateAdapter, useClass: AdfDateFnsAdapter }
38
- * ]
39
- *
40
- * Setting custom format
41
- *
42
- * constructor(private dateAdapter: DateAdapter<Date>) {}
43
- *
44
- * ngOnInit() {
45
- * const adapter = this.dateAdapter as AdfDateFnsAdapter;
46
- adapter.displayFormat = '<custom date-fns format>';
47
- * }
48
- */
49
- export const DEFAULT_DATE_FORMAT = 'dd-MM-yyyy';
50
- /**
51
- * Material date formats for Date-fns
52
- */
53
- export const ADF_DATE_FORMATS = {
54
- parse: {
55
- dateInput: DEFAULT_DATE_FORMAT
56
- },
57
- display: {
58
- dateInput: DEFAULT_DATE_FORMAT,
59
- monthLabel: 'LLL',
60
- monthYearLabel: 'LLL uuuu',
61
- dateA11yLabel: 'PP',
62
- monthYearA11yLabel: 'LLLL uuuu'
63
- }
64
- };
65
- export class AdfDateFnsAdapter extends DateFnsAdapter {
66
- get displayFormat() {
67
- return this._displayFormat;
68
- }
69
- set displayFormat(value) {
70
- this._displayFormat = value ? DateFnsUtils.convertMomentToDateFnsFormat(value) : null;
71
- }
72
- constructor(matDateLocale, formats, preferences) {
73
- super(matDateLocale);
74
- this.formats = formats;
75
- this._displayFormat = null;
76
- preferences.select(UserPreferenceValues.Locale).subscribe((locale) => {
77
- this.setLocale(DateFnsUtils.getLocaleFromString(locale));
78
- });
79
- }
80
- parse(value, parseFormat) {
81
- const dateValue = this.isValid(value) ? value : this.parseAndValidateDate(value);
82
- const format = Array.isArray(parseFormat)
83
- ? parseFormat.map(DateFnsUtils.convertMomentToDateFnsFormat)
84
- : DateFnsUtils.convertMomentToDateFnsFormat(parseFormat);
85
- return super.parse(dateValue, format);
86
- }
87
- format(date, displayFormat) {
88
- displayFormat = DateFnsUtils.convertMomentToDateFnsFormat(displayFormat);
89
- if (this.displayFormat && displayFormat === this.formats?.display?.dateInput) {
90
- return super.format(date, this.displayFormat || displayFormat);
91
- }
92
- return super.format(date, displayFormat);
93
- }
94
- parseAndValidateDate(value) {
95
- const parsedDate = parse(value, this.displayFormat || DEFAULT_DATE_FORMAT, new Date());
96
- return isValid(parsedDate) ? parsedDate : value;
97
- }
98
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdfDateFnsAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: MAT_DATE_FORMATS, optional: true }, { token: i1.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
99
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdfDateFnsAdapter, providedIn: 'root' }); }
100
- }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdfDateFnsAdapter, decorators: [{
102
- type: Injectable,
103
- args: [{ providedIn: 'root' }]
104
- }], ctorParameters: () => [{ type: undefined, decorators: [{
105
- type: Optional
106
- }, {
107
- type: Inject,
108
- args: [MAT_DATE_LOCALE]
109
- }] }, { type: undefined, decorators: [{
110
- type: Optional
111
- }, {
112
- type: Inject,
113
- args: [MAT_DATE_FORMATS]
114
- }] }, { type: i1.UserPreferencesService }] });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mbnMtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvY29tbW9uL3V0aWxzL2RhdGUtZm5zLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRyxPQUFPLEVBQUUsT0FBTyxFQUFVLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBRWxEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUVILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQztBQUVoRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFtQjtJQUM1QyxLQUFLLEVBQUU7UUFDSCxTQUFTLEVBQUUsbUJBQW1CO0tBQ2pDO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsU0FBUyxFQUFFLG1CQUFtQjtRQUM5QixVQUFVLEVBQUUsS0FBSztRQUNqQixjQUFjLEVBQUUsVUFBVTtRQUMxQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxXQUFXO0tBQ2xDO0NBQ0osQ0FBQztBQUdGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxjQUFjO0lBR2pELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsS0FBb0I7UUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFGLENBQUM7SUFFRCxZQUN5QyxhQUFxQixFQUNaLE9BQXVCLEVBQ3JFLFdBQW1DO1FBRW5DLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUh5QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQVpqRSxtQkFBYyxHQUFZLElBQUksQ0FBQztRQWlCbkMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRTtZQUN6RSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVRLEtBQUssQ0FBQyxLQUFVLEVBQUUsV0FBOEI7UUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakYsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFDckMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLDRCQUE0QixDQUFDO1lBQzVELENBQUMsQ0FBQyxZQUFZLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRVEsTUFBTSxDQUFDLElBQVUsRUFBRSxhQUFxQjtRQUM3QyxhQUFhLEdBQUcsWUFBWSxDQUFDLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXpFLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxhQUFhLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDM0UsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLGFBQWEsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxLQUFVO1FBQ25DLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxtQkFBbUIsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkYsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BELENBQUM7K0dBNUNRLGlCQUFpQixrQkFZRixlQUFlLDZCQUNmLGdCQUFnQjttSEFiL0IsaUJBQWlCLGNBREosTUFBTTs7NEZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWF6QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRGF0ZUZuc0FkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1kYXRlLWZucy1hZGFwdGVyJztcbmltcG9ydCB7IERhdGVGbnNVdGlscyB9IGZyb20gJy4vZGF0ZS1mbnMtdXRpbHMnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VWYWx1ZXMsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91c2VyLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNWYWxpZCwgTG9jYWxlLCBwYXJzZSB9IGZyb20gJ2RhdGUtZm5zJztcblxuLyoqXG4gKiBEYXRlLWZucyBhZGFwdGVyIHdpdGggbW9tZW50LXRvLWRhdGUtZm5zIGNvbnZlcnNpb24uXG4gKlxuICogQXV0b21hdGljYWxseSBzd2l0Y2hlcyBsb2NhbGVzIGJhc2VkIG9uIHVzZXIgcHJlZmVyZW5jZXMuXG4gKiBTdXBwb3J0cyBjdXN0b20gZGlzcGxheSBmb3JtYXQuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBBZGQgdGhlIGZvbGxvd2luZyB0byB0aGUgY29tcG9uZW50IGBwcm92aWRlcnNgIHNlY3Rpb25cbiAqXG4gKiBwcm92aWRlcnM6IFtcbiAqICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBBREZfRk9STV9EQVRFX0ZPUk1BVFMgfSxcbiAqICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogQWRmRGF0ZUZuc0FkYXB0ZXIgfVxuICogXVxuICpcbiAqIFNldHRpbmcgY3VzdG9tIGZvcm1hdFxuICpcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGU+KSB7fVxuICpcbiAqIG5nT25Jbml0KCkge1xuICogICBjb25zdCBhZGFwdGVyID0gdGhpcy5kYXRlQWRhcHRlciBhcyBBZGZEYXRlRm5zQWRhcHRlcjtcbiAgICAgYWRhcHRlci5kaXNwbGF5Rm9ybWF0ID0gJzxjdXN0b20gZGF0ZS1mbnMgZm9ybWF0Pic7XG4gKiB9XG4gKi9cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREFURV9GT1JNQVQgPSAnZGQtTU0teXl5eSc7XG5cbi8qKlxuICogTWF0ZXJpYWwgZGF0ZSBmb3JtYXRzIGZvciBEYXRlLWZuc1xuICovXG5leHBvcnQgY29uc3QgQURGX0RBVEVfRk9STUFUUzogTWF0RGF0ZUZvcm1hdHMgPSB7XG4gICAgcGFyc2U6IHtcbiAgICAgICAgZGF0ZUlucHV0OiBERUZBVUxUX0RBVEVfRk9STUFUXG4gICAgfSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICAgIGRhdGVJbnB1dDogREVGQVVMVF9EQVRFX0ZPUk1BVCxcbiAgICAgICAgbW9udGhMYWJlbDogJ0xMTCcsXG4gICAgICAgIG1vbnRoWWVhckxhYmVsOiAnTExMIHV1dXUnLFxuICAgICAgICBkYXRlQTExeUxhYmVsOiAnUFAnLFxuICAgICAgICBtb250aFllYXJBMTF5TGFiZWw6ICdMTExMIHV1dXUnXG4gICAgfVxufTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBZGZEYXRlRm5zQWRhcHRlciBleHRlbmRzIERhdGVGbnNBZGFwdGVyIHtcbiAgICBwcml2YXRlIF9kaXNwbGF5Rm9ybWF0Pzogc3RyaW5nID0gbnVsbDtcblxuICAgIGdldCBkaXNwbGF5Rm9ybWF0KCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheUZvcm1hdDtcbiAgICB9XG5cbiAgICBzZXQgZGlzcGxheUZvcm1hdCh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9kaXNwbGF5Rm9ybWF0ID0gdmFsdWUgPyBEYXRlRm5zVXRpbHMuY29udmVydE1vbWVudFRvRGF0ZUZuc0Zvcm1hdCh2YWx1ZSkgOiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9EQVRFX0xPQ0FMRSkgbWF0RGF0ZUxvY2FsZTogTG9jYWxlLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9EQVRFX0ZPUk1BVFMpIHByaXZhdGUgZm9ybWF0czogTWF0RGF0ZUZvcm1hdHMsXG4gICAgICAgIHByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKG1hdERhdGVMb2NhbGUpO1xuXG4gICAgICAgIHByZWZlcmVuY2VzLnNlbGVjdChVc2VyUHJlZmVyZW5jZVZhbHVlcy5Mb2NhbGUpLnN1YnNjcmliZSgobG9jYWxlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0TG9jYWxlKERhdGVGbnNVdGlscy5nZXRMb2NhbGVGcm9tU3RyaW5nKGxvY2FsZSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBwYXJzZSh2YWx1ZTogYW55LCBwYXJzZUZvcm1hdDogc3RyaW5nIHwgc3RyaW5nW10pOiBEYXRlIHtcbiAgICAgICAgY29uc3QgZGF0ZVZhbHVlID0gdGhpcy5pc1ZhbGlkKHZhbHVlKSA/IHZhbHVlIDogdGhpcy5wYXJzZUFuZFZhbGlkYXRlRGF0ZSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IEFycmF5LmlzQXJyYXkocGFyc2VGb3JtYXQpXG4gICAgICAgICAgICA/IHBhcnNlRm9ybWF0Lm1hcChEYXRlRm5zVXRpbHMuY29udmVydE1vbWVudFRvRGF0ZUZuc0Zvcm1hdClcbiAgICAgICAgICAgIDogRGF0ZUZuc1V0aWxzLmNvbnZlcnRNb21lbnRUb0RhdGVGbnNGb3JtYXQocGFyc2VGb3JtYXQpO1xuICAgICAgICByZXR1cm4gc3VwZXIucGFyc2UoZGF0ZVZhbHVlLCBmb3JtYXQpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGZvcm1hdChkYXRlOiBEYXRlLCBkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBkaXNwbGF5Rm9ybWF0ID0gRGF0ZUZuc1V0aWxzLmNvbnZlcnRNb21lbnRUb0RhdGVGbnNGb3JtYXQoZGlzcGxheUZvcm1hdCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheUZvcm1hdCAmJiBkaXNwbGF5Rm9ybWF0ID09PSB0aGlzLmZvcm1hdHM/LmRpc3BsYXk/LmRhdGVJbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmZvcm1hdChkYXRlLCB0aGlzLmRpc3BsYXlGb3JtYXQgfHwgZGlzcGxheUZvcm1hdCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VwZXIuZm9ybWF0KGRhdGUsIGRpc3BsYXlGb3JtYXQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFyc2VBbmRWYWxpZGF0ZURhdGUodmFsdWU6IGFueSk6IERhdGUge1xuICAgICAgICBjb25zdCBwYXJzZWREYXRlID0gcGFyc2UodmFsdWUsIHRoaXMuZGlzcGxheUZvcm1hdCB8fCBERUZBVUxUX0RBVEVfRk9STUFULCBuZXcgRGF0ZSgpKTtcbiAgICAgICAgcmV0dXJuIGlzVmFsaWQocGFyc2VkRGF0ZSkgPyBwYXJzZWREYXRlIDogdmFsdWU7XG4gICAgfVxufVxuIl19
@@ -1,222 +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
- import { format, parse, parseISO, isValid, isBefore, isAfter } from 'date-fns';
18
- import { ar, cs, da, de, enUS, es, fi, fr, it, ja, nb, nl, pl, ptBR, ru, sv, zhCN } from 'date-fns/locale';
19
- const panDate = (num = 1) => {
20
- let text = num.toString();
21
- while (text.length < 2) {
22
- text = '0' + text;
23
- }
24
- return text;
25
- };
26
- export class DateFnsUtils {
27
- static getLocaleFromString(locale) {
28
- let dateFnsLocale;
29
- switch (locale) {
30
- case 'ar':
31
- dateFnsLocale = ar;
32
- break;
33
- case 'cs':
34
- dateFnsLocale = cs;
35
- break;
36
- case 'da':
37
- dateFnsLocale = da;
38
- break;
39
- case 'de':
40
- dateFnsLocale = de;
41
- break;
42
- case 'en':
43
- dateFnsLocale = enUS;
44
- break;
45
- case 'es':
46
- dateFnsLocale = es;
47
- break;
48
- case 'fi':
49
- dateFnsLocale = fi;
50
- break;
51
- case 'fr':
52
- dateFnsLocale = fr;
53
- break;
54
- case 'it':
55
- dateFnsLocale = it;
56
- break;
57
- case 'ja':
58
- dateFnsLocale = ja;
59
- break;
60
- case 'nb':
61
- dateFnsLocale = nb;
62
- break;
63
- case 'nl':
64
- dateFnsLocale = nl;
65
- break;
66
- case 'pl':
67
- dateFnsLocale = pl;
68
- break;
69
- case 'pt-BR':
70
- dateFnsLocale = ptBR;
71
- break;
72
- case 'ru':
73
- dateFnsLocale = ru;
74
- break;
75
- case 'sv':
76
- dateFnsLocale = sv;
77
- break;
78
- case 'zh-CN':
79
- dateFnsLocale = zhCN;
80
- break;
81
- default:
82
- dateFnsLocale = enUS;
83
- break;
84
- }
85
- return dateFnsLocale;
86
- }
87
- static { this.momentToDateFnsMap = {
88
- D: 'd',
89
- Y: 'y',
90
- AZ: 'aa',
91
- A: 'a',
92
- ll: 'PP',
93
- T: `'T'`,
94
- ZZ: 'XX',
95
- Z: `XXX`
96
- }; }
97
- /**
98
- * Converts a Moment.js date format string to the equivalent date-fns format string.
99
- *
100
- * @param dateDisplayFormat - The Moment.js date format string to convert.
101
- * @returns The equivalent date-fns format string.
102
- */
103
- static convertMomentToDateFnsFormat(dateDisplayFormat) {
104
- if (dateDisplayFormat && dateDisplayFormat.trim() !== '') {
105
- // normalise the input to support double conversion of the same string
106
- dateDisplayFormat = dateDisplayFormat.replace(`'T'`, 'T');
107
- for (const [search, replace] of Object.entries(this.momentToDateFnsMap)) {
108
- dateDisplayFormat = dateDisplayFormat.replace(new RegExp(search, 'g'), replace);
109
- }
110
- return dateDisplayFormat;
111
- }
112
- return '';
113
- }
114
- /**
115
- * Formats a date using the specified date format.
116
- *
117
- * @param date - The date to format, can be a number or a Date object.
118
- * @param dateFormat - The date format string to use for formatting.
119
- * @returns The formatted date as a string
120
- */
121
- static formatDate(date, dateFormat) {
122
- if (typeof date === 'string') {
123
- date = parseISO(date);
124
- }
125
- return format(date, this.convertMomentToDateFnsFormat(dateFormat));
126
- }
127
- /**
128
- * Parses a date string using the specified date format.
129
- *
130
- * @param value - The date value to parse. Can be a string or a Date (for generic calls)
131
- * @param dateFormat - The date format string to use for parsing.
132
- * @param options - Additional options
133
- * @param options.dateOnly - Strip the time and zone
134
- * @returns The parsed Date object.
135
- */
136
- static parseDate(value, dateFormat, options) {
137
- if (value) {
138
- if (typeof value === 'string') {
139
- if (options?.dateOnly && value.includes('T')) {
140
- value = value.split('T')[0];
141
- }
142
- return parse(value, this.convertMomentToDateFnsFormat(dateFormat), new Date());
143
- }
144
- return value;
145
- }
146
- return new Date('error');
147
- }
148
- /**
149
- * Parses a datetime string using the ISO format
150
- *
151
- * @param value - The date and time string to parse
152
- * @returns returns the parsed Date object
153
- */
154
- static parseDateTime(value) {
155
- return parseISO(value);
156
- }
157
- /**
158
- * Checks if the date string is a valid date according to the specified format
159
- *
160
- * @param dateValue Date value
161
- * @param dateFormat The date format
162
- * @returns `true` if the date is valid, otherwise `false`
163
- */
164
- static isValidDate(dateValue, dateFormat) {
165
- if (dateValue) {
166
- const date = this.parseDate(dateValue, dateFormat);
167
- return isValid(date);
168
- }
169
- return false;
170
- }
171
- /**
172
- * Validates a date is before another one
173
- *
174
- * @param source source date to compare
175
- * @param target target date to compare
176
- * @returns `true` if the source date is before the target one, otherwise `false`
177
- */
178
- static isBeforeDate(source, target) {
179
- return isBefore(source, target);
180
- }
181
- /**
182
- * Validates a date is after another one
183
- *
184
- * @param source source date to compare
185
- * @param target target date to compare
186
- * @returns `true` if the source date is after the target one, otherwise `false`
187
- */
188
- static isAfterDate(source, target) {
189
- return isAfter(source, target);
190
- }
191
- static utcToLocal(date) {
192
- return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));
193
- }
194
- static localToUtc(date) {
195
- return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
196
- }
197
- static forceLocal(date) {
198
- if (typeof date === 'string') {
199
- date = parseISO(date);
200
- }
201
- const localDate = `${date.getUTCFullYear()}-${panDate(date.getUTCMonth() + 1)}-${panDate(date.getUTCDate())}T00:00:00.000`;
202
- return new Date(localDate);
203
- }
204
- static forceUtc(date) {
205
- if (typeof date === 'string') {
206
- date = parseISO(date);
207
- }
208
- const utcDate = `${date.getFullYear()}-${panDate(date.getMonth() + 1)}-${panDate(date.getDate())}T00:00:00.000Z`;
209
- return new Date(utcDate);
210
- }
211
- static stringDateContainsTimeZone(value) {
212
- return /(Z|([+|-]\d\d:?\d\d))$/.test(value);
213
- }
214
- static getDate(value) {
215
- let date = new Date(value);
216
- if (typeof value === 'string' && !DateFnsUtils.stringDateContainsTimeZone(value)) {
217
- date = this.utcToLocal(date);
218
- }
219
- return date;
220
- }
221
- }
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mbnMtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2NvbW1vbi91dGlscy9kYXRlLWZucy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0UsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzRyxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQWMsQ0FBQyxFQUFVLEVBQUU7SUFDeEMsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNyQixJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxPQUFPLFlBQVk7SUFDckIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQWM7UUFDckMsSUFBSSxhQUFxQixDQUFDO1FBQzFCLFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDYixLQUFLLElBQUk7Z0JBQ0wsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsTUFBTTtZQUNWLEtBQUssSUFBSTtnQkFDTCxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUNu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O1FBQy9CLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQ2pILE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxLQUFhO1FBQzNDLE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQTZCO1FBQ3hDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0UsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGZvcm1hdCwgcGFyc2UsIHBhcnNlSVNPLCBpc1ZhbGlkLCBpc0JlZm9yZSwgaXNBZnRlciB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IGFyLCBjcywgZGEsIGRlLCBlblVTLCBlcywgZmksIGZyLCBpdCwgamEsIG5iLCBubCwgcGwsIHB0QlIsIHJ1LCBzdiwgemhDTiB9IGZyb20gJ2RhdGUtZm5zL2xvY2FsZSc7XG5cbmNvbnN0IHBhbkRhdGUgPSAobnVtOiBudW1iZXIgPSAxKTogc3RyaW5nID0+IHtcbiAgICBsZXQgdGV4dCA9IG51bS50b1N0cmluZygpO1xuICAgIHdoaWxlICh0ZXh0Lmxlbmd0aCA8IDIpIHtcbiAgICAgICAgdGV4dCA9ICcwJyArIHRleHQ7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0O1xufTtcblxuZXhwb3J0IGNsYXNzIERhdGVGbnNVdGlscyB7XG4gICAgc3RhdGljIGdldExvY2FsZUZyb21TdHJpbmcobG9jYWxlOiBzdHJpbmcpOiBMb2NhbGUge1xuICAgICAgICBsZXQgZGF0ZUZuc0xvY2FsZTogTG9jYWxlO1xuICAgICAgICBzd2l0Y2ggKGxvY2FsZSkge1xuICAgICAgICAgICAgY2FzZSAnYXInOlxuICAgICAgICAgICAgICAgIGRhdGVGbnNMb2NhbGUgPSBhcjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2NzJzpcbiAgICAgICAgICAgICAgICBkYXRlRm5zTG9jYWxlID0gY3M7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYSc6XG4gICAgICAgICAgICAgICAgZGF0ZUZuc0xvY2FsZSA9IGRhO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGUnOlxuICAgICAgICAgICAgICAgIGRhdGVGbnNMb2NhbGUgPSBkZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2VuJzpcbiAgICAgICAgICAgICAgICBkYXRlRm5zTG9jYWxlID0gZW5VUztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2VzJzpcbiAgICAgICAgICAgICAgICBkYXRlRm5zTG9jYWxlID0gZXM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmaSc6XG4gICAgICAgICAgICAgICAgZGF0ZUZuc0xvY2FsZSA9IGZpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZnInOlxuICAgICAgICAgICAgICAgIGRhdGVGbnNMb2NhbGUgPSBmcjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2l0JzpcbiAgICAgICAgICAgICAgICBkYXRlRm5zTG9jYWxlID0gaXQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdqYSc6XG4gICAgICAgICAgICAgICAgZGF0ZUZuc0xvY2FsZSA9IGphO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbmInOlxuICAgICAgICAgICAgICAgIGRhdGVGbnNMb2NhbGUgPSBuYjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ25sJzpcbiAgICAgICAgICAgICAgICBkYXRlRm5zTG9jYWxlID0gbmw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwbCc6XG4gICAgICAgICAgICAgICAgZGF0ZUZuc0xvY2FsZSA9IHBsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncHQtQlInOlxuICAgICAgICAgICAgICAgIGRhdGVGbnNMb2NhbGUgPSBwdEJSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncnUnOlxuICAgICAgICAgICAgICAgIGRhdGVGbnNMb2NhbGUgPSBydTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3N2JzpcbiAgICAgICAgICAgICAgICBkYXRlRm5zTG9jYWxlID0gc3Y7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd6aC1DTic6XG4gICAgICAgICAgICAgICAgZGF0ZUZuc0xvY2FsZSA9IHpoQ047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGRhdGVGbnNMb2NhbGUgPSBlblVTO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRlRm5zTG9jYWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIG1vbWVudFRvRGF0ZUZuc01hcCA9IHtcbiAgICAgICAgRDogJ2QnLFxuICAgICAgICBZOiAneScsXG4gICAgICAgIEFaOiAnYWEnLFxuICAgICAgICBBOiAnYScsXG4gICAgICAgIGxsOiAnUFAnLFxuICAgICAgICBUOiBgJ1QnYCxcbiAgICAgICAgWlo6ICdYWCcsXG4gICAgICAgIFo6IGBYWFhgXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGEgTW9tZW50LmpzIGRhdGUgZm9ybWF0IHN0cmluZyB0byB0aGUgZXF1aXZhbGVudCBkYXRlLWZucyBmb3JtYXQgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGVEaXNwbGF5Rm9ybWF0IC0gVGhlIE1vbWVudC5qcyBkYXRlIGZvcm1hdCBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyBUaGUgZXF1aXZhbGVudCBkYXRlLWZucyBmb3JtYXQgc3RyaW5nLlxuICAgICAqL1xuICAgIHN0YXRpYyBjb252ZXJ0TW9tZW50VG9EYXRlRm5zRm9ybWF0KGRhdGVEaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoZGF0ZURpc3BsYXlGb3JtYXQgJiYgZGF0ZURpc3BsYXlGb3JtYXQudHJpbSgpICE9PSAnJykge1xuICAgICAgICAgICAgLy8gbm9ybWFsaXNlIHRoZSBpbnB1dCB0byBzdXBwb3J0IGRvdWJsZSBjb252ZXJzaW9uIG9mIHRoZSBzYW1lIHN0cmluZ1xuICAgICAgICAgICAgZGF0ZURpc3BsYXlGb3JtYXQgPSBkYXRlRGlzcGxheUZvcm1hdC5yZXBsYWNlKGAnVCdgLCAnVCcpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtzZWFyY2gsIHJlcGxhY2VdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubW9tZW50VG9EYXRlRm5zTWFwKSkge1xuICAgICAgICAgICAgICAgIGRhdGVEaXNwbGF5Rm9ybWF0ID0gZGF0ZURpc3BsYXlGb3JtYXQucmVwbGFjZShuZXcgUmVnRXhwKHNlYXJjaCwgJ2cnKSwgcmVwbGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGF0ZURpc3BsYXlGb3JtYXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvcm1hdHMgYSBkYXRlIHVzaW5nIHRoZSBzcGVjaWZpZWQgZGF0ZSBmb3JtYXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGZvcm1hdCwgY2FuIGJlIGEgbnVtYmVyIG9yIGEgRGF0ZSBvYmplY3QuXG4gICAgICogQHBhcmFtIGRhdGVGb3JtYXQgLSBUaGUgZGF0ZSBmb3JtYXQgc3RyaW5nIHRvIHVzZSBmb3IgZm9ybWF0dGluZy5cbiAgICAgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGRhdGUgYXMgYSBzdHJpbmdcbiAgICAgKi9cbiAgICBzdGF0aWMgZm9ybWF0RGF0ZShkYXRlOiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nLCBkYXRlRm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBkYXRlID0gcGFyc2VJU08oZGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1hdChkYXRlLCB0aGlzLmNvbnZlcnRNb21lbnRUb0RhdGVGbnNGb3JtYXQoZGF0ZUZvcm1hdCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyBhIGRhdGUgc3RyaW5nIHVzaW5nIHRoZSBzcGVjaWZpZWQgZGF0ZSBmb3JtYXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgZGF0ZSB2YWx1ZSB0byBwYXJzZS4gQ2FuIGJlIGEgc3RyaW5nIG9yIGEgRGF0ZSAoZm9yIGdlbmVyaWMgY2FsbHMpXG4gICAgICogQHBhcmFtIGRhdGVGb3JtYXQgLSBUaGUgZGF0ZSBmb3JtYXQgc3RyaW5nIHRvIHVzZSBmb3IgcGFyc2luZy5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9uc1xuICAgICAqIEBwYXJhbSBvcHRpb25zLmRhdGVPbmx5IC0gU3RyaXAgdGhlIHRpbWUgYW5kIHpvbmVcbiAgICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIERhdGUgb2JqZWN0LlxuICAgICAqL1xuICAgIHN0YXRpYyBwYXJzZURhdGUodmFsdWU6IHN0cmluZyB8IERhdGUsIGRhdGVGb3JtYXQ6IHN0cmluZywgb3B0aW9ucz86IHsgZGF0ZU9ubHk/OiBib29sZWFuIH0pOiBEYXRlIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zPy5kYXRlT25seSAmJiB2YWx1ZS5pbmNsdWRlcygnVCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoJ1QnKVswXTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2UodmFsdWUsIHRoaXMuY29udmVydE1vbWVudFRvRGF0ZUZuc0Zvcm1hdChkYXRlRm9ybWF0KSwgbmV3IERhdGUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCdlcnJvcicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyBhIGRhdGV0aW1lIHN0cmluZyB1c2luZyB0aGUgSVNPIGZvcm1hdFxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGRhdGUgYW5kIHRpbWUgc3RyaW5nIHRvIHBhcnNlXG4gICAgICogQHJldHVybnMgcmV0dXJucyB0aGUgcGFyc2VkIERhdGUgb2JqZWN0XG4gICAgICovXG4gICAgc3RhdGljIHBhcnNlRGF0ZVRpbWUodmFsdWU6IHN0cmluZyk6IERhdGUge1xuICAgICAgICByZXR1cm4gcGFyc2VJU08odmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgZGF0ZSBzdHJpbmcgaXMgYSB2YWxpZCBkYXRlIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGZvcm1hdFxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGVWYWx1ZSBEYXRlIHZhbHVlXG4gICAgICogQHBhcmFtIGRhdGVGb3JtYXQgVGhlIGRhdGUgZm9ybWF0XG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBkYXRlIGlzIHZhbGlkLCBvdGhlcndpc2UgYGZhbHNlYFxuICAgICAqL1xuICAgIHN0YXRpYyBpc1ZhbGlkRGF0ZShkYXRlVmFsdWU6IHN0cmluZywgZGF0ZUZvcm1hdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChkYXRlVmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLnBhcnNlRGF0ZShkYXRlVmFsdWUsIGRhdGVGb3JtYXQpO1xuICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWQoZGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyBhIGRhdGUgaXMgYmVmb3JlIGFub3RoZXIgb25lXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc291cmNlIHNvdXJjZSBkYXRlIHRvIGNvbXBhcmVcbiAgICAgKiBAcGFyYW0gdGFyZ2V0IHRhcmdldCBkYXRlIHRvIGNvbXBhcmVcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHNvdXJjZSBkYXRlIGlzIGJlZm9yZSB0aGUgdGFyZ2V0IG9uZSwgb3RoZXJ3aXNlIGBmYWxzZWBcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNCZWZvcmVEYXRlKHNvdXJjZTogRGF0ZSwgdGFyZ2V0OiBEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc0JlZm9yZShzb3VyY2UsIHRhcmdldCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIGEgZGF0ZSBpcyBhZnRlciBhbm90aGVyIG9uZVxuICAgICAqXG4gICAgICogQHBhcmFtIHNvdXJjZSBzb3VyY2UgZGF0ZSB0byBjb21wYXJlXG4gICAgICogQHBhcmFtIHRhcmdldCB0YXJnZXQgZGF0ZSB0byBjb21wYXJlXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBzb3VyY2UgZGF0ZSBpcyBhZnRlciB0aGUgdGFyZ2V0IG9uZSwgb3RoZXJ3aXNlIGBmYWxzZWBcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNBZnRlckRhdGUoc291cmNlOiBEYXRlLCB0YXJnZXQ6IERhdGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzQWZ0ZXIoc291cmNlLCB0YXJnZXQpO1xuICAgIH1cblxuICAgIHN0YXRpYyB1dGNUb0xvY2FsKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgZGF0ZS5nZXRIb3VycygpLCBkYXRlLmdldE1pbnV0ZXMoKSwgZGF0ZS5nZXRTZWNvbmRzKCkpKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgbG9jYWxUb1V0YyhkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFVUQ0Z1bGxZZWFyKCksIGRhdGUuZ2V0VVRDTW9udGgoKSwgZGF0ZS5nZXRVVENEYXRlKCksIGRhdGUuZ2V0VVRDSG91cnMoKSwgZGF0ZS5nZXRVVENNaW51dGVzKCksIGRhdGUuZ2V0VVRDU2Vjb25kcygpKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZm9yY2VMb2NhbChkYXRlOiBEYXRlIHwgc3RyaW5nKTogRGF0ZSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGRhdGUgPSBwYXJzZUlTTyhkYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsb2NhbERhdGUgPSBgJHtkYXRlLmdldFVUQ0Z1bGxZZWFyKCl9LSR7cGFuRGF0ZShkYXRlLmdldFVUQ01vbnRoKCkgKyAxKX0tJHtwYW5EYXRlKGRhdGUuZ2V0VVRDRGF0ZSgpKX1UMDA6MDA6MDAuMDAwYDtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGxvY2FsRGF0ZSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGZvcmNlVXRjKGRhdGU6IERhdGUgfCBzdHJpbmcpOiBEYXRlIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgZGF0ZSA9IHBhcnNlSVNPKGRhdGUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHV0Y0RhdGUgPSBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9LSR7cGFuRGF0ZShkYXRlLmdldE1vbnRoKCkgKyAxKX0tJHtwYW5EYXRlKGRhdGUuZ2V0RGF0ZSgpKX1UMDA6MDA6MDAuMDAwWmA7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh1dGNEYXRlKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgc3RyaW5nRGF0ZUNvbnRhaW5zVGltZVpvbmUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gLyhafChbK3wtXVxcZFxcZDo/XFxkXFxkKSkkLy50ZXN0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0RGF0ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZSk6IERhdGUge1xuICAgICAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhRGF0ZUZuc1V0aWxzLnN0cmluZ0RhdGVDb250YWluc1RpbWVab25lKHZhbHVlKSkge1xuICAgICAgICAgICAgZGF0ZSA9IHRoaXMudXRjVG9Mb2NhbChkYXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cbn1cbiJdfQ==