@alfresco/adf-content-services 8.1.0-15902121227 → 8.1.0-15972188736

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 (408) hide show
  1. package/fesm2022/adf-content-services.mjs +808 -829
  2. package/fesm2022/adf-content-services.mjs.map +1 -1
  3. package/lib/new-version-uploader/new-version-uploader.dialog.scss +1 -1
  4. package/lib/upload/components/base-upload/upload-base.d.ts +1 -1
  5. package/package.json +4 -6
  6. package/esm2022/adf-content-services.mjs +0 -5
  7. package/esm2022/lib/agent/index.mjs +0 -18
  8. package/esm2022/lib/agent/public-api.mjs +0 -18
  9. package/esm2022/lib/agent/services/agent.service.mjs +0 -60
  10. package/esm2022/lib/alfresco-icon/alfresco-icon.component.mjs +0 -27
  11. package/esm2022/lib/api-factories/alfresco-api-no-auth.service.mjs +0 -42
  12. package/esm2022/lib/api-factories/alfresco-api-v2-loader.service.mjs +0 -77
  13. package/esm2022/lib/api-factories/index.mjs +0 -18
  14. package/esm2022/lib/api-factories/public-api.mjs +0 -19
  15. package/esm2022/lib/aspect-list/aspect-list-dialog-data.interface.mjs +0 -18
  16. package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +0 -78
  17. package/esm2022/lib/aspect-list/aspect-list.component.mjs +0 -140
  18. package/esm2022/lib/aspect-list/aspect-list.module.mjs +0 -35
  19. package/esm2022/lib/aspect-list/index.mjs +0 -18
  20. package/esm2022/lib/aspect-list/public-api.mjs +0 -24
  21. package/esm2022/lib/aspect-list/services/aspect-list.service.mjs +0 -83
  22. package/esm2022/lib/aspect-list/services/dialog-aspect-list.service.mjs +0 -86
  23. package/esm2022/lib/aspect-list/services/node-aspect.service.mjs +0 -52
  24. package/esm2022/lib/auth-loader/content-auth-loader-factory.mjs +0 -26
  25. package/esm2022/lib/auth-loader/content-auth-loader.service.mjs +0 -42
  26. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -167
  27. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +0 -35
  28. package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +0 -66
  29. package/esm2022/lib/breadcrumb/index.mjs +0 -18
  30. package/esm2022/lib/breadcrumb/public-api.mjs +0 -20
  31. package/esm2022/lib/category/categories-management/categories-management-mode.mjs +0 -22
  32. package/esm2022/lib/category/categories-management/categories-management.component.mjs +0 -309
  33. package/esm2022/lib/category/category.module.mjs +0 -33
  34. package/esm2022/lib/category/index.mjs +0 -18
  35. package/esm2022/lib/category/models/category-node.interface.mjs +0 -18
  36. package/esm2022/lib/category/public-api.mjs +0 -23
  37. package/esm2022/lib/category/services/category-tree-datasource.service.mjs +0 -80
  38. package/esm2022/lib/category/services/category.service.mjs +0 -159
  39. package/esm2022/lib/common/events/file.event.mjs +0 -46
  40. package/esm2022/lib/common/index.mjs +0 -18
  41. package/esm2022/lib/common/interfaces/saved-search.interface.mjs +0 -18
  42. package/esm2022/lib/common/interfaces/search-configuration.interface.mjs +0 -18
  43. package/esm2022/lib/common/mocks/ecm-user.service.mock.mjs +0 -37
  44. package/esm2022/lib/common/models/allowable-operations.enum.mjs +0 -30
  45. package/esm2022/lib/common/models/ecm-company.model.mjs +0 -19
  46. package/esm2022/lib/common/models/ecm-user.model.mjs +0 -45
  47. package/esm2022/lib/common/models/file.model.mjs +0 -53
  48. package/esm2022/lib/common/models/node-metadata.model.mjs +0 -23
  49. package/esm2022/lib/common/models/permissions.enum.mjs +0 -32
  50. package/esm2022/lib/common/public-api.mjs +0 -37
  51. package/esm2022/lib/common/services/card-view-content-update.service.mjs +0 -55
  52. package/esm2022/lib/common/services/content.service.mjs +0 -180
  53. package/esm2022/lib/common/services/discovery-api.service.mjs +0 -79
  54. package/esm2022/lib/common/services/favorites-api.service.mjs +0 -84
  55. package/esm2022/lib/common/services/nodes-api.service.mjs +0 -251
  56. package/esm2022/lib/common/services/people-content.service.mjs +0 -138
  57. package/esm2022/lib/common/services/rendition.service.mjs +0 -270
  58. package/esm2022/lib/common/services/saved-searches.service.mjs +0 -206
  59. package/esm2022/lib/common/services/sites.service.mjs +0 -243
  60. package/esm2022/lib/common/services/upload.service.mjs +0 -391
  61. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +0 -55
  62. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +0 -491
  63. package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +0 -129
  64. package/esm2022/lib/content-metadata/content-metadata.module.mjs +0 -36
  65. package/esm2022/lib/content-metadata/index.mjs +0 -18
  66. package/esm2022/lib/content-metadata/interfaces/aspect-oriented-config.interface.mjs +0 -18
  67. package/esm2022/lib/content-metadata/interfaces/card-view-group.interface.mjs +0 -18
  68. package/esm2022/lib/content-metadata/interfaces/content-metadata-config.interface.mjs +0 -18
  69. package/esm2022/lib/content-metadata/interfaces/content-metadata-custom-panel.interface.mjs +0 -18
  70. package/esm2022/lib/content-metadata/interfaces/content-metadata-panel.interface.mjs +0 -18
  71. package/esm2022/lib/content-metadata/interfaces/content-metadata.interfaces.mjs +0 -28
  72. package/esm2022/lib/content-metadata/interfaces/indifferent-config.interface.mjs +0 -18
  73. package/esm2022/lib/content-metadata/interfaces/layout-oriented-config.interface.mjs +0 -18
  74. package/esm2022/lib/content-metadata/interfaces/organised-property-group.interface.mjs +0 -18
  75. package/esm2022/lib/content-metadata/interfaces/preset-config.interface.mjs +0 -18
  76. package/esm2022/lib/content-metadata/interfaces/property-group.interface.mjs +0 -18
  77. package/esm2022/lib/content-metadata/interfaces/property.interface.mjs +0 -18
  78. package/esm2022/lib/content-metadata/public-api.mjs +0 -31
  79. package/esm2022/lib/content-metadata/services/basic-properties.service.mjs +0 -107
  80. package/esm2022/lib/content-metadata/services/config/aspect-oriented-config.service.mjs +0 -106
  81. package/esm2022/lib/content-metadata/services/config/content-metadata-config.factory.mjs +0 -76
  82. package/esm2022/lib/content-metadata/services/config/indifferent-config.service.mjs +0 -40
  83. package/esm2022/lib/content-metadata/services/config/layout-oriented-config.service.mjs +0 -108
  84. package/esm2022/lib/content-metadata/services/config/property-group-reader.mjs +0 -33
  85. package/esm2022/lib/content-metadata/services/content-metadata.service.mjs +0 -99
  86. package/esm2022/lib/content-metadata/services/content-type-property.service.mjs +0 -134
  87. package/esm2022/lib/content-metadata/services/property-descriptors.service.mjs +0 -52
  88. package/esm2022/lib/content-metadata/services/property-groups-translator.service.mjs +0 -169
  89. package/esm2022/lib/content-node-selector/content-node-dialog.service.mjs +0 -256
  90. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +0 -618
  91. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.mjs +0 -66
  92. package/esm2022/lib/content-node-selector/content-node-selector.component-data.interface.mjs +0 -18
  93. package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +0 -206
  94. package/esm2022/lib/content-node-selector/content-node-selector.module.mjs +0 -50
  95. package/esm2022/lib/content-node-selector/index.mjs +0 -18
  96. package/esm2022/lib/content-node-selector/name-location-cell/name-location-cell.component.mjs +0 -48
  97. package/esm2022/lib/content-node-selector/public-api.mjs +0 -25
  98. package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +0 -168
  99. package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +0 -288
  100. package/esm2022/lib/content-node-share/content-node-share.directive.mjs +0 -102
  101. package/esm2022/lib/content-node-share/content-node-share.module.mjs +0 -35
  102. package/esm2022/lib/content-node-share/content-node-share.settings.mjs +0 -18
  103. package/esm2022/lib/content-node-share/index.mjs +0 -18
  104. package/esm2022/lib/content-node-share/public-api.mjs +0 -22
  105. package/esm2022/lib/content-node-share/services/shared-links-api.service.mjs +0 -83
  106. package/esm2022/lib/content-type/content-type-dialog.component.mjs +0 -58
  107. package/esm2022/lib/content-type/content-type-metadata.interface.mjs +0 -18
  108. package/esm2022/lib/content-type/content-type.service.mjs +0 -52
  109. package/esm2022/lib/content-type/index.mjs +0 -20
  110. package/esm2022/lib/content.module.mjs +0 -277
  111. package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +0 -52
  112. package/esm2022/lib/dialogs/dialog.module.mjs +0 -52
  113. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.mjs +0 -111
  114. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.module.mjs +0 -38
  115. package/esm2022/lib/dialogs/download-zip/services/download-zip.service.mjs +0 -66
  116. package/esm2022/lib/dialogs/folder/folder-name.validators.mjs +0 -44
  117. package/esm2022/lib/dialogs/folder/folder.dialog.mjs +0 -147
  118. package/esm2022/lib/dialogs/index.mjs +0 -18
  119. package/esm2022/lib/dialogs/library/library.dialog.mjs +0 -225
  120. package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +0 -116
  121. package/esm2022/lib/dialogs/public-api.mjs +0 -25
  122. package/esm2022/lib/directives/auto-focus.directive.mjs +0 -38
  123. package/esm2022/lib/directives/check-allowable-operation.directive.mjs +0 -126
  124. package/esm2022/lib/directives/content-directive.module.mjs +0 -75
  125. package/esm2022/lib/directives/index.mjs +0 -18
  126. package/esm2022/lib/directives/library-favorite.directive.mjs +0 -119
  127. package/esm2022/lib/directives/library-membership.directive.mjs +0 -202
  128. package/esm2022/lib/directives/node-counter.directive.mjs +0 -60
  129. package/esm2022/lib/directives/node-delete.directive.mjs +0 -177
  130. package/esm2022/lib/directives/node-download.directive.mjs +0 -138
  131. package/esm2022/lib/directives/node-favorite.directive.mjs +0 -193
  132. package/esm2022/lib/directives/node-lock.directive.mjs +0 -57
  133. package/esm2022/lib/directives/node-restore.directive.mjs +0 -218
  134. package/esm2022/lib/directives/public-api.mjs +0 -28
  135. package/esm2022/lib/document-list/components/content-action/content-action-list.component.mjs +0 -60
  136. package/esm2022/lib/document-list/components/content-action/content-action.component.mjs +0 -196
  137. package/esm2022/lib/document-list/components/document-list.component.mjs +0 -964
  138. package/esm2022/lib/document-list/components/document-list.token.mjs +0 -21
  139. package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +0 -43
  140. package/esm2022/lib/document-list/components/filter-header/filter-header.component.mjs +0 -107
  141. package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +0 -133
  142. package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +0 -93
  143. package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +0 -88
  144. package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +0 -120
  145. package/esm2022/lib/document-list/components/node.event.mjs +0 -30
  146. package/esm2022/lib/document-list/components/trashcan-name-column/trashcan-name-column.component.mjs +0 -83
  147. package/esm2022/lib/document-list/data/image-resolver.model.mjs +0 -18
  148. package/esm2022/lib/document-list/data/row-filter.model.mjs +0 -18
  149. package/esm2022/lib/document-list/data/share-data-row.model.mjs +0 -102
  150. package/esm2022/lib/document-list/data/share-datatable-adapter.mjs +0 -258
  151. package/esm2022/lib/document-list/document-list.module.mjs +0 -79
  152. package/esm2022/lib/document-list/index.mjs +0 -18
  153. package/esm2022/lib/document-list/interfaces/document-list-loader.interface.mjs +0 -18
  154. package/esm2022/lib/document-list/models/content-action.model.mjs +0 -59
  155. package/esm2022/lib/document-list/models/document-folder.model.mjs +0 -23
  156. package/esm2022/lib/document-list/models/node-action.enum.mjs +0 -27
  157. package/esm2022/lib/document-list/models/permissions-style.model.mjs +0 -27
  158. package/esm2022/lib/document-list/models/permissions.model.mjs +0 -26
  159. package/esm2022/lib/document-list/models/preset.model.mjs +0 -257
  160. package/esm2022/lib/document-list/public-api.mjs +0 -47
  161. package/esm2022/lib/document-list/services/custom-resources.service.mjs +0 -378
  162. package/esm2022/lib/document-list/services/document-actions.service.mjs +0 -142
  163. package/esm2022/lib/document-list/services/document-list.service.mjs +0 -175
  164. package/esm2022/lib/document-list/services/folder-actions.service.mjs +0 -137
  165. package/esm2022/lib/document-list/services/lock.service.mjs +0 -72
  166. package/esm2022/lib/document-list/services/node-actions.service.mjs +0 -122
  167. package/esm2022/lib/group/index.mjs +0 -18
  168. package/esm2022/lib/group/public-api.mjs +0 -18
  169. package/esm2022/lib/group/services/group.service.mjs +0 -84
  170. package/esm2022/lib/infinite-scroll-datasource/index.mjs +0 -18
  171. package/esm2022/lib/infinite-scroll-datasource/infinite-scroll-datasource.mjs +0 -69
  172. package/esm2022/lib/infinite-scroll-datasource/public-api.mjs +0 -18
  173. package/esm2022/lib/interfaces/base-card-view-content-update.interface.mjs +0 -18
  174. package/esm2022/lib/interfaces/index.mjs +0 -18
  175. package/esm2022/lib/interfaces/library-entity.interface.mjs +0 -18
  176. package/esm2022/lib/interfaces/library-membership-error-event.interface.mjs +0 -18
  177. package/esm2022/lib/interfaces/library-membership-toggle-event.interface.mjs +0 -18
  178. package/esm2022/lib/interfaces/node-allowable-operation-subject.interface.mjs +0 -18
  179. package/esm2022/lib/interfaces/public-api.mjs +0 -23
  180. package/esm2022/lib/interfaces/restore-message-model.interface.mjs +0 -19
  181. package/esm2022/lib/legal-hold/index.mjs +0 -18
  182. package/esm2022/lib/legal-hold/public-api.mjs +0 -18
  183. package/esm2022/lib/legal-hold/services/legal-hold.service.mjs +0 -136
  184. package/esm2022/lib/material.module.mjs +0 -183
  185. package/esm2022/lib/mock/alfresco-api.service.mock.mjs +0 -43
  186. package/esm2022/lib/mock/date-range-search-filter.mock.mjs +0 -65
  187. package/esm2022/lib/mock/document-library.model.mock.mjs +0 -84
  188. package/esm2022/lib/mock/document-list.component.mock.mjs +0 -364
  189. package/esm2022/lib/mock/index.mjs +0 -18
  190. package/esm2022/lib/mock/new-version-uploader.service.mock.mjs +0 -161
  191. package/esm2022/lib/mock/public-api.mjs +0 -27
  192. package/esm2022/lib/mock/search-filter-mock.mjs +0 -637
  193. package/esm2022/lib/mock/search-query.mock.mjs +0 -40
  194. package/esm2022/lib/mock/search.component.mock.mjs +0 -165
  195. package/esm2022/lib/mock/search.service.mock.mjs +0 -61
  196. package/esm2022/lib/mock/sites-dropdown.component.mock.mjs +0 -281
  197. package/esm2022/lib/new-version-uploader/index.mjs +0 -18
  198. package/esm2022/lib/new-version-uploader/models/index.mjs +0 -18
  199. package/esm2022/lib/new-version-uploader/models/new-version-uploader.model.mjs +0 -24
  200. package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +0 -75
  201. package/esm2022/lib/new-version-uploader/new-version-uploader.module.mjs +0 -33
  202. package/esm2022/lib/new-version-uploader/new-version-uploader.service.mjs +0 -103
  203. package/esm2022/lib/new-version-uploader/public-api.mjs +0 -21
  204. package/esm2022/lib/node-comments/index.mjs +0 -18
  205. package/esm2022/lib/node-comments/node-comments.component.mjs +0 -44
  206. package/esm2022/lib/node-comments/node-comments.module.mjs +0 -33
  207. package/esm2022/lib/node-comments/public-api.mjs +0 -20
  208. package/esm2022/lib/node-comments/services/node-comments.service.mjs +0 -85
  209. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog-data.interface.mjs +0 -18
  210. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +0 -124
  211. package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +0 -103
  212. package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +0 -70
  213. package/esm2022/lib/permission-manager/components/add-permission/search-config-permission.service.mjs +0 -45
  214. package/esm2022/lib/permission-manager/components/inherited-button.directive.mjs +0 -67
  215. package/esm2022/lib/permission-manager/components/node-path-column/node-path-column.component.mjs +0 -56
  216. package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +0 -103
  217. package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +0 -88
  218. package/esm2022/lib/permission-manager/components/permission-list/permission-list.service.mjs +0 -219
  219. package/esm2022/lib/permission-manager/components/pop-over.directive.mjs +0 -134
  220. package/esm2022/lib/permission-manager/components/user-icon-column/user-icon-column.component.mjs +0 -88
  221. package/esm2022/lib/permission-manager/components/user-name-column/user-name-column.component.mjs +0 -82
  222. package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +0 -112
  223. package/esm2022/lib/permission-manager/index.mjs +0 -18
  224. package/esm2022/lib/permission-manager/models/member.model.mjs +0 -59
  225. package/esm2022/lib/permission-manager/models/permission.model.mjs +0 -29
  226. package/esm2022/lib/permission-manager/models/role.model.mjs +0 -18
  227. package/esm2022/lib/permission-manager/permission-manager.module.mjs +0 -84
  228. package/esm2022/lib/permission-manager/public-api.mjs +0 -36
  229. package/esm2022/lib/permission-manager/services/node-permission-dialog.service.mjs +0 -78
  230. package/esm2022/lib/permission-manager/services/node-permission.service.mjs +0 -299
  231. package/esm2022/lib/pipes/content-pipe.module.mjs +0 -37
  232. package/esm2022/lib/pipes/index.mjs +0 -18
  233. package/esm2022/lib/pipes/node-name-tooltip.pipe.mjs +0 -69
  234. package/esm2022/lib/pipes/public-api.mjs +0 -19
  235. package/esm2022/lib/prediction/index.mjs +0 -18
  236. package/esm2022/lib/prediction/public-api.mjs +0 -18
  237. package/esm2022/lib/prediction/services/index.mjs +0 -18
  238. package/esm2022/lib/prediction/services/prediction.service.mjs +0 -57
  239. package/esm2022/lib/search/components/empty-search-result.component.mjs +0 -27
  240. package/esm2022/lib/search/components/index.mjs +0 -43
  241. package/esm2022/lib/search/components/reset-search.directive.mjs +0 -41
  242. package/esm2022/lib/search/components/search-check-list/index.mjs +0 -18
  243. package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +0 -159
  244. package/esm2022/lib/search/components/search-chip-autocomplete-input/index.mjs +0 -18
  245. package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +0 -170
  246. package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +0 -47
  247. package/esm2022/lib/search/components/search-control.component.mjs +0 -181
  248. package/esm2022/lib/search/components/search-date-range-tabbed/index.mjs +0 -22
  249. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/date-range-type.mjs +0 -23
  250. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/in-last-date-type.mjs +0 -23
  251. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +0 -197
  252. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.mjs +0 -18
  253. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range-tabbed.component.mjs +0 -201
  254. package/esm2022/lib/search/components/search-datetime-range/index.mjs +0 -18
  255. package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +0 -224
  256. package/esm2022/lib/search/components/search-facet-field/index.mjs +0 -18
  257. package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +0 -133
  258. package/esm2022/lib/search/components/search-filter/index.mjs +0 -19
  259. package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +0 -46
  260. package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +0 -81
  261. package/esm2022/lib/search/components/search-filter-autocomplete-chips/index.mjs +0 -18
  262. package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +0 -155
  263. package/esm2022/lib/search/components/search-filter-chips/index.mjs +0 -23
  264. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +0 -105
  265. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +0 -110
  266. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-tabbed-content.component.mjs +0 -129
  267. package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +0 -64
  268. package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +0 -44
  269. package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +0 -110
  270. package/esm2022/lib/search/components/search-filter-container/index.mjs +0 -18
  271. package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +0 -123
  272. package/esm2022/lib/search/components/search-filter-tabbed/index.mjs +0 -19
  273. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tab.directive.mjs +0 -36
  274. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +0 -64
  275. package/esm2022/lib/search/components/search-form/index.mjs +0 -18
  276. package/esm2022/lib/search/components/search-form/search-form.component.mjs +0 -53
  277. package/esm2022/lib/search/components/search-input/index.mjs +0 -18
  278. package/esm2022/lib/search/components/search-input/search-input.component.mjs +0 -109
  279. package/esm2022/lib/search/components/search-logical-filter/index.mjs +0 -18
  280. package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +0 -164
  281. package/esm2022/lib/search/components/search-number-range/index.mjs +0 -18
  282. package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +0 -155
  283. package/esm2022/lib/search/components/search-panel/index.mjs +0 -18
  284. package/esm2022/lib/search/components/search-panel/search-panel.component.mjs +0 -44
  285. package/esm2022/lib/search/components/search-properties/file-size-condition.mjs +0 -18
  286. package/esm2022/lib/search/components/search-properties/file-size-operator.enum.mjs +0 -23
  287. package/esm2022/lib/search/components/search-properties/file-size-unit.enum.mjs +0 -26
  288. package/esm2022/lib/search/components/search-properties/index.mjs +0 -22
  289. package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +0 -244
  290. package/esm2022/lib/search/components/search-properties/search-properties.mjs +0 -18
  291. package/esm2022/lib/search/components/search-radio/index.mjs +0 -18
  292. package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +0 -146
  293. package/esm2022/lib/search/components/search-slider/index.mjs +0 -18
  294. package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +0 -120
  295. package/esm2022/lib/search/components/search-sorting-picker/index.mjs +0 -18
  296. package/esm2022/lib/search/components/search-sorting-picker/search-sorting-picker.component.mjs +0 -77
  297. package/esm2022/lib/search/components/search-text/index.mjs +0 -18
  298. package/esm2022/lib/search/components/search-text/search-text.component.mjs +0 -135
  299. package/esm2022/lib/search/components/search-widget-container/index.mjs +0 -18
  300. package/esm2022/lib/search/components/search-widget-container/search-widget-container.component.mjs +0 -113
  301. package/esm2022/lib/search/components/search.component.mjs +0 -153
  302. package/esm2022/lib/search/forms/index.mjs +0 -19
  303. package/esm2022/lib/search/forms/live-error-state-matcher.mjs +0 -23
  304. package/esm2022/lib/search/forms/search-term-validator.mjs +0 -26
  305. package/esm2022/lib/search/index.mjs +0 -18
  306. package/esm2022/lib/search/mocks/index.mjs +0 -18
  307. package/esm2022/lib/search/mocks/search.service.mock.mjs +0 -56
  308. package/esm2022/lib/search/models/autocomplete-option.interface.mjs +0 -22
  309. package/esm2022/lib/search/models/facet-field-bucket.interface.mjs +0 -18
  310. package/esm2022/lib/search/models/facet-field.interface.mjs +0 -29
  311. package/esm2022/lib/search/models/facet-query.interface.mjs +0 -18
  312. package/esm2022/lib/search/models/facet-widget.interface.mjs +0 -18
  313. package/esm2022/lib/search/models/filter-query.interface.mjs +0 -18
  314. package/esm2022/lib/search/models/filter-search.interface.mjs +0 -18
  315. package/esm2022/lib/search/models/index.mjs +0 -34
  316. package/esm2022/lib/search/models/response-facet-query-list.model.mjs +0 -31
  317. package/esm2022/lib/search/models/search-category.interface.mjs +0 -18
  318. package/esm2022/lib/search/models/search-configuration.interface.mjs +0 -18
  319. package/esm2022/lib/search/models/search-filter-list.model.mjs +0 -148
  320. package/esm2022/lib/search/models/search-form.interface.mjs +0 -18
  321. package/esm2022/lib/search/models/search-range.interface.mjs +0 -18
  322. package/esm2022/lib/search/models/search-sorting-definition.interface.mjs +0 -18
  323. package/esm2022/lib/search/models/search-widget-settings.interface.mjs +0 -18
  324. package/esm2022/lib/search/models/search-widget.interface.mjs +0 -18
  325. package/esm2022/lib/search/models/tabbed-facet-field.interface.mjs +0 -18
  326. package/esm2022/lib/search/public-api.mjs +0 -24
  327. package/esm2022/lib/search/search-configuration.token.mjs +0 -19
  328. package/esm2022/lib/search/search.module.mjs +0 -192
  329. package/esm2022/lib/search/services/base-query-builder.service.mjs +0 -509
  330. package/esm2022/lib/search/services/index.mjs +0 -24
  331. package/esm2022/lib/search/services/search-configuration.service.mjs +0 -50
  332. package/esm2022/lib/search/services/search-facet-filters.service.mjs +0 -374
  333. package/esm2022/lib/search/services/search-filter.service.mjs +0 -56
  334. package/esm2022/lib/search/services/search-header-query-builder.service.mjs +0 -136
  335. package/esm2022/lib/search/services/search-query-builder.service.mjs +0 -48
  336. package/esm2022/lib/search/services/search.service.mjs +0 -89
  337. package/esm2022/lib/search-ai/index.mjs +0 -18
  338. package/esm2022/lib/search-ai/models/search-ai-input-state.mjs +0 -18
  339. package/esm2022/lib/search-ai/public-api.mjs +0 -19
  340. package/esm2022/lib/search-ai/services/search-ai.service.mjs +0 -103
  341. package/esm2022/lib/security/index.mjs +0 -18
  342. package/esm2022/lib/security/public-api.mjs +0 -18
  343. package/esm2022/lib/security/services/models/security-controls-group-response.interface.mjs +0 -18
  344. package/esm2022/lib/security/services/models/security-controls-mark-response.interface.mjs +0 -18
  345. package/esm2022/lib/security/services/security-controls-groups-marks-security.service.mjs +0 -274
  346. package/esm2022/lib/security-options-loader/security-options-loader.service.mjs +0 -43
  347. package/esm2022/lib/services/alfresco-api.interface.mjs +0 -18
  348. package/esm2022/lib/services/alfresco-api.service.mjs +0 -120
  349. package/esm2022/lib/services/index.mjs +0 -18
  350. package/esm2022/lib/services/public-api.mjs +0 -18
  351. package/esm2022/lib/tag/index.mjs +0 -18
  352. package/esm2022/lib/tag/public-api.mjs +0 -24
  353. package/esm2022/lib/tag/services/tag.service.mjs +0 -171
  354. package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +0 -115
  355. package/esm2022/lib/tag/tag-list/tag-list.component.mjs +0 -98
  356. package/esm2022/lib/tag/tag-node-list/tag-node-list.component.mjs +0 -80
  357. package/esm2022/lib/tag/tag.module.mjs +0 -37
  358. package/esm2022/lib/tag/tags-creator/tags-creator-mode.mjs +0 -27
  359. package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +0 -371
  360. package/esm2022/lib/testing/content.testing.module.mjs +0 -56
  361. package/esm2022/lib/tree/components/tree.component.mjs +0 -313
  362. package/esm2022/lib/tree/index.mjs +0 -18
  363. package/esm2022/lib/tree/models/tree-context-menu-result.interface.mjs +0 -18
  364. package/esm2022/lib/tree/models/tree-node.interface.mjs +0 -22
  365. package/esm2022/lib/tree/models/tree-response.interface.mjs +0 -18
  366. package/esm2022/lib/tree/public-api.mjs +0 -23
  367. package/esm2022/lib/tree/services/tree.service.mjs +0 -134
  368. package/esm2022/lib/tree/tree.module.mjs +0 -33
  369. package/esm2022/lib/tree-view/components/tree-view.component.mjs +0 -76
  370. package/esm2022/lib/tree-view/data/tree-view-datasource.mjs +0 -99
  371. package/esm2022/lib/tree-view/index.mjs +0 -18
  372. package/esm2022/lib/tree-view/models/tree-view.model.mjs +0 -28
  373. package/esm2022/lib/tree-view/public-api.mjs +0 -22
  374. package/esm2022/lib/tree-view/services/tree-view.service.mjs +0 -38
  375. package/esm2022/lib/tree-view/tree-view.module.mjs +0 -33
  376. package/esm2022/lib/upload/components/base-upload/upload-base.mjs +0 -176
  377. package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +0 -191
  378. package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +0 -93
  379. package/esm2022/lib/upload/components/file-uploading-list.component.mjs +0 -124
  380. package/esm2022/lib/upload/components/upload-button.component.mjs +0 -134
  381. package/esm2022/lib/upload/components/upload-drag-area.component.mjs +0 -112
  382. package/esm2022/lib/upload/components/upload-files.event.mjs +0 -41
  383. package/esm2022/lib/upload/components/upload-version-button.component.mjs +0 -55
  384. package/esm2022/lib/upload/directives/file-draggable.directive.mjs +0 -154
  385. package/esm2022/lib/upload/directives/toggle-icon.directive.mjs +0 -75
  386. package/esm2022/lib/upload/index.mjs +0 -18
  387. package/esm2022/lib/upload/pipes/file-upload-error.pipe.mjs +0 -39
  388. package/esm2022/lib/upload/public-api.mjs +0 -29
  389. package/esm2022/lib/upload/upload.module.mjs +0 -72
  390. package/esm2022/lib/version-compatibility/index.mjs +0 -18
  391. package/esm2022/lib/version-compatibility/public-api.mjs +0 -20
  392. package/esm2022/lib/version-compatibility/version-compatibility-factory.mjs +0 -26
  393. package/esm2022/lib/version-compatibility/version-compatibility.directive.mjs +0 -53
  394. package/esm2022/lib/version-compatibility/version-compatibility.module.mjs +0 -33
  395. package/esm2022/lib/version-compatibility/version-compatibility.service.mjs +0 -76
  396. package/esm2022/lib/version-manager/content-version.service.mjs +0 -53
  397. package/esm2022/lib/version-manager/index.mjs +0 -18
  398. package/esm2022/lib/version-manager/public-api.mjs +0 -23
  399. package/esm2022/lib/version-manager/version-comparison.component.mjs +0 -43
  400. package/esm2022/lib/version-manager/version-list.component.mjs +0 -216
  401. package/esm2022/lib/version-manager/version-manager.component.mjs +0 -146
  402. package/esm2022/lib/version-manager/version-manager.module.mjs +0 -48
  403. package/esm2022/lib/version-manager/version-upload.component.mjs +0 -155
  404. package/esm2022/lib/viewer/alfresco-viewer.module.mjs +0 -33
  405. package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +0 -409
  406. package/esm2022/lib/viewer/index.mjs +0 -18
  407. package/esm2022/lib/viewer/public-api.mjs +0 -19
  408. package/esm2022/public-api.mjs +0 -56
@@ -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-input.component';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1pbnB1dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1pbnB1dC5jb21wb25lbnQnO1xuIl19
@@ -1,109 +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 { AppConfigService } from '@alfresco/adf-core';
18
- import { CommonModule } from '@angular/common';
19
- import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
20
- import { MatFormFieldModule } from '@angular/material/form-field';
21
- import { MatInputModule } from '@angular/material/input';
22
- import { TranslateModule } from '@ngx-translate/core';
23
- import * as i0 from "@angular/core";
24
- import * as i1 from "@alfresco/adf-core";
25
- import * as i2 from "@angular/common";
26
- import * as i3 from "@angular/material/form-field";
27
- import * as i4 from "@angular/material/input";
28
- import * as i5 from "@ngx-translate/core";
29
- export class SearchInputComponent {
30
- constructor(appConfig) {
31
- this.appConfig = appConfig;
32
- this.value = '';
33
- this.label = 'SEARCH.INPUT.LABEL';
34
- this.placeholder = 'SEARCH.INPUT.PLACEHOLDER';
35
- this.fields = ['cm:name'];
36
- this.changed = new EventEmitter();
37
- }
38
- ngOnInit() {
39
- const searchConfig = this.appConfig.get('search') || {};
40
- if (searchConfig['app:fields']) {
41
- this.fields = searchConfig['app:fields'];
42
- }
43
- }
44
- onSearchInputChanged(event) {
45
- const input = event.target;
46
- const searchTerm = input.value;
47
- const query = this.formatSearchQuery(searchTerm, this.fields);
48
- if (query) {
49
- this.changed.emit(decodeURIComponent(query));
50
- }
51
- }
52
- formatSearchQuery(userInput, fields = ['cm:name']) {
53
- if (!userInput) {
54
- return null;
55
- }
56
- if (/^https?:\/\//.test(userInput)) {
57
- return this.formatFields(fields, userInput);
58
- }
59
- userInput = userInput.trim();
60
- if (userInput.includes(':') || userInput.includes('"')) {
61
- return userInput;
62
- }
63
- const words = userInput.split(' ');
64
- if (words.length > 1) {
65
- const separator = words.some(this.isOperator) ? ' ' : ' AND ';
66
- return words.map((term) => (this.isOperator(term) ? term : this.formatFields(fields, term))).join(separator);
67
- }
68
- return this.formatFields(fields, userInput);
69
- }
70
- isOperator(input) {
71
- if (input) {
72
- input = input.trim().toUpperCase();
73
- const operators = ['AND', 'OR'];
74
- return operators.includes(input);
75
- }
76
- return false;
77
- }
78
- formatFields(fields, term) {
79
- let prefix = '';
80
- let suffix = '*';
81
- if (term.startsWith('=')) {
82
- prefix = '=';
83
- suffix = '';
84
- term = term.substring(1);
85
- }
86
- if (term === '*') {
87
- prefix = '';
88
- suffix = '';
89
- }
90
- return '(' + fields.map((field) => `${prefix}${field}:"${term}${suffix}"`).join(' OR ') + ')';
91
- }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchInputComponent, deps: [{ token: i1.AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchInputComponent, isStandalone: true, selector: "adf-search-input", inputs: { value: "value", label: "label", placeholder: "placeholder", fields: "fields" }, outputs: { changed: "changed" }, ngImport: i0, template: "<div class=\"adf-search-input-container\">\n <mat-form-field appearance=\"outline\">\n <mat-label *ngIf=\"label\">{{ label | translate }}</mat-label>\n <input matInput [placeholder]=\"placeholder | translate\" [value]=\"value\" (change)=\"onSearchInputChanged($event)\" />\n </mat-form-field>\n</div>\n", styles: [".adf-search-input-container{margin:10px}.adf-search-input-container mat-form-field{width:100%}.adf-search-input-container mat-form-field .mat-form-field-wrapper{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.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: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
94
- }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchInputComponent, decorators: [{
96
- type: Component,
97
- args: [{ selector: 'adf-search-input', standalone: true, imports: [CommonModule, MatFormFieldModule, MatInputModule, TranslateModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-search-input-container\">\n <mat-form-field appearance=\"outline\">\n <mat-label *ngIf=\"label\">{{ label | translate }}</mat-label>\n <input matInput [placeholder]=\"placeholder | translate\" [value]=\"value\" (change)=\"onSearchInputChanged($event)\" />\n </mat-form-field>\n</div>\n", styles: [".adf-search-input-container{margin:10px}.adf-search-input-container mat-form-field{width:100%}.adf-search-input-container mat-form-field .mat-form-field-wrapper{padding:0}\n"] }]
98
- }], ctorParameters: () => [{ type: i1.AppConfigService }], propDecorators: { value: [{
99
- type: Input
100
- }], label: [{
101
- type: Input
102
- }], placeholder: [{
103
- type: Input
104
- }], fields: [{
105
- type: Input
106
- }], changed: [{
107
- type: Output
108
- }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLWlucHV0L3NlYXJjaC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQVd0RCxNQUFNLE9BQU8sb0JBQW9CO0lBZ0I3QixZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWQvQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBR1gsVUFBSyxHQUFHLG9CQUFvQixDQUFDO1FBRzdCLGdCQUFXLEdBQUcsMEJBQTBCLENBQUM7UUFHekMsV0FBTSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFHckIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFYSxDQUFDO0lBRW5ELFFBQVE7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O1lBQ1osSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2YsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNaLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsTUFBTSxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ2xHLENBQUM7K0dBdEZRLG9CQUFvQjttR0FBcEIsb0JBQW9CLHVNQ2pDakMsb1VBTUEsc09Ec0JjLFlBQVksa0lBQUUsa0JBQWtCLDBTQUFFLGNBQWMsMFdBQUUsZUFBZTs7NEZBS2xFLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDSSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxlQUFlLENBQUMsaUJBRzdELGlCQUFpQixDQUFDLElBQUk7cUZBSXJDLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTZWFyY2hDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2VhcmNoLWlucHV0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6IGAuL3NlYXJjaC1pbnB1dC5jb21wb25lbnQuaHRtbGAsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICB2YWx1ZSA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbCA9ICdTRUFSQ0guSU5QVVQuTEFCRUwnO1xuXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlciA9ICdTRUFSQ0guSU5QVVQuUExBQ0VIT0xERVInO1xuXG4gICAgQElucHV0KClcbiAgICBmaWVsZHMgPSBbJ2NtOm5hbWUnXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlYXJjaENvbmZpZyA9IHRoaXMuYXBwQ29uZmlnLmdldDxTZWFyY2hDb25maWd1cmF0aW9uPignc2VhcmNoJykgfHwge307XG4gICAgICAgIGlmIChzZWFyY2hDb25maWdbJ2FwcDpmaWVsZHMnXSkge1xuICAgICAgICAgICAgdGhpcy5maWVsZHMgPSBzZWFyY2hDb25maWdbJ2FwcDpmaWVsZHMnXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VhcmNoSW5wdXRDaGFuZ2VkKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICBjb25zdCBzZWFyY2hUZXJtID0gaW5wdXQudmFsdWU7XG5cbiAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLmZvcm1hdFNlYXJjaFF1ZXJ5KHNlYXJjaFRlcm0sIHRoaXMuZmllbGRzKTtcbiAgICAgICAgaWYgKHF1ZXJ5KSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZWQuZW1pdChkZWNvZGVVUklDb21wb25lbnQocXVlcnkpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0U2VhcmNoUXVlcnkodXNlcklucHV0OiBzdHJpbmcsIGZpZWxkcyA9IFsnY206bmFtZSddKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF1c2VySW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKC9eaHR0cHM/OlxcL1xcLy8udGVzdCh1c2VySW5wdXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRGaWVsZHMoZmllbGRzLCB1c2VySW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdXNlcklucHV0ID0gdXNlcklucHV0LnRyaW0oKTtcblxuICAgICAgICBpZiAodXNlcklucHV0LmluY2x1ZGVzKCc6JykgfHwgdXNlcklucHV0LmluY2x1ZGVzKCdcIicpKSB7XG4gICAgICAgICAgICByZXR1cm4gdXNlcklucHV0O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd29yZHMgPSB1c2VySW5wdXQuc3BsaXQoJyAnKTtcblxuICAgICAgICBpZiAod29yZHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gd29yZHMuc29tZSh0aGlzLmlzT3BlcmF0b3IpID8gJyAnIDogJyBBTkQgJztcbiAgICAgICAgICAgIHJldHVybiB3b3Jkcy5tYXAoKHRlcm0pID0+ICh0aGlzLmlzT3BlcmF0b3IodGVybSkgPyB0ZXJtIDogdGhpcy5mb3JtYXRGaWVsZHMoZmllbGRzLCB0ZXJtKSkpLmpvaW4oc2VwYXJhdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZpZWxkcyhmaWVsZHMsIHVzZXJJbnB1dCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc09wZXJhdG9yKGlucHV0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICBpbnB1dCA9IGlucHV0LnRyaW0oKS50b1VwcGVyQ2FzZSgpO1xuXG4gICAgICAgICAgICBjb25zdCBvcGVyYXRvcnMgPSBbJ0FORCcsICdPUiddO1xuICAgICAgICAgICAgcmV0dXJuIG9wZXJhdG9ycy5pbmNsdWRlcyhpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0RmllbGRzKGZpZWxkczogc3RyaW5nW10sIHRlcm06IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBwcmVmaXggPSAnJztcbiAgICAgICAgbGV0IHN1ZmZpeCA9ICcqJztcblxuICAgICAgICBpZiAodGVybS5zdGFydHNXaXRoKCc9JykpIHtcbiAgICAgICAgICAgIHByZWZpeCA9ICc9JztcbiAgICAgICAgICAgIHN1ZmZpeCA9ICcnO1xuICAgICAgICAgICAgdGVybSA9IHRlcm0uc3Vic3RyaW5nKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRlcm0gPT09ICcqJykge1xuICAgICAgICAgICAgcHJlZml4ID0gJyc7XG4gICAgICAgICAgICBzdWZmaXggPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnKCcgKyBmaWVsZHMubWFwKChmaWVsZCkgPT4gYCR7cHJlZml4fSR7ZmllbGR9OlwiJHt0ZXJtfSR7c3VmZml4fVwiYCkuam9pbignIE9SICcpICsgJyknO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtc2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCIgW3ZhbHVlXT1cInZhbHVlXCIgKGNoYW5nZSk9XCJvblNlYXJjaElucHV0Q2hhbmdlZCgkZXZlbnQpXCIgLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+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-logical-filter.component';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1sb2dpY2FsLWZpbHRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1sb2dpY2FsLWZpbHRlci5jb21wb25lbnQnO1xuIl19
@@ -1,164 +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 { TranslationService } from '@alfresco/adf-core';
21
- import { CommonModule } from '@angular/common';
22
- import { MatFormFieldModule } from '@angular/material/form-field';
23
- import { TranslateModule } from '@ngx-translate/core';
24
- import { FormsModule } from '@angular/forms';
25
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
26
- import * as i0 from "@angular/core";
27
- import * as i1 from "@alfresco/adf-core";
28
- import * as i2 from "@angular/common";
29
- import * as i3 from "@angular/material/form-field";
30
- import * as i4 from "@ngx-translate/core";
31
- import * as i5 from "@angular/forms";
32
- export var LogicalSearchFields;
33
- (function (LogicalSearchFields) {
34
- LogicalSearchFields["MATCH_ALL"] = "matchAll";
35
- LogicalSearchFields["MATCH_ANY"] = "matchAny";
36
- LogicalSearchFields["EXCLUDE"] = "exclude";
37
- LogicalSearchFields["MATCH_EXACT"] = "matchExact";
38
- })(LogicalSearchFields || (LogicalSearchFields = {}));
39
- export class SearchLogicalFilterComponent {
40
- constructor(translationService) {
41
- this.translationService = translationService;
42
- this.fields = Object.keys(LogicalSearchFields);
43
- this.LogicalSearchFields = LogicalSearchFields;
44
- this.displayValue$ = new ReplaySubject(1);
45
- this.destroyRef = inject(DestroyRef);
46
- }
47
- ngOnInit() {
48
- this.clearSearchInputs();
49
- this.context.populateFilters
50
- .asObservable()
51
- .pipe(map((filtersQueries) => filtersQueries[this.id]), takeUntilDestroyed(this.destroyRef))
52
- .subscribe((filterQuery) => {
53
- if (filterQuery) {
54
- this.searchCondition = filterQuery;
55
- this.submitValues(false);
56
- }
57
- else {
58
- this.reset(false);
59
- }
60
- this.context.filterLoaded.next();
61
- });
62
- }
63
- submitValues(updateContext = true) {
64
- if (this.hasValidValue() && this.id && this.context && this.settings && this.settings.field) {
65
- this.updateDisplayValue();
66
- const fields = this.settings.field.split(',').map((field) => (field += ':'));
67
- let query = '';
68
- Object.keys(this.searchCondition).forEach((key) => {
69
- if (this.searchCondition[key] !== '') {
70
- let connector = '';
71
- let subQuery = '';
72
- switch (key) {
73
- case LogicalSearchFields.MATCH_ALL:
74
- case LogicalSearchFields.MATCH_EXACT:
75
- connector = 'AND';
76
- break;
77
- case LogicalSearchFields.MATCH_ANY:
78
- connector = 'OR';
79
- break;
80
- case LogicalSearchFields.EXCLUDE:
81
- connector = 'AND NOT';
82
- break;
83
- default:
84
- break;
85
- }
86
- fields.forEach((field) => {
87
- subQuery += subQuery === '' ? '' : key === LogicalSearchFields.EXCLUDE ? ' AND ' : ' OR ';
88
- let fieldQuery = '(';
89
- if (key === LogicalSearchFields.MATCH_EXACT) {
90
- fieldQuery += field + '"' + this.searchCondition[key].trim() + '"';
91
- }
92
- else {
93
- this.searchCondition[key]
94
- .split(' ')
95
- .filter((condition) => condition !== '')
96
- .forEach((phrase) => {
97
- const refinedPhrase = '"' + phrase + '"';
98
- fieldQuery +=
99
- fieldQuery === '('
100
- ? `${key === LogicalSearchFields.EXCLUDE ? 'NOT ' : ''}${field}${refinedPhrase}`
101
- : ` ${connector} ${field}${refinedPhrase}`;
102
- });
103
- }
104
- subQuery += `${fieldQuery})`;
105
- });
106
- query += query === '' ? `(${subQuery})` : ` AND (${subQuery})`;
107
- subQuery = '';
108
- }
109
- });
110
- this.context.queryFragments[this.id] = query;
111
- if (updateContext) {
112
- this.context.update();
113
- }
114
- }
115
- else {
116
- this.reset(updateContext);
117
- }
118
- }
119
- hasValidValue() {
120
- return Object.keys(this.searchCondition).some((key) => this.searchCondition[key] !== '');
121
- }
122
- getCurrentValue() {
123
- return this.searchCondition;
124
- }
125
- setValue(value) {
126
- this.searchCondition = value;
127
- this.updateDisplayValue();
128
- }
129
- reset(updateContext = true) {
130
- if (this.id && this.context) {
131
- this.context.queryFragments[this.id] = '';
132
- this.clearSearchInputs();
133
- this.context.filterRawParams[this.id] = this.searchCondition;
134
- if (updateContext) {
135
- this.context.update();
136
- }
137
- }
138
- }
139
- updateDisplayValue() {
140
- this.context.filterRawParams[this.id] = this.searchCondition;
141
- if (this.hasValidValue()) {
142
- const displayValue = Object.keys(this.searchCondition).reduce((acc, key) => {
143
- const fieldIndex = Object.values(LogicalSearchFields).indexOf(key);
144
- const fieldKeyTranslated = this.translationService.instant(`SEARCH.LOGICAL_SEARCH.${this.fields[fieldIndex]}`);
145
- return this.searchCondition[key] !== '' ? `${acc} ${fieldKeyTranslated}: ${this.searchCondition[key]}` : acc;
146
- }, '');
147
- this.displayValue$.next(displayValue);
148
- }
149
- else {
150
- this.displayValue$.next('');
151
- }
152
- }
153
- clearSearchInputs() {
154
- this.searchCondition = { matchAll: '', matchAny: '', matchExact: '', exclude: '' };
155
- this.updateDisplayValue();
156
- }
157
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchLogicalFilterComponent, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
158
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchLogicalFilterComponent, isStandalone: true, selector: "adf-search-logical-filter", ngImport: i0, template: "<div class=\"adf-search-logical-filter-container\">\n <div *ngFor=\"let field of fields\" class=\"adf-search-input\">\n <mat-label data-automation-id=\"adf-search-input-label\">{{('SEARCH.LOGICAL_SEARCH.' + field + '_LABEL') | translate}}</mat-label>\n <input type=\"text\"\n [(ngModel)]=\"searchCondition[LogicalSearchFields[field]]\"\n placeholder=\"{{ ('SEARCH.LOGICAL_SEARCH.' + field + '_HINT') | translate }}\"\n [attr.aria-label]=\"('SEARCH.LOGICAL_SEARCH.' + field + '_HINT') | translate\"/>\n </div>\n</div>\n", styles: [".adf-search-logical-filter-container .adf-search-input{display:flex;flex-direction:column;padding-bottom:15px}.adf-search-logical-filter-container .adf-search-input:last-child{padding:0}.adf-search-logical-filter-container .adf-search-input input{height:25px;border:1px solid var(--adf-theme-mat-grey-color-a400);border-radius:5px;margin-top:5px;padding:5px;font-size:14px;color:var(--adf-theme-foreground-text-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
159
- }
160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchLogicalFilterComponent, decorators: [{
161
- type: Component,
162
- args: [{ selector: 'adf-search-logical-filter', standalone: true, imports: [CommonModule, MatFormFieldModule, TranslateModule, FormsModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-search-logical-filter-container\">\n <div *ngFor=\"let field of fields\" class=\"adf-search-input\">\n <mat-label data-automation-id=\"adf-search-input-label\">{{('SEARCH.LOGICAL_SEARCH.' + field + '_LABEL') | translate}}</mat-label>\n <input type=\"text\"\n [(ngModel)]=\"searchCondition[LogicalSearchFields[field]]\"\n placeholder=\"{{ ('SEARCH.LOGICAL_SEARCH.' + field + '_HINT') | translate }}\"\n [attr.aria-label]=\"('SEARCH.LOGICAL_SEARCH.' + field + '_HINT') | translate\"/>\n </div>\n</div>\n", styles: [".adf-search-logical-filter-container .adf-search-input{display:flex;flex-direction:column;padding-bottom:15px}.adf-search-logical-filter-container .adf-search-input:last-child{padding:0}.adf-search-logical-filter-container .adf-search-input input{height:25px;border:1px solid var(--adf-theme-mat-grey-color-a400);border-radius:5px;margin-top:5px;padding:5px;font-size:14px;color:var(--adf-theme-foreground-text-color)}\n"] }]
163
- }], ctorParameters: () => [{ type: i1.TranslationService }] });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWxvZ2ljYWwtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLWxvZ2ljYWwtZmlsdGVyL3NlYXJjaC1sb2dpY2FsLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1sb2dpY2FsLWZpbHRlci9zZWFyY2gtbG9naWNhbC1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXpGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBRWhFLE1BQU0sQ0FBTixJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDM0IsNkNBQXNCLENBQUE7SUFDdEIsNkNBQXNCLENBQUE7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USxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNuRixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQWpJUSw0QkFBNEI7bUdBQTVCLDRCQUE0QixxRkNqRHpDLDZqQkFTQSw2ZERtQ2MsWUFBWSwySkFBRSxrQkFBa0IsK0ZBQUUsZUFBZSwyRkFBRSxXQUFXOzs0RkFLL0QsNEJBQTRCO2tCQVJ4QyxTQUFTOytCQUNJLDJCQUEyQixjQUN6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxpQkFHMUQsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlYXJjaFdpZGdldCB9IGZyb20gJy4uLy4uL21vZGVscy9zZWFyY2gtd2lkZ2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWFyY2hXaWRnZXRTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9zZWFyY2gtd2lkZ2V0LXNldHRpbmdzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VhcmNoLXF1ZXJ5LWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuZXhwb3J0IGVudW0gTG9naWNhbFNlYXJjaEZpZWxkcyB7XG4gICAgTUFUQ0hfQUxMID0gJ21hdGNoQWxsJyxcbiAgICBNQVRDSF9BTlkgPSAnbWF0Y2hBbnknLFxuICAgIEVYQ0xVREUgPSAnZXhjbHVkZScsXG4gICAgTUFUQ0hfRVhBQ1QgPSAnbWF0Y2hFeGFjdCdcbn1cblxuZXhwb3J0IHR5cGUgTG9naWNhbFNlYXJjaENvbmRpdGlvbkVudW1WYWx1ZWRLZXlzID0geyBbVCBpbiBMb2dpY2FsU2VhcmNoRmllbGRzXTogc3RyaW5nIH07XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBMb2dpY2FsU2VhcmNoQ29uZGl0aW9uIGV4dGVuZHMgTG9naWNhbFNlYXJjaENvbmRpdGlvbkVudW1WYWx1ZWRLZXlzIHt9XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXNlYXJjaC1sb2dpY2FsLWZpbHRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtbG9naWNhbC1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlYXJjaC1sb2dpY2FsLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoTG9naWNhbEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIFNlYXJjaFdpZGdldCwgT25Jbml0IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHNldHRpbmdzPzogU2VhcmNoV2lkZ2V0U2V0dGluZ3M7XG4gICAgY29udGV4dD86IFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2U7XG4gICAgc3RhcnRWYWx1ZTogc3RyaW5nO1xuICAgIHNlYXJjaENvbmRpdGlvbjogTG9naWNhbFNlYXJjaENvbmRpdGlvbjtcbiAgICBmaWVsZHMgPSBPYmplY3Qua2V5cyhMb2dpY2FsU2VhcmNoRmllbGRzKTtcbiAgICBMb2dpY2FsU2VhcmNoRmllbGRzID0gTG9naWNhbFNlYXJjaEZpZWxkcztcbiAgICBkaXNwbGF5VmFsdWUkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhclNlYXJjaElucHV0cygpO1xuICAgICAgICB0aGlzLmNvbnRleHQucG9wdWxhdGVGaWx0ZXJzXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoZmlsdGVyc1F1ZXJpZXMpID0+IGZpbHRlcnNRdWVyaWVzW3RoaXMuaWRdKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVyUXVlcnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyUXVlcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hDb25kaXRpb24gPSBmaWx0ZXJRdWVyeTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXRWYWx1ZXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyTG9hZGVkLm5leHQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN1Ym1pdFZhbHVlcyh1cGRhdGVDb250ZXh0ID0gdHJ1ZSkge1xuICAgICAgICBpZiAodGhpcy5oYXNWYWxpZFZhbHVlKCkgJiYgdGhpcy5pZCAmJiB0aGlzLmNvbnRleHQgJiYgdGhpcy5zZXR0aW5ncyAmJiB0aGlzLnNldHRpbmdzLmZpZWxkKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5zZXR0aW5ncy5maWVsZC5zcGxpdCgnLCcpLm1hcCgoZmllbGQpID0+IChmaWVsZCArPSAnOicpKTtcbiAgICAgICAgICAgIGxldCBxdWVyeSA9ICcnO1xuICAgICAgICAgICAgT2JqZWN0LmtleXModGhpcy5zZWFyY2hDb25kaXRpb24pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlYXJjaENvbmRpdGlvbltrZXldICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29ubmVjdG9yID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzdWJRdWVyeSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBMb2dpY2FsU2VhcmNoRmllbGRzLk1BVENIX0FMTDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgTG9naWNhbFNlYXJjaEZpZWxkcy5NQVRDSF9FWEFDVDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3IgPSAnQU5EJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgTG9naWNhbFNlYXJjaEZpZWxkcy5NQVRDSF9BTlk6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yID0gJ09SJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgTG9naWNhbFNlYXJjaEZpZWxkcy5FWENMVURFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3RvciA9ICdBTkQgTk9UJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJRdWVyeSArPSBzdWJRdWVyeSA9PT0gJycgPyAnJyA6IGtleSA9PT0gTG9naWNhbFNlYXJjaEZpZWxkcy5FWENMVURFID8gJyBBTkQgJyA6ICcgT1IgJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZFF1ZXJ5ID0gJygnO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gTG9naWNhbFNlYXJjaEZpZWxkcy5NQVRDSF9FWEFDVCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkUXVlcnkgKz0gZmllbGQgKyAnXCInICsgdGhpcy5zZWFyY2hDb25kaXRpb25ba2V5XS50cmltKCkgKyAnXCInO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaENvbmRpdGlvbltrZXldXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnICcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGNvbmRpdGlvbjogc3RyaW5nKSA9PiBjb25kaXRpb24gIT09ICcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgocGhyYXNlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmluZWRQaHJhc2UgPSAnXCInICsgcGhyYXNlICsgJ1wiJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkUXVlcnkgKz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFF1ZXJ5ID09PSAnKCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtrZXkgPT09IExvZ2ljYWxTZWFyY2hGaWVsZHMuRVhDTFVERSA/ICdOT1QgJyA6ICcnfSR7ZmllbGR9JHtyZWZpbmVkUGhyYXNlfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgICR7Y29ubmVjdG9yfSAke2ZpZWxkfSR7cmVmaW5lZFBocmFzZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YlF1ZXJ5ICs9IGAke2ZpZWxkUXVlcnl9KWA7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBxdWVyeSArPSBxdWVyeSA9PT0gJycgPyBgKCR7c3ViUXVlcnl9KWAgOiBgIEFORCAoJHtzdWJRdWVyeX0pYDtcbiAgICAgICAgICAgICAgICAgICAgc3ViUXVlcnkgPSAnJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9IHF1ZXJ5O1xuICAgICAgICAgICAgaWYgKHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQudXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0KHVwZGF0ZUNvbnRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFzVmFsaWRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuc2VhcmNoQ29uZGl0aW9uKS5zb21lKChrZXk6IHN0cmluZykgPT4gdGhpcy5zZWFyY2hDb25kaXRpb25ba2V5XSAhPT0gJycpO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRWYWx1ZSgpOiBMb2dpY2FsU2VhcmNoQ29uZGl0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoQ29uZGl0aW9uO1xuICAgIH1cblxuICAgIHNldFZhbHVlKHZhbHVlOiBMb2dpY2FsU2VhcmNoQ29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoQ29uZGl0aW9uID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgfVxuXG4gICAgcmVzZXQodXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQucXVlcnlGcmFnbWVudHNbdGhpcy5pZF0gPSAnJztcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTZWFyY2hJbnB1dHMoKTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJSYXdQYXJhbXNbdGhpcy5pZF0gPSB0aGlzLnNlYXJjaENvbmRpdGlvbjtcbiAgICAgICAgICAgIGlmICh1cGRhdGVDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJSYXdQYXJhbXNbdGhpcy5pZF0gPSB0aGlzLnNlYXJjaENvbmRpdGlvbjtcbiAgICAgICAgaWYgKHRoaXMuaGFzVmFsaWRWYWx1ZSgpKSB7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWUgPSBPYmplY3Qua2V5cyh0aGlzLnNlYXJjaENvbmRpdGlvbikucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkSW5kZXggPSBPYmplY3QudmFsdWVzKExvZ2ljYWxTZWFyY2hGaWVsZHMpLmluZGV4T2Yoa2V5IGFzIExvZ2ljYWxTZWFyY2hGaWVsZHMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkS2V5VHJhbnNsYXRlZCA9IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoYFNFQVJDSC5MT0dJQ0FMX1NFQVJDSC4ke3RoaXMuZmllbGRzW2ZpZWxkSW5kZXhdfWApO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlYXJjaENvbmRpdGlvbltrZXldICE9PSAnJyA/IGAke2FjY30gJHtmaWVsZEtleVRyYW5zbGF0ZWR9OiAke3RoaXMuc2VhcmNoQ29uZGl0aW9uW2tleV19YCA6IGFjYztcbiAgICAgICAgICAgIH0sICcnKTtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlJC5uZXh0KGRpc3BsYXlWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSQubmV4dCgnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyU2VhcmNoSW5wdXRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaENvbmRpdGlvbiA9IHsgbWF0Y2hBbGw6ICcnLCBtYXRjaEFueTogJycsIG1hdGNoRXhhY3Q6ICcnLCBleGNsdWRlOiAnJyB9O1xuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtc2VhcmNoLWxvZ2ljYWwtZmlsdGVyLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGZpZWxkc1wiIGNsYXNzPVwiYWRmLXNlYXJjaC1pbnB1dFwiPlxuICAgICAgICA8bWF0LWxhYmVsIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1zZWFyY2gtaW5wdXQtbGFiZWxcIj57eygnU0VBUkNILkxPR0lDQUxfU0VBUkNILicgKyBmaWVsZCArICdfTEFCRUwnKSB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaENvbmRpdGlvbltMb2dpY2FsU2VhcmNoRmllbGRzW2ZpZWxkXV1cIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAoJ1NFQVJDSC5MT0dJQ0FMX1NFQVJDSC4nICsgZmllbGQgKyAnX0hJTlQnKSB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIignU0VBUkNILkxPR0lDQUxfU0VBUkNILicgKyBmaWVsZCArICdfSElOVCcpIHwgdHJhbnNsYXRlXCIvPlxuICAgIDwvZGl2PlxuPC9kaXY+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-number-range.component';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1udW1iZXItcmFuZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtbnVtYmVyLXJhbmdlLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,155 +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, ViewEncapsulation } from '@angular/core';
18
- import { ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
19
- import { LiveErrorStateMatcher } from '../../forms/live-error-state-matcher';
20
- import { ReplaySubject } from 'rxjs';
21
- import { first, map } from 'rxjs/operators';
22
- import { CommonModule } from '@angular/common';
23
- import { MatFormFieldModule } from '@angular/material/form-field';
24
- import { MatInputModule } from '@angular/material/input';
25
- import { TranslateModule } from '@ngx-translate/core';
26
- import { MatButtonModule } from '@angular/material/button';
27
- import * as i0 from "@angular/core";
28
- import * as i1 from "@angular/common";
29
- import * as i2 from "@angular/forms";
30
- import * as i3 from "@angular/material/form-field";
31
- import * as i4 from "@angular/material/input";
32
- import * as i5 from "@ngx-translate/core";
33
- import * as i6 from "@angular/material/button";
34
- export class SearchNumberRangeComponent {
35
- constructor() {
36
- this.matcher = new LiveErrorStateMatcher();
37
- this.format = '[{FROM} TO {TO}]';
38
- this.isActive = false;
39
- this.displayValue$ = new ReplaySubject(1);
40
- }
41
- ngOnInit() {
42
- if (this.settings) {
43
- this.field = this.settings.field;
44
- this.format = this.settings.format || '[{FROM} TO {TO}]';
45
- }
46
- this.validators = Validators.compose([Validators.required, Validators.pattern(/^-?(0|[1-9]\d*)?$/), Validators.min(0)]);
47
- if (this.startValue) {
48
- this.from = new UntypedFormControl(this.startValue['from'], this.validators);
49
- this.to = new UntypedFormControl(this.startValue['to'], this.validators);
50
- }
51
- else {
52
- this.from = new UntypedFormControl('', this.validators);
53
- this.to = new UntypedFormControl('', this.validators);
54
- }
55
- this.form = new UntypedFormGroup({
56
- from: this.from,
57
- to: this.to
58
- }, this.formValidator);
59
- this.enableChangeUpdate = this.settings?.allowUpdateOnChange ?? true;
60
- this.updateDisplayValue();
61
- this.context.populateFilters
62
- .asObservable()
63
- .pipe(map((filtersQueries) => filtersQueries[this.id]), first())
64
- .subscribe((filterQuery) => {
65
- if (filterQuery) {
66
- this.form.patchValue({ from: filterQuery.from, to: filterQuery.to });
67
- this.form.markAsDirty();
68
- this.apply({ from: filterQuery.from, to: filterQuery.to }, true, false);
69
- }
70
- else {
71
- this.reset(false);
72
- }
73
- this.context.filterLoaded.next();
74
- });
75
- }
76
- formValidator(formGroup) {
77
- return parseInt(formGroup.get('from').value, 10) < parseInt(formGroup.get('to').value, 10) ? null : { mismatch: true };
78
- }
79
- apply(model, isValid, updateContext = true) {
80
- if (isValid && this.id && this.context && this.field) {
81
- this.updateDisplayValue();
82
- this.isActive = true;
83
- const destinationObject = new Map();
84
- destinationObject.set('FROM', model.from);
85
- destinationObject.set('TO', model.to);
86
- const value = this.formatString(this.format, destinationObject);
87
- this.context.queryFragments[this.id] = `${this.field}:${value}`;
88
- const filterParam = this.context.filterRawParams[this.id] ?? {};
89
- this.context.filterRawParams[this.id] = filterParam;
90
- filterParam.from = model.from;
91
- filterParam.to = model.to;
92
- if (updateContext) {
93
- this.context.update();
94
- }
95
- }
96
- }
97
- formatString(str, destinationObject) {
98
- let result = str;
99
- destinationObject.forEach((value, key) => {
100
- const expr = new RegExp('{' + key + '}', 'gm');
101
- result = result.replace(expr, value);
102
- });
103
- return result;
104
- }
105
- submitValues() {
106
- this.apply(this.form.value, this.form.valid);
107
- }
108
- hasValidValue() {
109
- return this.form.valid;
110
- }
111
- getCurrentValue() {
112
- return this.form.value;
113
- }
114
- updateDisplayValue() {
115
- if (this.form.invalid || this.form.pristine) {
116
- this.displayValue$.next('');
117
- }
118
- else {
119
- this.displayValue$.next(`${this.form.value.from} - ${this.form.value.to} ${this.settings.unit ?? ''}`);
120
- }
121
- }
122
- setValue(value) {
123
- this.form['from'].setValue(value);
124
- this.form['to'].setValue(value);
125
- this.updateDisplayValue();
126
- }
127
- clear(updateContext = true) {
128
- this.isActive = false;
129
- this.form.reset({
130
- from: '',
131
- to: ''
132
- });
133
- if (this.id && this.context) {
134
- this.context.queryFragments[this.id] = '';
135
- this.context.filterRawParams[this.id] = undefined;
136
- this.updateDisplayValue();
137
- if (this.enableChangeUpdate && updateContext) {
138
- this.context.update();
139
- }
140
- }
141
- }
142
- reset(updateContext = true) {
143
- this.clear();
144
- if (this.id && this.context && updateContext) {
145
- this.context.update();
146
- }
147
- }
148
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchNumberRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
149
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchNumberRangeComponent, isStandalone: true, selector: "adf-search-number-range", host: { classAttribute: "adf-search-number-range" }, ngImport: i0, template: "<form [formGroup]=\"form\" novalidate (ngSubmit)=\"apply(form.value, form.valid)\">\n\n <mat-form-field>\n <input\n matInput [formControl]=\"from\" [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.FROM' | translate }}\"\n autocomplete=\"off\"\n data-automation-id=\"number-range-from-input\">\n <mat-error *ngIf=\"from.hasError('pattern') || from.hasError('min')\" data-automation-id=\"number-range-from-error-invalid\">\n {{ 'SEARCH.FILTER.VALIDATION.INVALID-FORMAT' | translate }}\n </mat-error>\n <mat-error *ngIf=\"from.hasError('required')\" data-automation-id=\"number-range-from-error-required\">\n {{ 'SEARCH.FILTER.VALIDATION.REQUIRED-VALUE' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput [formControl]=\"to\" [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.TO' | translate }}\"\n autocomplete=\"off\"\n data-automation-id=\"number-range-to-input\">\n <mat-error *ngIf=\"to.hasError('pattern') || to.hasError('min')\" data-automation-id=\"number-range-to-error-invalid\">\n {{ 'SEARCH.FILTER.VALIDATION.INVALID-FORMAT' | translate }}\n </mat-error>\n <mat-error *ngIf=\"to.hasError('required')\" data-automation-id=\"number-range-to-error-required\">\n {{ 'SEARCH.FILTER.VALIDATION.REQUIRED-VALUE' | translate }}\n </mat-error>\n </mat-form-field>\n\n\n <div class=\"adf-facet-buttons\" *ngIf=\"!settings?.hideDefaultAction\">\n <button mat-button color=\"primary\" type=\"button\" (click)=\"clear()\" data-automation-id=\"number-range-btn-clear\">\n {{ 'SEARCH.FILTER.ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button color=\"primary\" type=\"submit\" [disabled]=\"!form.valid\" data-automation-id=\"number-range-btn-apply\">\n {{ 'SEARCH.FILTER.ACTIONS.APPLY' | translate }}\n </button>\n </div>\n</form>\n", styles: [".adf-search-number-range>form{display:inline-flex;flex-direction:column;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.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: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
150
- }
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchNumberRangeComponent, decorators: [{
152
- type: Component,
153
- args: [{ selector: 'adf-search-number-range', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, TranslateModule, MatButtonModule], encapsulation: ViewEncapsulation.None, host: { class: 'adf-search-number-range' }, template: "<form [formGroup]=\"form\" novalidate (ngSubmit)=\"apply(form.value, form.valid)\">\n\n <mat-form-field>\n <input\n matInput [formControl]=\"from\" [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.FROM' | translate }}\"\n autocomplete=\"off\"\n data-automation-id=\"number-range-from-input\">\n <mat-error *ngIf=\"from.hasError('pattern') || from.hasError('min')\" data-automation-id=\"number-range-from-error-invalid\">\n {{ 'SEARCH.FILTER.VALIDATION.INVALID-FORMAT' | translate }}\n </mat-error>\n <mat-error *ngIf=\"from.hasError('required')\" data-automation-id=\"number-range-from-error-required\">\n {{ 'SEARCH.FILTER.VALIDATION.REQUIRED-VALUE' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput [formControl]=\"to\" [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.TO' | translate }}\"\n autocomplete=\"off\"\n data-automation-id=\"number-range-to-input\">\n <mat-error *ngIf=\"to.hasError('pattern') || to.hasError('min')\" data-automation-id=\"number-range-to-error-invalid\">\n {{ 'SEARCH.FILTER.VALIDATION.INVALID-FORMAT' | translate }}\n </mat-error>\n <mat-error *ngIf=\"to.hasError('required')\" data-automation-id=\"number-range-to-error-required\">\n {{ 'SEARCH.FILTER.VALIDATION.REQUIRED-VALUE' | translate }}\n </mat-error>\n </mat-form-field>\n\n\n <div class=\"adf-facet-buttons\" *ngIf=\"!settings?.hideDefaultAction\">\n <button mat-button color=\"primary\" type=\"button\" (click)=\"clear()\" data-automation-id=\"number-range-btn-clear\">\n {{ 'SEARCH.FILTER.ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button color=\"primary\" type=\"submit\" [disabled]=\"!form.valid\" data-automation-id=\"number-range-btn-apply\">\n {{ 'SEARCH.FILTER.ACTIONS.APPLY' | translate }}\n </button>\n </div>\n</form>\n", styles: [".adf-search-number-range>form{display:inline-flex;flex-direction:column;width:100%}\n"] }]
154
- }] });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1udW1iZXItcmFuZ2Uvc2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1udW1iZXItcmFuZ2Uvc2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl2RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7OztBQVczRCxNQUFNLE9BQU8sMEJBQTBC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LE1BQU0sRUFBRSxDQUFDO1lBQzFCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLEdBQUcsSUFBSTtRQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDOytHQXZKUSwwQkFBMEI7bUdBQTFCLDBCQUEwQix3SUN4Q3ZDLDZpRUF3Q0EsOElETmMsWUFBWSxrSUFBRSxtQkFBbUIsKzlCQUFFLGtCQUFrQixzVUFBRSxjQUFjLDBXQUFFLGVBQWUsMkZBQUUsZUFBZTs7NEZBTXhHLDBCQUEwQjtrQkFUdEMsU0FBUzsrQkFDSSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDLGlCQUduRyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLHlCQUF5QixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlYXJjaFdpZGdldCB9IGZyb20gJy4uLy4uL21vZGVscy9zZWFyY2gtd2lkZ2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWFyY2hXaWRnZXRTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9zZWFyY2gtd2lkZ2V0LXNldHRpbmdzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VhcmNoLXF1ZXJ5LWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMaXZlRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICcuLi8uLi9mb3Jtcy9saXZlLWVycm9yLXN0YXRlLW1hdGNoZXInO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1zZWFyY2gtbnVtYmVyLXJhbmdlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1zZWFyY2gtbnVtYmVyLXJhbmdlJyB9XG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaE51bWJlclJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgU2VhcmNoV2lkZ2V0LCBPbkluaXQge1xuICAgIGZyb206IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgICB0bzogVW50eXBlZEZvcm1Db250cm9sO1xuXG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICBtYXRjaGVyID0gbmV3IExpdmVFcnJvclN0YXRlTWF0Y2hlcigpO1xuXG4gICAgaWQ6IHN0cmluZztcbiAgICBzZXR0aW5ncz86IFNlYXJjaFdpZGdldFNldHRpbmdzO1xuICAgIGNvbnRleHQ/OiBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlO1xuXG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBmb3JtYXQgPSAnW3tGUk9NfSBUTyB7VE99XSc7XG5cbiAgICBpc0FjdGl2ZSA9IGZhbHNlO1xuICAgIHN0YXJ0VmFsdWU6IGFueTtcblxuICAgIHZhbGlkYXRvcnM6IFZhbGlkYXRvcnM7XG4gICAgZW5hYmxlQ2hhbmdlVXBkYXRlOiBib29sZWFuO1xuICAgIGRpc3BsYXlWYWx1ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkID0gdGhpcy5zZXR0aW5ncy5maWVsZDtcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0ID0gdGhpcy5zZXR0aW5ncy5mb3JtYXQgfHwgJ1t7RlJPTX0gVE8ge1RPfV0nO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWxpZGF0b3JzID0gVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14tPygwfFsxLTldXFxkKik/JC8pLCBWYWxpZGF0b3JzLm1pbigwKV0pO1xuXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZnJvbSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5zdGFydFZhbHVlWydmcm9tJ10sIHRoaXMudmFsaWRhdG9ycyk7XG4gICAgICAgICAgICB0aGlzLnRvID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnN0YXJ0VmFsdWVbJ3RvJ10sIHRoaXMudmFsaWRhdG9ycyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZyb20gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCB0aGlzLnZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgdGhpcy50byA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIHRoaXMudmFsaWRhdG9ycyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmcm9tOiB0aGlzLmZyb20sXG4gICAgICAgICAgICAgICAgdG86IHRoaXMudG9cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLmZvcm1WYWxpZGF0b3JcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmVuYWJsZUNoYW5nZVVwZGF0ZSA9IHRoaXMuc2V0dGluZ3M/LmFsbG93VXBkYXRlT25DaGFuZ2UgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnBvcHVsYXRlRmlsdGVyc1xuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGZpbHRlcnNRdWVyaWVzKSA9PiBmaWx0ZXJzUXVlcmllc1t0aGlzLmlkXSksXG4gICAgICAgICAgICAgICAgZmlyc3QoKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVyUXVlcnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyUXVlcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBmcm9tOiBmaWx0ZXJRdWVyeS5mcm9tLCB0bzogZmlsdGVyUXVlcnkudG8gfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5KHsgZnJvbTogZmlsdGVyUXVlcnkuZnJvbSwgdG86IGZpbHRlclF1ZXJ5LnRvIH0sIHRydWUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlckxvYWRlZC5uZXh0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3JtVmFsaWRhdG9yKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoZm9ybUdyb3VwLmdldCgnZnJvbScpLnZhbHVlLCAxMCkgPCBwYXJzZUludChmb3JtR3JvdXAuZ2V0KCd0bycpLnZhbHVlLCAxMCkgPyBudWxsIDogeyBtaXNtYXRjaDogdHJ1ZSB9O1xuICAgIH1cblxuICAgIGFwcGx5KG1vZGVsOiB7IGZyb206IHN0cmluZzsgdG86IHN0cmluZyB9LCBpc1ZhbGlkOiBib29sZWFuLCB1cGRhdGVDb250ZXh0ID0gdHJ1ZSkge1xuICAgICAgICBpZiAoaXNWYWxpZCAmJiB0aGlzLmlkICYmIHRoaXMuY29udGV4dCAmJiB0aGlzLmZpZWxkKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRydWU7XG5cbiAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uT2JqZWN0ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uT2JqZWN0LnNldCgnRlJPTScsIG1vZGVsLmZyb20pO1xuICAgICAgICAgICAgZGVzdGluYXRpb25PYmplY3Quc2V0KCdUTycsIG1vZGVsLnRvKTtcblxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm1hdFN0cmluZyh0aGlzLmZvcm1hdCwgZGVzdGluYXRpb25PYmplY3QpO1xuXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQucXVlcnlGcmFnbWVudHNbdGhpcy5pZF0gPSBgJHt0aGlzLmZpZWxkfToke3ZhbHVlfWA7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJQYXJhbSA9IHRoaXMuY29udGV4dC5maWx0ZXJSYXdQYXJhbXNbdGhpcy5pZF0gPz8ge307XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdID0gZmlsdGVyUGFyYW07XG4gICAgICAgICAgICBmaWx0ZXJQYXJhbS5mcm9tID0gbW9kZWwuZnJvbTtcbiAgICAgICAgICAgIGZpbHRlclBhcmFtLnRvID0gbW9kZWwudG87XG4gICAgICAgICAgICBpZiAodXBkYXRlQ29udGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0U3RyaW5nKHN0cjogc3RyaW5nLCBkZXN0aW5hdGlvbk9iamVjdDogTWFwPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgICAgIGxldCByZXN1bHQgPSBzdHI7XG5cbiAgICAgICAgZGVzdGluYXRpb25PYmplY3QuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXhwciA9IG5ldyBSZWdFeHAoJ3snICsga2V5ICsgJ30nLCAnZ20nKTtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKGV4cHIsIHZhbHVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBzdWJtaXRWYWx1ZXMoKSB7XG4gICAgICAgIHRoaXMuYXBwbHkodGhpcy5mb3JtLnZhbHVlLCB0aGlzLmZvcm0udmFsaWQpO1xuICAgIH1cblxuICAgIGhhc1ZhbGlkVmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbHVlO1xuICAgIH1cblxuICAgIHVwZGF0ZURpc3BsYXlWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkIHx8IHRoaXMuZm9ybS5wcmlzdGluZSkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUkLm5leHQoJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUkLm5leHQoYCR7dGhpcy5mb3JtLnZhbHVlLmZyb219IC0gJHt0aGlzLmZvcm0udmFsdWUudG99ICR7dGhpcy5zZXR0aW5ncy51bml0ID8/ICcnfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0VmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLmZvcm1bJ2Zyb20nXS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZm9ybVsndG8nXS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgfVxuXG4gICAgY2xlYXIodXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCh7XG4gICAgICAgICAgICBmcm9tOiAnJyxcbiAgICAgICAgICAgIHRvOiAnJ1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5pZCAmJiB0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9ICcnO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlclJhd1BhcmFtc1t0aGlzLmlkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5lbmFibGVDaGFuZ2VVcGRhdGUgJiYgdXBkYXRlQ29udGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0KHVwZGF0ZUNvbnRleHQgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgdGhpcy5jb250ZXh0ICYmIHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIG5vdmFsaWRhdGUgKG5nU3VibWl0KT1cImFwcGx5KGZvcm0udmFsdWUsIGZvcm0udmFsaWQpXCI+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImZyb21cIiBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwibWF0Y2hlclwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdTRUFSQ0guRklMVEVSLlJBTkdFLkZST00nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJudW1iZXItcmFuZ2UtZnJvbS1pbnB1dFwiPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZnJvbS5oYXNFcnJvcigncGF0dGVybicpIHx8IGZyb20uaGFzRXJyb3IoJ21pbicpXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibnVtYmVyLXJhbmdlLWZyb20tZXJyb3ItaW52YWxpZFwiPlxuICAgICAgICAgICAge3sgJ1NFQVJDSC5GSUxURVIuVkFMSURBVElPTi5JTlZBTElELUZPUk1BVCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmcm9tLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibnVtYmVyLXJhbmdlLWZyb20tZXJyb3ItcmVxdWlyZWRcIj5cbiAgICAgICAgICAgIHt7ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uUkVRVUlSRUQtVkFMVUUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cInRvXCIgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnU0VBUkNILkZJTFRFUi5SQU5HRS5UTycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cIm51bWJlci1yYW5nZS10by1pbnB1dFwiPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwidG8uaGFzRXJyb3IoJ3BhdHRlcm4nKSB8fCB0by5oYXNFcnJvcignbWluJylcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJudW1iZXItcmFuZ2UtdG8tZXJyb3ItaW52YWxpZFwiPlxuICAgICAgICAgICAge3sgJ1NFQVJDSC5GSUxURVIuVkFMSURBVElPTi5JTlZBTElELUZPUk1BVCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJ0by5oYXNFcnJvcigncmVxdWlyZWQnKVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cIm51bWJlci1yYW5nZS10by1lcnJvci1yZXF1aXJlZFwiPlxuICAgICAgICAgICAge3sgJ1NFQVJDSC5GSUxURVIuVkFMSURBVElPTi5SRVFVSVJFRC1WQUxVRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuXG4gICAgPGRpdiBjbGFzcz1cImFkZi1mYWNldC1idXR0b25zXCIgKm5nSWY9XCIhc2V0dGluZ3M/LmhpZGVEZWZhdWx0QWN0aW9uXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsZWFyKClcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJudW1iZXItcmFuZ2UtYnRuLWNsZWFyXCI+XG4gICAgICAgICAgICB7eyAnU0VBUkNILkZJTFRFUi5BQ1RJT05TLkNMRUFSJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWRcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJudW1iZXItcmFuZ2UtYnRuLWFwcGx5XCI+XG4gICAgICAgICAgICB7eyAnU0VBUkNILkZJTFRFUi5BQ1RJT05TLkFQUExZJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==