@alfresco/adf-content-services 8.1.0-16024893197 → 8.1.0-16047635687

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 +744 -761
  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 +3 -5
  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 -77
  17. package/esm2022/lib/aspect-list/aspect-list.component.mjs +0 -139
  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 -166
  27. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +0 -35
  28. package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +0 -65
  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 -308
  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 -54
  62. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +0 -490
  63. package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +0 -128
  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 -617
  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 -205
  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 -287
  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 -57
  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 -51
  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 -146
  118. package/esm2022/lib/dialogs/index.mjs +0 -18
  119. package/esm2022/lib/dialogs/library/library.dialog.mjs +0 -224
  120. package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +0 -115
  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 -59
  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 -965
  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 -42
  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 -131
  142. package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +0 -91
  143. package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +0 -86
  144. package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +0 -118
  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 -75
  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 -74
  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 -50
  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 -123
  211. package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +0 -102
  212. package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +0 -69
  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 -102
  217. package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +0 -87
  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 -111
  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 -158
  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 -169
  246. package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +0 -46
  247. package/esm2022/lib/search/components/search-control.component.mjs +0 -180
  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 -196
  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 -223
  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 -132
  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 -45
  260. package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +0 -80
  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 -154
  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 -104
  265. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +0 -109
  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 -63
  268. package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +0 -43
  269. package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +0 -109
  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 -122
  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 -63
  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 -52
  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 -108
  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 -163
  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 -154
  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 -145
  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 -119
  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 -134
  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 -152
  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 -114
  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 -370
  360. package/esm2022/lib/testing/content.testing.module.mjs +0 -56
  361. package/esm2022/lib/tree/components/tree.component.mjs +0 -312
  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 -75
  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 -190
  378. package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +0 -92
  379. package/esm2022/lib/upload/components/file-uploading-list.component.mjs +0 -124
  380. package/esm2022/lib/upload/components/upload-button.component.mjs +0 -133
  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 -54
  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 -42
  400. package/esm2022/lib/version-manager/version-list.component.mjs +0 -215
  401. package/esm2022/lib/version-manager/version-manager.component.mjs +0 -145
  402. package/esm2022/lib/version-manager/version-manager.module.mjs +0 -48
  403. package/esm2022/lib/version-manager/version-upload.component.mjs +0 -154
  404. package/esm2022/lib/viewer/alfresco-viewer.module.mjs +0 -33
  405. package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +0 -408
  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,168 +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, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
18
- import { InfiniteSelectScrollDirective, AuthenticationService } from '@alfresco/adf-core';
19
- import { SitePaging, SiteEntry, Site } from '@alfresco/js-api';
20
- import { MatSelectModule } from '@angular/material/select';
21
- import { LiveAnnouncer } from '@angular/cdk/a11y';
22
- import { TranslatePipe, TranslateService } from '@ngx-translate/core';
23
- import { SitesService } from '../../common/services/sites.service';
24
- import { CommonModule } from '@angular/common';
25
- import { MatFormFieldModule } from '@angular/material/form-field';
26
- import * as i0 from "@angular/core";
27
- import * as i1 from "@alfresco/adf-core";
28
- import * as i2 from "../../common/services/sites.service";
29
- import * as i3 from "@angular/cdk/a11y";
30
- import * as i4 from "@ngx-translate/core";
31
- import * as i5 from "@angular/common";
32
- import * as i6 from "@angular/material/form-field";
33
- import * as i7 from "@angular/material/select";
34
- import * as i8 from "@angular/material/core";
35
- /* eslint-disable no-shadow */
36
- /* eslint-disable @typescript-eslint/naming-convention */
37
- export var Relations;
38
- (function (Relations) {
39
- Relations["Members"] = "members";
40
- Relations["Containers"] = "containers";
41
- })(Relations || (Relations = {}));
42
- export class DropdownSitesComponent {
43
- constructor(authService, sitesService, liveAnnouncer, translateService) {
44
- this.authService = authService;
45
- this.sitesService = sitesService;
46
- this.liveAnnouncer = liveAnnouncer;
47
- this.translateService = translateService;
48
- /** Hide the "My Files" option. */
49
- this.hideMyFiles = false;
50
- /**
51
- * A custom list of sites to be displayed by the dropdown. If no value
52
- * is given, the sites of the current user are displayed by default. A
53
- * list of objects only with properties 'title' and 'guid' is enough to
54
- * be able to display the dropdown.
55
- */
56
- this.siteList = null;
57
- /** Id of the selected site */
58
- this.value = null;
59
- /**
60
- * Text or a translation key to act as a placeholder. Default value is the
61
- * key "DROPDOWN.PLACEHOLDER_LABEL".
62
- */
63
- this.placeholder = 'DROPDOWN.PLACEHOLDER_LABEL';
64
- /**
65
- * Emitted when the user selects a site. When the default option is selected,
66
- * an empty model is emitted.
67
- */
68
- this.change = new EventEmitter();
69
- this.error = new EventEmitter();
70
- this.loading = true;
71
- this.skipCount = 0;
72
- this.selected = null;
73
- this.MY_FILES_VALUE = '-my-';
74
- }
75
- ngOnInit() {
76
- if (!this.siteList) {
77
- this.loadSiteList();
78
- }
79
- }
80
- loadAllOnScroll() {
81
- if (this.isInfiniteScrollingEnabled()) {
82
- this.loading = true;
83
- this.loadSiteList();
84
- }
85
- }
86
- selectedSite(event) {
87
- this.liveAnnouncer.announce(this.translateService.instant('ADF_DROPDOWN.SELECTION_ARIA_LABEL', {
88
- placeholder: this.translateService.instant(this.placeholder),
89
- selectedOption: this.translateService.instant(event.value.entry.title)
90
- }));
91
- this.change.emit(event.value);
92
- }
93
- loadSiteList() {
94
- const extendedOptions = {
95
- skipCount: this.skipCount,
96
- maxItems: InfiniteSelectScrollDirective.MAX_ITEMS
97
- };
98
- this.skipCount += InfiniteSelectScrollDirective.MAX_ITEMS;
99
- if (this.relations) {
100
- extendedOptions.relations = [this.relations];
101
- }
102
- this.sitesService.getSites(extendedOptions).subscribe((sitePaging) => {
103
- if (!this.siteList) {
104
- this.siteList = this.relations === Relations.Members ? this.filteredResultsByMember(sitePaging) : sitePaging;
105
- if (!this.hideMyFiles) {
106
- const siteEntry = new SiteEntry({
107
- entry: new Site({ id: this.MY_FILES_VALUE, guid: this.MY_FILES_VALUE, title: 'DROPDOWN.MY_FILES_OPTION' })
108
- });
109
- this.siteList.list.entries.unshift(siteEntry);
110
- if (!this.value) {
111
- this.value = this.MY_FILES_VALUE;
112
- }
113
- }
114
- }
115
- else {
116
- const siteList = this.relations === Relations.Members ? this.filteredResultsByMember(sitePaging) : sitePaging;
117
- this.siteList.list.entries = this.siteList.list.entries.concat(siteList.list.entries);
118
- this.siteList.list.pagination = sitePaging.list.pagination;
119
- }
120
- this.selected = this.siteList.list.entries.find((site) => site.entry.id === this.value);
121
- if (this.value && !this.selected && this.siteListHasMoreItems()) {
122
- this.loadSiteList();
123
- }
124
- this.loading = false;
125
- }, (error) => {
126
- this.error.emit(error);
127
- });
128
- }
129
- showLoading() {
130
- return this.loading && this.siteListHasMoreItems();
131
- }
132
- isInfiniteScrollingEnabled() {
133
- return !this.loading && this.siteListHasMoreItems();
134
- }
135
- siteListHasMoreItems() {
136
- return this.siteList?.list.pagination?.hasMoreItems;
137
- }
138
- filteredResultsByMember(sites) {
139
- const loggedUserName = this.authService.getEcmUsername();
140
- sites.list.entries = sites.list.entries.filter((site) => this.isCurrentUserMember(site, loggedUserName));
141
- return sites;
142
- }
143
- isCurrentUserMember(site, loggedUserName) {
144
- return (site.entry.visibility === 'PUBLIC' ||
145
- !!site.relations.members.list.entries.find((member) => member.entry.id.toLowerCase() === loggedUserName.toLowerCase()));
146
- }
147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownSitesComponent, deps: [{ token: i1.AuthenticationService }, { token: i2.SitesService }, { token: i3.LiveAnnouncer }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DropdownSitesComponent, isStandalone: true, selector: "adf-sites-dropdown", inputs: { hideMyFiles: "hideMyFiles", siteList: "siteList", value: "value", placeholder: "placeholder", relations: "relations" }, outputs: { change: "change", error: "error" }, host: { classAttribute: "adf-sites-dropdown" }, ngImport: i0, template: "<div id=\"site-dropdown-container\" class=\"adf-site-dropdown-container\">\n <mat-form-field class=\"adf-sites-dropdown-form-field\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'NODE_SELECTOR.LOCATION' | translate }}</mat-label>\n <mat-select\n adf-infinite-select-scroll\n (scrollEnd)=\"loadAllOnScroll()\"\n #siteSelect\n data-automation-id=\"site-my-files-option\"\n class=\"adf-site-dropdown-list-element\"\n id=\"site-dropdown\"\n placeholder=\"{{placeholder | translate}}\"\n [(value)]=\"selected\"\n placeholder=\"{{placeholder | translate}}\"\n (selectionChange)=\"selectedSite($event)\">\n <mat-select-trigger class=\"adf-sites-dropdown-select-trigger\">\n {{ selected?.entry.title | translate}}\n </mat-select-trigger>\n <mat-option *ngFor=\"let site of siteList?.list.entries;\" [value]=\"site\">\n {{ site.entry.title | translate}}\n </mat-option>\n <mat-option *ngIf=\"showLoading()\" disabled=\"true\" data-automation-id=\"site-loading\">\n {{ 'ADF_DROPDOWN.LOADING' | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i7.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: InfiniteSelectScrollDirective, selector: "[adf-infinite-select-scroll]", outputs: ["scrollEnd"] }], encapsulation: i0.ViewEncapsulation.None }); }
149
- }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownSitesComponent, decorators: [{
151
- type: Component,
152
- args: [{ selector: 'adf-sites-dropdown', standalone: true, imports: [CommonModule, TranslatePipe, MatFormFieldModule, MatSelectModule, InfiniteSelectScrollDirective], encapsulation: ViewEncapsulation.None, host: { class: 'adf-sites-dropdown' }, template: "<div id=\"site-dropdown-container\" class=\"adf-site-dropdown-container\">\n <mat-form-field class=\"adf-sites-dropdown-form-field\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'NODE_SELECTOR.LOCATION' | translate }}</mat-label>\n <mat-select\n adf-infinite-select-scroll\n (scrollEnd)=\"loadAllOnScroll()\"\n #siteSelect\n data-automation-id=\"site-my-files-option\"\n class=\"adf-site-dropdown-list-element\"\n id=\"site-dropdown\"\n placeholder=\"{{placeholder | translate}}\"\n [(value)]=\"selected\"\n placeholder=\"{{placeholder | translate}}\"\n (selectionChange)=\"selectedSite($event)\">\n <mat-select-trigger class=\"adf-sites-dropdown-select-trigger\">\n {{ selected?.entry.title | translate}}\n </mat-select-trigger>\n <mat-option *ngFor=\"let site of siteList?.list.entries;\" [value]=\"site\">\n {{ site.entry.title | translate}}\n </mat-option>\n <mat-option *ngIf=\"showLoading()\" disabled=\"true\" data-automation-id=\"site-loading\">\n {{ 'ADF_DROPDOWN.LOADING' | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n" }]
153
- }], ctorParameters: () => [{ type: i1.AuthenticationService }, { type: i2.SitesService }, { type: i3.LiveAnnouncer }, { type: i4.TranslateService }], propDecorators: { hideMyFiles: [{
154
- type: Input
155
- }], siteList: [{
156
- type: Input
157
- }], value: [{
158
- type: Input
159
- }], placeholder: [{
160
- type: Input
161
- }], relations: [{
162
- type: Input
163
- }], change: [{
164
- type: Output
165
- }], error: [{
166
- type: Output
167
- }] } });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZXMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9jb250ZW50LW5vZGUtc2VsZWN0b3Ivc2l0ZS1kcm9wZG93bi9zaXRlcy1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci9zaXRlLWRyb3Bkb3duL3NpdGVzLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7QUFFbEUsOEJBQThCO0FBQzlCLHlEQUF5RDtBQUV6RCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQs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T0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3pILENBQUM7SUFDTixDQUFDOytHQXZKUSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwrU0MzQ25DLCt5Q0EwQkEsMkNEWWMsWUFBWSwyUEFBRSxhQUFhLGlEQUFFLGtCQUFrQiwwU0FBRSxlQUFlLHN3QkFBRSw2QkFBNkI7OzRGQUtoRyxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0ksb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLDZCQUE2QixDQUFDLGlCQUUzRixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFO2dMQUtyQyxXQUFXO3NCQURWLEtBQUs7Z0JBVU4sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFRTixXQUFXO3NCQURWLEtBQUs7Z0JBU04sU0FBUztzQkFEUixLQUFLO2dCQVFOLE1BQU07c0JBREwsTUFBTTtnQkFJUCxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbmZpbml0ZVNlbGVjdFNjcm9sbERpcmVjdGl2ZSwgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFNpdGVQYWdpbmcsIFNpdGVFbnRyeSwgU2l0ZSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlLCBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNpdGVzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9zaXRlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuLyogZXNsaW50LWRpc2FibGUgbm8tc2hhZG93ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cblxuZXhwb3J0IGVudW0gUmVsYXRpb25zIHtcbiAgICBNZW1iZXJzID0gJ21lbWJlcnMnLFxuICAgIENvbnRhaW5lcnMgPSAnY29udGFpbmVycydcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2l0ZXMtZHJvcGRvd24nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlUGlwZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRTZWxlY3RNb2R1bGUsIEluZmluaXRlU2VsZWN0U2Nyb2xsRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2l0ZXMtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1zaXRlcy1kcm9wZG93bicgfVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93blNpdGVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogSGlkZSB0aGUgXCJNeSBGaWxlc1wiIG9wdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVNeUZpbGVzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBIGN1c3RvbSBsaXN0IG9mIHNpdGVzIHRvIGJlIGRpc3BsYXllZCBieSB0aGUgZHJvcGRvd24uIElmIG5vIHZhbHVlXG4gICAgICogaXMgZ2l2ZW4sIHRoZSBzaXRlcyBvZiB0aGUgY3VycmVudCB1c2VyIGFyZSBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4gQVxuICAgICAqIGxpc3Qgb2Ygb2JqZWN0cyBvbmx5IHdpdGggcHJvcGVydGllcyAndGl0bGUnIGFuZCAnZ3VpZCcgaXMgZW5vdWdoIHRvXG4gICAgICogYmUgYWJsZSB0byBkaXNwbGF5IHRoZSBkcm9wZG93bi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNpdGVMaXN0OiBTaXRlUGFnaW5nID0gbnVsbDtcblxuICAgIC8qKiBJZCBvZiB0aGUgc2VsZWN0ZWQgc2l0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmFsdWU6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IG9yIGEgdHJhbnNsYXRpb24ga2V5IHRvIGFjdCBhcyBhIHBsYWNlaG9sZGVyLiBEZWZhdWx0IHZhbHVlIGlzIHRoZVxuICAgICAqIGtleSBcIkRST1BET1dOLlBMQUNFSE9MREVSX0xBQkVMXCIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ0RST1BET1dOLlBMQUNFSE9MREVSX0xBQkVMJztcblxuICAgIC8qKlxuICAgICAqIEZpbHRlciBmb3IgdGhlIHJlc3VsdHMgb2YgdGhlIHNpdGVzIHF1ZXJ5LiBQb3NzaWJsZSB2YWx1ZXMgYXJlXG4gICAgICogXCJtZW1iZXJzXCIgYW5kIFwiY29udGFpbmVyc1wiLiBXaGVuIFwibWVtYmVyc1wiIGlzIHVzZWQsIHRoZSBzaXRlIGxpc3RcbiAgICAgKiB3aWxsIGJlIHJlc3RyaWN0ZWQgdG8gdGhlIHNpdGVzIHRoYXQgdGhlIHVzZXIgaXMgYSBtZW1iZXIgb2YuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICByZWxhdGlvbnM6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGEgc2l0ZS4gV2hlbiB0aGUgZGVmYXVsdCBvcHRpb24gaXMgc2VsZWN0ZWQsXG4gICAgICogYW4gZW1wdHkgbW9kZWwgaXMgZW1pdHRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNpdGVFbnRyeT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBwcml2YXRlIGxvYWRpbmcgPSB0cnVlO1xuICAgIHByaXZhdGUgc2tpcENvdW50ID0gMDtcblxuICAgIHNlbGVjdGVkOiBTaXRlRW50cnkgPSBudWxsO1xuICAgIE1ZX0ZJTEVTX1ZBTFVFID0gJy1teS0nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzaXRlc1NlcnZpY2U6IFNpdGVzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsaXZlQW5ub3VuY2VyOiBMaXZlQW5ub3VuY2VyLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNpdGVMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRTaXRlTGlzdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbG9hZEFsbE9uU2Nyb2xsKCkge1xuICAgICAgICBpZiAodGhpcy5pc0luZmluaXRlU2Nyb2xsaW5nRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5sb2FkU2l0ZUxpc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdGVkU2l0ZShldmVudDogTWF0U2VsZWN0Q2hhbmdlKSB7XG4gICAgICAgIHRoaXMubGl2ZUFubm91bmNlci5hbm5vdW5jZShcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdBREZfRFJPUERPV04uU0VMRUNUSU9OX0FSSUFfTEFCRUwnLCB7XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMucGxhY2Vob2xkZXIpLFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChldmVudC52YWx1ZS5lbnRyeS50aXRsZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoZXZlbnQudmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFNpdGVMaXN0KCkge1xuICAgICAgICBjb25zdCBleHRlbmRlZE9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgICAgIHNraXBDb3VudDogdGhpcy5za2lwQ291bnQsXG4gICAgICAgICAgICBtYXhJdGVtczogSW5maW5pdGVTZWxlY3RTY3JvbGxEaXJlY3RpdmUuTUFYX0lURU1TXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5za2lwQ291bnQgKz0gSW5maW5pdGVTZWxlY3RTY3JvbGxEaXJlY3RpdmUuTUFYX0lURU1TO1xuXG4gICAgICAgIGlmICh0aGlzLnJlbGF0aW9ucykge1xuICAgICAgICAgICAgZXh0ZW5kZWRPcHRpb25zLnJlbGF0aW9ucyA9IFt0aGlzLnJlbGF0aW9uc107XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNpdGVzU2VydmljZS5nZXRTaXRlcyhleHRlbmRlZE9wdGlvbnMpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChzaXRlUGFnaW5nOiBTaXRlUGFnaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnNpdGVMaXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2l0ZUxpc3QgPSB0aGlzLnJlbGF0aW9ucyA9PT0gUmVsYXRpb25zLk1lbWJlcnMgPyB0aGlzLmZpbHRlcmVkUmVzdWx0c0J5TWVtYmVyKHNpdGVQYWdpbmcpIDogc2l0ZVBhZ2luZztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaGlkZU15RmlsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpdGVFbnRyeSA9IG5ldyBTaXRlRW50cnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5OiBuZXcgU2l0ZSh7IGlkOiB0aGlzLk1ZX0ZJTEVTX1ZBTFVFLCBndWlkOiB0aGlzLk1ZX0ZJTEVTX1ZBTFVFLCB0aXRsZTogJ0RST1BET1dOLk1ZX0ZJTEVTX09QVElPTicgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpdGVMaXN0Lmxpc3QuZW50cmllcy51bnNoaWZ0KHNpdGVFbnRyeSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLk1ZX0ZJTEVTX1ZBTFVFO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l0ZUxpc3Q6IFNpdGVQYWdpbmcgPSB0aGlzLnJlbGF0aW9ucyA9PT0gUmVsYXRpb25zLk1lbWJlcnMgPyB0aGlzLmZpbHRlcmVkUmVzdWx0c0J5TWVtYmVyKHNpdGVQYWdpbmcpIDogc2l0ZVBhZ2luZztcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpdGVMaXN0Lmxpc3QuZW50cmllcyA9IHRoaXMuc2l0ZUxpc3QubGlzdC5lbnRyaWVzLmNvbmNhdChzaXRlTGlzdC5saXN0LmVudHJpZXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpdGVMaXN0Lmxpc3QucGFnaW5hdGlvbiA9IHNpdGVQYWdpbmcubGlzdC5wYWdpbmF0aW9uO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0aGlzLnNpdGVMaXN0Lmxpc3QuZW50cmllcy5maW5kKChzaXRlOiBTaXRlRW50cnkpID0+IHNpdGUuZW50cnkuaWQgPT09IHRoaXMudmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgIXRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5zaXRlTGlzdEhhc01vcmVJdGVtcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZFNpdGVMaXN0KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzaG93TG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZyAmJiB0aGlzLnNpdGVMaXN0SGFzTW9yZUl0ZW1zKCk7XG4gICAgfVxuXG4gICAgaXNJbmZpbml0ZVNjcm9sbGluZ0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5sb2FkaW5nICYmIHRoaXMuc2l0ZUxpc3RIYXNNb3JlSXRlbXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNpdGVMaXN0SGFzTW9yZUl0ZW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXRlTGlzdD8ubGlzdC5wYWdpbmF0aW9uPy5oYXNNb3JlSXRlbXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJlZFJlc3VsdHNCeU1lbWJlcihzaXRlczogU2l0ZVBhZ2luZyk6IFNpdGVQYWdpbmcge1xuICAgICAgICBjb25zdCBsb2dnZWRVc2VyTmFtZSA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0RWNtVXNlcm5hbWUoKTtcbiAgICAgICAgc2l0ZXMubGlzdC5lbnRyaWVzID0gc2l0ZXMubGlzdC5lbnRyaWVzLmZpbHRlcigoc2l0ZSkgPT4gdGhpcy5pc0N1cnJlbnRVc2VyTWVtYmVyKHNpdGUsIGxvZ2dlZFVzZXJOYW1lKSk7XG4gICAgICAgIHJldHVybiBzaXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQ3VycmVudFVzZXJNZW1iZXIoc2l0ZTogU2l0ZUVudHJ5LCBsb2dnZWRVc2VyTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBzaXRlLmVudHJ5LnZpc2liaWxpdHkgPT09ICdQVUJMSUMnIHx8XG4gICAgICAgICAgICAhIXNpdGUucmVsYXRpb25zLm1lbWJlcnMubGlzdC5lbnRyaWVzLmZpbmQoKG1lbWJlcikgPT4gbWVtYmVyLmVudHJ5LmlkLnRvTG93ZXJDYXNlKCkgPT09IGxvZ2dlZFVzZXJOYW1lLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGRpdiBpZD1cInNpdGUtZHJvcGRvd24tY29udGFpbmVyXCIgY2xhc3M9XCJhZGYtc2l0ZS1kcm9wZG93bi1jb250YWluZXJcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtc2l0ZXMtZHJvcGRvd24tZm9ybS1maWVsZFwiIGFwcGVhcmFuY2U9XCJmaWxsXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7ICdOT0RFX1NFTEVDVE9SLkxPQ0FUSU9OJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgYWRmLWluZmluaXRlLXNlbGVjdC1zY3JvbGxcbiAgICAgICAgICAgIChzY3JvbGxFbmQpPVwibG9hZEFsbE9uU2Nyb2xsKClcIlxuICAgICAgICAgICAgI3NpdGVTZWxlY3RcbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInNpdGUtbXktZmlsZXMtb3B0aW9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLXNpdGUtZHJvcGRvd24tbGlzdC1lbGVtZW50XCJcbiAgICAgICAgICAgIGlkPVwic2l0ZS1kcm9wZG93blwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXIgfCB0cmFuc2xhdGV9fVwiXG4gICAgICAgICAgICBbKHZhbHVlKV09XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXIgfCB0cmFuc2xhdGV9fVwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGVkU2l0ZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdC10cmlnZ2VyIGNsYXNzPVwiYWRmLXNpdGVzLWRyb3Bkb3duLXNlbGVjdC10cmlnZ2VyXCI+XG4gICAgICAgICAgICAgICAge3sgc2VsZWN0ZWQ/LmVudHJ5LnRpdGxlIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHNpdGUgb2Ygc2l0ZUxpc3Q/Lmxpc3QuZW50cmllcztcIiBbdmFsdWVdPVwic2l0ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHNpdGUuZW50cnkudGl0bGUgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJzaG93TG9hZGluZygpXCIgZGlzYWJsZWQ9XCJ0cnVlXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwic2l0ZS1sb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAge3sgJ0FERl9EUk9QRE9XTi5MT0FESU5HJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
@@ -1,287 +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, Inject, ViewChild, ViewEncapsulation } from '@angular/core';
18
- import { MAT_DIALOG_DATA, MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
19
- import { MatSlideToggleModule } from '@angular/material/slide-toggle';
20
- import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
21
- import { ContentService } from '../common/services/content.service';
22
- import { SharedLinksApiService } from './services/shared-links-api.service';
23
- import { ClipboardDirective, ConfirmDialogComponent } from '@alfresco/adf-core';
24
- import { RenditionService } from '../common/services/rendition.service';
25
- import { add, endOfDay, format, isBefore } from 'date-fns';
26
- import { CommonModule } from '@angular/common';
27
- import { TranslatePipe } from '@ngx-translate/core';
28
- import { MatIconModule } from '@angular/material/icon';
29
- import { MatFormFieldModule } from '@angular/material/form-field';
30
- import { MatDatepickerModule } from '@angular/material/datepicker';
31
- import { MatInputModule } from '@angular/material/input';
32
- import { MatButtonModule } from '@angular/material/button';
33
- import * as i0 from "@angular/core";
34
- import * as i1 from "./services/shared-links-api.service";
35
- import * as i2 from "@angular/material/dialog";
36
- import * as i3 from "../common/services/content.service";
37
- import * as i4 from "../common/services/rendition.service";
38
- import * as i5 from "@angular/common";
39
- import * as i6 from "@angular/material/icon";
40
- import * as i7 from "@angular/forms";
41
- import * as i8 from "@angular/material/slide-toggle";
42
- import * as i9 from "@angular/material/form-field";
43
- import * as i10 from "@angular/material/datepicker";
44
- import * as i11 from "@angular/material/input";
45
- import * as i12 from "@angular/material/button";
46
- export class ShareDialogComponent {
47
- constructor(sharedLinksApiService, dialogRef, dialog, contentService, renditionService, data) {
48
- this.sharedLinksApiService = sharedLinksApiService;
49
- this.dialogRef = dialogRef;
50
- this.dialog = dialog;
51
- this.contentService = contentService;
52
- this.renditionService = renditionService;
53
- this.data = data;
54
- this.minDateValidator = (control) => isBefore(endOfDay(new Date(control.value)), this.minDate) ? { invalidDate: true } : null;
55
- this.minDate = add(new Date(), { days: 1 });
56
- this.isFileShared = false;
57
- this.isDisabled = false;
58
- this.isLinkWithExpiryDate = false;
59
- this.form = new FormGroup({
60
- sharedUrl: new FormControl(''),
61
- time: new FormControl({ value: null, disabled: true }, [Validators.required, this.minDateValidator])
62
- });
63
- }
64
- ngOnInit() {
65
- if (this.data.node?.entry) {
66
- this.fileName = this.data.node.entry.name;
67
- this.baseShareUrl = this.data.baseShareUrl;
68
- const properties = this.data.node.entry.properties;
69
- if (!properties?.['qshare:sharedId']) {
70
- this.createSharedLinks(this.data.node.entry.id);
71
- }
72
- else {
73
- this.sharedId = properties['qshare:sharedId'];
74
- this.isFileShared = true;
75
- const expiryDate = this.updateForm();
76
- this.isExpiryDateToggleChecked = this.isLinkWithExpiryDate = !!expiryDate;
77
- this.isLinkWithExpiryDate ? this.time.enable() : this.time.disable();
78
- }
79
- }
80
- }
81
- onTimeChanged() {
82
- if (this.time.valid) {
83
- this.updateNode(this.time.value);
84
- }
85
- }
86
- get time() {
87
- return this.form.controls['time'];
88
- }
89
- onSlideShareChange(event) {
90
- if (event.checked) {
91
- this.createSharedLinks(this.data.node.entry.id);
92
- }
93
- else {
94
- this.openConfirmationDialog();
95
- }
96
- }
97
- get canUpdate() {
98
- const { entry } = this.data.node;
99
- if (entry?.allowableOperations) {
100
- return this.contentService.hasAllowableOperations(entry, 'update');
101
- }
102
- return true;
103
- }
104
- onToggleExpirationDate(slideToggle) {
105
- if (slideToggle.checked) {
106
- this.time.enable();
107
- this.isExpiryDateToggleChecked = true;
108
- }
109
- else {
110
- this.time.disable();
111
- this.time.setValue(null);
112
- this.deleteSharedLink(this.sharedId, true);
113
- }
114
- }
115
- onDatePickerClosed() {
116
- this.onTimeChanged();
117
- if (!this.time.value) {
118
- this.slideToggleExpirationDate.checked = false;
119
- }
120
- }
121
- preventIncorrectCharacters(e) {
122
- const regex = /[^\d/.-]/;
123
- return e.key.length === 1 ? !regex.test(e.key) : true;
124
- }
125
- openConfirmationDialog() {
126
- this.isFileShared = false;
127
- this.dialog
128
- .open(ConfirmDialogComponent, {
129
- data: {
130
- title: 'SHARE.CONFIRMATION.DIALOG-TITLE',
131
- message: 'SHARE.CONFIRMATION.MESSAGE',
132
- yesLabel: 'SHARE.CONFIRMATION.REMOVE',
133
- noLabel: 'SHARE.CONFIRMATION.CANCEL'
134
- },
135
- minWidth: '250px',
136
- closeOnNavigation: true
137
- })
138
- .beforeClosed()
139
- .subscribe((deleteSharedLink) => {
140
- if (deleteSharedLink) {
141
- this.deleteSharedLink(this.sharedId);
142
- }
143
- else {
144
- this.isFileShared = true;
145
- }
146
- });
147
- }
148
- createSharedLinks(nodeId, sharedLinkWithExpirySettings) {
149
- this.isDisabled = true;
150
- this.sharedLinksApiService.createSharedLinks(nodeId, sharedLinkWithExpirySettings).subscribe((sharedLink) => {
151
- if (sharedLink.entry) {
152
- this.sharedId = sharedLink.entry.id;
153
- if (this.data.node.entry.properties) {
154
- this.data.node.entry.properties['qshare:sharedId'] = this.sharedId;
155
- }
156
- else {
157
- this.data.node.entry.properties = {
158
- 'qshare:sharedId': this.sharedId
159
- };
160
- }
161
- this.isDisabled = false;
162
- this.isFileShared = true;
163
- // eslint-disable-next-line
164
- this.renditionService.getNodeRendition(this.data.node.entry.id);
165
- this.updateForm();
166
- }
167
- }, () => {
168
- this.isDisabled = false;
169
- this.isFileShared = false;
170
- });
171
- }
172
- deleteSharedLink(sharedId, dialogOpenFlag) {
173
- this.isDisabled = true;
174
- this.sharedLinksApiService.deleteSharedLink(sharedId).subscribe((response) => {
175
- if (response instanceof Error) {
176
- this.isDisabled = false;
177
- this.isFileShared = true;
178
- this.handleError(response);
179
- }
180
- else {
181
- if (this.data.node.entry.properties) {
182
- this.data.node.entry.properties['qshare:sharedId'] = null;
183
- this.data.node.entry.properties['qshare:expiryDate'] = null;
184
- }
185
- if (dialogOpenFlag) {
186
- this.createSharedLinks(this.data.node.entry.id);
187
- this.isExpiryDateToggleChecked = false;
188
- this.isLinkWithExpiryDate = false;
189
- }
190
- else {
191
- this.dialogRef.close(false);
192
- }
193
- }
194
- });
195
- }
196
- handleError(error) {
197
- let message = 'SHARE.UNSHARE_ERROR';
198
- let statusCode = 0;
199
- try {
200
- statusCode = JSON.parse(error.message).error.statusCode;
201
- }
202
- catch {
203
- /* empty */
204
- }
205
- if (statusCode === 403) {
206
- message = 'SHARE.UNSHARE_PERMISSION_ERROR';
207
- }
208
- this.sharedLinksApiService.error.next({
209
- statusCode,
210
- message
211
- });
212
- }
213
- updateForm() {
214
- const { entry } = this.data.node;
215
- let expiryDate = null;
216
- if (entry?.properties) {
217
- expiryDate = entry.properties['qshare:expiryDate'];
218
- }
219
- this.form.setValue({
220
- sharedUrl: `${this.baseShareUrl}${this.sharedId}`,
221
- time: expiryDate ? new Date(expiryDate) : null
222
- }, { emitEvent: false });
223
- return expiryDate;
224
- }
225
- updateNode(date) {
226
- let expiryDate;
227
- if (date) {
228
- expiryDate = format(endOfDay(new Date(date)), `yyyy-MM-dd'T'HH:mm:ss.SSSxx`);
229
- }
230
- else {
231
- expiryDate = null;
232
- }
233
- if (this.sharedId && expiryDate) {
234
- this.isDisabled = true;
235
- this.sharedLinksApiService.deleteSharedLink(this.sharedId).subscribe((response) => {
236
- if (response instanceof Error) {
237
- this.isDisabled = false;
238
- this.isFileShared = true;
239
- this.handleError(response);
240
- }
241
- else {
242
- this.sharedLinkWithExpirySettings(expiryDate);
243
- this.isLinkWithExpiryDate = true;
244
- this.updateEntryExpiryDate(date);
245
- }
246
- });
247
- }
248
- }
249
- sharedLinkWithExpirySettings(expiryDate) {
250
- const nodeObject = {
251
- nodeId: this.data.node.entry.id,
252
- expiresAt: expiryDate
253
- };
254
- this.createSharedLinks(this.data.node.entry.id, nodeObject);
255
- }
256
- updateEntryExpiryDate(date) {
257
- const { properties } = this.data.node.entry;
258
- if (properties) {
259
- properties['qshare:expiryDate'] = date ? new Date(date) : null;
260
- }
261
- }
262
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShareDialogComponent, deps: [{ token: i1.SharedLinksApiService }, { token: i2.MatDialogRef }, { token: i2.MatDialog }, { token: i3.ContentService }, { token: i4.RenditionService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
263
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ShareDialogComponent, isStandalone: true, selector: "adf-share-dialog", host: { classAttribute: "adf-share-dialog" }, viewQueries: [{ propertyName: "slideToggleExpirationDate", first: true, predicate: ["slideToggleExpirationDate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"adf-share-link__dialog-content\">\n <div class=\"adf-share-link__dialog-container\">\n <div class=\"adf-share-link--header adf-share-link--row\">\n <div\n data-automation-id=\"adf-share-dialog-title\"\n class=\"adf-share-link__title adf-share-link__label adf-share-link__heading\"\n role=\"heading\"\n aria-level=\"1\">\n {{ 'SHARE.DIALOG-TITLE' | translate }} {{ fileName }}\n </div>\n <mat-icon mat-dialog-close class=\"adf-share-link__close adf-share-link__icon\">close</mat-icon>\n </div>\n <mat-dialog-content class=\"adf-share-link--dialog-content\">\n <hr class=\"adf-share-link__separation-line\" />\n <form [formGroup]=\"form\" class=\"adf-share-link__form\">\n <div class=\"adf-share-link--row adf-share-link--row-sharable\">\n <mat-icon class=\"adf-share-link__icon\">timer</mat-icon>\n <div class=\"adf-share-link__label adf-sharable-link\">{{ 'SHARE.LINK-EXPIRY-DATE' | translate }}\n </div>\n <mat-slide-toggle\n #slideToggleExpirationDate\n [disabled]=\"!canUpdate\"\n color=\"primary\"\n data-automation-id=\"adf-expire-toggle\"\n aria-label=\"{{ 'SHARE.EXPIRES' | translate }}\"\n [checked]=\"!!time.value\"\n (change)=\"onToggleExpirationDate($event)\" />\n </div>\n <div\n [style.display]=\"isExpiryDateToggleChecked ? 'block' : 'none'\"\n data-automation-id=\"adf-slide-toggle-checked\"\n class=\"adf-share-link__date-time-container\">\n <mat-form-field class=\"adf-full-width\" subscriptSizing=\"dynamic\" data-automation-id=\"adf-content-share-expiration-field\">\n <mat-label>{{ 'SHARE.EXPIRATION-PLACEHOLDER' | translate }}</mat-label>\n <mat-datepicker-toggle\n [disabled]=\"time.disabled\"\n [for]=\"datePicker\"\n matSuffix\n class=\"adf-share-link__icon adf-share-link__calender-icon\" />\n <mat-datepicker\n #datePicker\n (closed)=\"onDatePickerClosed()\" />\n <input\n class=\"adf-share-link__input\"\n #datePickerInput\n matInput\n [attr.aria-label]=\"'SHARE.EXPIRATION-LABEL' | translate\"\n [min]=\"minDate\"\n formControlName=\"time\"\n (keydown)=\"preventIncorrectCharacters($event)\"\n (blur)=\"onTimeChanged()\"\n (keydown.enter)=\"datePickerInput.blur()\"\n [matDatepicker]=\"datePicker\"/>\n <mat-error *ngIf=\"time.errors?.['invalidDate'] && (time.dirty || time.touched)\"\n data-automation-id=\"adf-share-link-input-warning\">{{ 'SHARE.INVALID_DATE_ERROR' | translate }}</mat-error>\n </mat-form-field>\n </div>\n <p class=\"adf-share-link__info adf-share-link__para\">{{ 'SHARE.SHARE-LINK' | translate }}</p>\n <div class=\"adf-share-link--row adf-share-link--sharable-container\">\n <mat-slide-toggle\n color=\"primary\"\n data-automation-id=\"adf-share-toggle\"\n class=\"adf-share-link--row__slide-toggle\"\n aria-label=\"{{ 'SHARE.TITLE' | translate }}\"\n [checked]=\"isFileShared\"\n [disabled]=\"!canUpdate || isDisabled\"\n (change)=\"onSlideShareChange($event)\" />\n <div class=\"adf-share-link__label adf-sharable-link\">{{ 'SHARE.SHARABLE-LINK-CREATED' | translate }}\n </div>\n </div>\n <mat-form-field\n subscriptSizing=\"dynamic\"\n floatLabel=\"always\"\n class=\"adf-full-width adf-share-link__form--field\"\n data-automation-id=\"adf-content-share-public-link-field\"\n [ngClass]=\"isLinkWithExpiryDate? 'adf-share-link__border-color' : ''\">\n <input\n #sharedLinkInput\n data-automation-id=\"adf-share-link\"\n class=\"adf-share-link__input\"\n matInput\n placeholder=\"{{ 'SHARE.PUBLIC-LINK' | translate }}\"\n [attr.aria-label]=\"'SHARE.PUBLIC-LINK' | translate\"\n formControlName=\"sharedUrl\"\n readonly=\"readonly\">\n <mat-icon\n class=\"adf-input-action adf-share-link__icon adf-share-link__copy-icon\"\n role=\"button\"\n matSuffix\n [clipboard-notification]=\"'SHARE.CLIPBOARD-MESSAGE' | translate\"\n [adf-clipboard]\n [attr.aria-label]=\"'SHARE.COPY_BUTTON_LABEL' | translate\"\n [target]=\"sharedLinkInput\"\n tabindex=\"0\">\n content_copy\n </mat-icon>\n </mat-form-field>\n <p class=\"adf-share-link__warn adf-share-link__para\" *ngIf=\"isLinkWithExpiryDate\">\n {{ 'SHARE.LINK-WITH-EXPIRY-SETTINGS' | translate }}\n </p>\n <div class=\"adf-share-link--row\">\n <mat-icon class=\"adf-share-link__icon\">public</mat-icon>\n <p\n class=\"adf-share-link__info adf-sharable-link adf-share-link__public-content adf-share-link__para\">\n {{ 'SHARE.PUBLIC-CONTENT' | translate }}\n </p>\n </div>\n </form>\n <hr class=\"adf-share-link__separation-line\" />\n </mat-dialog-content>\n <div class=\"adf-share-link__actions\" mat-dialog-actions>\n <button data-automation-id=\"adf-share-dialog-close\" mat-button color=\"primary\" mat-dialog-close>\n {{ 'SHARE.CLOSE' | translate }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".adf-share-link-dialog .adf-share-link .mat-mdc-form-field-flex{height:48px}.adf-share-link-dialog .adf-share-link__dialog-content{display:flex;flex-direction:column}.adf-share-link-dialog .adf-share-link__dialog-container{background-color:var(--theme-card-background-color);border-radius:16px}.adf-share-link-dialog .adf-share-link__label,.adf-share-link-dialog .adf-share-link__title,.adf-share-link-dialog .adf-share-link__info{letter-spacing:-.4px;line-height:2;font-weight:400;font-style:normal;font-stretch:normal;font-size:var(--theme-body-1-font-size);color:var(--adf-theme-foreground-text-color-087)}.adf-share-link-dialog .adf-share-link__label{flex:1 1 auto}.adf-share-link-dialog .adf-share-link__form{padding-top:8px}.adf-share-link-dialog .adf-share-link__form .mat-mdc-form-field-infix:has(.adf-share-link__input){border-top:.9375em solid transparent;border-bottom:.9375em solid transparent;height:16px}.adf-share-link-dialog .adf-share-link__form--field{padding-bottom:16px}.adf-share-link-dialog .adf-share-link__public-content{color:var(--adf-theme-foreground-text-color-054);font-size:var(--theme-caption-font-size)}.adf-share-link-dialog .adf-share-link__warn{color:var(--theme-warn-color-a700);font-size:var(--theme-caption-font-size)}.adf-share-link-dialog .adf-share-link--row{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;margin:8px 0}.adf-share-link-dialog .adf-share-link--row-sharable,.adf-share-link-dialog .adf-share-link--sharable-container{margin-bottom:0}.adf-share-link-dialog .adf-share-link--header{padding:16px 24px 0}.adf-share-link-dialog .adf-share-link--dialog-content{padding-top:0;padding-bottom:0}.adf-share-link-dialog .adf-share-link__input{color:var(--adf-theme-foreground-text-color-087)}.adf-share-link-dialog .adf-share-link__separation-line{border:1px solid var(--theme-grey-background-color);margin:8px -24px}.adf-share-link-dialog .adf-share-link__close{cursor:pointer;margin-left:12px}.adf-share-link-dialog .adf-share-link__icon{color:var(--adf-theme-foreground-icon-color-054);padding-bottom:0;padding-right:0}.adf-share-link-dialog .adf-share-link__para{margin-top:8px;margin-bottom:8px}.adf-share-link-dialog .adf-share-link__heading{font-weight:700;font-size:var(--theme-subheading-2-font-size)}.adf-share-link-dialog .adf-share-link__copy-icon{padding-top:18px;font-size:22px}.adf-share-link-dialog .adf-share-link__calender-icon{top:12px;position:relative;right:-6px}.adf-share-link-dialog .adf-share-link__calender-icon svg{height:18px;width:18px}.adf-share-link-dialog .adf-share-link__date-time-container{padding-bottom:20px}.adf-share-link-dialog .adf-share-link__border-color{border:1px solid var(--theme-warn-color-a700)}.adf-share-link-dialog .adf-input-action{cursor:pointer}.adf-share-link-dialog .adf-full-width{width:100%;border-radius:6px;margin-top:-6px}.adf-share-link-dialog .adf-sharable-link{margin-top:2px;margin-left:8px}.adf-share-link-dialog .adf-share-link__actions{justify-content:flex-end;padding:8px 24px 32px 0;margin:8px 0 0}.adf-share-link-dialog .adf-share-link__actions>button{color:var(--adf-theme-foreground-base-color);background-color:var(--theme-grey-text-background-color);margin-right:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i8.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i10.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i10.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i10.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i11.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: MatButtonModule }, { kind: "component", type: i12.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: ClipboardDirective, selector: "[adf-clipboard]", inputs: ["adf-clipboard", "target", "clipboard-notification"], exportAs: ["adfClipboard"] }], encapsulation: i0.ViewEncapsulation.None }); }
264
- }
265
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShareDialogComponent, decorators: [{
266
- type: Component,
267
- args: [{ selector: 'adf-share-dialog', standalone: true, imports: [
268
- CommonModule,
269
- TranslatePipe,
270
- MatIconModule,
271
- MatDialogModule,
272
- ReactiveFormsModule,
273
- MatSlideToggleModule,
274
- MatFormFieldModule,
275
- MatDatepickerModule,
276
- MatInputModule,
277
- MatButtonModule,
278
- ClipboardDirective
279
- ], host: { class: 'adf-share-dialog' }, encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-share-link__dialog-content\">\n <div class=\"adf-share-link__dialog-container\">\n <div class=\"adf-share-link--header adf-share-link--row\">\n <div\n data-automation-id=\"adf-share-dialog-title\"\n class=\"adf-share-link__title adf-share-link__label adf-share-link__heading\"\n role=\"heading\"\n aria-level=\"1\">\n {{ 'SHARE.DIALOG-TITLE' | translate }} {{ fileName }}\n </div>\n <mat-icon mat-dialog-close class=\"adf-share-link__close adf-share-link__icon\">close</mat-icon>\n </div>\n <mat-dialog-content class=\"adf-share-link--dialog-content\">\n <hr class=\"adf-share-link__separation-line\" />\n <form [formGroup]=\"form\" class=\"adf-share-link__form\">\n <div class=\"adf-share-link--row adf-share-link--row-sharable\">\n <mat-icon class=\"adf-share-link__icon\">timer</mat-icon>\n <div class=\"adf-share-link__label adf-sharable-link\">{{ 'SHARE.LINK-EXPIRY-DATE' | translate }}\n </div>\n <mat-slide-toggle\n #slideToggleExpirationDate\n [disabled]=\"!canUpdate\"\n color=\"primary\"\n data-automation-id=\"adf-expire-toggle\"\n aria-label=\"{{ 'SHARE.EXPIRES' | translate }}\"\n [checked]=\"!!time.value\"\n (change)=\"onToggleExpirationDate($event)\" />\n </div>\n <div\n [style.display]=\"isExpiryDateToggleChecked ? 'block' : 'none'\"\n data-automation-id=\"adf-slide-toggle-checked\"\n class=\"adf-share-link__date-time-container\">\n <mat-form-field class=\"adf-full-width\" subscriptSizing=\"dynamic\" data-automation-id=\"adf-content-share-expiration-field\">\n <mat-label>{{ 'SHARE.EXPIRATION-PLACEHOLDER' | translate }}</mat-label>\n <mat-datepicker-toggle\n [disabled]=\"time.disabled\"\n [for]=\"datePicker\"\n matSuffix\n class=\"adf-share-link__icon adf-share-link__calender-icon\" />\n <mat-datepicker\n #datePicker\n (closed)=\"onDatePickerClosed()\" />\n <input\n class=\"adf-share-link__input\"\n #datePickerInput\n matInput\n [attr.aria-label]=\"'SHARE.EXPIRATION-LABEL' | translate\"\n [min]=\"minDate\"\n formControlName=\"time\"\n (keydown)=\"preventIncorrectCharacters($event)\"\n (blur)=\"onTimeChanged()\"\n (keydown.enter)=\"datePickerInput.blur()\"\n [matDatepicker]=\"datePicker\"/>\n <mat-error *ngIf=\"time.errors?.['invalidDate'] && (time.dirty || time.touched)\"\n data-automation-id=\"adf-share-link-input-warning\">{{ 'SHARE.INVALID_DATE_ERROR' | translate }}</mat-error>\n </mat-form-field>\n </div>\n <p class=\"adf-share-link__info adf-share-link__para\">{{ 'SHARE.SHARE-LINK' | translate }}</p>\n <div class=\"adf-share-link--row adf-share-link--sharable-container\">\n <mat-slide-toggle\n color=\"primary\"\n data-automation-id=\"adf-share-toggle\"\n class=\"adf-share-link--row__slide-toggle\"\n aria-label=\"{{ 'SHARE.TITLE' | translate }}\"\n [checked]=\"isFileShared\"\n [disabled]=\"!canUpdate || isDisabled\"\n (change)=\"onSlideShareChange($event)\" />\n <div class=\"adf-share-link__label adf-sharable-link\">{{ 'SHARE.SHARABLE-LINK-CREATED' | translate }}\n </div>\n </div>\n <mat-form-field\n subscriptSizing=\"dynamic\"\n floatLabel=\"always\"\n class=\"adf-full-width adf-share-link__form--field\"\n data-automation-id=\"adf-content-share-public-link-field\"\n [ngClass]=\"isLinkWithExpiryDate? 'adf-share-link__border-color' : ''\">\n <input\n #sharedLinkInput\n data-automation-id=\"adf-share-link\"\n class=\"adf-share-link__input\"\n matInput\n placeholder=\"{{ 'SHARE.PUBLIC-LINK' | translate }}\"\n [attr.aria-label]=\"'SHARE.PUBLIC-LINK' | translate\"\n formControlName=\"sharedUrl\"\n readonly=\"readonly\">\n <mat-icon\n class=\"adf-input-action adf-share-link__icon adf-share-link__copy-icon\"\n role=\"button\"\n matSuffix\n [clipboard-notification]=\"'SHARE.CLIPBOARD-MESSAGE' | translate\"\n [adf-clipboard]\n [attr.aria-label]=\"'SHARE.COPY_BUTTON_LABEL' | translate\"\n [target]=\"sharedLinkInput\"\n tabindex=\"0\">\n content_copy\n </mat-icon>\n </mat-form-field>\n <p class=\"adf-share-link__warn adf-share-link__para\" *ngIf=\"isLinkWithExpiryDate\">\n {{ 'SHARE.LINK-WITH-EXPIRY-SETTINGS' | translate }}\n </p>\n <div class=\"adf-share-link--row\">\n <mat-icon class=\"adf-share-link__icon\">public</mat-icon>\n <p\n class=\"adf-share-link__info adf-sharable-link adf-share-link__public-content adf-share-link__para\">\n {{ 'SHARE.PUBLIC-CONTENT' | translate }}\n </p>\n </div>\n </form>\n <hr class=\"adf-share-link__separation-line\" />\n </mat-dialog-content>\n <div class=\"adf-share-link__actions\" mat-dialog-actions>\n <button data-automation-id=\"adf-share-dialog-close\" mat-button color=\"primary\" mat-dialog-close>\n {{ 'SHARE.CLOSE' | translate }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".adf-share-link-dialog .adf-share-link .mat-mdc-form-field-flex{height:48px}.adf-share-link-dialog .adf-share-link__dialog-content{display:flex;flex-direction:column}.adf-share-link-dialog .adf-share-link__dialog-container{background-color:var(--theme-card-background-color);border-radius:16px}.adf-share-link-dialog .adf-share-link__label,.adf-share-link-dialog .adf-share-link__title,.adf-share-link-dialog .adf-share-link__info{letter-spacing:-.4px;line-height:2;font-weight:400;font-style:normal;font-stretch:normal;font-size:var(--theme-body-1-font-size);color:var(--adf-theme-foreground-text-color-087)}.adf-share-link-dialog .adf-share-link__label{flex:1 1 auto}.adf-share-link-dialog .adf-share-link__form{padding-top:8px}.adf-share-link-dialog .adf-share-link__form .mat-mdc-form-field-infix:has(.adf-share-link__input){border-top:.9375em solid transparent;border-bottom:.9375em solid transparent;height:16px}.adf-share-link-dialog .adf-share-link__form--field{padding-bottom:16px}.adf-share-link-dialog .adf-share-link__public-content{color:var(--adf-theme-foreground-text-color-054);font-size:var(--theme-caption-font-size)}.adf-share-link-dialog .adf-share-link__warn{color:var(--theme-warn-color-a700);font-size:var(--theme-caption-font-size)}.adf-share-link-dialog .adf-share-link--row{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;margin:8px 0}.adf-share-link-dialog .adf-share-link--row-sharable,.adf-share-link-dialog .adf-share-link--sharable-container{margin-bottom:0}.adf-share-link-dialog .adf-share-link--header{padding:16px 24px 0}.adf-share-link-dialog .adf-share-link--dialog-content{padding-top:0;padding-bottom:0}.adf-share-link-dialog .adf-share-link__input{color:var(--adf-theme-foreground-text-color-087)}.adf-share-link-dialog .adf-share-link__separation-line{border:1px solid var(--theme-grey-background-color);margin:8px -24px}.adf-share-link-dialog .adf-share-link__close{cursor:pointer;margin-left:12px}.adf-share-link-dialog .adf-share-link__icon{color:var(--adf-theme-foreground-icon-color-054);padding-bottom:0;padding-right:0}.adf-share-link-dialog .adf-share-link__para{margin-top:8px;margin-bottom:8px}.adf-share-link-dialog .adf-share-link__heading{font-weight:700;font-size:var(--theme-subheading-2-font-size)}.adf-share-link-dialog .adf-share-link__copy-icon{padding-top:18px;font-size:22px}.adf-share-link-dialog .adf-share-link__calender-icon{top:12px;position:relative;right:-6px}.adf-share-link-dialog .adf-share-link__calender-icon svg{height:18px;width:18px}.adf-share-link-dialog .adf-share-link__date-time-container{padding-bottom:20px}.adf-share-link-dialog .adf-share-link__border-color{border:1px solid var(--theme-warn-color-a700)}.adf-share-link-dialog .adf-input-action{cursor:pointer}.adf-share-link-dialog .adf-full-width{width:100%;border-radius:6px;margin-top:-6px}.adf-share-link-dialog .adf-sharable-link{margin-top:2px;margin-left:8px}.adf-share-link-dialog .adf-share-link__actions{justify-content:flex-end;padding:8px 24px 32px 0;margin:8px 0 0}.adf-share-link-dialog .adf-share-link__actions>button{color:var(--adf-theme-foreground-base-color);background-color:var(--theme-grey-text-background-color);margin-right:12px}\n"] }]
280
- }], ctorParameters: () => [{ type: i1.SharedLinksApiService }, { type: i2.MatDialogRef }, { type: i2.MatDialog }, { type: i3.ContentService }, { type: i4.RenditionService }, { type: undefined, decorators: [{
281
- type: Inject,
282
- args: [MAT_DIALOG_DATA]
283
- }] }], propDecorators: { slideToggleExpirationDate: [{
284
- type: ViewChild,
285
- args: ['slideToggleExpirationDate', { static: true }]
286
- }] } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1ub2RlLXNoYXJlLmRpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvY29udGVudC1ub2RlLXNoYXJlL2NvbnRlbnQtbm9kZS1zaGFyZS5kaWFsb2cudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2NvbnRlbnQtbm9kZS1zaGFyZS9jb250ZW50LW5vZGUtc2hhcmUuZGlhbG9nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRyxPQUFPLEVBQXdCLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9B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TUFBTTsyQkFBQyxlQUFlO3lDQVAzQix5QkFBeUI7c0JBRHhCLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVDaGFuZ2UsIE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hhcmVkTGlua3NBcGlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zaGFyZWQtbGlua3MtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hhcmVkTGlua0JvZHlDcmVhdGUgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IENsaXBib2FyZERpcmVjdGl2ZSwgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb250ZW50Tm9kZVNoYXJlU2V0dGluZ3MgfSBmcm9tICcuL2NvbnRlbnQtbm9kZS1zaGFyZS5zZXR0aW5ncyc7XG5pbXBvcnQgeyBSZW5kaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2VzL3JlbmRpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGFkZCwgZW5kT2ZEYXksIGZvcm1hdCwgaXNCZWZvcmUgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbmludGVyZmFjZSBTaGFyZWREaWFsb2dGb3JtUHJvcHMge1xuICAgIHNoYXJlZFVybDogRm9ybUNvbnRyb2w8c3RyaW5nPjtcbiAgICB0aW1lOiBGb3JtQ29udHJvbDxEYXRlPjtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2hhcmUtZGlhbG9nJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVQaXBlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIENsaXBib2FyZERpcmVjdGl2ZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnRlbnQtbm9kZS1zaGFyZS5kaWFsb2cuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1ub2RlLXNoYXJlLmRpYWxvZy5zY3NzJ10sXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1zaGFyZS1kaWFsb2cnIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBtaW5EYXRlVmFsaWRhdG9yID0gKGNvbnRyb2w6IEZvcm1Db250cm9sPERhdGU+KTogYW55ID0+XG4gICAgICAgIGlzQmVmb3JlKGVuZE9mRGF5KG5ldyBEYXRlKGNvbnRyb2wudmFsdWUpKSwgdGhpcy5taW5EYXRlKSA/IHsgaW52YWxpZERhdGU6IHRydWUgfSA6IG51bGw7XG5cbiAgICBtaW5EYXRlID0gYWRkKG5ldyBEYXRlKCksIHsgZGF5czogMSB9KTtcbiAgICBzaGFyZWRJZDogc3RyaW5nO1xuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG4gICAgYmFzZVNoYXJlVXJsOiBzdHJpbmc7XG4gICAgaXNGaWxlU2hhcmVkID0gZmFsc2U7XG4gICAgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgIGlzTGlua1dpdGhFeHBpcnlEYXRlID0gZmFsc2U7XG4gICAgZm9ybSA9IG5ldyBGb3JtR3JvdXA8U2hhcmVkRGlhbG9nRm9ybVByb3BzPih7XG4gICAgICAgIHNoYXJlZFVybDogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgICAgdGltZTogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiB0cnVlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLm1pbkRhdGVWYWxpZGF0b3JdKVxuICAgIH0pO1xuICAgIGlzRXhwaXJ5RGF0ZVRvZ2dsZUNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgICBAVmlld0NoaWxkKCdzbGlkZVRvZ2dsZUV4cGlyYXRpb25EYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBzbGlkZVRvZ2dsZUV4cGlyYXRpb25EYXRlO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHNoYXJlZExpbmtzQXBpU2VydmljZTogU2hhcmVkTGlua3NBcGlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNoYXJlRGlhbG9nQ29tcG9uZW50PixcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVuZGl0aW9uU2VydmljZTogUmVuZGl0aW9uU2VydmljZSxcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBDb250ZW50Tm9kZVNoYXJlU2V0dGluZ3NcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5ub2RlPy5lbnRyeSkge1xuICAgICAgICAgICAgdGhpcy5maWxlTmFtZSA9IHRoaXMuZGF0YS5ub2RlLmVudHJ5Lm5hbWU7XG4gICAgICAgICAgICB0aGlzLmJhc2VTaGFyZVVybCA9IHRoaXMuZGF0YS5iYXNlU2hhcmVVcmw7XG5cbiAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmRhdGEubm9kZS5lbnRyeS5wcm9wZXJ0aWVzO1xuXG4gICAgICAgICAgICBpZiAoIXByb3BlcnRpZXM/LlsncXNoYXJlOnNoYXJlZElkJ10pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVNoYXJlZExpbmtzKHRoaXMuZGF0YS5ub2RlLmVudHJ5LmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFyZWRJZCA9IHByb3BlcnRpZXNbJ3FzaGFyZTpzaGFyZWRJZCddO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGaWxlU2hhcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGV4cGlyeURhdGUgPSB0aGlzLnVwZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRXhwaXJ5RGF0ZVRvZ2dsZUNoZWNrZWQgPSB0aGlzLmlzTGlua1dpdGhFeHBpcnlEYXRlID0gISFleHBpcnlEYXRlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMaW5rV2l0aEV4cGlyeURhdGUgPyB0aGlzLnRpbWUuZW5hYmxlKCkgOiB0aGlzLnRpbWUuZGlzYWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25UaW1lQ2hhbmdlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGltZS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVOb2RlKHRoaXMudGltZS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGltZSgpOiBGb3JtQ29udHJvbDxEYXRlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbJ3RpbWUnXTtcbiAgICB9XG4gICAgb25TbGlkZVNoYXJlQ2hhbmdlKGV2ZW50OiBNYXRTbGlkZVRvZ2dsZUNoYW5nZSkge1xuICAgICAgICBpZiAoZXZlbnQuY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVTaGFyZWRMaW5rcyh0aGlzLmRhdGEubm9kZS5lbnRyeS5pZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5Db25maXJtYXRpb25EaWFsb2coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjYW5VcGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IHsgZW50cnkgfSA9IHRoaXMuZGF0YS5ub2RlO1xuXG4gICAgICAgIGlmIChlbnRyeT8uYWxsb3dhYmxlT3BlcmF0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudFNlcnZpY2UuaGFzQWxsb3dhYmxlT3BlcmF0aW9ucyhlbnRyeSwgJ3VwZGF0ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgb25Ub2dnbGVFeHBpcmF0aW9uRGF0ZShzbGlkZVRvZ2dsZTogTWF0U2xpZGVUb2dnbGVDaGFuZ2UpIHtcbiAgICAgICAgaWYgKHNsaWRlVG9nZ2xlLmNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZS5lbmFibGUoKTtcbiAgICAgICAgICAgIHRoaXMuaXNFeHBpcnlEYXRlVG9nZ2xlQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRpbWUuZGlzYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy50aW1lLnNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgdGhpcy5kZWxldGVTaGFyZWRMaW5rKHRoaXMuc2hhcmVkSWQsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EYXRlUGlja2VyQ2xvc2VkKCkge1xuICAgICAgICB0aGlzLm9uVGltZUNoYW5nZWQoKTtcbiAgICAgICAgaWYgKCF0aGlzLnRpbWUudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVUb2dnbGVFeHBpcmF0aW9uRGF0ZS5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcmV2ZW50SW5jb3JyZWN0Q2hhcmFjdGVycyhlOiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL1teXFxkLy4tXS87XG4gICAgICAgIHJldHVybiBlLmtleS5sZW5ndGggPT09IDEgPyAhcmVnZXgudGVzdChlLmtleSkgOiB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkNvbmZpcm1hdGlvbkRpYWxvZygpIHtcbiAgICAgICAgdGhpcy5pc0ZpbGVTaGFyZWQgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1xuICAgICAgICAgICAgLm9wZW4oQ29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdTSEFSRS5DT05GSVJNQVRJT04uRElBTE9HLVRJVExFJyxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1NIQVJFLkNPTkZJUk1BVElPTi5NRVNTQUdFJyxcbiAgICAgICAgICAgICAgICAgICAgeWVzTGFiZWw6ICdTSEFSRS5DT05GSVJNQVRJT04uUkVNT1ZFJyxcbiAgICAgICAgICAgICAgICAgICAgbm9MYWJlbDogJ1NIQVJFLkNPTkZJUk1BVElPTi5DQU5DRUwnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzI1MHB4JyxcbiAgICAgICAgICAgICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5iZWZvcmVDbG9zZWQoKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGVsZXRlU2hhcmVkTGluaykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkZWxldGVTaGFyZWRMaW5rKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlU2hhcmVkTGluayh0aGlzLnNoYXJlZElkKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRmlsZVNoYXJlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVTaGFyZWRMaW5rcyhub2RlSWQ6IHN0cmluZywgc2hhcmVkTGlua1dpdGhFeHBpcnlTZXR0aW5ncz86IFNoYXJlZExpbmtCb2R5Q3JlYXRlKSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5zaGFyZWRMaW5rc0FwaVNlcnZpY2UuY3JlYXRlU2hhcmVkTGlua3Mobm9kZUlkLCBzaGFyZWRMaW5rV2l0aEV4cGlyeVNldHRpbmdzKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoc2hhcmVkTGluaykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzaGFyZWRMaW5rLmVudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hhcmVkSWQgPSBzaGFyZWRMaW5rLmVudHJ5LmlkO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhLm5vZGUuZW50cnkucHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLm5vZGUuZW50cnkucHJvcGVydGllc1sncXNoYXJlOnNoYXJlZElkJ10gPSB0aGlzLnNoYXJlZElkO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLm5vZGUuZW50cnkucHJvcGVydGllcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncXNoYXJlOnNoYXJlZElkJzogdGhpcy5zaGFyZWRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZpbGVTaGFyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRpdGlvblNlcnZpY2UuZ2V0Tm9kZVJlbmRpdGlvbih0aGlzLmRhdGEubm9kZS5lbnRyeS5pZCk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRmlsZVNoYXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGRlbGV0ZVNoYXJlZExpbmsoc2hhcmVkSWQ6IHN0cmluZywgZGlhbG9nT3BlbkZsYWc/OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5zaGFyZWRMaW5rc0FwaVNlcnZpY2UuZGVsZXRlU2hhcmVkTGluayhzaGFyZWRJZCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGaWxlU2hhcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5ub2RlLmVudHJ5LnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLm5vZGUuZW50cnkucHJvcGVydGllc1sncXNoYXJlOnNoYXJlZElkJ10gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEubm9kZS5lbnRyeS5wcm9wZXJ0aWVzWydxc2hhcmU6ZXhwaXJ5RGF0ZSddID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGRpYWxvZ09wZW5GbGFnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlU2hhcmVkTGlua3ModGhpcy5kYXRhLm5vZGUuZW50cnkuaWQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRXhwaXJ5RGF0ZVRvZ2dsZUNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xpbmtXaXRoRXhwaXJ5RGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gICAgICAgIGxldCBtZXNzYWdlID0gJ1NIQVJFLlVOU0hBUkVfRVJST1InO1xuICAgICAgICBsZXQgc3RhdHVzQ29kZSA9IDA7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0YXR1c0NvZGUgPSBKU09OLnBhcnNlKGVycm9yLm1lc3NhZ2UpLmVycm9yLnN0YXR1c0NvZGU7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLyogZW1wdHkgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGF0dXNDb2RlID09PSA0MDMpIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnU0hBUkUuVU5TSEFSRV9QRVJNSVNTSU9OX0VSUk9SJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2hhcmVkTGlua3NBcGlTZXJ2aWNlLmVycm9yLm5leHQoe1xuICAgICAgICAgICAgc3RhdHVzQ29kZSxcbiAgICAgICAgICAgIG1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVGb3JtKCk6IERhdGUge1xuICAgICAgICBjb25zdCB7IGVudHJ5IH0gPSB0aGlzLmRhdGEubm9kZTtcbiAgICAgICAgbGV0IGV4cGlyeURhdGUgPSBudWxsO1xuXG4gICAgICAgIGlmIChlbnRyeT8ucHJvcGVydGllcykge1xuICAgICAgICAgICAgZXhwaXJ5RGF0ZSA9IGVudHJ5LnByb3BlcnRpZXNbJ3FzaGFyZTpleHBpcnlEYXRlJ107XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2hhcmVkVXJsOiBgJHt0aGlzLmJhc2VTaGFyZVVybH0ke3RoaXMuc2hhcmVkSWR9YCxcbiAgICAgICAgICAgICAgICB0aW1lOiBleHBpcnlEYXRlID8gbmV3IERhdGUoZXhwaXJ5RGF0ZSkgOiBudWxsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZXhwaXJ5RGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZU5vZGUoZGF0ZTogRGF0ZSkge1xuICAgICAgICBsZXQgZXhwaXJ5RGF0ZTogRGF0ZSB8IHN0cmluZztcbiAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgIGV4cGlyeURhdGUgPSBmb3JtYXQoZW5kT2ZEYXkobmV3IERhdGUoZGF0ZSkpLCBgeXl5eS1NTS1kZCdUJ0hIOm1tOnNzLlNTU3h4YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHBpcnlEYXRlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNoYXJlZElkICYmIGV4cGlyeURhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuc2hhcmVkTGlua3NBcGlTZXJ2aWNlLmRlbGV0ZVNoYXJlZExpbmsodGhpcy5zaGFyZWRJZCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNGaWxlU2hhcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGFyZWRMaW5rV2l0aEV4cGlyeVNldHRpbmdzKGV4cGlyeURhdGUgYXMgRGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMaW5rV2l0aEV4cGlyeURhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUVudHJ5RXhwaXJ5RGF0ZShkYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2hhcmVkTGlua1dpdGhFeHBpcnlTZXR0aW5ncyhleHBpcnlEYXRlOiBEYXRlKSB7XG4gICAgICAgIGNvbnN0IG5vZGVPYmplY3Q6IFNoYXJlZExpbmtCb2R5Q3JlYXRlID0ge1xuICAgICAgICAgICAgbm9kZUlkOiB0aGlzLmRhdGEubm9kZS5lbnRyeS5pZCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogZXhwaXJ5RGF0ZSBhcyBEYXRlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY3JlYXRlU2hhcmVkTGlua3ModGhpcy5kYXRhLm5vZGUuZW50cnkuaWQsIG5vZGVPYmplY3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRW50cnlFeHBpcnlEYXRlKGRhdGU6IERhdGUpIHtcbiAgICAgICAgY29uc3QgeyBwcm9wZXJ0aWVzIH0gPSB0aGlzLmRhdGEubm9kZS5lbnRyeTtcblxuICAgICAgICBpZiAocHJvcGVydGllcykge1xuICAgICAgICAgICAgcHJvcGVydGllc1sncXNoYXJlOmV4cGlyeURhdGUnXSA9IGRhdGUgPyBuZXcgRGF0ZShkYXRlKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRmLXNoYXJlLWxpbmtfX2RpYWxvZy1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImFkZi1zaGFyZS1saW5rX19kaWFsb2ctY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtc2hhcmUtbGluay0taGVhZGVyIGFkZi1zaGFyZS1saW5rLS1yb3dcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtc2hhcmUtZGlhbG9nLXRpdGxlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1zaGFyZS1saW5rX190aXRsZSBhZGYtc2hhcmUtbGlua19fbGFiZWwgYWRmLXNoYXJlLWxpbmtfX2hlYWRpbmdcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJoZWFkaW5nXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxldmVsPVwiMVwiPlxuICAgICAgICAgICAgICAgIHt7ICdTSEFSRS5ESUFMT0ctVElUTEUnIHwgdHJhbnNsYXRlIH19IHt7IGZpbGVOYW1lIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBtYXQtZGlhbG9nLWNsb3NlIGNsYXNzPVwiYWRmLXNoYXJlLWxpbmtfX2Nsb3NlIGFkZi1zaGFyZS1saW5rX19pY29uXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImFkZi1zaGFyZS1saW5rLS1kaWFsb2ctY29udGVudFwiPlxuICAgICAgICAgICAgPGhyIGNsYXNzPVwiYWRmLXNoYXJlLWxpbmtfX3NlcGFyYXRpb24tbGluZVwiIC8+XG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImFkZi1zaGFyZS1saW5rX19mb3JtXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1zaGFyZS1saW5rLS1yb3cgYWRmLXNoYXJlLWxpbmstLXJvdy1zaGFyYWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtc2hhcmUtbGlua19faWNvblwiPnRpbWVyPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1zaGFyZS1saW5rX19sYWJlbCBhZGYtc2hhcmFibGUtbGlua1wiPnt7ICdTSEFSRS5MSU5LLUVYUElSWS1EQVRFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICNzbGlkZVRvZ2dsZUV4cGlyYXRpb25EYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhblVwZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWV4cGlyZS10b2dnbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cInt7ICdTSEFSRS5FWFBJUkVTJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCIhIXRpbWUudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblRvZ2dsZUV4cGlyYXRpb25EYXRlKCRldmVudClcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaXNFeHBpcnlEYXRlVG9nZ2xlQ2hlY2tlZCA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtc2xpZGUtdG9nZ2xlLWNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1zaGFyZS1saW5rX19kYXRlLXRpbWUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1mdWxsLXdpZHRoXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1jb250ZW50LXNoYXJlLWV4cGlyYXRpb24tZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgJ1NIQVJFLkVYUElSQVRJT04tUExBQ0VIT0xERVInIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRpbWUuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiZGF0ZVBpY2tlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2hhcmUtbGlua19faWNvbiBhZGYtc2hhcmUtbGlua19fY2FsZW5kZXItaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZGF0ZVBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZWQpPVwib25EYXRlUGlja2VyQ2xvc2VkKClcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2hhcmUtbGlua19faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNkYXRlUGlja2VySW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NIQVJFLkVYUElSQVRJT04tTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIm1pbkRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cInByZXZlbnRJbmNvcnJlY3RDaGFyYWN0ZXJzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cIm9uVGltZUNoYW5nZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiZGF0ZVBpY2tlcklucHV0LmJsdXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZGF0ZVBpY2tlclwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJ0aW1lLmVycm9ycz8uWydpbnZhbGlkRGF0ZSddICYmICh0aW1lLmRpcnR5IHx8IHRpbWUudG91Y2hlZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtc2hhcmUtbGluay1pbnB1dC13YXJuaW5nXCI+e3sgJ1NIQVJFLklOVkFMSURfREFURV9FUlJPUicgfCB0cmFuc2xhdGUgfX08L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImFkZi1zaGFyZS1saW5rX19pbmZvIGFkZi1zaGFyZS1saW5rX19wYXJhXCI+e3sgJ1NIQVJFLlNIQVJFLUxJTksnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtc2hhcmUtbGluay0tcm93IGFkZi1zaGFyZS1saW5rLS1zaGFyYWJsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtc2hhcmUtdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXNoYXJlLWxpbmstLXJvd19fc2xpZGUtdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJ7eyAnU0hBUkUuVElUTEUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzRmlsZVNoYXJlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhblVwZGF0ZSB8fCBpc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TbGlkZVNoYXJlQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXNoYXJlLWxpbmtfX2xhYmVsIGFkZi1zaGFyYWJsZS1saW5rXCI+e3sgJ1NIQVJFLlNIQVJBQkxFLUxJTkstQ1JFQVRFRCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIlxuICAgICAgICAgICAgICAgICAgICBmbG9hdExhYmVsPVwiYWx3YXlzXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtZnVsbC13aWR0aCBhZGYtc2hhcmUtbGlua19fZm9ybS0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtY29udGVudC1zaGFyZS1wdWJsaWMtbGluay1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImlzTGlua1dpdGhFeHBpcnlEYXRlPyAnYWRmLXNoYXJlLWxpbmtfX2JvcmRlci1jb2xvcicgOiAnJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICNzaGFyZWRMaW5rSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1zaGFyZS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXNoYXJlLWxpbmtfX2lucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdTSEFSRS5QVUJMSUMtTElOSycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU0hBUkUuUFVCTElDLUxJTksnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNoYXJlZFVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkb25seT1cInJlYWRvbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtaW5wdXQtYWN0aW9uIGFkZi1zaGFyZS1saW5rX19pY29uIGFkZi1zaGFyZS1saW5rX19jb3B5LWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGlwYm9hcmQtbm90aWZpY2F0aW9uXT1cIidTSEFSRS5DTElQQk9BUkQtTUVTU0FHRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FkZi1jbGlwYm9hcmRdXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTSEFSRS5DT1BZX0JVVFRPTl9MQUJFTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RhcmdldF09XCJzaGFyZWRMaW5rSW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X2NvcHlcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYWRmLXNoYXJlLWxpbmtfX3dhcm4gYWRmLXNoYXJlLWxpbmtfX3BhcmFcIiAqbmdJZj1cImlzTGlua1dpdGhFeHBpcnlEYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdTSEFSRS5MSU5LLVdJVEgtRVhQSVJZLVNFVFRJTkdTJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXNoYXJlLWxpbmstLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtc2hhcmUtbGlua19faWNvblwiPnB1YmxpYzwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1zaGFyZS1saW5rX19pbmZvIGFkZi1zaGFyYWJsZS1saW5rIGFkZi1zaGFyZS1saW5rX19wdWJsaWMtY29udGVudCBhZGYtc2hhcmUtbGlua19fcGFyYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ1NIQVJFLlBVQkxJQy1DT05URU5UJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8aHIgY2xhc3M9XCJhZGYtc2hhcmUtbGlua19fc2VwYXJhdGlvbi1saW5lXCIgLz5cbiAgICAgICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtc2hhcmUtbGlua19fYWN0aW9uc1wiIG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgICAgICAgIDxidXR0b24gZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXNoYXJlLWRpYWxvZy1jbG9zZVwiIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgbWF0LWRpYWxvZy1jbG9zZT5cbiAgICAgICAgICAgICAgICB7eyAnU0hBUkUuQ0xPU0UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==