@alfresco/adf-content-services 8.1.0-16121703802 → 8.1.0-16122789145

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 (418) hide show
  1. package/bundles/assets/adf-content-services/i18n/en.json +3 -1
  2. package/fesm2022/adf-content-services.mjs +866 -823
  3. package/fesm2022/adf-content-services.mjs.map +1 -1
  4. package/lib/aspect-list/aspect-list.component.d.ts +4 -0
  5. package/lib/aspect-list/interfaces/custom-aspect-paging.interface.d.ts +21 -0
  6. package/lib/aspect-list/public-api.d.ts +1 -0
  7. package/lib/aspect-list/services/aspect-list.service.d.ts +6 -4
  8. package/lib/category/categories-management/categories-management.component.d.ts +4 -0
  9. package/lib/content.module.d.ts +2 -2
  10. package/lib/dialogs/dialog.module.d.ts +6 -5
  11. package/lib/dialogs/download-zip/download-zip.dialog.d.ts +1 -1
  12. package/lib/dialogs/download-zip/download-zip.dialog.module.d.ts +2 -6
  13. package/lib/new-version-uploader/new-version-uploader.dialog.scss +1 -1
  14. package/lib/upload/components/base-upload/upload-base.d.ts +1 -1
  15. package/package.json +3 -5
  16. package/esm2022/adf-content-services.mjs +0 -5
  17. package/esm2022/lib/agent/index.mjs +0 -18
  18. package/esm2022/lib/agent/public-api.mjs +0 -18
  19. package/esm2022/lib/agent/services/agent.service.mjs +0 -60
  20. package/esm2022/lib/alfresco-icon/alfresco-icon.component.mjs +0 -27
  21. package/esm2022/lib/api-factories/alfresco-api-no-auth.service.mjs +0 -42
  22. package/esm2022/lib/api-factories/alfresco-api-v2-loader.service.mjs +0 -77
  23. package/esm2022/lib/api-factories/index.mjs +0 -18
  24. package/esm2022/lib/api-factories/public-api.mjs +0 -19
  25. package/esm2022/lib/aspect-list/aspect-list-dialog-data.interface.mjs +0 -18
  26. package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +0 -77
  27. package/esm2022/lib/aspect-list/aspect-list.component.mjs +0 -139
  28. package/esm2022/lib/aspect-list/aspect-list.module.mjs +0 -35
  29. package/esm2022/lib/aspect-list/index.mjs +0 -18
  30. package/esm2022/lib/aspect-list/public-api.mjs +0 -24
  31. package/esm2022/lib/aspect-list/services/aspect-list.service.mjs +0 -83
  32. package/esm2022/lib/aspect-list/services/dialog-aspect-list.service.mjs +0 -86
  33. package/esm2022/lib/aspect-list/services/node-aspect.service.mjs +0 -52
  34. package/esm2022/lib/auth-loader/content-auth-loader-factory.mjs +0 -26
  35. package/esm2022/lib/auth-loader/content-auth-loader.service.mjs +0 -42
  36. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -166
  37. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +0 -35
  38. package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +0 -65
  39. package/esm2022/lib/breadcrumb/index.mjs +0 -18
  40. package/esm2022/lib/breadcrumb/public-api.mjs +0 -20
  41. package/esm2022/lib/category/categories-management/categories-management-mode.mjs +0 -22
  42. package/esm2022/lib/category/categories-management/categories-management.component.mjs +0 -308
  43. package/esm2022/lib/category/category.module.mjs +0 -33
  44. package/esm2022/lib/category/index.mjs +0 -18
  45. package/esm2022/lib/category/models/category-node.interface.mjs +0 -18
  46. package/esm2022/lib/category/public-api.mjs +0 -23
  47. package/esm2022/lib/category/services/category-tree-datasource.service.mjs +0 -80
  48. package/esm2022/lib/category/services/category.service.mjs +0 -159
  49. package/esm2022/lib/common/events/file.event.mjs +0 -46
  50. package/esm2022/lib/common/index.mjs +0 -18
  51. package/esm2022/lib/common/interfaces/saved-search.interface.mjs +0 -18
  52. package/esm2022/lib/common/interfaces/search-configuration.interface.mjs +0 -18
  53. package/esm2022/lib/common/mocks/ecm-user.service.mock.mjs +0 -37
  54. package/esm2022/lib/common/models/allowable-operations.enum.mjs +0 -30
  55. package/esm2022/lib/common/models/ecm-company.model.mjs +0 -19
  56. package/esm2022/lib/common/models/ecm-user.model.mjs +0 -45
  57. package/esm2022/lib/common/models/file.model.mjs +0 -53
  58. package/esm2022/lib/common/models/node-metadata.model.mjs +0 -23
  59. package/esm2022/lib/common/models/permissions.enum.mjs +0 -32
  60. package/esm2022/lib/common/public-api.mjs +0 -37
  61. package/esm2022/lib/common/services/card-view-content-update.service.mjs +0 -55
  62. package/esm2022/lib/common/services/content.service.mjs +0 -180
  63. package/esm2022/lib/common/services/discovery-api.service.mjs +0 -79
  64. package/esm2022/lib/common/services/favorites-api.service.mjs +0 -84
  65. package/esm2022/lib/common/services/nodes-api.service.mjs +0 -251
  66. package/esm2022/lib/common/services/people-content.service.mjs +0 -138
  67. package/esm2022/lib/common/services/rendition.service.mjs +0 -270
  68. package/esm2022/lib/common/services/saved-searches.service.mjs +0 -206
  69. package/esm2022/lib/common/services/sites.service.mjs +0 -243
  70. package/esm2022/lib/common/services/upload.service.mjs +0 -391
  71. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +0 -54
  72. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +0 -490
  73. package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +0 -128
  74. package/esm2022/lib/content-metadata/content-metadata.module.mjs +0 -36
  75. package/esm2022/lib/content-metadata/index.mjs +0 -18
  76. package/esm2022/lib/content-metadata/interfaces/aspect-oriented-config.interface.mjs +0 -18
  77. package/esm2022/lib/content-metadata/interfaces/card-view-group.interface.mjs +0 -18
  78. package/esm2022/lib/content-metadata/interfaces/content-metadata-config.interface.mjs +0 -18
  79. package/esm2022/lib/content-metadata/interfaces/content-metadata-custom-panel.interface.mjs +0 -18
  80. package/esm2022/lib/content-metadata/interfaces/content-metadata-panel.interface.mjs +0 -18
  81. package/esm2022/lib/content-metadata/interfaces/content-metadata.interfaces.mjs +0 -28
  82. package/esm2022/lib/content-metadata/interfaces/indifferent-config.interface.mjs +0 -18
  83. package/esm2022/lib/content-metadata/interfaces/layout-oriented-config.interface.mjs +0 -18
  84. package/esm2022/lib/content-metadata/interfaces/organised-property-group.interface.mjs +0 -18
  85. package/esm2022/lib/content-metadata/interfaces/preset-config.interface.mjs +0 -18
  86. package/esm2022/lib/content-metadata/interfaces/property-group.interface.mjs +0 -18
  87. package/esm2022/lib/content-metadata/interfaces/property.interface.mjs +0 -18
  88. package/esm2022/lib/content-metadata/public-api.mjs +0 -31
  89. package/esm2022/lib/content-metadata/services/basic-properties.service.mjs +0 -107
  90. package/esm2022/lib/content-metadata/services/config/aspect-oriented-config.service.mjs +0 -106
  91. package/esm2022/lib/content-metadata/services/config/content-metadata-config.factory.mjs +0 -76
  92. package/esm2022/lib/content-metadata/services/config/indifferent-config.service.mjs +0 -40
  93. package/esm2022/lib/content-metadata/services/config/layout-oriented-config.service.mjs +0 -108
  94. package/esm2022/lib/content-metadata/services/config/property-group-reader.mjs +0 -33
  95. package/esm2022/lib/content-metadata/services/content-metadata.service.mjs +0 -99
  96. package/esm2022/lib/content-metadata/services/content-type-property.service.mjs +0 -134
  97. package/esm2022/lib/content-metadata/services/property-descriptors.service.mjs +0 -52
  98. package/esm2022/lib/content-metadata/services/property-groups-translator.service.mjs +0 -169
  99. package/esm2022/lib/content-node-selector/content-node-dialog.service.mjs +0 -256
  100. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +0 -617
  101. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.mjs +0 -66
  102. package/esm2022/lib/content-node-selector/content-node-selector.component-data.interface.mjs +0 -18
  103. package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +0 -205
  104. package/esm2022/lib/content-node-selector/content-node-selector.module.mjs +0 -50
  105. package/esm2022/lib/content-node-selector/index.mjs +0 -18
  106. package/esm2022/lib/content-node-selector/name-location-cell/name-location-cell.component.mjs +0 -48
  107. package/esm2022/lib/content-node-selector/public-api.mjs +0 -25
  108. package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +0 -168
  109. package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +0 -287
  110. package/esm2022/lib/content-node-share/content-node-share.directive.mjs +0 -102
  111. package/esm2022/lib/content-node-share/content-node-share.module.mjs +0 -35
  112. package/esm2022/lib/content-node-share/content-node-share.settings.mjs +0 -18
  113. package/esm2022/lib/content-node-share/index.mjs +0 -18
  114. package/esm2022/lib/content-node-share/public-api.mjs +0 -22
  115. package/esm2022/lib/content-node-share/services/shared-links-api.service.mjs +0 -83
  116. package/esm2022/lib/content-type/content-type-dialog.component.mjs +0 -57
  117. package/esm2022/lib/content-type/content-type-metadata.interface.mjs +0 -18
  118. package/esm2022/lib/content-type/content-type.service.mjs +0 -52
  119. package/esm2022/lib/content-type/index.mjs +0 -20
  120. package/esm2022/lib/content.module.mjs +0 -277
  121. package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +0 -51
  122. package/esm2022/lib/dialogs/dialog.module.mjs +0 -52
  123. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.mjs +0 -111
  124. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.module.mjs +0 -38
  125. package/esm2022/lib/dialogs/download-zip/services/download-zip.service.mjs +0 -66
  126. package/esm2022/lib/dialogs/folder/folder-name.validators.mjs +0 -44
  127. package/esm2022/lib/dialogs/folder/folder.dialog.mjs +0 -146
  128. package/esm2022/lib/dialogs/index.mjs +0 -18
  129. package/esm2022/lib/dialogs/library/library.dialog.mjs +0 -224
  130. package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +0 -115
  131. package/esm2022/lib/dialogs/public-api.mjs +0 -25
  132. package/esm2022/lib/directives/auto-focus.directive.mjs +0 -38
  133. package/esm2022/lib/directives/check-allowable-operation.directive.mjs +0 -126
  134. package/esm2022/lib/directives/content-directive.module.mjs +0 -75
  135. package/esm2022/lib/directives/index.mjs +0 -18
  136. package/esm2022/lib/directives/library-favorite.directive.mjs +0 -119
  137. package/esm2022/lib/directives/library-membership.directive.mjs +0 -202
  138. package/esm2022/lib/directives/node-counter.directive.mjs +0 -59
  139. package/esm2022/lib/directives/node-delete.directive.mjs +0 -177
  140. package/esm2022/lib/directives/node-download.directive.mjs +0 -138
  141. package/esm2022/lib/directives/node-favorite.directive.mjs +0 -193
  142. package/esm2022/lib/directives/node-lock.directive.mjs +0 -57
  143. package/esm2022/lib/directives/node-restore.directive.mjs +0 -218
  144. package/esm2022/lib/directives/public-api.mjs +0 -28
  145. package/esm2022/lib/document-list/components/content-action/content-action-list.component.mjs +0 -60
  146. package/esm2022/lib/document-list/components/content-action/content-action.component.mjs +0 -196
  147. package/esm2022/lib/document-list/components/document-list.component.mjs +0 -965
  148. package/esm2022/lib/document-list/components/document-list.token.mjs +0 -21
  149. package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +0 -42
  150. package/esm2022/lib/document-list/components/filter-header/filter-header.component.mjs +0 -107
  151. package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +0 -131
  152. package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +0 -91
  153. package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +0 -86
  154. package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +0 -118
  155. package/esm2022/lib/document-list/components/node.event.mjs +0 -30
  156. package/esm2022/lib/document-list/components/trashcan-name-column/trashcan-name-column.component.mjs +0 -83
  157. package/esm2022/lib/document-list/data/image-resolver.model.mjs +0 -18
  158. package/esm2022/lib/document-list/data/row-filter.model.mjs +0 -18
  159. package/esm2022/lib/document-list/data/share-data-row.model.mjs +0 -102
  160. package/esm2022/lib/document-list/data/share-datatable-adapter.mjs +0 -258
  161. package/esm2022/lib/document-list/document-list.module.mjs +0 -75
  162. package/esm2022/lib/document-list/index.mjs +0 -18
  163. package/esm2022/lib/document-list/interfaces/document-list-loader.interface.mjs +0 -18
  164. package/esm2022/lib/document-list/models/content-action.model.mjs +0 -59
  165. package/esm2022/lib/document-list/models/document-folder.model.mjs +0 -23
  166. package/esm2022/lib/document-list/models/node-action.enum.mjs +0 -27
  167. package/esm2022/lib/document-list/models/permissions-style.model.mjs +0 -27
  168. package/esm2022/lib/document-list/models/permissions.model.mjs +0 -26
  169. package/esm2022/lib/document-list/models/preset.model.mjs +0 -257
  170. package/esm2022/lib/document-list/public-api.mjs +0 -47
  171. package/esm2022/lib/document-list/services/custom-resources.service.mjs +0 -378
  172. package/esm2022/lib/document-list/services/document-actions.service.mjs +0 -142
  173. package/esm2022/lib/document-list/services/document-list.service.mjs +0 -175
  174. package/esm2022/lib/document-list/services/folder-actions.service.mjs +0 -137
  175. package/esm2022/lib/document-list/services/lock.service.mjs +0 -72
  176. package/esm2022/lib/document-list/services/node-actions.service.mjs +0 -122
  177. package/esm2022/lib/group/index.mjs +0 -18
  178. package/esm2022/lib/group/public-api.mjs +0 -18
  179. package/esm2022/lib/group/services/group.service.mjs +0 -84
  180. package/esm2022/lib/infinite-scroll-datasource/index.mjs +0 -18
  181. package/esm2022/lib/infinite-scroll-datasource/infinite-scroll-datasource.mjs +0 -69
  182. package/esm2022/lib/infinite-scroll-datasource/public-api.mjs +0 -18
  183. package/esm2022/lib/interfaces/base-card-view-content-update.interface.mjs +0 -18
  184. package/esm2022/lib/interfaces/index.mjs +0 -18
  185. package/esm2022/lib/interfaces/library-entity.interface.mjs +0 -18
  186. package/esm2022/lib/interfaces/library-membership-error-event.interface.mjs +0 -18
  187. package/esm2022/lib/interfaces/library-membership-toggle-event.interface.mjs +0 -18
  188. package/esm2022/lib/interfaces/node-allowable-operation-subject.interface.mjs +0 -18
  189. package/esm2022/lib/interfaces/public-api.mjs +0 -23
  190. package/esm2022/lib/interfaces/restore-message-model.interface.mjs +0 -19
  191. package/esm2022/lib/legal-hold/index.mjs +0 -18
  192. package/esm2022/lib/legal-hold/public-api.mjs +0 -18
  193. package/esm2022/lib/legal-hold/services/legal-hold.service.mjs +0 -136
  194. package/esm2022/lib/material.module.mjs +0 -183
  195. package/esm2022/lib/mock/alfresco-api.service.mock.mjs +0 -43
  196. package/esm2022/lib/mock/date-range-search-filter.mock.mjs +0 -65
  197. package/esm2022/lib/mock/document-library.model.mock.mjs +0 -84
  198. package/esm2022/lib/mock/document-list.component.mock.mjs +0 -364
  199. package/esm2022/lib/mock/index.mjs +0 -18
  200. package/esm2022/lib/mock/new-version-uploader.service.mock.mjs +0 -161
  201. package/esm2022/lib/mock/public-api.mjs +0 -27
  202. package/esm2022/lib/mock/search-filter-mock.mjs +0 -637
  203. package/esm2022/lib/mock/search-query.mock.mjs +0 -40
  204. package/esm2022/lib/mock/search.component.mock.mjs +0 -165
  205. package/esm2022/lib/mock/search.service.mock.mjs +0 -61
  206. package/esm2022/lib/mock/sites-dropdown.component.mock.mjs +0 -281
  207. package/esm2022/lib/new-version-uploader/index.mjs +0 -18
  208. package/esm2022/lib/new-version-uploader/models/index.mjs +0 -18
  209. package/esm2022/lib/new-version-uploader/models/new-version-uploader.model.mjs +0 -24
  210. package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +0 -74
  211. package/esm2022/lib/new-version-uploader/new-version-uploader.module.mjs +0 -33
  212. package/esm2022/lib/new-version-uploader/new-version-uploader.service.mjs +0 -103
  213. package/esm2022/lib/new-version-uploader/public-api.mjs +0 -21
  214. package/esm2022/lib/node-comments/index.mjs +0 -18
  215. package/esm2022/lib/node-comments/node-comments.component.mjs +0 -50
  216. package/esm2022/lib/node-comments/node-comments.module.mjs +0 -33
  217. package/esm2022/lib/node-comments/public-api.mjs +0 -20
  218. package/esm2022/lib/node-comments/services/node-comments.service.mjs +0 -85
  219. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog-data.interface.mjs +0 -18
  220. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +0 -123
  221. package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +0 -102
  222. package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +0 -69
  223. package/esm2022/lib/permission-manager/components/add-permission/search-config-permission.service.mjs +0 -45
  224. package/esm2022/lib/permission-manager/components/inherited-button.directive.mjs +0 -67
  225. package/esm2022/lib/permission-manager/components/node-path-column/node-path-column.component.mjs +0 -56
  226. package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +0 -102
  227. package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +0 -87
  228. package/esm2022/lib/permission-manager/components/permission-list/permission-list.service.mjs +0 -219
  229. package/esm2022/lib/permission-manager/components/pop-over.directive.mjs +0 -134
  230. package/esm2022/lib/permission-manager/components/user-icon-column/user-icon-column.component.mjs +0 -88
  231. package/esm2022/lib/permission-manager/components/user-name-column/user-name-column.component.mjs +0 -82
  232. package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +0 -111
  233. package/esm2022/lib/permission-manager/index.mjs +0 -18
  234. package/esm2022/lib/permission-manager/models/member.model.mjs +0 -59
  235. package/esm2022/lib/permission-manager/models/permission.model.mjs +0 -29
  236. package/esm2022/lib/permission-manager/models/role.model.mjs +0 -18
  237. package/esm2022/lib/permission-manager/permission-manager.module.mjs +0 -84
  238. package/esm2022/lib/permission-manager/public-api.mjs +0 -36
  239. package/esm2022/lib/permission-manager/services/node-permission-dialog.service.mjs +0 -78
  240. package/esm2022/lib/permission-manager/services/node-permission.service.mjs +0 -299
  241. package/esm2022/lib/pipes/content-pipe.module.mjs +0 -37
  242. package/esm2022/lib/pipes/index.mjs +0 -18
  243. package/esm2022/lib/pipes/node-name-tooltip.pipe.mjs +0 -69
  244. package/esm2022/lib/pipes/public-api.mjs +0 -19
  245. package/esm2022/lib/prediction/index.mjs +0 -18
  246. package/esm2022/lib/prediction/public-api.mjs +0 -18
  247. package/esm2022/lib/prediction/services/index.mjs +0 -18
  248. package/esm2022/lib/prediction/services/prediction.service.mjs +0 -57
  249. package/esm2022/lib/search/components/empty-search-result.component.mjs +0 -27
  250. package/esm2022/lib/search/components/index.mjs +0 -43
  251. package/esm2022/lib/search/components/reset-search.directive.mjs +0 -41
  252. package/esm2022/lib/search/components/search-check-list/index.mjs +0 -18
  253. package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +0 -158
  254. package/esm2022/lib/search/components/search-chip-autocomplete-input/index.mjs +0 -18
  255. package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +0 -169
  256. package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +0 -46
  257. package/esm2022/lib/search/components/search-control.component.mjs +0 -180
  258. package/esm2022/lib/search/components/search-date-range-tabbed/index.mjs +0 -22
  259. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/date-range-type.mjs +0 -23
  260. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/in-last-date-type.mjs +0 -23
  261. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +0 -196
  262. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.mjs +0 -18
  263. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range-tabbed.component.mjs +0 -201
  264. package/esm2022/lib/search/components/search-datetime-range/index.mjs +0 -18
  265. package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +0 -223
  266. package/esm2022/lib/search/components/search-facet-field/index.mjs +0 -18
  267. package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +0 -132
  268. package/esm2022/lib/search/components/search-filter/index.mjs +0 -19
  269. package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +0 -45
  270. package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +0 -80
  271. package/esm2022/lib/search/components/search-filter-autocomplete-chips/index.mjs +0 -18
  272. package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +0 -154
  273. package/esm2022/lib/search/components/search-filter-chips/index.mjs +0 -23
  274. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +0 -104
  275. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +0 -109
  276. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-tabbed-content.component.mjs +0 -129
  277. package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +0 -63
  278. package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +0 -43
  279. package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +0 -109
  280. package/esm2022/lib/search/components/search-filter-container/index.mjs +0 -18
  281. package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +0 -122
  282. package/esm2022/lib/search/components/search-filter-tabbed/index.mjs +0 -19
  283. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tab.directive.mjs +0 -36
  284. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +0 -63
  285. package/esm2022/lib/search/components/search-form/index.mjs +0 -18
  286. package/esm2022/lib/search/components/search-form/search-form.component.mjs +0 -52
  287. package/esm2022/lib/search/components/search-input/index.mjs +0 -18
  288. package/esm2022/lib/search/components/search-input/search-input.component.mjs +0 -108
  289. package/esm2022/lib/search/components/search-logical-filter/index.mjs +0 -18
  290. package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +0 -163
  291. package/esm2022/lib/search/components/search-number-range/index.mjs +0 -18
  292. package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +0 -154
  293. package/esm2022/lib/search/components/search-panel/index.mjs +0 -18
  294. package/esm2022/lib/search/components/search-panel/search-panel.component.mjs +0 -44
  295. package/esm2022/lib/search/components/search-properties/file-size-condition.mjs +0 -18
  296. package/esm2022/lib/search/components/search-properties/file-size-operator.enum.mjs +0 -23
  297. package/esm2022/lib/search/components/search-properties/file-size-unit.enum.mjs +0 -26
  298. package/esm2022/lib/search/components/search-properties/index.mjs +0 -22
  299. package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +0 -244
  300. package/esm2022/lib/search/components/search-properties/search-properties.mjs +0 -18
  301. package/esm2022/lib/search/components/search-radio/index.mjs +0 -18
  302. package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +0 -145
  303. package/esm2022/lib/search/components/search-slider/index.mjs +0 -18
  304. package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +0 -119
  305. package/esm2022/lib/search/components/search-sorting-picker/index.mjs +0 -18
  306. package/esm2022/lib/search/components/search-sorting-picker/search-sorting-picker.component.mjs +0 -77
  307. package/esm2022/lib/search/components/search-text/index.mjs +0 -18
  308. package/esm2022/lib/search/components/search-text/search-text.component.mjs +0 -134
  309. package/esm2022/lib/search/components/search-widget-container/index.mjs +0 -18
  310. package/esm2022/lib/search/components/search-widget-container/search-widget-container.component.mjs +0 -113
  311. package/esm2022/lib/search/components/search.component.mjs +0 -152
  312. package/esm2022/lib/search/forms/index.mjs +0 -19
  313. package/esm2022/lib/search/forms/live-error-state-matcher.mjs +0 -23
  314. package/esm2022/lib/search/forms/search-term-validator.mjs +0 -26
  315. package/esm2022/lib/search/index.mjs +0 -18
  316. package/esm2022/lib/search/mocks/index.mjs +0 -18
  317. package/esm2022/lib/search/mocks/search.service.mock.mjs +0 -56
  318. package/esm2022/lib/search/models/autocomplete-option.interface.mjs +0 -22
  319. package/esm2022/lib/search/models/facet-field-bucket.interface.mjs +0 -18
  320. package/esm2022/lib/search/models/facet-field.interface.mjs +0 -29
  321. package/esm2022/lib/search/models/facet-query.interface.mjs +0 -18
  322. package/esm2022/lib/search/models/facet-widget.interface.mjs +0 -18
  323. package/esm2022/lib/search/models/filter-query.interface.mjs +0 -18
  324. package/esm2022/lib/search/models/filter-search.interface.mjs +0 -18
  325. package/esm2022/lib/search/models/index.mjs +0 -34
  326. package/esm2022/lib/search/models/response-facet-query-list.model.mjs +0 -31
  327. package/esm2022/lib/search/models/search-category.interface.mjs +0 -18
  328. package/esm2022/lib/search/models/search-configuration.interface.mjs +0 -18
  329. package/esm2022/lib/search/models/search-filter-list.model.mjs +0 -148
  330. package/esm2022/lib/search/models/search-form.interface.mjs +0 -18
  331. package/esm2022/lib/search/models/search-range.interface.mjs +0 -18
  332. package/esm2022/lib/search/models/search-sorting-definition.interface.mjs +0 -18
  333. package/esm2022/lib/search/models/search-widget-settings.interface.mjs +0 -18
  334. package/esm2022/lib/search/models/search-widget.interface.mjs +0 -18
  335. package/esm2022/lib/search/models/tabbed-facet-field.interface.mjs +0 -18
  336. package/esm2022/lib/search/public-api.mjs +0 -24
  337. package/esm2022/lib/search/search-configuration.token.mjs +0 -19
  338. package/esm2022/lib/search/search.module.mjs +0 -192
  339. package/esm2022/lib/search/services/base-query-builder.service.mjs +0 -509
  340. package/esm2022/lib/search/services/index.mjs +0 -24
  341. package/esm2022/lib/search/services/search-configuration.service.mjs +0 -50
  342. package/esm2022/lib/search/services/search-facet-filters.service.mjs +0 -374
  343. package/esm2022/lib/search/services/search-filter.service.mjs +0 -56
  344. package/esm2022/lib/search/services/search-header-query-builder.service.mjs +0 -136
  345. package/esm2022/lib/search/services/search-query-builder.service.mjs +0 -48
  346. package/esm2022/lib/search/services/search.service.mjs +0 -89
  347. package/esm2022/lib/search-ai/index.mjs +0 -18
  348. package/esm2022/lib/search-ai/models/search-ai-input-state.mjs +0 -18
  349. package/esm2022/lib/search-ai/public-api.mjs +0 -19
  350. package/esm2022/lib/search-ai/services/search-ai.service.mjs +0 -103
  351. package/esm2022/lib/security/index.mjs +0 -18
  352. package/esm2022/lib/security/public-api.mjs +0 -18
  353. package/esm2022/lib/security/services/models/security-controls-group-response.interface.mjs +0 -18
  354. package/esm2022/lib/security/services/models/security-controls-mark-response.interface.mjs +0 -18
  355. package/esm2022/lib/security/services/security-controls-groups-marks-security.service.mjs +0 -274
  356. package/esm2022/lib/security-options-loader/security-options-loader.service.mjs +0 -43
  357. package/esm2022/lib/services/alfresco-api.interface.mjs +0 -18
  358. package/esm2022/lib/services/alfresco-api.service.mjs +0 -120
  359. package/esm2022/lib/services/index.mjs +0 -18
  360. package/esm2022/lib/services/public-api.mjs +0 -18
  361. package/esm2022/lib/tag/index.mjs +0 -18
  362. package/esm2022/lib/tag/public-api.mjs +0 -24
  363. package/esm2022/lib/tag/services/tag.service.mjs +0 -171
  364. package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +0 -114
  365. package/esm2022/lib/tag/tag-list/tag-list.component.mjs +0 -98
  366. package/esm2022/lib/tag/tag-node-list/tag-node-list.component.mjs +0 -80
  367. package/esm2022/lib/tag/tag.module.mjs +0 -37
  368. package/esm2022/lib/tag/tags-creator/tags-creator-mode.mjs +0 -27
  369. package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +0 -370
  370. package/esm2022/lib/testing/content.testing.module.mjs +0 -56
  371. package/esm2022/lib/tree/components/tree.component.mjs +0 -312
  372. package/esm2022/lib/tree/index.mjs +0 -18
  373. package/esm2022/lib/tree/models/tree-context-menu-result.interface.mjs +0 -18
  374. package/esm2022/lib/tree/models/tree-node.interface.mjs +0 -22
  375. package/esm2022/lib/tree/models/tree-response.interface.mjs +0 -18
  376. package/esm2022/lib/tree/public-api.mjs +0 -23
  377. package/esm2022/lib/tree/services/tree.service.mjs +0 -134
  378. package/esm2022/lib/tree/tree.module.mjs +0 -33
  379. package/esm2022/lib/tree-view/components/tree-view.component.mjs +0 -75
  380. package/esm2022/lib/tree-view/data/tree-view-datasource.mjs +0 -99
  381. package/esm2022/lib/tree-view/index.mjs +0 -18
  382. package/esm2022/lib/tree-view/models/tree-view.model.mjs +0 -28
  383. package/esm2022/lib/tree-view/public-api.mjs +0 -22
  384. package/esm2022/lib/tree-view/services/tree-view.service.mjs +0 -38
  385. package/esm2022/lib/tree-view/tree-view.module.mjs +0 -33
  386. package/esm2022/lib/upload/components/base-upload/upload-base.mjs +0 -176
  387. package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +0 -190
  388. package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +0 -92
  389. package/esm2022/lib/upload/components/file-uploading-list.component.mjs +0 -124
  390. package/esm2022/lib/upload/components/upload-button.component.mjs +0 -133
  391. package/esm2022/lib/upload/components/upload-drag-area.component.mjs +0 -112
  392. package/esm2022/lib/upload/components/upload-files.event.mjs +0 -41
  393. package/esm2022/lib/upload/components/upload-version-button.component.mjs +0 -54
  394. package/esm2022/lib/upload/directives/file-draggable.directive.mjs +0 -154
  395. package/esm2022/lib/upload/directives/toggle-icon.directive.mjs +0 -75
  396. package/esm2022/lib/upload/index.mjs +0 -18
  397. package/esm2022/lib/upload/pipes/file-upload-error.pipe.mjs +0 -39
  398. package/esm2022/lib/upload/public-api.mjs +0 -29
  399. package/esm2022/lib/upload/upload.module.mjs +0 -72
  400. package/esm2022/lib/version-compatibility/index.mjs +0 -18
  401. package/esm2022/lib/version-compatibility/public-api.mjs +0 -20
  402. package/esm2022/lib/version-compatibility/version-compatibility-factory.mjs +0 -26
  403. package/esm2022/lib/version-compatibility/version-compatibility.directive.mjs +0 -53
  404. package/esm2022/lib/version-compatibility/version-compatibility.module.mjs +0 -33
  405. package/esm2022/lib/version-compatibility/version-compatibility.service.mjs +0 -76
  406. package/esm2022/lib/version-manager/content-version.service.mjs +0 -53
  407. package/esm2022/lib/version-manager/index.mjs +0 -18
  408. package/esm2022/lib/version-manager/public-api.mjs +0 -23
  409. package/esm2022/lib/version-manager/version-comparison.component.mjs +0 -42
  410. package/esm2022/lib/version-manager/version-list.component.mjs +0 -215
  411. package/esm2022/lib/version-manager/version-manager.component.mjs +0 -145
  412. package/esm2022/lib/version-manager/version-manager.module.mjs +0 -48
  413. package/esm2022/lib/version-manager/version-upload.component.mjs +0 -154
  414. package/esm2022/lib/viewer/alfresco-viewer.module.mjs +0 -33
  415. package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +0 -408
  416. package/esm2022/lib/viewer/index.mjs +0 -18
  417. package/esm2022/lib/viewer/public-api.mjs +0 -19
  418. package/esm2022/public-api.mjs +0 -56
@@ -1,23 +0,0 @@
1
- /*!
2
- * @license
3
- * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
- export var InLastDateType;
18
- (function (InLastDateType) {
19
- InLastDateType["DAYS"] = "DAYS";
20
- InLastDateType["WEEKS"] = "WEEKS";
21
- InLastDateType["MONTHS"] = "MONTHS";
22
- })(InLastDateType || (InLastDateType = {}));
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbGFzdC1kYXRlLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1kYXRlLXJhbmdlLXRhYmJlZC9zZWFyY2gtZGF0ZS1yYW5nZS9pbi1sYXN0LWRhdGUtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3RCLCtCQUFhLENBQUE7SUFDYixpQ0FBZSxDQUFBO0lBQ2YsbUNBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgZW51bSBJbkxhc3REYXRlVHlwZSB7XG4gICAgREFZUyA9ICdEQVlTJyxcbiAgICBXRUVLUyA9ICdXRUVLUycsXG4gICAgTU9OVEhTID0gJ01PTlRIUydcbn1cbiJdfQ==
@@ -1,196 +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 { Component, DestroyRef, EventEmitter, inject, Inject, Input, Output, ViewEncapsulation } from '@angular/core';
18
- import { endOfDay, isAfter, isBefore, isValid, parse } from 'date-fns';
19
- import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
20
- import { DateFnsAdapter, MAT_DATE_FNS_FORMATS } from '@angular/material-date-fns-adapter';
21
- import { InLastDateType } from './in-last-date-type';
22
- import { DateRangeType } from './date-range-type';
23
- import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
24
- import { DateFnsUtils, UserPreferencesService, UserPreferenceValues } from '@alfresco/adf-core';
25
- import { CommonModule } from '@angular/common';
26
- import { MatRadioModule } from '@angular/material/radio';
27
- import { TranslatePipe } from '@ngx-translate/core';
28
- import { MatFormFieldModule } from '@angular/material/form-field';
29
- import { MatInputModule } from '@angular/material/input';
30
- import { MatSelectModule } from '@angular/material/select';
31
- import { MatDatepickerModule } from '@angular/material/datepicker';
32
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
33
- import * as i0 from "@angular/core";
34
- import * as i1 from "@angular/forms";
35
- import * as i2 from "@alfresco/adf-core";
36
- import * as i3 from "@angular/material/core";
37
- import * as i4 from "@angular/common";
38
- import * as i5 from "@angular/material/radio";
39
- import * as i6 from "@angular/material/form-field";
40
- import * as i7 from "@angular/material/input";
41
- import * as i8 from "@angular/material/select";
42
- import * as i9 from "@angular/material/datepicker";
43
- const DEFAULT_DATE_DISPLAY_FORMAT = 'dd-MMM-yy';
44
- export class SearchDateRangeComponent {
45
- set initialValue(value) {
46
- if (value) {
47
- this.form.patchValue(value);
48
- }
49
- }
50
- constructor(formBuilder, userPreferencesService, dateAdapter, dateFormatConfig) {
51
- this.formBuilder = formBuilder;
52
- this.userPreferencesService = userPreferencesService;
53
- this.dateAdapter = dateAdapter;
54
- this.dateFormatConfig = dateFormatConfig;
55
- this.dateFormat = DEFAULT_DATE_DISPLAY_FORMAT;
56
- this.changed = new EventEmitter();
57
- this.valid = new EventEmitter();
58
- this.form = this.formBuilder.group({
59
- dateRangeType: DateRangeType.ANY,
60
- inLastValueType: InLastDateType.DAYS,
61
- inLastValue: undefined,
62
- betweenStartDate: undefined,
63
- betweenEndDate: undefined
64
- });
65
- this.betweenStartDateFormControl = this.form.controls.betweenStartDate;
66
- this.betweenEndDateFormControl = this.form.controls.betweenEndDate;
67
- this.DateRangeType = DateRangeType;
68
- this.InLastDateType = InLastDateType;
69
- this.destroyRef = inject(DestroyRef);
70
- this.endDateValidator = (formControl) => {
71
- if (isBefore(formControl.value, this.betweenStartDateFormControl.value) || isAfter(formControl.value, this.convertedMaxDate)) {
72
- return {
73
- invalidDate: true
74
- };
75
- }
76
- return {};
77
- };
78
- }
79
- ngOnInit() {
80
- this.dateFormatConfig.display.dateInput = this.dateFormat;
81
- this.convertedMaxDate = endOfDay(this.maxDate && this.maxDate !== 'today' ? parse(this.maxDate, this.dateFormat, new Date()) : new Date());
82
- this.userPreferencesService
83
- .select(UserPreferenceValues.Locale)
84
- .pipe(takeUntilDestroyed(this.destroyRef))
85
- .subscribe((locale) => this.dateAdapter.setLocale(DateFnsUtils.getLocaleFromString(locale)));
86
- this.form.controls.dateRangeType.valueChanges
87
- .pipe(takeUntilDestroyed(this.destroyRef))
88
- .subscribe((dateRangeType) => this.updateValidators(dateRangeType));
89
- this.form.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.onChange());
90
- }
91
- updateValidators(dateRangeType) {
92
- switch (dateRangeType) {
93
- case DateRangeType.BETWEEN:
94
- this.betweenStartDateFormControl.setValidators(Validators.required);
95
- this.betweenEndDateFormControl.setValidators([Validators.required, this.endDateValidator]);
96
- this.form.controls.inLastValue.clearValidators();
97
- break;
98
- case DateRangeType.IN_LAST:
99
- this.form.controls.inLastValue.setValidators(Validators.required);
100
- this.betweenStartDateFormControl.clearValidators();
101
- this.betweenEndDateFormControl.clearValidators();
102
- break;
103
- default:
104
- this.form.controls.inLastValue.clearValidators();
105
- this.betweenStartDateFormControl.clearValidators();
106
- this.betweenEndDateFormControl.clearValidators();
107
- break;
108
- }
109
- this.betweenStartDateFormControl.updateValueAndValidity();
110
- this.betweenEndDateFormControl.updateValueAndValidity();
111
- this.form.controls.inLastValue.updateValueAndValidity();
112
- }
113
- onChange() {
114
- if (this.form.valid) {
115
- this.changed.emit(this.form.value);
116
- }
117
- this.valid.emit(this.form.valid);
118
- }
119
- dateChanged(event, formControl) {
120
- if (event?.target['value']?.trim()) {
121
- const date = parse(event.target['value'], this.dateFormat, new Date());
122
- if (!isValid(date)) {
123
- formControl.setErrors({
124
- ...formControl.errors,
125
- required: false,
126
- invalidDate: true
127
- });
128
- }
129
- else {
130
- formControl.setErrors({
131
- ...formControl.errors,
132
- invalidDate: false
133
- });
134
- formControl.setValue(date);
135
- }
136
- }
137
- }
138
- narrowDownAllowedCharacters(event) {
139
- if (parseInt(event.target.value, 10) === 0) {
140
- event.target.value = '';
141
- }
142
- else {
143
- event.target.value = event.target.value.replace(/\D/g, '');
144
- }
145
- }
146
- preventIncorrectNumberCharacters(event) {
147
- switch (event.key) {
148
- case '.':
149
- case '-':
150
- case 'e':
151
- case '+':
152
- return false;
153
- case '0':
154
- return !!event.target.value;
155
- default:
156
- return true;
157
- }
158
- }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchDateRangeComponent, deps: [{ token: i1.FormBuilder }, { token: i2.UserPreferencesService }, { token: i3.DateAdapter }, { token: MAT_DATE_FORMATS }], target: i0.ɵɵFactoryTarget.Component }); }
160
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchDateRangeComponent, isStandalone: true, selector: "adf-search-date-range", inputs: { dateFormat: "dateFormat", maxDate: "maxDate", field: "field", initialValue: "initialValue" }, outputs: { changed: "changed", valid: "valid" }, host: { classAttribute: "adf-search-date-range" }, providers: [
161
- { provide: DateAdapter, useClass: DateFnsAdapter, deps: [MAT_DATE_LOCALE] },
162
- { provide: MAT_DATE_FORMATS, useValue: MAT_DATE_FNS_FORMATS }
163
- ], ngImport: i0, template: "<div class=\"adf-search-date-range-container\" [formGroup]=\"form\">\n <mat-radio-group formControlName=\"dateRangeType\">\n <span class=\"adf-search-date-range-container-row\">\n <mat-radio-button [value]=\"DateRangeType.ANY\" data-automation-id=\"date-range-anytime\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.ANYTIME' | translate }}\n </mat-radio-button>\n </span>\n <span class=\"adf-search-date-range-container-row\">\n <mat-radio-button [value]=\"DateRangeType.IN_LAST\" data-automation-id=\"date-range-in-last\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.IN_LAST' | translate }}\n </mat-radio-button>\n <mat-form-field class=\"adf-search-date-range-form-field adf-search-date-range-input-field\" subscriptSizing=\"dynamic\">\n <input matInput [attr.aria-label]=\"'SEARCH.DATE_RANGE_ADVANCED.ARIA_LABEL.NUMBER_INPUT' | translate\"\n type=\"number\" min=\"1\" formControlName=\"inLastValue\"\n data-automation-id=\"date-range-in-last-input\" (input)=\"narrowDownAllowedCharacters($event)\"\n (keydown)=\"preventIncorrectNumberCharacters($event)\">\n <mat-error *ngIf=\"form.controls.inLastValue.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.IN_LAST' | translate }}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"adf-search-date-range-form-field adf-search-date-range-form-field-select\" subscriptSizing=\"dynamic\">\n <mat-select formControlName=\"inLastValueType\" data-automation-id=\"date-range-in-last-dropdown\">\n <mat-option data-automation-id=\"date-range-in-last-option-days\" [value]=\"InLastDateType.DAYS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.DAYS' | translate }}</mat-option>\n <mat-option data-automation-id=\"date-range-in-last-option-weeks\" [value]=\"InLastDateType.WEEKS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.WEEKS' | translate }}</mat-option>\n <mat-option data-automation-id=\"date-range-in-last-option-months\" [value]=\"InLastDateType.MONTHS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.MONTHS' | translate }}</mat-option>\n </mat-select>\n </mat-form-field>\n </span>\n <span class=\"adf-search-date-range-container-row adf-search-date-range-container-row-date\">\n <mat-radio-button [value]=\"DateRangeType.BETWEEN\" data-automation-id=\"date-range-between\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.BETWEEN' | translate }}\n </mat-radio-button>\n <mat-form-field class=\"adf-search-date-range-form-field\" subscriptSizing=\"dynamic\">\n <mat-date-range-input [rangePicker]=\"$any(picker)\" [max]=\"convertedMaxDate\">\n <input matStartDate placeholder=\"{{ 'SEARCH.DATE_RANGE_ADVANCED.BETWEEN_PLACEHOLDERS.START_DATE' | translate }}\"\n data-automation-id=\"date-range-between-start-input\" [formControl]=\"betweenStartDateFormControl\" (change)=\"dateChanged($event, betweenStartDateFormControl)\">\n <input matEndDate placeholder=\"{{ 'SEARCH.DATE_RANGE_ADVANCED.BETWEEN_PLACEHOLDERS.END_DATE' | translate }}\"\n data-automation-id=\"date-range-between-end-input\" [formControl]=\"betweenEndDateFormControl\" (change)=\"dateChanged($event, betweenEndDateFormControl)\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\" data-automation-id=\"date-range-between-datepicker-toggle\" />\n <mat-date-range-picker #picker />\n\n <mat-error *ngIf=\"betweenStartDateFormControl.errors?.invalidDate\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.START_DATE.INVALID_FORMAT' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenStartDateFormControl.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.START_DATE.REQUIRED' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenEndDateFormControl.errors?.invalidDate\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.END_DATE.INVALID_FORMAT' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenEndDateFormControl.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.END_DATE.REQUIRED' | translate }}</mat-error>\n </mat-form-field>\n </span>\n </mat-radio-group>\n</div>\n", styles: ["adf-search-date-range .adf-search-date-range-container{margin-top:20px;padding:10px}adf-search-date-range .adf-search-date-range-container .adf-search-date-range-form-field-select{width:180px;min-width:180px}adf-search-date-range .adf-search-date-range-container-row{display:flex;flex-direction:row;padding-bottom:21px;align-items:center}adf-search-date-range .adf-search-date-range-container-row-date{margin-top:8px}adf-search-date-range .adf-search-date-range-container-row .mat-mdc-select-arrow-wrapper{height:unset}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-input-field{width:75px}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field{padding-left:10px;flex:1;margin-bottom:12px}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field .mat-mdc-form-field-flex{align-items:center}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding:.375em 0 4px}adf-search-date-range .adf-search-widget-extra-width{max-width:500px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i5.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i5.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i9.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i9.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i9.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i9.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i9.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }], encapsulation: i0.ViewEncapsulation.None }); }
164
- }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchDateRangeComponent, decorators: [{
166
- type: Component,
167
- args: [{ selector: 'adf-search-date-range', standalone: true, imports: [
168
- CommonModule,
169
- MatRadioModule,
170
- ReactiveFormsModule,
171
- TranslatePipe,
172
- MatFormFieldModule,
173
- MatInputModule,
174
- MatSelectModule,
175
- MatDatepickerModule
176
- ], providers: [
177
- { provide: DateAdapter, useClass: DateFnsAdapter, deps: [MAT_DATE_LOCALE] },
178
- { provide: MAT_DATE_FORMATS, useValue: MAT_DATE_FNS_FORMATS }
179
- ], encapsulation: ViewEncapsulation.None, host: { class: 'adf-search-date-range' }, template: "<div class=\"adf-search-date-range-container\" [formGroup]=\"form\">\n <mat-radio-group formControlName=\"dateRangeType\">\n <span class=\"adf-search-date-range-container-row\">\n <mat-radio-button [value]=\"DateRangeType.ANY\" data-automation-id=\"date-range-anytime\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.ANYTIME' | translate }}\n </mat-radio-button>\n </span>\n <span class=\"adf-search-date-range-container-row\">\n <mat-radio-button [value]=\"DateRangeType.IN_LAST\" data-automation-id=\"date-range-in-last\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.IN_LAST' | translate }}\n </mat-radio-button>\n <mat-form-field class=\"adf-search-date-range-form-field adf-search-date-range-input-field\" subscriptSizing=\"dynamic\">\n <input matInput [attr.aria-label]=\"'SEARCH.DATE_RANGE_ADVANCED.ARIA_LABEL.NUMBER_INPUT' | translate\"\n type=\"number\" min=\"1\" formControlName=\"inLastValue\"\n data-automation-id=\"date-range-in-last-input\" (input)=\"narrowDownAllowedCharacters($event)\"\n (keydown)=\"preventIncorrectNumberCharacters($event)\">\n <mat-error *ngIf=\"form.controls.inLastValue.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.IN_LAST' | translate }}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"adf-search-date-range-form-field adf-search-date-range-form-field-select\" subscriptSizing=\"dynamic\">\n <mat-select formControlName=\"inLastValueType\" data-automation-id=\"date-range-in-last-dropdown\">\n <mat-option data-automation-id=\"date-range-in-last-option-days\" [value]=\"InLastDateType.DAYS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.DAYS' | translate }}</mat-option>\n <mat-option data-automation-id=\"date-range-in-last-option-weeks\" [value]=\"InLastDateType.WEEKS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.WEEKS' | translate }}</mat-option>\n <mat-option data-automation-id=\"date-range-in-last-option-months\" [value]=\"InLastDateType.MONTHS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.MONTHS' | translate }}</mat-option>\n </mat-select>\n </mat-form-field>\n </span>\n <span class=\"adf-search-date-range-container-row adf-search-date-range-container-row-date\">\n <mat-radio-button [value]=\"DateRangeType.BETWEEN\" data-automation-id=\"date-range-between\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.BETWEEN' | translate }}\n </mat-radio-button>\n <mat-form-field class=\"adf-search-date-range-form-field\" subscriptSizing=\"dynamic\">\n <mat-date-range-input [rangePicker]=\"$any(picker)\" [max]=\"convertedMaxDate\">\n <input matStartDate placeholder=\"{{ 'SEARCH.DATE_RANGE_ADVANCED.BETWEEN_PLACEHOLDERS.START_DATE' | translate }}\"\n data-automation-id=\"date-range-between-start-input\" [formControl]=\"betweenStartDateFormControl\" (change)=\"dateChanged($event, betweenStartDateFormControl)\">\n <input matEndDate placeholder=\"{{ 'SEARCH.DATE_RANGE_ADVANCED.BETWEEN_PLACEHOLDERS.END_DATE' | translate }}\"\n data-automation-id=\"date-range-between-end-input\" [formControl]=\"betweenEndDateFormControl\" (change)=\"dateChanged($event, betweenEndDateFormControl)\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\" data-automation-id=\"date-range-between-datepicker-toggle\" />\n <mat-date-range-picker #picker />\n\n <mat-error *ngIf=\"betweenStartDateFormControl.errors?.invalidDate\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.START_DATE.INVALID_FORMAT' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenStartDateFormControl.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.START_DATE.REQUIRED' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenEndDateFormControl.errors?.invalidDate\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.END_DATE.INVALID_FORMAT' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenEndDateFormControl.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.END_DATE.REQUIRED' | translate }}</mat-error>\n </mat-form-field>\n </span>\n </mat-radio-group>\n</div>\n", styles: ["adf-search-date-range .adf-search-date-range-container{margin-top:20px;padding:10px}adf-search-date-range .adf-search-date-range-container .adf-search-date-range-form-field-select{width:180px;min-width:180px}adf-search-date-range .adf-search-date-range-container-row{display:flex;flex-direction:row;padding-bottom:21px;align-items:center}adf-search-date-range .adf-search-date-range-container-row-date{margin-top:8px}adf-search-date-range .adf-search-date-range-container-row .mat-mdc-select-arrow-wrapper{height:unset}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-input-field{width:75px}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field{padding-left:10px;flex:1;margin-bottom:12px}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field .mat-mdc-form-field-flex{align-items:center}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding:.375em 0 4px}adf-search-date-range .adf-search-widget-extra-width{max-width:500px}\n"] }]
180
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.UserPreferencesService }, { type: i3.DateAdapter }, { type: undefined, decorators: [{
181
- type: Inject,
182
- args: [MAT_DATE_FORMATS]
183
- }] }], propDecorators: { dateFormat: [{
184
- type: Input
185
- }], maxDate: [{
186
- type: Input
187
- }], field: [{
188
- type: Input
189
- }], initialValue: [{
190
- type: Input
191
- }], changed: [{
192
- type: Output
193
- }], valid: [{
194
- type: Output
195
- }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRhdGUtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQvc2VhcmNoLWRhdGUtcmFuZ2Uvc2VhcmNoLWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQvc2VhcmNoLWRhdGUtcmFuZ2Uvc2VhcmNoLWRhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFzQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNs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QkFRTixPQUFPO3NCQUROLE1BQU07Z0JBR1AsS0FBSztzQkFESixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGVuZE9mRGF5LCBpc0FmdGVyLCBpc0JlZm9yZSwgaXNWYWxpZCwgcGFyc2UgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUZuc0FkYXB0ZXIsIE1BVF9EQVRFX0ZOU19GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtZGF0ZS1mbnMtYWRhcHRlcic7XG5pbXBvcnQgeyBJbkxhc3REYXRlVHlwZSB9IGZyb20gJy4vaW4tbGFzdC1kYXRlLXR5cGUnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlVHlwZSB9IGZyb20gJy4vZGF0ZS1yYW5nZS10eXBlJztcbmltcG9ydCB7IFNlYXJjaERhdGVSYW5nZSB9IGZyb20gJy4vc2VhcmNoLWRhdGUtcmFuZ2UnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVGbnNVdGlscywgVXNlclByZWZlcmVuY2VzU2VydmljZSwgVXNlclByZWZlcmVuY2VWYWx1ZXMgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmNvbnN0IERFRkFVTFRfREFURV9ESVNQTEFZX0ZPUk1BVCA9ICdkZC1NTU0teXknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1zZWFyY2gtZGF0ZS1yYW5nZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0UmFkaW9Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICAgICAgTWF0RGF0ZXBpY2tlck1vZHVsZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtZGF0ZS1yYW5nZS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUZuc0FkYXB0ZXIsIGRlcHM6IFtNQVRfREFURV9MT0NBTEVdIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1BVF9EQVRFX0ZOU19GT1JNQVRTIH1cbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1zZWFyY2gtZGF0ZS1yYW5nZScgfVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hEYXRlUmFuZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgZGF0ZUZvcm1hdCA9IERFRkFVTFRfREFURV9ESVNQTEFZX0ZPUk1BVDtcbiAgICBASW5wdXQoKVxuICAgIG1heERhdGU6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBzZXQgaW5pdGlhbFZhbHVlKHZhbHVlOiBTZWFyY2hEYXRlUmFuZ2UpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBjaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxQYXJ0aWFsPFNlYXJjaERhdGVSYW5nZT4+KCk7XG4gICAgQE91dHB1dCgpXG4gICAgdmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBmb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cDxTZWFyY2hEYXRlUmFuZ2U+KHtcbiAgICAgICAgZGF0ZVJhbmdlVHlwZTogRGF0ZVJhbmdlVHlwZS5BTlksXG4gICAgICAgIGluTGFzdFZhbHVlVHlwZTogSW5MYXN0RGF0ZVR5cGUuREFZUyxcbiAgICAgICAgaW5MYXN0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgYmV0d2VlblN0YXJ0RGF0ZTogdW5kZWZpbmVkLFxuICAgICAgICBiZXR3ZWVuRW5kRGF0ZTogdW5kZWZpbmVkXG4gICAgfSk7XG4gICAgYmV0d2VlblN0YXJ0RGF0ZUZvcm1Db250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzLmJldHdlZW5TdGFydERhdGU7XG4gICAgYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9scy5iZXR3ZWVuRW5kRGF0ZTtcbiAgICBjb252ZXJ0ZWRNYXhEYXRlOiBEYXRlO1xuXG4gICAgcmVhZG9ubHkgRGF0ZVJhbmdlVHlwZSA9IERhdGVSYW5nZVR5cGU7XG4gICAgcmVhZG9ubHkgSW5MYXN0RGF0ZVR5cGUgPSBJbkxhc3REYXRlVHlwZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSB1c2VyUHJlZmVyZW5jZXNTZXJ2aWNlOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxEYXRlRm5zQWRhcHRlcj4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RBVEVfRk9STUFUUykgcHJpdmF0ZSBkYXRlRm9ybWF0Q29uZmlnOiBNYXREYXRlRm9ybWF0c1xuICAgICkge31cblxuICAgIHJlYWRvbmx5IGVuZERhdGVWYWxpZGF0b3IgPSAoZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCA9PiB7XG4gICAgICAgIGlmIChpc0JlZm9yZShmb3JtQ29udHJvbC52YWx1ZSwgdGhpcy5iZXR3ZWVuU3RhcnREYXRlRm9ybUNvbnRyb2wudmFsdWUpIHx8IGlzQWZ0ZXIoZm9ybUNvbnRyb2wudmFsdWUsIHRoaXMuY29udmVydGVkTWF4RGF0ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaW52YWxpZERhdGU6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH07XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRlRm9ybWF0Q29uZmlnLmRpc3BsYXkuZGF0ZUlucHV0ID0gdGhpcy5kYXRlRm9ybWF0O1xuICAgICAgICB0aGlzLmNvbnZlcnRlZE1heERhdGUgPSBlbmRPZkRheSh0aGlzLm1heERhdGUgJiYgdGhpcy5tYXhEYXRlICE9PSAndG9kYXknID8gcGFyc2UodGhpcy5tYXhEYXRlLCB0aGlzLmRhdGVGb3JtYXQsIG5ldyBEYXRlKCkpIDogbmV3IERhdGUoKSk7XG4gICAgICAgIHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZVxuICAgICAgICAgICAgLnNlbGVjdChVc2VyUHJlZmVyZW5jZVZhbHVlcy5Mb2NhbGUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZSkgPT4gdGhpcy5kYXRlQWRhcHRlci5zZXRMb2NhbGUoRGF0ZUZuc1V0aWxzLmdldExvY2FsZUZyb21TdHJpbmcobG9jYWxlKSkpO1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZGF0ZVJhbmdlVHlwZS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0ZVJhbmdlVHlwZSkgPT4gdGhpcy51cGRhdGVWYWxpZGF0b3JzKGRhdGVSYW5nZVR5cGUpKTtcbiAgICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSgpKTtcbiAgICB9XG4gICAgcHJpdmF0ZSB1cGRhdGVWYWxpZGF0b3JzKGRhdGVSYW5nZVR5cGU6IERhdGVSYW5nZVR5cGUpIHtcbiAgICAgICAgc3dpdGNoIChkYXRlUmFuZ2VUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIERhdGVSYW5nZVR5cGUuQkVUV0VFTjpcbiAgICAgICAgICAgICAgICB0aGlzLmJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLmVuZERhdGVWYWxpZGF0b3JdKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuaW5MYXN0VmFsdWUuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIERhdGVSYW5nZVR5cGUuSU5fTEFTVDpcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuaW5MYXN0VmFsdWUuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJldHdlZW5FbmREYXRlRm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbkxhc3RWYWx1ZS5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJldHdlZW5FbmREYXRlRm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iZXR3ZWVuU3RhcnREYXRlRm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB0aGlzLmJldHdlZW5FbmREYXRlRm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuaW5MYXN0VmFsdWUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWxpZC5lbWl0KHRoaXMuZm9ybS52YWxpZCk7XG4gICAgfVxuXG4gICAgZGF0ZUNoYW5nZWQoZXZlbnQ6IEV2ZW50LCBmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgICAgIGlmIChldmVudD8udGFyZ2V0Wyd2YWx1ZSddPy50cmltKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBwYXJzZShldmVudC50YXJnZXRbJ3ZhbHVlJ10sIHRoaXMuZGF0ZUZvcm1hdCwgbmV3IERhdGUoKSk7XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRFcnJvcnMoe1xuICAgICAgICAgICAgICAgICAgICAuLi5mb3JtQ29udHJvbC5lcnJvcnMsXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgaW52YWxpZERhdGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2wuc2V0RXJyb3JzKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZm9ybUNvbnRyb2wuZXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkRGF0ZTogZmFsc2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5hcnJvd0Rvd25BbGxvd2VkQ2hhcmFjdGVycyhldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHBhcnNlSW50KChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUsIDEwKSA9PT0gMCkge1xuICAgICAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSA9ICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByZXZlbnRJbmNvcnJlY3ROdW1iZXJDaGFyYWN0ZXJzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlICcuJzpcbiAgICAgICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgICAgY2FzZSAnZSc6XG4gICAgICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBjYXNlICcwJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gISEoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtY29udGFpbmVyXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVJhbmdlVHlwZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiYWRmLXNlYXJjaC1kYXRlLXJhbmdlLWNvbnRhaW5lci1yb3dcIj5cbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJEYXRlUmFuZ2VUeXBlLkFOWVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGUtcmFuZ2UtYW55dGltZVwiPlxuICAgICAgICB7eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuT1BUSU9OUy5BTllUSU1FJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1jb250YWluZXItcm93XCI+XG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwiRGF0ZVJhbmdlVHlwZS5JTl9MQVNUXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiZGF0ZS1yYW5nZS1pbi1sYXN0XCI+XG4gICAgICAgIHt7ICdTRUFSQ0guREFURV9SQU5HRV9BRFZBTkNFRC5PUFRJT05TLklOX0xBU1QnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtZm9ybS1maWVsZCBhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtaW5wdXQtZmllbGRcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbYXR0ci5hcmlhLWxhYmVsXT1cIidTRUFSQ0guREFURV9SQU5HRV9BRFZBTkNFRC5BUklBX0xBQkVMLk5VTUJFUl9JTlBVVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiIG1pbj1cIjFcIiBmb3JtQ29udHJvbE5hbWU9XCJpbkxhc3RWYWx1ZVwiXG4gICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWluLWxhc3QtaW5wdXRcIiAoaW5wdXQpPVwibmFycm93RG93bkFsbG93ZWRDaGFyYWN0ZXJzKCRldmVudClcIlxuICAgICAgICAgICAgICAgKGtleWRvd24pPVwicHJldmVudEluY29ycmVjdE51bWJlckNoYXJhY3RlcnMoJGV2ZW50KVwiPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9scy5pbkxhc3RWYWx1ZS5lcnJvcnM/LnJlcXVpcmVkXCI+e3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELkVSUk9SLklOX0xBU1QnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLXNlYXJjaC1kYXRlLXJhbmdlLWZvcm0tZmllbGQgYWRmLXNlYXJjaC1kYXRlLXJhbmdlLWZvcm0tZmllbGQtc2VsZWN0XCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpbkxhc3RWYWx1ZVR5cGVcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWluLWxhc3QtZHJvcGRvd25cIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWluLWxhc3Qtb3B0aW9uLWRheXNcIiBbdmFsdWVdPVwiSW5MYXN0RGF0ZVR5cGUuREFZU1wiPnt7ICdTRUFSQ0guREFURV9SQU5HRV9BRFZBTkNFRC5JTl9MQVNUX0xBQkVMUy5EQVlTJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWluLWxhc3Qtb3B0aW9uLXdlZWtzXCIgW3ZhbHVlXT1cIkluTGFzdERhdGVUeXBlLldFRUtTXCI+e3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELklOX0xBU1RfTEFCRUxTLldFRUtTJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWluLWxhc3Qtb3B0aW9uLW1vbnRoc1wiIFt2YWx1ZV09XCJJbkxhc3REYXRlVHlwZS5NT05USFNcIj57eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuSU5fTEFTVF9MQUJFTFMuTU9OVEhTJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtY29udGFpbmVyLXJvdyBhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtY29udGFpbmVyLXJvdy1kYXRlXCI+XG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwiRGF0ZVJhbmdlVHlwZS5CRVRXRUVOXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiZGF0ZS1yYW5nZS1iZXR3ZWVuXCI+XG4gICAgICAgIHt7ICdTRUFSQ0guREFURV9SQU5HRV9BRFZBTkNFRC5PUFRJT05TLkJFVFdFRU4nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtZm9ybS1maWVsZFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0IFtyYW5nZVBpY2tlcl09XCIkYW55KHBpY2tlcilcIiBbbWF4XT1cImNvbnZlcnRlZE1heERhdGVcIj5cbiAgICAgICAgICA8aW5wdXQgbWF0U3RhcnREYXRlIHBsYWNlaG9sZGVyPVwie3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELkJFVFdFRU5fUExBQ0VIT0xERVJTLlNUQVJUX0RBVEUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiZGF0ZS1yYW5nZS1iZXR3ZWVuLXN0YXJ0LWlucHV0XCIgW2Zvcm1Db250cm9sXT1cImJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbFwiIChjaGFuZ2UpPVwiZGF0ZUNoYW5nZWQoJGV2ZW50LCBiZXR3ZWVuU3RhcnREYXRlRm9ybUNvbnRyb2wpXCI+XG4gICAgICAgICAgPGlucHV0IG1hdEVuZERhdGUgcGxhY2Vob2xkZXI9XCJ7eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuQkVUV0VFTl9QTEFDRUhPTERFUlMuRU5EX0RBVEUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiZGF0ZS1yYW5nZS1iZXR3ZWVuLWVuZC1pbnB1dFwiIFtmb3JtQ29udHJvbF09XCJiZXR3ZWVuRW5kRGF0ZUZvcm1Db250cm9sXCIgKGNoYW5nZSk9XCJkYXRlQ2hhbmdlZCgkZXZlbnQsIGJldHdlZW5FbmREYXRlRm9ybUNvbnRyb2wpXCI+XG4gICAgICAgIDwvbWF0LWRhdGUtcmFuZ2UtaW5wdXQ+XG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiZGF0ZS1yYW5nZS1iZXR3ZWVuLWRhdGVwaWNrZXItdG9nZ2xlXCIgLz5cbiAgICAgICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjcGlja2VyIC8+XG5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbC5lcnJvcnM/LmludmFsaWREYXRlXCI+e3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELkVSUk9SLlNUQVJUX0RBVEUuSU5WQUxJRF9GT1JNQVQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJiZXR3ZWVuU3RhcnREYXRlRm9ybUNvbnRyb2wuZXJyb3JzPy5yZXF1aXJlZFwiPnt7ICdTRUFSQ0guREFURV9SQU5HRV9BRFZBTkNFRC5FUlJPUi5TVEFSVF9EQVRFLlJFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWVycm9yPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbC5lcnJvcnM/LmludmFsaWREYXRlXCI+e3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELkVSUk9SLkVORF9EQVRFLklOVkFMSURfRk9STUFUJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWVycm9yPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbC5lcnJvcnM/LnJlcXVpcmVkXCI+e3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELkVSUk9SLkVORF9EQVRFLlJFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L3NwYW4+XG4gIDwvbWF0LXJhZGlvLWdyb3VwPlxuPC9kaXY+XG4iXX0=
@@ -1,18 +0,0 @@
1
- /*!
2
- * @license
3
- * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
- export {};
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRhdGUtcmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1kYXRlLXJhbmdlLXRhYmJlZC9zZWFyY2gtZGF0ZS1yYW5nZS9zZWFyY2gtZGF0ZS1yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUciLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IERhdGVSYW5nZVR5cGUgfSBmcm9tICcuL2RhdGUtcmFuZ2UtdHlwZSc7XG5pbXBvcnQgeyBJbkxhc3REYXRlVHlwZSB9IGZyb20gJy4vaW4tbGFzdC1kYXRlLXR5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaERhdGVSYW5nZSB7XG4gICAgZGF0ZVJhbmdlVHlwZTogRGF0ZVJhbmdlVHlwZTtcbiAgICBpbkxhc3RWYWx1ZVR5cGU/OiBJbkxhc3REYXRlVHlwZTtcbiAgICBpbkxhc3RWYWx1ZT86IHN0cmluZztcbiAgICBiZXR3ZWVuU3RhcnREYXRlPzogRGF0ZTtcbiAgICBiZXR3ZWVuRW5kRGF0ZT86IERhdGU7XG59XG4iXX0=
@@ -1,201 +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 { Component, DestroyRef, inject, ViewEncapsulation } from '@angular/core';
18
- import { ReplaySubject } from 'rxjs';
19
- import { map } from 'rxjs/operators';
20
- import { DateRangeType } from './search-date-range/date-range-type';
21
- import { InLastDateType } from './search-date-range/in-last-date-type';
22
- import { TranslationService } from '@alfresco/adf-core';
23
- import { endOfDay, endOfToday, format, formatISO, parseISO, startOfDay, startOfMonth, startOfWeek, subDays, subMonths, subWeeks } from 'date-fns';
24
- import { CommonModule } from '@angular/common';
25
- import { SearchFilterTabbedComponent } from '../search-filter-tabbed/search-filter-tabbed.component';
26
- import { SearchDateRangeComponent } from './search-date-range/search-date-range.component';
27
- import { SearchFilterTabDirective } from '../search-filter-tabbed/search-filter-tab.directive';
28
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
29
- import * as i0 from "@angular/core";
30
- import * as i1 from "@alfresco/adf-core";
31
- import * as i2 from "@angular/common";
32
- const DEFAULT_DATE_DISPLAY_FORMAT = 'dd-MMM-yy';
33
- export class SearchDateRangeTabbedComponent {
34
- constructor(translateService) {
35
- this.translateService = translateService;
36
- this.displayValue$ = new ReplaySubject(1);
37
- this.startValue = {
38
- dateRangeType: DateRangeType.ANY,
39
- inLastValueType: InLastDateType.DAYS,
40
- inLastValue: undefined,
41
- betweenStartDate: undefined,
42
- betweenEndDate: undefined
43
- };
44
- this.preselectedValues = {};
45
- this.tabsValidity = {};
46
- this.value = {};
47
- this.queryMapByField = new Map();
48
- this.displayValueMapByField = new Map();
49
- this.destroyRef = inject(DestroyRef);
50
- }
51
- ngOnInit() {
52
- this.fields = this.settings?.field.split(',').map((field) => field.trim());
53
- this.setDefaultDateFormatSettings();
54
- this.context.populateFilters
55
- .asObservable()
56
- .pipe(map((filtersQueries) => filtersQueries[this.id]), takeUntilDestroyed(this.destroyRef))
57
- .subscribe((filterQuery) => {
58
- if (filterQuery) {
59
- Object.keys(filterQuery).forEach((field) => {
60
- filterQuery[field].betweenStartDate = filterQuery[field].betweenStartDate
61
- ? parseISO(filterQuery[field].betweenStartDate)
62
- : undefined;
63
- filterQuery[field].betweenEndDate = filterQuery[field].betweenEndDate
64
- ? parseISO(filterQuery[field].betweenEndDate)
65
- : undefined;
66
- this.preselectedValues[field] = filterQuery[field];
67
- this.onDateRangedValueChanged(filterQuery[field], field);
68
- });
69
- this.submitValues(false);
70
- }
71
- else {
72
- this.reset(false);
73
- }
74
- this.context.filterLoaded.next();
75
- });
76
- }
77
- setDefaultDateFormatSettings() {
78
- if (this.settings && !this.settings.dateFormat) {
79
- this.settings.dateFormat = DEFAULT_DATE_DISPLAY_FORMAT;
80
- }
81
- }
82
- getCurrentValue() {
83
- return this.value;
84
- }
85
- hasValidValue() {
86
- return Object.values(this.tabsValidity).every((valid) => valid);
87
- }
88
- reset(updateContext = true) {
89
- this.combinedQuery = '';
90
- this.combinedDisplayValue = '';
91
- this.startValue = {
92
- ...this.startValue
93
- };
94
- this.fields.forEach((field) => {
95
- this.context.filterRawParams[field] = undefined;
96
- });
97
- this.context.queryFragments[this.id] = undefined;
98
- this.context.filterRawParams[this.id] = undefined;
99
- this.submitValues(updateContext);
100
- }
101
- setValue(value) {
102
- this.value = value;
103
- }
104
- getTabLabel(field) {
105
- return this.settings?.displayedLabelsByField?.[field] ? this.settings.displayedLabelsByField[field] : field;
106
- }
107
- submitValues(updateContext = true) {
108
- this.context.queryFragments[this.id] = this.combinedQuery;
109
- this.displayValue$.next(this.combinedDisplayValue);
110
- if (this.id && this.context && updateContext) {
111
- this.context.update();
112
- }
113
- }
114
- onDateRangedValueChanged(value, field) {
115
- this.context.filterRawParams[this.id] ||= {};
116
- this.context.filterRawParams[this.id][field] = value;
117
- this.value[field] = value;
118
- this.updateQuery(value, field);
119
- this.updateDisplayValue(value, field);
120
- }
121
- generateQuery(value, field) {
122
- let query = '';
123
- let startDate;
124
- let endDate;
125
- if (value.dateRangeType === DateRangeType.IN_LAST) {
126
- if (value.inLastValue) {
127
- switch (value.inLastValueType) {
128
- case InLastDateType.DAYS:
129
- startDate = startOfDay(subDays(new Date(), parseInt(value.inLastValue, 10)));
130
- break;
131
- case InLastDateType.WEEKS:
132
- startDate = startOfWeek(subWeeks(new Date(), parseInt(value.inLastValue, 10)));
133
- break;
134
- case InLastDateType.MONTHS:
135
- startDate = startOfMonth(subMonths(new Date(), parseInt(value.inLastValue, 10)));
136
- break;
137
- default:
138
- break;
139
- }
140
- }
141
- endDate = endOfToday();
142
- }
143
- else if (value.dateRangeType === DateRangeType.BETWEEN) {
144
- if (value.betweenStartDate && value.betweenEndDate) {
145
- startDate = startOfDay(value.betweenStartDate);
146
- endDate = endOfDay(value.betweenEndDate);
147
- }
148
- }
149
- if (startDate && endDate) {
150
- query = `${field}:['${formatISO(startDate)}' TO '${formatISO(endDate)}']`;
151
- }
152
- return query;
153
- }
154
- generateDisplayValue(value) {
155
- let displayValue = '';
156
- if (value.dateRangeType === DateRangeType.IN_LAST && value.inLastValue) {
157
- displayValue = this.translateService.instant(`SEARCH.DATE_RANGE_ADVANCED.IN_LAST_DISPLAY_LABELS.${value.inLastValueType}`, {
158
- value: value.inLastValue
159
- });
160
- }
161
- else if (value.dateRangeType === DateRangeType.BETWEEN && value.betweenStartDate && value.betweenEndDate) {
162
- displayValue = `${format(startOfDay(value.betweenStartDate), this.settings.dateFormat)} - ${format(endOfDay(value.betweenEndDate), this.settings.dateFormat)}`;
163
- }
164
- return displayValue;
165
- }
166
- updateQuery(value, field) {
167
- this.combinedQuery = '';
168
- this.queryMapByField.set(field, this.generateQuery(value, field));
169
- this.queryMapByField.forEach((query) => {
170
- if (query) {
171
- this.combinedQuery = this.combinedQuery ? `${this.combinedQuery} AND ${query}` : `${query}`;
172
- }
173
- });
174
- }
175
- updateDisplayValue(value, field) {
176
- this.combinedDisplayValue = '';
177
- this.displayValueMapByField.set(field, this.generateDisplayValue(value));
178
- this.displayValueMapByField.forEach((displayValue, fieldForDisplayLabel) => {
179
- if (displayValue) {
180
- const displayLabelForField = `${this.translateService
181
- .instant(this.getDisplayLabelForField(fieldForDisplayLabel))
182
- .toUpperCase()}: ${displayValue}`;
183
- this.combinedDisplayValue = this.combinedDisplayValue
184
- ? `${this.combinedDisplayValue} ${displayLabelForField}`
185
- : `${displayLabelForField}`;
186
- }
187
- });
188
- }
189
- getDisplayLabelForField(fieldForDisplayLabel) {
190
- return this.settings?.displayedLabelsByField?.[fieldForDisplayLabel]
191
- ? this.settings.displayedLabelsByField[fieldForDisplayLabel]
192
- : fieldForDisplayLabel;
193
- }
194
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchDateRangeTabbedComponent, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
195
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchDateRangeTabbedComponent, isStandalone: true, selector: "adf-search-date-range-tabbed", ngImport: i0, template: "<adf-search-filter-tabbed>\n <ng-container *ngFor=\"let field of fields\">\n <adf-search-date-range\n *adf-search-filter-tab=\"getTabLabel(field)\"\n [dateFormat]=\"settings.dateFormat\"\n [maxDate]=\"settings.maxDate\"\n [field]=\"field\"\n [initialValue]=\"preselectedValues[field]\"\n (changed)=\"onDateRangedValueChanged($event, field)\"\n (valid)=\"tabsValidity[field]=$event\" />\n </ng-container>\n</adf-search-filter-tabbed>\n", styles: ["adf-search-date-range-tabbed .mat-mdc-tab-header{margin-top:-5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SearchFilterTabbedComponent, selector: "adf-search-filter-tabbed" }, { kind: "component", type: SearchDateRangeComponent, selector: "adf-search-date-range", inputs: ["dateFormat", "maxDate", "field", "initialValue"], outputs: ["changed", "valid"] }, { kind: "directive", type: SearchFilterTabDirective, selector: "[adf-search-filter-tab]", inputs: ["adf-search-filter-tab"] }], encapsulation: i0.ViewEncapsulation.None }); }
196
- }
197
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchDateRangeTabbedComponent, decorators: [{
198
- type: Component,
199
- args: [{ selector: 'adf-search-date-range-tabbed', standalone: true, imports: [CommonModule, SearchFilterTabbedComponent, SearchDateRangeComponent, SearchFilterTabDirective], encapsulation: ViewEncapsulation.None, template: "<adf-search-filter-tabbed>\n <ng-container *ngFor=\"let field of fields\">\n <adf-search-date-range\n *adf-search-filter-tab=\"getTabLabel(field)\"\n [dateFormat]=\"settings.dateFormat\"\n [maxDate]=\"settings.maxDate\"\n [field]=\"field\"\n [initialValue]=\"preselectedValues[field]\"\n (changed)=\"onDateRangedValueChanged($event, field)\"\n (valid)=\"tabsValidity[field]=$event\" />\n </ng-container>\n</adf-search-filter-tabbed>\n", styles: ["adf-search-date-range-tabbed .mat-mdc-tab-header{margin-top:-5px}\n"] }]
200
- }], ctorParameters: () => [{ type: i1.TranslationService }] });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRhdGUtcmFuZ2UtdGFiYmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLWRhdGUtcmFuZ2UtdGFiYmVkL3NlYXJjaC1kYXRlLXJhbmdlLXRhYmJlZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1kYXRlLXJhbmdlLXRhYmJlZC9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUtwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEosT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFB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O1lBQ3BDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxvQkFBNEI7UUFDeEQsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDaEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUM7WUFDNUQsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO0lBQy9CLENBQUM7K0dBdExRLDhCQUE4QjttR0FBOUIsOEJBQThCLHdGQzVDM0MsOGdCQVlBLDRIRDJCYyxZQUFZLDRKQUFFLDJCQUEyQixxRUFBRSx3QkFBd0IsNkpBQUUsd0JBQXdCOzs0RkFLOUYsOEJBQThCO2tCQVIxQyxTQUFTOytCQUNJLDhCQUE4QixjQUM1QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUMsaUJBR3pGLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VUeXBlIH0gZnJvbSAnLi9zZWFyY2gtZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLXR5cGUnO1xuaW1wb3J0IHsgU2VhcmNoRGF0ZVJhbmdlIH0gZnJvbSAnLi9zZWFyY2gtZGF0ZS1yYW5nZS9zZWFyY2gtZGF0ZS1yYW5nZSc7XG5pbXBvcnQgeyBTZWFyY2hXaWRnZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoV2lkZ2V0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC1zZXR0aW5ncy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC1xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5MYXN0RGF0ZVR5cGUgfSBmcm9tICcuL3NlYXJjaC1kYXRlLXJhbmdlL2luLWxhc3QtZGF0ZS10eXBlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBlbmRPZkRheSwgZW5kT2ZUb2RheSwgZm9ybWF0LCBmb3JtYXRJU08sIHBhcnNlSVNPLCBzdGFydE9mRGF5LCBzdGFydE9mTW9udGgsIHN0YXJ0T2ZXZWVrLCBzdWJEYXlzLCBzdWJNb250aHMsIHN1YldlZWtzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlclRhYmJlZENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1maWx0ZXItdGFiYmVkL3NlYXJjaC1maWx0ZXItdGFiYmVkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hEYXRlUmFuZ2VDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1kYXRlLXJhbmdlL3NlYXJjaC1kYXRlLXJhbmdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJUYWJEaXJlY3RpdmUgfSBmcm9tICcuLi9zZWFyY2gtZmlsdGVyLXRhYmJlZC9zZWFyY2gtZmlsdGVyLXRhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5jb25zdCBERUZBVUxUX0RBVEVfRElTUExBWV9GT1JNQVQgPSAnZGQtTU1NLXl5JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtdGFiYmVkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNlYXJjaEZpbHRlclRhYmJlZENvbXBvbmVudCwgU2VhcmNoRGF0ZVJhbmdlQ29tcG9uZW50LCBTZWFyY2hGaWx0ZXJUYWJEaXJlY3RpdmVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlYXJjaC1kYXRlLXJhbmdlLXRhYmJlZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoRGF0ZVJhbmdlVGFiYmVkQ29tcG9uZW50IGltcGxlbWVudHMgU2VhcmNoV2lkZ2V0LCBPbkluaXQge1xuICAgIGRpc3BsYXlWYWx1ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgc3RhcnRWYWx1ZTogU2VhcmNoRGF0ZVJhbmdlID0ge1xuICAgICAgICBkYXRlUmFuZ2VUeXBlOiBEYXRlUmFuZ2VUeXBlLkFOWSxcbiAgICAgICAgaW5MYXN0VmFsdWVUeXBlOiBJbkxhc3REYXRlVHlwZS5EQVlTLFxuICAgICAgICBpbkxhc3RWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICBiZXR3ZWVuU3RhcnREYXRlOiB1bmRlZmluZWQsXG4gICAgICAgIGJldHdlZW5FbmREYXRlOiB1bmRlZmluZWRcbiAgICB9O1xuICAgIHByZXNlbGVjdGVkVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IFNlYXJjaERhdGVSYW5nZSB9ID0ge307XG4gICAgc2V0dGluZ3M/OiBTZWFyY2hXaWRnZXRTZXR0aW5ncztcbiAgICBjb250ZXh0PzogU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZTtcbiAgICBmaWVsZHM6IHN0cmluZ1tdO1xuICAgIHRhYnNWYWxpZGl0eTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBjb21iaW5lZFF1ZXJ5OiBzdHJpbmc7XG4gICAgY29tYmluZWREaXNwbGF5VmFsdWU6IHN0cmluZztcblxuICAgIHByaXZhdGUgdmFsdWU6IHsgW2tleTogc3RyaW5nXTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+IH0gPSB7fTtcbiAgICBwcml2YXRlIHF1ZXJ5TWFwQnlGaWVsZDogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgcHJpdmF0ZSBkaXNwbGF5VmFsdWVNYXBCeUZpZWxkOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRzID0gdGhpcy5zZXR0aW5ncz8uZmllbGQuc3BsaXQoJywnKS5tYXAoKGZpZWxkKSA9PiBmaWVsZC50cmltKCkpO1xuICAgICAgICB0aGlzLnNldERlZmF1bHREYXRlRm9ybWF0U2V0dGluZ3MoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnBvcHVsYXRlRmlsdGVyc1xuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGZpbHRlcnNRdWVyaWVzKSA9PiBmaWx0ZXJzUXVlcmllc1t0aGlzLmlkXSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlclF1ZXJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGZpbHRlclF1ZXJ5KS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUXVlcnlbZmllbGRdLmJldHdlZW5TdGFydERhdGUgPSBmaWx0ZXJRdWVyeVtmaWVsZF0uYmV0d2VlblN0YXJ0RGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcGFyc2VJU08oZmlsdGVyUXVlcnlbZmllbGRdLmJldHdlZW5TdGFydERhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeVtmaWVsZF0uYmV0d2VlbkVuZERhdGUgPSBmaWx0ZXJRdWVyeVtmaWVsZF0uYmV0d2VlbkVuZERhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHBhcnNlSVNPKGZpbHRlclF1ZXJ5W2ZpZWxkXS5iZXR3ZWVuRW5kRGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlc2VsZWN0ZWRWYWx1ZXNbZmllbGRdID0gZmlsdGVyUXVlcnlbZmllbGRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRhdGVSYW5nZWRWYWx1ZUNoYW5nZWQoZmlsdGVyUXVlcnlbZmllbGRdLCBmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdFZhbHVlcyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJMb2FkZWQubmV4dCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIHByaXZhdGUgc2V0RGVmYXVsdERhdGVGb3JtYXRTZXR0aW5ncygpIHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MgJiYgIXRoaXMuc2V0dGluZ3MuZGF0ZUZvcm1hdCkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXRlRm9ybWF0ID0gREVGQVVMVF9EQVRFX0RJU1BMQVlfRk9STUFUO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbHVlKCk6IHsgW2tleTogc3RyaW5nXTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+IH0ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnRhYnNWYWxpZGl0eSkuZXZlcnkoKHZhbGlkKSA9PiB2YWxpZCk7XG4gICAgfVxuXG4gICAgcmVzZXQodXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5jb21iaW5lZFF1ZXJ5ID0gJyc7XG4gICAgICAgIHRoaXMuY29tYmluZWREaXNwbGF5VmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5zdGFydFZhbHVlID0ge1xuICAgICAgICAgICAgLi4udGhpcy5zdGFydFZhbHVlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW2ZpZWxkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlclJhd1BhcmFtc1t0aGlzLmlkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zdWJtaXRWYWx1ZXModXBkYXRlQ29udGV4dCk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUodmFsdWU6IHsgW2tleTogc3RyaW5nXTogU2VhcmNoRGF0ZVJhbmdlIH0pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldFRhYkxhYmVsKGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncz8uZGlzcGxheWVkTGFiZWxzQnlGaWVsZD8uW2ZpZWxkXSA/IHRoaXMuc2V0dGluZ3MuZGlzcGxheWVkTGFiZWxzQnlGaWVsZFtmaWVsZF0gOiBmaWVsZDtcbiAgICB9XG5cbiAgICBzdWJtaXRWYWx1ZXModXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnF1ZXJ5RnJhZ21lbnRzW3RoaXMuaWRdID0gdGhpcy5jb21iaW5lZFF1ZXJ5O1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSQubmV4dCh0aGlzLmNvbWJpbmVkRGlzcGxheVZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgdGhpcy5jb250ZXh0ICYmIHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkRhdGVSYW5nZWRWYWx1ZUNoYW5nZWQodmFsdWU6IFBhcnRpYWw8U2VhcmNoRGF0ZVJhbmdlPiwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdIHx8PSB7fTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlclJhd1BhcmFtc1t0aGlzLmlkXVtmaWVsZF0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZVtmaWVsZF0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVRdWVyeSh2YWx1ZSwgZmllbGQpO1xuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSh2YWx1ZSwgZmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVRdWVyeSh2YWx1ZTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+LCBmaWVsZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gJyc7XG4gICAgICAgIGxldCBzdGFydERhdGU6IERhdGU7XG4gICAgICAgIGxldCBlbmREYXRlOiBEYXRlO1xuICAgICAgICBpZiAodmFsdWUuZGF0ZVJhbmdlVHlwZSA9PT0gRGF0ZVJhbmdlVHlwZS5JTl9MQVNUKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUuaW5MYXN0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLmluTGFzdFZhbHVlVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEluTGFzdERhdGVUeXBlLkRBWVM6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBzdGFydE9mRGF5KHN1YkRheXMobmV3IERhdGUoKSwgcGFyc2VJbnQodmFsdWUuaW5MYXN0VmFsdWUsIDEwKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgSW5MYXN0RGF0ZVR5cGUuV0VFS1M6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBzdGFydE9mV2VlayhzdWJXZWVrcyhuZXcgRGF0ZSgpLCBwYXJzZUludCh2YWx1ZS5pbkxhc3RWYWx1ZSwgMTApKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBJbkxhc3REYXRlVHlwZS5NT05USFM6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBzdGFydE9mTW9udGgoc3ViTW9udGhzKG5ldyBEYXRlKCksIHBhcnNlSW50KHZhbHVlLmluTGFzdFZhbHVlLCAxMCkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW5kRGF0ZSA9IGVuZE9mVG9kYXkoKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRlUmFuZ2VUeXBlID09PSBEYXRlUmFuZ2VUeXBlLkJFVFdFRU4pIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5iZXR3ZWVuU3RhcnREYXRlICYmIHZhbHVlLmJldHdlZW5FbmREYXRlKSB7XG4gICAgICAgICAgICAgICAgc3RhcnREYXRlID0gc3RhcnRPZkRheSh2YWx1ZS5iZXR3ZWVuU3RhcnREYXRlKTtcbiAgICAgICAgICAgICAgICBlbmREYXRlID0gZW5kT2ZEYXkodmFsdWUuYmV0d2VlbkVuZERhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydERhdGUgJiYgZW5kRGF0ZSkge1xuICAgICAgICAgICAgcXVlcnkgPSBgJHtmaWVsZH06Wycke2Zvcm1hdElTTyhzdGFydERhdGUpfScgVE8gJyR7Zm9ybWF0SVNPKGVuZERhdGUpfSddYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcXVlcnk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZURpc3BsYXlWYWx1ZSh2YWx1ZTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgICAgICBpZiAodmFsdWUuZGF0ZVJhbmdlVHlwZSA9PT0gRGF0ZVJhbmdlVHlwZS5JTl9MQVNUICYmIHZhbHVlLmluTGFzdFZhbHVlKSB7XG4gICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuSU5fTEFTVF9ESVNQTEFZX0xBQkVMUy4ke3ZhbHVlLmluTGFzdFZhbHVlVHlwZX1gLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLmluTGFzdFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRlUmFuZ2VUeXBlID09PSBEYXRlUmFuZ2VUeXBlLkJFVFdFRU4gJiYgdmFsdWUuYmV0d2VlblN0YXJ0RGF0ZSAmJiB2YWx1ZS5iZXR3ZWVuRW5kRGF0ZSkge1xuICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gYCR7Zm9ybWF0KHN0YXJ0T2ZEYXkodmFsdWUuYmV0d2VlblN0YXJ0RGF0ZSksIHRoaXMuc2V0dGluZ3MuZGF0ZUZvcm1hdCl9IC0gJHtmb3JtYXQoXG4gICAgICAgICAgICAgICAgZW5kT2ZEYXkodmFsdWUuYmV0d2VlbkVuZERhdGUpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MuZGF0ZUZvcm1hdFxuICAgICAgICAgICAgKX1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaXNwbGF5VmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVRdWVyeSh2YWx1ZTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY29tYmluZWRRdWVyeSA9ICcnO1xuICAgICAgICB0aGlzLnF1ZXJ5TWFwQnlGaWVsZC5zZXQoZmllbGQsIHRoaXMuZ2VuZXJhdGVRdWVyeSh2YWx1ZSwgZmllbGQpKTtcbiAgICAgICAgdGhpcy5xdWVyeU1hcEJ5RmllbGQuZm9yRWFjaCgocXVlcnk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21iaW5lZFF1ZXJ5ID0gdGhpcy5jb21iaW5lZFF1ZXJ5ID8gYCR7dGhpcy5jb21iaW5lZFF1ZXJ5fSBBTkQgJHtxdWVyeX1gIDogYCR7cXVlcnl9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEaXNwbGF5VmFsdWUodmFsdWU6IFBhcnRpYWw8U2VhcmNoRGF0ZVJhbmdlPiwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmNvbWJpbmVkRGlzcGxheVZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlTWFwQnlGaWVsZC5zZXQoZmllbGQsIHRoaXMuZ2VuZXJhdGVEaXNwbGF5VmFsdWUodmFsdWUpKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWVNYXBCeUZpZWxkLmZvckVhY2goKGRpc3BsYXlWYWx1ZTogc3RyaW5nLCBmaWVsZEZvckRpc3BsYXlMYWJlbDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoZGlzcGxheVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheUxhYmVsRm9yRmllbGQgPSBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLmluc3RhbnQodGhpcy5nZXREaXNwbGF5TGFiZWxGb3JGaWVsZChmaWVsZEZvckRpc3BsYXlMYWJlbCkpXG4gICAgICAgICAgICAgICAgICAgIC50b1VwcGVyQ2FzZSgpfTogJHtkaXNwbGF5VmFsdWV9YDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbWJpbmVkRGlzcGxheVZhbHVlID0gdGhpcy5jb21iaW5lZERpc3BsYXlWYWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IGAke3RoaXMuY29tYmluZWREaXNwbGF5VmFsdWV9ICR7ZGlzcGxheUxhYmVsRm9yRmllbGR9YFxuICAgICAgICAgICAgICAgICAgICA6IGAke2Rpc3BsYXlMYWJlbEZvckZpZWxkfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGlzcGxheUxhYmVsRm9yRmllbGQoZmllbGRGb3JEaXNwbGF5TGFiZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzPy5kaXNwbGF5ZWRMYWJlbHNCeUZpZWxkPy5bZmllbGRGb3JEaXNwbGF5TGFiZWxdXG4gICAgICAgICAgICA/IHRoaXMuc2V0dGluZ3MuZGlzcGxheWVkTGFiZWxzQnlGaWVsZFtmaWVsZEZvckRpc3BsYXlMYWJlbF1cbiAgICAgICAgICAgIDogZmllbGRGb3JEaXNwbGF5TGFiZWw7XG4gICAgfVxufVxuIiwiPGFkZi1zZWFyY2gtZmlsdGVyLXRhYmJlZD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZHNcIj5cbiAgICAgICAgPGFkZi1zZWFyY2gtZGF0ZS1yYW5nZVxuICAgICAgICAgICAgKmFkZi1zZWFyY2gtZmlsdGVyLXRhYj1cImdldFRhYkxhYmVsKGZpZWxkKVwiXG4gICAgICAgICAgICBbZGF0ZUZvcm1hdF09XCJzZXR0aW5ncy5kYXRlRm9ybWF0XCJcbiAgICAgICAgICAgIFttYXhEYXRlXT1cInNldHRpbmdzLm1heERhdGVcIlxuICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgIFtpbml0aWFsVmFsdWVdPVwicHJlc2VsZWN0ZWRWYWx1ZXNbZmllbGRdXCJcbiAgICAgICAgICAgIChjaGFuZ2VkKT1cIm9uRGF0ZVJhbmdlZFZhbHVlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiXG4gICAgICAgICAgICAodmFsaWQpPVwidGFic1ZhbGlkaXR5W2ZpZWxkXT0kZXZlbnRcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9hZGYtc2VhcmNoLWZpbHRlci10YWJiZWQ+XG4iXX0=
@@ -1,18 +0,0 @@
1
- /*!
2
- * @license
3
- * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
- export * from './search-datetime-range.component';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1kYXRldGltZS1yYW5nZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1kYXRldGltZS1yYW5nZS5jb21wb25lbnQnO1xuIl19